On-Policy Distillation 解读:蒸馏小模型不翻车
On-policy distillation 让学生在自己的轨迹上向老师学习。五篇 2026 论文讲清如何稳住它、砍到 5% token,并用于投机解码与文生图。
On-policy distillation 到底是什么
传统知识蒸馏让学生在一份固定数据集上模仿大老师,这是 off-policy:学生学的是它从没生成过的文本。**On-policy distillation(OPD)**把数据来源换掉了:学生自己采样,老师对学生实际产出的每个 token 打分。目标函数仍是 KL 散度,把学生的分布推向老师,但上下文是学生自己的轨迹,而不是现成语料。
好处是学生能学会从自己的错误中恢复,而且是在推理时真正会遇到的状态分布上学习。代价是这些错误恰好打出最凶的梯度。本指南收录的五篇论文,本质上都是对这同一个问题的不同回答。
OPD 处在蒸馏和 RL 的交界处,但两者都不是。On the Geometry of On-Policy Distillation在相同设置下对比了 OPD、SFT 和 RLVR 的参数空间足迹,发现 OPD 落在 SFT–RLVR 连线之外:它的更新触及的权重比 SFT 少,更强烈地避开主方向,并且训练早期就锁定在一个低维子空间里。把后续更新约束在那个早期子空间内,OPD 性能不受影响,SFT 在同样约束下明显退化。所以「OPD 是加了 RL 味的 SFT」是错的,它有自己的更新动力学。
工作原理
训练循环三步,反复迭代:
- 采样(rollout):学生从提示词生成续写;在非语言场景里则是它自己的去噪轨迹或草稿状态。
- 打分:老师在同样的位置上给出逐 token 的分布。标准 OPD 最小化 reverse KL,狠狠地推学生去老师的最大概率 token,这正是难位置容易爆炸的原因。
- 更新:每个 token 都有梯度,包括学生已经严重偏离老师的位置。下面两类失败就从这里来。
第一类是梯度信任问题:当学生生成了老师认为极不可能的 token,reverse-KL 恰好在学生最弱的地方放出大而嘈杂的梯度,OPD 就在推理最依赖的探索性 token 上失稳。第二类是分布失配问题:即使梯度本身行为良好,学生推理时访问的状态可能根本没在离线训练数据里出现过:草稿模型从没见过自己被拒的提案,文生图模型从没到过多奖励冲突下产生的状态。下面四篇方法论文分别攻打其中一类。
信任问题:TrOPD 对 TA-OPD
两篇论文问的是同一个问题:哪些 token 上应该允许老师主导更新?答案却不同。
TrOPD(信任域 on-policy distillation)用硬门控。每个 token 算一个信任比率:老师概率除以学生概率,截断在 1。信任域内(老师概率不低于学生)走标准 OPD;域外把不稳定的 reverse-KL 梯度换成老师对 top-k 词表的 forward-KL 目标,另加一个很小的 off-policy 预热(beta = 0.001,退火到零)让学生模仿老师写的前缀。结果跨设置稳定:单域数学平均 +3.06(49.85 对 OPD 的 46.79,AIME 2024 为 38.54 对 35.83);DeepSeek-Qwen-1.5B 学生多域 +3.52(40.63 对 37.11,GPQA 从 28.03 跳到 36.24);Qwen3-SFT-1.7B 学生 +3.44。它击败了作者测试的全部三个基线:OPD、EOPD、REOPOLD。
Token Teachability用更软的筛选,并配了一个诊断实验。作者把逐 token 的分歧拆成两部分:可学分歧,即老师概率落在学生 top-K 候选内、一步之内能吸收的修正;不兼容分歧,即落在支持集之外,把 KL 数字推高却给不出可用梯度。TA-OPD 按可教性得分(归一化分歧 × 归一化兼容性)只监督排前列的 token。在 10% 监督预算下,Qwen3-4B 教 Qwen3-1.7B 的六基准平均比全 token OPD 高 +2.52(44.89 对 42.37);Qwen3-8B-GRPO 教 Qwen3-4B 高 +3.16(56.87 对 53.71)。在 8B→4B 这组上,5% 预算拿到 57.35,反而赢了 10%、30%、50% 的预算。
两篇从没在同一实验里比过。TrOPD 的收益来自在不可信 token 上换目标函数,TA-OPD 的收益来自跳过没有可学信号的 token,两者兼容,但没有一篇论文测过组合效果。TA-OPD 自己的消融还显示,把熵混进筛选器反而掉分(42.32 对纯净的 44.89),所以筛选器怎么组合并不显然。
还要提醒一句:TA-OPD 明说、TrOPD 摘要轻描淡写:这些是监督预算,不是加速比。老师和学生仍要对整条序列跑前向,5% 的 token 预算不等于 20 倍训练提速。
失配问题:Draft-OPD 与 Flow-OPD
第二组修复针对训练数据与推理状态结构性错配的场景。
Draft-OPD把 OPD 用到投机解码上。草稿模型通常拿目标模型的转写文本做 SFT,这是离线数据,永远看不到草稿一旦开始自回归提案后实际会进入的状态,所以接受长度触顶:草稿擅长预测目标的文本,却不擅长从自己被拒的提案中恢复。Draft-OPD 用真实的投机解码过程收集目标辅助 rollout,从每个锚点位置重放草稿过程(含被拒 token),用非对称 KL 训练:接受的 token 走 forward KL,被拒的走 reverse KL,并加权强调块内早期的拒绝。在 Qwen3 thinking 模型上,Qwen3-4B 加速 4.86x、Qwen3-8B 加速 4.89x,对比 EAGLE-3 的 3.87x / 4.06x 和 DFlash 的 4.33x / 4.34x,同算力下比 EAGLE-3 高约 23%、比 DFlash 高约 13%,且解码无损。
Flow-OPD把 OPD 用到文生图模型,那里对应的失败模式是奖励冲突。对 Stable Diffusion 3.5 直接跑多奖励求和的 GRPO,目标会互相打架:推 OCR 拉低图文对齐,推美学又招来 reward hacking。Flow-OPD 为每个奖励单独训一个 GRPO 专家老师,再 on-policy 蒸馏进一个学生。学生生成自己的去噪轨迹,各老师在每个时间步对预测的速度场给出稠密监督,比只在生成结束时才到的标量奖励信息量大得多。再用 Manifold Anchor Regularization(对冻结的质量老师的时序加权 L2 惩罚)把学生钉在自然图像流形上。合并后的学生 GenEval 从 0.63 升到 0.92,OCR 准确率从 0.59 升到 0.94,DeQA(4.35 对 4.07)和 PickScore(23.08 对 21.64)不降反升;组合奖励曲线上学生到约 93,而多奖励 GRPO 在 79 附近早停。
关键数字
| 领域 | 方法 | 代表数字 | 击败的基线 | 出处 |
|---|---|---|---|---|
| LLM 推理 | TrOPD | 比 OPD 高 +3.06 ~ +3.52 平均 | OPD、EOPD、REOPOLD | TrOPD |
| LLM 推理 | TA-OPD | 10% 预算 +2.52 平均;8B→4B 上 5% 预算最佳 | 全 token OPD、熵筛选、TIP | Token Teachability |
| 投机解码 | Draft-OPD | 加速 4.86x / 4.89x | EAGLE-3 3.87x / 4.06x;DFlash 4.33x / 4.34x | Draft-OPD |
| 文生图 flow | Flow-OPD | GenEval 0.63→0.92,OCR 0.59→0.94 | 多奖励 GRPO 组合奖励停在约 79 | Flow-OPD |
| 诊断 | OPD 几何 | 子空间锁定:早期低维通道功能上充分 | 同样约束下 SFT 明显退化 | Geometry |
这张表藏着几条跨论文的提醒。TrOPD 和 TA-OPD 两行来自不同的实验设置(学生不同:DeepSeek-Qwen2.5-1.5B 对 Qwen3-1.7B;老师不同;基准不同),所以两边各约 +3 的边际不能互相比,只能各自和自己的基线比。TA-OPD 的 14B→4B 结果是平局(54.65 对 54.64),说明师生差距收窄时可教性边际会缩没。Draft-OPD 的加速是在 Qwen3 thinking 模型、温度 0 下测的;标题里的「破 5x」跨基准和模式聚合,所以上表里的分模型数字才是更干净的对比。
几何发现对实践者的含义
几何研究没提新方法,但会改变你读另外四篇的方式。OPD 的累积更新在训练早期就进入一个窄的低维子空间并待在里面;稀疏化被更新的 token 不扰动它,把 rollout 换 off-policy 也不扰动;但把 OPD 目标和 RLVR 混合会扰动。两个推论:第一,TA-OPD、TrOPD 这类 token 筛选方法大概率可以和其它训练改动安全叠加;第二,流行的「先 OPD 蒸馏再 RLVR 锐化」交替配方可能付出隐性代价,因为混合本身扰动了 OPD 省样本的几何结构。论文自己没把锁定子空间变成加速方法,所以低秩 OPD 适配器目前只是假设,不是配方。
什么时候用哪个
- 把推理大老师压进小模型,且 OPD 在难 token 上不稳:先上 TrOPD。门控便宜、可解释,在 1.5B–1.7B 规模值约 3 个平均点。
- 训练本来就稳,但怀疑大部分 KL 信号是白烧的:TA-OPD式可教性筛选用一小部分 token 换来 2–3 个点。别指望省墙钟时间。
- 推理栈里跑着投机解码:Draft-OPD是对 SFT 草稿的直接升级,Qwen3 thinking 模型上比 EAGLE-3 加速高 23%,输出质量不变。
- 对文生图 flow 模型做多奖励微调:学 Flow-OPD,拆成专家老师再 on-policy 合并,别把奖励求和进一次 GRPO。
- 在 SFT、OPD、RLVR 之间从零选型:几何论文说明这不是在两个极点间拧旋钮。需要轨迹内学习选 OPD,需要精确奖励优化选 RLVR,都不需要就用 SFT。
局限与存疑
把所有五篇合在一起的诚实缺口:每个测出来的增益都在中小规模:TrOPD 的学生是 1.5B–1.7B、老师 4B–7B,TA-OPD 最大的老师是 14B,没人验证过更大规模或更宽师生差距下边际是否还在,TA-OPD 自己的 14B→4B 就是 +0.01 的平局。评测重度偏向数学和代码,多语言、对话、开放式生成几乎没碰。两个 token 筛选方法从没在同一 harness 下比较或组合。TrOPD 的收益没拆成信任掩码、域外 forward-KL、预热各占多少。几何发现在所研究的设置内稳健,但仍是相关性特征:它描述 OPD 在权重空间里怎么动,而不是它为什么泛化更好的机理。
常见问题
On-policy distillation 和 SFT、传统蒸馏有什么区别?
区别在于训练数据来自哪里。SFT 用外部固定数据集;传统蒸馏让学生模仿老师在固定数据上的输出,也是 off-policy;OPD 让学生在自己采样的轨迹上接受老师逐 token 打分。学生因此学到的是从自己错误中恢复的能力,而不是复现别人的文本。
TrOPD 的结果如何?比标准 OPD 强多少?
单域数学平均 +3.06(49.85 对 46.79,AIME 2024 为 38.54 对 35.83);DeepSeek-Qwen-1.5B 学生多域 +3.52(40.63 对 37.11);Qwen3-SFT-1.7B 学生 +3.44。作者报告的三个基线(OPD、EOPD、REOPOLD)全部被击败。
5% 的 token 预算为何能对标全 token 蒸馏?如何理解?
因为大部分逐 token 的 KL 是不兼容分歧:老师概率落在学生 top-K 候选之外,把散度推高却给不出可用梯度。只选可学的那部分(老师概率落在学生支持集内),监督就集中在一步梯度真正能吸收的位置上。在 Qwen3-8B-GRPO 教 Qwen3-4B 时,5% 预算甚至拿到 57.35,赢过 10%–50% 的所有预算。但要注意,这只是减少被监督的 token,前向计算没有省,所以训练不会同比提速。
Draft-OPD 与 EAGLE-3 的加速对比如何?
在 Qwen3-4B 上 4.86x 对 3.87x,在 Qwen3-8B 上 4.89x 对 4.06x;对 DFlash 是 4.86x 对 4.33x、4.89x 对 4.34x。平均约比 EAGLE-3 高 23%、比 DFlash 高 13%,且投机解码本身保分布,输出质量不变。
OPD 目前的主要局限是什么?
已报告的边际都在 1.5B–8B 学生规模、老师中等大小;师生差距收窄时增益可能归零(14B→4B 平局);token 筛选省的是监督预算不是墙钟时间;把 OPD 目标和 RLVR 混在一起会扰动让 OPD 高效的更新几何。这些都是选方法前该知道的边界。
一句话:OPD 有效是因为学生能从自己的错误里学习,而过去一年的工作就是逐 token 判断哪些错误老师真有资格打分。读原文:TrOPD、Token Teachability、Geometry of OPD、Draft-OPD、Flow-OPD。