强化学习(RL)训练 LLM 的效果高度依赖推理引擎返回的 logprobs(对数概率),任何细微差异都会在梯度更新中被放大。但 vLLM 从 V0 到 V1 是一次底层重写,迁移绝非简单「升级」。ServiceNow 团队的 PipelineRL 记录了这次踩坑过程。 他们在将推理后端从 vLLM 0.8.5 切换到 1.18.1 时发现:训练动态完全崩溃——clip rate、KL 散度、熵和 reward 曲线全都偏离 V0 基线。原因不在 RL 目标函数,而在推理后端本身。 团队定位了四个问题:rollout logprobs 的计算路径在 V1 中语义不同;V1 有新的运行时默认值;inflight weight-update 路径存在差异;以及 lm_head 输出精度不足(fp32 vs更低精度)。逐一修复后,V1 最终轨迹几乎完美复现 V0。 这个案例揭示了一个反直觉的原则:**推理引擎的正确性必须优先于 RL 目标的调优**。推理引擎一个看似微小的差异,在 RL 训练的长序列中会被持续放大,最终导致完全不同的收敛路径。随着 vLLM V1 成为主流推理引擎,RL 训练框架需要严肃对待这类迁移兼容性问题——不是换版本号,而是重新验证整个训练管道。 对于正在探索 RL+LLM 的团队,这条经验值得记取:在追求更优 RL 目标之前,先确保推理后端在数学上是等价的。