Your Efficient RL Framework Secretly Brings You OffPolicy RL Training

作者/机构: Feng Yao, Liyuan Liu, Dinghuai Zhang, Chengyu Dong, Jingbo Shang, Jianfeng Gao (*: 同等贡献)

A1 主要贡献

本文的核心研究问题在于,现代强化学习(RL)训练框架(如VeRL)为了提升效率,通常采用混合设计,即使用高度优化的推理引擎(如vLLM)进行rollout生成,同时使用独立的训练后端(如FSDP)进行模型训练。这种设计导致了所谓的“实现差距”(implementation gap)。

研究发现与核心问题
研究团队发现,尽管rollout生成器(sampler)和模型训练器(learner)共享相同的模型参数,但它们在计算token概率时会产生显著差异。这种差异,即“rollout-训练不匹配”(rollout-training mismatch)问题,会隐式地破坏同策略(on-policy)RL算法的基本假设,使得训练过程“秘密地”变成了离策略(off-policy)训练。

研究目标与创新点
本文旨在揭示并解决这一由系统级实现差异导致的问题。其主要创新点是提出了一种简单而有效的算法级修复方案:截断重要性采样(Truncated Importance Sampling, TIS)。该技术通过在梯度更新中引入一个重要性采样比率,来校正由sampler和learner之间的概率分布差异所带来的偏差,从而稳定训练过程并提升模型性能。

主要贡献总结
1. 识别并揭示了问题:首次明确指出并量化了现代RL框架中,因使用不同后端(如vLLM和FSDP)进行rollout和训练而导致的概率分布不匹配问题,并阐明了该问题如何将同策略训练转变为离策略训练。
2. 提出了有效的解决方案:提出并验证了截断重要性采样(TIS)作为一种算法层面的修复方法。该方法无需修改底层系统,仅通过调整梯度计算公式即可有效弥合分布差距。
3. 详尽的实验验证:通过在Qwen2.5-32B等大模型上的实验,证明了该不匹配问题对性能的负面影响,并展示了TIS在不同场景下(包括标准训练和量化rollout)的有效性。实验表明,TIS能够显著提升模型性能,尤其是在分布差距较大时。
4. 深入的成因分析:对不匹配问题的成因进行了深入分析,发现并行策略的差异(如张量并行与序列并行)和长序列生成是加剧该问题的关键因素,而不仅仅是采样器后端本身的选择。

下图展示了该不匹配问题导致的token概率差异,以及应用TIS修复后带来的性能提升。

图1. 左图:不匹配问题带来的Token概率差异。右图:正常RL训练与修复不匹配问题后训练的性能对比。实验在Qwen2.5-32B稠密模型上进行,使用4个节点,每个节点8个H100 GPU。
图1. 左图:不匹配问题带来的Token概率差异。右图:正常RL训练与修复不匹配问题后训练的性能对比。实验在Qwen2.5-32B稠密模型上进行,使用4个节点,每个节点8个H100 GPU。

A3 背景知识与关键观察

不匹配问题

标准REINFORCE算法。为简化讨论,我们以REINFORCE算法为例。该算法理论上通过以下方式更新由参数$\theta$定义的策略$\pi$(一个大型语言模型LLM):
$$\theta \leftarrow \theta + \mu \cdot E_{a \sim \pi(\theta)} \left[ \mathcal{R}(a) \cdot \nabla_{\theta} \log \pi(a, \theta) \right]$$

混合系统中的更新实践。在实践中,rollout生成成本高昂,现代RL框架(如VeRL)通常采用高度优化的推理引擎(如vLLM、SGLang)来提升吞吐量,同时使用一个独立的后端(如FSDP、Megatron)进行模型训练。这种混合设计使得更新过程变为:
$\theta \leftarrow \theta + \mu \cdot E_{(a)} [ R(a) \cdot \nabla_\theta \log \pi_\text{actor} (a, \theta) ]$.
这里,我们用$\pi_{sampler}$表示加载在推理引擎(如vLLM、SGLang)上的模型,用$\pi_{learner}$表示在训练后端(如FSDP、Megatron)实例化的同一个模型。如无特别说明,我们的实验使用vLLM作为sampler后端,FSDP作为learner后端。

观察到的意外不匹配。研究中观察到了意料之外的rollout-训练不匹配现象。如图1所示,尽管$\pi_{fsdp}$和$\pi_{vllm}$共享相同的模型参数$\theta$,但它们可以产生显著不同的token概率。对于某些token $a$,它们甚至会产生矛盾的预测,例如$\pi_{vllm}(a,\theta)=1$而$\pi_{fsdp}(a,\theta)=0$。这种意外行为隐式地打破了同策略假设,使得RL训练秘密地变成了离策略训练。

A2 方法细节

如何修复它?

缓解系统级的不匹配

更高精度的vLLM是否有帮助? 我们最初假设vLLM是问题的根源,因此我们对vLLM进行了修补,以解决两个通常被怀疑导致不匹配问题的因素。
* 无法获取真实的采样概率:vLLM v1引擎不支持直接返回用于采样的调整后概率,这引入了额外的差距。→ 我们的补丁强制vLLM返回用于采样的实际概率【已合并到上游】。
* 后端数值差异:vLLM的lm_head精度与HuggingFace transformers的精度不匹配,这一点在MiniMax-M1技术报告中也有提及。→ 我们的补丁提供了强制vLLM将lm_head转换为fp32的选项。
然而,如图1所示,在应用了这两个补丁之后,不匹配问题依然存在。

拥抱不匹配——应用算法级修复

采用重要性采样进行校正。我们建议不从系统层面去缓解分布不匹配,而是调整模型更新方式,使其能够感知到这种不匹配。一个简单的方法是通过重要性采样进行校正。具体来说,我们通过在模型更新中加入重要性比率来处理$\pi_{learner}$和$\pi_{sampler}$之间的不匹配,即将当前的梯度计算从:
$$E_{a \sim \pi_{\text{sampler}}(a)}[R(a) \cdot \nabla_{\theta} \log \pi_{\text{learner}}(a, \theta)],$$
修改为:
$E_{a \sim \pi_{sampler}(s)} \left[ \frac{\pi_{learner}(a, \theta)}{\pi_{sampler}(a, \theta)} \cdot R(a) \cdot \nabla_{\theta} \log \pi_{learner}(a, \theta) \right]$

应用截断重要性采样(TIS)。虽然关于如何设计一个稳定有效的重要性采样已有广泛研究,但在实践中我们发现,使用一种经典技术——截断重要性采样,通常就足够了:
$E_{s \sim \pi_{\text{old}}(s)} \left[ \min \left( \frac{\pi_{\text{learner}}(a, \theta)}{\pi_{\text{sampler}}(a, \theta)} C \right) - R(a) \cdot \nabla_{\theta} \log \pi_{\text{learner}}(a, \theta) \right]$
其中$C$是一个超参数。

扩展到其他算法

方法的通用性。将上述分析扩展到其他算法是直接的,因为我们可以将梯度计算的具体形式从REINFORCE的$R(a) \cdot \nabla \log \pi(a, \theta)$替换为任何形式。这里,我们以常用的PPO算法为例,提供类似的分析。

标准PPO算法的策略梯度。PPO的策略梯度$\nabla_{\theta} L^{CLIP}(\theta)$定义为:
$E_{a \sim \pi_k} [\nabla_{\theta} \min(\frac{\hat{\pi}_{\theta}(a)}{\pi_{\theta^{\text{old}}}(a)} A, \text{clip}(\frac{\pi_{\theta}(a)}{\pi_{\theta^{\text{old}}}(a)}, 1-\epsilon, 1+\epsilon)A)]$

混合RL系统中的PPO。为了提高吞吐量,混合RL系统采用vLLM引擎进行rollout生成——从$\pi_{\theta_{old}}$中采样token $a$,同时使用FSDP后端来从$\pi_{\theta}$采样并为梯度计算重新计算$\pi_{\theta_{old}}$的token概率:
$$ E \left[ \nabla_{\phi_n} \min \left( \frac{Z_{trans}^{(s,0)}}{Z_{trans}^{(\alpha, \beta_n)}}, \Lambda, \exp \left( \frac{Z_{trans}^{(s,0)}}{Z_{trans}^{(\alpha, \beta_n)}} \right), 1 + \epsilon (1) \right) \right] $$

使用TIS修复PPO。与前面的分析类似,$\pi_{learner}$和$\pi_{sampler}$之间的差距再次出现,我们用截断重要性采样来修复它:
$$\frac{\epsilon_s + \epsilon_d}{\epsilon_s \epsilon_d} \nabla_z^2 C = \left[ \frac{\min(x^2, x_{max}^2)}{\alpha_{x,y} + y^2} + C \right], \nabla_{x,y} = \frac{\min(x^2, x_{max}^2)}{x_{max}^2 + x_{min}^2} \cdot \alpha(exp(\frac{x_{max}^2 + x_{min}^2}{x_{max}^2 + x_{min}^2})) , r + e r, r_1 \ldots r_n$$
其中$C$是一个超参数。

与经典理论的联系

重要性采样。当直接对目标分布下的期望值进行蒙特卡洛估计很困难时,重要性采样允许我们从一个替代分布中进行采样。在我们的案例中,目标分布是$\pi_{learner}$,但从中采样极其缓慢。使用一个独立的后端(如vLLM)进行rollout生成意味着我们实际上是从$\pi_{sampler}$中采样。这种差异随后通过为每个样本加权一个重要性比率来校正:
$$E_{a \sim \pi_{\text{learner}}(a)}[\Re(a)] = E_{a \sim \pi_{\text{sampler}}(a)}\left[\frac{\pi_{\text{learner}}(a, \theta)}{\pi_{\text{sampler}}(a, \theta)} \cdot \Re(a)\right]$$

解耦PPO(Decoupled PPO)。解耦PPO是使用重要性采样来弥合rollout生成和梯度计算之间差距的一个特例,它已被像AReaL这样的异步RL框架所采用。值得一提的是,AReaL没有实现我们这里讨论的截断重要性比率。相反,如果重要性比率超过预定义阈值,AReaL会完全丢弃该训练样本。

A4 实验环境

  • 模型架构
    • Qwen2.5-32B 稠密模型
    • Qwen2.5-0.5B 稠密模型
    • DeepSeek-R1-Distill-Qwen-1.5B
    • DAPO-32B
    • Polaris-7B
  • 数据集与任务
    • DAPO recipe 相关任务
    • GSM8K (数学推理任务)
    • DAPO-Math-17k (用于不匹配分析)
  • 硬件配置
    • 4 节点,每节点 8x H100 GPUs (用于Qwen2.5-32B, DeepSeek-1.5B实验)
    • 1 节点,4x A6000 GPUs (用于Qwen2.5-0.5B实验)
  • 软件配置
    • RL框架/Recipes: VeRL, DAPO, POLARIS
    • Rollout生成后端 (Sampler): vLLM, SGLang
    • 模型训练后端 (Learner): FSDP (Fully Sharded Data Parallel)
    • Rollout精度: bf16, INT8, FP8

A4 实验结果

差距是否重要?

在使用Qwen2.5-32B模型和DAPO recipe进行的实验中,即使只训练了前250步,感知到差距并使用TIS进行修复的训练运行,其性能也已显著提升。由于两个运行之间唯一的区别是引入了$\min(\frac{\pi_{vllm}(a,\theta)}{\pi_{fsdp}(a,\theta)}, C)$项,这一改进展示了分布差距的潜在巨大影响(如图1右侧所示)。

TIS的修复效果如何?

为了衡量TIS的修复效果,研究人员设计了一个对照实验。在使用Qwen2.5-0.5B模型和GSM8K任务时,设置了两种场景:
1. 正常RL训练:token概率最大差异较小(约0.4)。
2. 使用INT8量化rollout的RL训练:token概率最大差异非常大(达到1.0)。
实验结果(如图2)显示,在场景2中直接使用PPO会导致性能严重下降。然而,应用了TIS之后,性能得到了极大的恢复,几乎达到了场景1中“近似同策略”训练的水平。这证明了TIS在弥合较大分布差距方面的有效性。

图2. 左图:Token级别的概率差异。右图:在GSM8K上,正常RL训练与使用INT8量化rollout的RL训练的性能对比。实验在Qwen2.5-0.5B稠密模型上进行,使用一个节点4卡A6000 GPU。
图2. 左图:Token级别的概率差异。右图:在GSM8K上,正常RL训练与使用INT8量化rollout的RL训练的性能对比。实验在Qwen2.5-0.5B稠密模型上进行,使用一个节点4卡A6000 GPU。

TIS是否总是有帮助?

实验也发现,在概率差异相对较小的情况下,引入TIS项并不能带来性能增益。例如,在DeepSeek-1.5B模型上,使用标准的bfloat16进行rollout,由于模型相对较小,不匹配问题并不严重。如图3所示,有无TIS的性能曲线几乎重合。这符合预期,因为在严格的同策略RL设置中,重要性采样比率应为1.0。

图3. 左图:不匹配问题带来的Token概率差异。右图:正常RL训练与修复不匹配问题后的性能对比。实验在DeepSeek-R1-Distill-Qwen-1.5B模型上进行,使用4个节点,每个节点8个H100 GPU。在这种情况下,由于我们在两次运行中都使用了标准的bfloat16 rollout,且模型相对较小,不匹配问题并不严重。
图3. 左图:不匹配问题带来的Token概率差异。右图:正常RL训练与修复不匹配问题后的性能对比。实验在DeepSeek-R1-Distill-Qwen-1.5B模型上进行,使用4个节点,每个节点8个H100 GPU。在这种情况下,由于我们在两次运行中都使用了标准的bfloat16 rollout,且模型相对较小,不匹配问题并不严重。

A7 补充细节

TIS分析

不同TIS变体的分析

TIS变体。我们还总结了两种缓解分布差距的替代方案:
* PPO重要性采样 (PPO-IS)
* 普通重要性采样 (Vanilla-IS)
为了评估TIS的有效性并理解其设计选择的影响,我们进行了实验,将TIS与上述两种变体进行了比较。结果显示,TIS始终优于这两种变体,尤其是在差距较大(例如FP8/INT8)的情况下。

图4. 我们在Qwen2.5-0.5B模型上使用GSM8k任务,对不同的rollout-训练不匹配缓解策略进行了消融研究。注意,PPO-IS和Vanilla-IS在INT8 rollout上的准确率接近0,因此曲线高度重叠。右侧我们还绘制了vLLM采样分布与FSDP分布之间的KL散度。
图4. 我们在Qwen2.5-0.5B模型上使用GSM8k任务,对不同的rollout-训练不匹配缓解策略进行了消融研究。注意,PPO-IS和Vanilla-IS在INT8 rollout上的准确率接近0,因此曲线高度重叠。右侧我们还绘制了vLLM采样分布与FSDP分布之间的KL散度。

Vanilla-IS vs. TIS。关于Vanilla-IS,其不稳定性主要来自于当rollout $a \sim \pi_{sampler}(a,\theta_{old})$以低概率被采样时,导致重要性采样比率$\frac{\pi_{sampler}(a,\theta_{old})}{\pi_{learner}(a,\theta_{old})}$变得很大,这会通过其平方项放大梯度方差。因此,我们在截断重要性采样(TIS)中使用了截断(clamp)操作来稳定训练。例如,当一个token的比率达到16时,该token的梯度噪声通过Vanilla-IS会被放大256倍,而通过TIS-2(C=2)仅放大4倍,通过TIS-8(C=8)放大64倍。

PPO-IS vs. TIS。很多人问为什么不直接将重要性采样整合到PPO中(即PPO-IS变体)。坦率地说,我们开始时就是直接修改PPO的clip项,如PPO-IS所示,但它在我们的实验中表现不佳。究其根本原因,通过PPO-IS,梯度实际上仍然是有偏的,偏离了同策略版本的PPO。换句话说,尽管它可能仍在朝着无偏的目标优化,但其效率可能低于PPO。此外,我们强调PPO的信任区域技术是为了约束rollout模型$\theta_{old}$和当前模型$\theta$之间的概率比接近1,以近似同策略的REINFORCE梯度。然而,在PPO-IS中,即使当$\theta=\theta_{old}$时,由于sampler-learner的不匹配,概率比$\frac{\pi_{sampler}(a,\theta_{old})}{\pi_{learner}(a,\theta)}$也已经不等于1——这使得裁剪(clipping)很可能发生,从而大大降低了训练的信息量。相比之下,在我们的TIS方法中,我们分别对$\frac{\pi_{sampler}(a,\theta_{old})}{\pi_{learner}(a,\theta_{old})}$和$\frac{\pi_{learner}(a,\theta)}{\pi_{learner}(a,\theta_{old})}$进行裁剪,因此要温和得多;注意当$\theta=\theta_{old}$时,$\frac{\pi_{learner}(a,\theta)}{\pi_{learner}(a,\theta_{old})}$等于1,这适合信任区域约束。

从病态到良性

熵崩溃与异常响应长度。许多先前的工作表明,LLM中的RL训练会导致熵崩溃——token级别的类别分布变得接近one-hot分布,有效地限制了RL训练的探索。我们的INT8 rollout实验揭示了严重的熵崩溃。图5显示熵下降到0.2以下,并在整个训练过程中持续下降。我们还观察到异常长的响应生成——这是RL训练中的另一种失败模式。引入TIS项逆转了这一趋势,使模型能够以稳定和良性的方式进行训练。

图5. DAPO-Qwen2.5-32B INT8训练表现出各种不稳定性,通过引入截断重要性采样成功稳定了训练。
图5. DAPO-Qwen2.5-32B INT8训练表现出各种不稳定性,通过引入截断重要性采样成功稳定了训练。

BF16 Rollout 实验。相比之下,BF16 rollout实验没有显示出严重的熵崩溃。尽管如此,TIS项仍然提高了熵值。由于与INT8 rollout相比分布差距较小,响应长度保持在合理范围内。

图6. DAPO-Qwen2.5-32B BF16训练表现出各种不稳定性,可以通过引入截断重要性采样成功稳定训练。
图6. DAPO-Qwen2.5-32B BF16训练表现出各种不稳定性,可以通过引入截断重要性采样成功稳定训练。

关于分布差距影响的案例研究:KL估计

KL估计器偏差。KL散度$KL(\pi_{old_{fsdp}} \| \pi_{fsdp})$的一个无偏KL估计器是$k_1$估计器:$\log \pi_{old_{fsdp}}(a) - \log \pi_{fsdp}(a)$,其中$a \sim \pi_{old_{fsdp}}(a)$。然而,现代RL训练框架从$\pi_{old_{vllm}}$而不是$\pi_{old_{fsdp}}$生成rollout,这给KL估计带来了偏差,类似于我们之前讨论的梯度估计偏差。因此,我们可以使用KL估计作为案例研究,来探索$\pi_{old_{vllm}}$和$\pi_{old_{fsdp}}$之间不匹配的影响。在没有任何偏差的情况下,KL散度根据定义是非负的。然而,INT8 rollout中巨大的分布不匹配导致有偏的$k_1$估计器频繁产生负值,如图5所示。这些负的KL估计值预示着病态的训练动态。同时,当TIS被整合到RL训练中时,同样的$k_1$估计器——虽然仍然受到潜在分布不匹配的影响——在大部分训练过程中保持正值。这种期望符号的保持表明TIS成功地恢复了良性的训练行为。

训练日志中的有偏奖励

日志奖励与下游性能不一致。整合TIS的一个有趣现象是,它可能导致日志记录的奖励变差,但同时带来更好的下游性能。这是因为$\pi_{sampler}$和$\pi_{learner}$之间的差距不仅在梯度估计中引入偏差,还在日志记录的奖励估计中引入偏差。具体来说,日志记录的奖励来自rollout策略,即$E_{\pi_{sampler}}[R]$,而不是$E_{\pi_{learner}}[R]$。如图6(右侧两个子图)所示,日志奖励指标显示BF16-Rollout优于带有TIS的BF16-Rollout。然而,如果我们看AIME准确率的下游性能,带有TIS的BF16-Rollout显著优于普通的BF16-Rollout。

TIS工作机制的直觉

TIS如何避免熵崩溃。虽然TIS的确切机制仍是一个开放问题,但我们提供了关于TIS如何缓解分布差距的高级直觉。特别地,忽略rollout中$\frac{\pi_{sampler}(a,\theta_{old})}{\pi_{learner}(a,\theta_{old})}<1$的偏差可能通过以下机制导致熵崩溃:对于具有负优势(negative advantages)的rollout,策略梯度倾向于减少$\pi_{learner}$。当参数更新后存在较大的分布差距时,$\pi_{learner}$的减少可能不会反映在$\pi_{sampler}$中。因此,策略梯度继续指向进一步减少$\pi_{learner}$。直观地说,这种惩罚可能迫使模型过度承诺于一个熵很小的输出分布。同时,TIS对$\frac{\pi_{sampler}(a,\theta_{old})}{\pi_{learner}(a,\theta_{old})}<1$的情况坚持使用未截断的重要性比率,从而消除了这部分rollout的偏差,并打破了这一机制。

Rollout-训练不匹配分析

我们进行了一系列受控实验,以确定引入或放大rollout生成和梯度计算之间差异的因素。具体来说,我们发现并行策略的差异和长响应长度会导致不匹配,而仅采样器后端的选择影响甚微。

分析设置

模型与数据。我们用两个代表性模型进行实验——DAPO-32B和Polaris-7B,分别使用DAPO和POLARIS RL recipes进行训练。为了评估,我们使用DAPO-Math-17k数据集的前512个提示来评估sampler和learner输出之间的差异。

度量指标。我们使用两个指标来衡量响应级别的不匹配:
* 每个响应的最大不匹配:$\max_{a \in \text{response}} |\pi_{sampler}(a) - \pi_{learner}(a)|$
* 每个响应的平均不匹配:$\frac{1}{|\text{response}|} \sum_{a \in \text{response}} |\pi_{sampler}(a) - \pi_{learner}(a)|$
这些指标使我们能够捕捉到最坏情况下的token分歧和响应内的平均差异水平。我们在不同设置下对相同提示的响应计算这些指标,以分离特定因素的影响。

可视化。我们使用右侧所示的可视化格式呈现这两个指标。这是一个用于解释图表的说明性示例。
图片

更大的并行度差异,更大的最大差距

并行策略差异的影响。我们观察到sampler和learner之间的并行度差异对最大不匹配(Max Mismatch)指标有不可忽略的贡献。
* 最简单设置(相同并行度):使用DAPO-32B模型,sampler在vLLM上运行(TP1),learner使用FSDP(SP1)。由于并行设置相同,我们将此称为“相同并行度”。
* 增加张量并行(TP)差异:将sampler从TP1更改为TP2,而learner保持SP1(“不同TP”)。如图7左图所示,随着并行度差异的增加,具有高最大不匹配(>0.5)的响应数量增加。
* 增加序列并行(SP)差异:接着将learner从SP1更改为SP8(“不同TP和SP”)。如图7中图所示,额外的SP差异使高最大不匹配的响应数量从两个增加到两位数。

图7. 在不同并行度下,同一组提示的最大不匹配情况。
图7. 在不同并行度下,同一组提示的最大不匹配情况。

解耦并行与分片。如图8左图所示,对于相似的分布式设备规模(例如8个设备),在learner中使用张量并行(TP8)与TP2 sampler导致的不匹配比使用序列并行(SP8)要小。我们推测这是因为TP8 learner和TP2 sampler之间的实现差异没有SP8 learner和TP2 sampler之间的差异那么显著。这再次印证了最小化sampler和learner之间的并行度差异能持续减少差距的发现。如图8中图和右图所示,当learner和sampler使用相同的张量并行度(TP2和TP4)时,高最大不匹配(>0.5)的响应数量很少,这表明以相同方式对sampler和learner进行模型分片有助于减少不匹配,并且应该是首选。

图8. 在各种并行度下,同一组提示的最大不匹配情况。
图8. 在各种并行度下,同一组提示的最大不匹配情况。

平均不匹配和KL散度。尽管我们观察到最大不匹配的一致模式,但值得一提的是,我们没有观察到这些配置在平均不匹配(Mean Mismatch)/KL散度上有任何显著差异。

更长的响应,更大的最大差距

响应长度的影响。我们的实验一致表明,更长的生成序列会导致更大的最大不匹配,而平均不匹配受影响小得多。我们使用DAPO-32B和Polaris-7B模型对序列长度的影响进行了消融研究。如图9所示,限制在20K token的响应比限制在4K token的响应表现出更高的最大不匹配。相比之下,两种设置下的平均不匹配保持相似。这表明,即使平均每个token的差异保持稳定,更长的序列也为单个大的概率分歧提供了更多机会。

图9. 左图:不同响应长度的最大不匹配。右图:不同响应长度的平均不匹配。颜色分别表示DAPO-32B和Polaris-7B的结果。
图9. 左图:不同响应长度的最大不匹配。右图:不同响应长度的平均不匹配。颜色分别表示DAPO-32B和Polaris-7B的结果。

序列长度与token总数的控制实验。为了验证这种效应是由序列长度而不是生成的token总数驱动的,我们进行了一个控制实验,比较了单批20K-token响应与五批独立的4K-token响应。如图10左图所示,生成多个较短的响应(5×4K)与单个4K-token响应相比,最大不匹配仅有适度增加。然而,一个连续的20K-token响应产生的不匹配要大得多。这证实了不匹配是由序列的连续长度加剧的。有趣的是,我们观察到不匹配随着生成的进行而累积:一个20K-token响应中仅前4K个token内的最大不匹配通常超过一个独立的4K-token响应的最大不匹配。这表明sampler和learner的内部状态在长生成上下文中会越来越发散。

图10. 左图:相似token数量下不同响应长度的最大不匹配。右图:不同长度响应的最大不匹配。不同颜色分别表示DAPO-32B和Polaris-7B的结果。
图10. 左图:相似token数量下不同响应长度的最大不匹配。右图:不同长度响应的最大不匹配。不同颜色分别表示DAPO-32B和Polaris-7B的结果。

单独改变采样器,差距依旧存在

采样器后端选择的影响。最后,我们调查了采样器后端本身的选择是否是不匹配的主要贡献者。我们比较了采样器的三种配置:1) vLLM;2) SGLang;3) 启用确定性内核的SGLang。结果显示,仅采样器后端本身并没有决定性的影响。对于DAPO-32B模型,SGLang产生的平均不匹配较小,而对于Polaris-7B模型,vLLM表现更好。因此,没有单个采样器后端在不同设置下始终占优。

图11. 左图:不同采样器后端的最大不匹配。右图:不同采样器后端的平均不匹配。颜色分别表示DAPO-32B和Polaris-7B的结果。
图11. 左图:不同采样器后端的最大不匹配。右图:不同采样器后端的平均不匹配。颜色分别表示DAPO-32B和Polaris-7B的结果。

值得注意的是,在SGLang中启用确定性采样,而没有对齐训练配置,并不能显著减少差距。这表明不匹配主要源于更深层次的实现差异(例如,并行度或数值精度),而不仅仅是随机采样本身。

更多因素

还有其他维度可能影响rollout-训练的不匹配,包括模型类型(例如,稠密模型 vs. MoE,基础模型 vs. 后训练模型)、提示数据特征(例如,难度、领域)、GPU硬件以及训练后端的选择。例如,我们发现规模相当的稠密模型和MoE模型(32B和30B)表现出不同程度的不匹配,并且基础模型比其后训练的对应模型具有更小的rollout-训练不匹配。我们正在持续努力,以更深入地理解和更好地利用rollout-训练不匹配,用于实用的LLM后训练。敬请期待!

A5 结论

在MoE RL中差距可能被放大

虽然我们目前的实验和分析集中在稠密模型上,但我们认为这种分布差距也存在于MoE RL中,并且可能更为严重。主要有两个原因:
1. 动态路由:与稠密模型不同,MoE利用路由器动态激活特定的专家。这种路由机制对精度天生敏感;即使是微小的数值差异也可能导致专家激活的显著不同。
2. 特殊优化的内核:MoE模型通常规模庞大,现代推理引擎(如vLLM)对MoE模型有独特的优化,这与稠密模型不同,使得后端数值不一致性更大。
这些特性共同作用,可以显著放大分布不匹配,使得像TIS这样的解决方案在MoE RL中尤其有价值。

TIS与现有的GxPO系列算法正交且兼容

最近的工作通过改进重要性采样比率的计算来提高策略更新的稳定性。例如,GSPO在序列级别而不是token级别计算比率,而GMPO计算几何平均值而不是算术平均值。与这些工作正交,我们的TIS修复解决了源于系统层面的分布不匹配问题,这是由rollout生成和模型训练中使用的不同计算内核带来的。这个问题广泛存在于采用混合计算设计的RL训练框架中。因此,我们的修复可以应用于任何特定的RL算法,不受其限制。

引用

@misc{yao2025offpolicy, 
    title = {Your Efficient RL Framework Secretly Brings You Off-Policy RL Training}, 
    url = {https://fengyao.notion.site/off-policy-rl}, 
    author = {Yao, Feng and Liu, Liyuan and Zhang, Dinghuai and Dong, Chengyu and Shang, Jingbo and Gao, Jianfeng}, 
    journal = {Feng Yao&#39;s Notion}, 
    year = {2025}, 
    month = aug, 
}