對應原題(Common ‧ Fine-Tuning, Post-Training and Alignment)

  • What is distillation, and how do you build a strong small model from a large one? — Asked at: Alibaba

原始論文:Hinton, Vinyals & Dean, Distilling the Knowledge in a Neural Network (2015)。

🎯 什麼情境該想到我

當你「有一個好用但太貴的大模型,想換成便宜的小模型而不掉太多品質」的時候。
★ 這是 服務棧選型與降本 裡「降本 5–10×」的那個槓桿,也是今天大多數開源小模型真正的來源。

⚙️ 怎麼用

經典形式:為什麼 soft target 比 hard label 好

核心概念是「暗知識」(dark knowledge):

Hard label(one-hot):        貓 = 1.0   狗 = 0    車 = 0
Teacher 的 soft target:       貓 = 0.90  狗 = 0.08 車 = 0.001
                                         ▲         ▲
                          「有點像狗」   「完全不像車」
                          ★ 這些非目標類別的相對機率
                            含有 one-hot 標籤沒有的資訊

teacher 不只告訴 student 答案,還告訴它「這題有多接近其他答案」。
這等於免費提供了類別之間的結構關係——一個 hard label 完全丟失的訊號。

溫度 用來放大暗知識:

越大分布越平,小機率的差異越明顯(見 取樣與解碼策略)。

損失函數:

★ 那個 常被問:軟化分布會讓梯度的量級縮小約 ,乘回 是為了讓 soft loss 與 hard loss 的梯度量級可比,這樣改 時不用重調 和學習率。

LLM 時代的三種蒸餾

類型需要什麼資訊量實務可行性
① Logit / 分布蒸餾(白盒)teacher 的完整 logits;同 tokenizer、同詞表最高❌ 只有自己有 teacher 權重時可行
② ★ 序列級 / 黑盒蒸餾teacher 的輸出文字中✅ 只需要 API——這是實務主流
③ 推理鏈蒸餾teacher 的完整推理過程高✅ 只需要 API,且效果顯著

① 白盒蒸餾的一個細節值得知道——前向 KL vs 反向 KL:

行為
前向 KL Mode-covering:逼 student 把機率質量鋪到 teacher 所有的模式上,包括它容量不足以學會的那些 → 結果是到處都學一點、哪裡都不精
反向 KL Mode-seeking:讓 student 專注在它學得會的那些模式上

當 student 容量遠小於 teacher 時,反向 KL 通常更好(MiniLLM 等工作的核心主張)。
這是「小模型不該假裝自己是大模型」的數學版本。

② 黑盒蒸餾就是:用 teacher 生成大量(輸入 → 輸出)配對,student 拿去做 SFT。
大量開源指令模型都是這樣來的。簡單、有效、只需要 API。

③ 推理鏈蒸餾:teacher 產生完整的思考過程,student 學「推理 + 答案」而不只是答案。

DeepSeek-R1 的蒸餾系列就是這條路——用 R1 產生的長推理資料去 SFT 小模型,讓不具備 RL 訓練資源的小模型也獲得可觀的推理能力(見 GRPO 與 RLVR)。
這說明推理能力有相當一部分是可以用資料搬運的。

★ 怎麼建一個強的小模型(題目的實作部分)

#步驟關鍵
1★ 先收窄任務範圍蒸餾在窄任務上效果最好。想要一個「什麼都會的小模型」基本上會失望——容量就是容量
2★ 用你真實的輸入分布生成資料不要用公開資料集。用你線上真實的 query 分布讓 teacher 生成——這是黑盒蒸餾勝負的關鍵
3品質過濾(拒絕採樣)teacher 生 個候選,用 verifier/RM/規則挑最好的。teacher 也會犯錯,不要照單全收
4★ 針對 student 的錯誤補資料找出 student 做錯的樣本 → 讓 teacher 示範 → 加進訓練集。on-policy 蒸餾,效果遠勝盲目擴量
5蒸推理過程,不只蒸答案即使最終產品不輸出推理,訓練時學推理過程也會提升答案品質
6對照 teacher 評估,量 gap指標是「相對 teacher 的保留率」,不是絕對分數。並且要在真實分布上量
7必要時配 PEFTstudent 本身也可以用 LoRA 微調(見 LoRA 與 QLoRA)

和其他壓縮手段的關係

手段改變什麼保留能力
量化只改數值精度,架構與參數量不變高(見 量化 Quantization)
剪枝移除部分權重/結構中,通常要再微調
★ 蒸餾換成一個更小的新模型看任務範圍——窄任務可以接近 teacher,通用任務差距明顯

實務上常疊加:蒸餾出小模型 → 再量化 → 再上推論優化。三者的效益是相乘的。

⚠️ 注意 / 什麼時候不適用

  • ★ 授權問題是真實的商業風險。多數商用 LLM API 的服務條款禁止用其輸出訓練競爭模型。
    → 用 API 輸出做蒸餾之前,先讀 ToS。 這是面試時提出來會加分的實務考量,也是真的會出事的地方。
  • student 的天花板受容量限制。蒸餾搬運的是「行為」,不是「能力上限」。1B 的模型不會因為蒸餾就具備 70B 的推理深度。
  • 會完整繼承 teacher 的錯誤與偏誤,而且 student 沒有能力察覺。teacher 錯的地方,student 會學得很紮實。
  • 分布外表現更差。student 只學了 teacher 在那些資料上的行為,沒見過的分布上退化比 teacher 嚴重得多。
  • ★ 資料生成成本不低。要生成幾十萬筆高品質樣本,teacher 的 API 帳單可能很可觀。先算這筆帳,並用 前綴快取 Prompt Caching 與批次 API 壓成本。
  • 白盒蒸餾需要同 tokenizer。跨家族(Llama teacher → Qwen student)無法做 logit 對齊,只能走黑盒。
  • 不要只用 benchmark 驗收。蒸餾模型很容易在公開基準上看起來不錯、在真實流量上明顯差——一定要用自己的評估集(見 工具-AI系統評估)。

🧪 我實際套用的紀錄

  • 2026-09-20:從面試題庫展開,尚未實際套用。

🔗 相關