When EOS Tokens Disagree: Understanding Length Inflation in On-Policy Distillation
Yuxiao Yang, Tianrun Yu, Shangzhe Li, Kaixiang Zhao, Xuchao Zhang, Chetan Bansal, Huaxiu Yao, Taylor W. Killian, Weitong Zhang
cs.LG
2026-09-17
base学生与post-trained老师常把停止概率放在不同EOS上,sampled-token OPD会把学生原生终止从约0.8压到接近0。把等价EOS合成一个stop动作能压住由此引起的长度膨胀。
On-policy distillation(OPD)用学生自己采样的轨迹,按 token 向老师对齐。近期多篇工作都看到学生回复越训越长,直到顶满生成预算,中间夹着重复和注水。常见解释指向 reverse-KL、熵塌缩,或轨迹越长老师监督越差。
UNC Chapel Hill、BYU 和 Microsoft 这条线指出,在 base 学生配 post-trained 老师的常见配对里,有一个更靠前、也更好修的原因:两边把「该停了」写在不同的 EOS 表面上。Qwen3 base 声明的是 <|endoftext|>,instruct 还认 <|imend|>;Llama 3.2 类似,多了 <|eotid|> 一类对话结束符。Gemma 3 的 PT 和 IT 声明的停词集已经一样,是 <eos> 和 <endofturn>,但学到的偏好仍然分家。学生几乎从不采老师爱用的那个 token,老师对学生爱用的那个 token 概率又偏低,sampled-token OPD 就会反复打压学生的原生停止动作。
主实验把 Qwen3-1.7B-Base 蒸到 Qwen3-4B(非 thinking),数据是 DAPO-Math-17K,默认 TTRL 模板要求 \boxed{}。训练最多 1024 prompt token、7168 回复 token,checkpoint 评测放到 8192。优化是 sampled-token OPD:每个学生采到的 token 拿老师与学生的 log 概率差当优势,200 step,每步 64 条轨迹,学习率 \(1\times10^{-6}\)。下游报 AIME24、AIME25、AMC23 的 Avg@16。
对照四种修法:
跨家族默认用 Fix 3,因为它不要求事先指定哪一个才是正宗 EOS。K2-Horizon-7B 提供 pretrain、midtrain、SFT 和最终 post-train 检查点,用来看终止偏好随训练阶段怎么变。
Qwen3 上,vanilla OPD 把学生原生 <|endoftext|> 的概率从训练早期大约 0.8 打到接近 0;老师偏好的 <|imend|> 在学生侧大约只有 \(10^{-11}\),几乎采不到。定性例子里,正确答案早就写完,后面 86.6%、90.7%、94.4% 的 token 是注水。Fix 1 的长度和截断曲线几乎贴着 vanilla。Fix 2、3、4 把长度和 clipping 拉回靠近老师参考线,学生原生终止概率也不再塌掉。
Gemma 3 是更干净的对照:声明停词集相同,PT 学生仍偏 <eos>,IT 老师偏 <endofturn>。语义聚合后学生能恢复停止,且不必改用老师那个表面 token。Llama 3.2 同样被压住膨胀,但相对老师参考线的残余差距最大;Qwen3 恢复最快。
K2-Horizon 上,midtrain 已经把大量概率放到老师偏好的 token 上,SFT 更接近最终老师。从这两个检查点做 vanilla OPD,没有 base 配对那种终止塌缩,Fix 3 基本是惰性的。Pretrain-to-Final 则不同:学生一开始就能采到老师那个 EOS,vanilla 也能把表面形式迁过去,但后期终止概率再次掉向 0,长度重新顶满预算。Fix 3 把这波再膨胀变缓,没有消掉。
模板会改观测到的长度和分数。DAPO 原版 grader 对 Qwen3 的 LaTeX 答案版式过敏,Qwen3-4B 老师的 Avg@16 被读成 6.28%,修解析后是 24.34%。长度膨胀不等于推理能力同比例掉。论文没把各方法的 Avg@16 收成数值表,主证据在长度、clipping 和终止概率曲线。
做 OPD 的人如果在用 Qwen、Llama、Gemma 的 base 到 instruct 配对,先查两边停止概率落在哪个 token 上,比先改目标函数更便宜。只改 generationconfig 的 eos 列表几乎白做。语义聚合改动小,跨家族可复用,实现已经公开。
这是实现层问题,不是算法层新定理。先前把膨胀归到 reverse-KL 或轨迹退化的工作并不被否定:老师学生已经对上终止时,那些机制仍然可能是主因。这篇的定位是,先把终止语义对齐,再谈算法病理。
作者自己划了三条。终止错配解释不了全部膨胀,K2-Horizon 后期再膨胀在语义对齐之后还在,机制留给以后。实验只覆盖单轮数学,多轮和 agent 里结束一轮、交工具、结束文档不是同一件事,不能打包成一个 stop。模板分析只做了 Qwen3 的三种模板和两种 grader。
主结果大量画在图上,没有给出修正后 clipping 降到百分之几、Avg@16 具体涨了多少。Llama 残余差距的原因也没有因果拆开。全词表 reverse-KL 因算力没做,只论证了就算扫全词表,学生概率权重仍会挡住那个 \(10^{-11}\) 的 token。