定位与前置知识
本文是「知识蒸馏」前沿方向系列的第一篇,聚焦大语言模型(LLM)蒸馏中一个容易被忽视、却直接影响生成质量的设计选择:我们用什么目标函数让学生去逼近教师。
阅读本文前,建议先掌握两件事:
- 经典 KD(Hinton et al. 2015)的 softmax 温度软化思想,以及「软标签 / 软目标」的基本形式;
- 自回归语言模型逐 token 生成、训练与推理分布不一致(暴露偏差)这一老问题。
本文只陈述已核验论文(Gu et al. 2024,ICLR 2024)所给出的设定与动机,不引用任何未核验的具体性能数字。
为什么 LLM 蒸馏需要重新设计损失
传统 KD 多在「前向 KL(forward KL)」意义下匹配教师的输出分布:让学生分布 $Q$ 去覆盖教师分布 $P$,即最小化 $D_{KL}(P|Q)$。在 CV 小模型蒸馏里这通常够用;但到了自回归 LLM,文本是逐 token 生成的长序列,前向 KL 的 mode-covering(覆盖全部模式) 天性会带来两个经典问题:
- 暴露偏差(exposure bias):学生在训练时看到的是教师提供的「正确」上文,推理时却要基于自己生成的、可能含错的上文继续生成,训练与推理的分布发生错位。
- 模式平均 / 多样性坍缩:mode-covering 鼓励学生把概率质量铺在教师的所有模式上,在语言上表现为生成平淡、重复、缺乏锋芒的文本。
MiniLLM 的核心动机
Gu et al. (2024) 在《MiniLLM: Knowledge Distillation of Large Language Models》(arXiv:2306.08543, ICLR 2024) 中指出:把 LLM 蒸馏目标从「前向 KL」换成「逆向 KL(reversed KL)」可以缓解上述 mode-covering 问题。
逆向 KL 的形式是让学生 $Q$ 去匹配教师 $P$ 的高概率区域(mode-seeking),而不是努力覆盖教师的全部模式。直观上,mode-seeking 让学生集中在教师「真正自信」的那些生成路径上,从而减少暴露偏差、提升生成质量。
前向 KL 与逆向 KL 的形式化对照
给定教师分布 $p_T(y)$ 与学生分布 $p_S(y)$,两种方向分别为:
- 前向 KL:$D_{KL}(p_T | p_S) = \mathbb{E}_{y \sim p_T}\left[\log \frac{p_T(y)}{p_S(y)}\right]$。最小化它要求 $p_S$ 在教师有质量的地方处处不为零(覆盖全部模式)。
- 逆向 KL:$D_{KL}(p_S | p_T) = \mathbb{E}_{y \sim p_S}\left[\log \frac{p_S(y)}{p_T(y)}\right]$。最小化它让学生集中在教师的高概率模式内(聚焦少数模式)。
需要说明:逆向 KL 并非「免费午餐」。mode-seeking 可能导致学生忽略教师的某些次要模式(多样性下降);但相比 mode-covering 造成的暴露偏差与平淡生成,在 LLM 生成质量这一指标上往往更可取——这正是 MiniLLM 的实验出发点。
off-policy 设定
MiniLLM 采用 off-policy 训练:用于计算蒸馏损失的样本(或上文)来自固定的数据分布 / 教师侧,而非学生「自己实时生成的轨迹」。
off-policy 的好处是实现简单、训练稳定;代价是学生可能在与自身生成分布不一致的样本上学习。这一点恰好与下一节要对比的 GKD 形成关键区别。
与 GKD 的对照
Agarwal et al. (2024) 在《On-Policy Distillation of Language Models…》(arXiv:2306.13649, ICLR 2024) 提出 GKD(Generalized KD):on-policy,让学生在「自己生成的样本」上与教师对齐,从而让训练分布与推理分布一致。
二者对照如下:
| 维度 | MiniLLM | GKD |
|---|---|---|
| 目标方向 | 逆向 KL(reversed KL) | Generalized KD(论文定义的通用框架) |
| 采样策略 | off-policy | on-policy(学生自生成样本) |
| 关注点 | 缓解 mode-covering / 暴露偏差 | 训练-推理分布对齐 |
可以看出,二者解决的是 LLM 蒸馏的两个互补侧面:MiniLLM 改「目标函数方向」,GKD 改「样本来自谁」。论文层面它们是各自独立的设定,实践中能否组合以原文为准(本文不展开未核验的实现声称)。
实操要点与损失构造
实践中,MiniLLM 的蒸馏损失可写为学生分布相对教师的逆向 KL(在序列 token 上求和 / 平均),并通常配合标准监督损失(如真实标签的交叉熵 CE)以稳定训练:
for each sequence x:
teacher_logits = teacher(x) # 教师固定,不更新
student_logits = student(x)
# 逆向 KL:以学生为前向分布
loss_kd = reverse_kl(student_logits, teacher_logits)
loss_task = cross_entropy(student_logits, gold_labels)
loss = alpha * loss_kd + (1 - alpha) * loss_task
update student only
注意:上式中的
alpha权重、是否对 token 做长度归一或加权等实现细节,原论文可能有特定设定,本文未逐项核验,落地时以原文为准。
在 LLM 蒸馏谱系中的位置
把几篇前沿论文放在一起看,LLM 蒸馏的目标函数与采样策略正在被分别「重做」:
- Hinton et al. 2015:温度软化的 KL / CE 加权和,奠定范式(前向 KL 思路)。
- MiniLLM (Gu et al. 2024):把方向翻转为逆向 KL,主打 off-policy、缓解 mode-covering。
- GKD (Agarwal et al. 2024):保留对齐思想,但改为 on-policy 自生成样本。
- DistiLLM (Ko et al. 2024):在逆向 KL 基础上做「调制(modulated)」,并引入进阶 logit 蒸馏(见本系列下一篇)。
局限与开放问题
- 逆向 KL 的 mode-seeking 可能牺牲多样性,需要任务层面权衡。
- off-policy 与 on-policy 哪种更优,依赖数据与评测设定,本文不引未核验结论。
- 具体在哪些基准上提升多少,以原论文报告为准(本文不引未核验数字)。
与经典 KD 温度软化的承接关系
经典 KD(Hinton et al. 2015)用温度 $T$ 软化 softmax,得到软标签,并在软化分布上做 KL / CE。那里隐含使用的是前向 KL(让学生覆盖教师)。MiniLLM 的改动是「微创手术」:保留「软化后的分布作为监督信号」这一框架,只把 KL 的方向翻转为逆向。因此它可与温度软化共存——先用温度软化教师分布,再在软化分布上算逆向 KL。
常见误区
- 误区一:以为逆向 KL 一定优于前向 KL。实际上逆向 KL 牺牲多样性、可能忽略次要模式,优劣依赖任务。
- 误区二:以为 off-policy 与 on-policy 只能二选一。二者是独立维度,MiniLLM(off-policy)与 GKD(on-policy)分别占据,理论上可组合。
- 误区三:以为改了目标函数就不需要真实标签。工程上仍常用「软损失 + 硬损失(CE)」加权和,与经典 KD 一致。
小结
- MiniLLM 用逆向 KL 替代前向 KL,从 mode-covering 转向 mode-seeking,缓解暴露偏差。
- 它属于 off-policy;与之相对,GKD 属于 on-policy。
- 二者分别重做了 LLM 蒸馏的「目标方向」与「样本来源」。
延伸阅读 / 参考文献
- Gu et al. (2024), MiniLLM: Knowledge Distillation of Large Language Models, arXiv:2306.08543, ICLR 2024.
- Agarwal et al. (2024), On-Policy Distillation of Language Models…, arXiv:2306.13649, ICLR 2024.