蒸馏了个寂寞?这篇论文说 On-Policy Distillation 的提升根本不来自教师

上周读到一篇让我愣了一下的论文。On-Policy Distillation(OPD)这两年在 post-training 圈子里火得不行——Thinking Machines 的博客把它写成 RL 与蒸馏的"两全其美",Qwen3、MiMo、GLM 的技术报告里都能看到它的身影。核心叙事很动人:学生自己采样轨迹,教师逐 token 打分,密集的监督信号比 RLVR 那种"只告诉你最终对不对"的稀疏奖励高效得多。

但这篇论文上来就问了一个很煞风景的问题:教师给学生的轨迹打分,可这些轨迹教师自己根本不会生成——它对它们是 off-policy 的。那它打的分,靠谱吗?

作者的答案:不靠谱,而且离谱。教师越大,打分越噪声,235B 的教师对着正确答案也疯狂给负分。更诡异的是,把这些噪声信号全删掉、甚至只保留噪声信号训练,学生照样涨点。

那 OPD 的提升到底从哪来的?

核心摘要:这篇论文定量拆解了 OPD 的训练动态,发现教师监督的噪声率随教师规模从 30.6% 一路涨到 50.6%,而学生对噪声完全不敏感。进一步的 logit 级梯度分析揭示:OPD 的有效学习几乎全部集中在学生 logp 最低的 20% token 上,且一个固定的负优势就能复现教师优势的效果——OPD 之所以 work,主要靠压制低概率 token,跟"蒸馏知识"没什么关系。基于这个洞察,作者提出完全不需要教师、不需要奖励、不需要参考答案的 OPSA(On-Policy Self-Adaptation),在 Qwen3-1.7B 上把 AIME24 Avg@32 从 13.44 拉到 48.85,比 OPD 还高了 16.77 分。我觉得这篇论文最值钱的不是 OPSA 这个方法本身,而是它把一个被包装得很美的范式拆开来给你看:里面并没有你以为的那个东西。

论文信息

  • 标题:Does On-Policy Distillation Really Distill? From Noisy Teacher to Self-Improvement
  • 作者:Yi Ding, Ruqi Zhang(Department of Computer Science, Purdue University)
  • 链接:https://arxiv.org/abs/2608.31046
  • 提交时间:2026 年 8 月 31 日

🎯 OPD 的承诺与裂缝

先把 OPD 的训练方式说清楚。学生策略 \(\pi_s\) 自己采样响应 \(y\),教师 \(\pi_t\) 在同一个前缀下给出每个 token 的 logp,两者的 log 比率直接当作 token 级优势:

\[\mathcal{L}_{\text{OPD}}=-\mathbb{E}\left[\frac{1}{|y|}\sum_{i=1}^{|y|}A_{i}\log\pi_{s}(y_{i}|x;y_{<i})\right],\qquad A_{i}=\log\frac{\pi_{t}(y_{i}\mid x;y_{<i})}{\pi_{s}(y_{i}\mid x;y_{<i})}\]

直觉上很顺:教师说"这个 token 比我预期的差",学生就往下调;教师说"这个不错",学生就往上调。相比 GRPO 那种一整条轨迹只有一个标量奖励,这个信号密度高得多。

但裂缝就在设定里:优势是在学生采样的前缀上算的。学生和教师的分布差异越大,教师就越像是在给一个"陌生人的行为"打分。这其实是个经典的 imitation learning 问题,只是大家默认"教师足够强,打偏一点没关系"。

作者决定较真。用 Qwen3-1.7B 当学生(关掉 thinking mode),分别用 Qwen3-4B / 30B-A3B / 235B-A22B-Instruct 当教师,从 DAPO-17k 里取 500 道题,每题采样一条正确、一条错误的响应。噪声的定义很务实:只看 \boxed{} 里最终答案的 token——错误答案拿到正优势,或正确答案拿到负优势,就算噪声。中间推理步骤的好坏没法逐 token 验证,干脆不看。

结果相当难看:

教师规模 正确轨迹却被给负优势 错误轨迹却被给正优势 总体噪声率
Qwen3-4B 20.4% 40.8% 30.6%
Qwen3-30B-A3B 26.0% 43.4% 34.7%
Qwen3-235B-A22B 97.8% 3.4% 50.6%

图2:教师监督的噪声率与学生的抗噪性

图2:(a) 三个规模教师的优势方向与可验证奖励不一致的比例,红色是"答案正确却给负优势",蓝色是"答案错误却给正优势";(b) 标准 OPD、只留噪声轨迹、只留干净轨迹三种训练下,学生在 AIME24 上的 Avg@4 曲线几乎重合

235B 教师那组数据我第一次看以为自己读反了——97.8% 的正确答案 token 被给了负优势。这等于说,这个最大的教师不是在"指导"学生,它几乎是在无差别地否定学生的一切输出。作者的解释是分布失配:教师越强,学生的轨迹对它来说越陌生,陌生就倾向于给低概率,低概率就变成负优势。

到这里还算意料之中。真正反常的是图 2(b):把含噪声的轨迹全部删掉,只留干净监督,学生涨点的速度跟标准 OPD 基本一样;反过来,只在含噪声的轨迹上训练,居然也照样涨。

这就很尴尬了。如果监督里一半信号是错的,而学生对此毫不在意,那学生学到的到底是什么?

🔬 拆开看:有效梯度只住在低 logp token 里

作者的下一步是算 logit 级梯度,看 OPD 的更新到底作用在哪些 token 上。对采样到的 token,梯度正比于 \(A_t(1-\pi_s(y_t|x,y_{\lt t}))\);对没采样的 token,正比于 \(-A_t\pi_s(v|x,y_{\lt t})\)

这个式子直接给出两种梯度消失的情形:优势本身接近零,或者被采样 token 的概率已经接近 1。然后作者用 Qwen3-1.7B 学生加 4B 教师实测了一把:

图3:OPD 的优势分布与高 logp token 的对照实验

图3:(a) token 优势的分布直方图,29.2% 的 token 优势恰好为零,51.7% 的 token 优势绝对值低于 \(10^{-4}\);(b) 保留学生最高 logp 的 token 时,其中近零优势 token 的占比——top 20% logp 的 token 里 97.5% 优势接近零;(c) 只在高 logp token 上训练(无论用真实优势还是 \([-1,1]\) 均匀随机优势),AIME24 成绩纹丝不动

三个数字串起来讲了一个完整的故事。近一半的 token 优势约等于零,而这些近零优势恰好密集分布在学生最有把握的高 logp token 上——学生很自信的 token,教师通常也认可,两者 logp 几乎相等,优势自然近零。更狠的是图 3(c) 的对照实验:只在这些高 logp token 上训练,哪怕把教师算出来的优势换成纯随机数,性能也毫无变化。

高 logp token 对训练毫无贡献,给什么优势都无所谓。那 OPD 的提升只能来自剩下的部分——学生 logp 最低的那批 token。

🧪 关键实验:一个固定负数打平教师

顺着上面的结论,作者做了个我认为是全文最漂亮的实验。把训练限制在学生 logp 最低的 20% token 上,然后比较三种优势方案:标准 OPD 的教师优势、固定优势 −0.5、固定优势 +0.2。

图4:固定优势与教师优势的对比

图4:(a) AIME24 Avg@4 训练曲线——固定负优势稳步上升,与 OPD 相当;固定正优势迅速崩溃归零;(b) 响应长度,固定负优势下逐渐涨到约 12K token 后稳定,正优势下 40 步内缩到接近零;(c) 梯度范数,正优势在早期爆炸

两个结论都很有分量。第一,OPD 只用底部 20% logp 的 token 训练,效果跟全量 token 一样——再次坐实了高 logp token 是死重。第二,一个写死的 −0.5 就能替代教师的全部工作。

而 +0.2 那边的崩溃也很有信息量:40 步之内响应长度归零、梯度爆炸、输出退化成乱码。低 logp token 本来就是策略的薄弱环节,给它们正优势等于疯狂强化自己最不确定的行为,熵瞬间失控。

说实话看到这里我有点恍惚。OPD 花了那么多笔墨讲"dense token-level supervision",结果它的有效成分约等于"对着自己最没谱的 token 踩一脚刹车"。这跟 Zhu et al. 提出的 Negative Sample Reinforcement(NSR)其实遥相呼应——只靠负信号也能推动策略变好。蒸馏的叙事在这里基本瓦解了:reverse KL 在学生轨迹上算,天然产生大量负优势,而真正起作用的就是这些负号。

🏗️ OPSA:既然不需要教师,那就别要了

分析做到这一步,方法的形状已经自己浮出来了。这就是 OPSA(On-Policy Self-Adaptation):

\[\mathcal{L}_{\text{OPSA}}=-\mathbb{E}\left[\frac{1}{|\mathcal{S}_{\text{lowest}\,20}|}\sum_{i\in\mathcal{S}_{\text{lowest}\,20}}A_{i}^{\text{dyn}}\log\pi_{\theta}(y_{i}|x;y_{<i})\right],\qquad A_{i}^{\text{dyn}}=-\frac{1}{2}-\frac{H_{i}-H_{\text{min}}}{2(H_{\text{max}}-H_{\text{min}})}\]

图1:OPSA 与 RLVR、OPD、OPSD 的对比总览及主要结果

图1:左侧对比四种范式的监督来源——RLVR 靠可验证答案,OPD 靠教师 logp,OPSD 额外塞 hint,OPSA 只用自身熵导出的负优势(无教师、无 hint、无可验证奖励);右侧上方是 OPSA 与 OPD 的 AIME24 训练曲线对比,下方是三个基准上 Avg@32 与 Pass@32 的提升幅度

每条响应里,取 logp 最低的 20% 位置,全部给负优势;优势的幅度不再写死,而是跟着该位置的 token 熵走——\(H_{\min}\)\(H_{\max}\) 是这条响应内被选位置的最小、最大熵,熵越高的位置负优势幅度越大,范围在 −1 到 −0.5 之间。

没有教师前向、没有验证器、没有参考答案。训练数据只需要问题本身。

为什么要让负优势跟着熵走?因为"低 logp"有两种完全不同的成因:一种是策略在一个高熵的分叉口,概率质量摊在好几个合理候选上,采到的那个只是其中之一;另一种是分布已经很尖锐,只是恰好采到了尾部。前者是值得探索的分叉,后者是真的误采。作者用 \(\delta\) 控制这个相关性做了消融:\(\delta=1\)(熵越高负优势越大)稳步涨到 Avg@4 的 50.0%,把标准 OPD 的 35.13% 甩开一大截;\(\delta=-1\)(反过来)则在 350 到 450 步之间训练不稳、梯度范数全程偏高,最终还不如固定负优势。

图5:熵自适应负优势的消融

图5:(a) Avg@4 曲线,\(\delta=1\) 最终达 50.0%,\(\delta=0\)(固定负优势)约 35,\(\delta=-1\) 震荡且落后;(b) 响应长度;(c) 梯度范数,\(\delta=-1\) 全程偏高

熵加权这个设计的妙处,看图 6 的四种情形最直观:

图6:OPSA 更新的四种情形

图6:更新前后各 token 概率的变化。(a) 高熵位置采到尾部 token "#",头部总质量从 0.86 升到 0.92,尾部从 0.14 压到 0.08;(b) 高熵位置采到头部 token "So",它的概率从 0.39 降到 0.25,但质量被均分给 "Wait"、"But" 等竞争头部 token,头部总质量不变——不会坍缩到单一预测;(c) 低熵位置采到尾部 token "3",质量向 top-1 的 "1" 集中;(d) 低熵位置的头部 token 不在最低 20% 里,直接跳过不更新

这套机制说到底是在做两件事:在高熵分叉口压制尾部、把质量均匀摊回几个头部候选上,让"wait"、"but" 这类反思分支更容易被采到;同时坚决不碰低熵位置的高置信预测。它重塑的是分布的形状,而不是把分布往尖锐里逼。

📊 实验:数字确实能打

主实验在三个模型规模上验证,训练集只用 DAPO-17k 的问题(不碰标签),评估覆盖域内数学(AIME24/25、HMMT25)和域外(MBPP+ 代码、GPQA-Diamond 问答):

模型 AIME24 avg@32 AIME24 pass@32 AIME25 avg@32 HMMT25 avg@32 MBPP+ avg@32 GPQA-D avg@32
Qwen3-1.7B 13.44 40.00 9.69 5.73 58.24 27.92
w/ OPSA 48.85 80.00 35.31 23.33 59.44 32.40
Δ +35.41 +40.00 +25.62 +17.60 +1.20 +4.48
Qwen3-4B 23.33 56.67 20.52 13.13 66.93 38.46
w/ OPSA 62.08 83.33 58.44 37.40 68.35 41.29
Δ +38.75 +26.66 +37.92 +24.27 +1.42 +2.83
Qwen3.5-9B 76.35 93.33 56.04 44.48 77.33 70.53
w/ OPSA 87.81 96.67 76.98 67.40 79.27 73.70
Δ +11.46 +3.34 +20.94 +22.92 +1.94 +3.17

表2:OPSA 跨模型规模的表现(non-thinking mode)。AIME24 上 1.7B 模型相对提升 263.5%,三个基准的 Pass@32 全部翻倍以上

再跟一票 on-policy 方法正面比(Qwen3-1.7B):

方法 AIME24 avg@32 AIME25 avg@32 HMMT25 avg@32 平均 avg@32 平均 pass@32
Base 13.44 9.69 5.73 9.62 31.11
+ GRPO 33.96 25.31 15.10 24.79 54.44
+ TTRL 19.90 9.79 5.73 11.81 27.78
+ OPD 32.08 20.52 13.85 22.15 54.44
+ OPSD 33.33 22.50 14.90 23.58 56.67
+ OPSA 48.85 35.31 23.33 35.83 65.56

表3:OPSA 比最强 baseline 平均高 11.04 分(Avg@32)和 8.89 分(Pass@32)。注意 TTRL 直接在 AIME24 上做了 test-time training,成绩却几乎原地踏步

一个不需要任何外部信号的方法,把用教师的 OPD 超了 16.77 分,把用可验证奖励的 GRPO 超了 14.89 分。这个结果放在这里,确实让人没法反驳。

还有两组我挺在意的分析。图 7 显示 OPSA 训练后响应长度从约 1.5K 稳定涨到 10K 以上,"wait"、"but"、"perhaps"、"alternatively" 这些反思词的出现次数显著上升,且长度与准确率的相关性高达 r=0.88(1.7B)——OPSA 诱导出的长推理不是注水,是真的在反思分叉。

图7:OPSA 引发反思式长推理

图7:(a) 训练中 rollout 长度稳步增长;(b) OPSA 后反思词计数大幅上升;(c) 响应长度与 AIME Avg@4 的相关性,1.7B 模型 r=0.88

多样性方面,作者用 4-gram 集合的 Jaccard 距离测了响应间差异:随着生成长度增加,OPSA 与 base 模型的距离差逐渐收窄到零——长度涨了三倍多,多样性却没坍缩。这跟 Pass@32 全线上涨互相印证,也解释了为什么它跟 TTRL 那种 self-consistency 锐化分布的路子不一样。

开销上 OPSA 也是赢家:Qwen3-1.7B 每步训练 46.3 秒,OPD 要 61.2 秒(多个教师前向),GRPO 要 186.2 秒(要组内采样一堆响应算相对优势)。省掉教师模型还能腾出 GPU 给 rollout。

🔧 消融里值得记住的三件事

训练 token 比例的消融(图 10)有点意思:只用底部 10% 的 token 反而明显更差,因为这些几乎全是 top-1 之外的纯尾部 token,只对它们施加负优势会过度锐化分布、熵骤降;20%、30%、40% 则都能把 Avg@4 推到 45 以上。比例不敏感,但不能太贪心。

图10:训练 token 比例消融

图10:底部 10% 在 20% 左右就停滞,20% 到 40% 均能稳定涨到 45 以上

另一个是 fork token 掩蔽实验:把学生 top-5 候选里含反思词的高熵分叉位置从训练目标里踢掉,OPSA 带来的长度增长和准确率提升基本消失,响应长度在约 300 步时直接崩溃。这等于反向证明了 OPSA 的收益主要来自"在反思分叉口重塑分布"这件事。

第三个是"wait 控制实验",做得很细:给 GRPO/OPD 的响应截掉结尾、塞一个 "wait" 再继续解码,把推理 token 数强行拉到跟 OPSA 相当(约 2.3 万)。结果 baseline 的 Avg@32 纹丝不动,OPSA 的 48.85 依然吊在原位——提升不是靠"写得更长"。

🤔 我的判断

这篇论文的定位,我觉得是"范式拆解 + 一个顺手的强方法",而且前者的价值大于后者。

亮点很清楚。噪声分析做得扎实,固定负优势那个对照实验设计得干净利落——这种"把教师换成一个常数"的实验,想法简单到有点粗暴,但恰恰是最有力的证伪方式。OPSA 本身的收益真实、开销更低、还顺手证明了不牺牲多样性,工程上几乎没有不试的理由。

但也有几个地方需要泼点冷水。

第一,"OPD 没有蒸馏"这个结论的适用范围要打个问号。论文测的是 sampled-token 的 K1 估计器(log 比率当优势),这是 OPD 最流行但也最脆弱的实现。同期 Fu et al. 的 Revisiting On-Policy Distillation 也指出 teacher 在 student 前缀上不可靠,但人家给出的修复方案(teacher top-K local support matching)在标准 OPD 上还能再涨 19.8%——说明全词表的教师信息并没有被充分利用,直接宣告"蒸馏无效"可能下得早了点。

第二,OPSA 的天花板写在机制里。它只是重新分配学生已有的概率质量,不引入任何新信息。对输出分布已经被后训练压得极尖、熵极低的模型,可重分配的东西就不多了——作者在 limitation 里自己也承认这一点,thinking mode 下 Pass@k 的改善确实平淡(Table 3 下半部分,52.50 vs 46.56 的 Avg@32 提升也远不如 non-thinking 夸张)。

第三,实验最大只到 9B dense,噪声分析里那个 97.8% 的惊人数字只在 235B 教师对 1.7B 学生这种极端组合下出现。OPSA 能不能扩展到更大模型或 MoE,现在没人知道。

不过话说回来,这些保留意见不改变一个事实:下次再有人跟你说"我们用大模型蒸馏提升了小模型的推理能力",你可以反问一句——你确定那不是负优势在干活吗?

如果你在做 RL post-training,OPSA 值得直接加进实验列表:实现成本低到不好意思(一个优势函数加一层 token 筛选),还省掉教师部署。更大的启发是方法论层面的——当一个方法 work 得"理所当然"时,往往最值得把它拆开看看。这篇论文拆出来的东西,比它造出来的东西更有意思。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我