Streamlit을 사용한 ML 모델 배포에 대한 단계별 가이드

게시 됨: 2020-12-07

목차

소개

대부분의 기계 학습 애호가는 AI 및 ML을 시작하기 위한 일부 과정 및 커리큘럼에 등록하고 있습니다. 이 과정은 많은 기본적인 내용을 다루며 학습자가 최신 ML 모델을 구축하고 훈련하도록 깔끔하게 안내합니다.

그러나 대부분의 초보자가 어려움을 겪는 한 가지는 배포 부분입니다. 기계 학습 프로젝트는 주변에 대화형 앱 없이는 그대로 둘 수 없습니다. 사용자가 모델과 쉽게 상호 작용하거나 프로젝트를 선보일 수 있도록 하려면 웹 앱, Android 앱 또는 클라우드 서비스를 사용하는 일종의 API 구조로 랩핑해야 합니다.

우리 모델에 대한 이러한 래퍼를 구축하는 방법은 다양하지만 이 기사에서는 이 문제에 대한 솔루션으로 Streamlit을 사용하는 방법과 내가 강력한 도구라고 생각하는 이유에 중점을 둘 것입니다.

이 기사에는 Streamlit을 사용하여 ML 프로젝트를 빌드하고 이를 위한 웹 앱 플랫폼을 만들기 위한 단계별 가이드가 있습니다. 우리가 구축할 프로젝트는 캘리포니아 주택 가격 예측 모델입니다. 사이트는 동적이며 학습률, 뉴런 수 등과 같은 하이퍼파라미터는 웹 앱을 통해 바로 변경 및 실험할 수 있습니다.

Flask 또는 Django와 같은 일부 프레임워크를 사용하여 이러한 웹 앱을 구축하는 경우 먼저 해당 UI를 구축하는 데 많은 시간이 걸리고 서버에서 호스팅하는 또 다른 문제가 있으므로 모든 사람이 액세스할 수 있습니다.

그리고 여기서 '머신 러닝 애호가들이 더 나은 모델을 빌드하는 학습에 귀중한 시간을 사용할 수 있는데 왜 일부 UI 프레임워크를 배우는 데 시간을 낭비해야 합니까?'라는 주요 질문이 제기됩니다.

여기에서는 프로젝트에 Streamlit을 사용하는 방법에 대해 많은 주제를 다룰 것입니다. 더 알고 싶은 부분으로 자유롭게 건너뛰십시오.

  • 왜 스트림릿인가?
  • 기본 ML 모델 빌드
  • 마법을 사용하는 Streamlit 추가
  • Streamlit 웹 앱 배포
  • 결론

왜 스트림릿인가?

Streamlit을 사용하면 Machine Learning 웹 앱을 매우 쉽고 빠르게 구축할 수 있습니다. ML 모델용 래퍼를 개발하는 데 사용할 수 있는 다른 방법은 그리 편리하지 않습니다.

Flask 는 사용자가 웹 앱을 개발하고 파이썬 언어를 사용하여 배포할 수 있는 파이썬 프레임워크입니다. 파이썬에 대한 좋은 지식이 필요하고 파이썬을 배우는 데 시간을 투자해야 합니다. 그 후에도 Streamlit에 비해 웹 앱을 개발하는 것은 그리 쉽지 않습니다.

Django 는 웹 개발을 위한 또 다른 Python 기반 프레임워크입니다. Flask의 더 좋고 복잡한 버전이라고 말할 수 있습니다. 이 프레임워크를 배우는 데 많은 시간을 할애해야 하며 마침내 이를 사용하여 웹 앱을 구축하는 것은 우리가 원하는 만큼 빠르지 않습니다.

Tensorflow.js 는 웹 플랫폼과 호환되는 모델을 저장하는 매우 좋은 방법이며 이러한 모델을 사용하여 웹 앱을 빌드할 수 있습니다. ML 모델 및 상위 수준 아키텍처의 복잡한 구현 중 많은 부분이 Tensorflow.js에서 아직 지원되지 않습니다. Python에서는 작동하지만 Tensorflow.js 라이브러리의 Javascript에서는 작동하지 않을 수 있는 모델이 많이 있습니다.

앞서 말했듯이 우리는 이러한 프레임워크를 배우는 데 시간을 낭비해서는 안 되며 대신 좋은 ML 모델을 구축하는 방법을 배워야 합니다. 그리고 여기에서 Streamlit이 등장합니다. 웹 애플리케이션을 개발하는 가장 간단하고 빠른 방법입니다. Streamlit을 사용하여 빌드한 웹 앱은 훌륭한 UI 요소를 가지고 있으며 사용하기 매우 쉽습니다.

Streamlit이 ML 웹 앱을 구축하는 가장 쉽고 빠른 방법이라는 제 주장을 뒷받침하기 위해 이 프레임워크를 알게 된 방법을 공유하겠습니다. 나는 GAN을 구축하고 그것을 사용하여 인공 얼굴을 생성하는 방법, 흑백 스케치를 다채로운 스케치로 변환하는 방법 등을 배우고 있었습니다.

모델은 Jupyter 노트북에서 잘 작동했지만 다른 사람들과 공유하고 싶었습니다. 앱을 빌드하고 모델을 호스팅할 프레임워크를 찾기 시작했지만 다른 GAN 구현을 탐색하고 싶었기 때문에 또 다른 프레임워크를 배우는 데 시간을 낭비하고 싶지 않았습니다.

이전에 이 기사에서 이야기한 모든 대체 리소스를 확인했습니다. Sketch-To-Color 생성 프로젝트에 사용된 생성기 모델은 약간 복잡합니다. U-Net 아키텍처 모델이며 연결을 건너뛸 것을 요구합니다.

높은 복잡성으로 인해 Tensorflow.js를 사용하여 Javascript의 최종 모델을 변환할 수 없었습니다. Flask나 Django를 처음부터 배우는 것은 나에게 선택지가 아니어서 다른 프레임워크나 라이브러리를 찾기 시작했습니다.

Streamlit을 만났을 때입니다. Adrien Treuille의 기사에서 그는 13줄 미만의 코드로 TL-GAN을 위한 놀라운 웹 앱을 구축한 방법을 보여줍니다. 이 모든 것이 Streamlit 덕분에 가능했습니다.

공식 웹사이트의 문서도 매우 정확하고 도움이 됩니다. 나는 Sketch to Color GAN 모델을 위한 Streamlit 웹 앱을 만들려고 시도했고 그것은 훌륭했습니다. 기존 파이썬 코드에 12줄의 코드만 추가하면 되었습니다. 이것이 내가 마침내 Streamlit을 탐색하고 이를 사용하여 다른 프로젝트를 구축하는 데 착수한 이유입니다.

기본 ML 모델 구축

앞서 언급했듯이 우리는 이 예에서 캘리포니아 주택 가격 예측 문제를 살펴볼 것입니다. 우선 일반적으로 이를 위한 모델을 구축하는 방법을 살펴보겠습니다. 회귀 문제입니다.

먼저 간단한 ML 모델에 필요한 라이브러리를 가져옵니다. 여기서는 TensorFlow, pandas 및 NumPy를 사용합니다.

텐서플로를 tf로 가져오기

numpy를 np로 가져오기

pandas를 pd로 가져오기

이제 Scikit-Learn의 데이터 세트를 사용하여 캘리포니아 주택 데이터 세트를 다운로드합니다.

sklearn.datasets에서 가져오기 fetch_california_housing

주택 = fetch_california_housing()

다음으로 로드된 데이터를 훈련, 검증 및 테스트 세트로 분할해야 합니다. 이를 수행하는 데 사용할 수 있는 방법이 많이 있습니다. Scikit-Learn 라이브러리에서 사용할 수 있는 train_test_split 함수를 사용합니다. 두 번 사용하면 데이터 세트가 학습, 검증 및 테스트의 3개 세트로 나뉩니다.

sklearn.model_selection import train_test_split에서

X_train_full, X_test, y_train_full, y_test = train_test_split(

주택.데이터, 주택.대상

)

X_train, X_valid, y_train, y_valid = train_test_split(

X_train_full, y_train_full

)

사용 가능한 데이터에는 각 항목의 경도 및 위도 값이 있습니다. 이것을 더 잘 시각화하기 위해 지도에 산점도를 만들 수 있습니다. 지도를 사용하기 위해 Altair 라이브러리 를 가져올 것 입니다.

알테어를 alt로 가져오기

map_data = pd.DataFrame(

엑스트레인,

열=[

'메드인크',

하우스 에이지',

에이브룸스',

'AveBedrms',

'인구',

'AveOccup',

'위도',

'경도'

])

중간점 = (np.average(map_data["위도"]), np.average(map_data["경도"]))

st.write(pdk.Deck(

map_style="mapbox://styles/mapbox/light-v9",

initial_view_state={

"위도": 중간점[0],

"경도": 중간점[1],

"확대": 6,

"피치": 75,

},

레이어=[

pdk.Layer(

"육각층",

데이터=지도_데이터,

get_position=["경도", "위도"],

반경=1000,

고도_스케일=4,

고도 범위=[0, 10000],

선택 가능=참,

돌출 = 사실,

),

],

))

현재 가지고 있는 데이터는 모델에 대해 잘 처리되지 않습니다. 더 나은 결과를 얻으려면 전처리를 해야 합니다. 우선, 대부분의 기계 학습 모델은 데이터가 작은 값 범위에 있을 때 가장 잘 작동하므로 값을 정규화해야 합니다. 이를 위해 sklearn 라이브러리의 StandardScaler 클래스를 사용합니다.

sklearn.preprocessing 가져오기 StandardScaler에서

스케일러 = StandardScaler()

X_train = scaler.fit_transform(X_train)

X_valid = scaler.transform(X_valid)

X_test = scaler.transform(X_test)

데이터 준비가 끝나면 이제 모델을 생성합니다. 이 모델은 회귀 문제이므로 첫 번째 입력 레이어에 지정된 수의 뉴런과 마지막 레이어에 단일 뉴런이 있는 신경망이 됩니다. 이것은 TensorFlow 라이브러리를 사용하여 달성할 수 있습니다.

텐서플로를 tf로 가져오기

모델 = tf.keras.models.Sequential([

tf.keras.layers.Dense(n_neurons, activation='relu', input_shape=X_train.shape[1:]),

tf.keras.layers.Dense(1)

])

TensorFlow에서는 모델을 빌드한 후 컴파일해야 합니다. 여기서 우리는 우리가 사용할 손실 함수와 우리가 원하는 옵티마이저를 언급해야 합니다. 우리는 평균 제곱 오차 손실 함수와 특정 학습률을 가진 SGD 옵티마이저를 사용할 것입니다.

모델.컴파일(

손실 = 'mean_squared_error',

옵티마이저=tf.keras.optimizers.SGD(l_rate)

)

모든 것이 제자리에 있습니다. 우리가 해야 할 일은 모델을 훈련시키는 것뿐입니다. TensorFlow에서는 단순히 fit() 메서드를 호출하여 이를 수행할 수 있습니다. 변수 history 에 모든 로그를 저장할 수 있습니다 .

역사 = model.fit(

엑스트레인,

y_기차,

epochs=n_epochs,

validation_data=(X_valid, y_valid)

)

훈련 후에, 우리는 또한 평가() 메소드를 사용하여 우리 모델의 정확도와 손실을 평가할 수 있습니다.

평가 = model.evaluate(X_test, y_test)

이제 이 모델을 사용하여 집값을 예측하려면 predict() 메서드를 호출하면 됩니다.

X_new = X_test[:3]

예측 = model.predict(X_new)

이것이 TensorFlow, scikit-learn 및 pandas를 사용하여 간단한 주택 가격 예측 모델을 구축하는 방법입니다. 그러나 보시다시피 문제는 이 모델과 상호 작용할 수 있는 다른 사용자에게 이 모델을 보여줄 방법이 없으며 이것은 Jupyter Notebook 내부의 모델일 뿐입니다. 이제 Streamlit으로 마법을 추가해 봅시다!

더 읽어보기: 기계 학습 프로젝트 아이디어

Streamlit을 사용하여 마법 추가하기

Machine Learning 웹 앱을 만들려면 Streamlit 함수 호출을 위한 몇 줄의 코드만 추가하면 됩니다. HTML, CSS 또는 Javascript가 필요하지 않습니다. 그냥 순수한 파이썬!

네, 제대로 읽으셨습니다. 다른 것은 걱정할 필요가 없습니다. Streamlit을 시스템에 설치하기만 하면 바로 사용할 수 있습니다. 터미널에서 다음 명령을 사용하십시오.

핍 설치 스트림릿

다음 명령을 사용하여 Hello World 앱에서 주변을 탐색할 수 있습니다. Streamlit을 사용하여 웹 앱이 어떻게 보이는지 보여주는 좋은 예입니다.:

Streamlit 안녕하세요

Streamlit을 로컬에 설치하고 코드에 마법의 라인을 추가한 후 앱을 로컬로 실행하려면 다음 명령을 실행하기만 하면 됩니다.

스트림릿 실행 file_name.py

이제 질문은 "그 마법 같은 코드 줄은 무엇입니까?"입니다. 그것들은 아주 간단합니다. 먼저 Streamlit에서 사용하는 기본 기능을 설명한 다음 예제와 직접 연결할 수 있도록 코드를 보여 드리겠습니다.

무엇보다 먼저 다음 코드 줄을 사용하여 streamlit 라이브러리를 가져옵니다.

스트림릿을 st로 가져오기

첫 번째 중요한 기능은 3개의 큰따옴표 안에 아무거나 입력하면 웹 앱에 있는 그대로 텍스트가 표시된다는 것입니다. 마크다운 언어 구문을 지원합니다. 따라서 머리글, 글머리 기호, 표 등과 같은 많은 작업을 수행할 수 있습니다. 이 표기법 대신 st.write() 함수를 사용할 수도 있습니다 . 동일한 기능을 가지고 있습니다.

다음은 with st.echo(): 함수입니다. 이것은 기본적으로 작성된 python 코드를 실행한 다음 웹 앱에도 표시합니다. 이 방법으로 어떻게 구축되었는지 보여주는 웹 앱을 구축할 수 있습니다.

st.empty() 는 나중에 일부 동적 콘텐츠를 위해 예약된 영역입니다.

st.spinner() 는 코드 실행에 약간의 지연이 있을 때 로딩 요소를 보여줍니다.

st.success() 는 메시지를 녹색으로 표시합니다. 이것은 성공 대화의 훌륭한 디자인 측면을 가지고 있습니다.

st.sidebar() 는 기본적으로 왼쪽 사이드바에 내용을 표시합니다.

st.sidebar.slider() 는 사이드바에 슬라이더를 제공하여 주어진 숫자 범위에서 값을 선택합니다. st.sidebar.selectbox() 를 사용하면 주어진 목록에서 값을 선택할 수 있고 Streamlit에는 더 많은 멋진 기능과 기능이 포함되어 있습니다. 일부 기능은 다음과 같습니다.

  • 파일을 저장할 때 실시간 변경
  • 키보드에서 R을 눌러 앱을 다시 실행하십시오.
  • 키보드에서 C를 누르기만 하면 캐시 지우기
  • 웹 앱을 녹화하고 비디오 파일을 로컬에 저장하여 모든 사람과 공유

… 그리고 훨씬 더

반드시 읽어야 할 내용: 머신 러닝 분야의 경력

코드

스트림릿을 st로 가져오기

알테어를 alt로 가져오기

pydeck을 pdk로 가져오기

train_area = st.empty()

""

# 캘리포니아 주택 가격

이것은 1990년 미국 인구 조사에서 가져온 데이터가 포함된 캘리포니아 주택 가격 데이터세트입니다. 다음 표는 데이터 세트의 각 기능에 대한 설명, 데이터 범위 및 데이터 유형을 제공합니다.

## 먼저 수입품을 살펴보자

""

st.echo() 사용:

텐서플로를 tf로 가져오기

numpy를 np로 가져오기

pandas를 pd로 가져오기

""

## 데이터 세트 로드

우리는 scikit-learn의 데이터 세트 모듈을 사용하여 이미 정리되고 숫자 기능만 있는 데이터를 리드할 것입니다.

""

st.echo() 사용:

sklearn.datasets에서 가져오기 fetch_california_housing

주택 = fetch_california_housing()

""

그러면 아래와 같이 'housing' 변수의 전체 데이터가 로드됩니다.

""

st.subheader('입력 기능')

주택.데이터

st.subheader('출력 레이블')

주택.타겟

""

## 데이터를 학습, 테스트 및 개발 세트로 분할

이것은 모든 모델의 결과가 이러한 세트에 데이터를 얼마나 잘 배포했는지에 크게 의존할 수 있으므로 머신 러닝 솔루션의 시작에서 가장 중요한 것 중 하나입니다.

다행히 scikit-learn이 코드 2줄만큼 쉬워졌습니다.

""

st.echo() 사용:

sklearn.model_selection import train_test_split에서

X_train_full, X_test, y_train_full, y_test = train_test_split(

주택.데이터, 주택.대상

)

X_train, X_valid, y_train, y_valid = train_test_split(

X_train_full, y_train_full

)

""

`train_test_split()` 함수는 테스트 세트가 전체 데이터 세트의 25%인 2개의 세트로 데이터를 분할합니다. 우리는 train_full에서 동일한 함수를 다시 사용하여 train 및 validation 세트로 분할했습니다. 25%는 기본 매개변수이며 필요에 따라 조정할 수 있습니다. [Scikit-Learn의 문서](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html)에서 살펴보세요.

## 기차 데이터 살펴보기

열은 다음 데이터를 나타냅니다.

""

st.write(housing.feature_names)

""

이제 위도 및 경도 값을 사용하여 지도에 표시하여 집의 위치를 ​​살펴보겠습니다.

""

st.echo() 사용:

map_data = pd.DataFrame(

엑스트레인,

열=[

'메드인크',

하우스 에이지',

에이브룸스',

'AveBedrms',

'인구',

'AveOccup',

'위도',

'경도'

])

중간점 = (np.average(map_data["위도"]), np.average(map_data["경도"]))

st.write(pdk.Deck(

map_style="mapbox://styles/mapbox/light-v9",

initial_view_state={

"위도": 중간점[0],

"경도": 중간점[1],

"확대": 6,

"피치": 75,

},

레이어=[

pdk.Layer(

"육각층",

데이터=지도_데이터,

get_position=["경도", "위도"],

반경=1000,

고도_스케일=4,

고도 범위=[0, 10000],

선택 가능=참,

돌출 = 사실,

),

],

))

""

**필요에 따라 지도의 3D 보기 각도를 변경하려면 ALT 키를 누른 상태에서 확대하거나 드래그하세요.**

## 전처리

앞서 지적했듯이 이 데이터 세트는 NaN 값 및 기타 항목에 대해 걱정하지 않고 직접 사용할 수 있도록 scikit-learn에 의해 이미 사전 처리되어 있습니다.

그러나 모델이 효율적으로 작동하도록 하기 위해 'StandardScaler'를 사용하여 특정 범위의 값을 조정할 것입니다.

""

st.echo() 사용:

sklearn.preprocessing 가져오기 StandardScaler에서

스케일러 = StandardScaler()

X_train = scaler.fit_transform(X_train)

X_valid = scaler.transform(X_valid)

X_test = scaler.transform(X_test)

""

## 모델 생성

우리는 30개의 뉴런과 RELU의 활성화 함수를 포함하는 첫 번째 레이어로 간단한 순차 모델을 만들 것입니다.

다음 계층은 모델이 분류 문제와 같은 이진 또는 다중 클래스 결과뿐만 아니라 값 범위를 예측하기를 원하기 때문에 활성화 함수가 없는 단일 뉴런 계층이 될 것입니다.

""

st.sidebar.title('초매개변수')

n_neurons = st.sidebar.slider('뉴런', 1, 128, 30)

l_rate = st.sidebar.selectbox('학습률', (0.0001, 0.001, 0.01), 1)

n_epochs = st.sidebar.number_input('에포크 수', 1, 50, 20)

#n_neurons, l_rate 및 _nepochs는 모델 학습을 위해 사용자로부터 가져온 입력입니다. 이들에 대한 기본값도 설정됩니다. n_neurons의 기본값은 30, l_rate의 기본값은 0.01, n_epochs의 기본값은 20입니다. 따라서 처음에 모델은 첫 번째 레이어에 30개의 뉴런을 갖게 되고 학습률은 0.01이 되고 epoch의 수는 0.01이 됩니다. 모델이 학습할 대상은 20입니다.

st.echo() 사용:

텐서플로를 tf로 가져오기

모델 = tf.keras.models.Sequential([

tf.keras.layers.Dense(n_neurons, activation='relu', input_shape=X_train.shape[1:]),

tf.keras.layers.Dense(1)

])

""

## 모델 컴파일

Tensorflow keras API는 옵티마이저, 손실 함수 및 모델에 대한 몇 가지 기타 세부 사항을 할당하는 `model.compile()` 함수를 제공합니다.

""

st.echo() 사용:

모델.컴파일(

손실 = 'mean_squared_error',

옵티마이저=tf.keras.optimizers.SGD(l_rate)

)

""

## 모델 훈련

모델을 훈련시키려면 훈련 및 검증 세트와 모델이 훈련할 에포크(epoch)가 있는 모델에서 'fit()' 함수를 호출하기만 하면 됩니다.

**왼쪽 사이드바에서 하이퍼파라미터로 플레이하고 아래의 '모델 훈련' 버튼을 클릭하여 훈련을 시작해보세요.**

""

train = st.button('모델 훈련')

기차인 경우:

st.spinner('모델 훈련…') 사용:

st.echo() 사용:

model.summary(print_fn=lambda x: st.write("{}".format(x)))

역사 = model.fit(

엑스트레인,

y_기차,

신기원=n_epochs,

validation_data=(X_valid, y_valid)

)

st.success('모델 트레이닝 완료!')

""

## 모델 성능

""

st.echo() 사용:

st.line_chart(pd.DataFrame(history.history))

""

## 테스트 세트에서 모델 평가

또 다른 중요하지만 쉬운 단계는 이전에 본 적이 없는 테스트 데이터에서 모델을 평가하는 것입니다. 빌드한 모델에 대해 충분히 확신한 후에만 이 작업을 수행해야 하며 테스트 세트에서 모델을 평가한 후에는 하이퍼파라미터 조정을 거부해야 합니다. 모델이 생산 단계에서 새로운 데이터를 볼 때 일반화 문제가 됩니다.

""

st.echo() 사용:

평가 = model.evaluate(X_test, y_test)

평가

""

> 테스트 세트의 손실은 검증 세트의 손실보다 약간 더 나쁩니다. 예상대로 모델이 테스트 세트의 이미지를 본 적이 없기 때문입니다.

""

""

## 모델을 사용한 예측

""

st.echo() 사용:

X_new = X_test[:3]

예측 = model.predict(X_new)

""

### 예측

""

예측

""

### 진실

""

y_테스트[:3]

이거야! 몇 줄의 추가 코드만 있으면 아름답고 동적인 콘텐츠도 포함하는 훌륭한 웹 앱을 이미 구축할 수 있습니다. 그렇게 어렵지는 않았어요, 그렇죠? 문서에서 다른 프로젝트를 빌드하고 Streamlit의 다른 기능을 사용해 보십시오. 상당히 쉽고 직관적입니다.

읽기: Python을 사용한 기계 학습

Streamlit 웹 앱 배포

Streamlit 웹 앱은 인터넷에서 사용할 수 있는 다양한 옵션을 통해 직접 사용하도록 배포할 수 있습니다. 우리는 그것들을 간단히 살펴보고 어떻게 할 수 있는지 볼 수 있습니다.

웹 앱을 배포하는 데 도움이 될 수 있는 다른 플랫폼으로 이동하기 전에 Streamlit이 무엇을 제공하는지 살펴보겠습니다. 그들이 수행한 아주 최근의 기능 릴리스는 Streamlit 공유입니다. 이를 통해 사용자는 한 번의 클릭으로 Streamlit 웹 앱을 배포할 수 있습니다.

GitHub 리포지토리에 코드를 업로드한 경우 Streamlit의 대시보드에서 리포지토리를 선택하기만 하면 자동으로 호스팅됩니다. 현재로서는 매우 놀랍고 완전히 무료입니다. 기계 학습 웹 앱을 배포하기 전에 이보다 더 쉬운 방법은 없었습니다.

Heroku 는 Streamlit 웹 앱을 배포하는 또 다른 좋은 방법입니다. 이렇게 하면 클라우드 서버를 선택한 다음 여기에 가상 인스턴스를 설정할 필요가 없습니다. 모두 Heroku가 처리합니다.

Heroku의 무료 버전에서는 무료 버전에서 512MB 크기 이상의 모든 패키지를 포함할 수 없다는 단순한 단점이 있습니다. 프로젝트에 사용한 TensorFlow 2.2.0은 지정된 공간보다 약간 커서 다른 서비스를 사용해야 했습니다.

AWS(Amazon Web Services) 도 Streamlit 앱을 배포하는 좋은 방법입니다. 초보자에게는 조금 복잡하지만 사용할수록 설정이 쉬워집니다. 신규 사용자에게 무료 EC2 인스턴스를 제공합니다. Ubuntu 18.04 이상으로 시작하고 앱에 필요한 모든 종속성을 설치할 수 있습니다.

모든 것이 설정되면 streamlit run filename.py 명령을 사용하여 앱을 실행할 수 있습니다 . 여기에서 모든 사람과 공유할 수 있는 공개 URL을 얻을 수 있습니다. 여기서 한 가지 주요 단점은 인스턴스를 종료하면 앱을 온라인에서 사용할 수 없다는 것입니다. 따라서 무료 인스턴스에는 몇 가지 제한 사항이 있습니다.

GitHub 리포지토리에 코드가 있는 경우 앱을 호스팅하는 또 다른 멋진 방법이 있습니다. 사용자가 시스템에 Streamlit을 설치해야 하기 때문에 그다지 전문적이지 않고 합법적이지 않습니다.

시스템에서 Streamlit을 사용할 수 있고 Streamlit 앱의 python 파일에 대한 링크가 있는 경우 streamlit run url 명령을 실행하여 웹 앱을 실행할 수 있습니다 . Streamlit을 설치했다면 로컬에서 내 앱을 확인할 수 있습니다. 터미널에서 다음 명령을 사용하십시오.

스트림릿 실행 https://raw.githubusercontent.com/tejasmorkar/housing_price_prediction_aws/master/CaliforniaHousingPrices.py

결론

Streamlit이 얼마나 간단하면서도 강력한지 보았습니다. 이 정도로 도움이 되었고 개발 생활을 더 쉽게 만들어주는 그런 도구를 만난 적이 없습니다. 그래서 저는 Streamlit이 모든 사람이 기계 학습 개발의 중요한 부분에 집중하고 AI 및 ML의 주요 학습에 더 집중할 수 있도록 도와주는 인상적인 프레임워크라고 생각합니다. 이를 통해 학습 곡선이 훨씬 쉬워지고 취미 프로젝트를 쉽게 구축하고 배포할 수 있습니다.

이 프레임워크를 구현하기 쉽게 만드는 한 가지는 공식 문서입니다. 문서에 기록된 모든 내용은 정확하고 명확합니다. 문서를 한 번 살펴보고 새 프로젝트를 구현하는 것이 좋습니다. 새로운 프레임워크를 시작하는 가장 좋은 방법입니다. 다음 링크에서 Streamlit 공식 문서를 찾으십시오 — https://docs.streamlit.io/en/stable/ target=”_blank” rel=”nofollow” .

커뮤니티는 항상 우리의 솔루션에 대해 배우고 문제를 찾을 수 있는 최고의 리소스입니다. Streamlit에는 Streamlit 앱의 개발 프로세스에 관한 질문, 배포, 기능 요청, 버그 보고서 및 앱을 성공적으로 빌드하는 데 도움이 될 수 있는 모든 것과 관련된 질문을 게시할 수 있는 훌륭한 토론 포럼이 있습니다. 다음 링크에서 토론 포럼에 참여하십시오 — https://discuss.streamlit.io/

기계 학습에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT- B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

머신 러닝 프로젝트를 배포할 때 가장 어려운 점은 무엇인가요?

머신 러닝 프로젝트를 배포할 때 가장 큰 어려움은 데이터 수집의 불완전성입니다. 대부분의 경우 정확한 분석에 필요한 모든 데이터를 수집하는 데 시간과 비용이 충분하지 않습니다. 따라서 수집된 데이터는 신뢰할 수 있고 품질이 좋아야 합니다. 또한 올바른 데이터를 선택해야 합니다. 데이터 선택은 프로젝트 배포의 핵심입니다.

기계 학습에서 Streamlit이란 무엇입니까?

Streamlit은 기계 학습을 위한 증분 알고리즘입니다. 신경망의 탐색 공간이 매우 넓고 훈련이 빠르다는 점을 이용하여 전체 공간을 탐색할 필요가 없지만 국부적으로 신경망을 구축할 수 있다. StreamLit은 순차적 데이터 처리에 사용되는 장기 단기 기억의 한 형태입니다. RNN을 사용하여 데이터를 숫자 벡터로 인코딩하는 딥 러닝 알고리즘입니다. 이러한 벡터는 그래프나 텍스트로 데이터를 나타내는 데 사용할 수 있습니다. 자연어 텍스트를 생성하는 데에도 사용할 수 있습니다.

Streamlit을 사용하여 배포하려면 어떻게 해야 합니까?

Streamlit으로 배포하는 것은 간단합니다. 먼저 Streamlit 계정이 있어야 합니다. 둘째, 배포할 수 있는 소프트웨어가 필요합니다. 예: Beanstalk, S3 또는 rsync. 셋째, 배포를 위해 소프트웨어를 준비해야 합니다. rsync를 사용하여 앱을 웹 서버에 복사합니다. 새 웹 사이트를 배포하는 경우 해당 웹 사이트는 복사한 디렉토리입니다. 기존 웹 사이트를 배포하는 경우 업로드된 웹 사이트는 복사한 디렉터리입니다. 화면 왼쪽 아래에 있는