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: false和async-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、分離後端不匹配修正等。