
什麼是知識蒸餾(Knowledge Distillation)?AI 模型壓縮技術原理與應用解析
什麼是知識蒸餾?
知識蒸餾(Knowledge Distillation)是一種 AI 模型壓縮技術,核心概念是將大型「教師模型」(Teacher Model)所學到的知識,轉移到體積更小、運算更快的「學生模型」(Student Model)。如此一來,學生模型能在保持接近教師模型性能的前提下,大幅降低所需的計算資源與記憶體空間。
這項技術最早由 Geoffrey Hinton 等人於 2015 年的論文 《Distilling the Knowledge in a Neural Network》中系統化提出,如今已成為深度學習部署流程中不可或缺的一環。
為什麼需要知識蒸餾?
近年來,深度學習模型的參數量呈指數級增長,動輒數十億甚至數千億參數。雖然大模型在準確率上表現優異,但在實際應用中面臨以下挑戰:
- 部署成本高昂:大規模模型需要昂貴的 GPU 叢集才能運行,推論成本居高不下。
- 邊緣裝置資源受限:智慧手機、IoT 感測器、嵌入式裝置的算力與記憶體十分有限,難以直接運行大模型。
- 即時回應需求:語音助理、自動駕駛、工業檢測等場景要求極低延遲,大模型推論速度往往無法滿足。
- 能耗限制:行動裝置與電池供電設備對功耗極為敏感,模型必須足夠輕量。
知識蒸餾提供了一個系統化的解決方案:用小模型取代大模型進行實際推論,在精度與效率之間取得平衡。
知識蒸餾的運作原理
教師模型與學生模型
知識蒸餾的架構包含兩個模型。教師模型通常是已訓練完成的大型模型,具有較高的準確率;學生模型則是參數量較少的小型模型。訓練過程中,學生模型不僅學習真實標籤(hard labels),同時也模仿教師模型的輸出分佈。
Soft Labels 與 Dark Knowledge
傳統監督式學習使用「硬標籤」(hard labels),例如一張貓的圖片標記為 [1, 0, 0](貓、狗、鳥)。然而,教師模型輸出的是「軟標籤」(soft labels),例如 [0.85, 0.12, 0.03],這組機率分佈蘊含了模型對各類別之間關聯性的判斷。Hinton 將這些額外資訊稱為「暗知識」(Dark Knowledge),因為它們在硬標籤中被完全丟棄,卻能為學生模型提供更豐富的學習信號。
溫度參數(Temperature Parameter)
為了讓軟標籤中的機率分佈更加平滑、更容易學習,知識蒸餾引入了溫度參數 T。調整 softmax 函數如下:
qi = exp(zi / T) / Σ exp(zj / T)
當 T 大於 1 時,輸出分佈變得更柔和,使學生模型能夠更清楚觀察到各類別之間的相對關係。T 的典型設定值通常介於 2 到 20 之間。
損失函數與 KL 散度
學生模型的訓練損失由兩部分組成:一是與真實標籤的交叉熵損失(hard loss),二是與教師模型軟標籤之間的 KL 散度(Kullback-Leibler Divergence),也稱為蒸餾損失(distillation loss)。KL 散度衡量兩組機率分佈的差異,數值越小表示學生模型的輸出越接近教師模型。總損失函數可表示為:
L = α × Lhard + (1 − α) × T² × KL(Pteacher ‖ Pstudent)
其中 α 為權重超參數,用於平衡兩種損失的相對重要性。詳細的實作方式可參考 PyTorch 官方知識蒸餾教學文件。
知識蒸餾的實際應用場景
- 手機端 AI:Apple、Google 等公司利用知識蒸餾,將語音辨識、影像處理等模型壓縮至可在手機離線執行,兼顧隱私與速度。
- IoT 與邊緣運算:智慧攝影機、環境感測器等裝置透過蒸餾後的輕量模型,可在本地完成即時推論,無需依賴雲端。
- 即時推論服務:線上客服聊天機器人、推薦系統等需要低延遲回應的應用,使用蒸餾模型可大幅降低推論時間與伺服器成本。
- 自動駕駛:車載系統對延遲極為敏感,蒸餾後的模型可在有限的車載算力下快速完成物體偵測與決策。
與其他模型壓縮技術的比較
知識蒸餾並非唯一的模型壓縮手段。以下比較三種主流技術的特性:
- 知識蒸餾(Knowledge Distillation):透過教師模型指導學生模型訓練,壓縮比高,但需要額外的訓練流程與教師模型。
- 量化(Quantization):將模型權重從 32 位元浮點數降至 8 位元整數甚至更低,減少記憶體佔用與加速推論。技術成熟,可與蒸餾搭配使用。
- 剪枝(Pruning):移除模型中不重要的權重或神經元,精簡網路結構。可分為非結構化剪枝與結構化剪枝兩類。
在實務中,這三種技術經常合併使用。例如先以知識蒸餾訓練小型模型,再透過量化與剪枝進一步壓縮,達到極致的效率最佳化。
2025 至 2026 年行業趨勢
進入 2025 年,知識蒸餾技術在大型語言模型(LLM)領域的應用尤為矚目。多家機構透過蒸餾方式,將 GPT-4 級別模型的能力轉移至開源小模型,例如以蒸餾技術打造的輕量推理模型在各项基準測試中表現亮眼。此外,多教師蒸餾(multi-teacher distillation)、自蒸餾(self-distillation)、資料蒸餾(data distillation)等變體也不斷涌現,進一步拓寬了應用邊界。
展望 2026 年,隨著邊緣 AI 晶片性能持續提升,以及模型壓縮工具鏈日趨成熟,知識蒸餾可望成為 AI 民主化的關鍵推手,讓更多開發者能夠以低成本部署高性能 AI 模型。
常見問題(FAQ)
知識蒸餾和模型量化有什麼差別?
知識蒸餾是透過教師模型重新訓練一個結構更小的學生模型,屬於訓練階段的壓縮方法;模型量化則是改變權重的數值精度(例如從 FP32 降為 INT8),屬於推論階段的最佳化。兩者可以疊加使用,先蒸餾再量化能獲得更大的壓縮效益。
知識蒸餾會降低模型準確率嗎?
知識蒸餾後的學生模型準確率通常略低於教師模型,但在設計良好的情況下,兩者的差距往往很小。事實上,在某些任務中,學生模型因為吸收了教師模型的軟標籤資訊,甚至可能超越從零訓練的同等規模模型。
什麼是溫度參數 T 在知識蒸餾中的作用?
溫度參數 T 用於調整 softmax 輸出的平滑程度。T 值越高,輸出分佈越柔和,各類別間的機率差異越容易被學生模型觀察到;T 值越低則分佈越尖銳。適當的 T 值能幫助學生模型更有效地學習教師模型的暗知識。
知識蒸餾適用於大型語言模型嗎?
是的。2024 至 2025 年間,蒸餾已成為壓縮 LLM 的主流方法之一。開源社群透過蒸餾技術將大型商用模型的能力轉移至參數量較少的開源模型,使小型 LLM 也能具備不錯的推理與對話能力,大幅降低部署門檻。
如何選擇教師模型與學生模型?
教師模型應選擇準確率高、能力完備的模型,確保能提供高品質的軟標籤;學生模型的架構則應考量目標部署環境的算力與記憶體限制。常見的做法是選擇同一架構系列的較小版本,或採用專為邊緣裝置設計的輕量網路結構。
參考資料
- Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531.
- Gou, J., Yu, B., Maybank, S. J., & Tao, D. (2021). Knowledge Distillation: A Survey. International Journal of Computer Vision.
- PyTorch Knowledge Distillation Tutorial
- Keras Knowledge Distillation Example
