Skip to content

知识蒸馏(Knowledge Distillation)

一句话 TL;DR:知识蒸馏是用大模型(教师)的输出训练小模型(学生),让小模型接近大模型性能。核心技巧是用高温 softmax 生成"软标签",让学生不只学"哪个对",还学"哪个接近对"(暗知识)。蒸馏是模型压缩的经典方法,与 量化、剪枝并列。


L1 · 一句话点破

知识蒸馏:用一个大的"教师模型"指导训练一个小的"学生模型",让学生学到教师的知识(不只是标准答案,还有答案间的相对关系),从而小模型能达到接近大模型的效果。

形式化:

  • 教师模型 $T$(大,性能好但慢)
  • 学生模型 $S$(小,快但单独训效果差)
  • 训练目标:让 $S$ 的输出逼近 $T$ 的输出(软标签),而非只学硬标签

学生推理时只用 $S$(快、小),但效果接近 $T$。

L2 · 通俗类比

师傅带徒弟:

  • 传统训练(只学硬标签):徒弟只看师傅给的"标准答案"。师傅说"这是猫",徒弟记住"这是猫"。学到的是表面映射。
  • 知识蒸馏(学软标签):徒弟看师傅对每个问题的"判断分布"。师傅说"这是猫(80%)、可能是狗(15%)、 unlikely 是鸟(5%)"。徒弟不只学"这是猫",还学"猫和狗在某些特征上相似"。学到的是更深的"暗知识"。

为什么软标签更有用?

  • 信息量大:硬标签 1 bit(对/错),软标签 N bit(N 个类的相对关系)
  • 类间关系:软标签隐含"猫像狗不像鸟"这种类间结构,硬标签丢失
  • 正则化:软标签平滑,让学生不过度自信,泛化更好

类比:考试题"这是什么动物?"

  • 硬标签答案:"猫"
  • 软标签答案:"80% 猫,15% 狗,5% 鸟"

软标签告诉学生"猫和狗在某些方面相似",这是硬标签学不到的暗知识。师傅把"判断的细微差别"传给徒弟,徒弟学得更深。

L3 · 正经定义

知识蒸馏(Knowledge Distillation, KD) (Hinton et al., 2015):用教师模型的软标签训练学生模型。

软标签生成:用高温 softmax(见 温度):

$$ P_T^{\tau}(v) = \frac{\exp(z_v^T / \tau)}{\sum_{v'} \exp(z_{v'}^T / \tau)} $$

$\tau$ 是温度,典型 $\tau = 3-10$。高温让分布更平,暴露类间关系。

蒸馏损失

$$ \mathcal{L}_{KD} = \alpha \cdot \text{CE}(P_S^{\tau=1}, y) + (1-\alpha) \cdot \tau^2 \cdot \text{KL}(P_T^{\tau} | P_S^{\tau}) $$

  • 第一项:学生学硬标签 $y$(标准 CE)
  • 第二项:学生的软输出 $P_S^{\tau}$ 逼近教师软输出 $P_T^{\tau}$
  • $\tau^2$ 缩放:因为高温软化了梯度,需补偿
  • $\alpha$ 平衡两项,典型 0.5

KD 的变体

变体蒸馏内容用途
输出层 KD最终 logits经典,Hinton 原论文
中间层 KD隐藏层表示FitNets,更深知识
注意力 KD注意力图TinyBERT 等
关系 KD样本间关系RKD
在线 KD互学(无预训教师)Deep Mutual Learning

参考资料

L4 · 原理深挖

4.1 为什么软标签有效:暗知识

Hinton et al., 2015 的核心洞察:软标签包含硬标签丢失的"暗知识"

考虑图像分类(猫/狗/鸟/车/船),对一张猫的图片:

  • 硬标签:[1, 0, 0, 0, 0](猫)
  • 教师软标签(T=1):[0.99, 0.005, 0.003, 0.001, 0.001](几乎只有猫)
  • 教师软标签(T=5):[0.5, 0.2, 0.15, 0.08, 0.07](猫为主,但狗/鸟也有显著概率)

T=1 时软标签接近硬标签,没传递额外信息。高温(T=5)让"猫像狗不像车"的关系显现,学生学到这种类间结构。

暗知识的价值:

  • 类间相似性:哪些类容易混淆、相似度高
  • 类间排斥:哪些类明显不同
  • 难度信号:教师对哪些样本不确定

这些信息硬标签完全丢失,但对学生泛化有用。

4.2 温度的作用:调节软标签的"软度"

温度 $\tau$ 控制 softmax 的"软度"(见 温度):

  • $\tau = 1$:原始 softmax,分布尖锐,接近 hard label
  • $\tau$ 大:分布平坦,类间关系显现,但信噪比下降
  • $\tau \to \infty$:均匀分布,无信息

最优 $\tau$ 需实验调,典型 3-10。$\tau$ 太小暗知识不明显,$\tau$ 太大信号被稀释。

$\tau^2$ 缩放的原因:高温 softmax 的梯度被 $\tau$ 缩小,损失需乘 $\tau^2$ 补偿。这是 Hinton 原论文的细节,实现时不能漏。

4.3 蒸馏 vs 量化 vs 剪枝:三种压缩方式

方法怎么压缩优点缺点
量化比特数减少通用、易实现精度损失
剪枝删参数显存减少需稀疏硬件加速
蒸馏训小模型速度快、部署简单需教师、训练成本

三者可组合:如量化蒸馏后的小模型,或剪枝 + 蒸馏。

蒸馏的独特价值:让小模型架构本身更小。量化和剪枝是"压缩已有模型",蒸馏是"训练一个本来就小的模型"。蒸馏后的小模型在通用硬件上跑得快,不需要特殊支持。

4.4 蒸馏在大模型时代的角色

GPT-3 之前:蒸馏是 NLP 模型压缩主流。DistilBERT、TinyBERT 等把 BERT 压缩 2-7 倍,速度提升 2-10 倍。

GPT-3 之后:蒸馏在大模型领域的角色变化:

① 通用大模型蒸馏

用 GPT-4 等闭源大模型当教师,蒸馏开源小模型。例如 Alpaca、Vicuna 等用 GPT-4 输出训练 LLaMA。这是"模型 IP 蒸馏",但涉及许可证问题。

② 推理能力蒸馏

把推理模型(o1、DeepSeek-R1)的"思维链"蒸馏到普通模型。学生学到的不只是答案,还有推理过程。这是 2024-2025 年的热点。

③ 多模态蒸馏

CLIP、BLIP 等多模态模型的蒸馏,让小模型同时理解图和文。

④ Speculative Decoding 的"蒸馏"

小模型先猜、大模型验证的推理加速,本质是用小模型近似大模型分布,类似蒸馏思想。

但蒸馏在大模型时代有局限:

  • 大模型能力涌现于规模,小模型可能学不到
  • 蒸馏需要大量教师输出,成本高
  • 学生架构选择影响上限

4.5 在线蒸馏:没有预训教师怎么办

经典 KD 需要预训好的教师。但训练教师本身成本高。在线蒸馏让多个模型同时训练、互相学习,无需预训教师:

  • 多个模型并行训练
  • 每个模型既当学生(学其他模型的输出)又当教师(输出供他人学)
  • 互相促进

Deep Mutual Learning 等工作证明在线 KD 有效,但工程复杂度高于经典 KD。

4.6 蒸馏的失败模式

① 教师不够强

教师本身能力有限时,学生学到的是教师的偏见和错误。教师必须显著强于学生独立训练的水平,蒸馏才有意义。

② 容量失配

学生太小,无法表达教师的知识。如把 GPT-4 蒸馏到 1B 模型,可能学生根本学不会复杂推理。

③ 蒸馏数据偏置

蒸馏数据若不覆盖教师能力分布,学生只学到部分能力。如只用对话数据蒸馏,学生可能学不到代码能力。

④ 模式坍塌

学生只学到教师的"表面模式"而非深层能力。如学到教师喜欢用的口头禅,而非推理逻辑。

L5 · 沿革与坑

沿革

  • 2006-2014:蒸馏思想早期出现,Buciluǎ et al., 2006 等工作。
  • 2015Hinton et al. - Distilling the Knowledge 系统化蒸馏理论,奠基性工作。
  • 2014-2015FitNets 提出中间层蒸馏,深化知识传递。
  • 2019DistilBERT 把 BERT 蒸馏成小模型,参数减半、速度翻倍、性能保留 97%。
  • 2020-2022:TinyBERT、MobileBERT 等蒸馏变体在 NLP 普及。
  • 2023:Alpaca、Vicuna 等用 GPT-4 蒸馏 LLaMA,"开源小模型获得闭源大模型能力"成为范式。
  • 2024-2025:推理链蒸馏兴起,把 o1、DeepSeek-R1 的推理能力蒸馏到普通模型。蒸馏成为大模型时代的关键技术。

常见误解

  • 误解:蒸馏 = 让小模型背大模型的答案。 ✅ 真相:蒸馏的核心是学软标签(暗知识),即类间关系和教师的不确定性,不是死记答案。这是为什么用高温 softmax(4.1)。

  • 误解:蒸馏一定能达到教师性能。 ✅ 真相:学生有容量上限。教师太强、学生太小时,学生学不到全部能力。蒸馏是"接近"而非"等于"教师(4.6)。

  • 误解:蒸馏和量化、剪枝是一回事。 ✅ 真相:三种压缩方式机制不同。量化减比特,剪枝删参数,蒸馏训小模型。可组合(4.3)。

  • 误解:用 GPT-4 蒸馏开源模型没问题。 ✅ 真相:OpenAI 等的服务条款通常禁止用其模型输出训练竞争模型。蒸馏涉及许可证问题,商用需谨慎。

  • 误解:大模型时代蒸馏过时了。 ✅ 真相:蒸馏在大模型时代反而更重要。推理链蒸馏、多模态蒸馏、Speculative Decoding 都是热点。小模型 + 蒸馏在边缘部署仍是主流(4.4)。

  • 误解:温度越高软标签信息越多。 ✅ 真相:温度过高让分布趋近均匀,信号被稀释。最优温度需实验调,典型 3-10(4.2)。

面试怎么考

  1. "什么是知识蒸馏?核心思想?" --用大模型(教师)的软标签训小模型(学生),让学生学到暗知识。核心是高温 softmax 暴露类间关系(L1、4.1)。
  2. "什么是暗知识?" --软标签包含的类间相似性、排斥性、难度信号,硬标签丢失(4.1)。
  3. "温度在蒸馏里起什么作用?" --控制 softmax 软度,让类间关系显现。最优 $\tau$ 需调,典型 3-10。$\tau^2$ 缩放补偿梯度(4.2)。
  4. "蒸馏 vs 量化 vs 剪枝?" --量化减比特、剪枝删参数、蒸馏训小模型。可组合(4.3)。
  5. "大模型时代蒸馏还重要吗?" --重要。推理链蒸馏、GPT-4 蒸馏开源模型、多模态蒸馏都是热点(4.4)。
  6. "蒸馏的失败模式?" --教师不够强、容量失配、数据偏置、模式坍塌(4.6)。

延伸阅读


上一篇:量化 -- 怎么把大模型塞进显存。下一篇:剪枝 -- 删掉没用的连接。

内容采用 CC BY-SA 4.0,代码采用 MIT。