打破熵界:用拒绝采样让 MTP 在 RL 训练里更快
Bebop 证明 MTP 接受率在 RL 里被熵上升压住。全变差损失加拒绝采样把接受率稳在约 95%,熵斜率从 -1.68 压到 -0.06,异步 RL 最快提速 1.8 倍,精度不变。
快速答案
Bebop 是阿里 Qwen 团队的方法,用来让多 token 预测(MTP)在强化学习训练里保持快。它解决的问题是:MTP 一次草拟多个 token,本来能白送一段推理提速,但 RL 训练会推高策略的熵,而论文证明 MTP 接受率被这个熵线性压住。熵一升,草稿 token 被拒得更频繁,提速就衰减。Bebop 用两步对付它,这两步必须分开看。第一,用拒绝采样接受草稿,而不是贪心的目标端核对,这让接受率等于 1 - d_TV(p, q),平滑衰减。第二,用全变差(TV)损失训练 MTP 头,直接最小化这同一个量。两步合起来把接受率稳在约 95%(比交叉熵基线绝对高约 10%),把熵与接受率的斜率从 -1.68 压到 -0.06,折算成 Qwen3.5、Qwen3.6、Qwen3.7 上异步 RL 端到端最快提速 1.8 倍。模型精度不变,这是一个 rollout 吞吐方法,不改训练目标。
为什么 MTP 偏偏在你最需要时衰减
MTP 和投机解码让你成批拿 token:一个小头草拟接下来几个 token,主模型核对,接受的草稿就省掉一次前向。接受的连续长度是关键。稳定推理时这个长度很高。RL 里就不是了,论文把原因钉死。贪心目标端采样下接受率服从 α ≈ a - b·H(p),是策略熵 H(p) 的线性函数。RL 训练为了探索故意把熵维持得高,于是让 RL 奏效的那套动力学,恰好侵蚀了让 rollout 便宜的东西。这点要紧,是因为异步 RL 的时钟花在 rollout 生成上,不是梯度步,所以接受率掉 10% 直接就是训练速度的税。
不舒服的结论是第二个命题。你可能以为换成拒绝采样,或者用标准 KL、交叉熵损失把草稿头训得贴近目标分布,就能消掉熵依赖。并不能。CE/KL 训练出来的接受率仍然是 α ≈ a - b·H(p),斜率几乎一样,因为这些损失产生的是逐 token 均匀失配,会在高熵分布撑开的指数级有效支撑集上累积。失配没落在概率质量所在的地方。这就是标题里那个界。
两个组件,以及增益到底由谁扛
这一段要仔细读,因为标题把两个做不同事的想法绑在了一起。
拒绝采样是推理期的判定规则。不再只在草稿等于目标 argmax 时才接受,而是以 min(p(v), q(v)) 的概率接受 token v,于是无论草稿质量如何,接受后的输出可证明无偏,接受率变成 1 - d_TV(p, q)。它换来的是平滑:策略更新下接受率连续衰减,不会断崖式下跌。但它自己并不打破熵界,命题 2 已经说明。
TV 损失才是真正打破界的训练期修复。它直接最小化 d_TV(p, q) = 1 - Σ min(p(v), q(v)),正是拒绝采样在意的那个量。它的梯度有界(|∂L/∂z_j| ≤ 1),且正比于 q_j,优化力气花在概率质量真正所在的地方,产生概率正比的失配,而非 CE 的均匀失配。回报是命题 4:d_TV ≤ δ/2,与 H 无关。端到端多步版本把它沿 γ 个草稿步串起来,并给靠前的步更大权重,因为接受率是乘性叠加的。所以诚实的拆分是:拒绝采样让衰减变平滑,e2e TV 损失让接受率与熵无关。在同样的拒绝采样下把 TV 换回 CE,熵斜率就回到 -1.68(图 8)。损失才是承重的那块。
关键结果
- 接受率,Qwen3.5-35A3B(γ=3,拒绝采样): e2e TV 相对 CE 基线,把 SWE-Bench 从 75.1% 拉到 83.1%(+8.0),智能体任务从 90.3% 到 97.0%(+6.7),数学 75.0% 到 78.0%,代码 71.3% 到 74.6%。分布外的 MT-Bench 只涨 +2.3(65.3% 到 67.6%)。
- 熵不变性: RL 中接受率对熵的斜率,目标端采样和 CE 拒绝采样都是 -1.68,而 TV 拒绝采样是 -0.06,约降 95%。这就是把”打破界”落到实处的图 8 结果。
- 损失消融(同模型同数据): KL 散度比 CE 高 +0.0 到 +0.2(可忽略),反向 KL +1.0 到 +1.3,逐步 TV +2.4 到 +5.2,e2e TV +3.0 到 +8.0。排序一致:越靠近直接优化 TV,越好。
- 吞吐: 每步 RL 延迟相对无 MTP 基线降 1.5 到 1.8 倍,智能体 rollout 到 2.4 倍;接受率增益与吞吐增益相关系数 r=0.81(图 9b)。
- 端到端: Qwen3.5、Qwen3.6、Qwen3.7 上异步 RL 最快提速 1.8 倍,精度保持不变,因为拒绝采样保证输出无偏。
- 无需在线训 MTP: 从 TV 检查点出发,RL 期间继续用 CE 更新 MTP 头,会把增益侵蚀回 CE 基线;继续用 TV 则毫无增益。RL 前训好 TV 就够了,省掉在线训头的显存开销。
基线够强吗,成本会不会翻盘
对比是内部的:CE、KL、反向 KL、逐步 TV、e2e TV,都在同样的 Qwen 模型和数据上跑。这是对损失目标公平的同条件测试,而 CE 是 MTP/投机解码的标准训练目标,赢它有意义。论文没做的是跟另一类投机解码方法对打,比如 EAGLE 式的头或独立草稿模型,所以”Bebop 是最好的草拟方式”没被证明,只证了”RL 熵下 TV 是 MTP 头最好的损失”。成本上结论站得住,因为唯一的代价是 RL 前一次性的全词表 TV 训练(用融合核),没有逐步在线训 MTP,也不牺牲精度。吞吐的赢是 rollout 上真省下来的算力,而那正是异步 RL 烧时间的地方。它与同走在线蒸馏路线的草拟工作 Draft-OPD 相邻,投机解码的更多机制可看 Domino。
局限与存疑
全词表 TV 损失要融合核;top-K=20000 的近似会拖慢收敛、损害性能(图 14b),所以在超大词表上显存是实打实的约束。增益偏分布内:SWE-Bench +8.0,而分布外 MT-Bench 只 +2.3,这样调出来的草稿头未必能迁到离 RL 数据很远的流量。接受率仍随生成位置和采样温度下降(两者都抬熵),长智能体 rollout 还出现周期性波动(论文叫”气泡问题”)。所有实验都在 Qwen 模型上、以 GRPO 为 RL 主干,所以对其他模型族和 RL 算法的泛化是假设而非证明,也没有与非 MTP 投机解码方法的正面对比。证明还假设逐 token 失配 δ 有界;极端熵漂移下,δ 里残留的熵依赖没被排除。
常见问题
Bebop 方法会让 RL 训出来的模型更准,还是只更快?
只更快。拒绝采样以 min(p(v), q(v)) 的概率接受 token v,这保证采样输出与目标模型分布完全一致,无论草稿多好。所以 Bebop 改的是 rollout 吞吐,异步 RL 最快 1.8 倍,基准分数不变。把”打破熵界”读成推理精度结果就是误读;这里的熵是策略的采样熵,界是压在 MTP 接受率上,不是压在任务性能上。
Bebop 方法里,提速来自拒绝采样还是 TV 损失?
主要来自 TV 损失。拒绝采样让接受率等于 1 - d_TV(p, q) 并平滑衰减,但它自己仍被熵压住,斜率和贪心目标端采样一样是 -1.68(命题 2)。是 e2e TV 损失把斜率压到 -0.06,靠的是产生概率正比失配而非均匀失配。在相同拒绝采样下把损失换回 CE,熵界就回来。拒绝采样是必要的判定规则,损失才是打破界的那一下。
Bebop 里,为什么交叉熵训练的 MTP 在拒绝采样下仍然衰减?
因为 CE 和 KL 产生草稿与目标之间逐 token 的均匀失配。RL 把熵推高时,目标分布把概率铺到指数级更大的有效支撑集上,这份均匀失配就在所有这些 token 上累积。TV 损失则把梯度集中在概率质量所在处(梯度正比于 q_j),失配恰好在最影响接受率的地方保持很小。这就是为什么 CE 拒绝采样保持 -1.68 的熵斜率,而 TV 拒绝采样到 -0.06。
用 Bebop 还需要在 RL 期间持续训 MTP 头吗?
不需要,这是个实用结论。从 TV 训好的检查点出发,RL 期间继续用 CE 更新头,接受率会被侵蚀回 CE 基线;继续用 TV 则没有可测增益。RL 前训好 TV 就够,省掉在线训头的显存。这与 N-GRPO 这类在线蒸馏方法不同,后者 rollout 策略本身在训练中一直变。
一句话:Bebop 证明 MTP 接受率在 RL 里被策略熵压住,再用全变差损失加拒绝采样打破这个界,把接受率稳在约 95%,训练最快提速 1.8 倍且零精度代价。阅读 arXiv 原文。