vLLM V0からV1への移行:RLにおける修正前の正確性
vLLM V0 to V1: Correctness Before Corrections in RL
vLLM V1はvLLM V0リファレンスと一致したが、4つの修正が必要だった。具体的には、処理済みロールアウトログ確率、V1固有のランタイムデフォルト、インフライト重み更新パス、および最終射影に使用されるfp32 lm_headの修正である。RL目的関数を変更する前にバックエンドの動作を修正した。vLLM V1はV0エンジンの大幅な書き直しであり、移行目標は狭く設定された。最初の問題は、vLLM V1がデフォルトで生のモデル出力からログ確率を返すのに対し、トレーナーは処理済み分布を期待していたことで、`logprobs-mode=processed_logprobs`設定で解決された。次に、V1固有のランタイムデフォルト(プレフィックスキャッシング、非同期スケジューリング)と、インフライト重み更新時のキャッシュ無効化の挙動がV0と異なっていたため、これらを明示的に設定し直した。最後に、トレーナーがfp32 lm_headを使用していたため、ロールアウトバックエンドも同様の挙動に合わせる必要があった。これらの修正により、vLLM V1はvLLM V0リファレンスと一致し、報酬曲線が追従するようになった。この移行から得られた主な教訓は、バックエンドの正確性をまず修正し、その後残った不一致に対する修正を追加することである。
- vLLM V0からV1への移行において、RL目的関数変更前にバックエンドの正確性を修正し、4つの不一致(ログ確率モード、ランタイムデフォルト、重み更新時のキャッシュ無効化、fp32 lm_head)を修正してV0リファレンスとの一致を達成した
vLLMは大規模言語モデル推論の主要OSSフレームワークであり、V0からV1への移行における正確性の確保はRL学習パイプラインの安定性に直結する。特に報酬曲線がV1でもV0と一致するまでに4つのバグ修正が必要だったことは、RL x LLMのスタックがいまだ成熟途上であり、インフラ層での互換性維持に継続的なエンジニアリング投資が必要であることを示している。推論エンジンのバージョンアップは単なる高速化だけでなく、RL訓練との整合性検証が不可欠であり、このような知見を蓄積するチームの価値が高いことが伺える。