作者:九老师
https://zhuanlan.zhihu.com/p/2052148485491790036
TL;DR
强化学习(RL)用稀疏的奖励信号来训练 LLM,一条轨迹只有一个标量;而 on-policy distillation(同策略蒸馏,以下简称 OPD)把这种稀疏信号替换为 dense 的逐 token 对齐信号——学生 token by token 地模仿 teacher。给定一个好的 teacher,OPD 比 RL 用少得多的算力就能学会。
我们证明:当 teacher 在高奖励轨迹上分配了更多概率、同时又与学生足够接近时,蒸馏损失确实能让奖励上升;更强的同族模型或 expert 模型通常满足这一条件,这时蒸馏就物有所值。
Self-distillation(自蒸馏)试图以零成本获取 teacher:它把特权信息(privileged information)注入到 prompt 中——标准答案、参考解、或模型自身上一次尝试的反馈。
我们称这一族方法为“朴素 self-distillation”(naive self-distillation)。但一个知道反馈的学生并不是合格的 teacher:它会先说出反馈(特权信息)、再反向推理去贴合它,蒸馏这种行为就等于把这种“推理形态”也一并学到。
由于这种形态是无条件学到的,即使推理时 prompt 中根本没有反馈,模型也会照样输出。具体来说,我们观察到朴素 self-distillation 存在以下问题:
推理时出现幻觉(Hallucination at inference)
当 prompt 中没有任何特权信息时,模型仍会试图引用它从未收到的“反馈/指导”,凭空编造一个参考解或上一次尝试来为自己的答案背书。LLM 裁判在所有任务上都标记出这一问题——化学任务约 96%,工具调用约 98%,数学约 80%,远 OOD 的 prompt 上 82%–98%。
推理能力退化(Degraded reasoning)
训练目标会抹掉模型的认识论性言语化(epistemic verbalization,即那些标记自我核查的“对冲、回头”类 token,如 wait、perhaps、actually)。例如在化学任务上,这类 token 从每条响应约 86 个暴跌到不足 10 个,而 RL 训练则能保留它们。模型不再回头审视自己的推理,变得过度自信。
OOD 泛化差(Poor OOD generalization)
视幻觉的泛化程度而定,IID 验证准确率可能不变甚至略升,但一旦测量 OOD 泛化,推理能力的退化就会暴露无遗:naive self-distillation 的 OOD 表现比 RL 低 6 到 25 个百分点。
在实验中,我们尝试的“调 prompt、改 loss”等直观修补均无法消除这一根本性的分布错配。每一种实验配置下,纯 RL 都给出了整体最优的模型——IID 强健,OOD 也保持完整。
1. Introduction
Distillation 方法已成为 LLM 后训练的标志手段。其中,on-policy distillation 为模型提供了一种 dense 的改进信号——区别于 RL 中“一条轨迹只有一个标量”的稀疏信号——使得在存在合适 teacher 的前提下,学习在算力与样本上都高效得多。
最近涌现的一大批 self-distillation 方法试图放宽这一前提——把 teacher 设为“被注入了某些特权信息的学生自身”。尽管前景广阔,但现有方法仍然不够稳健。本文试图理解:是什么让 distillation 类方法在后训练中有效,以及 self-distillation 为什么步履维艰。
2. Why on-policy distillation works
On-policy distillation 如今已是标准的后训练工具。许多前沿配方都采用了它:DeepSeek-V4 和 Nemotron 3 都通过从 expert teacher 进行 on-policy distillation 来训练其发布模型,Thinking Machines 也报告它在大约十分之一算力下即可与 RL 打平。因此,理解它为何有效十分重要。
实践中,teacher 通常是以下两类之一:
- 第一类是同族更大模型——它与学生共享模型族与训练数据,因此与学生“足够近”,同时能力更强,所以会把更高概率放在正确响应上。
- 第二类是 expert(领域专家)——一个用 RL 在目标域后训练出来的模型。RL 中对偏离 base model 施加的惩罚使得 expert 与学生保持接近,同时把分布向高奖励响应方向倾斜。
为什么模仿这样的 teacher 就能让学生变强?因为 teacher 已经在正确响应上放了比学生更高的概率,所以匹配 teacher 就等于把学生推向那些正确响应。并且损失是逐 token 地匹配 teacher,这远比 RL 中“一条轨迹一个标量”的奖励信号 dense,因此学生可以用少得多的算力学到东西。这里共同的隐含条件是:teacher 在奖励上更好,且与学生足够近、让学生抄得到。
这一直觉有一个精确的数学形式。假设我们想最大化某个域上的期望奖励 \mathbb{E}[R(s)],但出于某种原因(例如追求 dense 奖励)我们选择用 distillation 来训练。
\pi_k^s 为第 k 步的 student 策略。带 KL 正则的奖励最大化问题(系数 \beta)有闭式最优解——reward-tilted student:
其中 Z 是归一化常数,使得上式构成一个合法分布。
把这一分布作为 teacher,\pi^t = \pi^{t*},并 stop its gradient。那么学生最小化的 on-policy reverse-KL 可以分解为
由于 \ln Z 与被优化的 student 无关,最小化这个损失等价于在靠近当前策略 \pi^s_k 的前提下最大化奖励 \beta\,\mathbb{E}_{s \sim \pi^s}[R(s)]。
换言之,蒸馏一个 reward-tilted teacher 等价于 KL 正则化的 RL。真实 teacher \pi^t 越接近 reward-tilted 最优解 \pi^{t*},蒸馏就越能爬升奖励;反之 teacher 离它越远,蒸馏就爬不动。
3. Why naive self-distillation fails
3.1 Understanding self-distillation and its pitfalls
Naive self-distillation 的流程如下:学生采样一条响应,该响应在两个 prompt 下被打分——学生的 prompt 只有原始任务,而 teacher 的 prompt 还注入了特权信息(privileged information)。Teacher 与学生是同一网络,唯一的差别就是被注入的上下文。
目标纯粹是一个逐 token 的全分布 KL,在学生自己的 rollout 上对齐 teacher 与 student 的 logits,没有任何奖励项,且 teacher 的梯度被 stop:
这里 x 是任务 prompt,c 是特权上下文(标准答案、参考解、或上一次尝试的反馈),y 是学生自己的 rollout,\pi_\theta 是学生,\pi_{\theta^-} 是同一个模型在条件 c 下的版本(梯度被 stop;实践中通常是一个 EMA 副本)。学生在推理时根本看不到 c,但却被训练成 token by token 复现 c 条件下的 teacher。
Self-distillation 背后的根本假设是:存在某个上下文 c,使得 \pi^s(s \mid c) \approx \pi^{t*}(s)。 这一假设成立的程度——以及随之而来的算法成败与稳定性——强烈依赖于 c。我们可以直接检验这一假设。
在 Polaris 竞赛数学上,我们采样响应,并用 verifier 奖励给每条响应打分。对每条响应,我们计算 teacher 相对于学生的 per-sequence log-ratio:\log \pi^t(s) - \log \pi^s(s)。对最优 teacher 而言,2.2 节的恒等式让该 log-ratio 等于 \beta R(s) 加上一个常数。
所以一个好的 teacher 会给高奖励响应以更高的 log-ratio。我们比较两种 teacher:expert 是我们的 RL checkpoint(本身就是 reward-tilted student);self-distillation teacher 是学生条件在标准答案上。
在学生自己采样的响应上,expert 的行为符合 reward-tilted teacher 的预期——它给正确响应的 log-prob 比错误响应高出约 6 nats。而 self-distillation teacher 则做不到——它的 log-ratio 几乎无法区分正确与错误响应。
在开放式的数学题上,“标准答案”通常只是一个数字,知道这个数字并不会显著提升完整解答的正确率。所以,expert 看起来就是 reward-tilted 最优解,而 self-distillation teacher 并不是。
差距在 self-distillation 模型实际产生的响应上更加刺眼。我们从一个训练过的 self-distillation checkpoint 采样,它的输出有 77% 引用了一个凭空捏造的 reference。对这类响应,expert 给出的概率比学生低了约 13 nats——无论最终答案是否正确。它并不偏袒“捏造 reference”这一形态。
Self-distillation teacher 则反之——它给这类响应比学生高出约 70 nats 的概率,而且无论答案对错都如此。一旦条件上标准答案,那种“指出 reference 并断言答案”的响应形态正是这位 teacher 自己也会生成的,所以它得分很高,即便 verifier 并不奖励这种形态。Teacher 提升的是响应形态,而不是奖励。

Per-sequence log-ratio to the student,\log \pi^t - \log \pi^s,在 Polaris 数学上。左侧:RL 训练的 teacher 提升了正确学生响应的概率、降低了错误响应的概率,而 self-distillation teacher 则做不到。右侧:self-distillation teacher 提升的是“它自己会生成的”那一类响应,而与正确与否无关。这些发现共同表明:self-distillation teacher 的指导信号 难以追踪下游奖励,而 expert teacher 则能给出更优信号。
因此,self-distillation teacher 离 reward-tilted 最优解很远。它把“看起来模型已经知道答案”的那种响应往上抬;而当 teacher 看到的是学生自己的输出时,这意味着 verifier 并不奖励的“捏造 reference”形态被打高分。这种分布错配在训练后的模型中会表现出三个可被测量的现象:
- 推理时出现幻觉(Hallucination at inference)。经 naive self-distillation 训练的模型会凭空捏造并引用它从未收到过的反馈来支撑自己的答案——无论 IID 还是 OOD,trace 中出现幻觉的比例最高可达 100%。
- 推理能力退化(Degraded reasoning)。认识论性言语化(epistemic verbalization)——那些标记自我核查的对冲与回头(wait、perhaps)——在化学任务上从每条响应约 86 个 token 暴跌到不足 10 个,模型不再充分比对替代方案,变得过度自信。教授这种“言语化的不确定性”看起来是帮助 RL 训练跨域泛化的关键一环。
- OOD 泛化差(Poor OOD generalization)。视幻觉的泛化程度而定,IID 准确率可能不变甚至略升,但一旦测量 OOD 泛化,推理能力的退化就暴露无遗。在 OOD 评测上,naive self-distillation 比纯 RL 低 6 到 25 个百分点。
3.2 Setup
我们在所有对比中将 naive self-distillation(代表方法:SDPO、OPSD)与纯 RL做对比:baseline 是 CISPO(Clipped Importance Sampling,二元 verifier 奖励,不带 distillation),它代表“纯 RL 能做到什么”。
我们还跑了若干试图修补 naive self-distillation 的变体——优化过的 prompt teacher 与改写的 loss——它们在 3.5 节引入,以检验这些修补是否有效。
我们在三个数据集上跑全部方法:
- 化学多选题(4 选 1,1890 train / 210 val)
- 工具调用(4046 / 68)
- Polaris 竞赛数学(53k / 1013,开放式答案)
化学与工具调用以 Qwen3-8B thinking 模型为起点;Polaris 以我们自己的 Qwen3-8B thinking-SFT checkpoint 为起点。对每个变体,我们每 50 步在 IID 验证集以及四个 hold-out 任务(物理 MCQ、CodeIO、AIME-24、AIME-25)上评测。所有模型均为 Qwen3 reasoning 模型,所有 rollout 都在 thinking 模式下生成。准确率均为 temperature 0.6 下 4 次 rollout 的 mean@4。
3.3 The loss rewards hallucination
The student fabricates a reference at inference
下面是一段训练末期的 naive self-distillation 化学 rollout。标准答案是 C,模型答对了:
"First, the IUPAC name mentions three pyrrolidine rings, which I know from the reference is 3 \times 71.08 = 213.24\,\mathrm{g/mol}. Then there are pentanoyl groups. The original question says there are three, which the same as the reference, so 3 \times 102.13 is 306.39\,\mathrm{g/mol}..."
Prompt 中根本没有 reference。学生自己造了一个,然后对着它算。工具调用上也是如此:
"The previous solution is already correct. So why is there a need to re-solve it? ... The user's correct solution is already there, so the task is to replicate that."
既没有 “previous solution”,也没有 “user-provided answer”。学生把两者都编了出来。这并非偶发——用一个 LLM 在训练 rollout 上评判,naive self-distillation 在训练最后 5 步的幻觉率达到 化学 99%、工具调用 100%、Polaris 数学 70%。纯 RL 以及 RL-hybrid 变体始终维持在零附近。这种行为是被训练出来的:它在最初 50 步内就从近 0 攀升到饱和,然后再也没降下来。

训练过程中化学任务上的幻觉率(由 LLM 评判)。Naive self-distillation 在约 50 步内就攀升到接近 100%,再也没回落;而纯 RL 与 base model 始终维持在零附近。
“编造 reference”的模板并不局限于训练 rollout——它在推理时也会扩散到其他数据集上。我们用第二个 LLM 裁判(gpt-5.4-nano)做了一次核对,采用一条刻意与任务无关的规则:只有当响应引用了学生自身 prompt 中并不存在的内容时才标记。我们在 hold-out 验证集和四个 OOD 评测上运行,对每个变体取其 best-IID checkpoint。

幻觉率(%)——LLM 裁判在 best-IID checkpoint 上的结果。 超过 30% 的数值以粗体显示。
在化学任务上训练的 naive self-distillation 在所有评测上的幻觉率都在 82%–98% 之间——IID 化学、物理、代码、竞赛数学,全部沦陷。RL 在每一个 cell 上都保持在 3% 以下——低了两到三个数量级。一句话:模型学到的是响应形态,而非内容本身——而这种形态无论测试 prompt 在分布内还是距训练数千 token 之外,都会被触发。
Why this happens
根本原因在于:学生被训练去模仿一个能看到特权信息的自己,而它的输出却是在看不到该信息的条件下生成的。学生没办法复现 teacher 知道的那些内容,只能复现 teacher 如何回应的形态——断言一个答案、把它归因于某个来源、不再自我怀疑。
对“特权 teacher”而言,这种形态是有依据的;对学生而言,它只是一个背后空无一物的模板。由于目标函数从未让这种模板以“信息确实存在”为前提,学生便把它当作默认行为带走,带到推理时——它会在自己猜测时断言答案,并引用从未出现过的 reference。
这一失败的第二个指纹是学生不再对冲(hedging)。我们统计了一组探索性 token(如 wait、actually、perhaps、maybe、alternatively),即 Kim et al. (2026) 提出的 “epistemic verbalization” 指标。
在化学任务上,naive self-distillation 让这类 token 从训练初期的每响应约 86 个,骤降到训练末期的不足 10 个——约 90% 的降幅。RL 则始终维持在起始水平附近。同一个 loss 既编造 reference,又抹掉了模型的不确定性:它不再反复斟酌、不再分支、不再核查,锁死在一个过度自信的“单答案模板”里。

化学任务上每响应 hedging token(如 wait)的数量。 左图:训练过程中的计数变化。右图:第 1 步与最后一步的 per-token 分布。Naive self-distillation 通过训练剥离了模型所表达的不确定性,使其在推理时考虑的解路径更少,从而导致推理能力退化。
这种压缩与测试分布无关。 以未训练的 base model 在同一 prompt 上的 hedging 数归一化(1.00 表示保留 base 行为,0 表示完全压缩),化学任务上训练的 naive self-distillation 在 IID 化学上仅发射 base 的 0.12,在物理、代码、竞赛数学这些从未训练过的域上为 0.18–0.39;RL 在同样的评测上保留了 0.61–0.93。
Naive self-distillation 蒸馏的是“特权上下文 teacher”的分布——而当学生在推理时不会拥有那些信息时,这是一种错误的待模仿分布。幻觉是这一错配在行为上的天然签名。
3.4 The generalization is narrow
在三个数据集上,naive self-distillation 与纯 RL 在 IID 上呈现三种不同的故事,而 OOD 上故事一致:

训练过程中 naive self-distillation 与 RL 在三个数据集上的 IID 与 OOD 准确率。IID 上三个数据集各说各话;OOD 上三者的结论一致——naive self-distillation 在每个数据集上都低于 RL。
IID 曲线因数据集而异,但 OOD 曲线一致:naive self-distillation 在化学 OOD 上比 RL 低 25 个点,在工具调用上低 6 个点,在 Polaris 上低 20 个点。
这直接来自 3.3 节的分析:学生被训练去模仿“特权上下文 teacher”的响应形态——这种形态的特征(注意哪些 token、给出哪些论证、识别哪些实体)恰好就是训练 prompt 分布的特征。它们不会迁移。
IID 对比是混杂的:naive self-distillation 在化学上赢、在工具调用上打平、在 Polaris 上输。所以 IID 上的胜出并不是该方法的一般性属性,而是依赖任务。化学上的胜出还有一部分被“放大”了——它的 64% 验证 prompt 复用了训练分子,这些对所有方法来说都是简单题。
3.5 No easy fix
诊断提示了两个自然的修补路径:改写传递反馈的 prompt / template,或者改写 loss 让学生不那么激进地匹配特权上下文 teacher。我们两类都试了。
Fix-1: Does prompting help?
我们保留特权反馈,但改写承载反馈的 prompt 和 template。gepa_popt 使用由 GEPA 优化的 prompt——目标为最大化奖励、最小化幻觉;human_popt 使用人工编写的 prompt。每条 prompt 上仍会注入反馈,变化的只是包裹它的壳。

优化过的 teacher prompt(GEPA 与人工) vs naive self-distillation vs RL,在 IID 与 OOD 上。在化学上两种 prompt 都有帮助——IID 与 naive self-distillation 持平,并回填了一部分 OOD 差距(naive 27% → GEPA 37% → 人工 45%),但都没达到 RL 的 52%。
在工具调用上反而失败——GEPA 的 prompt 是对训练分布的工具族优化出来的,内嵌了 val 集上多数未见的工具命名与格式假设,导致学生从 50% 开始、到 250 步时崩塌到 0%:晚期 checkpoint 上它从不闭合 <think> 标签,也不提交最终的工具调用。根本问题——与训练分布过窄的匹配——在 prompt 改动后依然存在。
在数学上,优化过的 prompt 连 base model 都没打过,naive self-distillation 也一样。两者都卡在 base 水平,而 RL 在持续爬升。GEPA 是在奖励与低幻觉目标下调过反馈传递 prompt 的——已经接近一个固定反馈传递 prompt 能做到的极限。如果连它都不能在数学上推动模型,优化 prompt 就不是解法。

三个数据集上、由 LLM 评判的训练后模型幻觉率。** Naive self-distillation 在几乎所有响应上都在幻觉(80–98%)。以最小化幻觉为目标优化的 GEPA prompt 不均匀地降低了它——工具调用上降至 17%,但 Polaris 上仅降至 51%。人工 prompt 降幅更小;RL 始终维持在零附近。
Fix-2: Does modifying the loss help?
我们尝试了三种 loss 修改,各以不同方式改变目标函数:
sd_adv_mask:仅在"GRPO advantage 与 teacher-minus-student log-prob gap 同号的 token 上施加 distillation loss;丢弃二者符号不一致的 token(零 advantage 的 token 保留)。sd_rl:加入一个 RL 项,并将目标大幅向 RL 项倾斜——distillation 项只作为小正则保留(我们的运行中,distillation 权重 0.01,RL 权重 1.0)。sd_teacher_rl:同样保留小的 distillation 项,但额外加入一个 off-policy RL 项——在 teacher 的特权上下文下用学生自己的 rollout 计算,从而用 RL 改进 teacher 目标,而不是直接训练学生。

三种把 distillation loss 与 RL 项混合的 loss 修改,vs naive self-distillation vs RL。每一个有效的修改都依赖其 RL 项;没有一个达到 RL 的 OOD 准确率。其中两项最重 RL 项的修改失稳并被中途停止。
三件事值得注意。 Loss 修改确实降低了幻觉:在化学任务上,带 RL 项的变体把训练期幻觉率从近 100% 压到近 0。adv_mask 在保留 IID 的同时回填了大部分 OOD 差距。但没有一个变体能完全达到纯 RL 的 OOD 表现。
在化学任务上,sd_rl 与 sd_teacher_rl 运行直接失稳,在 100 步左右被中止——IID 跌至 30% 以下、OOD 跌至 25% 以下,比 naive self-distillation 与 RL 都更差。那个本该温和地把策略拉回 verifier 方向的 RL 项,反而把训练弄崩了。
模式是一致的。 每一个有效的变体都是靠降低纯 distillation 项的影响才起效的:遮蔽与 RL 方向不一致的 distillation 梯度;在 dominant RL 项下对它降权;或者用 RL 改进它要蒸馏的目标。这些方法都在向 RL 靠拢,但没有一个能追到纯 RL 已经站在的位置。
Putting it together
Prompt 改动能降低幻觉——GEPA prompt 最有效——但凡 prompt 自身在何处过拟合,就会冒出新的失败;它也并未消除“狭窄的泛化”。
Loss 修改只能部分压制症状,其上限取决于“蒸馏项被削弱的程度”,且永远达不到 RL 的 OOD 准确率。没有简单的修补。 那些“有效”的修补本质上都在撤销 self-distillation 的贡献;
而保留 distillation 贡献的修补就保留了失败。即便 IID 数字偶尔超过 RL,这种优势也无法迁移到 OOD。
4. Takeaways
On-policy distillation 在 teacher 形似 reward-tilted student 时有效。一个有用的 teacher 在高奖励响应上比学生放更高的概率,同时与学生保持接近。同族的更大模型以及用 RL 训练的 expert 都满足这两点——这也是前沿配方蒸馏它们的原因。
Self-distillation teacher 不在那个最优解附近。 它是条件在特权信息上的学生,所以它偏爱那些看起来模型已经知道该信息的响应。在模型自己的输出上,它给“引用了编造 reference”的响应更高概率——无论答案对错——而 RL expert 则给它们更低的概率。
蒸馏这位 teacher 会带来三种失败。 模型会幻觉出它从未收到的 reference 或上一次尝试;它会停止对冲与再核查,导致推理退化;它还会变差地 OOD 泛化。
Self-distillation 并不是死胡同。 另一些使用特权信息的方法已经表现良好——例如 POPE(在 RL 期间注入部分 oracle solution)、以及 FST(把反馈留在一个优化过的上下文中、以给 RL 提供更好的奖励信号),而不是把反馈直接蒸馏进权重。
对反馈的提供方式与 loss 做一个仔细的改动,有可能修复 self-distillation 类方法的这些问题。 在开发这些方法时,我们建议追踪多于 IID 准确率的指标:幻觉率、hedging 量(epistemic verbalization)、以及 OOD 准确率。