AI News HubLIVE
站内改写

vLLM V0到V1:RL中的正确性优先于修正

ServiceNow AI团队在将强化学习训练管线从vLLM V0迁移到V1时,发现了四个后端问题:logprobs语义、运行时默认值、飞行中权重更新和fp32 lm_head。他们优先修复后端正确性,再考虑目标侧修正,最终实现了与V0参考的完全对齐。

文章情报

工程师进阶

要点

  • 迁移目标:验证V1能返回训练器期望的logprobs,并与V0参考对比
  • 四个后端修复:processed_logprobs、禁用V1特有默认值、匹配飞行中权重更新、启用fp32 lm_head
  • 核心经验:先确保推理后端正确性,再考虑目标侧修正(如截断重要性采样)

为什么重要

这条新闻值得关注,因为迁移目标:验证V1能返回训练器期望的logprobs,并与V0参考对比。

技术影响

可能影响模型选型、推理成本、产品能力和评测基准。

ServiceNow AI团队近期分享了他们将强化学习(RL)训练管线中的推理引擎从vLLM V0迁移到V1的经验。他们的核心原则是:先修复后端行为,再调整RL目标,以避免混淆推理错误和目标修正。

迁移的目标非常明确:验证V1能否返回训练器期望的logprobs,然后在相同工作负载下与V0参考对比。初始V1运行显示训练指标如clip rate、KL散度、熵和奖励明显偏离参考。团队将失败模式分为三类:语义不匹配、推理路径不匹配和目标不匹配。他们优先处理前两类。

第一个修复是logprobs语义:V1默认返回原始模型输出的logprobs,但训练器需要经过温度缩放、惩罚和top-k/top-p过滤的处理后logprobs。通过设置logprobs-mode=processed_logprobs,修复了均值偏移,但训练曲线仍有差距。

第二个修复是运行时默认值:V1引入了前缀缓存和异步调度等新默认值,这些在V0中不存在。禁用这些功能(enable-prefix-caching: falseasync-scheduling: false)移除了V1特有的自由度。

第三个修复是飞行中权重更新:需要匹配V0的更新模型。V0的行为是阻塞执行、加载新权重、恢复而不显式清除缓存。V1中使用pause_generation(mode="keep", clear_cache=False)resume_generation()来保留缓存。

第四个修复是fp32 lm_head:训练器使用fp32精度计算logits,而V1可能使用其他精度。启用fp32 lm_head路径后,奖励曲线最终与V0参考对齐。这个细节在MiniMax-M1技术报告和ScaleRL论文中也有提及。

通过一系列消融实验,团队确认了processed_logprobs单独不足以解决问题,批量不变性和最初的V1运行都不是公平基线。最终结论是:在考虑目标侧修正(如截断重要性采样)之前,必须先确保推理后端正确性。团队计划在恢复推理一致性后,再进行常规的异步/离策略清理,包括保留行为策略logprobs、重计算旧策略logprobs、分离后端不匹配修正等。