No More Train-Inference Mismatch: Bitwise Consistent On-Policy Reinforcement Learning with vLLM and TorchTitan

发表时间: 2025-11 · Blog post by vLLM and TorchTitan Teams (blog.vllm.ai)

原文: https://blog.vllm.ai/blog/2025-11-10-bitwise-consistent-train-inference

作者/机构:Bram Wasti, Wentao Ye, Teja Rao, Michael Goin, Paul Zhang, Tianyu Liu, Natalia Gimelshein, Woosuk Kwon, Kaichao You, Zhuohan Li (vLLM and TorchTitan Teams)

速读

一句话结论
本文通过结合 TorchTitan 训练引擎和 vLLM 推理引擎,实现了一种比特级一致(Bitwise Consistent)的同策略强化学习(On-Policy RL)方案,消除了训练与推理间的数值误差,从而显著提升了模型训练的稳定性和最终收益。

要解决什么问题
在大语言模型的强化学习微调中,训练框架和推理框架通常会因为负载特性的不同而使用截然不同的底层算子(Kernel)。例如,处理大批次的算子倾向于在批次维度上进行重度并行,而处理小批次的算子则更多地在单个实例内部进行并行,以求更好地利用 GPU 的并行核心。这种底层计算方式的差异会导致训练器(Trainer)和采样器(Sampler)之间产生微小的数值不一致。强化学习算法对这种误差极其敏感,会将其不断放大,最终导致训练过程出现非确定性、行为不稳定,并使得模型收敛后的奖励下降。

怎么做的
核心思路是强制统一训练和推理前向传播过程中的底层算子,实现跨框架的比特级等价,从而从根本上消除数值漂移。该方案以 TorchTitan 作为训练框架,vLLM 作为推理框架。首先,作者基于 vLLM 近期推出的批次不变性(Batch-invariant)推理功能,对前向传播中每一次算子调用进行了严格审计,确保其在两个框架中的输出在比特级别完全一致。其次,针对 vLLM 中高度优化的融合算子(如带有残差连接的 SiLU MLP 和 RMSNorm),作者直接将其精确导入到前向传播中,并使用原生 PyTorch 为这些算子编写了自定义的简单反向传播逻辑。在系统架构上,作者开发了一个名为 VLLMRolloutEngine 的自定义生成器,用于封装生成和权重更新操作。整个流程在单机上同步运行,交替执行 TorchTitan 训练器和 vLLM 生成器,以此确保严格的同策略执行逻辑。通过这种算子级别的对齐,前向推理和训练时的数值完全一致,使得训练过程中的散度始终保持为 $KL = 0.0$。

效果如何
实验在 Qwen3 1.7B 模型上进行强化学习微调,使用 GSM8K 数据集并以正确率作为奖励信号。对比基线为关闭批次不变性(batch_inv_OFF)的常规设置,即采样器和训练器使用不同的算子。量化结果显示,在 100 步的训练过程中,开启比特级精确训练(batch_inv_ON)的方法不仅能用更少的步数完成训练,还能达到更高的总奖励。然而,该方案目前存在明显的性能代价和局限性:首先,开启比特级一致性后,运行速度比非比特级基线慢了 2.4 倍;其次,当前实现需要在训练和推理端维护两份独立的模型代码,长期维护容易因人为修改引入误差;此外,为了保持跨框架兼容,目前 TorchTitan 模型强制使用 Eager 模式,暂不支持 torch.compile 编译加速;最后,单机同步交替运行的架构虽然能演示同策略执行,但在大规模分布式训练中并不常见。

主要贡献

强化学习(RL)在训练过程中会放大训练器(trainer)和采样器(sampler)之间微小的数值不匹配,这种不匹配会导致非确定性以及不稳定的训练行为。本文旨在解决这一长期存在的训练-推理不匹配问题。核心贡献在于,作者展示了一个开源的、位级一致(bitwise consistent)的同策略(on-policy)强化学习运行方案,该方案采用 TorchTitan 作为训练引擎,vLLM 作为推理引擎。基于 vLLM 近期在批次不变推理(batch-invariant inference)方面的技术积累,作者成功在 Qwen3 1.7B 模型上运行了 RL 微调,并在开源的指令中实现了训练和推理数值的位级完全匹配。

图1 vLLM与TorchTitan的位级一致性RL流程
图1 vLLM与TorchTitan的位级一致性RL流程

背景知识与关键观察

强化学习对数值不匹配的敏感性:以往的研究证实,强化学习会显著放大训练器和采样器之间极其微小的数值差异,这直接导致了非确定性和不稳定的训练行为【1,Defeating nondeterminism in LLM inference,He 等人】【2,Off-policy RL,Yao, Liu 等人】【3,When Speed Kills Stability: Demystifying RL Collapse from the Training-Inference Mismatch,Liu, Li 等人】。

框架间内核差异的根源:训练和推理框架由于底层工作负载特性的根本不同,通常会使用截然不同的计算内核(kernels)。即使在单一的推理框架内部,也会针对不同的应用场景选择不同的内核:例如,针对大批次(high batch sizes)的内核会在批次维度上进行高度并行化;而针对小批次(low batch sizes)的内核则更多地在单个实例内部进行并行化,以便在 GPU 的并行核心上获得更好的资源利用率。所有这些底层实现上的差异都会导致训练和推理框架之间产生数值计算差异,并最终导致劣质的强化学习结果。

方法细节

实验环境

实验结果

作者通过对比实验验证了数值精度对强化学习结果的实质性影响:

图2 开启与关闭批次不变性下的RL奖励对比
图2 开启与关闭批次不变性下的RL奖励对比

结论

本文成功构建并验证了一个开源的、基于 TorchTitan 和 vLLM 的位级一致同策略强化学习框架。通过彻底消除训练阶段与推理阶段的计算内核数值差异,模型实现了散度为零的精确匹配。这不仅避免了强化学习中常见的训练崩溃与不稳定问题,还使得模型以更少的训练步数达到了更高的奖励。未来工作将聚焦于模型定义的统一、编译支持以及性能的进一步优化。

补充细节(未来工作展望)

作者将继续在位级一致的训练和推理方向上推进,具体将集中在以下几个核心方向:

参考文献提取与汇总