弱教师不当"天花板",只当"路标":OPRD 用反向蒸馏让学生超过老师

搞模型迭代的团队大概率都纠结过这件事:上一代模型好不容易做完了 RL 后训练,新一代更大的模型出来了,这套后训练流程要不要再烧一遍钱?直接把老模型蒸馏进新模型吧,蒸馏的目标是"逼近老师",学生的上限被老师的能力锁死;从头跑 RL 吧,前一代积累的 post-training 收益全部浪费。

这篇论文给出的答案挺漂亮的:别把弱教师当成优化目标,把它当成一个方向指示牌。老师只要告诉你"RL 后训练让概率分布往哪个方向挪了",学生在自己的 verifier 梯度上,把顺着这个方向的分量放大一点就够了。学生的优化目标从头到尾只有 reward,老师连"目标"都算不上。


核心摘要

Weak-to-strong generalization 想问的是:强学生能不能从弱老师那里学习并反超老师?这在两代模型交接、多领域能力整合的场景里特别值钱——从头做 frontier 级的后训练实在太贵了。但传统蒸馏把弱教师当优化目标,等于把老师的能力天花板压在了学生头上。KAIST AI 联合 Microsoft、Mila 等机构提出 On-Policy Reverse Distillation(OPRD):在学生的 on-policy rollout 上,计算弱教师相对其 reference 策略的 policy shift,只保留这个 shift 的单位方向,然后把学生的 verifier 梯度在这个方向上的投影分量放大,正交分量原样不动。数学推理上 OPRD 比最强 baseline 高 7.92 个点,Reasoning Gym 上高 10.80 个点,达到弱教师水平所需的更新步数比纯 GRPO 少 33–67%。我的判断:这不是底层理论突破,但思路非常干净——"重缩放而非替换梯度"这个设计直接绕开了蒸馏的核心矛盾,工程上值得认真抄。

论文信息

  • 标题:Eliciting Weak-to-Strong Generalization with On-Policy Reverse Distillation
  • 作者:Youngrok Park, Sangmin Bae, Hojung Jung, Jongwoo Ko, Yunseon Choi, Young Jin Kim, Pashmina Cameron, Aaron Courville, Se-Young Yun
  • 机构:KAIST AI、Microsoft、University of Toronto、Mila、Université de Montréal、CIFAR AI Chair
  • 链接:https://arxiv.org/abs/2609.08798 (arXiv:2609.08798v1,2026 年 9 月 8 日提交)

🎯 为什么蒸馏在"弱教强"场景里会拧巴

先把问题讲清楚。On-policy distillation(OPD,代表作是 Agarwal et al. 2024 的 GKD 那篇)现在的标准玩法是:学生自己生成回答,老师在学生访问过的每个前缀上给出 next-token 分布,学生用 reverse KL 去匹配。这个设计解决了训练-推理分布不匹配的问题,已经是推理模型后训练的常见组件。

但注意 OPD 的优化目标长什么样:

\[\operatorname*{arg\,min}_{\pi(\cdot|s_t)} D_{\mathrm{KL}}\!\left(\pi(\cdot|s_t)\,\middle\|\,\bar{\pi}_T(\cdot|s_t)\right) = \bar{\pi}_T(\cdot|s_t)\]

目标的最优解就是教师策略本身。老师强的时候这没问题,老师弱的时候就有意思了——弱教师的最终策略里混了三样东西:RL 后训练学到的增量、从 reference 策略继承的偏好、以及它自己容量限制塑造的行为。OPD 一锅端全蒸过去。

你可能会说,那把 RL 加进来不就行了?KDRL 这类混合方法确实这么干的。但问题是 teacher matching 依然是一个独立的 loss,当教师偏好的解法 verifier 不给奖励时,两个目标就开始打架。还有人想"那我只蒸老师的 policy delta 行不行"——Direct-OPD、W2S-OPD 这两个同期工作就是这个思路。可惜 delta 里装的也只是弱教师在小容量下兑现的那部分改进,直接匹配它,天花板还在。

所以论文把核心问题提炼成一句话:怎么利用弱模型的后训练收益,又不让弱策略或它的 policy shift 成为独立的优化目标?

图1:OPRD 的两个核心应用场景

图1:OPRD 面向的两个关键场景。左边是"代代相传"——一个后训练过的 4B 级模型当教师,去指导 8B 级的下一代学生;右边是多领域整合——四个领域专精的 4B 小教师,把能力合并进一个 8B 学生。这两个场景的共同点是:重复做 frontier 规模的后训练太贵,而直接蒸馏又会把学生锁死在教师水平。


🧠 OPRD:只放大,不替换

OPRD 的想法用一句话说:从弱教师身上只取 方向、不取 目标。分三步看。

第一步,提取教师的 policy shift。 设冻结的 RL 教师为 \(\pi_T\),它的 pre-RL reference 策略为 \(\pi_T^{\rm ref}\)。在学生访问的前缀 \(s_t\) 上,把两者的 next-token logits 做差并去均值中心化:

\[\bm{\Delta}_t := \mathcal{C}\!\left(\mathbf{z}_T(s_t) - \mathbf{z}_T^{\rm ref}(s_t)\right) = \mathcal{C}\!\left(\log\pi_T(\cdot|s_t) - \log\pi_T^{\rm ref}(\cdot|s_t)\right)\]

这个 \(\bm{\Delta}_t\) 就是 RL 后训练给教师带来的相对 token 偏好变化——顺带一提,未中心化的 log 比值在 KL 正则化策略优化下有隐式奖励的解释。但关键来了:OPRD 只用它的单位方向 \(\mathbf{d}_t := \bm{\Delta}_t / \lVert\bm{\Delta}_t\rVert_2\),模长信息直接扔掉。为什么?因为这个 shift 是在弱教师的策略类里学出来的,幅度大小对强学生没有参考价值,只有方向可能含有 reward 相关的信息。

第二步,分解学生梯度并定向放大。 学生在 token \(t\) 的 verifier 梯度是 \(\mathbf{g}_t := A_t \nabla_{\mathbf{z}_t}\log\pi_\theta(y_t|s_t)\)。算它和教师方向的对齐系数 \(u_t := \mathbf{d}_t^\top \mathbf{g}_t\),然后:

\[\widetilde{\mathbf{g}}_t = \mathbf{g}_t + \lambda_t\,\mathrm{Proj}_{\mathbf{d}_t}(\mathbf{g}_t) = (1+\lambda_t)\,\mathrm{Proj}_{\mathbf{d}_t}(\mathbf{g}_t) + \mathbf{g}_t^{\perp}\]

沿教师方向的投影分量放大 \(1+\lambda_t\) 倍,正交分量纹丝不动。用 \(\widetilde{\mathbf{g}}_t\) 替换 \(\mathbf{g}_t\) 做反向传播。

图2:OPRD 方法总览

图2:OPRD 的梯度校正流程。左上是学生的 rollout 和 verifier 驱动的策略梯度;左下是在学生访问的前缀上计算教师相对 reference 的 policy shift,中心化后只保留单位方向 \(\mathbf{d}_t\);中间是把学生梯度分解为投影分量和正交分量,只放大前者;右边是优化轨迹的示意——学生的平稳点不动,只是沿教师方向的分量被持续放大。实践中还对学生策略下的 top-10 token 做了截断,把校正聚焦在高概率词表区域。

第三步,看为什么这样做不会出问题。 这个缩放写成线性映射是 \(\widetilde{\mathbf{g}}_t = (\mathbf{I} + \lambda_t \mathbf{d}_t\mathbf{d}_t^\top)\mathbf{g}_t\),当 \(\lambda_t \geq 0\) 时可逆,于是有两个性质:

  • 平稳点保持\(\widetilde{\mathbf{g}}_t = \mathbf{0}\) 当且仅当 \(\mathbf{g}_t = \mathbf{0}\)。学生的优化目标在 logit 空间里的驻点一个都没动,verifier 目标说了算。
  • 对齐增益\(\langle\mathbf{g}_t, \widetilde{\mathbf{g}}_t\rangle = \lVert\mathbf{g}_t\rVert_2^2 + \lambda_t u_t^2 \geq \lVert\mathbf{g}_t\rVert_2^2\)。一阶进展只多不少,对齐幅度越大,白赚的进展越多。

我觉得这个设计最妙的地方在符号的处理上。\(u_t \geq 0\) 时,学生梯度和教师方向一致,放大它等于加速向教师学到的方向收敛;\(u_t \lt 0\) 时,学生的梯度在"反对"教师——但这是 verifier 支持的反对,放大它等于鼓励学生走老师没想到的路。两头都赚。

不过作者很诚实地指出了一个坑:如果只对一种符号做缩放,会系统性地放大梯度里的 reward 无关偏差(比如长度偏好),偏差会随训练累积。所以 OPRD 用了非对称缩放:正向分支(跟教师一致)一开始就满强度 \(\lambda\),负向分支(背离教师)用 warm-up 线性爬坡:

\[\lambda_t := \begin{cases} \lambda, & u_t \geq 0 \\ \lambda\min\{k/K_{\mathrm{warm}}, 1\}, & u_t \lt 0 \end{cases}\]

理由也很实际:训练初期学生的 rollout 还很烂,负向对齐的信号不太可靠,先信老师,慢慢再信"反老师"的信号。


🧪 实验:快,而且能超过老师

实验设置:数学任务在 DAPO-Math-17K 上训练,评测 AIME'24、AIME'25、HMMT'25、OlympiadBench(Mean@16);逻辑推理用 Reasoning Gym 的四个任务——Knights & Knaves、Quantum Lock、String Manipulation、Countdown(Pass@1)。模型全部来自 Qwen3 家族,教师用 GRPO 后训练后冻结。

场景一:4B 教师教 8B 学生(代代相传)

方法 AIME'24 AIME'25 HMMT'25 Olympiad 数学平均 Reasoning Gym 平均
Teacher(4B) 42.50 38.75 21.25 52.15 38.66 44.65
Student 初始(8B) 25.63 19.58 12.50 46.22 25.98 5.04
+ GRPO 46.63 36.42 21.96 52.52 39.38 41.81
+ OPD 46.92 38.21 21.42 51.24 39.44 42.83
+ KDRL 53.46 43.13 26.08 53.28 43.99 44.38
+ OPRD 66.92 56.04 31.42 53.26 51.91 55.18

几个值得停一秒的数字。数学上 OPRD 比最强 baseline KDRL 高 7.92 个点,Reasoning Gym 上高 10.80 个点。AIME'24 单项从 53.46 直接跳到 66.92,这个幅度在 AIME 这种高方差 benchmark 上相当能打。

更有意思的是学习曲线的形状:OPD 前期冲得快,但在教师平均水平附近就封顶了;GRPO 慢慢爬;OPRD 前期跟 OPD 一样快,但不停,一路超过教师继续涨。达到弱教师水平所需的更新步数比 GRPO 少 33–67%,早期 checkpoint 最多高出 22.7 个百分点。OPD 和 OPRD 前期轨迹几乎重合、后期分道扬镳——这个现象本身就说明:学生还弱的时候教师指导确实有用,但当学生发现了 verifier 支持的、超出教师的改进时,"匹配教师"就变成了枷锁。

场景二:四个专精小教师合并进一个学生

图3:多教师蒸馏场景示意

图3:多领域整合场景。四个分别精通计算、拼图逻辑、代码、视觉的 4B 专精教师,通过多教师蒸馏把能力汇入一个学生。每个 batch 随机混合四个任务的数据,每条样本激活对应领域的教师。

方法 Knights Quantum String Countdown 平均
4 位教师(各自任务) 57.50 46.58 32.00 42.50 44.65
Student 初始 11.00 3.14 3.00 3.00 5.04
+ Mix-RL 64.90 43.91 35.90 46.00 47.68
+ MOPD 57.10 37.70 35.50 42.10 43.10
+ KDRL 65.90 44.09 35.00 44.90 47.47
+ OPRD 80.70 59.68 39.70 55.00 58.77

OPRD 平均 58.77,比 Mix-RL 高 11.09 个点,比四位专精教师的平均还高 14.12 个点——而且四个任务上逐一超过对应的专精教师。不是拆东墙补西墙的跨任务权衡,是全面超。达到教师水平比 Mix-RL 少用 55% 的更新步数。

这里有个值得品的设计讨论:作者认为 OPRD 可能缓解了跨任务干扰,因为它只放大每个任务的 verifier 梯度沿各自教师方向的分量,而不是去匹配完整的专精策略。形式上像 PCGrad 的梯度手术,但投影发生在"学生梯度 vs 教师方向"之间,而不是冲突的任务梯度之间。

场景三:强教弱也成立(8B→1.7B)

方法 AIME'24(8B→1.7B) Knights & Knaves(8B-Base→0.6B) 平均
Teacher 52.29 64.50 58.40
+ GRPO 18.92 20.60 19.76
+ OPD 29.79 20.20 25.00
+ KDRL 25.33 33.70 29.52
+ OPRD 33.58 49.40 41.49

强到弱方向上 OPRD 依然赢,K&K 上比 OPD 高出 29.20 个点。这点其实挺重要的——说明方法不依赖特定的容量排序,说到底它是"verifier 梯度 + 教师方向"的一种通用组合方式。最近有研究指出 OPD 在容量或分布差距大时会失效(更强的老师不一定教出更好的学生),这里 OPD 和 KDRL 的快速饱和也复现了这个现象。

跟同期弱到强方法正面刚

方法 AIME'24 Knights String 平均
+ GRPO 46.63 54.20 35.50 45.44
+ OPD 46.92 55.00 35.10 45.67
+ W2SR-P 45.42 62.50 38.00 48.64
+ S2L-PO 60.54 63.40 38.70 54.21
+ OPSD 15.88 24.60 24.60 21.69
+ Direct-OPD 35.04 49.20 29.20 37.81
+ W2S-OPD 52.96 59.50 35.20 49.22
+ OPRD 66.92 73.30 42.20 60.81

最强的对手是 S2L-PO(用弱策略的 off-policy rollout 混入 GRPO 分组),OPRD 高它 6.60 个点。Direct-OPD 和 W2S-OPD 这两个"直接把 policy delta 当优化目标"的同期工作,分别被甩开 23.00 和 11.59 个点。这个对比直接验证了论文的核心论点:delta 里只有教师兑现的那部分改进,光靠它不够;OPRD 保留的正交分量 \(\mathbf{g}_t^\perp\) 让学生能追 verifier 支持但 delta 没覆盖的方向。


🔬 分析部分的几个亮点

教师越好,加速越猛,但教师水平不构成天花板。 用 GRPO 第 15/60/105/150 步的 4B checkpoint 分别当教师,越靠后的教师指导学生越快。最夸张的一个案例:K&K 上第 60 步的教师自己只有 29.0% Pass@1,它指导出的 OPRD 学生却迅速冲到约 88%——老师和 GRPO 都被远远甩开。说实话看到这个数我愣了一下,这大概是"弱到强泛化"最直观的证据之一。

λ 不需要精调。 只要 \(\lambda \gt 0\) 就比 GRPO 强,0.5 以内越大前期越快,超过 0.5 后性能基本不变——所以默认就用 0.5。对工程落地来说这是个好消息,少一个要调的敏感超参。

教师引导是"启动器",会自然退场。 追踪 \(\mathbf{d}_t\)\(\mathbf{g}_t\) 的夹角发现:训练初期两者强耦合(正向对齐、负向对抗都很明显),随着训练推进,夹角都趋向 90 度——学生梯度越来越多地走向教师 shift 没覆盖的方向。教师的价值自动衰减,不需要人工 schedule 来"退火"蒸馏项。

两个诚实的局限性。 一是梯度消失:当学生的 rollout 组内 reward 全相同时 \(\mathbf{g}_t = \mathbf{0}\),OPRD 没有东西可放大——在 8B-Base 教师教 1.7B-Base 学生的极端案例里,OPRD 只跑到 20% 以下,而不依赖 verifier 的 OPD 反而到了 40.5%。作者建议先做一小段 SFT 或蒸馏 warm-up 再切 OPRD。二是长度偏差:如果 reference 选 step-0,教师和 reference 的回答长度差很大,policy shift 里混入强烈的"变短"成分,OPRD 会卡在 52.5%;把 reference 挪到 step-30(教师的长度坍缩已经发生后),立刻跳到 89.5%。reference 策略的选择是个真实的工程坑。

学生到底学到了什么:两个行为分析

图4:token 级对齐可视化

图4:一个 AIME'25 回答的 token 级对齐分析。绿底是 \(\mathbf{d}_t\) 与学生梯度正对齐的 token,红底是负对齐。左侧是学生的一段组合计数推理;右上是学生 top-1 预测"0"(直接补出 2016)的概率分布;右下是若强制选教师方向 top-1 的"5",同一个学生会走"252+504=756,756+1260=2016"的弯路也能到正确答案。黑框标出的"0"是全场与教师方向负对齐最强的 token——OPRD 的负向分支会抬高它的 logit,让学生选自己那条更短的路。

这张图是全文我最喜欢的一张。教师指的路没错(走弯路也能算对),但学生已经能一步算完,OPRD 的机制允许学生"感谢建议,但我自己来"。这就是"加速而非改向"在 token 层面的具体样子。

图5:回答风格指纹对比

图5:AIME'24 上的回答风格分析,用 101 个标准化特征分五类(连接词、情态、语法、标点、篇章结构)。红色表示风格更接近弱教师(-1),绿色表示更接近纯 GRPO 训练的学生(+1)。OPD 在五个类别上全面偏向教师,而 OPRD 全面偏向 GRPO 学生。

风格指纹的结论很干净:OPD 学生说话越来越像老师,OPRD 学生说话还是像"只做 RL 的自己"。教师的知识通过学生的策略表达出来了,而不是学生被教师同化了。

图6:风格指纹随训练步数的演化

图6:附录中的扩展版本,对比 OPD 和 OPRD 在第 30/60/90/120/150 步的风格轨迹。OPD 各 checkpoint 稳定地偏向教师一侧(红色),OPRD 从第 30 步起就稳定落在学生一侧(绿色),说明风格上的"独立性"不是训练末期的偶然现象。


💡 我的判断

亮点。 这篇最值钱的地方是把"弱到强蒸馏"的矛盾看得很透:之前所有方法要么匹配教师策略、要么匹配教师 delta,都逃不过"目标由弱模型定义"的宿命;OPRD 把教师信号降格成梯度上的一个重缩放算子,目标从头到尾只有 reward。形式上它属于 gradient manipulation 家族(和 PCGrad 是亲戚),但反着用——别人是投影掉冲突分量,它是放大对齐分量,什么都不删,所以驻点不动。这个"只放大、不替换"的不变量是整个方法的地基,也是它和一堆同期工作的分水岭。

问题也有。 一是全部实验都在 0.6B–8B 的 Qwen3 家族内、全是可验证奖励的数学和逻辑任务——verifier 质量好是这个方法的隐含前提,换成开放式生成或者 reward model 场景,policy shift 的方向还干不干净要打个问号。二是梯度消失那个坑在真实场景里不罕见,初期 rollout 质量差时 OPRD 是没有自举能力的。三是成本:要额外跑教师+reference 两个冻结模型的前向,wall-clock 多 11.9%、峰值显存多 10.2%(相对 GRPO),小规模可以接受,frontier 规模的调度和分片开销作者自己也承认是 future work。

工程启发。 如果你在做模型代际迁移或多专家合并,这个配方值得一试:RL 后的教师和它的 pre-RL reference 都是现成的,改动只是 logit 梯度上的一个 rank-1 重缩放,λ 还不用精调。多教师场景的收益看起来更实际——4 个 4B 专精合并出的 8B 学生全面反超专精,这条路线对"小模型快速迭代 reward 和环境、大模型坐收成果"的研发模式是个不错的支撑。

往远了看,作者在结尾提的 recursive self-improvement 方向值得留意:每一代模型不只留下 checkpoint,还留下一个可迁移的 policy shift 给下一代当"启动方向"。如果这条路走通,后训练的复用粒度会比现在细得多。


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