模型蒸馏(Knowledge Distillation)
知识蒸馏是 用一个大型、性能较强的教师模型(Teacher Model)来指导一个小型、轻量的学生模型(Student Model)学习 的方法。核心思想是:
-
教师模型通常很大、精度高,但部署成本高。
-
学生模型通常较小、推理快,但精度较低。
-
通过让学生“模仿”教师的输出分布,学生可以学习到比直接训练数据更丰富的知识。
核心公式:
-
普通交叉熵训练学生模型:

- 知识蒸馏引入教师模型输出(soft target):

3.总损失:

细节和技巧

还有个小技巧是可以增加标记位置token的损失惩罚。
高温度(T>1):使 Softmax 输出更加平滑,类别之间的差异变小。
低温度(T=1):得到标准的 Softmax 输出。
极低温度(T→0):使 Softmax 输出接近独热编码。Logits 是模型在最后一层的原始输出,表示模型对每个类别的预测置信度。它们通常需要经过 Softmax 函数处理,以转换为概率分布,用于分类决策和损失计算。在模型蒸馏中,Logits 通过温度参数调整,生成软标签,帮助学生模型学习教师模型的隐含知识。
词表对齐
词表对齐指的是 确保两个模型(教师和学生)在处理文本输入时,使用相同的词或子词(token)表示,即 tokenizer 输出的一致性。
-
主要目标是:让学生能够正确理解教师输出的概率分布或者中间表示。
-
如果教师和学生词表不对齐,直接用软标签蒸馏可能会出现“词不对应”的问题。
词表对齐的方式

也可以使用伪标签微调,利用大模型教师生成大量高质量回答(文本级别伪标签);构建学生模型训练集:prompt + 教师生成回答;对学生模型(使用自身tokenizer)进行微调,学习教师的生成分布。
硬标签和软标签有什么区别?为什么要用软标签?
-
硬标签:真实标签 one-hot,信息有限。
-
软标签:教师模型输出的概率分布,包含类别关系。
-
软标签的作用:帮助学生模型学习类别间的关系,提高泛化能力。
为什么蒸馏时要用温度 T?
-
高温度 softmax 会使概率分布更平滑,凸显教师对其他类别的相似性。
知识蒸馏有哪些类型?
Logits 蒸馏(Classic Hinton KD):直接让学生模型 模仿教师模型输出的概率分布(softmax/logits)。
![]()
特征蒸馏(Feature Distillation):不仅模仿输出,还让学生 对齐教师模型的中间层特征。通过 L2 或 MSE 损失匹配教师和学生的特征表示。

注意力蒸馏(Attention Distillation):学生模型不仅对齐特征,还 对齐教师的注意力模式(Attention Map)。在 Transformer 中常用。

关系蒸馏(Relational Distillation): 蒸馏的不再是单个样本的输出或特征,而是 样本之间的关系。样本间的相似性或距离被用作蒸馏目标。

| 类型 | 匹配对象 | 主要作用 | 适用场景 |
|---|---|---|---|
| Logits 蒸馏 | 输出概率 | 传递类别关系 | 分类、模型压缩 |
| 特征蒸馏 | 中间层特征 | 学生学习教师内部表示 | CNN、Transformer |
| 注意力蒸馏 | Attention Map | 学生学习关注模式 | NLP、ViT |
| 关系蒸馏 | 样本间关系 | 学生理解数据分布关系 | 图像识别、低资源任务 |
