What is Knowledge Distillation(知識蒸餾)?
較小的「學生」模型被訓練來複製較大「教師」模型行為的模型壓縮技術。
Definition
知識蒸餾是一種訓練技術,其中大型高效能模型(教師)將其學到的知識轉移給較小、更高效的模型(學生)。學生不是在資料集的硬標籤上訓練,而是被訓練來匹配教師的輸出分佈——包括分配給錯誤答案的相對機率,這些機率編碼了關於概念之間關係的寶貴資訊,而硬標籤會丟棄這些資訊。
在 LLM 的背景下,蒸餾最常見的形式是生成合成訓練資料。一個強大的教師模型(如 GPT-4 或 Claude)對一組多樣的提示生成高品質的回應,然後在這些教師生成的回應上微調一個較小的開源模型。這種方法被用來建立 Alpaca 和 Vicuna 等模型,已被證明在將能力從前沿模型轉移到足以在消費級硬體上運行的小型模型方面非常有效。
蒸餾可以在多個層級運作:輸出層級蒸餾在教師生成的文字上訓練學 生;logit 層級蒸餾訓練學生匹配教師對 token 的完整機率分佈;中間層級蒸餾將學生的內部表示與教師的隱藏狀態對齊。每個層級捕獲教師知識的程度遞進增加,但需要對教師模型內部的存取也遞進增加。
Why It Matters
最大和最有能力的模型通常對於生產部署來說過於昂貴或過於緩慢。一個 70B 參數的模型可能提供出色的品質,但需要多個 GPU 且每千次請求花費數美元。知識蒸餾允許團隊在 10-50 倍更小、在單一 GPU 上運行且每千次請求只需幾分錢的模型中捕獲大型模型 80-90% 的品質。
蒸餾還實現了本地和邊緣部署。許多組織由於隱私、法規或延遲要求無法將資料發送到雲端託管的大型模型。透過將有能力的雲端模型蒸餾成小型本地模型,團隊可以在受限環境中部署 AI 能力,而不犧牲前沿模型研究帶來的品質增益。
How It Works
LLM 最常見的蒸餾工作流程是基於回應的蒸餾。實踐者策展一組代表目標使用場景的多樣提示,透過教師模型運行它們以生成高品質的回應,然後使用標準監督式訓練在這些提示-回應對上微調學生模型。學生學習模仿教師的回應風格、推理模式和輸出品質。
更進階的方法使用教師的 token 層級機率(logits)作為軟目標。學生不是在單一正確回應上訓練,而是學習匹配教師在每個 token 位置的完整機率分佈。這更具資訊量,因為非選擇 token 的機率編碼了概念之間的關係。溫度參數控制賦予 低機率 token 的權重,較高的溫度鼓勵學生學習更廣泛的分佈模式。
Example Use Case
一家公司使用 GPT-4 進行合約分析,但需要在本地處理敏感文件。他們透過在非敏感的合成合約上使用 GPT-4 生成 15,000 個合約分析範例來蒸餾 GPT-4 的合約分析能力,然後在這些回應上微調 Llama 3 8B 模型。蒸餾後的模型在合約分析方面達到 GPT-4 87% 的準確度,同時完全在本地的單一 GPU 上運行,滿足了品質和隱私的雙重要求。
Key Takeaways
- 知識蒸餾將能力從大型教師模型轉移到較小的、可部署的學生模型。
- 基於回應的蒸餾使用教師生成的文字作為學生的訓練資料。
- Logit 層級蒸餾更有效,但需要存取教師模型的內部結構。
- 蒸餾通常在部署成本降低 10-50 倍的情況下保留教師 80-90% 的品質。
- 它使在前沿雲端模型上開發的能力能夠在本地和邊緣環境部署。
How Ertas Helps
Ertas Studio 支援知識蒸餾工作流程,使用者可以在教師生成的資料上微調較小的模型。Ertas Data Suite 協助準備和清理由教師模型生成的合成資料集,確保高品質的蒸餾訓練資料。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.