On-Policy Distillation(在策略蒸馏)
让学生模型自己采样轨迹,教师模型对每一步的每个 token 给出密集监督信号(reverse KL),结合了 on-policy 训练的相关性与蒸馏的密集梯度。
是什么
On-Policy Distillation 是一种后训练(post-training)方法。它让学生模型 自己生成 rollout,然后用一个高性能教师模型 对 rollout 中的每个 token 计算 log-probability,以 reverse KL 散度作为损失:
它位于 SFT(off-policy + dense)和 RL(on-policy + sparse)的交汇点,同时拥有两者的优势。
| 方法 | 采样来源 | 奖励密度 |
|---|---|---|
| SFT / Off-policy Distillation | 教师(off-policy) | 密集(每 token) |
| RL(PPO/GRPO) | 学生(on-policy) | 稀疏(每 episode) |
| On-Policy Distillation | 学生(on-policy) | 密集(每 token) |
为什么重要
- 计算效率远超 RL:RL 每 episode 只提供 bits 信息(对/错),蒸馏提供 bits(N = token 数)。实测 self-distillation 场景下计算效率提升 50–100×。
- 避免 off-policy 的 compounding error:SFT 训练在教师分布上,学生犯错后会进入训练中未见过的状态,错误逐步放大。On-policy 训练永远在学生自身的状态分布上。
- 无需单独奖励模型:教师模型直接提供 token 级 log-prob,替代了 reward model + process reward model 的复杂管线。
- 恢复被覆盖的能力:Mid-training 注入领域知识后,用”旧版自己”做教师蒸馏,可廉价恢复指令遵循等后训练行为(IF-eval 45%→83%)。
- 数据高效复用:同一 prompt 可多 epoch 训练而不死记硬背,因为学的是教师的完整分布而非单一答案。
工作原理
训练流程
- 采样:学生模型对 prompt 生成完整轨迹(与 RL rollout 相同),记录每步的 student logprobs
- 教师评分:教师模型对同一轨迹做一次前向传播,输出 teacher logprobs
- 计算损失:逐 token 计算 reverse KL = student_logprob − teacher_logprob
- 梯度更新:以 negative reverse KL 为 advantage,使用 RL 的 importance sampling loss 更新学生
关键设计选择
- Discount factor = 0:只优化当前 token,不传播未来 token 的奖励。简化训练,允许使用不完整轨迹。
- 教师只需 forward pass:不需反向传播,大教师模型推理成本低。
- Reverse KL 是 mode-seeking:学生被推向教师的单一行为模式,而非分散到多个次优选项。
- Reverse KL “不可被 hack”:低 KL 总是对应教师视角下的高概率理想行为,不会被 reward hacking。
与 RL 的本质区别
文章提出一个重要视角:RL 的大部分算力花在”搜索”语义策略空间,而非梯度更新本身。RL 每一步随机采样已有权重的变体,靠运气”撞到”更好的策略。而 on-policy distillation 不需要建模 RL 课程中所有的中间策略——它直接学习最终的好策略。
类比:科研中花大量资源探索答案;一旦结果被发现,用自然语言教给别人就简单得多。对比之下,体育技能(肌肉记忆)难以言传,只能靠反复练习。
历史与演进
- DAGGER (2011):迭代 SFT 算法,包含教师对学生访问状态的评估——on-policy distillation 的前身
- Process Reward Modeling (2023):RL 方法,对 CoT 的每一步打分——同样是密集信号,但需要单独训练 PRM
- Agarwal et al. (2023) / Gu et al. (2023):早期 on-policy distillation 探索
- Qwen3 Technical Report (2025.05):展示 on-policy distillation 在 AIME’24 上以 1/10 RL 成本达到 74.4%——本文的直接灵感
- 本文 (2025.10):系统化研究 on-policy distillation,在 Tinker 上开源实现,覆盖推理和个性化两大场景
常见误解
- ❌ “On-policy distillation 就是 RL 的一种” → 它复用了 RL 的采样管线,但监督信号来自教师的 token 级分布匹配,而非标量奖励。信息量差 vs 。
- ❌ “蒸馏一定比 RL 信息量大,所以总是更好” → 蒸馏只能学到教师已有的策略。如果教师也不知道最优策略(如新的创意任务),RL 的探索能力不可替代。
- ❌ “在自己的样本上做 SFT 就是 on-policy” → 文章实证:即使是自己的样本,有限 batch 的随机性导致分布漂移,SFT 逐步退化为 off-policy 并退化性能。只有教师固定的 on-policy distillation 能保证收敛到教师。
- ❌ “Reverse KL = Forward KL” → Forward KL 是 mean-seeking(覆盖教师所有模式),Reverse KL 是 mode-seeking(锁定单一模式)。对蒸馏而言 mode-seeking 更合适。
与相邻概念的区别
| 概念 | 采样源 | 监督信号 | 信号密度 | 典型用途 |
|---|---|---|---|---|
| SFT | 外部数据集 | 交叉熵 | 密集 | 指令遵循初始化 |
| Off-policy Distillation | 教师采样 | 教师 logits/trajectories | 密集 | 小模型复现大模型 |
| RL (PPO/GRPO) | 学生 | 标量奖励 | 稀疏 | 对齐/推理能力激发 |
| Process Reward Model | 学生 | 逐步打分 | 密集(但需单独训练 PRM) | 推理步骤监督 |
| On-Policy Distillation | 学生 | 教师 token log-prob | 密集 | 高效后训练/持续学习 |
| DMD(分布匹配蒸馏) | 学生 | 教师 score + fake score | 密集 | 扩散/流匹配少步生成 |
| DiffRO(可微奖励优化) | 学生 | 可微判别器 token 级奖励 | 密集 | Token 级可微后训练 |
相关
- 资料摘要:On-Policy Distillation — 原始文章详细笔记
- Knowledge Distillation(知识蒸馏) — OPD 所属的蒸馏大类,Forward/Reverse KL 对比
- Policy Gradient(策略梯度) — OPD 中 reverse KL 作为 advantage 的 RL 数学基础
- verl — 支持 OPD 训练的开源 RL 后训练框架
- SFT(监督微调) — off-policy + dense 的基线方法
- RLHF(人类反馈强化学习) — on-policy + sparse 的经典方案
- PPO(近端策略优化) — RLHF 中的核心 RL 算法
- GRPO(组相对策略优化) — 去 Critic 的高效 RL 变体
- 分布匹配蒸馏(DMD) — 扩散模型领域的分布蒸馏方法
- DiffRO(可微奖励优化) — 同样追求 token 级密集信号的后训练方法
- 对齐税 — on-policy distillation 可用于恢复对齐能力
- Wiki 目录