核心判断
这篇论文最重要的贡献不是提出一个新的训练算法,而是提出了一个很清楚的诊断框架:把 teacher 在每个 token 上给出的蒸馏梯度,和“真正能提高 student 最终成功率”的 ideal gradient 做方向比较。
一句话:OPD 的问题不是没有 dense signal,而是 dense signal 太混杂。teacher 可能在纠正推理错误,也可能只是在教风格,甚至可能把 student 推向失败分支。
它回答什么
某个 teacher/context 在某个 token 上是否真的帮助 student 更可能答对。
它不是什么
不是直接可部署的低成本训练方法;它主要是离线诊断和研究工具。
最有用结论
错误 rollout 上蒸馏信号更可靠;正确 rollout 上很多 teacher 分歧只是风格噪声。
Source Map:读了什么,怎么核验
主源
arXiv HTML 与 PDF:2605.10889v1。PDF 元数据核验显示题名、作者、页数均匹配:23 页,作者为 Mohammadreza Armandpour 等。
辅助源
Hugging Face paper page 用于确认论文摘要和社区页信息;最终技术解读以 arXiv 正文和 PDF 为准。
本地沉淀
Obsidian PaperNotes 已同步:26-05-13 Unmasking On-Policy Distillation.md。
核验边界
本报告解读的是 arXiv v1。论文没有展示用该诊断框架直接训练后的新 benchmark SOTA,因此不能把它当作完整训练 recipe 评估。
1. 论文在解决什么问题?
On-policy distillation 的吸引力很明确:student 先在自己的当前策略下生成 rollout,然后 teacher 在 student 自己访问到的状态上给逐 token 分布监督。这样它同时具备两个优点:
- On-policy:训练状态来自 student 自己,降低 off-policy SFT / teacher-forcing 的分布错位。
- Dense signal:teacher 对每个 token 都能给概率分布,比 RL 只有最终对错 reward 更密集。
但 dense token-level supervision 有一个被低估的问题:teacher 和 student 在某个 token 上不一致,并不代表 teacher 正在纠正推理错误。它可能只是偏好另一种格式、符号或表达方式。
标准蒸馏 loss 通常把所有 teacher-student disagreement 都当成训练信号。于是“把 four 改成 4”和“把 3 + 4 改成 3 x 4”都会产生梯度,但前者多半只是风格,后者才影响最终答案。
所以论文真正关心的是:teacher 的 token-level signal 是否和最终成功率有关?这件事不能只看 teacher 概率本身,因为 teacher 很自信也可能自信地推向失败分支。
2. 术语表
| 术语 | 含义 | 为什么重要 |
|---|---|---|
| OPD | On-policy distillation。student 先生成自己的 rollout,再由 teacher 在这些 rollout 上提供 token-level 监督。 | 减少训练 / 推理分布错位,同时保留 dense supervision。 |
| Self-distillation | 同一模型在不同上下文下扮演 student 和 teacher;teacher 看到正确示范等 privileged context。 | 避免外部大模型,但 context 设计会强烈影响信号质量。 |
| Generation tree | 多条 student rollout 共享前缀合并成树,节点是 token 前缀,边是 next-token choice。 | 把 token 选择和最终答案是否正确连接起来。 |
P_succ^k | 在节点 u 选择 token k 后,最终答对的经验概率。 | 定义 ideal gradient 的关键变量。 |
| Ideal gradient | 最大化 student 从当前节点继续生成并答对的 logit 更新方向。 | 作为 teacher distillation gradient 的 oracle 参照。 |
| Gradient alignment | cos(g_ideal, g_distill)。 | 判断 teacher signal 是帮助、无关,还是有害。 |
| Comprehensibility | teacher signal 是否处于 student 能理解的 reasoning style / context 范围内。 | 解释小模型为什么不一定适合更强外部 teacher。 |
3. 方法机制:从 rollout 到梯度对齐
3.1 用 P_succ 定义“真正应该学什么”
对某个节点 u,student 有一组候选 next token。论文估计每个 token 对应的下游成功率:
然后定义当前节点的 ideal objective:
这个式子就是 student 当前 token 分布下的 expected success。最大化它,就等价于把概率质量从低成功率 token 挪到高成功率 token。
3.2 Ideal per-node gradient 的直觉
对 logit z_j 求导后,论文得到:
其中 P̄succ = ∑k Pθk · Psucck。这个公式的含义很直接:
- 如果 token
j的成功率高于平均值,就提高它的 logit。 - 如果 token
j的成功率低于平均值,就降低它的 logit。 - 前面的
P_theta^j表示 student 本来几乎不会选的 token,单步梯度也很小。
这说明 distillation 更擅长放大学生已经有一点概率的正确方向,而不是从零注入完全陌生的 reasoning path。这也是“小模型不一定学得动强 teacher”的机制解释之一。
3.3 Dr. GRPO / GKD / MiniLLM 的共同结构
论文推导出一个统一形式:Dr. GRPO、GKD、single-sample GKD estimator、MiniLLM 都可以写成类似的局部 logit 梯度结构:
区别只在于 f_j 来自哪里:
| 方法 | f_j 的含义 | 训练信号来源 |
|---|---|---|
| Dr. GRPO / ideal reference | P_succ^j | 下游成功概率 / outcome reward |
| GKD | student-teacher log probability ratio | teacher token distribution |
| Single-sample GKD | 采样 token 上的 importance-weighted estimator | 只需 sampled token 的 teacher/student logprob |
| MiniLLM | trajectory-dependent reward-to-go | 后续 token 的 teacher/student logprob 累积 |
这个统一形式让论文可以直接比较 reward-based ideal gradient 和 distillation gradient 的方向。
3.4 Gradient alignment score
Align < 0
teacher gradient 把 student 推向更低成功率 token,是有害信号。
Align ≈ 0
teacher disagreement 与成功率无关,常见于风格、格式或低 stakes token。
Align > 0
teacher gradient 与提高成功率的 ideal gradient 同向,是有帮助的蒸馏信号。
4. Targeted-rollout:怎样把 P_succ 算得起
难点是估计 P_succ^k 很贵:vocab 可能有 150K,序列可能从几百 token 到几万 token。论文没有穷举所有 token,而是做 targeted enrichment。
- 每个问题先采样
G = 200条 student initial rollouts。 - 构建 generation tree,找 branching nodes。
- 优先补采 teacher-student 分歧大、GKD 梯度幅度大的 token。
- 对访问不足的 token,强制构造
prompt + prefix_to_u + token_k,再让 student 继续生成到结束。 - 一次 targeted rollout 会同时丰富目标节点、祖先节点和后续节点。
- 按指数深度窗口分配预算,例如
1-50、51-150、151-350。 - 所有 teacher 共享同一棵 enriched tree,因为
P_succ只依赖 student rollout 和最终 outcome。
| 项目 | 论文设置 | 含义 |
|---|---|---|
| 重要 token 条件 | P_theta^k > 0.02 或 P_teacher^k > 0.02 | 只关注能实际影响梯度的 token。 |
| 补采目标 | N_min = 100 visits | 每个重要 token 尽量补到 100 次访问。 |
| 主实验保留条件 | N_sig = 20 visits per child | BoolQ / MMLU 上用于保留统计可靠节点。 |
| AIME 保留条件 | N_sig = 40 | 长链数学更稀疏,所以要求更高访问数。 |
| 计算规模 | 每问题约 45K-200K targeted rollouts | 说明它主要是离线诊断,不是便宜在线训练信号。 |
| 总计算 | 约 72 A100-days | 全实验套件计算成本较高。 |
5. 评估设置:到底评的是什么?
5.1 Student 和 teacher
论文评估两个 student scale:Qwen3-0.6B 和 Qwen3-1.7B。每个 student 搭配 8 种 teacher/context 配置。
| 类别 | 配置 | 解释 |
|---|---|---|
| Self | Self-1C | 同一模型作为 teacher,但上下文放 1 个正确解答。 |
| Self | Self-Sum-1C | 正确解答先由 Qwen3-32B 摘要成关键步骤。 |
| Self | Self-1C1W | 放 1 个正确示范 + 1 个错误示范,并提示错误不要模仿。 |
| Self | Self-Sum-1C1W | 正确和错误示范都先摘要化。 |
| Self | Self-1C (32B) | 正确示范由 Qwen3-32B 生成,再给 student-as-teacher 看。 |
| External | Qwen3-4B / 8B / 14B | 外部大模型 teacher,与 student 使用同样 prompt。 |
5.2 Benchmark
| 数据集 | 任务类型 | 输入 / 输出 | 这里评估什么 |
|---|---|---|---|
| BoolQ | 阅读理解 True/False | 输入问题和上下文,输出布尔答案,推理链较短。 | 短链 reasoning 下 teacher gradient 是否对齐成功方向。 |
| MMLU | 多选知识问答 | 输入题目和选项,输出 A/B/C/D,推理链中等。 | 知识与中等推理链场景下的 alignment。 |
| AIME 2025 | 数学竞赛题 | 长链数学推理,输出数值答案。 | 只做 4 道题 case study,观察 5K-30K token 长链是否有相同规律。 |
5.3 指标
| 指标 | 怎么算 | 怎么读 |
|---|---|---|
| Mean cosine | 每个 branching node 上计算 cos(g_ideal, g_distill) 后聚合。 | 越高说明 teacher 越常把 student 推向成功 token。 |
| Fraction positive | alignment 大于 0 的 decision points 比例。 | 高于 0.5 表示超过一半 token 位置上 teacher 信号有帮助。 |
| Weighted cosine (SR range) | 用分支成功率差距给 cosine 加权。 | 更重视 token 选择真正影响最终成败的高 stakes 节点。 |
| Teacher advantage | E_teacher[P_succ] - E_student[P_succ] | teacher 分布本身是否比 student 更偏向成功 token。 |
6. 关键结果
6.1 错误 rollout 上蒸馏信号更可靠
这是论文最稳定、也最有训练启发的结论:最终答错的路径上,teacher gradient 与 ideal gradient 的 alignment 更高。
| Setting | Metric | Correct | Incorrect | 解读 |
|---|---|---|---|---|
| 0.6B BoolQ | Mean cosine | 0.011 | 0.044 | 错误路径约 4 倍更高。 |
| 1.7B BoolQ | Mean cosine | 0.001 | 0.058 | 正确路径几乎没有有用方向。 |
| 0.6B MMLU | Mean cosine | 0.009 | 0.048 | 错误路径更适合纠偏。 |
| 1.7B MMLU | Mean cosine | 0.012 | 0.028 | mean gap 不显著,但关键节点仍显著。 |
| 0.6B BoolQ | Weighted cosine | 0.046 | 0.110 | 高 stakes 节点差距更明显。 |
| 1.7B BoolQ | Weighted cosine | 0.010 | 0.093 | teacher 对错误轨迹的纠偏最强。 |
| 0.6B MMLU | Weighted cosine | 0.021 | 0.118 | 高 stakes 错误节点信号很强。 |
| 1.7B MMLU | Weighted cosine | 0.034 | 0.098 | 关键节点上错误路径优势仍成立。 |
训练含义:OPD 更应该像修错机制,而不是对所有 rollout 做无差别 teacher imitation。failed rollouts、high-stakes branching nodes 应该得到更大权重。
6.2 最佳 teacher 取决于 student 容量
| Teacher | 0.6B BoolQ | 0.6B MMLU | 1.7B BoolQ | 1.7B MMLU |
|---|---|---|---|---|
| Self-1C | 0.047 | 0.040 | 0.028 | 0.010 |
| Self-1C (32B) | 0.047 | 0.052 | 0.020 | 0.021 |
| Self-Sum-1C | 0.041 | 0.047 | 0.050 | 0.036 |
| Self-Sum-1C1W | 0.016 | 0.037 | 0.008 | 0.034 |
| Self-1C1W | 0.019 | 0.027 | 0.002 | 0.009 |
| Qwen3-14B | 0.016 | 0.015 | 0.036 | 0.017 |
| Qwen3-8B | 0.018 | 0.011 | 0.053 | 0.014 |
| Qwen3-4B | 0.018 | 0.000 | 0.040 | 0.017 |
0.6B 上,Self-1C / Self-Sum-1C / Self-1C(32B) 明显优于外部大 teacher。1.7B BoolQ 上,Qwen3-8B 开始领先。这支持论文的 comprehensibility 假说:teacher signal 不只要强,还要处于 student 能理解的区域内。
6.3 错误示范不是总有用
BoolQ / MMLU 上,1 correct + 1 wrong 通常比只放正确示范差,说明错误示范在短链任务中常常是噪声。但 AIME case study 给出反例:在更难的数学题上,Self-1C1W 在 Q3 和 Q28 上成为最好 teacher。
短推理任务
错误示范常常干扰上下文,让 student 看到不该模仿的路径,alignment 下降。
复杂数学任务
常见错误可能提供可理解的 contrastive signal,帮助 student 避免具体陷阱。
6.4 Oracle selective distillation 的上限很高
如果训练时能神谕式知道哪些 token alignment 为正,只蒸馏这些 token,保留约一半 token 就能让 mean signal 提升约 10-15 倍。
| Setting | Full GKD | Selective t=0 | 保留 token |
|---|---|---|---|
| 0.6B BoolQ | 0.007 | 0.070 | 51.6% |
| 1.7B BoolQ | 0.006 | 0.093 | 51.6% |
| 0.6B MMLU | 0.005 | 0.057 | 51.7% |
| 1.7B MMLU | 0.006 | 0.077 | 51.2% |
这不是可直接训练的结果,因为真实训练不知道 alignment。但它说明 OPD 的损失里存在大量可以被过滤掉的无效或有害 token。
7. 这些结果真正说明什么?
Dense 不等于 clean
token-level supervision 很密,但里面混着纠错、风格、格式和有害 teacher preference。平均蒸馏会把这些信号全部吃进去。
蒸馏更像修错
错误 rollout 上 teacher 更可能提供和成功方向一致的纠偏;正确 rollout 上很多 teacher 差异只是模仿风格。
强 teacher 不一定好
小 student 如果看不懂大 teacher 的 reasoning style,外部强 teacher 反而不如 self-demo。
context 需要按任务选
summary、wrong demo、external teacher 是否有用,都取决于 student 容量和任务难度。
8. 局限与失败模式
- 不是直接训练算法:每个问题需要大量 targeted rollouts,更适合离线诊断。
- 只覆盖采样到的局部空间:没被 student 或 targeted enrichment 访问到的 token 不能评估。
- 依赖明确 verifier:BoolQ、MMLU、AIME 都有最终答案;开放式对话和 agentic tasks 的 success 更难定义。
- 局部梯度不等于完整训练动态:真实训练还会受 optimizer、KL、数据混合、学习率和非线性迁移影响。
- AIME 只是 case study:4 道题能说明趋势,但不能当完整数学 benchmark 结论。
9. 我的 Insight
我认为这篇论文的长期价值在于:它把 OPD 从 recipe 层面的经验问题,推进到 token-level credit assignment 问题。它提醒我们,后训练不是“teacher 越强、token supervision 越密越好”,而是要问每个训练信号是否真的能改变最终成功率。
9.1 OPD 应该少做全面模仿,多做失败修复
正确 rollout 上继续模仿 teacher,经常是在教风格。错误 rollout 上 teacher 才更像 repair signal。实际训练里,我会优先尝试 failed rollout upweighting,而不是对所有生成 token 平均做 KL。
9.2 可理解性比 teacher 强度更关键
0.6B 更适合看自己风格的正确示范,而不是看 8B/14B 的外部 teacher。这说明小模型蒸馏应该先控制 reasoning style、步骤粒度、上下文长度,再谈 teacher scale。
9.3 Divergence filter 只能做粗筛
KL / JS divergence 的方向稳定但相关很弱。它能过滤掉“teacher 和 student 几乎一样”的 token,但不能判断高分歧是纠错还是误导。更有潜力的是学习一个近似 P_succ 的 lightweight gate。
9.4 对 long-horizon agent 更有启发
长周期 agent 的 teacher signal 更混杂:工具选择、错误恢复、探索路径、格式偏好、状态解释都会缠在一起。如果全量蒸馏,噪声会比数学题更严重。这篇论文给了一个很好的诊断方向:用小规模 targeted rollouts 或 value proxy 判断哪些动作/token 真正影响任务成功。
10. 实践建议
- 先按 outcome 切分 rollout:failed rollout 的 OPD 权重应高于 successful rollout。
- 降低 correct rollout 的全 token imitation:只在 high-stakes 或 high-divergence token 上蒸馏。
- 对小模型优先 self-demo / intermediate teacher:不要默认强 teacher 最好。
- context 设计做任务级选择:summary 适合较大模型和简单可压缩推理;复杂数学可能需要完整 trace。
- wrong demo 谨慎使用:短任务容易变噪声,难任务可能提供有价值反例。
- 把 divergence 当 cheap filter,而非 judge:低 divergence 可跳过,高 divergence 仍需 value / verifier / rollout 近似判断。