Streamlit을 사용하여 Hugging Face Spaces에 모델 및 데이터셋 호스팅하기
Hugging Face Spaces는 대화형 웹 애플리케이션 구축을 위한 프레임워크인 Streamlit과 통합하여 사용자가 머신러닝 모델과 데이터셋을 호스팅하고 선보일 수 있도록 합니다. 이 통합을 통해 개발자는 광범위한 웹 개발 경험 없이도 모델 추론 및 데이터 탐색을 위한 기능적인 UI를 생성할 수 있습니다.
대화형 모델 데모 구축하기
Streamlit은 개발자가 모델 하이퍼파라미터 및 입력을 위한 사용자 인터페이스를 생성할 수 있는 컴포넌트 세트를 제공합니다. 이러한 컴포넌트를 활용하여 사용자는 GPT-2 또는 XLNet과 같은 모델을 사용하는 텍스트 생성 도구와 같은 대화형 애플리케이션을 구축할 수 있습니다.
모델 데모를 위한 주요 Streamlit 컴포넌트는 다음과 같습니다:
.text_area: 텍스트 완성 또는 프롬프트를 위한 다중 행 입력 필드를 생성합니다..sidebar: 메인 UI를 깔끔하게 유지하기 위해 구성 변수를 사이드 패널에 배치할 수 있게 합니다.slider: 하이퍼파라미터(예: temperature 또는 top-p)에 대한 연속적인 값을 캡처합니다. 정수로 취급되는 것을 방지하기 위해 지정된 step이 필요합니다.number_input: 사용자가 특정 정수 값을 입력할 수 있게 합니다.
모델 출력은 st.write 함수를 사용하여 애플리케이션에 직접 표시할 수 있습니다.
데이터셋 및 데이터 시각화
Streamlit은 Hugging Face Datasets 라이브러리, pandas, 그리고 matplotlib, seaborn, bokeh를 포함한 일반적인 시각화 라이브러리와 통합됩니다.
스트리밍을 통한 효율적인 데이터 로딩
전체 데이터셋을 메모리에 다운로드하지 않고 대규모 데이터셋을 처리하려면 개발자는 Datasets 라이브러리의 스트리밍 기능을 사용할 수 있습니다. 이를 통해 예제를 즉시 로드하여 데이터와 즉각적인 상호작용이 가능합니다.
데이터 표시 및 플로팅
Streamlit은 데이터를 제시하는 여러 방법을 제공합니다:
st.dataframe(df): 구조화된 데이터를 테이블 형식으로 표시합니다.st.bar_chart(): 분포 또는 빈도를 시각화하기 위한 대화형 막대 차트를 생성합니다.st.pyplot(): 외부 플로팅 라이브러리를 통합합니다. 플로팅 스크립트의 끝에서 이 함수를 호출하면(예: seaborn 또는 matplotlib 사용), 결과 피규어가 Streamlit 앱에 렌더링됩니다.
Hugging Face Spaces에 프로젝트 호스팅하기
Streamlit 애플리케이션을 Hugging Face Spaces에 배포하는 것은 간단한 파일 업로드 프로세스를 통해 처리됩니다. 사용자는 프로젝트 파일을 Space로 직접 드래그 앤 드롭할 수 있습니다.
애플리케이션이 올바르게 실행되도록 하려면 개발자는 다음을 수행해야 합니다:
- 모든 추가 종속성을
requirements.txt파일에 포함합니다. - 로컬에서 사용된 Streamlit 버전이 Space에 배포된 버전과 일치하는지 확인합니다.
- 자세한 구성 옵션은 Spaces API 레퍼런스를 참조하십시오.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- 프로젝트