GRPO(Group Relative Policy Optimization)(ジーアールピーオー)
DeepSeekが提案したPPOの軽量代替アルゴリズム。価値関数を排除しグループ内相対報酬でアドバンテージを推定することで、メモリ使用量を大幅に削減する。
GRPOとは
GRPO(Group Relative Policy Optimization)は、DeepSeekが2024年にDeepSeekMathの論文で提案した強化学習アルゴリズムである。PPOが必要とする価値関数(Criticモデル)を完全に排除し、同一プロンプトに対する複数サンプルのグループ内相対報酬でアドバンテージを推定する。これによりGPUメモリ消費を約25-40%削減しつつ、数学的推論タスクでPPO同等以上の性能を達成した。
GRPOの仕組み
PPOでは各トークンのアドバンテージ推定に価値関数V(s)を使うが、GRPOは以下のアプローチで価値関数を不要にする:
- 同一プロンプトからG個の応答をサンプリング(G=通常8-64)
- 各応答に報酬モデルでスコアを付与
- グループ内の報酬を正規化(平均0、分散1)してアドバンテージとする
| 項目 | PPO | GRPO |
|---|---|---|
| 必要モデル数 | 4(方策+参照+報酬+価値) | 3(方策+参照+報酬) |
| メモリ効率 | 基準 | 約25-40%削減 |
| サンプル効率 | 高(価値関数で再利用) | 低(グループサンプル必要) |
| 実装複雑度 | 高 | 中 |
| 代表採用例 | InstructGPT, GPT-4 | DeepSeek-V2/V3, Qwen2.5 |
アドバンテージ推定の数学的直感
PPOのGAE(Generalized Advantage Estimation)は時間的差分(TD誤差)の指数移動平均であり、価値関数の精度に依存する。
GRPOのアドバンテージは単純な正規化統計量:
A_i = (R_i - mean(R_1...R_G)) / std(R_1...R_G)
この推定は以下の仮定に基づく:
- 同一プロンプトに対する応答群は比較可能である
- グループサイズGが十分大きければ統計的に安定する
- 報酬モデルの絶対値より相対順序が重要である
GRPOが有効な場面と限界
有効な場面:
- 数学・コーディングなど検証可能な報酬がある場合(outcome-based RM)
- GPUメモリが制約されている環境
- 大規模モデル(67B+)でのRLHFパイプライン構築
限界:
- グループサイズGに比例してサンプリングコストが増大
- 対話品質やニュアンスの評価など、報酬の分散が大きいタスクではアドバンテージ推定が不安定
- 長文生成ではトークンレベルの信用割り当て(credit assignment)精度がPPOに劣る可能性
実装例と採用状況
DeepSeek-V2(2024年5月)で初めて大規模実戦投入され、DeepSeek-V3およびDeepSeek-R1でも採用された。Qwen2.5シリーズもGRPO系の最適化を取り入れている。
TRLライブラリでは GRPOTrainer として公式サポートされており、PPOTrainerからの移行は設定変更のみで完了する。
FAQ
Q: GRPOのグループサイズGはどう設定するか?
A: DeepSeekMathの論文ではG=64が使用されたが、実用的にはG=8-16でも安定した学習が報告されている。Gが小さすぎると正規化が不安定になり、大きすぎるとサンプリングのGPU時間がボトルネックになる。
Q: GRPOとREINFORCE Leaveone-Outの違いは?
A: 両者とも価値関数を排除する点は共通だが、GRPOはグループ全体の平均をベースラインに使い、RLOO(REINFORCE Leave-One-Out)は当該サンプルを除いた平均をベースラインに使う。RLOOの方がバイアスが小さいが、GRPOはバッチ正規化との親和性が高い。
Q: PPOからGRPOへの移行は容易か?
A: TRLフレームワークを使っている場合、PPOTrainer を GRPOTrainer に置き換え、num_generations(グループサイズ)パラメータを追加するだけで移行できる。価値関数ヘッドの削除により学習開始までの準備時間も短縮される。