Knowledge Distillation(知识蒸馏)
用一个更强的”教师模型”去训练一个较小/较弱的”学生模型”,让学生模仿教师的行为——不仅是最终答案,更是教师对输出的概率判断。
是什么
Knowledge Distillation(KD)最早由 Hinton et al. (2015) 提出。核心思想是:
- 教师模型(Teacher):一个已训练好的大模型,对输入 输出概率分布
- 学生模型(Student):一个较小的模型,学习目标是
学生不仅学”正确答案是什么”,还学教师对不同答案的概率判断——这种隐藏在 softmax 输出中的细粒度信息被称为 dark knowledge(暗知识)。
Dark Knowledge 的直觉
普通 SFT 用 hard label 训练:
输入:法国首都是哪里?
标签:巴黎 ✓,其他 ✗
模型只知道”巴黎正确,其他都错”。
KD 中,教师给出 soft label(概率分布):
巴黎:0.92
马赛:0.03
里昂:0.02
柏林:0.001
这告诉学生:
- “巴黎”最对
- “马赛/里昂”虽不对,但至少是法国城市,比”柏林”更接近
- 不同错误之间存在相似度层级——这就是 dark knowledge
为什么重要
- 模型压缩:将大模型能力迁移到小模型,降低推理成本
- 信息效率:soft label 比 hard label 包含更丰富的监督信号( vs , 为词表大小)
- 泛化提升:学生学到教师分布中的归纳偏置,往往比单独训练效果更好
- 能力迁移:将特定能力(数学、代码、安全、工具调用)从强模型蒸馏到弱模型
工作原理
三种主要蒸馏形式
1. Response-Level KD / Sequence-Level KD
教师先生成完整回答,学生用这些回答做 SFT。
Prompt: 解释一下牛顿第二定律
Teacher → "牛顿第二定律指出,物体的加速度与所受合外力成正比……"
Student → 用教师答案做 SFT
优点:简单、常用、不需要教师输出 logits 缺点:本质是”用教师数据做监督微调”,学生只看到最终答案,没学到推理过程
2. Logit KD / Token-Level KD
教师不仅给最终文本,还给每个 token 的概率分布。训练目标通常是最小化 KL 散度:
这是 Forward KL:mean-seeking,推动学生覆盖教师的所有高概率模式。
优点:信息密度高,能传递完整分布 缺点:需要教师 full logits(计算/存储成本高),师生 tokenizer 不同时麻烦
3. Reasoning Distillation
对于推理模型,蒸馏目标扩展为:
- Chain-of-Thought 推理步骤
- 数学证明路径
- 代码推理过程
- 工具调用轨迹
- Agent planning 过程
让小模型不仅学会答案,更学会”大模型是怎么一步步思考的”。
Forward KL vs Reverse KL
| KL 方向 | 公式 | 性质 | 适用场景 |
|---|---|---|---|
| Forward KL | Mean-seeking,覆盖教师所有模式 | 传统 logit distillation | |
| Reverse KL | Mode-seeking,锁定单一模式 | On-Policy Distillation,RL 结合 |
Reverse KL 的优势在于:只需教师对学生已采样 token 的 logprob,计算比 full distribution 便宜,且天然适合 policy-gradient 框架。但若学生从不采样教师想要的 token,reverse KL 难以”凭空教会”。
MiniLLM (Gu et al., 2023) 论证了 reverse KL 比 forward KL 更适合生成式 LLM 蒸馏,可缓解学生过度估计教师低概率区域的问题。
与相邻概念的区别
| 方法 | 学什么 | 信号形式 | 轨迹来源 |
|---|---|---|---|
| SFT | 人类/教师的标准答案 | Hard label(固定文本) | 教师或人类 |
| KD | 教师的概率分布/行为 | Soft label(logits/logprobs) | 教师或静态数据 |
| RL (PPO/GRPO) | 根据奖励优化行为 | 标量 reward(稀疏) | 学生自己 |
| OPD(On-Policy Distillation) | 在学生轨迹上蒸馏教师 | Token-level KD(密集) | 学生自己 |
| DMD(分布匹配蒸馏) | 教师 score + fake score | 分布匹配(密集) | 学生自己 |
KD 与 SFT 的核心区别
SFT 教学生”答案是什么”;KD 教学生”老师是怎么判断的”。
KD 与 OPD 的关系
KD 是大类,OPD 是一种特殊的 on-policy KD:
- 普通 KD:教师生成答案 → 学生模仿教师答案(off-policy)
- OPD:学生先自己生成答案 → 教师在学生的生成轨迹上给信号 → 学生学习(on-policy)
所以:KD 是蒸馏方法的总称,OPD 是在 on-policy 条件下做 KD 的一种具体方法。
历史与演进
- Hinton et al. (2015):提出 Knowledge Distillation 概念,引入 dark knowledge 和 temperature scaling
- Sequence-Level KD (2019+):用教师生成的数据做 SFT,广泛用于 LLM 预训练/deployment
- MiniLLM (Gu et al., 2023):论证 reverse KL 更适合生成式 LLM 蒸馏
- On-Policy Distillation (2025):Thinking Machines Lab 系统化研究,将 KD 与 on-policy 采样结合
- DMD / DiffRO (2025-2026):扩散/流匹配领域的分布蒸馏,token 级可微后训练
常见误解
- ❌ “KD 就是用小模型模仿大模型” → 这只是最常见的用法。KD 也可以用于同规模模型的知识迁移、能力恢复、多教师蒸馏等场景。
- ❌ “KD 一定比直接训练好” → 教师和学生能力差距太大时,KD 效果可能不如直接训练(学生”听不懂”教师)。
- ❌ “KD 和 SFT 是同一回事” → SFT 用 hard label,KD 用 soft label(概率分布)。信息量差 vs 。
- ❌ “Forward KL 和 Reverse KL 等价” → Forward KL 是 mean-seeking(覆盖所有模式),Reverse KL 是 mode-seeking(锁定单一模式)。在生成式任务中行为差异显著。
相关
- On-Policy Distillation(在策略蒸馏) — KD 的 on-policy 变体,学生自采样 + 教师逐 token 打分
- SFT(监督微调) — 用 hard label 的监督训练,KD 的对比基线
- 分布匹配蒸馏(DMD) — 扩散模型领域的分布蒸馏方法
- Policy Gradient(策略梯度) — reverse KL OPD 与 RL 的桥梁:用 advantage 驱动梯度更新
- verl — 支持 OPD 等算法的 RL 后训练框架
- 资料摘要:On-Policy Distillation — 原始文章详细笔记
- Wiki 目录