大模型后训练新范式 OPD:为什么它能用 1/10 算力挑战 RL?

📅 2026/7/9 10:10:46
大模型后训练新范式 OPD:为什么它能用 1/10 算力挑战 RL?
摘要大模型后训练正在从“模仿标准答案”走向“在真实生成轨迹上接受细粒度纠偏”。SFT 给了模型密集监督但训练轨迹来自老师或数据集RL 让模型在自己的轨迹上学习但奖励通常过于稀疏。OPDOn-Policy Distillation正好站在这两者之间学生模型先自己 rollout教师模型再在学生自己的生成轨迹上逐 token 给出 KL reward。本文系统讲解 OPD 的动机、数学骨架、工程实现、工业实践和论文脉络。重点解析四篇关键论文GKD 立起 on-policy token-level distillation 的基本范式Rethinking OPD 解释 OPD 什么时候会失败Uni-OPD 从学生探索和教师信号两侧修正训练瓶颈Learning to Foresee 则从参数动力学角度解释 OPD 为什么快并提出 EffOPD 加速方法。本文的核心观点是OPD 不是简单的知识蒸馏技巧而是一种新的后训练组织方式。它适合做能力迁移、多专家融合、跨阶段能力保活和 RL 前热身但它不应该被神化为 RL 的完全替代品。在 long-horizon、agentic、多轮工具调用等需要强探索的任务中OPD 更适合作为 RL 前的高效初始化而不是单独承担全部训练。关键词OPD、On-Policy Distillation、GKD、Rethinking OPD、Uni-OPD、Learning to Foresee、SFT、RL、PPO、Reverse KL、Sampled-Token、Full-Vocab、多教师蒸馏一、为什么 OPD 会成为后训练的新范式理解 OPD先不要从公式开始。真正的问题是一个模型到底应该在什么路径上学习过去大模型后训练主要有两条路线。第一条是 SFT也就是监督微调。它让模型模仿标准答案。第二条是 RL也就是强化学习。它让模型自己生成答案再根据奖励信号优化。这两条路线都重要但它们各自都有一个很深的缺陷。1.1 SFT 的原罪反馈很细但路径不真实SFT 的训练方式很简单。给模型一批样本prompt - 标准 response然后让模型学习标准 response 里的每一个 token。这看起来很高效因为每个 token 都有监督信号。模型知道当前位置应该输出什么下一个位置应该输出什么整条答案应该长什么样。但问题也在这里。SFT 训练时模型看到的是老师写好的轨迹真正推理时模型走的是自己生成的轨迹。也就是说训练时模型站在老师走过的路上学习 推理时模型站在自己走出来的路上继续生成这两条路不一定一致。举个例子。老师解数学题时前 20 步都正确。SFT 学生训练时看到的也是这条完美路径。但学生真正自己做题时可能第 5 步就算错了。第 6 步开始它面对的上下文就已经不是老师训练数据中的上下文。后面的每一步都可能在错误基础上继续滚雪球。这就是 SFT 的分布偏移问题。一句话概括SFT 教会了模型“标准答案长什么样”但没有教会模型“自己走偏以后怎么救回来”。1.2 RL 的原罪路径真实但反馈太粗RL 刚好解决了 SFT 的一个问题。RL 的训练轨迹来自学生模型自己。模型先自己生成完整 response再由奖励模型、验证器或环境反馈告诉它好坏。这意味着 RL 的训练分布更接近模型真实推理时的分布。但 RL 又带来另一个问题奖励太稀疏。比如模型生成了一条 5000 token 的数学推理链最后答案错了。验证器只返回reward 0模型知道这条答案错了但不知道到底哪里错。是第 17 步算错了是第 235 步逻辑跳了是第 1000 步符号写反了还是最后答案抄错了这就是 credit assignment 问题。RL 的训练轨迹是真实的但它给模型的反馈经常太粗。模型知道“这一局输了”却不知道“哪一步是臭棋”。一句话概括RL 教会模型在自己的路径上学习但经常只告诉它最后输赢不告诉它每一步的质量。1.3 OPD 的核心交易拿 RL 的真实轨迹拿 SFT 的密集反馈OPD 的出现就是为了把 SFT 和 RL 的优点拼起来。OPD 的核心结构是学生模型先自己生成 response 教师模型在学生自己的 response 上逐 token 打分 学生根据每个 token 的 KL reward 更新所以 OPD 同时具备两个特征方法轨迹来源反馈粒度核心问题SFT老师 / 固定数据集dense每个 token 有监督训练轨迹和推理轨迹不一致RL学生自己sparse通常整条回答一个分数不知道具体哪一步错OPD学生自己dense每个 token 都有 teacher KL reward模仿强探索空间受 teacher 限制OPD 的一句话定义是OPD on-policy 轨迹 dense KL reward。这句话非常重要。on-policy 说明训练数据来自学生自己。dense KL reward 说明教师不是只给最终分数而是在每个 token 位置上给出细粒度反馈。换成更直观的比喻SFT 像背大师棋谱。RL 像下完一盘棋只告诉你输赢。OPD 像你自己下完棋后大师逐步复盘每一步。这就是 OPD 的基本价值。二、GKD 为什么是 OPD 的源头要理解 OPD 的理论来源必须先讲 GKD。GKD全称 Generalized Knowledge Distillation对应的论文是On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes。这篇论文的重要性在于它最早把“语言模型蒸馏”明确放到了 imitation learning 的框架里理解。传统知识蒸馏主要有两类。第一类是 SeqKD。teacher 先生成完整答案然后 student 把这些答案当成 SFT 数据学习。第二类是 Supervised KD。teacher 在固定数据集上提供 token-level soft labelstudent 去拟合 teacher 的概率分布。这两类方法的问题其实一样学生始终在别人写好的轨迹上学习而不是在自己生成的轨迹上学习。GKD 的关键转向是不要只让学生看老师写好的答案 而要让学生在自己生成的答案上接受老师纠偏这就是 OPD 的雏形。2.1 GKD 解决的是“自生成错误”问题GKD 的标题里有一个关键词Self-Generated Mistakes。这个词很准确。模型真正需要学习的不只是老师在理想状态下怎么写答案而是当学生自己生成了一个不完美的 prefixteacher 在这个 prefix 上会怎么看下一步这才是 OPD 和传统蒸馏的分水岭。传统蒸馏问的是在老师写好的上下文里老师下一步会输出什么OPD 问的是在学生自己写出来的上下文里老师认为下一步应该是什么分布这两个问题看起来接近但训练意义完全不同。第一个问题让学生模仿老师。第二个问题让学生在自己的错误路径上被老师纠偏。所以 GKD 立起来的不是一个小技巧而是一种新的学习场景student-generated trajectory 上的 token-level distillation。2.2 GKD 为什么要讨论散度选择GKD 还有一个重要贡献它不只说“用 KL”而是讨论到底该用什么方向的 KL。这里主要涉及三种选择Forward KL Reverse KL Generalized JSDForward KL 的特点是 mean-seeking。它希望 student 覆盖 teacher 的所有可能模式。Reverse KL 的特点是 mode-seeking。它鼓励 student 选择 teacher 认可的高质量模式并集中学习。Generalized JSD 介于两者之间可以看作一个更平滑的折中。为什么这件事重要因为大模型输出不是连续平滑的单峰分布而是多模式、多风格、多路径的离散空间。同一个问题teacher 可能有多种合理回答用数学推导回答 用代码回答 用自然语言解释 用长链推理回答 用短答案回答Forward KL 会让 student 尽量覆盖这些模式。听起来全面但可能让输出风格变得摇摆。Reverse KL 更像是让 student 选一个 teacher 也认可的模式然后集中学深。所以后来的工业 OPD 大量偏向 Reverse KL不是偶然的。一句话总结 GKD 的价值GKD 把 OPD 的底层范式立了起来让学生在自己的轨迹上学习并用 teacher 的 token-level 分布做纠偏。三、为什么 OPD 默认偏向 Reverse KLOPD 的 reward 通常来自 student 分布和 teacher 分布之间的差异。这个差异常用 KL 衡量。但 KL 有方向。方向不同训练行为完全不同。3.1 Forward KL覆盖所有模式但容易学散Forward KL 可以理解为teacher 认为可能的输出student 都不应该漏掉。这会让 student 尽量覆盖 teacher 的所有 mode。如果 teacher 的输出空间很单一这没问题。但大模型的输出空间经常是多模式的。举个例子。面对同一个代码问题teacher 可能有几种高概率输出直接给代码 先解释思路再给代码 给 Python 实现 给 JavaScript 实现 先指出边界条件Forward KL 会倾向于让 student 覆盖所有可能性。当 student 容量不足时它可能学成一个平均态每种都沾一点但每种都不够稳定。这就是 mean-seeking 的风险。3.2 Reverse KL集中到高质量模式上Reverse KL 的性格是 mode-seeking。它不要求 student 覆盖 teacher 所有可能输出而是鼓励 student 选择 teacher 也认可的某个高质量模式。这更适合后训练。因为后训练不是让模型“什么风格都来一点”而是让模型形成稳定、可靠、可控的输出行为。所以可以这样记Forward KL学全但容易散 Reverse KL学精更稳定在 OPD 里Reverse KL 还有一个工程优势它可以天然支持 sampled-token 估计。因为 Reverse KL 的期望在 student 分布下。student 已经采样出了 token所以可以直接用学生实际生成的 token 来估计该位置上的 KL 信号。这就是 Sampled-Token OPD 能成立的关键。四、Sampled-Token、Top-k、Full-VocabOPD 的三种工程形态OPD 落地时真正卡工程的不是“能不能算 KL”而是“每个位置到底拿多少 token 算 KL”。这里有三种路线。4.1 Sampled-Token最省显存的工业默认Sampled-Token OPD 只看 student 实际采出来的那个 token。比如在某个位置上student 生成了 token A。那么这个位置只比较student 对 A 的 log_prob teacher 对 A 的 log_prob然后得到一个近似的 reverse KL reward。优点很明显显存最低 实现最简单 适合 single-teacher 场景 训练成本可控缺点也明显每个位置只看一个 token 估计方差相对更高 multi-teacher 场景下可能不够稳定所以 Sampled-Token 的定位不是“理论最完整”而是“工业最划算”。4.2 Top-k在稳定性和显存之间折中Top-k OPD 每个位置不只看一个 token而是看 k 个 token。这个 k 可以来自 student也可以来自 teacher还可以取二者的交集或并集。例如 thunlp/OPD 里提到过类似策略only_stu只看 student top-k only_tch只看 teacher top-k intersection看 student 和 teacher top-k 的交集 union看 student 和 teacher top-k 的并集这些策略代表不同训练哲学。only_stu 更关注学生自己在意的 token。only_tch 更关注老师认为重要的 token。intersection 更保守只看双方都重视的 token。union 更全面但计算也更重。Top-k 的价值在于它比 Sampled-Token 稳又比 Full-Vocab 便宜。4.3 Full-Vocab多教师融合时的高成本选择Full-Vocab OPD 会把整个词表都拿来算 KL。如果词表是 100k 级别那么每个 token 位置都要处理完整词表分布。这非常贵。但它有一个优势估计方差最低尤其适合 multi-teacher consolidation。多教师场景下一个 student 同时面对多个 teachermath teacher code teacher agent teacher instruction-following teacher reasoning teacher如果每个位置只看 sampled-token那么多个 teacher 的分布差异可能被采样噪声放大。Full-Vocab 虽然贵但能更完整地比较多个 teacher 的分布。所以它适合大规模训练团队而不是普通工程默认选项。4.4 三种方式的取舍表实现方式每个位置参与 KL 的 token显存成本典型场景Sampled-Token1 个最低single-teacher快速工业落地Top-kk 个中等稳定性与成本折中Full-Vocab全词表最高multi-teacher consolidation大规模训练结论很明确Sampled-Token 不是低配版 OPD而是 single-teacher 场景下的高性价比默认Full-Vocab 不是天然更高级而是多教师融合场景下为了降低方差付出的显存代价。五、OPD 在工程上为什么像 PPO 的一个特例OPD 很容易进入工业 pipeline一个重要原因是它可以复用 PPO / GRPO / verl 这类 RL 框架。从训练流程看OPD 和 PPO 很像。区别是普通 PPO 的 reward 来自 reward model 或环境OPD 的 reward 来自 teacher 和 student 的 KL。一个典型 OPD 流程如下1. student rollout生成 response 2. student 计算自己在 response 上的 log_prob 3. teacher 对 prompt student response 做一次 prefill 4. 计算 token-level reverse KL 5. reward -KL 6. advantage reward 7. actor 使用 PPO importance sampling loss 更新5.1 teacher 只做 prefill不做 decode这是 OPD 成本低的关键。teacher 不需要重新生成答案。teacher 只需要看 student 已经生成好的 response然后一次 forward 得到每个位置的 logits。也就是说teacher 不是重新写答案 teacher 是批改 student 已经写好的答案这和普通“让 teacher 生成高质量数据再训练 student”的方式不同。teacher decode 很贵。teacher prefill 相对便宜。所以 OPD 的效率很大一部分来自这个设计。5.2 reward -KLOPD 的 reward 可以直观理解为student 越像 teacherreward 越高 student 越偏离 teacherreward 越低在 sampled-token reverse KL 的情况下可以写成kl_val student_logp - teacher_logp reward -kl_val如果 student 对某个 token 很自信但 teacher 并不认可那么 KL 变大reward 变低。如果 student 输出的 token teacher 也认可那么 KL 变小reward 变高。这使 OPD 的 reward 比普通 reward model 更难被“刷分”。因为最终目标不是骗过一个标量打分器而是让 student 的行为分布靠近 teacher。5.3 advantage 直接等于 reward普通 PPO 需要 critic 和 GAE是因为它通常面对稀疏奖励。但 OPD 的 reward 已经是 token-level 的。所以不需要再把一个最终奖励拆回每个 token。可以直接advantage token_reward这就是 OPD 作为 PPO 特例的关键简化。它不是推翻 PPO而是把 PPO 里的奖励来源替换成了 teacher KL reward。六、Rethinking OPDOPD 为什么有时候训不动讲到这里OPD 看起来很完美。它有学生自己的轨迹有 teacher 的 dense feedback还能复用 PPO 框架。但问题是OPD 不是所有场景都能跑出好结果。Rethinking OPD 这篇工作最重要的价值就是把 OPD 的失败条件讲清楚了。它指出 OPD 想成功至少需要两个前提。6.1 前提一student 和 teacher 的 thinking pattern 要兼容OPD 是逐 token 对齐。这意味着 student 和 teacher 的表达习惯、推理格式、输出节奏不能差得太远。如果 teacher 喜欢这样回答先写详细推导 再列中间公式 最后给答案而 student 只会这样回答答案是 42。那它们在 token-level 上的 KL 差异会很大。这种差异不一定代表 student 错了也可能只是两个模型的思维格式不兼容。这时候直接 OPDteacher 给出的 KL 信号可能不是“能力纠偏”而是“风格冲突”。解决办法是off-policy cold start。也就是先用 teacher 生成一批样本对 student 做一轮短 SFT让 student 的输出格式先靠近 teacher。然后再进入 OPD。可以理解为先让学生听得懂老师的讲课方式 再让老师在学生自己的答案上逐步批改6.2 前提二teacher 必须有 student 没有的新能力很多人有一个误解teacher 越大OPD 就越有效。不一定。真正决定 OPD 效果的不是 teacher 的绝对强度而是 teacher 和 student 之间有没有“可学习的能力差”。如果 teacher 只是比 student 分数高一点但在 token-level 分布上没有提供新信息那么 student 很难学到东西。Rethinking OPD 用 weak-to-strong reverse distillation 做了一个很反直觉的实验在同家族不同尺寸模型之间互相蒸馏时强弱方向并没有想象中那么关键。这个现象说明如果两个模型的 token-level 行为模式高度相似那么强模型未必能提供足够新的训练信号。所以 OPD 训练数据不能无脑堆。最有价值的 prompt 是teacher 能答好 student 答不好这就是 teacher-aligned prompt selection。工程上可以这样做1. teacher 跑一遍候选 prompt 2. student 跑一遍候选 prompt 3. 根据 teacher_score - student_score 排序 4. 只选差距最大的样本做 OPD这比“把所有数据都喂给 OPD”更有效。6.3 Rethinking OPD 给出的核心提醒Rethinking OPD 最值得记住的不是某个复杂公式而是一个训练判断OPD 的收益来自 teacher 和 student 之间的有效教学差而不是 teacher 的名义大小。如果 teacher 和 student 思维方式不兼容需要 cold start。如果 teacher 没有 student 真正缺失的能力需要 prompt selection。如果任务需要长程探索OPD 不能单独承担全部训练。这直接引出了 OPD 的边界它强在模仿和迁移但不强在开放探索。七、Uni-OPD训练过程中如何修 OPD 的两个瓶颈Rethinking OPD 主要解决“训练前要不要做 OPD、怎么选数据”的问题。Uni-OPD 进一步往前走一步如果 OPD 已经开始训练了过程中出现问题怎么办Uni-OPD 把问题分成两侧学生侧student 探索不足 教师侧teacher 信号不可靠这也是它叫 dual-perspective recipe 的原因。7.1 学生侧问题student 总在简单状态里打转OPD 是 on-policy 的。on-policy 的好处是轨迹真实坏处是学生可能被自己的能力边界困住。如果 student 一直生成很简单、很保守、很熟悉的答案那么 teacher 就算逐 token 打分也很难把 student 推到真正有信息量的状态。这叫 insufficient exploration of informative states。Uni-OPD 的学生侧修法是 data balancing。第一层是 offline difficulty-aware balancing。训练前先按 prompt 难度分桶避免 batch 里全是简单题或全是难题。第二层是 online correctness-aware balancing。训练中根据 student rollout 的对错动态调整样本让 batch 里同时有正确轨迹和错误轨迹。为什么要这样因为全对的 batch 没有足够纠错信号。全错的 batch 又可能让模型只看到失败轨迹。有对有错模型才知道什么该靠近、什么该远离。7.2 教师侧问题teacher 的 token 信号可能反了teacher 比 student 强不代表 teacher 在所有 student rollout 上都可靠。尤其是 student 生成了一些奇怪轨迹时teacher 的 token-level KL 信号可能和最终结果不一致。例如某条轨迹最终答案错了 但 teacher 在局部 token 上给了很高认可 某条轨迹最终答案对了 但 teacher 因为表达方式不同给了较低认可这时候 OPD reward 就可能方向反了。Uni-OPD 的解决方法是 outcome-guided margin calibration。它的核心思想很朴素对同一个 prompt正确轨迹的 OPD 回报应该高于错误轨迹。如果出现错误轨迹分数高于正确轨迹就说明 teacher 信号需要校准。校准方式有两类Margin mask直接丢掉不可靠 prompt Margin shift把正确轨迹的回报整体抬高恢复正确/错误之间的顺序这一步很关键。它说明 OPD 不是盲信 teacher而是用最终 outcome 去约束 teacher 的逐 token 信号。7.3 Uni-OPD 的真正贡献Uni-OPD 的价值不只是提出两个技巧而是把 OPD 的训练控制变得更工程化。它告诉我们OPD 不是 student rollout 完、teacher 打分完就结束 还要检查 student 是否探索到了有价值状态 也要检查 teacher 的 token-level 信号是否和最终结果一致所以 Uni-OPD 让 OPD 从“会跑”走向“更稳地跑”。它的核心判断可以浓缩成一句话teacher 的价值来自 capability gap而不是 absolute strength。也就是说teacher 真正有用的地方是它能在 student 不会的状态上给出可靠增量信号。八、Learning to ForeseeOPD 为什么快到这里OPD 的有效性已经比较清楚了。但还有一个更深的问题OPD 为什么会比 RL 高效那么多只说“因为 OPD 有 dense reward”还不够。因为 SFT 也有 dense supervision但 SFT 不一定能达到 OPD 的效果。所以 OPD 的效率不只是“反馈更密”还有更底层的训练动力学原因。Learning to Foresee 给出的解释是OPD 有 foresight预见性。8.1 OPD 早期就找到了正确更新方向Learning to Foresee 的核心观点是OPD 在训练早期就锁定了最终有效的更新方向后续训练主要是在这个方向上增加幅度。RL 则不同。RL 的更新方向在训练过程中更容易反复变化。它需要通过大量探索逐渐找到哪些参数更新真正有用。可以这样理解OPD 像一开始就找到了路后面主要是沿着路走远 RL 像一边走一边试路走错很多岔路后才接近目标这解释了为什么 OPD 在某些场景里用更少 GPU hours 就能达到强效果。8.2 Functional Redundancy AvoidanceOPD 少改没用的模块Learning to Foresee 观察到OPD 的更新更集中在对 reasoning 有用的模块上例如中间层 MLP。而 RL 可能在低贡献模块上也注入不少更新比如底层、顶层或其他对当前 reasoning 任务帮助较小的位置。这叫 Functional Redundancy Avoidance。换成直白说法OPD 更知道该改哪里RL 更容易把力气花散。这不是说 RL 没用而是说 RL 在探索过程中会付出更高的参数更新成本。8.3 Early Low-Rank Lock-inOPD 早早锁定低秩方向Learning to Foresee 还观察到OPD 的参数更新呈现更明显的低秩结构。也就是说它的主要更新能量集中在少数几个主方向上。更重要的是这些主方向在训练早期就和最终方向高度一致。材料中提到一个很反直觉的现象取 OPD 只训练 10% 时的 checkpoint 只把 update magnitude 拉到最终水平 方向不变 可以恢复相当一部分最终性能这说明 OPD 前期已经找到了关键方向后面更多是在堆幅度。这就是 Early Low-Rank Lock-in。8.4 EffOPD把“方向早锁定”变成训练加速既然 OPD 很早就锁定方向那么后面的训练是否可以加速EffOPD 的思路就是在指数 checkpoint 上做 extrapolation。简化成工程流程1. 在 step 1, 2, 4, 8, 16... 保存 checkpoint 2. 用最近两个 checkpoint 的参数差估计更新方向 3. 沿这个方向外推几个候选模型 4. 用很小的 validation set 测候选效果 5. 接受不掉点且提升最大的外推版本这个方法的吸引力在于侵入性低。不需要重新设计 OPD pipeline也不需要训练新模块只是在 checkpoint 之间插入一个 extrapolation hook。材料中提到 EffOPD 可以带来 3× 加速。但这个数字是否能稳定迁移到所有模型、所有任务、所有工程环境中本文不作额外推断标记为Information Not Available。九、四篇论文合起来到底给了我们什么认知现在把四篇论文串起来就能看到 OPD 的完整知识体系。论文解决的问题留下的核心认知GKDOPD 范式从哪里来蒸馏应该发生在 student 自己生成的轨迹上Rethinking OPDOPD 什么时候失败thinking pattern 要兼容teacher 要有新能力Uni-OPDOPD 训练中怎么修修 student 探索不足也修 teacher 信号反向Learning to ForeseeOPD 为什么快OPD 早期锁定有效低秩更新方向这四篇论文的关系不是并列堆砌而是一条递进线GKD提出范式 Rethinking OPD找到边界 Uni-OPD修复训练瓶颈 Learning to Foresee解释效率机理并加速如果只读 GKD会觉得 OPD 是一个漂亮范式。如果再读 Rethinking OPD会知道它不是万能的。如果读 Uni-OPD会知道训练中怎么救。如果读 Learning to Foresee会知道它为什么快以及为什么这种快也可能带来探索受限。这才是 OPD 的完整理解。十、工业实践OPD 到底怎么用OPD 的工业价值不止一种。它已经不只是“把大模型蒸馏到小模型”的工具而是后训练流水线中的多功能组件。下面按用途讲五类典型模式。10.1 DeepSeek V4用 OPD 替代大规模 mix RLDeepSeek V4 的路线可以概括为先分后合。先在多个 domain 上分别训练 specialistmath specialist code specialist agent specialist instruction-following specialist 其他 domain specialist每个 specialist 都在自己的领域里做到强。然后用 Multi-Teacher OPD 把多个 specialist 的能力合并回一个统一 student。这和一次性 mix RL 的思路不同。mix RL 是所有 domain 混在一起 让一个 actor 同时往多个目标优化问题是不同 domain 的目标可能互相拉扯。数学希望严谨。代码希望可执行。agent 希望规划和工具使用。指令跟随希望格式稳定。通用聊天希望自然。一次性混在一起训可能得到一个折中但不够尖锐的模型。OPD 的“先分后合”更像是先让每个专家单独练到强 再把专家行为蒸馏回统一模型这不是参数级合并而是行为级合并。10.2 Qwen3用低成本 OPD 替代部分 RL材料中给出的 Qwen3 对比非常有代表性方法AIME24GPQA-DiamondGPU HoursOff-policy distillation / SFT55.0%55.6%Information Not Available Reinforcement Learning67.6%61.3%17,920 On-policy Distillation74.4%63.3%1,800这张表的冲击力在于OPD 效果更好 GPU Hours 约为 RL 的 1/10这解释了为什么 OPD 会被工业界重新重视。但这里不能得出“OPD 永远优于 RL”的结论。更准确的说法是在某些 reasoning 或单 domain 后训练场景里OPD 可以用更低成本提供非常强的训练信号。它的优势来自真实轨迹上的 dense feedback而不是来自开放探索。10.3 MiMo用 MOPD 做多专家融合MiMo-V2-Flash 的路线可以理解为 MOPDMulti-Teacher On-Policy Distillation。先训练多个领域 teachermath teacher code teacher reasoning teacher然后让 student 自己 rollout。多个 teacher 在 student 的轨迹上给信号。最后把多个专家能力压进一个 student。这个模式说明 OPD 很适合做专家融合。它不是让一个模型从零同时学习所有能力而是先培养专家再统一蒸馏。更重要的是MOPD 往往可以放在 agentic RL 之前。也就是Pre-training - Mid-training - Multi-Teacher OPD - Agentic RL这说明 OPD 可以作为 RL 前的高质量热身阶段。10.4 GLM-5用 OPD 做跨阶段能力保活多阶段后训练会带来一个问题能力遗忘。模型经过某个 RL 阶段后某类能力变强但其他能力可能掉。例如reasoning 变强 agent 能力变强 但 instruction-following 或通用对话变弱GLM-5 的 OPD 用法可以理解为 cross-stage distillation。它让模型在新阶段训练后重新对齐到之前某个能力 snapshot防止旧能力丢失。这个用法非常重要。因为工业模型不是只训练一次而是不断迭代。如果每次增强一个新能力都损害一批老能力模型就很难长期维护。OPD 在这里不是为了“冲高分”而是为了“保能力”。10.5 Thinking Machines Lab用旧版自己当 teacher 做持续学习持续学习场景里OPD 还有一个非常漂亮的用法用旧版自己当 teacher。材料里有一个例子模型Internal QAIF-evalQwen3-8B 原版18%85% midtrain36%79% OPD41%83%这个例子说明一件事mid-training 可以让模型学到新知识但可能损害原来的 instruction-following 能力。OPD 可以用旧版模型作为 teacher把旧能力拉回来。这对企业知识库、内部文档、领域模型特别有价值。企业模型会不断吸收新文档、新 SOP、新业务流程。如果每次吸收新知识都损害原来的通用能力系统就会越来越不稳定。用旧 snapshot 做 OPD本质上是在给当前模型加一个能力锚点。十一、OPD 的局限为什么它不是 RL 的全场替代品OPD 很强但它不是免费午餐。它的优势来自强模仿student 靠近 teacher student 学 teacher 的高质量模式 student 快速进入有效更新方向但它的局限也来自强模仿student 的探索空间会被 teacher 限制 student 可能学到 teacher 的局部 token 习惯 student 可能过早锁定更新方向这在 long-horizon 和 agentic 任务中尤其明显。因为这类任务需要模型自己探索多轮决策 环境反馈 工具调用 长程规划 失败重试 策略搜索如果一开始就让模型强行贴近 teacher可能会压缩它探索新策略的空间。所以 OPD 和 RL 最合理的关系不是替代而是配合。更好的训练组织方式是先用 OPD 做能力迁移和专家融合 再用 RL 做开放探索和环境交互优化 最后用 cross-stage OPD 做能力保活这才是成熟的后训练流水线。十二、什么时候应该用 OPD什么时候不该单独用可以用下面这个表判断。场景OPD 是否适合原因有强 teacher想低成本迁移能力适合OPD 擅长行为迁移student 和 teacher 输出风格接近适合token-level KL 更可靠多个 domain expert 需要合并适合Multi-Teacher OPD 可以做行为级融合模型训练后出现能力遗忘适合旧 snapshot 可以做能力锚点想在 RL 前做热身适合OPD 能给出稳定初始策略teacher 和 student 思维格式差异大谨慎需要 cold startteacher 没有明显新能力不适合没有有效教学差任务高度依赖开放探索不宜单独使用需要 RL 或环境交互补足十三、如果自己实现 OPD应该盯住哪些关键点一个最小可用的 OPD pipeline 可以这样设计Step 1准备 prompt 数据 Step 2student rollout生成 response Step 3teacher 对 prompt student response 做 prefill Step 4抽取 student logp 和 teacher logp Step 5计算 reverse KL Step 6reward -KL Step 7advantage reward Step 8复用 PPO / GRPO actor update但真正做工程时不要只看流程能不能跑还要看五个关键点。13.1 teacher 是否只做 prefillteacher 不应该重新生成答案。它应该只做prompt student response - logits如果 teacher 也 decodeOPD 的成本优势会明显下降。13.2 KL 方向是否和实现方式匹配如果你要用 sampled-token就要优先考虑 reverse KL。因为 sampled-token 的无偏估计基础来自 student 分布采样。如果你要用 forward KL通常需要 top-k 或 full-vocab否则估计会偏。13.3 token 集合怎么选简单策略single-teacher优先 sampled-token 需要更稳尝试 top-k multi-teacher考虑 full-vocab但先评估显存不要盲目上 Full-Vocab。Full-Vocab 的价值主要在多教师融合和低方差估计不是所有场景都需要。13.4 prompt 是否有教学差OPD 最怕训练在没有教学差的数据上。应该优先选择teacher 答得好 student 答得差 teacher 和 student 差距明显这比盲目扩大数据量更重要。13.5 是否需要 cold start如果 student 和 teacher 的输出风格差异很大直接 OPD 可能不稳。可以先做短 SFTteacher 生成少量高质量样本 student 做 off-policy cold start student 输出风格靠近 teacher 再进入 OPD这能减少 token-level KL 的噪声。十四、OPD 最重要的 12 个结论第一OPD 的本质不是“蒸馏”两个字而是on-policy 轨迹 dense KL reward。第二SFT 的问题是训练轨迹来自老师推理轨迹来自学生因此有分布偏移。第三RL 的问题是轨迹真实但奖励稀疏token-level credit assignment 很难。第四OPD 同时拿到了学生自己的轨迹和 teacher 的逐 token 反馈。第五GKD 的意义是把 OPD 的源头范式立起来让学生在自己生成的错误上学习。第六Reverse KL 适合 OPD因为它是 mode-seeking并且支持 sampled-token 估计。第七Sampled-Token 是 single-teacher 场景下的高性价比默认Top-k 是折中Full-Vocab 适合多教师融合但显存很贵。第八OPD 在工程上可以看作 PPO 的一个特例teacher prefillreward -KLadvantage rewardactor 复用 PPO loss。第九Rethinking OPD 告诉我们OPD 成功需要 thinking pattern 兼容也需要 teacher 提供 student 没有的新能力。第十Uni-OPD 告诉我们OPD 训练中要同时修 student 探索不足和 teacher 信号不可靠。第十一Learning to Foresee 告诉我们OPD 快不只是因为 dense reward还因为它早期就锁定了有效低秩更新方向。第十二OPD 不应被当作 RL 的完全替代品。在 long-horizon、agentic、多轮交互任务中它更适合做 RL 前的高效热身。结语OPD 真正改变的是后训练组织方式OPD 的价值不是多了一个 loss也不是多了一个蒸馏技巧。它真正改变的是后训练的组织方式。过去我们常见的路线是Base Model - SFT - RL现在更成熟的路线可能是Base Model - Domain SFT / Mid-training - Domain RL 训练 specialist - Multi-Teacher OPD 汇聚专家能力 - Agentic RL 做开放探索 - Cross-stage OPD 做能力保活OPD 在这条链路里扮演的不是单一角色。它可以做能力迁移。它可以做多专家融合。它可以做 RL 前热身。它可以做持续学习。它也可以做跨阶段能力保活。但 OPD 不是万能药。它擅长把已有强模型的行为迁移给 student却不擅长替代所有探索。它能让模型更快靠近 teacher 的高质量模式但也可能限制模型跳出 teacher 之外。所以最合理的理解是OPD 负责把模型带到一个高质量起点RL 负责让模型继续探索更远的策略空间。这就是 OPD 在大模型后训练中的真正位置。