
- TRL v1.14でAsyncGRPOTrainerがLoRAに対応、アダプタのみをvLLMへ同期
- rank-1アダプタは数メガバイト、1.5Bモデル全体は約3GBでNCCL不要
- 500ステップの学習が3時間27分から53分に短縮、検証は5回の実行
何が変わったのか
Hugging Faceのブログによると、TRLのAsyncGRPOTrainerがLoRAアダプタを学習し、そのアダプタだけをvLLMへ同期できるようになった。この変更はPR #7017としてマージされ、TRL v1.14に含まれる。従来はモデル全体の重みを推論側へ渡す必要があり、その転送量が構成上の制約になっていた。
AsyncGRPOTrainerはもともと学習と生成を分離できる設計で、トレーナーとvLLMを別々のマシンで動かせた。ただし、両者がファイルシステムを共有できるか、NCCLグループを組めることが前提だった。
今回の検証では、トレーナーとvLLMレプリカを別々のHugging Face Jobsとして動かす構成が試された。同じレシピで500ステップを回した5回の実行で、所要時間が3時間27分から53分に短縮されたと報告されている。
アダプタだけを同期する仕組み
トレーナーはテンソルをvLLMへ送らない。数オプティマイザステップごとにアダプタを <output_dir>/.vllm_lora/trl-policy-v{N} に保存し、原子的なリネームで公開したうえで、そのパスをvLLMの /v1/load_lora_adapter エンドポイントへ送る。vLLMはディスクからファイルを読み込み、ロールアウト側は model="trl-policy-v{N}" を指定して呼び出す。
Job間のファイル共有にはStorage Bucketを使う。バケットをFUSE(hf-mount)で各Jobの同じパスにマウントすれば、ネットワークファイルシステムと同じように扱える。Job間にネットワーク経路は不要で、NCCLも使わない。
LoRAがRLに向いている理由も説明されている。Thinking Machinesのブログによれば、アドバンテージ関数が1エピソードあたり約O(1)ビットの情報しか与えないため、rank 1でもポリシー勾配RLで全微調整に匹敵しうる。1.5Bモデルのrank-1アダプタは数メガバイトで、モデル全体の約3GBと比べて転送量が大きく減る。
3つのJobとプロキシ
構成は小さい。トレーナーJob、vLLMを動かすJob 2つ、3つすべてに同じパスでマウントするStorage Bucket、そしてvLLMレプリカの前段に置くプロキシだ。vLLMはv0.27.1に固定されている。vLLMの更新が速いため、使うフラグとランタイムLoRAエンドポイントはこのバージョンのものとして扱う必要がある。
プロキシには複数の役割がある。公開されたJobのポートは Authorization: Bearer <HF token> ヘッダを要求するため、それを付与する。加えて、各ロールアウトをKVプレフィックスを保持している可能性の高いレプリカへ振り分け、アダプタ更新を全レプリカへブロードキャストする。
アダプタのスロット数はmax_stalenessから決まる。max_staleness=4なら現在のポリシーと過去4つを同時に扱う必要があり、切り替え中の1枠を足して --max-loras 6 になる。5では同期のたびに、まだ実行中のロールアウトを持つポリシーが黙って追い出されてしまうという。
検証データと注意点
検証には sail/Sanity-Test-R1D-1.5B が使われた。論文「Defeating the Training-Inference Mismatch via FP16」(Qi et al., 2025)で使われたデータセットで、DeepSeek-R1-Distill-Qwen-1.5BでMATHの問題ごとに40の回答を生成し、成功率20%〜80%の問題を残して1,460問に絞ったものだという。すぐ解ける問題でも絶望的な問題でもないため、初期の学習信号が得やすいと説明されている。
ハイパーパラメータは Qwen/Qwen2.5-Math-1.5B、LoRA rank 1、alpha 2、学習率4e-5、プロンプトあたり8サンプル、1ステップあたり128コンプリーション、最大3,000生成トークン、4,096トークン文脈となっている。重み同期は4オプティマイザステップごと、チェックポイントは50ステップごとにバケットへ保存される。
注意点も示されている。TRLは --data-parallel-size を1より大きくした構成ではアダプタのみの同期を拒否する。DoRAやmodules_to_save、--max-lora-rankを超えるrankはマージ済み重み同期にフォールバックし、警告が出る。プロキシの実装詳細やスループットの数値は、本記事で確認できる範囲では示されていない。
| 項目 | 全重み同期 | LoRAアダプタ同期 |
|---|---|---|
| 1回の同期で転送する量 | 約3GB(モデル全体) | 数メガバイト(rank-1アダプタ) |
| Job間の通信手段 | NCCLが必要 | Storage Bucket経由(hf-mount) |
| 別マシンのJobをまたぐ構成 | 不可(共有ノードが前提) | 可能(トレーナーとvLLMを分離) |
A rank-1 adapter is a few megabytes, so it can travel through a Storage Bucket mounted in every Job instead of over NCCL.
rank-1アダプタは数メガバイトなので、NCCL経由ではなく、各JobにマウントされたStorage Bucketを通じて転送できる。
今後の見通し
TRL v1.14以降、AsyncGRPOTrainerのLoRAアダプタ同期は利用できる状況にあるとみられる。ただしvLLMはv0.27.1に固定されており、フラグやランタイムLoRAエンドポイントはバージョンに依存するため、vLLMの更新に追従できるかが導入判断の材料になる。プロキシの実装が公開されれば、同じ構成を再現しやすくなるだろう。またmax_stalenessの値やデータセット規模を変えたときの学習曲線が明らかになれば、実運用での設定判断がしやすくなる。
日本の開発者・IT企業にとっての意味
日本企業がLLMの強化学習(RLHFやRLVR)を内製する場合、これまではトレーナーと推論サーバーを同じクラスタに置き、NCCLや共有ファイルシステムを用意する必要があった。今回の構成は、マネージドなJob実行環境とオブジェクトストレージでそれを置き換えられる可能性を示している。rank-1のLoRAなら同期のたびに数メガバイトを書くだけで済むため、ノードをまたぐ通信基盤を持たない小規模チームでも非同期RLのパイプラインを組みやすい。一方で、Hugging Face Jobsの利用可能リージョンや料金、SLAは日本での実運用を判断する材料として別途確認が必要になる。自前のKubernetes上で「共有ストレージ+プロキシ」という同じ設計を再現する道もある。
気になる点
- 既存のTRLやvLLMの環境から移行できますか
- TRL v1.14が必要で、アダプタのみの同期が有効になるとログに「Adapter-only vLLM sync enabled」と出るとされています。vLLMはv0.27.1に固定され、記事で使うフラグとランタイムLoRAエンドポイントはこのバージョンのものです。DoRAなどvLLMが直接扱えない設定はマージ済み重み同期にフォールバックし、警告が出ます。
- 複数のGPUで推論をスケールできますか
- TRLは --data-parallel-size を1より大きくした構成ではアダプタのみの同期を拒否します。/v1/load_lora_adapter の呼び出しが応答したDPランクにしか届かず、他のランクが新しいアダプタを読み込まないためです。記事の構成では、独立したvLLM Jobを複数立ててプロキシで振り分ける方法が採られています。
- コストや日本での提供状況はどうなっていますか
- 本記事で確認できる範囲では、Hugging Face Jobsの料金や利用可能なリージョンについての記載はありません。GPU種別としてh200フレーバーや1ノードあたり最大8xH200といった記述はありますが、価格は示されていません。日本リージョンの有無や料金は公式ドキュメントで確認する必要があります。
用語解説
- TRL
- Hugging Faceが開発する、強化学習などで言語モデルを事後学習するためのライブラリ。
- vLLM
- 高スループットなLLM推論サーバー。アダプタを実行時に読み込むエンドポイントを持つ。
- LoRA
- モデル全体ではなく小さな追加パラメータだけを学習する手法。配布するファイルを小さくできる。
- GRPO
- 報酬をもとに方策を更新する強化学習アルゴリズムの一種。AsyncGRPOTrainerはその非同期版。
- NCCL
- GPU間の集合通信ライブラリ。ノードをまたぐ重み同期などで使われる。
- KVキャッシュ
- 生成時に計算した注意機構の中間結果。プレフィックスが一致すれば再利用できる。
出典
Async GRPO with LoRA across HF Jobs: a bucket, a proxy, and no NCCL
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する