0%

知识蒸馏

知识蒸馏

一句话定位:让小模型(Student)去学大模型(Teacher)的输出分布而非仅学标准答案,从而以远低的推理成本继承大模型的能力。

1. 机制:软标签承载类间相似性

  • 硬标签(one-hot 真实标签)只告诉模型”正确答案是猫”;
  • 软标签是 Teacher 输出的完整概率分布,它还告诉模型”这张图有 70% 像猫、25% 像狐狸、0.01% 像卡车”——即类间相似性结构。这部分信息(Hinton 称为 dark knowledge)是硬标签完全没有的,也是蒸馏有效的根本原因。

温度(Temperature)T 的作用:

1
p_i = softmax(z_i / T)
  • T=1 即普通 softmax,Teacher 的分布通常非常尖锐(正确类接近 1),其余类的相对信息被压平、几乎学不到;
  • T > 1 使分布变平滑,放大非目标类之间的相对差异,让 Student 能学到这些相似性信息;
  • 推理时恢复 T=1。

2. 联合 Loss

Student 用软标签 + 硬标签的加权组合训练:

1
L = α · L_soft(Student(T), Teacher(T)) + (1-α) · L_hard(Student, 真实标签)
  • L_soft 通常用 KL 散度,在温度 T 下对齐两者分布(梯度需乘 T² 做尺度补偿);
  • L_hard 是常规交叉熵,防止 Student 被 Teacher 的错误带偏;
  • α 控制两者权重,是主要调参点。

3. 适用场景与工程价值

  • 把大模型能力迁到小模型以降本:这是压缩语境下的核心用途——线上用小模型服务,推理成本(显存、延迟、卡数)成倍下降;
  • 常见形态:大 LLM 生成高质量输出/推理过程 → 作为训练信号蒸馏到小模型(如生成式蒸馏、思维链蒸馏);
  • 与量化/剪枝的区别:蒸馏是换一个更小的模型(结构可自由设计),量化是保持结构降低位宽,剪枝是删掉部分结构。三者可叠加。

在 4.7 的四维评估体系里,”小模型替换(蒸馏)”应与量化、剪枝放在同一张表里比较,而不是被当作另一类问题。

参考:论文《Distilling the Knowledge in a Neural Network》(Hinton et al., 2015)