OPD 为什么这么快?腾讯混元从参数动力学给了一个让人服气的答案
一句话先说在前面
如果你做过后训练,应该都有这种体感:On-Policy 蒸馏(OPD)跑出来的模型,用更少的步数就能逼平甚至超过 RL 的推理表现。Qwen3、DeepSeek-V4 的报告里都隐约提过这件事。但 OPD 到底快在哪?大部分文章给的解释停留在 "teacher 提供了更密集的监督信号" 这种宏观层面,听完你点点头,但其实啥也没解释。
这篇 NeurIPS 2026 投稿 Learning to Foresee 干了一件挺硬核的事:把 OPD 和 RL 训练后的参数矩阵 ΔW 掏出来,做谱分析、子空间对齐分析、模块级消融,给出了两条非常具体的、可量化的性质。然后基于这两条性质,提出了一个叫 EffOPD 的方法——只多用 50 条样本做一次轻量验证,平均 3 倍训练加速,最终性能不降反升。
我看完最大的感受是:终于有人不把"高效"当成一句口号来用了。
论文信息
- 标题:Learning to Foresee: Unveiling the Unlocking Efficiency of On-Policy Distillation
- arXiv:2605.11739(v3, 2026-05-21)
- 作者:Yuchen Cai, Ding Cao, Liang Lin, Chunxi Luo, Xin Xu, Kai Yang, Weijie Liu, Saiyong Yang, Tianxiang Zhao, Guangzhong Sun, Guiquan Liu, Junfeng Fang(共 12 位)
- 机构:Tencent Hunyuan(论文源码中含 Tencent_HY logo)
- 代码:匿名仓库 EffOPD-7C58(已附在论文中)
从一张图开始:什么叫"预见性"
作者把整篇论文的核心讲完用一张图就够了。

图 1:左半部分是核心发现——OPD 在训练早期就识别出"哪座山"(模块分配)和"哪条路"(更新方向);右半部分是 EffOPD 的加速思路——沿着这条早期就确定的方向直接外推几步。
爬山的比喻其实很直白。RL 一上来不知道目标在哪,得四处探索、绕路、走错了再回头,绕了大半圈才慢慢锁定到正确的山头。OPD 因为有 teacher 的引导,一上来就知道要去哪座山、第一步该往哪个方向迈——并且这个早期方向,跟训练结束时的最终方向高度一致。
作者把这种现象总结为两条可验证的性质:
| 性质 | 在哪个层面 | 通俗解释 |
|---|---|---|
| Property 1:功能冗余规避 | 模块分配 | OPD 知道哪些模块(哪些层、哪些 Attn/MLP 子模块)值得改,其它的就不动 |
| Property 2:早期低秩锁定 | 更新方向 | OPD 的 ΔW 能量高度集中在少数主方向上,并且这些主方向训练初期就基本定型 |
下面分别拆开看这两条到底是怎么验证的。
Property 1:模块层面的"功能冗余规避"
把更新归一化以后,OPD 还是更能打
作者做了一个非常巧妙的对照实验:把 RL 和 OPD 跑完后的 ΔW 分别"等比缩放"到相同的范数,然后看缩放后的模型推理准确率怎么样。

图 2:8 个子图,4 个模型规模 × 多种 RL 基线。蓝线(OPD)一致地、显著地高于橙线(RL)。在 Qwen3-8B-Base on MATH500 这个子图里,OPD 在 0.005 范数处就已经把 RL 在 0.025 范数处的水平给追平了——参数更新量上差了 5 倍。
我看到 (a) 这组图的时候是真的有点惊讶。同样的 ΔW 范数预算,OPD 推理增益普遍高出 RL 一截。这说明 RL 的 ΔW 里包含了相当一部分"占了范数但不贡献性能"的成分——也就是冗余更新。
那这些冗余跑哪去了?
用滑窗干预找出"冗余区"
作者的做法挺工程化的:用一个长度为 4 层的滑动窗口,只让 OPD 的 ΔW 在这 4 层上生效,其它层强制用 base 模型权重,看推理准确率怎么变。如果某 4 层是真正关键的,把它们摁住会让准确率断崖式下跌;如果只是冗余,摁住几乎没影响。

图 3:(b) 是关键。蓝色虚线(MLP 准确率)告诉你哪些层重要、哪些不重要——准确率的山谷恰好对应着 ΔW 范数的山谷。OPD 在不重要的层上"省了笔墨"。
(a) 子图先把 Word Embedding 层这个嫌疑犯洗干净了——OPD 训完之后,把 Embedding 层换回 base 的,准确率几乎不变。说明 Embedding 层的更新是冗余的。然后 (b) 子图给出了更细的画像:层级 ΔW 范数(柱状)和滑窗准确率(折线)在 OPD 这边是高度对齐的——OPD 把更新精力压在了真正影响推理的层上,对其它层就轻描淡写。RL 则是"哪都改一点",结果就是付出了更大的范数代价,换来同样甚至更差的推理增益。
这就是 Property 1 的实证基础——OPD 有模块级的"挑食"能力。
Property 2:早期低秩锁定
第一刀:ΔW 的谱长什么样
光知道 OPD 在模块层面挑食还不够,作者继续往细了挖:OPD 的 ΔW 在矩阵层面长什么样?
把 ΔW 做 SVD,看奇异值的分布。结果如下表:
| 指标 | 1.5B (RL/OPD) | 4B (RL/OPD) | 8B (RL/OPD) | 14B (RL/OPD) |
|---|---|---|---|---|
| Spectral Norm(越大越好) | 0.094 / 0.113 | 0.007 / 0.009 | 0.004 / 0.005 | 0.056 / 0.063 |
| 谱/Frobenius 范数比(越大越好) | 33.2% / 39.6% | 19.7% / 25.7% | 32.7% / 36.8% | 24.4% / 28.1% |
| Effective Rank(越小越集中) | 964 / 778 | 1908 / 1587 | 2754 / 2341 | 3174 / 2937 |
| Top-1% 子空间范数占比(越大越好) | 78.1% / 92.3% | 79.2% / 93.4% | 88.5% / 94.7% | 81.2% / 94.5% |
表 1:跨 4 个模型规模的参数更新几何结构对比。OPD 在所有规模、所有指标上都更"集中"。
最值钱的是最后一行——OPD 的 ΔW 里,Top 1% 的主方向就承载了 92~95% 的更新能量。RL 大约只能到 78~88%。这就是所谓的"低秩集中性"。
如果只到这里,其实还只是验证了"低秩",跟之前研究 RL 低秩动力学的工作(比如 Cai 等人 2025 年的 AlphaRL)路数差不多。真正让我觉得有意思的是下一刀——早期锁定 这件事。
第二刀:这些主方向是什么时候定下来的
作者把训练过程中每个 checkpoint 的 Top-k 子空间提取出来,跟最终 checkpoint 的子空间做余弦相似度对齐。

图 5:核心证据。(b) 子图的蓝色实线(OPD rank=1)在训练 20% 处就接近 1.0,红色虚线(RL rank=1)要到 100% 才追平——OPD 的方向预测能力,一开始就到位了。
(b) 子图我盯着看了好一会儿。OPD 的 Top-1 子空间在 10~20% 训练进度处,跟最终 Top-1 子空间的余弦相似度就已经爬到 0.7 以上。Rank=20 时更夸张,10% 进度处就接近 0.95。RL 这边?同样的进度大概还在 0.3~0.5 徘徊。
(c) 子图更直接地把这个性质"用"了起来:取一个只训了 10% 的 OPD checkpoint,把它的 ΔW 等比放大到最终 checkpoint 的范数,缩放后的准确率已经能恢复到最终性能的约八成。也就是说,早期 ckpt 的方向已经是对的——它差的不是方向,是步长。
这就是 Property 2:Early Low-Rank Lock-in——主方向在训练早期就已经锁定,后续训练主要在沿着这些方向"加大油门",而不是改弦更张。
到这里,整篇论文的核心机理就讲完了:Property 1(模块挑食)+ Property 2(方向早定)= OPD 的"预见性"。
EffOPD:方向都对了,那直接外推几步呗
想法朴素到让人觉得"对,就该这么搞"
如果方向早就对了,剩下的训练只是在沿着这个方向走得更远——那为什么还要老老实实一步一步训?直接沿着当前方向往前外推几步不就好了?
这就是 EffOPD 的核心思想。具体怎么做:
- 指数 checkpoint:在训练的第 1, 2, 4, 8, 16, ... 步(指数间隔)取参数 \(W_{2^n}\)。
- 估计当前方向:用相邻两个 checkpoint 的差作为方向估计——
$\(\Delta_n = W_{2^n} - W_{2^{n-1}}\)$
- 生成 5 个外推候选:沿着 \(\Delta_n\) 方向,按 \(2k\)(\(k=1,2,3,4,5\))的倍数外推——
$\(\widetilde{W}_{n,k} = W_{2^n} + 2k \cdot \Delta_n\)$
- 轻量验证:从训练集里随机抽 50 条样本作为 \(\mathcal{D}_v\),依次评估 5 个候选。只要某个候选在 \(\mathcal{D}_v\) 上的得分不再超过上一个,立刻停止,回退到上一个被接受的候选。
- 极端 case:如果连 \(k=1\) 都不及格,EffOPD 就退化为普通 OPD。
整套流程没有引入任何可训练模块、没有复杂超参——只是在 OPD 训练过程中周期性地尝试跨大步,跨得动就跨,跨不动就退回去。
这里有个小细节值得拎出来说——为什么用指数 checkpoint 而不是均匀 checkpoint?因为根据 Property 2,方向在训练早期就基本定型,后续每多训一倍 step 带来的方向修正越来越小。所以越往后,相邻 checkpoint 之间的方向差异越能代表"接下来要走的方向",外推效果也越稳。指数间隔 \(2^n\) 恰好匹配了这种"边际信息量"的分布。这个设计跟 Property 2 是闭环呼应的,不是拍脑袋。
为什么这么朴素的方法能 work
回到 Property 2:方向是稳定的、低秩的、早期就锁定的。所以沿着 \(\Delta_n\) 外推几步,并不是瞎赌——而是在一条已知稳定的轨迹上做线性外延。验证集只是用来 sanity check 一下当前方向是否还有效,并不需要它有多准。
我之前在做 model souping、checkpoint averaging 这类工作的时候,老觉得这种"权重空间游走"的方法很玄学——为什么把两个 ckpt 加权平均会变好?这篇论文给了一个相对可解释的答案:因为权重轨迹在低秩子空间里是高度结构化的,不是噪声游走。从这个角度看,EffOPD 其实是把"权重轨迹的几何先验"显式地用起来了。
主结果:3 倍加速,性能不降反升

图 6:横轴是训练 step。蓝线(EffOPD)几乎在每个子图里都是"早到、走得更高"。注意 Qwen3-4B-Non-Thinking 那张——EffOPD 在第 4 步就基本到位了,vanilla OPD 要到 30 步以上。
数学推理 benchmark 上,EffOPD 大约 10 个 step 就收敛,vanilla OPD 要 30~40 步——3 倍加速是平均水平。更有意思的是,EffOPD 的最终性能上限通常还更高一点。作者的解释是:vanilla OPD 训太久反而可能 over-optimization 和语义漂移;EffOPD 因为有早期验证机制,能及时停下来。这个观察我觉得相对靠谱,过去在 SFT 上也观察过类似现象。
跟 AlphaOPD、ExOPD 这两个固定步长外推的基线对比,EffOPD 胜在自适应步长——大方向对的时候多走几步,方向不那么对的时候只走一步。这是它比固定步长更稳的根本原因。
消融:哪些设计是真的有用的

图 7:(b) 子图说明验证集"挑出来的不是答案,是方向是否还有效"——这跟 Property 2 完全对得上。
三个值得记的发现:
- 学习率敏感性:vanilla OPD 在大学习率下会震荡,EffOPD 因为有验证机制把"过于激进的外推"过滤掉了,因此对学习率更宽容。
- 验证集难度不重要:不同难度的 \(\mathcal{D}_v\) 给的方向信号一致——这正好印证了"验证只是 sanity check,不是精细监督"。
- 算上验证开销也仍然快:50 条样本 vs 普通 OPD 一步要采几百上千条 token——验证成本远小于 OPD 自身的 rollout 成本。
我的判断:这篇论文好在哪、不足在哪
真正打动我的地方
给"OPD 高效"一个机制级解释,而不是停在"信号更密"这种废话。Property 1 和 Property 2 都是可量化、可复现的——你拿任何模型跑一遍 ΔW 的 SVD,都能验证。
EffOPD 的设计极简,但跟前面的机理完全闭环。没有引入新的可训练模块、没有玄学超参——它就是把"方向早就稳定"这个发现,朴素地用了起来。我看完之后第一反应是"这种方法应该早就该有了",但它确实没有——说明真正难的是把"早期方向稳定"这件事用机理证清楚。
实验扎实。1.5B 到 32B、PPO/GRPO/DAPO、Code/Math、4+8+14+32B 多个规模,主结果图(图 6)8 个子图全方位覆盖。表 1 的谱指标做了 4 个规模的对照。这种工作量已经超出一般 NeurIPS 投稿的标配了。
让我有点皱眉的地方
Property 2 在更复杂的训练 setting 下还成立吗?作者自己在 Limitations 里也提了——multi-turn agent、多模态推理这些场景下,分布漂移更大、teacher-student residual 结构更复杂,"早期方向稳定"还成不成立是个未知数。我自己直觉是:只要 teacher 是稳定的、student 的初始化跟 teacher 相对接近,这个性质应该都成立;但如果 teacher 跟 student 差异巨大(比如跨模型族),可能就不一定了。
理论分析是 local 的。论文附录里有个线性化分析(A Local Geometric View of OPD Dynamics),但这是在 base 模型邻域内的线性化,没法解释大规模后训练的全局非凸行为。这块作者也坦诚了。
跟同期工作的关系需要看仔细。论文里多次引到的 AlphaRL(Cai et al. 2025)也是研究 RL 参数动力学的,发现了 Rank-1 dominance 和 Rank-1 linear dynamics,也得到了 3× 加速。EffOPD 跟 AlphaRL 的关系,作者说是"侧重点不同"——AlphaRL 关注 RL 的低秩轨迹,这篇论文关注 OPD 相对 RL 的额外优势(模块冗余规避 + 早期方向锁定)。我个人觉得这个区分是站得住的,但读者最好把 AlphaRL 一起看了,会更完整。
工程启发
如果你在做 OPD 类的后训练,这套方法是即插即用的——只需要在 checkpoint 间做一次差分外推、跑一次 50 样本的轻量验证。代码改动量极小,但训练时间可能直接砍到 1/3。
更值得拿走的是它的诊断视角:训练过程中 Top-k 子空间的余弦相似度演化,可以作为一个"训练健康度"指标。如果你的 OPD 训了一会儿,发现 Top-1 子空间还在剧烈漂移,说明 teacher-student 之间可能有结构性 mismatch,需要调整 teacher 选择或者 distillation loss。这种监控信号比 loss 曲线信息量大得多。
顺着这个思路再聊聊——其实我们之前在做 model souping 类工作的时候,大家踩过一个坑:把训练初期的 checkpoint 拿来做平均,效果普遍不如训练后期的。当时大家给的解释是"早期模型还没收敛、特征不稳定"。但读完这篇论文,我突然意识到——早期 ckpt 的"方向"可能是稳定的,但"幅度"还没到位。所以直接做平均不 work,但先对齐范数再合并,可能会有奇效。这是一个值得验证的猜想。论文里的图 5(c) 实际上已经给了一个间接的旁证。
收尾
这是一篇我会推荐做后训练的同行认真读的论文。它不是又一个 "刷 SOTA + 加新模块" 的工作,而是回到了一个相对朴素的问题:OPD 为什么这么快?——然后用扎实的实验给出了一个可证伪的答案。EffOPD 这个加速方法只是这个答案的副产品——但即便不用 EffOPD,光是 Property 1 和 Property 2 这两条性质,就足够让你重新思考 OPD 的训练动态。
我自己看完最大的收获是:后训练这件事,可能没我们想的那么复杂——很多时候 teacher 已经把"该往哪走"告诉模型了,剩下的只是别走偏、走得更高效。EffOPD 验证了一个更激进的猜想——有时候你甚至不需要走完所有步,看一眼方向,直接跳过去就行。
如果未来在 multi-turn agent、跨模态后训练这些更复杂的场景里,这两条性质依然成立,那这套思路的影响范围会大得多。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我