ServiceNow AIチームは、強化学習(RL)トレーニングパイプラインで使用する推論エンジンをvLLM V0からV1に移行した経験を報告しました。彼らの基本原則は、バックエンドの動作を先に修正し、その後にRL目標を調整するというものでした。この戦略により、推論エラーと目標修正の混同を避けました。
移行の目標は単純で、V1がトレーナーが期待する形式のlogprobsを返すことを確認し、同じワークロードをV0参照と比較することでした。初期のV1実行では、クリップ率、KLダイバージェンス、エントロピー、報酬といったトレーニング指標が明らかに参照から乖離していました。チームは失敗モードを3つに分類しました:セマンティックミスマッチ、推論パスミスマッチ、目標ミスマッチです。最初の2つをバックエンドの問題として優先的に排除しました。
最初の修正はlogprobsセマンティクスでした。V1はデフォルトでモデル生の出力からlogprobsを返しますが、トレーナーは温度スケーリング、ペナルティ、top-k/top-pフィルタリングなどの後処理を経たlogprobsを期待していました。logprobs-mode=processed_logprobsを設定することで平均オフセットは修正されましたが、トレーニング曲線にはまだギャップがありました。
2番目の修正はランタイムデフォルトです。V1はプレフィックスキャッシングや非同期スケジューリングなどの新しいデフォルトを導入しており、これらはV0にはありませんでした。これらを無効にすることで、V1特有の自由度を取り除きました。
3番目の修正はインフライトウェイト更新です。V0は実行をブロックし、新しい重みをロードし、キャッシュを明示的に無効にせずに再開します。V1ではpause_generation(mode="keep", clear_cache=False)とresume_generation()を使用して、キャッシュを保持するようにしました。
4番目の修正はfp32 lm_headです。トレーナーはfp32精度でロジットを計算しますが、V1は異なる精度を使用する可能性がありました。fp32 lm_headパスを有効にすることで、報酬曲線が最終的にV0参照と一致しました。この詳細はMiniMax-M1の技術報告書やScaleRL論文でも言及されています。
消去実験を通じて、チームはprocessed_logprobsだけでは不十分であり、バッチ不変性や最初のV1実行は公平なベースラインではないことを確認しました。最終的な結論は、目的側の修正(例:切断重要度サンプリング)を検討する前に、まず推論バックエンドの正しさを確保すべきであるということです。チームは、推論パリティが回復した後、行動ポリシーのlogprobsを保持する、トレーナー側の旧ポリシーのlogprobsを再計算する、バックエンドの不一致修正をポリシー更新比率から分離するなど、通常の非同期/オフポリシークリーンアップを行う予定です。