知識蒸餾綜述解讀
- 論文: https://arxiv.org/abs/2006.05525
最近Deepseek R1的技術報告中,訓練部分提到使用了知識蒸餾,就像系統性的看看蒸餾算法的原理。看了很多的博客,很多都沒有詳細把知識蒸餾系統的講清楚。我們還是讀一下這篇 2021年的綜述 “Knowledge Distillation: A Survey” 。雖然這篇文章不是針對大模型的知識蒸餾綜述,但可以作為大模型蒸餾學習的入門。
這篇綜述寫的非常詳細,系統性總結了知識蒸餾的很多基礎知識,比如:知識的類型、蒸餾方案、師生結構、蒸餾算法。以及還有詳細的對比效果,充分說明各種蒸餾算法的優劣。
論文結構:
知識蒸餾綜述
├─ 1.Introduction
│ └─ 模型壓縮與加速
├─ 2.知識類型
│ ├─ 響應式知識(Soft Targets)
│ ├─ 特征式知識(中間層特征)
│ └─ 關系型知識(樣本/層間關系)
├─ 3.訓練方案
│ ├─ 離線蒸餾(預訓練教師)
│ ├─ 在線蒸餾(聯合優化)
│ └─ 自蒸餾(同網絡迭代)
├─ 4.教師-學生架構
│ ├─ 簡化結構
│ ├─ 量化結構
│ └─ 同構/異構設計
├─ 5.關鍵算法
│ ├─ 對抗蒸餾(GAN結合)
│ ├─ 多教師蒸餾
│ ├─ 圖基蒸餾
│ └─ 數據無蒸餾
├─ 6.性能對比
├─ 7.應用領域
│ ├─ 視覺識別(CIFAR10/100準確率提升0.33%-7.32%)
│ ├─ NLP(BERT壓縮)
│ └─ 語音識別(實時性優化)
└─ 8.挑戰與未來
也就是對應下圖
1. Introduction
知識蒸餾的定義與發展
起源:Bucilua等 [2] 首次提出模型壓縮,通過大模型或集成模型指導小模型訓練。 正式提出:Hinton等 [5] 將其命名為“知識蒸餾”,強調通過“暗知識”(如Soft Targets)提升學生模型性能。
2. 知識類型(Knowledge)
知識蒸餾的核心是提取教師模型的知識并遷移到學生模型。如Fig 3 所示,知識類型可以分為響應式知識、特征式知識和關系型知識三類。
2.1 響應式知識(Response-Based Knowledge)
- 定義:如Fig 4所示,直接模仿教師模型的輸出層響應(如分類概率)。
- 核心方法:
- Soft Targets [5]:通過溫度參數 T T T 軟化logits,保留類間關聯信息。
p ( z i , T ) = exp ? ( z i / T ) ∑ j exp ? ( z j / T ) p(z_i, T) = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} p(zi?,T)=∑j?exp(zj?/T)exp(zi?/T)? - 損失函數:KL散度(式1、3),強制學生輸出匹配教師的概率分布。
- Soft Targets [5]:通過溫度參數 T T T 軟化logits,保留類間關聯信息。
- 應用場景:圖像分類(如CIFAR10實驗中,IRG方法通過響應式知識提升準確率2.33%)、目標檢測。
- 局限性:依賴輸出層,忽略中間層的語義信息;僅適用于監督學習。
2.2 特征式知識(Feature-Based Knowledge)
- 定義:如Fig 6 所示,利用教師模型中間層的特征表示指導學生學習。
- 核心方法:
- Fitnets [14]:直接匹配中間層特征(hint layer),使用L2損失。
- Attention Transfer(AT) [16]:通過注意力圖傳遞知識,適用于深層網絡。
- Feature Distillation(FT) [19]:通過“因子”(factors)簡化特征表示。
- 損失函數:
L F e a D = L F ( Φ t ( f t ( x ) ) , Φ s ( f s ( x ) ) ) L_{FeaD} = \mathcal{L}_F\left(\Phi_t(f_t(x)), \Phi_s(f_s(x))\right) LFeaD?=LF?(Φt?(ft?(x)),Φs?(fs?(x)))
其中 Φ \Phi Φ 處理特征尺寸差異, L F \mathcal{L}_F LF? 包括L2、L1、交叉熵等。 - 挑戰:
- 如何選擇hint層(深層特征可能過擬合)。
- 特征尺寸不匹配時的對齊問題(如ResNet與MobileNet)。
2.3 關系型知識(Relation-Based Knowledge)
- 定義:如Fig 7所示,捕捉教師模型中層間關系或樣本間的關聯。
- 核心方法:
- FSP矩陣 [17]:通過Gram矩陣建模層間關系,使用Frobenius范數損失。
- Instance Relation Graph(IRG) [7]:構建樣本關系圖,保留結構信息。
- Similarity-Preserving(SP):匹配輸入對的激活相似性。
- 損失函數:
L R e l D = L R 1 ( Ψ t ( f ^ t , f ˇ t ) , Ψ s ( f ^ s , f ˇ s ) ) L_{RelD} = \mathcal{L}_{R^1}\left(\Psi_t(\hat{f}_t, \check{f}_t), \Psi_s(\hat{f}_s, \check{f}_s)\right) LRelD?=LR1?(Ψt?(f^?t?,fˇ?t?),Ψs?(f^?s?,fˇ?s?))
其中 Ψ \Psi Ψ 計算特征對的相似性, L R 1 \mathcal{L}_{R^1} LR1? 包括EM距離、Huber損失等。 - 挑戰:
- 圖結構設計的復雜性(如如何定義節點和邊)。
- 計算成本高(需處理大量樣本對)。
3. 蒸餾方案(Distillation Schemes)
Fig 8 展示了知識蒸餾中三種典型的訓練方案,對應第三章中提到的離線蒸餾、在線蒸餾和自蒸餾:
-
離線蒸餾
教師模型預先訓練完成后固定,學生模型通過模仿教師的輸出(如軟標簽或中間特征)進行學習。圖示中教師為紅色(已訓練),學生為黃色(待訓練),知識單向傳遞。該方案簡單易行,但可能因師生容量差距導致知識傳遞效率受限。 -
在線蒸餾
教師與學生同時訓練,形成端到端框架。教師通常由學生的集合或動態更新的模型構成,如多網絡協作學習。圖示中兩者均為黃色,體現同步優化。此方案通過相互監督提升性能,但需平衡教師容量與訓練效率。 -
自蒸餾
同一模型的不同部分或階段間進行知識傳遞。例如,利用深層特征監督淺層網絡,或不同訓練階段的模型狀態互導。圖示中教師與學生為同一模型(黃色),強調自我優化。該方案無需外部教師,但依賴模型內部結構設計。
這三種方案在圖示中通過顏色和箭頭區分:紅色代表預訓練完成的教師,黃色代表訓練中的模型,箭頭方向表示知識傳遞路徑。離線蒸餾為單向傳遞,在線蒸餾為雙向互動,自蒸餾則為模型內部循環。
4. 師生結構(Teacher-Student Architecture)
如圖Fig 9, 展示了知識蒸餾中教師模型與學生模型之間的典型架構關系,主要分為四種類型:
-
簡化結構
學生模型是教師模型的簡化版本,通過減少網絡層數或通道數來降低復雜度,同時保留核心功能。例如,將深層網絡縮短為淺層網絡,或減少每層的神經元數量。 -
量化結構
學生模型與教師模型結構相同,但參數被量化(如降低浮點精度),從而減少存儲和計算需求,同時通過知識蒸餾保持性能。 -
相同結構
學生模型與教師模型架構完全一致,常見于在線蒸餾或自蒸餾場景,通過協作學習或自我優化提升性能。 -
小型優化結構
學生模型采用高效的基礎操作(如深度可分離卷積)或通過神經架構搜索(NAS)優化的全局結構,以在有限資源下最大化性能。
這些架構設計旨在彌合教師與學生之間的容量差距,確保知識有效傳遞。例如,簡化結構適用于離線蒸餾,量化結構結合模型壓縮,相同結構支持在線協作,而優化結構則通過算法設計提升效率。架構選擇需平衡模型復雜度與知識傳遞效果,以適應不同應用場景的需求。
5. 蒸餾算法
本章詳細介紹知識蒸餾的核心算法,按技術路線分為對抗蒸餾、多教師蒸餾、跨模態蒸餾等九類,分析其原理、方法及應用場景。
5.1 對抗蒸餾(Adversarial Distillation)
如Fig 10 所示,結合生成對抗網絡(GAN)增強知識遷移,解決數據不足或噪聲問題。
-
生成對抗網絡生成數據
- 結構:使用生成器(G)生成合成數據,用于增強訓練集或直接訓練學生模型。教師模型可能作為判別器(D)指導生成過程。
- 應用:緩解數據不足問題,生成更具挑戰性的樣本以提升學生魯棒性。
-
判別器區分師生輸出
- 結構:引入判別器(D)區分學生(S)和教師(T)的輸出(如logits或特征),迫使學生模仿教師分布。
- 目標:通過對抗訓練縮小師生模型的分布差異,增強知識傳遞效果。
-
在線聯合優化
- 結構:教師與學生同時訓練,判別器監督兩者的協同學習,形成動態優化循環。
- 優勢:避免離線蒸餾的靜態知識傳遞,提升適應性和泛化能力。
5.2 多教師蒸餾(Multi-Teacher Distillation)
Fig 11,展示了集成多個教師模型的知識,提升學生泛化性。該框架利用多個教師模型的知識訓練學生:
-
知識整合方式
- 平均響應:直接平均多個教師的logits作為監督信號。
- 特征融合:結合不同教師的中間特征或關系知識。
- 動態選擇:按迭代或樣本動態選擇教師知識(如隨機選取教師)。
-
優勢
- 多源知識互補,提升學生模型的多樣性和魯棒性。
- 適用于跨領域、跨模態或多任務場景(如多語言翻譯)。
5.3 跨模態蒸餾(Cross-Modal Distillation)
遷移不同模態(如圖像、文本)的知識,解決模態缺失問題。該框架實現不同模態間的知識遷移:
-
典型場景
- 輸入模態轉換:例如從RGB圖像(教師)到深度圖像(學生)。
- 輸出模態轉換:如從文本模態(教師)到視覺模態(學生)。
-
核心機制
- 利用配對樣本(如同步的RGB和深度數據)傳遞標注信息。
- 通過對抗學習或特征對齊彌合模態差異,確保知識有效遷移。
5.4 圖基蒸餾(Graph-Based Distillation)
通過圖結構建模特征或樣本間關系。該框架通過圖結構建模數據關系以傳遞知識:
-
圖的構建方式
- 特征圖關系:使用Gram矩陣或注意力機制建模層間特征關聯。
- 樣本關系:通過相似度矩陣或圖神經網絡(GNN)捕捉樣本間的結構信息。
-
應用
- 保持數據的流形結構,適用于圖像分類、動作識別等需保留關系的任務。
5.6 數據無蒸餾(Data-Free Distillation)
在無真實數據情況下,基于教師特征生成合成數據。該框架在無真實數據時生成合成數據進行知識傳遞:
-
數據生成方法
- GAN生成:通過GAN生成合成樣本,利用教師模型的特征分布指導生成。
- 特征重構:基于教師的層激活或譜信息重建輸入數據。
-
挑戰
- 生成數據的多樣性和質量直接影響學生模型的泛化能力。
5.7 量化蒸餾(Quantized Distillation)
結合模型量化與知識蒸餾,降低計算成本。該框架結合量化技術壓縮模型:
-
量化與蒸餾結合
- 教師量化:將高精度教師模型量化(如32位→8位),作為學生的監督源。
- 學生量化:訓練低精度學生模型,通過蒸餾保留教師的知識。
-
優勢
- 減少模型存儲和計算需求,同時通過知識蒸餾補償量化帶來的精度損失。
6. 性能對比
本章通過實驗對比不同知識蒸餾方法在CIFAR-10和CIFAR-100數據集上的性能,驗證蒸餾策略的有效性,并總結關鍵觀察。
6.1 實驗設置
- 數據集:
- CIFAR-10:10類,5萬訓練/1萬測試圖像(32×32)。
- CIFAR-100:100類,數據規模同上。
- 評估指標:分類準確率(%)。
- 對比方法:涵蓋離線、在線、自蒸餾及不同知識類型的典型算法(如FSP、DML、IRG等)。
6.2 主要實驗結果
第六章強調知識蒸餾的核心要素——知識類型(響應型、特征型、關系型)與蒸餾策略(離線、在線、自蒸餾)的協同作用。Table 5 的結果驗證了這一框架:
CIFAR-10 性能對比
-
離線蒸餾(響應型 + 特征型知識)
- 代表方法:FSP(關系型)、IRG(關系型)、SP(特征型)。
- 表現:輕量化模型(如 ResNet8、ResNet20-x0.5)的準確率提升顯著(如 IRG 提升 2.33%)。
- 第六章關聯:關系型知識(如特征間的空間關系、層間依賴)在壓縮模型中尤為關鍵,因其保留了數據的結構信息,彌補了師生容量差距。
-
在線蒸餾(動態知識交互)
- 代表方法:DML(響應型)、PCL(響應型)。
- 表現:師生同步優化使 ResNet32、ResNet110 的準確率進一步提升(如 PCL 提升 0.62%)。
- 第六章關聯:在線策略通過動態調整教師(如多學生協作或迭代更新的教師),充分利用響應型知識的實時反饋,避免離線蒸餾的靜態局限性。
-
自蒸餾(內部知識遷移)
- 代表方法:Xu & Liu(特征型)。
- 表現:ResNet32 提升 0.90%,依賴模型內部深層特征對淺層的監督。
- 第六章關聯:自蒸餾通過“溫故知新”機制(如淺層學習基礎特征,深層學習抽象知識),實現模型自優化,無需外部教師。
CIFAR-100 性能對比
CIFAR100 的復雜性(100 類)凸顯了知識類型與任務適配的重要性,第六章強調多知識融合與策略創新:
-
離線蒸餾(多知識融合)
- 代表方法:RKD(關系型 + 特征型)、SemCKD(特征型)。
- 表現:復雜任務中,多知識融合(如 RKD 對 VGG11 提升 3.40%)優于單一知識類型,因關系型知識捕捉類間差異,特征型知識保留層次表征。
- 第六章關聯:第六章指出,復雜任務需結合多層次知識(如淺層的低級特征與深層的語義關系),RKD 等方法通過聯合優化特征距離與關系矩陣,提升泛化能力。
-
在線蒸餾(動態適應類間差異)
- 代表方法:DCM(響應型)、KDCL(響應型 + 特征型)。
- 表現:MobileNet 在 DCM 下提升 4.87%,超越離線方法。
- 第六章關聯:在線蒸餾的動態協作(如師生互導)更適應多類場景的分布變化,通過實時調整知識傳遞路徑,優化類間邊界的學習。
-
自蒸餾(結構設計驅動)
- 代表方法:Tf-KD(特征型)、CS-KD(關系型)。
- 表現:ResNet18 提升 2.72%,依賴模型內部的層次化監督(如跨階段特征對齊)。
- 第六章關聯:自蒸餾的有效性依賴架構設計(如第六章提到的 ABF 融合模塊、HCL 層次對比損失),通過結構化知識傳遞(如空間權重分配、多尺度特征對齊)增強模型深度表達。
7. Applications
- 計算機視覺:知識蒸餾用于壓縮復雜視覺模型(如目標檢測),使其適配邊緣設備(如無人機、安全攝像頭)的實時推理需求。
- 自然語言處理(NLP):通過蒸餾生成輕量級NLP模型(如文本分類、翻譯),支持聊天機器人、移動設備等實時場景的高效部署。
- 邊緣計算:輕量化模型經蒸餾后可在資源受限的邊緣設備(如物聯網終端)運行,支撐實時視頻分析、圖像處理等邊緣智能應用。
- 推薦系統:蒸餾技術優化推薦模型的計算效率,使其更靈活地分布式部署,基于用戶行為數據提供個性化服務。
- 異常檢測:構建輕量級蒸餾模型識別網絡流量或用戶行為中的異常模式,提升網絡安全威脅檢測的速度與能效。
- 數據安全:結合知識蒸餾與圖譜技術,強化敏感內容識別、異常行為監測,應用于數據防護、態勢感知等安全解決方案。
- 多模態與跨任務遷移:通過原型引導或特征增強,實現跨模態(如圖像-文本)或跨任務(如分類-檢測)的知識遷移,拓展模型泛化能力。
- 量子計算:探索蒸餾技術優化量子模型表示,提升量子硬件上的算法運行效率,推動量子計算的實際應用落地。
8. 挑戰和方向
核心挑戰
- 師生能力鴻溝:教師模型難以完美捕捉數據分布,學生因容量限制導致知識傳遞效率受限。
- 數據偏差放大:生成數據質量依賴教師與種子數據,易引入偏差或模式單一問題。
- 隱私與通信瓶頸:聯邦學習中需平衡隱私保護與通信效率,異構設備差異加劇技術難度。
- 計算存儲成本:大型教師模型訓練開銷大,學生模型壓縮(如量化)易損精度。
- 知識適配性不足:不同任務(如圖像/文本)需定制知識類型(響應/特征/關系),通用方法缺失。
- 可解釋性與倫理:學生繼承黑箱決策邏輯,缺乏透明度,且需約束偏好/價值對齊風險。
未來方向
- 抽象知識遷移:轉向推理模式、偏好對齊等高層知識,適配LLM等復雜模型。
- 自監督蒸餾創新:結合自監督學習,利用無標簽數據提升泛化,降低標注依賴。
- 多模態跨領域融合:突破模態差異,實現圖像-文本-語音等多源知識協同遷移。
- 聯邦隱私蒸餾:設計隱私保護協議(如差分隱私),優化分布式場景下的知識交互。
- 邊緣智能優化:結合量化/剪枝,開發輕量化框架,適配物聯網設備實時推理。
- 強化學習結合:引入獎勵模型(如DPO、RRHF),優化生成質量與對齊性,拓展對話系統應用。
- 可解釋性增強:設計可視化機制(如特征重要性傳播),提升模型透明度與倫理合規。
- 硬件協同設計:針對專用硬件(TPU、量子計算)優化蒸餾策略,提升計算效率。
引用
[1] Bashivan, P., et al. (2019). Teacher-Guided Neural Architecture Search. ICCV.
[2] Bucilua, C., et al. (2006). Model Compression. SIGKDD.
[3] Chung, J., et al. (2020). Adversarial Knowledge Distillation. NeurIPS.
[4] Gou, J., et al. (2020). Knowledge Distillation: A Survey. IEEE TPAMI.
[5] Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. NIPS Workshop.
[6] Jiao, X., et al. (2020). TinyBERT: Distilling BERT for Natural Language Understanding. EMNLP.
[7] Liu, X., et al. (2019). Instance Relation Graph for Knowledge Distillation. CVPR.
[8] Polino, A., et al. (2018). Model Compression via Distillation and Quantization. ICLR.
[9] Mirzadeh, A., et al. (2020). Are We Distilling the Right Knowledge? ICML.
[10] Park, D., & Kwak, N. (2020). Multi-Teacher Knowledge Distillation with Representation Calibration. CVPR.
[11] Phuong, H., & Lampert, C. H. (2019). Understanding Knowledge Distillation via Neural Tangent Kernel. ICLR.
[12] Tang, J., & Wang, D. (2018). Ranking Distillation for Top-N Recommendation. KDD.
[13] Yuan, L., et al. (2020). Knowledge Distillation with Self-Supervision. CVPR.
[14] Yim, J., et al. (2017). A Gift from Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learning. CVPR.
[15] Yu, X., et al. (2017). On Compressing Deep Models by Low Rank and Sparse Decomposition. CVPR.
[16] Zagoruyko, S., & Komodakis, N. (2017). Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer. ICLR.
[17] Yim, J., et al. (2017). A Gift from Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learning. CVPR.
[18] Zhang, Y., et al. (2018). Deep Mutual Learning. CVPR.
[19] Kim, J., Park, S. & Kwak, N. (2018). Paraphrasing complex network: Network compression via factor transfer. In: NeurIPS.
[20] Zhang, Y., Xiang, T., Hospedales, T. M. & Lu, H.(2018b). Deep mutual learning. In: CVPR.
[21] Zhang, L., Song, J., Gao, A., Chen, J., Bao, C. &Ma, K. (2019b). Be your own teacher: Improve the performance of convolutional neural networks via self distillation. In: ICCV.