
【模型压缩+推理加速】知识蒸馏综述解读(Knowledge Distillation)
最近Deepseek R1的技术报告中,训练部分提到使用了知识蒸馏,就像系统性的看看蒸馏算法的原理。看了很多的博客,很多都没有详细把知识蒸馏系统的讲清楚。我们还是读一下这篇 2021年的综述 “Knowledge Distillation: A Survey”。虽然这篇文章不是针对大模型的知识蒸馏综述,但可以作为大模型蒸馏学习的入门。这篇综述写的非常详细,系统性总结了知识蒸馏的很多基础知识,比如:
知识蒸馏综述解读
- 论文: 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)=∑jexp(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.
更多推荐
所有评论(0)