distillationtutorialfine-tuningproductiongguf
將 Claude 或 GPT 蒸餾為本地 7B 模型
逐步教程:用 Claude 或 GPT-4o 生成合成資料集,以 LoRA 微調 7B 模型,匯出為 GGUF 並在本地透過 Ollama 執行。
Edward Xi Yang
您有一個在 Claude Sonnet 或 GPT-4o 上運行的系統。它運作良好。品質很扎實。但每個請求都要花錢,每個請求都增加延遲,每個請求都將您的資料發送到別人的伺服器上。您希望擁有驅動您產品的模型。
本教程帶您完成完整的蒸餾管道:從定義任務到 生成合成資料、微調 7B 模型,以及通過 Ollama 在本地部署。每個步驟都包括具體參數、預期輸出和疑難排解指導。
總時間: 3 至 4 小時(包括訓練等待時間) 總成本: 整個管道 10 至 30 美元 預期結果: 在您的特定任務上達到教師模型品質的 85 至 95%
先決條件
開始之前,您需要:
- 一個 Ertas 帳戶(免費方案對本教程足夠)
- 對您的教師模型的 API 存取——Anthropic API 金鑰(用於 Claude)或 OpenAI API 金鑰(用於 GPT-4o)
- 明確定義的任務——分類、提取、格式化或領域問答
- 50 個種子示例,包含您任務的正確輸入輸出對
- 一台用於本地部署的機器——超過 8GB VRAM 的 GPU 或超過 16GB RAM 用於 CPU 推理
讓我們逐步說明每個步驟。
步驟 1:定義任務範圍
蒸餾適用於窄任務。越窄越好。您的任務定義應該能用一句話概括:
好的任務定義:
- 「將客戶支援電子郵件分類為 8 個類別之一,並返回包含類別和信心值的 JSON 物件。」
- 「從發票 PDF(預處理為文字)中提取供應商名稱、發票號碼、日期和總金額。」
- 「將自然語言搜尋查詢轉換為我們產品目錄架構的 Elasticsearch DSL 查詢。」
- 「使用相關文件部分作為上下文,回答關於我們 API 文件的問題。」
不好的任務定義(太廣泛):
- 「幫助客戶解決問題。」
- 「處理文件。」
- 「回覆電子郵件。」
您的任務定義應指定:
- 輸入格式: 模型收到什麼?典型輸入有多長?範圍是什麼?
- 輸出格式: 模型應該確切產生什麼?JSON?標籤?結構化文字?