使用 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 函式庫中的串流(streaming)功能。這讓使用者可以透過即時載入範例來與數據進行即時互動。

數據顯示與繪圖

Streamlit 提供幾種呈現數據的方式:

  • st.dataframe(df): 以表格格式顯示結構化數據。
  • st.bar_chart(): 建立互動式長條圖,用於可視化分佈或頻率。
  • st.pyplot(): 整合外部繪圖函式庫;透過在繪圖腳本(例如使用 seaborn 或 matplotlib)的末尾呼叫此函數,產生的圖表將在 Streamlit 應用程式中渲染。

在 Hugging Face Spaces 上託管專案

將 Streamlit 應用程式部署到 Hugging Face Spaces 的過程是透過簡單的檔案上傳程序來完成的。使用者可以直接將專案檔案拖放到 Space 中。

為了確保應用程式正確執行,開發者必須:

  1. requirements.txt 檔案中包含所有額外的依賴項。
  2. 確保本地使用的 Streamlit 版本與部署到 Space 的版本一致。
  3. 參考 Spaces API 參考文件以獲取詳細的配置選項。

Sources

相關