Hugging Face 指南:無需程式碼訓練 LLaMA 2 聊天機器人
Hugging Face 推出了一個無程式碼工作流程,使沒有機器學習工程背景的個人能夠微調 LLaMA 2 基礎模型,並將其部署為可共享的聊天應用程式。此過程透過使用一套整合工具:Spaces、AutoTrain 和 ChatUI,使大型語言模型 (LLM) 的客製化變得更易於取得。
無程式碼 LLM 工具鏈
Hugging Face 使用三項主要服務來移除與訓練和部署 LLMs 相關的技術障礙:
- Spaces:提供一個圖形化使用者介面 (GUI) 的服務,用於構建和部署網頁託管的 ML 演示和應用。它支援 Gradio、Streamlit 和 Docker 容器。
- AutoTrain:一個無程式碼工具,專為跨多個領域(包括 NLP、電腦視覺、語音和表格資料)訓練最先進的 ML 模型而設計。它特別支援 LLMs 的微調。
- ChatUI:一個開源使用者介面——與驅動 HuggingChat 的相同介面——允許使用者與開源 LLMs 互動。
逐步實施工作流程
建立自訂聊天機器人的過程分為三個主要階段:環境設置、模型訓練和應用程式部署。
1. 透過 AutoTrain Space 進行環境設置
首先,使用者建立一個新的 Space 並選擇 AutoTrain Docker 範本。關鍵配置需求包括:
- Hardware:免費的 CPU 基本選項足以運行 AutoTrain 應用程式本身,因為實際的模型訓練是在獨立的計算資源上進行的。
- Authentication:必須將 Hugging Face 寫入存取權杖 (
HF_TOKEN) 加入 Space 的密鑰中,以允許應用程式將訓練好的模型保存到使用者的 Hub 帳戶。
2. 微調 LLaMA 2 模型
AutoTrain Space 啟動後,使用者可以透過 GUI 設定訓練作業:
- Model Selection:使用者可以從列表中選擇模型或提供模型卡名稱。例如,可以使用 Meta Llama 2 7b 基礎模型(請注意,Llama 2 是一個需要 Meta 批准的受限模型)。
- Compute Resources:訓練 7b 模型通常需要「A10G Large」GPU。較大的模型需要具有足夠記憶體以完全容納模型的 GPU。
- Training Data:資料必須以 CSV 格式上傳。本指南以 Alpaca 指令調整資料集作為範例。
- Optimization:AutoTrain 提供精度 (FP16)、量化 (Int4/8) 和參數高效微調 (PEFT) 的預設設定,以降低記憶體佔用和訓練成本,同時對性能影響最小。
3. 部署聊天應用程式
模型訓練完成並保存到 Hugging Face Hub 後,將使用第二個 Space 進行部署:
- Template:使用者選擇 ChatUI Docker 範本。
- Hardware:A10G Small GPU 足以運行 7b 模型。
- Configuration:必須將
MODEL_NAME變數設定為 Hub 中訓練好的模型名稱。使用者也可以選擇性提供MONGODB_URL來儲存聊天記錄;否則,將自動建立本地資料庫。 - Inference Tuning:使用者可以調整 temperature、top-p 和 max tokens 生成等參數,以修改模型回應的特性。