皓天 2025-09-18 14:23 北京
当rollout ≠ policy,分布错位带来的偏差会让RL悄悄走偏。
©作者 | 皓天
研究方向 | AI安全、推理&规划
训练跑得慢、收敛不稳,很多人第一反应是算力不足、参数没调好。但问题往往更隐蔽:pg-loss 的期望计算本身可能就错了。当 rollout≠policy,推理引擎带来的分布偏移让估计偏差在 MC 采样中逐渐放大,最终拖慢 RL 效果。
更棘手的是,这种“小错误”早已存在于主流框架中,却很少被认真讨论。
最近,就有一篇文章 [1] 提出了一个很有趣的观点:高效的 RL 框架让 policy-learning 本身变得 off-policy,如果再加上 off-policy 的训练设置(rollout 一次、参数更新多次),则进一步加剧了这一问题。
核心在于:
从 loss 计算的角度,rollout-policy 分布和 training-policy 分布是一致的才是正确的期望近似。
然而,在现代 RL 框架中(openrlhf/verl/roll/areal)等等,都选择使用 vllm/sglang 作为 rollout 引擎进行采样。然后,loss 计算都默认使用下面的公式计算:
由于 vllm/sglang 等等做了不同的推理优化,相比 model.generate 速度提升了很多倍,但推理优化不可避免的引入的分布偏移的问题(attention 优化、expert 均衡优化等等),使用上述公式计算 loss(用 mc 估计期望),不可避免带来期望估计 bias 问题。
由于 mc 估计本身方差比较大,如果 bias 再变大,则整体估计准度会进一步下降,bias/variance 总要有一个估计的好一些。
这篇文章 [1] 则进一步给出了比较详细的推导(如果从 pg 公式推导,应该是序列级别的 tis):
下述是引入推理引擎后的期望形式:
而正确的期望应该是关于 的期望,为了使用推理引擎采样但保持期望估计的一致性,通常,我们会有如下 trick(generative-modeling 参数优化的常见 trick,基于易于采样的分布期望,并用 ratio 修正期望计算):
为了保证 ratio 有界,通常可以对 ratio 做 truncation:
而 clip-loss 也能得到类似的形式(区分 policy 分布、采样分布即可):
简单总结一下:
1. 由于使用更快的推理引擎采样,推理引擎的算子优化等等会导致 rollout-policy 分布和 policy 分布不一致,会导致期望估计的 bias 更大(方差已经很大的情况下,bias 再变大,期望估计结果会变得更差);
2. 正确区分期望计算中的采样分布、policy 分布,前期使用常规 IS 方法近似(generative-modeling 领域,有很多 IS/MIS 的估计方法,进一步降低 variance 等等)。
3. 如果模型本身有较强的随机性(说得就是 MOE),采样引擎的 expert 激活/路由带来的随机性,会进一步增加期望 MC 估计的 bias。
4. 强求推理引擎精度对齐不是一个好选择,为了提升推理效率,推理引擎在输出 string 正确的情况下,算子、cache、超长 context 推理会有很多工程化优化。在 agentic-rl 场景,追求训推一体,那推理引擎的工程优化直接在 rollout 上使用,则推理引擎工程优化会带来更严重的分布偏移。
基于上述几个点,使用 [1] 的修正,是一个最好的选择。当然,数学上正确不代表实践中一定有效果。[1] 给出了 zero-32b、DeepSeek-R1-Distill-Qwen-1.5B 等等上的实验结果。
当分布不够尖锐的情况下,采样引擎 policy 分布和 training-policy 分布的差距会比较大,如果做了很重的 sft(模型本身没有随机性引入如 MOE 等等),则采样引擎 policy 分布和 training-policy 分布的差距较小,对结果影响不大。
实验
笔者也在 gem-gym、zero-tir 上进行了初步实验(基于 openrlhf)。
toy-example
gem-gym 使用 guess-number、count-letter 跑了 1.7b-base-zero 的实验。
多组实验的训练 setting 一致且同时启动训练(理想情况下,对比实验可能差个 1-10training-step)。
从上图看出,在 guess-number 上,二者差异几乎没有(加不加 ratio 修正),而在 count-number 上,加了 ratio 修正后的训练,在几乎相同的训练时间下,跑了 1kstep,而不加修正的版本只跑了 600step。
这里,由于同时启动训练,跑的慢的一般是采样出现超长、重复等等。也说明,ratio 修正几乎没有负作用,在更多 setting 下,可以更好的保持训练稳定性。当然,gspo 还是比朴素的 pg-loss 更稳一些。
zero-tir
我们继续在 zero-tir-7b-base 上进行了初步实践(基于 openrlhf),对比不同算法在同一个 training-step(300-step)下的效果对比:
我们也统计了 vllm 和 old-logp 的 kl-ratio(二者也是随着训练进行偏差越来越大,ratio 修正值也起到越来越大的作用):
这里,我们跑了 300-step,计算 aime24/25,hmmt24/25,cimmc 5 个数据集的 avg@32 的平均值。
从上表可以看出,reinforce++-baseline(local-mean+global-normalization),加入 vllm-ratio-correction 后,在大部分数据集、平均指标上都有更好的提升。
进一步,我们在 zero-tir 上,设置 max-turn=8 进行训练 500-step,对比之前的添加 filter 策略的训练 setting,二者 training-dynamics 如下图:
相比 filter 策略,加入 tis 后,也能稳定训练,但前期收敛速度慢于 filter 策略(进一步说明,好的 filter 策略,选择更好的正样本可以提升模型的收敛效率和效果 [3])。
借用 @skydownacai 的一个结果:vllm、fsdp 的 logp 在 multiturn-tool 调用的第二轮以后,二者的差距越来越大(使用 k1 估计 vllm-logp 与 fsdp-logp 的 kl 距离)。
随着 turn 的增加,二者的差距呈现逐渐增加的趋势,tis 修正的重要性也越来越重要(盲猜:环境反馈对于 base/pretrain-model 来说,算 OOD,如果做过 agentic-pretrain/ct/mid-training,应该会好很多):
总结
这是个由推理引擎分布和 training-policy 分布不一致但沿用二者分布一致的期望估计导致的问题,从最早的 openrlhf 到现在的 verl/roll/areal 等等,都沿用了类似的小“错误”。该错误在大多数情况下不影响训练的正常进行,最多拖累训练速度。
当使用 MOE、超长 context 优化后,以及 agentic-rl 的训推一体场景,推理引擎 policy 分布、training-policy 分布的不一致带来的问题可能会越来越显著,甚至引发训练崩溃的问题。
当数学上修正该问题后,实践中,并不能保证一定效果、收敛效率比之前更好,但总体上无副作用,且在一些任务、zero-setting、moe 等等 setting 下,可能具有更好的实践效果。
笔者建议,加上该 ratio 修正后(确保 math 上正确的前提下),重新审视不同 adv 估计、工程 filter-trick 的影响,很可能这些工作和 ratio 修正有着类似的作用(也可能依然正交)。
关于MOE题外话
MOE 激活、routing 本身存在一定随机性(rollout-distribution、training-policy-distribution 会存在一定 gap),通过 IS-ratio 可以做一定修正。
近期,笔者看到 [2],感觉避免 MOE 训崩的另一个点:保持 super-expert。[2] 中发现,剪裁 super-expert 后,模型性能直线下跌;而且,super-expert 在不同系列的 MOE 模型中均存在,且在不同数据集上,也呈现相当高的一致性。
从这个角度来看,提前识别 super-expert,并在 rl 过程中保持,其他 expert 可以放宽约束,可能也能保证 MOE-RL 训的稳稳当当。当然,也有可能 ratio -校准能保持 super-expert,训崩的话,可能 super-expert 就完全崩溃。
[2] 中还提到:super-expert 稳定(base、后训练的 super-expert 相当稳定),从这一角度出发,MOE-RL 需要保证 super-expert 稳定(识别每一条 RL 训练样本的 super-expert 作为约束)。
[2] 也发现,当剪裁 super-expert 后,模型输出乱码、重复,自然 ppl 会变差,则 sequence-level 的 ppl 过滤就是一个比较好的稳定训练的手段(如 GSPO)。
总结:
super-expert 可能是 MOE 中特殊的 sub-network,对于保持模型性能具有重要作用。从 pretrain 到 post-training,super-expert 基本都能够保持。而剪裁 super-expert 后,模型输出出现随机、重复、乱码(结果就是 ppl 变差)。
为了保持 MOE-RL 训练的稳定性,保持 ppl 算一种间接保持 super-expert 的方法(GSPO),IS-ratio-correction 不确定是否也具有这样的作用。
当模型训练进入深水区,模型可解释似乎成为为数不多的破局方法。
参考文献
[1] https://fengyao.notion.site/off-policy-rl
[2] https://arxiv.org/abs/2507.23279
[3] rStar2-Agent: Agentic Reasoning Technical Report
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·