推論モデル(DeepSeek-R1・o3)はなぜ「分散システム」問題なのか——並列・分散RL訓練の基礎と実践ガイド
はじめに
2025年以降、DeepSeek-R1・OpenAI o3・Kimi k1.5といった「推論モデル(Reasoning Language Models, RLM)」が、数学・コード・科学推論で目覚ましい成果を上げています。RLMとは、事前学習とSFT(教師あり微調整)の後に、検証可能な報酬を使う強化学習(RL)で推論能力を強化したLLMのことです。
しかし、その裏側では最先端のRLMを一から訓練するのに数百万GPU時間が必要で、従来の教師ありLLM訓練を大きく超える計算資源が消費されています。ETH Zurichの論文(arXiv:2608.27046)は、この負荷の構造を「work-depthモデル(Work/Depth/Memory)」で初めて体系的に分析しました。本記事では「推論モデルの訓練は、アルゴリズムの問題であると同時に、並列・分散システムの問題でもある」という問いを軸に、どこがボトルネックで、どの並列化が効くのかを解説します。
推論モデル(RLM)とは何か:RLVRとPPO/GRPOの基礎
RLMの訓練は 生成(Generation)→ 評価(Assessment)→ 更新(Training) の反復ループです。登場するモデルは最大4つで、訓練対象のポリシー(Actor)、報酬を返す報酬モデル(Reward・凍結)、価値を推定するクリティック(Critic・訓練対象)、KL正則化の基準となるリファレンスモデル(凍結)からなります。
報酬の与え方と更新方式により、主要アルゴリズムは次の4系統に整理できます。
| 手法 | オンライン生成 | クリティック | 特徴 |
|---|---|---|---|
| RLVR | あり | 任意 | 正解照合やテスト実行など検証可能な報酬を使う。DeepSeek-R1やDAPOが採用 |
| PPO | あり | あり | 4モデルを使うActor-Critic方式。安定だが計算量が増える |
| GRPO | あり | なし | クリティックを省き軽量。DeepSeek-R1が採用 |
| DPO | なし | なし | オフライン選好最適化。軽量だがデータセット外の探索は不可 |
ここで重要なのは、アルゴリズムの選択がそのままシステムの計算プロファイルの選択になることです。PPOはクリティック分の計算とメモリが加わり、GRPOはその分を節約できます。「どのモデルを何回動かすか」がGPU構成や通信パターンまで左右するのです。
なぜこんなに重いのか:計算量の内訳
RLM訓練の負荷は、総作業量(Work)・最長クリティカルパス(Depth)・メモリ量(Memory)の3指標で測られます。特に重要なのがDepthです。1本の応答を生成するDepthは O(T × モデル1回分のDepth)(T=応答トークン数)で、前のトークンが決まらないと次を生成できない自己回帰の逐次性は、GPUを何台並べても消えません。これが「効率的なデコードカーネル(vLLM等の推論エンジン)が最重要」という結論につながります。メモリ面ではKVキャッシュが 2×(S+T)×L×d に比例して肥大化し、長い思考過程(CoT)ではTが数万に達してGPUメモリを支配します。
また、モデルの性質によって負荷は大きく変わります。Reward・Referenceは凍結(forwardのみ)なので複製・量子化・オフロードが容易ですが、Actor・Criticは勾配とオプティマイザ状態が乗り、パラメータの約4倍の状態量に活性値が加わります。「凍結モデルを軽く、訓練モデルを太らせない」設計が基本です。
モデル内並列化(Intra-Model Parallelism):6つの道具
モデル内並列化は、1つのモデルを複数GPUに複製・分割する手法で、次の6つに整理されます。
- DP(データ並列):モデルを複製しバッチを分割。スループットは伸びるが、逐次生成のレイテンシは改善しない
- TP(テンソル並列):層のパラメータを分割。モデルが1枚に載らない時に使うが、同期通信がオーバーヘッドになり得る
- PP(パイプライン並列):層を段階に分割。生成では逐次制約が残るため評価・訓練向け
- SP(シーケンス並列):活性値をシーケンス次元で分割。長いCoTの訓練メモリを削減
- CP(コンテキスト並列):コンテキスト全体を分割(Ring Attention等)。長い思考トレース・ツール履歴で重要
- EP(エキスパート並列):MoEのエキスパートを分散配置。DeepSeek-R1(671B・約37Bアクティブ)級では必須
使い分けの勘所は「段階ごとに最適な手法が変わる」ことです。Generationはレイテンシ敏感、Assessmentはスループット重視、Trainingはメモリ重視です。実践則は「モデルが1枚に載るならTP不要、DP+ZeRO/FSDPで十分」。AMD MI300X(192GB)の実験では、TPなしがTP2/4分割よりロールアウトスループットで2.3〜4.3倍高速でした。
モデル間並列化(Inter-Model Parallelism):合計を最大値に変える
複数モデルをどのGPU群に置き、時間的にどう重ねるかも重要です。全モデルを同一GPU群に置くコロケートは単純ですが、役割ごとの特性に最適化できません。一方、ディスアグリゲーション(分離配置)はActorを訓練向けGPU、凍結モデルを安価な推論向けGPUに置く方式です。
ただし分離だけでは速くなりません。ステージ融合は、生成の長尾分布(一部の応答が極端に長い)で空く時間に、終わったサンプルから順次評価へ流す手法で、RLHFuseではスループット最大3.7倍が報告されています。非同期実行はイテレーション間のバリアを外し、前回の訓練完了前に次イテレーションの生成を始める手法で、AReaL・StreamRLなどが実装例です。ただし古い重みで学習するポリシードリフトと、生成用シャドウコピーによるメモリ約2倍がトレードオフになります。
クリティカルパスは、逐次実行の 生成+評価+訓練 から、融合で max(生成, 評価)+訓練、非同期化で max(生成+評価, 訓練) まで縮みます。「合計をmaxに置き換える」ことがRL訓練をスケールさせる要点です。
どう使えるか:フレームワーク選びの実践ガイド
既存実装は大きく3系統に分類できます。
| 系統 | 代表例 | 向き先 |
|---|---|---|
| ライブラリ型 | TRL・DeepSpeed-Chat | 小規模実験・導入の簡単さ重視 |
| オーケストレータ型 | OpenRLHF・verl(HybridFlow) | 複数GPU・本番規模・役割別配置 |
| スケジューリング型 | RLHFuse・StreamRL・AReaL | 融合・非同期で数百GPU規模 |
verl(HybridFlow)はByteDance Seed発のオープンソースで23k超のスターを集め、671B級MoE・数百GPUに対応します(EuroSys 2025採択)。OpenRLHFはRay+vLLM構成で70B+モデルに対応し、どちらもカスタム報酬関数(テスト実行・正解照合)を小さなコードで追加できます。
ローカル・小規模環境では「モデルが1枚のGPUに載るか」が最初の判断基準です。載るならTPよりDP+ZeRO/FSDPを選び、生成はvLLM等の推論エンジンに任せます。融合・非同期実行は精度検証済みの本番向けであり、研究段階では同期実行(on-policy)の方が安定です。まずはシンプルな構成で方針を固め、ボトルネックが明確になってから段階的に導入するのが安全です。
今後の展望
論文が示す研究課題のうち、今後1〜2年で実装に近づきそうな方向は3つです。
- リソース認識型のテスト時計算:トークン数・レイテンシ・エネルギー予算のもとで思考量を最適化する
- チェーンを超えた推論構造:Tree of Thoughts/Graph of Thoughtsなど非線形な思考をRLパイプラインへ統合する
- 並列化スキームの自動選択:AutoDDL等を拡張し、3段階+モデル間配置まで含めて自動最適化する
訓練コストは現時点でフロンティアモデルが数千万〜数億ドル規模、2027年には10億ドル超も見込まれており、これらのテーマの価値は高まる一方です。
よくある質問
推論モデル(RLM)と普通のLLMは何が違うのですか?
事前学習とSFTに加え、検証可能な報酬を使う強化学習(RLVR)で「考える」能力を訓練したモデルです。正解照合やテスト実行を報酬に使い、長い思考過程(CoT)を自己改善する点が最大の違いで、その分訓練の計算量は従来の教師あり学習を大幅に上回ります。
PPOとGRPOはどちらを使えばいいのですか?
クリティックを置くPPOは安定性が高い一方、計算とメモリがおよそ2倍になります。GRPOはクリティックを省いて軽量ですが、学習が不安定になりやすいため生成量やバッチ設計で補います。限られたGPUで試すならPPO、スケールを前提とするならGRPOが目安です。
なぜTP(テンソル並列)をむやみに使うと遅くなるのですか?
層のパラメータを分割するため、計算のたびにall-reduce通信が発生します。モデルが1枚に載る規模ではこの通信が純粋なオーバーヘッドになり、AMD MI300Xの実験ではTPなしが2.3〜4.3倍高速でした。「載るならTPを使わない」のが実践的な指針です。
ローカル環境でRL訓練を始めるにはどのフレームワークがおすすめですか?
小規模・実験目的ならTRLやDeepSpeed-Chat(ライブラリ型)が導入しやすいです。複数GPUで役割ごとに最適化するならverl(HybridFlow)かOpenRLHFが本格的で、カスタム報酬関数も小さなコードで書けます。まずは1枚に載る小さなモデルで報酬関数の動作を確かめるのが安全です。
推論モデルを「分散」で動かす意味は何ですか?
GPUを役割別に分離(ディスアグリゲーション)し、終わったサンプルから順次処理する融合・非同期実行で空き時間を減らせます。自己回帰生成の逐次性は消えませんが、全体の壁時計時間を「合計」から「最大値」に縮められるのが分散化の狙いです。
まとめ
推論モデルの訓練は、アルゴリズムの進化と並列・分散システムの進化が交差する領域にあります。ここまでの要点は3つの原則に集約できます。
- 生成の逐次性への投資:自己回帰の逐次依存は並列化しても消えないため、vLLM等の推論エンジンでデコードを最適化する
- 凍結と訓練モデルの分離:報酬・リファレンスは軽い推論サービスとして分離配置し、訓練モデルのメモリを太らせない
- 融合と非同期実行:クリティカルパスを「合計」から「最大値」に変え、空き時間を使い切る
ETH Zurichの論文(arXiv:2608.27046)は、work-depthモデルでこれらの知見を初めて体系化した分析です。推論モデルをスケールさせるエンジニアにとって、今後共通言語になるでしょう。
参考資料
- Performance Foundations of Parallel & Distributed Reasoning Language Models — https://arxiv.org/abs/2608.27046v1
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — https://arxiv.org/abs/2501.12948
- Kimi k1.5: Scaling Reinforcement Learning with LLMs — https://arxiv.org/abs/2501.12599
- verl(HybridFlow オープンソース版)— https://github.com/verl-project/verl
- OpenRLHF — https://github.com/OpenRLHF/OpenRLHF
- note「LLMのための強化学習手法 2025 -PPO・DPO・GRPO・DAPO一気に理解する-」— https://note.com/olachin/n/n9706c13c8678
- issoh.co.jp「GRPOの公式(アドバンテージ)はどう計算しますか?」— https://www.issoh.co.jp/tech/details/5506/
- 推論トークンは本当に元を取れるのか?——LLMの「考えるコスト」を測る Token Economy Score(TES)— https://gotosocial.chinng-lab-srv.dev/tui-lun-tokunhaben-dang-niyuan-woqu-rerunoka-llmno-kao-erukosuto-woce-ru-token-economy-score-tes/