AI Post Traning: On-Policy Distillation, OPD
导言
- 在当前的大语言模型(LLM)对齐和后训练(Post-training)领域在线蒸馏(On-PolicyDistillation)正取代传统的离线蒸馏(Off-Policy Distillation/SFT),成为训练高性能小模型(SLM)或垂直领域模型的核心技术。
- 且 OPD相对于 传统 RL有独特优势
在策略蒸馏(On-Policy Distillation, OPD)是近年来在大模型(特别是推理模型)训练和蒸馏中备受瞩目的一种高级对齐与知识传递策略。
1. 这是什么策略?¶
简单来说,OPD 结合了强化学习(自我探索)和监督微调/传统蒸馏(密集反馈)的优势。
- 传统蒸馏(Off-Policy SFT):学生模型只看教师模型生成的“标准答案”进行学习。这就像学生只读教科书,但自己做题时一旦出错(偏离了分布),就不知道怎么纠正。
- 传统强化学习(RL,如 PPO/GRPO):学生自己做题(生成 Rollout),然后得到一个最终的对错评分(Reward)。这解决了分布偏移问题,但反馈太“稀疏”,试错成本极高。
- 在策略蒸馏(On-Policy Distillation):学生模型自己在环境中做题(On-policy Rollout),而在它做题的每一步,教师模型都在“背后盯着它”,为学生生成的每一个 Token 提供概率分布作为指导。这相当于“结对编程”或“手把手教学”:即便学生走了一条不同于标准答案的解题路径,教师依然能在当前路径上告诉它下一步的最佳选择概率。
机制层面的体现: 正如你所描述的,它在实现上与具体的优势估计器(Advantage Estimator,如 PPO、GRPO、REINFORCE++)是完全正交的。模型仍然可以通过环境(或判别器)获取标量 Reward 来计算 Advantage,但在计算策略更新的 Loss 时,会叠加一个与教师模型 Token 级 log-prob 对齐的 KL 散度惩罚项。这样既能利用 RL 寻找正确答案,又能迫使学生的推理逻辑、语言风格和内部置信度与强大的教师模型保持一致,且有效缓解了 RL 过程中的“灾难性遗忘”和“能力崩塌”。
原理¶
- SFT 的本质:Forward KL
- On-Policy Distillation (OPD) 的本质:Reverse KL
2. 有论文基础吗?¶
有非常扎实的论文基础,这一概念最早在强化学习和知识蒸馏的交叉领域被提出,但在 LLM 时代被重新发扬光大并大规模应用。相关的核心文献和工业界报告包括:
1. 理论奠基与早期探索 * MiniLLM: Knowledge Distillation of Large Language Models (Gu et al., ICLR 2024) 这篇论文是 LLM 领域较早探索 On-Policy Distillation 的代表作。传统蒸馏最小化的是 Reverse KL(基于教师生成的数据),而 MiniLLM 提出应该让学生模型自己生成数据,然后最小化 Forward KL。这解决了学生和教师模型之间的分布不匹配(Distribution Shift)问题。 * On-Policy Distillation (Agarwal et al., 2023/2024) 学术界在这期间系统性地提出了将大模型作为评估器,对小模型自身生成的轨迹进行 Token 级别或轨迹级别反馈的理论框架。
2. 工业界的最新大规模验证(2024-2025)
近期,OPD 已经成为顶尖大模型突破微调瓶颈的“工业标准”:
- Qwen3 / Qwen2.5-Math / DeepSeek 相关技术报告:(DeepSeek V4) 在最新的开源顶尖模型中,OPD 被大规模用于弥合 RL 和 SFT 之间的鸿沟。例如,在注入垂直领域知识(如内部代码、私有文档)或进行强化学习时,模型很容易遗忘通用的指令遵循能力。报告中证明,使用相同规模或更大的 Teacher 模型在 Student 自身的 Rollout 上进行 Token 级 OPD,可以完美恢复并拓展模型的能力边界,而不需要将海量通用数据重新拿来训练。
- OpenOneRec Technical Report (快手, 2025/2026): 在构建生成式推荐大模型时,快手团队明确使用了多阶段训练,其中重要的一环就是 On-Policy Distillation。由于 SFT 会导致通用推理能力退化,他们通过让学生模型自己生成推理轨迹,同时使用原始基座大模型(Teacher)对其进行在线蒸馏,成功恢复了通用推理能力,随后再用 GRPO 进行特定任务的强化学习。
- Thinking Machines Lab 报告:On-Policy Distillation (2025): 这是一篇近期在社区引起轰动的报告,明确指出 OPD 是一种极具性价比的训练方式。报告中生动地将其比作“Senior Engineer 盯着 Junior Engineer 写代码”,它使得模型的训练成本降低了十几倍(因为所需的试错步数大幅减少),同时避免了灾难性遗忘。
总结¶
在策略蒸馏(OPD)是目前打通“模仿学习(SFT)”与“试错学习(RL)”的最佳桥梁。它不是一个单一的新算法,而是一个组合框架,将“教师指导(Knowledge Distillation)”作为连续且密集的奖励(以 KL 惩罚项的形式),叠加在一切 On-policy RL 框架(如 GRPO)之上。这一策略正从学术界的论文走向 DeepSeek、Qwen、Meta 等公司的工程实践核心。
OPD 相对于 RL 的优势¶
在当今的大模型训练中,OPD 的底层优化器就是 RL。 换句话说,OPD 是把 RL 作为工具,用来实现“知识蒸馏(Distillation)”的目的。
如果非要将两者进行对比,我们实际上是在对比 “使用强大教师模型指导的 RL(OPD / RLAIF)” 与 “传统的标准 RL(基于人类反馈的 RLHF,或基于环境规则的纯强化学习)”。
在这种语境下,OPD(教师指导的在线蒸馏)相比于传统 RL,拥有以下几个压倒性的核心优势:
1. 信号的密度与丰富度(Dense vs. Sparse)¶
传统RL(规则/环境奖励):在数学或编程任务中,模型写了 500 步的推理,最后答案错了,环境只能给一个冷冰冰的奖励 Reward = 0(这叫稀疏奖励 Sparse Reward)。
模型很难知道自己到底是第 3 步算错了,还是第 499 步写错了(信用分配问题极难)。
OPD(教师模型指导):教师模型不仅能看最终答案,还能对中间过程进行打分(Step-level Reward)。更重要的是,因为教师是一个神经网络,它可以输出概率分布(Logits)。
哪怕学生走错了一步,教师也能告诉它:“根据我的理解,你这一步选 A 的概率是 10%,选 B 的概率是 80%”。
这种软标签(Soft Signals)提供了极其密集的梯度信息,让学生模型学得更快、更稳定。
2. 彻底解决“成本与扩展性”瓶颈(Scalability)¶
传统 RLHF(人类反馈):人类标注员的速度慢、成本极高,且面对复杂的数学证明或长代码时,人类往往也看不懂,无法给出准确的偏好打分。
OPD(RLAIF):将人类替换为了 GPT-4 或 DeepSeek-R1 这样的超强教师模型。
只要有算力,教师模型可以 24 小时不间断地为学生生成的数百万条轨迹打分。这使得让小模型进行千万级别数据的强化学习成为可能,极大拓展了模型能力的上限。
3. 遏制“奖励骇客(Reward Hacking)”现象¶
纯粹的RL:模型非常聪明,如果目标仅仅是“让判题系统通过”,它会去寻找规则的漏洞。例如,在代码生成中插入不可见的特殊字符骗过评测机,或者生成无意义的废话加上一个正确的最终答案。
OPD(蒸馏约束):在OPD中,奖励是由教师模型给出的。教师模型不仅看结果,还会评价过程的逻辑连贯性、语言格式等。由于教师模型本身具有人类的偏好和极高的语言素养,它能有效遏制学生模型通过“走捷径”来骗取高分的行为。
此外,OPD 通常会在损失函数中保留对教师分布的 KL 约束,强制学生的行为不仅要“做对”,还要“像个正常聪明的 AI”。
4. 优化空间的平滑性(数学视角的优势)¶
纯 RL 视角:标准的 RL(如玩 Atari 游戏)是在一个未知的环境中盲目试错,方差(Variance)极大,模型很容易在早期训练中彻底崩溃。
OPD视角:由于有教师策略的存在,哪怕在学生模型表现极差的时候,教师也能提供一个明确的“引导方向”(Reference Policy)。
这相当于在茫茫黑夜中给了学生一个指南针,极大地降低了策略梯度的方差,使得整个训练过程的收敛速度和稳定性远优于纯粹的从零开始的 RL。
5. 跨越模态或特定领域的能力对齐¶
纯 RL 只能优化那些“有明确客观标准”的任务(比如数学答案、代码通过率)。但对于开放域问答、创意写作、同理心对话等“没有绝对正确答案”的任务,纯规则 RL 无能为力。
OPD 通过提炼强大教师模型的隐式知识(Implicit Knowledge)可以将大模型在这些主观领域的优秀品味(Tone、Style、Helpfulness)完美地传递给小模型。
VeRL 方案¶
在 VERL (Volcano Engine Reinforcement Learning) 框架下,基于已有的 GRPO (Group Relative Policy Optimization) 代码实现 OPD(On-Policy Distillation,在线策略蒸馏)是一个非常自然且高效的扩展。
最近,VERL 官方和学术界(如清华、思考机器 Thinking Machines)都在探索这一方向(也常被称为 GKD)。OPD 的核心思想是:让 Student(Actor)生成 Rollout(当前策略的轨迹),然后让一个更强大的 Teacher 模型对这些自生成的轨迹逐 Token 进行打分(提供 Logprobs 或 Top-K 概率),最后将 Teacher 与 Student 的分布差异(如 KL 散度)作为额外的 Loss 或是 Advantage 加入到 GRPO 更新中。
以下是具体的接入步骤和代码实现示例。
在原有 GRPO 的 Actor-Rollout-Critic/Reward 架构中,我们需要引入 Teacher Worker。 整个流程(Synchronous OPD)变为:
- Rollout: Student(Actor)生成 N 条回答。
- Reward: 原有 Reward 模型计算环境/规则奖励,用于 GRPO 的 Advantage 计算。
- Teacher Inference: Teacher 模型(通常更大,可部署在独立的 Ray 节点或离线 vLLM 实例中)针对 Student 生成的 Token 进行 Forward 传播,计算并返回 teacher_logprobs。
- Actor Update: 在 Actor 的 PPO/GRPO Loss 中,新增 OPD 散度 Loss(如 Reverse-KL)。
verl 超参¶
这组配置本质上是 “纯 PG-OPD(k1)”,不是 GKD/top-k 蒸馏。
也就是:在学生自己采样到的 token 上,用 k1 = log π_student - log π_teacher 估计反向 KL,再把 -k1 当 advantage 走 PPO clipped policy loss。
参数逐个看:
-
loss_mode: k1
作用:单样本反向 KL 估计器(论文/文档里的 PG OPD 典型配置)。
效果:计算便宜、on-policy 对齐好,但方差相对大,单 token 值可正可负。 -
use_policy_gradient: True
作用:启用 PG OPD 路径(advantages = -distillation_losses.detach())。
效果:蒸馏信号通过 PPO policy gradient 更新,而不是直接监督回传。 -
policy_loss_mode: vanilla
作用:PPO vanilla clipped objective。
备注:当前 OPD 这块只支持vanilla。 -
clip_ratio / clip_ratio_low / clip_ratio_high = 0.2
作用:PPO 比率裁剪区间。这里等价于对称区间[0.8, 1.2]。
效果:更新更稳但步子偏保守;放大上界/下界会更激进、也更容易震荡。 -
loss_max_clamp: 10.0
作用:先把每 token distill loss 裁到[-10, 10],再进 PG。
效果:抑制离群梯度、降低方差;过小会欠学习,过大稳定性变差。 -
use_task_rewards: False
作用:关闭任务奖励 PPO 分支。
效果:训练目标变成“只学老师分布”,不直接优化环境/任务 reward。 -
distillation_loss_coef: 1.0
作用:仅在use_task_rewards=True时用于混合权重。
你当前配置里基本不生效(因为 task reward 已关闭)。 -
topk: 64
作用:只对forward_kl_topk这类 top-k 蒸馏生效。
你现在k1模式下基本不生效。 -
log_prob_min_clamp: -10.0
作用:主要用于 top-k forward KL 计算的 logprob 下限裁剪。
你现在k1估计器路径里通常也不生效。 -
_target_: DistillationLossConfig
只是 Hydra/配置系统里的类型声明,不是优化超参。
一句话总结:你现在这套是“老师引导的 PPO(仅蒸馏奖励)”,核心有效旋钮主要是 k1 + use_policy_gradient + clip_* + loss_max_clamp;topk/log_prob_min_clamp/distillation_loss_coef 在这组开关下基本是闲置项。
参考:
- OPD 实现与参数文档:docs/algo/opd.md
- 配置定义:verl/workers/config/distillation.py
- loss 逻辑:verl/trainer/distillation/losses.py
- PPO clipped objective:verl/trainer/ppo/core_algos.py
- 论文(GKD/OPD):On-Policy Distillation of Language Models (arXiv:2306.13649)
最新研究¶
SFT+OPD+GRPO¶
Beyond GRPO and On-Policy Distillation: An Empirical Sparse-to-Dense Reward Principle for Language-Model Post-Training
MetaLLM 后训练GRPO On-Policy 蒸馏奖励密度稀疏到稠密
- 前序问题:在「可验证标注极其稀缺」的后训练场景下,主流做法(在部署模型本身上跑 GRPO)忽视了一个奖励密度原则:稀疏的序列级奖励应该用在能产生有效探索的强模型上、稠密的 token 级奖励才适合把行为压缩进小模型,这一直觉对生成模型的 RL 对齐同样关键
- 本文贡献:提出 Sparse-to-Dense 奖励分配原则:把宝贵的可验证数据先「上游」给强 teacher 跑 GRPO 做探索,再以稠密蒸馏的形式「下游」灌给小学生,最后在学生侧再补一段稀疏 RL;具体配方为 forward-KL warmup → OPD on-policy → 学生侧 GRPO 的三段桥
- 实验效果:在 Qwen3-1.7B 学生固定的前提下,先在 8B teacher 上 RL 再蒸馏全面优于直接在学生上 GRPO;学生侧后续 GRPO 把 MATH 从 75.4% 提升到 78.5%、比 replay baseline 高 2.8 分,AIME 端点也最强
- 批判点评:「奖励密度」的视角让 GRPO 与 OPD 不再对立而成同一光谱的两端,对资源紧张团队的实践指导价值很高;但结论建立在数学这一可验证任务上,对图像/多模态生成等弱验证任务能否平移仍待验证
OPD失效原因¶
https://arxiv.org/pdf/2604.13016
核心观点:
- OPD成功取决于师生"思维模式一致性"与教师"真正的新知识",核心机制是高概率重叠 token(承载 97%–99% 概率质量)上的渐进对齐。
- 更强的教师有时完全无法提升学生,而更弱的教师反而能成功;
论文里的应对方案:off-policy cold start 和 teacher-aligned prompt selection。
OPD in DiT-Models¶
多教师 OPD 来整合不同领域专家模型的能力,相比混合奖励强化学习收敛更快、效果更好。
DeepSeek-V4 和 GLM5 等模型成功启发了我们进行一种另外的尝试:多教师 OPD 合版。通过学生模型的在线 rollout 和教师模型的稠密奖励巧妙解决了多任务的梯度冲突。
在流匹配模型的后训练对齐中,核心问题在于模型无法同时兼顾多个异构的对齐任务,陷入了严重的「跷跷板效应」。猛犸模型的danceGRPO就遇到了
单奖励 GRPO 虽然能在孤立的单目标任务中让模型逼近性能天花板,但会导致非目标领域的对齐能力发生严重退化,引发「奖励黑客」行为,如上图所示,使用 GenEval 进行强化学习训练的模型无法成功完成文字渲染和风格化生成任务;
混合奖励 GRPO 试图通过简单堆叠或混合多个标量奖励函数来进行联合优化,却根本无法建立稳定的认知基础,每当引入新的奖励信号时,就会引发此前已习得能力的灾难性遗忘与参数吞噬。如下表所示,每当有新的奖励模型加入训练,模型进行基础视觉生成和文本渲染的能力都会下降。
联合多任务 RL (Joint Multi-Task Optimization) :使用现有的 RL 算法例如 DiffusionNFT, GRPO 去联合优化多个任务。这种范式会撞上两个问题: 1 奖励冲突:不同任务的优化⽅向往往存在相互干扰; 2 任务失衡:简单任务会主导训练过程,导致复杂任务难以充分学习。
级联 RL (Cascade RL):按阶段依次训练不同任务。虽然能够缓解任务冲突,但是训练流程复杂,需要分别调整各阶段的超参数与训练策略,而且容易产生灾难性遗忘,后续任务训练的时候会削弱已有能力。
Flow-OPD1 的训练框架如上图所示:
- 首先通过单奖励 GRPO 培养对应任务的教师;
- 对学生模型进行冷启动,这里包含两种冷启动策略,分别是监督微调 SFT 和模型融合。冷启动赋予了较高的初始表现,可以促使学生模仿教师的生成模式,从而快速收敛;
- 多教师 OPD 蒸馏:Flow-OPD 的核心思想是让学生模型通过「实践」暴露自身的错误与偏差,并在自己生成的图像路径上,实时接受不同专家教师的精准指引。
DiffusionOPD2 的核心思路,是先针对不同任务分别训练各自的「专家教师」模型;随后,再通过在线策略蒸馏,将这些教师模型的能力统一蒸馏到同一个学生模型中,实现多任务能力整合。最终,一个统一的 student model 便能够同时兼顾构图、OCR、美学等多项能力。
近期还有几条强相关路线
- D-OPSD:面向 few-step 扩散模型的 on-policy self-distill(不依赖外部奖励器)。
- AnyFlow:视频生成方向的 on-policy flow-map distillation(any-step)。
- CollectionLoRA:多教师 OPD,把多效果 LoRA 蒸到一个 LoRA(编辑场景)。
- RTDMD(严格说不是纯 OPD):把 DMD + GRPO 融合,论文里报告很强,工程化也比较完整。

