Skip to content

模型蒸馏全解:从暗知识到在线蒸馏

"蒸馏就是让小模型模仿大模型"——这句话不算错,但它掩盖了这个领域几乎所有有意思的部分。

比如:为什么"错误答案的概率分布"比"正确答案"信息量更大?为什么把同一个模型蒸馏给自己还能变强?为什么在 LLM 上,教师教得越好、学生可能学得越偏?以及那个 2025 年初闹上新闻的问题——用别人的模型输出训自己的模型,算不算偷

这篇文章按论文把这些逐层拆开。它是前两篇的延续:第一篇讲记忆怎么存,第二篇讲一次请求怎么走完全链路——而在第二篇里我们见过一个叫 anti_distillation 的请求体字段,它往模型上下文里注入假工具,目的正是让本文要讲的这件事失效

关于本文的证据(与前两篇不同)

前两篇我有本地实测数据兜底。这篇没有——蒸馏是学术与工业界的公开话题,本文的地基全部是可核实的文献。

所以我的做法是:每个关键断言都尽量给出论文标题与 arXiv 编号,你可以自己查原文。同时严格区分三种情况:

  • 论文的原始主张——它自己说了什么;
  • 被广泛复现的结论——后续工作反复验证过的;
  • 有争议或被质疑的——尤其重要,本文专门有一节讲"蒸馏真的有效吗"这个尖锐问题。

凡是我没查到、或不确定的,我会直接写"没找到",不用推断补位。涉及具名公司的争议(比如那场指控),我只陈述双方的公开表态与已发生的事实,不做法律判断。

另外提示时效:这个领域 2024–2026 变化极快,尤其在线蒸馏方向。本文的时间戳是 2026 年 8 月,读到具体方法请当作"截至此刻的图景"。

一、先破一个直觉:正确答案是最没信息量的东西

假设你要教一个小模型认动物图片。一张哈士奇的照片,标准答案是"哈士奇"。

用传统监督学习,这张图给学生的信息就是一个 one-hot 向量

哈士奇 1.0    狼 0.0    猫 0.0    卡车 0.0

现在换成一个训练好的大模型来看这张图,它输出的概率分布可能是:

哈士奇 0.75   狼 0.20   猫 0.001   卡车 0.0000001

关键差别不在"哈士奇 0.75",而在后面那几个数。

它们告诉学生一件 one-hot 标签永远说不出的事:这张图像狼的程度,比像猫高两百倍;而像猫的程度,又比像卡车高一万倍。 换句话说,教师顺手泄漏了它对"整个世界如何分类"的理解——哪些类彼此接近、哪些八竿子打不着。

这就是 Hinton 那篇论文里被反复引用的 "dark knowledge"(暗知识)知识不只在模型答对的那一项里,更在它如何分配那些错误选项的概率里。

一个换算视角

one-hot 标签每个样本只携带 log₂(类别数) 比特的信息——1000 类也就 10 比特左右。

而一个完整的概率分布,理论上携带的信息要多得多。这就是为什么蒸馏往往比"用同样的数据从头训小模型"效果好:同样的图片,教师给的监督信号密度高出好几个数量级。

理解了这一点,蒸馏的定义就可以收紧了:

蒸馏 = 把"教师模型对输入的完整判断"作为监督信号,而不只是用数据集里的标准答案。

至于"完整判断"具体指什么——是输出概率、中间层特征、还是样本之间的关系——就是后面方法分类的由来。

先划清范围:"蒸馏"在 AI 里至少指两件不同的事

这两个术语长得像、名字都叫蒸馏,但底层技术完全不同,混起来会很乱:

知识蒸馏(KD)数据集蒸馏(DD)
压缩的是模型数据
做法大教师的判断 → 小学生把大数据集的信息浓缩成极少量合成样本
目标小模型逼近大模型性能在合成小数据集上训练,效果接近用全量数据
是否绑定架构教师学生都是具体模型架构无关,产出的是数据
别名——dataset condensation(同一件事的另一个名字)

数据集蒸馏的概念起源于知识蒸馏,但方法论是另一套(常见目标是 performance matching / parameter matching / distribution matching,还有对齐训练参数轨迹的 trajectory matching)。近年两者开始交织,出现了"用 KD 思路做 DD"的方法。

本文只讲知识蒸馏。 提这一段是因为中文搜"蒸馏"经常两类混着出,先划清边界。

另外还有个更口语的用法:很多人说"蒸馏 GPT",指的是拿大模型的文本输出去训自己的模型——那是知识蒸馏里的"黑盒蒸馏",本文第九节专门讲。

二、经典理论:温度、T²,以及一个流行的误解

蒸馏的奠基论文是 Hinton、Vinyals、Dean 的《Distilling the Knowledge in a Neural Network》(arXiv:1503.02531,2015-03-09,发表于 NIPS 2014 深度学习 Workshop)。

有个考古细节值得一提:"dark knowledge" 和 "distillation" 这两个词都不是首现于这篇论文,而是 Hinton 2014 年 10 月 2 日在 TTIC 的一场讲座,标题就叫 Dark Knowledge。那份摘要里的定义比论文更精炼:

集成模型学到的大部分知识,在于极不可能的错误答案之间的相对概率。比如集成可能认为一辆宝马是垃圾车的概率是十亿分之一,但这在 log 域里仍然远大于它是胡萝卜的概率。这种"暗知识"在类概率里几乎看不见,却定义了一个类之间的相似性度量

"暗"这个字的准确含义就在这里:不是隐秘,而是数值上小到几乎看不见,但在 log 域里差异巨大。

2.1 温度:把分布"摊开"

核心工具只有一个——给 softmax 加温度:

$$q_i = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}$$

T=1 就是普通 softmax;T 越大,分布越软(越平坦),那些原本小到看不见的差异就被放大到可学习的量级。

使用协议有三步,这里最容易写错

  1. 高温 T 让教师产出软标签;
  2. 训练学生时,学生的 softmax 也用同一个高温 T
  3. 训练结束后,学生推理时用 T = 1。

温度是训练期的脚手架,部署时要拆掉。

2.2 那个 T² 到底是什么

蒸馏损失是两项的加权和:与软标签的交叉熵(都在温度 T 下)+ 与真实硬标签的交叉熵(温度 1)。Hinton 论文说明"第二项用显著更低的权重通常效果最好"(语音实验里硬标签项权重取 0.5)。

然后就是那个几乎所有教程都会写的 因子。它常被描述成某种理论要求。不是的。

论文的原话说得很清楚,它是个工程措施

Hinton 论文的理由是:软标签产生的梯度幅度按 1/T² 缩放,所以要乘上 补偿回来。目的是——

「确保在实验中改变蒸馏温度时,硬标签项与软标签项的相对贡献大致保持不变。」

也就是说:T² 存在的意义是让你调 T 的时候不必重新调两项的权重。 它是一个超参解耦的技巧,不是数学上的必然。

顺带一个考古细节:Hinton 那份讲座幻灯片里的梯度推导写作 T·∂C/∂z_i = p_i − t_i,与论文式 (2) 的缩放约定略有差异。引用请以论文为准。

2.3 高温极限下,蒸馏就是在匹配 logits

论文有一节标题直接就是「Matching logits is a special case of distillation」。推导的结论是:

在高温极限下,蒸馏等价于最小化 ½(z_i − v_i)²z 是学生 logits,v 是教师 logits)——也就是退化成一个朴素的 L2 回归。

但这个等价需要三个条件同时成立,缺一不可:

  1. T 远大于 logits 的量级(这样才能对 exp 做一阶泰勒展开);
  2. 教师与学生的 logits 都按每个样本单独做了零均值化
  3. 只看单个 logit 分量的梯度。

论文还讨论了低温时会发生什么:低温下蒸馏"对那些远低于平均值的负 logits 关注得少得多"。这些极负 logits 可能是噪声(不受教师训练目标约束),也可能携带有用知识——论文诚实地说这"是个经验问题"。

而它给出的经验答案很有意思:当学生很小时(MNIST 实验里每层只有 30 个单元),中间温度 2.5–4 反而最好,这强烈暗示对小学生而言,忽略那些极负 logits 是有帮助的

2.4 一个后续工作指出:那个零均值假设站不住

上面第 2 个条件(logits 零均值)看起来只是技术性假设,但 2021 年有篇论文专门去查了它(Kim et al.,arXiv:2105.08919,IJCAI 2021)。

发现是:

  • 用交叉熵训练的教师,其 logits 之和确实几乎为 0;
  • 但用 KL 蒸馏损失训练的学生,其 logits 之和会随 τ 增大而显著偏离 0

于是零均值假设不成立,损失里会残留一项 δ_∞。论文的结论相当强硬:

"假设学生的 logit 均值为零是不合理的";残留项"通过移动 logit 元素的均值阻碍了完全的 logit 匹配";"任何 τ 值都无法实现完全的 logit 匹配"。

它同时给出了两端的极限行为,这个对照很有启发:

极限行为
τ → ∞退化为 logit matching(匹配 logits 数值)
τ → 0退化为 label matching(只看 argmax 是否一致,传递的信息极少)

所以温度这个旋钮,实质是在"匹配数值"与"匹配答案"之间连续调节。

实验上,直接用 logit MSE 或极大的 τ 确实更好(CIFAR-100 上从 τ=1 的 72.90 一路升到 τ=∞ 的 75.51、MSE 的 75.54)。但同一篇论文也给了反向证据:当师生容量鸿沟大、或标签有噪声时,"极端的 logit 匹配反而导致糟糕的训练"。

所以"温度越高越好"不是无条件结论。 它取决于容量差与标签质量。

2.5 最有说服力的一个实验:没见过"3"却认得"3"

Hinton 论文里有个实验,我认为是暗知识存在的最强证据。

他们在 MNIST 蒸馏时,把迁移集里所有数字 3 的样本全部删掉——学生在蒸馏阶段从未见过任何一个 3。

结果:学生在测试集的 1010 个 3 上错了 133 个。这已经很惊人了(毕竟没见过)。而只要把 3 这个类的 bias 调高 3.5,错误就降到 14 个——即 98.6% 的测试 3 被正确分类。

学生从"其他数字的软标签"里,学到了足够辨认 3 的知识。 因为每张 8 的软标签里都写着"这个 8 有多像 3",每张 5 也一样——这些边角信息拼起来,足以重建一个从未直接见过的类别。

另一个更极端的版本:迁移集只保留 7 和 8,学生测试错误率 47.3%;把 7、8 的 bias 各降 7.6 后,错误率降到 13.2%

2.6 另一条路线:Ba & Caruana 的"直接回归 logits"

蒸馏的前史里还有一条平行路线,与 Hinton 的做法有实质差异,值得对照。

Ba & Caruana 的《Do Deep Nets Really Need to be Deep?》(arXiv:1312.6184,NIPS 2014)做法是:让学生直接回归教师 softmax 之前的 logits,用 L2 损失——没有温度,也没有硬标签项。

他们给的理由很直观:概率空间会丢信息。 论文的例子——教师输出概率 [2e−9, 4e−5, 0.9999],若直接在概率上做交叉熵,学生只会盯着第三项,前两项的差异被彻底淹没;换成 logits [10, 20, 30],前两项及其相对关系就都保留了。

还有个更尖锐的例子:logits [−10, 0, 10][10, 20, 30] softmax 之后概率完全相同,但教师内部的表征显然不同——概率抹掉了这个差别。

他们的消融结论是:"logits 回归优于所有其他损失函数",并称这是取得结果的关键技术之一。

一处我没能核实的历史细节

更早的源头是 Buciluă / Caruana / Niculescu-Mizil 的《Model Compression》(KDD 2006)。但这篇论文的 PDF 我尝试了多个来源都没能取到,所以它的学生回归目标究竟是硬标签、概率还是 log 概率,我无法确认

Hinton 在两处(TTIC 讲座、2015 论文)都把"匹配 log 概率 / logits、最小化平方差"归给"Caruana 和他的合作者",但明确做 logit L2 回归的其实是上面这篇 2014 年的 Ba & Caruana。这里我只能按"Hinton 的转述"来引用,不作断言。

三、蒸馏为什么有效——四种解释和一记重锤

这一节是全文最"学术"的部分,但也是最值得读的:关于"蒸馏为什么有效",学界至今没有共识,而且有一篇论文直接质疑了它到底有没有在做我们以为的那件事。

3.1 解释一:暗知识 / 类间相似性结构

这是最经典的解释,也是第一节讲的那个直觉:软标签编码了类之间的相似性结构。

最强的支持证据来自一个反向实验(Müller, Kornblith, Hinton,arXiv:1906.02629,NeurIPS 2019):

用 label smoothing 训练的教师,自身精度更高,但蒸馏效果更差——甚至不如直接给学生用 label smoothing。

机制是:label smoothing 让同类样本的表征聚成紧密且等距分离的簇,于是"这个样本到其他各类的距离"变得几乎一样,类间相似性的样本级差异被抹平了。论文明确指出:这不损害教师自己的泛化和校准,只损害它当教师的能力

一个模型可以又准又不会教书——因为"准"和"保留相似性信息"是两件不同的事。

理论侧也有支持(Allen-Zhu & Li,arXiv:2012.09816,ICLR 2023):在数据具有"multi-view"结构时,可以证明独立随机种子的集成能提升精度,且这个优势可证明地能蒸馏进单模型。

3.2 解释二:正则化(以及"KD ≈ 学到的 label smoothing")

Hinton 自己也持这个观点——2015 论文有一节标题就叫「Soft Targets as Regularizers」。最有力的数据是:只用 3% 的语音数据时,硬标签训练严重过拟合(测试 44.5%,必须早停),而软标签训练测试达 57.0%,且完全不需要早停

后来有论文把这个视角形式化了(Yuan et al.,arXiv:1909.11723,CVPR 2020),结论是一对漂亮的对偶:

"KD 是一种学到的 label smoothing;而 label smoothing 提供了一个虚拟的教师。"

但请不要写成"已证明 KD = label smoothing"

这篇论文说的是 KD 是 LSR 的一个特例(平滑分布从人工设计的均匀分布,换成从教师学来的分布)。这是包含关系与类比,不是严格等价证明

它的支撑实验非常反直觉,值得单独列出:

  • 让学生反过来教教师,教师也能显著提升;
  • 用一个训练得极差的教师也能显著提升学生——具体数字:一个在 CIFAR-100 上只有 15.48% 精度的 ResNet18(只训了 1 个 epoch),用它当教师,MobileNetV2 提升 2.27%,ShuffleNetV2 提升 1.48%

一个 15% 精度的教师能教出更好的学生。这几乎无法用"暗知识"解释——它教的不可能是类间相似性,只能是某种正则化效应。

论文的结论也就顺理成章:"KD 的成功并非完全归因于类间相似性信息,也归因于软标签的正则化作用,后者同等重要甚至更重要。"

还有更细的三层分解(Tang et al.,arXiv:2002.03532,Google):把教师知识分为"普适知识(→ 起 label smoothing 式正则)"、"领域知识(→ 把类间关系注入学生 logit 层的几何结构)"、"实例知识(→ 按教师置信度对每个样本的梯度做重缩放)",并明确指出 KD 的收益来自多种效应的组合

3.3 解释三:样本重加权 / 数据增强

Born-Again Networks(Furlanello et al., ICML 2018)把蒸馏梯度做了分解,发现可以把教师对正确类的置信度解释成原始标签的一个加权因子:教师确信时退化为普通监督,教师不确定的样本梯度被压小。

于是他们问了一个尖锐的问题:暗知识的成功,会不会只是在做某种重要性加权?

为此他们做了两个消融:

  • CWTM:完全丢掉教师所有软输出,只用教师的最大置信度给样本加权;
  • DKPP:把非 argmax 的输出随机打乱,破坏类相似性的正确归属,但保留 logit 分布的高阶统计量。

结果:两种处理都仍然带来提升。

这构成对"纯暗知识解释"的直接质疑——把类间相似性打乱了还有效,说明有效成分不止相似性。

3.4 解释四:统计视角(方差降低与"什么是好教师")

Menon et al.(ICML 2021)给出一个统计学解释:一个提供真实类概率的"Bayes 教师"能降低学生目标函数的方差,从而提升性能;并由此建立偏差-方差权衡,给出"好教师"的形式判据——

好教师的标准是"概率估计的质量",而不是单纯的精度。

这条正好从理论侧解释了 3.1 那个反向实验:更准的教师不一定蒸得更好。

3.5 一记重锤:蒸馏真的在做我们以为的那件事吗

前面四种解释都在回答"为什么有效"。而 2021 年有篇论文(Stanton et al.,arXiv:2106.05945,NeurIPS 2021)问了个更基本的问题,标题就是:《知识蒸馏真的有用吗?》

它的答案值得逐字引用:

"简而言之:是的,因为它常常提升学生的泛化能力……不是,因为知识蒸馏经常名不副实——从教师传递给学生的知识非常有限。"

关键在于它区分了两个一直被混为一谈的概念:

  • 保真度(fidelity):学生匹配教师预测的能力;
  • 泛化(generalization):学生在未见数据上的表现

而它的发现是——这两件事经常不一致,甚至反向。

最反直觉的几个发现

  1. CIFAR-100 上的自蒸馏,学生连教师都匹配不上。 用 GAN 生成图像扩大蒸馏集,测试一致性上升但始终低于 80%,而测试精度反而下降
  2. 容量不是主因。 低保真度在自蒸馏(学生与教师同架构,完全有能力完美匹配)时同样出现;在集成蒸馏设定下"学生容量对保真度影响极小"。
  3. 连训练集上都匹配不上。 蒸馏集越大,训练集一致性反而越低;重度数据增强下,自蒸馏的训练一致性能掉到 60%。论文的评语是:"无法求解这个优化问题,削弱了蒸馏。"
  4. 优化诊断:ResNet-20 自蒸馏训 300 epoch 训练一致性 78.95%,训到 5000 epoch 才 83.3%,换 Adam 反而更差。按线性外推需要"数万 epoch"才可能接近 100%。
  5. 损失面实验:把学生初始化为教师权重与随机权重的插值 λθ_t + (1−λ)θ_r。λ ≤ 0.25 时优化器收敛到另一个次优盆地;λ = 0.375 时出现相变——训练损失骤降、一致性剧增到接近 100%,与教师落入同一个盆地
  6. 而最刺的一句是"更接近地匹配教师,矛盾地并不总是带来更好的学生泛化。"

顺带一个很实用的技术细节:他们做自蒸馏实验时必须把 BatchNorm 换成 LayerNorm——因为 BatchNorm 会导致权重完全相同的教师和学生,因激活统计量不同而给出不同预测。这个坑值得任何做蒸馏复现的人记住。

3.6 小结:这一节到底该怎么理解

把上面这些放在一起,诚实的图景是:

解释支持证据反面证据
暗知识 / 相似性结构label smoothing 抹掉信息后蒸馏变差;multi-view 理论打乱非 argmax 输出后仍有效(DKPP);15% 精度的教师也有效
正则化3% 数据实验;反向蒸馏有效;极差教师有效无法解释为何"更像教师"有时更好
样本重加权CWTM 消融仍有效不能解释全部收益
方差降低统计理论 + "好教师=好概率估计"判据Stanton:学生连拟合都做不到,与"更好优化"方向相反

我的判断是:蒸馏是多种效应的叠加,而且不同场景下主导效应可能不同。 那些说"蒸馏之所以有效是因为暗知识"的科普,说的是四分之一的故事。

还有一条必须提醒的:"教师提供了更平滑的损失面"这个流行说法,我没有找到一手依据。 我特意让调研去查有没有论文测量过 KD 对损失面平滑性(Hessian 谱等)的影响,结果是没找到;而 Stanton 那篇做的损失面可视化,结论恰恰是学生落进了不同的、次优的盆地。这条建议当作未证实的猜想看待。

四、方法地图:蒸馏"什么",以及教师该多大

4.1 三类知识

按"迁移什么"分,学界通用的三分法(来自 Gou 等人的综述,arXiv:2006.05525,IJCV 2021)是:

类型迁移什么直觉
Response-based(响应/logit)教师输出层的分布经典 KD,学"最终判断"
Feature-based(特征/中间层)教师中间层的激活或特征图学"中间的思考过程",通常需要一个投影器来对齐维度
Relation-based(关系)样本之间的关系(距离、角度、相似度矩阵)学"事物之间的相对结构",而非单个样本的判断

这一小节我做了删减,说明原因

我原本让调研把这三类下的代表方法(FitNets、Attention Transfer、RKD、CRD 等)逐篇核实原文,但那部分调研没有完成——我不打算凭记忆写它们的机制与数字。

所以这里只给经核实的分类框架。想深入的话,Gou 等人那篇综述是标准入口。

顺带说明:本文的重点在另一条轴上——按"训练方式"分类(离线/在线/自蒸馏),以及 LLM 时代的 on-policy 蒸馏。那条轴对今天的实践影响更大,素材也更扎实。

另外提醒一个分类学上的细节:这三分法不是互斥划分。 同一篇综述在讲自蒸馏时,把 ONE(下一节会讲)也列进了自蒸馏的引用清单,而在讲在线蒸馏时又把它列为在线方法。交叉归类在这个领域很普遍,别把分类当成严格的墙。

4.2 教师该多大:一个真实的学术分歧

后文第十三节会给出 Apple 的 scaling law 结论(存在"最优教师规模"而非"最大")。这里补充它的前史——以及一处至今没有和解的分歧。

共识部分:更准的教师不一定是更好的教师。

Cho & Hariharan(arXiv:1910.01348,ICCV 2019)的摘要说得很直接:"更准确的教师往往不是好教师",并明确指出"更好的教师造就更好的学生"这个信念是错的。他们把原因归到容量不匹配(mismatched capacity)

TAKD(Mirzadeh et al.,arXiv:1902.03393,AAAI 2020)观察到同一现象,并给出了一个我觉得很清晰的三因素分解——教师变强时,有一个正向因素和两个负向因素在打架

  1. 教师性能提升 → 提供更好的监督(正向);
  2. 教师变得过于复杂 → 学生没有足够容量去模仿它(负向);
  3. 教师对数据越来越确定 → 它的 logits 变得不够"软" → 依赖软标签的知识传递被削弱(负向)。

随着教师增大,教师自身精度单调上升,但学生精度先升后降——就是这三者的合力。

分歧部分:能不能用"中间人"跨越大鸿沟?

  • TAKD 说可以:先让大教师蒸出一个中等规模的"助教",再让助教教学生。它缓解了因素 2(离学生更近)和因素 3(目标更软)。
  • Cho & Hariharan 说不行:他们明确报告 "这种分步蒸馏不起作用",在 ImageNet 上序贯蒸馏"没能帮助我们用大教师训练小学生"。他们给的唯一出路是——去找一个容量合适的教师。

两篇论文都经过原文核实,结论方向相反。这就是这个领域的真实状态:一个看起来很基础的问题上,两篇顶会论文给了相反的答案。

顺便给个尺度感:TAKD 的增益普遍小于 1 个百分点(CIFAR-100 上 +0.35,CIFAR-10 上 +0.33,最大的是 ImageNet 上 +0.76)。所以即使采信 TAKD,也别把助教蒸馏当成大杀器。

五、术语辨析:online、offline、on-policy、self——两个正交的轴

这一节必须放在讲具体方法之前,因为这几个词是整个领域最大的混淆源,中文资料里尤其常被混为一谈。

先说结论:它们不是一条轴上的几个档位,而是两条互相独立的轴。

5.1 轴一:教师是不是"活的"

这条轴问的是——训练过程中,教师模型本身会不会变?

名称教师状态典型做法
Offline 蒸馏冻结。 先训好教师,再训学生经典范式,绝大多数工程实践
Online 蒸馏同时在训。 教师与学生一起更新,甚至互为师生多模型协同训练(下一节详述)
Self 蒸馏就是学生自己(或它的历史版本 / 浅层)同架构自我教学、EMA 教师

5.2 轴二:训练数据从哪来

这条轴问的是——学生学习的那些序列,是谁生成的?

名称数据来源后果
Off-policy 蒸馏教师生成的静态数据。 先攒一批教师输出,再让学生在上面学学生只见过"教师会走到的局面"
On-policy 蒸馏学生自己采样的轨迹,教师在这些轨迹上逐 token 打分学生在"自己会走到的局面"上获得指导

5.3 为什么容易混

看出问题了吗——on-policy 蒸馏必须在训练过程中实时查询教师,所以它感觉很"在线";但教师的权重通常是冻结的,所以在第一条轴上它其实是 offline

两套词汇来自两个不同的文献传统:

  • online / offline 来自 CV 时代的蒸馏文献(2018 年前后),关心的是"要不要先花钱训个大教师";
  • on-policy / off-policy 来自 强化学习,关心的是"数据是不是当前策略产生的"。

于是就有了这个别扭的组合:

今天 LLM 领域最火的 on-policy 蒸馏,在经典分类法里是"offline + on-policy"——冻结的教师,学生自己产生的数据。

而经典的 online 蒸馏(比如两个学生互教)根本不在第二条轴上取值——这一点我一开始也想错了。

原因是:DML、ONE 这些方法诞生于图像分类,训练输入是固定的标注数据集(比如 CIFAR 的图片),模型并不生成数据。图像分类里也不存在自回归那种"自己的输出成为下一步输入"的状态漂移。所以 on-policy / off-policy 这条轴在那个场景里没有意义。

(DML 里"各自产生的"是预测,不是数据——这两件事容易混,但差别很关键。)

准确的说法是:

  • 经典 online 蒸馏只在第一条轴上取值(教师是活的);
  • LLM 的 on-policy 蒸馏只在第二条轴上取值(数据来自学生),第一条轴上它是 offline。

看到中文文章讲"在线蒸馏"时,先确认它说的是哪条轴。 这两件事的动机、成本结构、适用场景完全不同:一条轴省的是"训教师的钱",另一条轴解决的是"训练与推理分布不一致"。

六、在线蒸馏(经典意义):没有教师,就互相当教师

这一节是本文素材最扎实的部分——下面的数字全部来自论文原文表格,不是二手摘要。

6.1 动机:为什么要绕过"先训个大教师"

经典蒸馏有个隐含前提:你得先有个训好的大教师。 而这一步往往是最贵的。在线蒸馏就是想绕开它。

四条动机,都有论文原文支撑:

  1. 省训练成本。 ONE 论文给了量化对比(CIFAR-100,单位 10⁸ FLOPs):离线 KD 的训练开销 6.43,DML 2.76,ONE 2.28——在线方案约为离线的三分之一,而三者的推理开销完全相同(1.38)。
  2. 教师根本拿不到。 这是最实际的情形。
  3. 流水线复杂度。 Codistillation 论文(Google)说得很直白:多阶段蒸馏"必须决定用哪个教师、训多久,鼓励人工介入",教师复用让回滚极其痛苦,形成他们引用的那个说法——"pipeline jungle"(流水线丛林)
  4. 分布式训练的通信瓶颈——这是 codistillation 独有的动机,下面 6.4 详述。

6.2 Deep Mutual Learning:两个学生互相教

DML(Zhang et al., arXiv:1706.00384, CVPR 2018)是最朴素的想法:两个网络从零开始一起训,各自既学真实标签,又互相模仿对方的输出分布。

损失非常简单(原文 Eq. 2–5):

L_Θ1 = L_CE1 + D_KL(p₂ ‖ p₁)
L_Θ2 = L_CE2 + D_KL(p₁ ‖ p₂)

即每个网络的损失 = 自己的交叉熵 + 与对方分布的 KL。扩展到 K 个网络时,KL 项前面乘 1/(K−1),原文说明这个系数的作用是"确保训练主要由真实标签的监督学习主导"。

三个容易写错的机制细节

  1. DML 不用温度。 它的 KL 直接作用在 T=1 的普通 softmax 输出上,损失里没有 T² 缩放——这和后面 ONE / OKDDip(都用 T=3)不同。很多中文资料会想当然地加上温度。
  2. 是交替更新,不是联合一步更新。 原文算法是:算 p₁,p₂ → 更新 Θ₁ → 重新计算 p₁,p₂ → 更新 Θ₂。每个 mini-batch 内要做两次前向。
  3. 小模型获益更多,但大模型也有增益。 CIFAR-100 上 MobileNet 配 MobileNet 互学,两者分别 +2.56 / +2.45;而 WRN-28-10(大模型)配小 peer 同训也仍有 +1.59。

原文对"为什么有效"的论证也值得一看,因为它给了可核查的测量值:

  • 两种模型都拟合到接近 100% 训练精度、训练损失相当,所以差别不在"拟合得更深";
  • 给参数加高斯噪声后,独立训练的模型训练损失急升,DML 模型升幅小得多——据此主张 DML 找到的是更宽的极小值
  • 机制解释:peer 互相匹配后验时,"一方给 0 而另一方非 0"会被重罚,于是所有网络把更多概率质量分给次要类,且分给更多不同的次要类
  • 量化:CIFAR-100/ResNet-32 上训练样本的平均后验熵,DML = 1.7099,独立训练 = 0.2602

6.3 一个反直觉发现:"教师更准"不等于"教师更好教"

DML 论文里有个消融实验,我认为是全篇最有启发的一点。

作者试过一个看起来更合理的变体(DML_e):把其余 K−1 个 peer 的平均预测当作单一教师,而不是分别对每个 peer 算 KL。平均嘛,应该更准更稳。

结果是明显更差。

原文的解释一针见血:平均化让教师后验"在真实类上更尖锐",降低了后验的熵——而 DML 需要的恰恰是那些高熵的、关于次要类的概率信号。

把多个教师的意见平均起来,会抹掉他们各自的"犹豫",而"犹豫"正是暗知识所在。

这条和第一节的主题严丝合缝:蒸馏要的从来不是"最准的答案",而是"最丰富的判断"。

6.4 Codistillation:Google 版本,以及一个深刻的工程洞察

Codistillation(Anil et al., arXiv:1804.03235, ICLR 2018)表面上和 DML 相似,但它解决的其实是另一个问题:分布式训练的通信瓶颈。

原文给的严格定义有三条:所有模型同一架构同一数据集、并且在任何模型收敛之前就启用蒸馏损失。并补一句关键界定:"codistillation 的关键特征是一个模型与它的教师同时被训练。"

一处需要注意的内部张力

论文摘要说的是"两个网络在不相交的数据子集上训练",而定义第 2 条写的是"同一数据集"。消融实验解释了这个矛盾:同数据的 codistillation 只比 baseline 略好,不同数据子集的效果好得多。 所以数据分片不是定义要件,但是收益的主要来源之一。

最有价值的洞察在这里:它容忍极端陈旧的教师预测。

异步场景下可以用几万步之前的预测;大 batch 同步场景可用 800k 样本(约 50 步)之前的预测。为什么敢这么做?原文的论证很深刻:

权重(以及梯度)不是统计可识别的——不同副本之间可能存在任意的缩放、隐单元置换、特征空间旋转,所以平均梯度没有意义。而输出单元的含义由损失函数与数据强制固定,是一致且可识别的。

翻译成一句话:交换"预测"比交换"梯度"更抗延迟,因为预测有客观含义,而权重没有。 这是分布式训练里一个很本质的区分——它解释了为什么这套方法能在 128 GPU 规模上work,而同步 SGD 在那个点已经饱和。

报告的效果:

  • 语言模型任务上,两组 128 GPU 的双向 codistillation,达到 baseline 最佳验证误差所需步数减少 2 倍,且最终误差更低;
  • ImageNet 上达到 75% 精度需 5250 步,baseline 需 7250 步
  • 预测抖动(prediction churn)降低 35%——效果接近模型集成,但不增加服务成本(因为部署时只用一个模型);
  • 作者还诚实交代了成本:他们的实现里 GPU 未跑满、教师前向能与学生计算重叠,所以"步时上是免费的";但最坏情况下额外前向可能让计算成本增加接近 50%

另外,codistillation 有个"burn-in"设计——训练初期只做纯监督,之后才启用蒸馏项。原文理由是训练早期蒸馏"没什么用甚至可能有害",加 burn-in 是为了**"更久地维持模型多样性"。这是在线蒸馏文献里最早的防同质化设计**,下面 6.6 会看到它成了整条线的核心议题。

6.5 ONE:一个主干,多个分支,门控当教师

ONE(Lan, Zhu, Gong, arXiv:1806.04606, NeurIPS 2018)换了个思路:不训多个独立网络,而是共享低层主干 + 多个并列分支,再用一个门控网络把各分支的 logits 加权集成,把这个集成当作在线教师去教每一个分支。

(顺带一个引用勘误:不少综述把第一作者写成 Zhu,实际第一作者是 Xu Lan。)

损失是 L = Σ各分支CE + 集成教师CE + T²·L_KL,T=3,沿用 Hinton 的 T² 补偿。部署时只用目标分支,推理成本与 baseline 完全相同。

效果不错(CIFAR-100 错误率):ResNet-32 从 31.18 降到 26.61,ResNet-110 从 25.33 降到 21.62

但消融实验揭示了一件重要的事: 去掉在线蒸馏损失后,错误率掉 3.11 个点——然而即使完全不做蒸馏,多分支设计本身就优于原始单网络。也就是说 ONE 的收益有一部分来自"多分支联合训练的正则化效应",不全是蒸馏的功劳。 这是原文自己承认的。

还有个细节埋着后文的伏笔:分支数增加到 3 之后收益几乎饱和(26.68 → 26.58 → 26.52)。

6.6 同质化坍缩:同一个现象,两年内从"优点"变成"缺陷"

这是整个在线蒸馏叙事里我最喜欢的部分,因为它展示了学术共识如何翻转

2018 年的 ONE 论文观察到各分支表现趋于一致,把它解读为好事——原文说这"表明它们已经充分达成一致(sufficient agreement),彼此很好地交换了知识"。

2020 年的 OKDDip 论文(Chen et al., arXiv:1912.00350, AAAI 2020)看着同一个现象,给出了完全相反的定性:"group members are homogenized quickly with simple aggregation functions, leading to early saturated solutions."(成员被简单聚合快速同质化,导致过早收敛到饱和解。)

而且它把"多样性"操作化成了一个可测的量每对 peer 预测之间的平均欧氏距离。测出来的训练动态是:

  • 所有方法在训练早期多样性快速攀升;
  • 随后 ONE 与 CL-ILR 的多样性快速下滑,直到第 150 epoch 学习率下降才缓慢回升;
  • OKDDip 全程维持高多样性,接近"独立训练"(被当作多样性上界)。

同质化的代价被量化了(CIFAR-100,集成预测错误率):

网络CL-ILRONEOKDDip独立训练集成
ResNet-3227.0124.9023.4523.74
ResNet-11020.1920.1419.5420.18

原文的结论很关键:CL-ILR 与 ONE 把单个学生的精度提上去了,但降低了 peer 多样性、牺牲了集成效果——ResNet-32 上集成错误率相对独立训练上升了 5% 到 14%

换句话说:在线蒸馏是用"集体的多样性"换"个体的精度"。 如果你只要部署单个模型,这笔交易划算;如果你想要集成,它反而是负的。

后续的 PCL(Wu & Gong, arXiv:2006.04147, AAAI 2021)把根因又往前推了一步:同质化是因为所有分支吃的是同一份增广后的输入。它的解法是给每个 peer 喂不同的随机增广视图,并且不再简单加总 logits(原文批评"logit 求和阻碍集成教师进一步优化"),而是拼接各 peer 特征 + 一个额外分类器,构成可学习的集成教师。

OKDDip 论文还诚实地补了一句反向限定:"仅有多样性并不足以保证好的集成。" 这条限定很重要——它避免了把"多样性"变成新的教条。

6.7 三个必须交代的争议(否则就是在传播错误)

在线蒸馏这条线上有几个流传很广但站不住的说法,写进文章前必须澄清。

① "在线蒸馏优于离线蒸馏"——这个招牌主张被同期工作判定为假象。

Anil 等人(codistillation 那篇)复现了 DML 的 WRN-28-10 教 ResNet-32 实验,结论是:

  • 当挑一个训练精度接近 100% 的 checkpoint 当教师时,能复现 DML 报告的 69.5%(即离线较差);
  • 换一个 checkpoint,传统离线蒸馏就能达到 70.7%——正是 DML 报给在线蒸馏的成绩。

原文的因果判断直截了当:"教师模型的过拟合可以解释 Zhang 等人报告的离线蒸馏更差的表现……一个过拟合训练集的教师网络不会有用。"

他们还指出 DML 的比较口径不公平:DML 比的是"M1 蒸 M2"对"M1+M2 互蒸",没有比"M1+M2 集成去蒸 M3"。Anil 等人自己的总判断是:多阶段蒸馏与 codistillation "在质量改进上差别很小",真正的差别在训练时间与流水线复杂度。

② 跨论文横比这些数字是不可靠的。

铁证:ONE 论文里 ResNet-32 的 baseline 错误率是 31.18,而 OKDDip 论文同一个模型的 baseline 是 28.76——两套训练配方差了 2.4 个点,比方法之间的差距还大。

更关键的是,ONE 表格里 DML 那一栏带星号,脚注写明**"Reported results"(直接引用 DML 论文的数字,而非在同一配方下重跑)。而在 OKDDip 的统一配方下重跑,DML (26.47) 与 ONE (26.50) 基本打平;在 DenseNet-40-12 和 WRN-20-8 上DML 反而更好**。

所以"ONE 优于 DML"这个说法,在统一配方下不成立。

③ 在线蒸馏不是离线蒸馏的替代品。

OKDDip 论文自己做了这个实验:在线蒸馏之上再加一个真实教师(OKDDip+KD),效果继续提升,逼近教师本身的水平。原文的结论是**"一个强大的教师仍然是有帮助的"**。

还有更直接的负面证据:KDCL 论文(Guo et al., CVPR 2020)在 ImageNet 上重跑各方法,发现DML 让 ResNet-50 从 76.8% 掉到了 75.8%——在师生容量差距大的真实大规模任务上,朴素的互学习净收益为负

另有一篇 2024 年的实践研究(arXiv:2402.14922)给出 DML 的失效条件:教师较强时,普通 KD 通常优于 DML没有标签时,DML 经常产生负向知识迁移,而且扩大无标注数据反而放大伤害。(该文这几条结论基于散点图的目视判断、没有给出数字,引用时需注意这个限定。)

6.8 而在 LLM 时代,这条路基本被堵住了

讲了这么多经典在线蒸馏,必须说清它在今天的处境。

2025 年那篇发表于 TMLR 的综述(arXiv:2503.12067)给了明确判断,两条理由:

  1. "在 LLM 蒸馏中,教师模型是专有的、只能通过 API 访问,离线蒸馏仍然是唯一实际可行的方法。"
  2. "从基础模型或 LLM 蒸馏时,让教师与学生一起训练是不可行的"——参数量太大。

所以:经典意义上的"在线蒸馏"(教师学生同时训练)在 LLM 时代基本退场了。 它的思想遗产活在两个地方:

  • 联邦学习——codistillation 那套"交换预测而非梯度"的思路被直接继承(FedMD 等);
  • on-policy 蒸馏——名字里也有"在线"的意味,但如第五节所说,那是另一条轴上的事:教师依然是冻结的,变的是数据来源。

这也是为什么本文要花一整节做术语辨析:你在中文资料里看到的"在线蒸馏",在 2018 年和 2026 年指的很可能不是同一件事。

七、LLM 时代为什么不一样:误差会滚雪球

前面那些方法大多诞生于图像分类时代——输入一张图,输出一个类别,一次判断,结束

自回归语言模型完全不同:它要生成几百上千个 token,每一个都建立在自己前面生成的内容之上。这带来一个图像分类里根本不存在的问题。

7.1 Exposure bias:训练时看的是完美前缀,推理时靠自己

用最朴素的 off-policy 蒸馏(也就是"教师生成一批答案,学生在上面做 SFT")会发生什么:

  • 训练时,学生每一步看到的前缀都是教师写的——完美、流畅、没有任何错误;
  • 推理时,学生每一步看到的前缀是自己写的——一旦某步走偏,它就进入了训练中从未见过的状态。

于是错误开始累积:走偏一点 → 落入陌生状态 → 更容易再走偏 → 越滚越远。这个现象在序列生成里叫 exposure bias(暴露偏差)。

2026 年 4 月那篇 on-policy 蒸馏综述(arXiv:2604.00626)转述了一个量化说法:exposure bias 大致(roughly)随序列长度的平方增长。(档位提示:这是该综述引用前人结果且带 "roughly" 的转述,不是它自己的测量;该文标注 "Ongoing Work",为预印本。)这句话的含义很重:

序列越长、越依赖多步推理,静态模仿的结构性缺陷就越严重。

这解释了一件事——为什么在"输出一个类别"的年代,大家没觉得这是个大问题;而在"输出一整条推理链"的年代,它变成了非改不可的东西。

7.2 还有一个更隐蔽的问题:学到了风格,没学到本事

Gudibande 等人 2023 年那篇著名的批判(下面第十一节会详谈)指出另一重风险:学生很容易学到教师的语气、格式和自信程度,却没学到它的事实准确性。

这两个问题叠起来,就是 LLM 蒸馏必须换方法的原因。

八、On-policy 蒸馏:让教师给学生自己的每一步打分

这是 2024–2026 年最受关注的方向,也是用户常说的"在线蒸馏"在 LLM 语境下最可能指的东西。

8.1 一个国际象棋类比

Thinking Machines Lab 那篇广被引用的博文用了个很好的类比(该文我未能直连访问,以下依据其公开摘要与多方转述,标注为二手来源)。三种训练方式对应三种学棋方式:

方式类比问题
on-policy RL自己下棋,没人指导,只在终局知道输赢反馈极稀疏:一整局只有一个信号,且不告诉你哪一步是关键
off-policy 蒸馏看大师对局录像招法极强,但那些局面新手根本走不到;而且容易学到大师的气势而非棋力
on-policy 蒸馏你自己下,有位大师在旁边给你每一步打分——从"大错"到"妙手"兼得两者:局面是你自己的,反馈是密集的

这个类比精准地说明了它的定位:它不是在 RL 和蒸馏之间折中,而是取了 RL 的"局面相关性" + 蒸馏的"信号密度"。

8.2 具体怎么做

机制出乎意料地简单:

  1. 让学生自己生成一段回答(rollout);
  2. 教师对这段回答逐 token 计算概率分布——注意这只需要大模型的一次前向传播,不需要它自己生成;
  3. 用某种散度(最常见是 reverse KL)度量每个位置上学生与教师分布的差距,作为逐 token 的密集奖励;
  4. 反向传播更新学生。

据 GKD 作者 Rishabh Agarwal 的公开评论,这个套路本质上就是模仿学习里的 DAgger,关键区别在于:LLM 场景下用 reverse KL(或 Jeffreys 散度,即正反向各一半)效果最好,而机器人/RL 传统上用 forward KL。

8.3 为什么是 reverse KL:mode-seeking 与它的双面性

这是全篇最需要理解的一个技术点。

Forward KL(正向) 惩罚"教师认为有可能、学生却给了极低概率"的情况——它逼着学生覆盖教师分布的所有模式,所以叫 mode-covering。代价是:学生会把概率摊薄到一堆自己其实学不好的选项上,生成出四不像的东西。

Reverse KL(反向) 惩罚"学生认为有可能、教师却觉得不可能"的情况——它逼着学生收缩到教师的高概率区域,所以叫 mode-seeking

对生成任务来说,mode-seeking 通常是对的:你要的是一个说话靠谱的模型,不是一个把所有可能性都摊出来的模型。 MiniLLM(arXiv 2306.08543)是最早系统论证这一点的工作之一。

Thinking Machines 那篇还指出 reverse KL 有个很实用的性质——它抗 reward hacking:从教师视角看,KL 低就必然对应高概率,学生没法通过钻空子刷分。这与 RL 里奖励模型常被 hack 形成鲜明对比。

但 mode-seeking 是有代价的,而且代价刚被量化

2026 年的后续研究开始质疑这个权衡。有工作发现:on-policy 蒸馏(用 reverse KL)会导致多样性退化,并且当教师熵较高时,reverse KL 给出的学习信号不稳定,学生的 top-k 预测无法收敛。

一个实测数字(出自《Entropy-Aware On-Policy Distillation of Language Models》,arXiv:2603.07079, ICLR 2026):蒸馏后的学生只保留了 6.8% 的高熵 token,而教师是 18.5%。

翻译成人话:学生变得比教师更"斩钉截铁"了——它学会了教师最常走的那条路,却丢掉了教师面对不确定时的那种"犹豫"。对需要创造性、多样性、或探索能力的任务,这可能是实质损失。

(这几篇 2026 年的论文我在检索中看到标题与摘要,但未逐篇精读原文,故此处只转述其核心发现,具体实验设置请查原文。)

8.4 成本账:为什么它比 RL 便宜

on-policy 蒸馏的经济性有两个结构性来源,值得单独说清:

① 不必等 rollout 生成完。 RL 通常要等一整条回答生成完、拿到最终奖励,才能算梯度。而 on-policy 蒸馏的奖励是逐 token 的——生成到哪就能算到哪,所以可以用更短甚至部分的 rollout 来训练。

② 昂贵的那一方只做前向。 轨迹由便宜的小学生生成,教师只需对这些轨迹跑一次前向拿 log 概率。而在 RL 里,你还得额外养一个奖励模型。

据 Thinking Machines 报告的数字(二手来源,请以原文为准):在复现 Qwen3 团队结果的实验中,达到同等推理 benchmark 表现,相比 off-policy SFT 有 9–30 倍的效率提升——但三个数字口径不同:9× 是 FLOPs18× 是 GPU 小时(教师 logprob 计算可并行),约 30× 是把生成教师轨迹的成本也算进去后的整体系统效率;在某个 Qwen3 式设置下,从 40 万条 SFT 数据的起点出发,约 150 步就在 AIME'24 上达到约 70%

8.5 一个不太被提起的应用:给模型"打补丁"而不打坏它

同一篇还提到一个很实际的用途:持续学习 / 个性化

场景是这样:你想让一个助手学会你公司的内部文档。如果只用 SFT 在这些文档上继续训练,常见的副作用是指令遵循能力被侵蚀——模型记住了知识,却变笨了、不听话了。

而先 SFT 注入知识、再用 on-policy 蒸馏(以原模型或更强模型为教师)把行为拉回来,可以在不回退基础能力的前提下保留新知识。

这个用法的本质是:把蒸馏当成一种"行为锚定"手段,而不是压缩手段。 我认为这是蒸馏在 2026 年最被低估的价值——它不只用来做小模型,也用来防止模型在被改造时走形

8.6 边界:它不是万灵药,而且最优配置因任务而异

Apple 在 2026 年发过一篇专门给 on-policy 蒸馏"泼冷水"的研究——《Unmasking On-Policy Distillation: Where It Helps, Where It Hurts, and Why》。两个发现值得记住:

① 教师的指导在"学生答错时"更有价值。 研究发现,蒸馏信号在错误的 rollout 上更接近理想;而在学生本来就答对的 rollout 上,教师信号反而变得嘈杂

这其实很符合直觉:学生已经走对了,教师再逐 token 纠正它的措辞,纠的多半是"风格偏好"而不是"对错"——那部分信号价值很低,甚至可能有害。

这个发现有直接的工程含义: 与其对所有 rollout 一视同仁地蒸馏,不如把教师的算力集中花在学生答错的地方

② 没有普适最优配置。 该研究指出,最优的蒸馏设置取决于学生容量与目标任务的联合——不存在一套配置在所有情况下都好。

这一条对读者的意义是:别指望抄一份超参就能用。 看到某篇论文报告"on-policy 蒸馏提升 X%",先确认它的学生规模和任务类型跟你是否接近。

(这两条我依据的是该研究的公开摘要与综述转述,未逐字精读原文。)

九、黑盒蒸馏:只有文本输出时怎么办

调 API 时你拿不到 logits,只能拿到文本。这时"蒸馏"退化成一件朴素的事:让教师生成一批数据,拿这批数据去微调自己的模型。

Gudibande 等人给了一个有用的术语区分(下一节详谈):经典蒸馏中,教师的训练数据、架构、超参都已知,还能用它的概率分布;而**模型模仿(model imitation)**中这些全都拿不到。黑盒蒸馏本质是后者。

9.1 2023 年那一批:数据构造技巧的竞赛

模型数据量构造方式教师
Alpaca52KSelf-Instruct:175 条人写种子做 few-shot 自扩展text-davinci-003
Vicuna70K(v1.1;后续 v1.3/v1.5 扩至约 125K)ShareGPT 上真实用户分享的 ChatGPT 对话ChatGPT(间接)
WizardLM52K → 演化到 250K → 抽 70K 训练Evol-Instruct:迭代改写指令,分 in-depth(加约束、深化、增加推理步等)与 in-breadth 两类ChatGPT
Orca5MExplanation Tuning:不只学答案,学"解释轨迹"ChatGPT + GPT-4

WizardLM 有个很关键的对照实验:在同为 70K 的条件下,用 Evol-Instruct 演化出的数据训练,显著优于用 ShareGPT 真实人类指令的 Vicuna。

也就是说:合成并逐步复杂化的指令,可能比真实人类指令更有训练价值。 这个结论在当时相当反直觉。

但 WizardLM 自己也很诚实地报告了边界:它达到 ChatGPT 平均性能的 78%,在 17 项技能上超过 90%——但代码、数学、推理明显弱。 这个"会聊天不会算数"的特征,正是下一节那篇批判的靶心。

9.2 推理链蒸馏:让小模型学"怎么想",而不只是"答什么"

《Distilling Step-by-Step!》(Hsieh et al., ACL 2023 Findings, arXiv:2305.02301)做了个聪明的设计。

不是把 rationale(推理过程)当额外输入,而是构造一个多任务目标:用任务前缀 [label][rationale] 让小模型既预测标签、又生成推理过程。关键是部署时不需要 rationale,也不需要大模型在场。

核心数字很惊人:微调后的 770M 参数 T5,在 ANLI 上超过了 few-shot 提示的 540B PaLM,而且只用了 80% 的可用数据。 Google 官方博客的表述是模型缩小了 700 倍以上

同一篇还有个结论对实践很有用:只有无标注数据时,蒸馏仍然有效——4 个数据集里有 3 个仅用无标注样本就超过了 LLM。

9.3 合成数据蒸馏,以及"模型崩溃"之争

黑盒蒸馏推到极致,就是几乎全部用合成数据训练。代表是微软的 Phi 系列。

phi-1(arXiv:2306.11644):1.3B 参数,8 张 A100 训 4 天,数据是约 6B token 的"教科书质量"筛选网页 + 1B token 由 GPT-3.5 合成的教科书与习题,合计约 7B token。结果 HumanEval pass@1 达 50.6%

phi-4(arXiv:2412.08905)的规模大得多:50 类合成数据集、约 400B token。这里有个常被误解的点值得澄清:

phi-4 的合成数据不是"凭空 prompt 出来的"

官方报告写明:种子来自网页、书籍、代码库中筛选出的"复杂度高、推理深、教育价值高"的片段,再由这些有机文本片段驱动多阶段 LLM 工作流生成。推理类数据带测试校验,代码类走执行环境 + 单元测试。

课程也变了:phi-3 只在预训练后期用合成数据,phi-4 从一开始就用;消融显示固定 token 预算下,合成数据训 12 个 epoch 优于 4 个。

而 phi-4 报告里有一句自认的漏洞,我认为比任何外部批评都更值得引用:

尽管做了 n-gram 去重去污,"这些方法对所有场景都不有效,包括改写(rephrasing)"。

对一个训练语料本身就是 LLM 改写产物的模型来说,这句话的分量不轻。

关于 phi 的"争议",我要如实说明取证结果

我让调研专门去找 Phi-4 数据污染的独立审计,结果是没找到经同行评审的指控。只检索到一个未评审的 HuggingFace Space 展示了 phi-4 在 GSM8K 上的疑似污染样例。

这不构成定论,所以我不把它写成"已证实的争议"。

那么"用合成数据训练会不会导致模型退化"?这里有三方观点,必须并列呈现:

立场出处核心主张
会崩溃Shumailov et al., Nature 631:755-759, 2024不加区分地用模型生成内容训练导致不可逆缺陷,原始分布的尾部消失。分"早期崩溃"(偏离真实分布)与"晚期崩溃"(低频事件永久消失)
不一定Gerstgrasser et al., arXiv:2404.01413前人结论依赖"新数据替换旧数据"这个假设;现实是数据累积。实证:替换会崩溃,累积(真实+合成)则避免崩溃;并在线性模型下证明累积情形误差有与迭代次数无关的上界
更悲观Dohmatob et al., ICLR 2025, arXiv:2410.04840监督回归设定下,哪怕合成数据只占 1% 也可能崩溃——含义是"训练集变大也不再提升性能";更大的模型能缓解但不能完全避免

这三者其实不严格矛盾

  • Gerstgrasser 界定的是"保留真实数据时,误差不随迭代次数发散";
  • Dohmatob 界定的是"存在任何非零合成比例时,误差不随数据量下降"。

累积保住了"不发散",但没恢复干净的 scaling 行为。 两句话可以同时成立。

另外还有研究指出,文献里 "collapse" 至少有 8 种不同定义——很多分歧其实是定义之争。

顺带一个引用规范:Shumailov 那篇 Nature 论文有一份官方更正(Author Correction, Nature 640, E6, 2025)。需要说明的是,它是纯记号订正(理论直觉一节里的下标写错),不影响结论——提它只是为了引用完整。

十、工业界实际怎么做:一个方向性的反转

这一节的素材全部来自官方技术报告。而把它们放在一起会看到一件事:蒸馏在工业界的用途,已经不再是"压缩"了。

10.1 DeepSeek-R1:官方给出的"蒸馏 vs RL"双结论

DeepSeek-R1 技术报告(arXiv:2501.12948,后正式发表于 Nature 645:633–638, 2025)的蒸馏部分做法很直接:用 R1 精选的 80 万条样本(约 60 万条推理 + 20 万条非推理)对六个开源基座做 SFT——Qwen2.5-Math-1.5B/7B、Qwen2.5-14B/32B,以及 Llama-3.1-8B 与 Llama-3.3-70B-Instruct。

注意一个关键的方法学选择,原文明说:

"我们只做 SFT,不包含 RL 阶段,尽管加入 RL 能大幅提升性能。" 目的是隔离蒸馏本身的效果。

效果(pass@1):7B 蒸馏版全面超过 GPT-4o-0513 这类非推理模型;14B 在所有指标上超过 QwQ-32B-Preview;32B 与 70B 在多数 benchmark 上超过 o1-mini。

而最有价值的是它做的那个对照实验:在同一个 Qwen-32B 基座上,一边跑超过 1 万步的大规模 RL,一边直接从 R1 蒸馏——

方法AIME'24 pass@1MATH-500GPQA DiamondLiveCodeBench
纯 RL(R1-Zero-Qwen-32B,>10K 步)47.091.655.040.2
纯蒸馏(R1-Distill-Qwen-32B)72.694.362.157.2

官方由此写下两条结论,建议一起读,因为它们互为限制

  1. 把更强模型蒸馏到小模型效果很好;而小模型自己走大规模 RL 需要巨量算力,且可能仍达不到蒸馏的水平。
  2. 但蒸馏本身不足以突破当前的智能边界——那仍然需要更强的基座模型 + 更大规模的 RL。

换句话说:蒸馏擅长"把已有的能力搬下来",不擅长"造出新的能力"。

10.2 Qwen3:一个比分数更值得看的指标

Qwen3 技术报告(arXiv:2505.09388)的 §4.5 对 5 个 dense + 1 个 MoE 模型用了两阶段蒸馏:先 off-policy(学教师在思考/非思考两种模式下的输出),再 on-policy(学生自己生成,再对齐教师 logits)。

它的 Table 21 是我见过对"蒸馏 vs RL"最有说服力的一组数字(Qwen3-8B,三行同起点):

方法AIME'24AIME'25LiveCodeBenchGPU 小时
Off-policy 蒸馏(起点)55.042.842.0
+ 强化学习67.655.552.917,920
+ On-policy 蒸馏74.465.560.31,800

效果更好,而 GPU 小时只有约十分之一。

但真正值得停下来看的是 pass@64

这三行里还有一列我上面没放——pass@64(采样 64 次里至少一次答对):

  • 起点:AIME'24 90.0 / AIME'25 83.3
  • 加 RL 之后:90.0 / 83.3——完全没变
  • 加 on-policy 蒸馏之后:93.3 / 86.7

官方的解读原文是:从教师 logits 蒸馏"使学生模型能够扩展其探索空间、增强推理潜力",而 RL"没有带来 pass@64 的任何提升"。

这句话的含义很深:RL 主要在"锐化"模型已有的分布——把本来偶尔能答对的变成稳定答对;而蒸馏在"拓宽"边界——让模型获得原本根本采样不到的解法。

两者不是同一件事的两种做法,而是在做不同的事。这也和 10.1 里 DeepSeek 那条"蒸馏突破不了边界"形成了有趣的张力——在 pass@64 这个指标上,蒸馏反而是拓宽者。

(官方也自限:该对比只聚焦数学与代码类查询,所以通用 benchmark 上的增益落在调优域之外。)

10.3 Gemma:从"压缩"到"扩容"的反转

Gemma 2 技术报告(arXiv:2408.00118)里,2B 和 9B 用知识蒸馏训练(替代常规的 next-token prediction),27B 从零训练。

而它给出的动机,彻底翻转了蒸馏的传统定位:

用蒸馏不是为了缩短小模型的训练时间,而是为了**"在超出可用 token 数量的规模上训练"——用大模型当教师,把 2B / 9B 训练在超过 Chinchilla 计算最优量 50 倍以上**的 token 上。

具体预算:27B 用 13T token,9B 用 8T,2B 用 2T。而按 Chinchilla 的约 20 token/参数,2B 本该只用 40B token 左右。

传统认知:蒸馏是把大模型压小。Gemma 的用法:蒸馏是让小模型能吃下远超其"应得份额"的数据。

Gemma 3(arXiv:2503.19786)还公开了一个很实际的工程解法:词表约 262K,全词表 logits 存不下,所以每个 token 只采样 256 个 logits(按教师概率加权),未采样的置 0 后重归一化,学生在这个 256 维 support 上做交叉熵。

它还做了个反直觉的教师规模消融:常识认为训小模型该用小教师,但报告认为那是因为过去实验里"差教师的正则化效应超过了好教师的收益"。他们的发现是——短训练时长下小教师更好,长训练时长下趋势反转。

Gemma 报告的一个重要留白

报告没有指明预训练所用的教师模型是什么。 这意味着它的表现很大程度依赖一个未披露的(推测属 Gemini 家族的)闭源教师——所以不能把 Gemma 的成绩单纯归因于架构或公开数据。

10.4 Llama:一次改变生态的许可变更

Llama 3.2 的 1B / 3B 走的是先剪枝、再蒸馏、最后对齐:由 8B 模型剪枝而来,蒸馏时把 Llama 3.1 8B 和 70B 的 logits 引入预训练阶段作为 token 级目标,用来恢复剪枝损失的性能。

但 Llama 系列对蒸馏生态最大的影响不是技术,而是法务

Llama 3.1 的许可明确允许用模型输出去改进其他 LLM。

Meta 官方把 405B 定位为"用于合成数据生成与模型蒸馏",并称这个规模的开源蒸馏此前从未实现。这条许可变更是 2024 年之后开源蒸馏生态爆发的法律前提——没有它,第 12 节要讲的那些条款问题会把整条路堵死。

(一个需要澄清的流行说法:"405B 当教师蒸出 8B/70B"这个描述出自云厂商的部署文档,不是 Meta 论文原话。 Meta 博客对 8B/70B 升级的表述是"迭代式后训练"。)

10.5 蒸馏的第三种用途:能力聚合

GLM-4.5 技术报告(arXiv:2508.06471)展示了一个完全不同的用法。它的后训练分两阶段:

  1. 分别训练 Reasoning / Agent / General chat 三个领域专家模型
  2. 自蒸馏把这几个专家整合成一个既能深思也能直答的通用模型。

这里蒸馏不是压缩器,而是能力聚合器——把多个专才合并成一个通才。

NVIDIA 的 Nemotron 3 Ultra(2026-06,550B 总参数 / 55B 激活)把这个思路推到了更远:它的后训练用 Multi-teacher On-Policy Distillation(MOPD)——训练 10 个以上领域专精教师(覆盖 STEM、chat、指令跟随、终端工具、SWE、搜索、agent 安全、编码等),让学生自己生成尝试,每个教师在自己的专长领域给学生的轨迹打分,整个流程跑两轮。

官方给的理由正是第八节讲过的那条:在学生自己的轨迹上蒸馏比离线轨迹更贴合推理时的实际产出。

一个诚实的附注:它无法被完整复现

官方说明各轮 MOPD 依赖独立 RL 跑出的专精教师 checkpoint,而这些 checkpoint 不在公开发布范围内。所以"开放权重"不等于"可复现流程"。

10.6 便宜到什么程度:25 美元的推理模型

最后看一眼这条路能压到多便宜。

s1(arXiv:2501.19393)只用 1000 条精选样本(推理轨迹从 Gemini Thinking 蒸馏),在 Qwen2.5-32B-Instruct 上做 SFT,配一个叫 budget forcing 的小技巧(模型想停时追加 "Wait" 强迫它继续思考并自查),竞赛数学上超过 o1-preview。

SFT 耗时 26 分钟 / 16 张 H100,估算约 25 美元。

OpenThoughts(arXiv:2506.04178)则展示了数据配方的代际进化,同一条线上 AIME24 分数:Bespoke-Stratos-7B 14.3 → OpenThinker-7B 29.3 → OpenThinker2-7B 60.7 → OpenThinker3-7B 69.0

但这条线有个结构性依赖,必须说清

从 25 美元到 1.2M 样本、全部开放——这整条线的前提是"已经存在一个更强的闭源或半开源教师"(Gemini Thinking、DeepSeek-R1、QwQ)。

它不是"用很少的钱造出了强模型",而是"用很少的钱把已有强模型的能力搬过来"。 这个区别在讨论"开源追赶闭源"时经常被忽略。

十一、效果的真实边界:学到的是能力还是模仿

11.1 那篇标题很狠的批判

2023 年 UC Berkeley 的一篇论文标题就是结论:《模仿专有大模型的虚假承诺》(Gudibande et al., arXiv:2305.15717)。

它的实验做得很扎实:跨基座规模(1.5B–13B)、跨数据来源、跨模仿数据量(0.3M–150M token),同时用众包人工评分标准 NLP benchmark 两套评测。

结果出现了分裂

  • 众包工人认为模仿模型的输出与 ChatGPT 有竞争力
  • 有针对性的自动评测显示,在模仿数据未充分覆盖的任务上,差距几乎没有被缩小

由此得出那句核心判断:

模仿模型学到的是 ChatGPT 的风格(style),而不是它的事实性(factuality)。

而它最重要的发现是那个 scaling 结果:

你增加什么结果
更多模仿数据GPT-4 偏好评分基本持平
更大的基座模型评分持续上升

换句话说:模仿数据买不到能力,基座质量才买得到。

三年后回看这篇论文:机制对了,标题错了

有意思的是,这篇论文最有力的"反驳者"其实是它自己的结论

它说"更好的基座能缩小差距"——而后来 Llama 2/3、Mistral、Qwen、DeepSeek 级别的基座出现之后,蒸馏驱动的流水线(包括第十节那些 R1 蒸馏系列)确实做到了 2023 年的模仿做不到的事。

所以它的机制判断被验证了,悲观标题被推翻了。 学界现在一般把它当作一个有分量的告诫而非对蒸馏的否证:模仿能复制表面流畅度,解决不了高阶难题——但如果基座够强,"高阶难题"的门槛会移动。

(这一段的解读是我的综合判断,不是某篇论文的结论,请当作观点看。)

它还留下一个常被忽略的遗产:评测方法论的教训——人工/众包偏好评分会给出与真实能力不符的结论。这个教训在今天的 LLM 评测里依然适用。

11.2 小模型学不动强推理:一个有名字的现象

2025 年有篇论文给这个现象起了名字——Small Model Learnability Gap。论文本身的标题是《Small Models Struggle to Learn from Strong Reasoners》(Li et al., arXiv:2502.12143, ACL 2025 Findings),这个名字是它提出的现象名,不是标题。

核心发现相当反直觉:参数 ≤3B 的小模型,并不能稳定地从长推理链或大模型蒸馏中获益;它们在更短、更简单的推理链上微调反而更好,因为那更贴合自身的学习能力。

四条经验观察值得记住:

  1. 小学生受益于短 CoT,大学生受益于长 CoT
  2. 小学生受益于小教师,大学生受益于大教师
  3. 数学专精模型的 gap 小于通用模型base 模型的 gap 大于 Instruct 模型
  4. 小模型领域知识有限,可能是它学不动强推理教师的原因之一。

这条和第四节的容量鸿沟、第十三节的 scaling law 是同一件事的三个侧面:教师的强度必须与学生的接受能力匹配,"越强越好"在任何一个维度上都不成立。

论文给的方案叫 Mix Distillation——混合长短 CoT、或混合大小教师的数据,显著优于单一来源。

11.3 蒸馏推理能力的代价

蒸馏不是无副作用的。有两类代价有比较硬的证据:

① 指令跟随能力会塌陷。 Thinking Machines 报告在所有数据混合配比下,IF-eval 都在中期训练阶段下降;线性学习率下降幅度最终趋平并随衰减缓慢回升,但从未完全恢复。而且LoRA 也不足以保住它——它学得更少,却仍然遗忘原有的后训练行为。

他们给的机制假说很有意思:RL 可能只训练了原模型的一个小子网络,因此在后续大量数据上继续训练时特别脆弱。

② 安全对齐会退化,而修回来又伤推理。 有篇论文的标题就叫《Safety Tax》(arXiv:2503.00555):推理训练的第一阶段推理能力上升但安全能力退化;事后做安全对齐能恢复安全,但又损害推理。给的数字是:SafeChain 对齐使平均推理准确率下降 7.09%,DirectRefusal 下降 30.91%

(该论文明确指出这与另一篇工作的结论冲突——这是文献里一个真实的分歧点,不是共识。)

11.4 目前最薄弱的两块:agent 与长上下文

这一节的证据档位低于全文其余部分

下面的内容来自我对 2025–2026 一批论文的综合印象,我没有为每条结论逐一核实到具体论文的原文与编号。全文其他地方我都尽量给了 arXiv 号,这里给不出,所以请当作"方向性判断"而不是引证事实

我保留它是因为"哪里还不行"对读者有用;但如果你要引用,请自行找一手来源。

2025–2026 的文献里,这两块的负面结论比较一致:

Agent / 工具使用——小模型的 agentic 表现显著更差,而且有个反直觉的观察:它们工具调用的尝试次数更少(明明参数知识更有限、更该查工具)。人工检查发现它们要么直接幻觉答案,要么违反工具调用的语法要求。

这个方向收敛出的几个未解限制:off-policy 模仿与学生容量不匹配;多轮 / 长时程的工具编排迁移很弱(多数工作仍只针对单轮技能);DAgger 式修补仍是教师主导,轨迹复杂度常与学生能力错配。

长上下文——这个方向相关研究的自述局限比结论更有信息量:往往只有单一教师-学生对、跨规模泛化性未建立、由于对照组同样在长上下文上训练所以设计上无法把长上下文能力单独归因于蒸馏、评测仅靠合成检索 benchmark。

11.5 看蒸馏 benchmark 分数时的免责声明

这条建议我认为应该印在所有蒸馏报告的第一页。

Phi-4-reasoning 的官方报告自己承认:AIME 只有 30 道题,average-of-5 的两次运行可以差 5–10 个百分点。

再叠加随机种子、数据集版本、指令格式、选项偏置——几个百分点的差异基本不构成证据。 看到"蒸馏模型超越教师 X%"这类说法时,先问它给了置信区间没有。

十二、合规与对抗:那场关于"偷师"的争论

这一节涉及具名公司的争议,所以我把证据分级做得比前面更细:【条款原文】(我核实过官方页面)、【一方指控】(具名公司单方声明,无独立验证)、【论文主张】【未找到】

12.1 条款怎么写的

三家主要厂商的条款我都核实了原文。共同点是:这是合同条款,不是著作权主张。

厂商关键表述备注
OpenAI(消费者条款,2026-01-01 生效)禁止 "Use Output to develop models that compete with OpenAI";同时禁止"自动或程序化地提取数据或 Output"同一页面又明确 "you own the Output"——"输出归你,但不得用于训练竞品"是并存的
OpenAI(企业/API 服务协议)§3.3(e) 同样禁止,但有 "Permitted Exception"例外是:开发主要用于分类、归类、组织数据的模型(如 embedding 或分类器)且不对外分发或商业化;以及使用官方 fine-tuning 服务
Anthropic(商用条款,2025-06-17 生效)§D.4 禁止"访问服务以构建竞品,包括训练竞争的 AI 模型";并禁止"支持任何第三方实施上述行为"表述最短,但把"帮别人干"也纳入禁止
Google(Gemini API 附加条款)禁止开发竞争模型,且明文禁止"试图逆向工程、提取或复制服务的任何组件,包括底层数据或模型(例如参数权重)"表述最宽,管到"参数权重"级别

两个值得注意的细节:

  • OpenAI 那个 Permitted Exception 很少被提及,但它实际上给"训个分类器自用"开了合法口子;
  • Google 的通用 API 条款里没有"竞争模型"这条,它只存在于 Gemini 专属附加条款里。

关于可执行性: 我让调研专门去查有没有以"用输出蒸馏训练竞品违反 ToS"为诉因、已进入法院程序的案件——截至 2026 年 8 月,未找到任何一起。 实际发生过的"执法"形态是厂商自助救济,也就是封号。

12.2 已经发生的争议

2025 年 1 月,OpenAI 指控 DeepSeek【一方指控】。发言人声明称"我们知悉并正在审查 DeepSeek 可能不当蒸馏了我们模型的迹象",并称采取了"积极主动的反制措施"。同时明确表示这不是安全入侵

据报道,证据形态是两类:输出相似度分析,以及访问模式异常(经混淆的第三方代理、数千个"burner" API 账号)。

这里有三点必须如实说明

  1. DeepSeek 官方对此的公开回应,我没有找到。 多方报道称其未予公开回应。
  2. 有一个可核查的反面事实:R1 技术报告本身描述的蒸馏方向是从 R1 蒸馏到 Llama/Qwen——与被指控的方向相反。
  3. 媒体一致提到的举证难点:只有最终模型公开、训练数据不公开,且当时不存在成熟的技术手段可以证明蒸馏

2026 年 2 月 23 日,Anthropic 发布官方博文指控 DeepSeek、Moonshot、MiniMax【一方指控,但官方原文我核实过】。这份的细节密度远高于前者:

  • 称三家实验室通过约 24,000 个欺诈账号、生成了超过 1600 万次与 Claude 的交换;
  • Anthropic 主动声明蒸馏本身是合法的"蒸馏是一种被广泛使用的合法训练方法。例如,前沿实验室常规地蒸馏自己的模型以为客户提供更小、更便宜的版本。" 它的指控焦点是欺诈性访问与违反区域限制,不是蒸馏这个技术;
  • 归因方法:IP 关联、请求元数据、基础设施指标,部分有行业伙伴佐证;
  • 被指的技战术里有一条特别值得注意:要求 Claude"想象并逐步写出某个已完成回答背后的内部推理"——以此大规模生成思维链训练数据。还有用 rubric 打分把 Claude 当作 RL 的奖励模型;
  • 量级分布:MiniMax 最大(1300 万次以上),DeepSeek 最小(15 万次以上,侧重推理与打分)。

三家公司的公开反驳:【未找到】。

更早的同类事件里,只有一起有明确的厂商行动记录:2023 年 12 月,OpenAI 因 ByteDance 使用其 API 训练自研模型而暂停了对方账号。行动形态是账号封停,不是诉讼。而 Alpaca / Vicuna 那一批的处理方式是自我限定"仅学术研究、不可商用"。

12.3 技术防御:一场攻防拉锯

学术侧的思路

  • Nasty Teacher(arXiv:2105.07381, ICLR 2021):训练一个"恶意教师",自身精度几乎不变,但学生模仿它会显著掉点。做法是在维持自身交叉熵的同时,最大化与一个对抗副本网络之间的 KL 散度,从而在"非最大类"的输出分布里制造虚假信号。作者称这首次为模型所有者提供了"KD 免疫力"。 但它后来被攻破了——2022 年有工作(arXiv:2210.11728, ECCV 2022)提出针对性方法,称把从 nasty teacher 的学习效果提升最多 68.63%
  • Antidistillation Sampling(arXiv:2504.13146, CMU):针对推理模型。既然长推理链本身是高质量蒸馏语料,那就在采样时策略性地修改 next-token 分布来"污染"推理链,使其对蒸馏失效,同时保持模型自身效用。用一个系数控制"效用 vs 污染强度"的权衡。

但 2026 年一篇评估论文给出了一个让人意外的结论

DistillGuard(arXiv:2603.07835)把输出级防御分为三类——输出扰动、数据投毒、信息节流——然后做了系统评估。结论是:

在同族蒸馏场景下,多数输出级防御意外地无效。 基于改写的扰动几乎不降低学生质量;数据投毒主要损害对话流畅度,而任务能力基本无损

(这条我只核实了论文存在与摘要,未读原文,引用前建议自行复核。)

厂商实际在做什么——这部分证据最硬:

  • 不暴露原始思维链。 OpenAI 在 o1 发布博文里写明,在权衡"用户体验、竞争优势、以及思维链可监控性"等多个因素后,决定不向用户展示原始思维链,只给模型生成的摘要。注意:官方把"竞争优势"与"可监控性"并列,并没有明说是为了防蒸馏——把它解读为反蒸馏动机属于合理推断。

  • 削减 logprobs 的可组合性。 这条来自下面 12.6 那篇论文:它称在负责任披露之后,两家 API(OpenAI 与 Google)都已实施防御来阻止该攻击或提高其成本——但论文没有披露具体措施是什么

    这里我原本写错了,特此更正

    我最初把"不同时提供 logit bias 与 logprobs"写成了 OpenAI 已实施的措施。核实后发现:那是论文在防御建议一节里提出的方案之一,不等于已经落地。

    可核实的旁证是另一件事:作者配套代码库注明该攻击自 2024-03-03 起对 OpenAI API 失效。所以"防御确实上线了"有据,"上线的是哪一条"无据。

  • Anthropic 公开承认在做模型级反蒸馏。 其官方博文列出四类防御,其中包括"开发产品、API 和模型层面的保护措施,以降低模型输出对非法蒸馏的效用,同时不损害正当客户的体验"。这是主流厂商第一次公开承认在做输出级反蒸馏。

顺带回答一个我特意让调研去查的问题:"在上下文里注入虚假信息以污染蒸馏数据"有没有学术名称? 答案是没有被广泛接受的专有名称,最接近的归类是 DistillGuard 那个分类里的 data poisoning

(这也正好呼应了上一篇提到的那个 anti_distillation: ['fake_tools'] 请求体字段——往上下文注入假工具,属于同一思路。)

12.4 水印能不能当证据:一个条件性的答案

思路很自然:如果教师的输出带水印,而水印能"传染"给学生,那就能证明蒸馏。

好消息(水印确实会传染): 《Watermarking Makes Language Models Radioactive》(arXiv:2402.14904, NeurIPS 2024)发现:即使学生的训练文本中仅约 5% 带水印,也能以高置信度检出。

坏消息(但可以被洗掉): 《Can LLM Watermarks Robustly Prevent Unauthorized Knowledge Distillation?》(arXiv:2502.11598, ACL 2025)站在攻击者视角给出两类去除方法——蒸馏前的训练数据改写、蒸馏后的推理期水印中和。实验称两者都能彻底消除继承的水印,其中推理期中和在保持知识迁移效率的同时开销很低。

所以"水印能否作为蒸馏证据"的答案是: 在被动、无对抗的场景下有效;一旦对手知情并采取改写或推理期中和,就可以被规避。 它不构成强证明。

另外要澄清一个容易搞混的时事: Anthropic 在 2026 年 8 月宣布对 Claude 文本输出加水印。但官方给的理由是内容溯源合规(欧盟 AI Act 第 50 条自 2026-08-02 起可执行),不是反蒸馏。两者技术同源,但把厂商上线水印直接说成"为了反蒸馏"缺乏依据。

12.5 检测与指纹:能查到什么程度

蒸馏程度量化:《Quantification of Large Language Model Distillation》(arXiv:2501.12619, ACL 2025)给了两个指标:

  • RSE:比较待测模型与参考模型输出的多维度相似度;
  • ICE:用改造过的越狱框架迭代构造提示,挖出模型在蒸馏过程中意外学到的"身份信息"。作者的洞察很妙——问身份信息本身没有恶意,所以即使模型会拒绝有害输出,仍可能泄露身份。

它报告多数流行 LLM 表现出较高蒸馏程度,例外是 Claude、豆包、Gemini;并发现 base 模型的蒸馏痕迹比对齐后的模型更明显(说明后续微调会掩盖痕迹)。

但"模型自称是 ChatGPT"能当证据吗

这个现象流传很广,常被当作蒸馏的铁证。我让调研专门去查它的证明力,结果是【未找到】任何权威来源(学术或司法)论证它可以充当证明。

可确证的只是:它被 ICE 当作一种信号来挖掘。至于成因的机制性解释(训练语料混入了含身份表述的对话数据),本次检索也没有拿到可引用的一手来源

所以这条我只能说"是个信号,不是证据"。

模型指纹方面,两大范式各有硬伤:注入式(把私钥当后门植入)需要模型所有者事先动手;内生式的代表 REEF(arXiv:2410.14273, ICLR 2025)比较表征的 CKA 相似度,声称对顺序微调、剪枝(最多 90%)、模型合并都稳健——但它是白盒方法,需要访问权重,因此对纯 API 的商业模型不适用。 而那恰恰是最需要审计的场景。

12.6 顺带一提:通过 API 真的能"偷"到一部分模型

最后这个研究值得单独说,因为它是唯一有厂商公开承认因此改动 API 的记录

《Stealing Part of a Production Language Model》(Carlini et al., arXiv:2403.06634, ICML 2024)证明:利用 logit_bias 参数与 top-K logprobs 返回的交互,可以恢复生产模型最后一层(embedding projection layer)的隐藏维度乃至权重矩阵——因为这一层是低秩的。

实测成本低得惊人:

模型恢复内容成本
OpenAI ada隐藏维度 = 1024约 1 美元
OpenAI babbage隐藏维度 = 2048约 2 美元
gpt-3.5-turbo维度(应 OpenAI 要求不公布约 200–800 美元

伦理上他们做得很规范:事先获得 OpenAI 批准、与其确认方法有效性、之后删除了提取到的权重;前三个模型的维度之所以能公布,是因为它们已经弃用。

而最关键的一句在论文里:"在负责任披露之后,两家 API 都已实施防御来阻止我们的攻击或提高其成本。"(具体措施论文未披露;作者代码库注明该攻击自 2024-03-03 起对 OpenAI API 失效。)

这仍然是全篇最实在的一条:防御不是纸面上的,它真实发生过,而且是被一次学术攻击推动的。 只是"上线了什么"我们并不知道。

十三、实践选型:什么时候该蒸馏,什么时候压根别蒸

讲了这么多方法,最实际的问题是:我这个场景到底该不该蒸馏、怎么蒸?

这里有一篇罕见地给出了明确决策规则的论文:Apple 的《Distillation Scaling Laws》(arXiv 2502.08606,ICML 2025)。

13.1 先回答"该不该蒸"

这篇论文拟合出一条蒸馏 scaling law——给定算力预算及其在教师与学生之间的分配,预测学生的最终性能(论文报告对学生交叉熵的预测误差最多约 1%)。

由此得出的决策规则,我认为是本文最有实用价值的一段:

蒸馏 vs 直接训练:Apple 给的判据

蒸馏更划算,需要同时满足:

  1. 总算力(或 token 数)不超过某个阈值——这个阈值随学生规模可预测地增长;
  2. 教师已经存在,或者这个教师还有别的用途(比如你要蒸馏出多个学生)。

反过来说——如果你只想蒸一个学生,而教师还得从头训,那就别蒸了,直接监督训练那个小模型。

理由很朴素:训教师的成本要全部摊在这一个学生身上,算下来不如省掉这一步。

这条规则值得记住,因为它反驳了一个流行的默认假设——"蒸馏总是比从头训好"。不是的。蒸馏的经济性建立在"教师成本可摊薄"之上。

13.2 再回答"教师该多大"

直觉会说"教师越强越好"。但这条直觉是错的。

Apple 那篇发现:当教师相对学生太强时,会出现容量鸿沟(capacity gap)——学生的可学习性反而下降。论文的描述是:学生损失遵循教师交叉熵的幂律,并且在两个不同的 regime 之间转换。

也就是说:

存在一个"最优教师规模",而不是"最大教师规模"。

另一篇专门研究这件事的工作(《Towards the Law of Capacity Gap in Distilling Language Models》,arXiv 2311.07052)更进一步,声称:给定期望的学生规模,最优教师规模可以通过一个 scaling 关系唯一确定,且计算这个关系的开销很小。

实践含义: 手上有个巨无霸模型时,别想当然地拿它当教师去蒸一个很小的学生。中间可能需要一个"助教"(4.2 提到的 TAKD 思路),或者干脆选个中等规模的教师。

13.3 一张选型速查表

综合全文,我把选择压缩到一张表:

你的处境建议依据
只蒸一个小模型,教师还得自己训别蒸,直接训13.1
已有强模型,要产出多个小模型蒸,且这是蒸馏最划算的场景13.1
教师远大于学生考虑助教/中等教师,别硬蒸13.2
拿得到教师 logits(自家模型)白盒:logit/特征蒸馏,长序列任务优先考虑 on-policy第八节
只拿得到文本输出(调 API)黑盒:生成数据做 SFT,注意条款与边界第九、十二节
任务是长推理链优先 on-policy,exposure bias 随长度平方增长7.1
需要输出多样性/创造性慎用 reverse KL 的 on-policy 蒸馏,注意多样性退化8.3
想给模型注入知识但怕它变笨用蒸馏做"行为锚定",而非单纯 SFT8.5
完全没有教师、想让几个模型一起变强经典在线蒸馏(互学习)第六节
目标是极致压缩部署蒸馏常与剪枝配合使用,而非单独上10.4(Llama 3.2 的剪枝+蒸馏)

结语:一个词,四种用途

写完这一篇,我觉得最值得留下的不是某个方法,而是**"蒸馏"这个词的语义漂移**。

它最初只有一种用途,现在至少有四种:

用途代表目标
压缩经典 KD、Llama 3.2 的剪枝+蒸馏小模型逼近大模型
扩容Gemma 2(训在超 Chinchilla 最优 50 倍的 token 上)让小模型吃下远超其"份额"的数据
聚合GLM-4.5 的自蒸馏、Nemotron 的多教师 OPD把多个专才合并成一个通才
锚定on-policy 蒸馏做持续学习注入新知识时防止模型行为走形

同一个技术名词,目标函数已经完全不同了。 所以看到"某模型用了蒸馏"时,第一个该问的是——蒸的是什么,为了什么。

除此之外,有三条判断我认为是这次调研里最站得住的:

第一,"越强越好"在每个维度上都不成立。 更准的教师不一定蒸得更好(label smoothing 那个反向实验);更大的教师会撞上容量鸿沟;温度越高不总是越好;小模型学不动长推理链。蒸馏是一门"匹配"的手艺,不是"堆料"的手艺。

第二,我们其实不知道蒸馏为什么有效。 暗知识、正则化、样本重加权、方差降低——四种解释各有支持也各有反例。而 Stanton 那篇更狠:学生连在训练集上都匹配不上教师,"更像教师"也不总是"更好的学生"。一个被用了十年、支撑起整个开源生态的技术,其机制仍是开放问题。

第三,这个领域的知识半衰期很短,而且会翻转。 最好的例子是"同质化"——2018 年 ONE 论文把各分支趋于一致解读为"充分达成一致"的优点,2020 年 OKDDip 把同一现象量化为多样性坍缩的缺陷。两年,同一个现象,相反的定性。

所以这篇文章最该有的免责声明是:它是 2026 年 8 月的一张快照。 我尽量把每个断言的出处和可信度标了出来,不是为了显得严谨,而是因为——在一个结论会翻转的领域里,"谁说的、什么时候说的、有没有被复现"比结论本身更有用。