GRPOとは?報酬比較だけでLLMを強化学習しやすくする省メモリ学習手法

GRPOは、PPOのような価値モデルを持たずに、同じ質問に対する複数回答の相対評価からLLMを強化学習する手法です。仕組み、実験結果、実務での使い道を日本語で解説します。

参考文献

DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

Zhihong Shao, Peiyi Wang, Qihao Zhu, Runxin Xu, Junxiao Song, Xiao Bi, Haowei Zhang, Mingchuan Zhang, Y. K. Li, Y. Wu, Daya Guo

論文を見る

今回の論文

今回取り上げるのは、Zhihong Shao、Peiyi Wang、Qihao Zhu、Runxin Xu、Junxiao Song、Xiao Bi、Haowei Zhang、Mingchuan Zhang、Y. K. Li、Y. Wu、Daya Guo による論文「DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models」です。2024年2月5日に arXiv で公開された論文で、公開元は arXiv、研究分野は LLM の数理推論、強化学習、学習データ構築です。URL は https://arxiv.org/abs/2402.03300 です。

この論文を選んだ理由は、数理特化モデルそのものだけでなく、後半で提案される GRPO が、その後の LLM 強化学習でかなり再利用される考え方になっているからです。特に「報酬モデルは使いたいが、PPO のように価値モデルまで抱えるのは重い」という現場の悩みに対して、かなり実装寄りの答えを出しています。

どんな技術か

GRPO は Group Relative Policy Optimization の略で、LLM を強化学習で改善するときに、同じ質問に対して複数の回答を生成し、その相対的な良し悪しを使って方策を更新する手法です。

通常の PPO ベース RLHF では、方策モデルに加えて価値モデルを学習し、各トークンの advantage を推定します。ところが LLM の文生成では、報酬が文末にしか付かないことも多く、価値モデルをきれいに学習させるのが難しいうえ、メモリと計算コストも重くなります。

GRPO はここで発想を変えます。1つの質問に対して 1 回答だけを見るのではなく、複数回答を同時にサンプリングし、そのグループ内で「どれが相対的に良かったか」を見ます。そして、グループ平均を基準に報酬を正規化し、その値を advantage の代わりに使います。これにより、価値モデルなしで PPO に近い更新を行えます。

要するに GRPO は、「絶対スコアを精密に予測する critic を別に持つ」のではなく、「同じ問題に対する複数案を比較して、相対的に良い案を伸ばす」LLM 向け強化学習です。人が複数案を見比べて改善する感覚に近く、実務でも理解しやすい設計です。

課題

GRPO が解決しようとしているのは、LLM の強化学習をもっと現実的なコストで回せるようにすることです。

何が難しいのかというと、PPO 系の手法は方策モデルだけでなく価値モデルも必要で、しかも LLM ではその価値モデルが大きくなりがちだからです。方策モデルと同規模の value head あるいは別モデルを持つと、GPU メモリも学習の複雑さも一気に増えます。大規模モデルではこれがかなり重い負担になります。

既存の方法ではどこに限界があるのかというと、まず PPO は安定した強化学習をしやすい一方で、構成が重いです。また、文全体に対して最後にしか報酬が付かない設定では、各トークンに対する価値推定がノイズを含みやすくなります。逆に Rejection Sampling Fine-Tuning のような単純な方法は扱いやすいですが、オンラインで方策を少しずつ改善する仕組みとしては弱い面があります。

なぜこの課題を解く必要があるのかというと、LLM の性能改善が「事前学習で全部決まる」段階から、「推論の質に合わせて後段で方策を磨く」段階へ移っているからです。数理推論、コード生成、ツール使用、長い手順が必要なタスクでは、SFT だけでは頭打ちになりやすく、RL を入れたくなります。ただし、RL の実装コストが高すぎると、多くのチームでは回せません。

実際の AI システムでは、回答候補の比較評価はできても、精密な価値関数を別途学習する余裕がない場面が多いです。たとえば社内向けエージェント、コード修正モデル、業務フロー自動化モデルなどでは、ルールベース採点やペア比較は作れても、PPO 一式を継続運用するのは重いことがあります。GRPO は、そうした現実的な制約の中で RL を回しやすくする技術だと言えます。

用語解説

PPO(Proximal Policy Optimization)
強化学習でよく使われる方策最適化手法です。LLM の RLHF でも定番ですが、通常は方策モデルに加えて価値モデルを学習します。GRPO はこの PPO を LLM 向けに軽量化した派生形として理解すると読みやすいです。
方策モデル(Policy Model)
次のトークンをどの確率で出すかを決めるモデルです。LLM 強化学習では、この方策を更新して望ましい回答を出しやすくします。GRPO でも主役はこの方策モデルです。
価値モデル(Value Model / Critic)
ある状態や途中出力が将来的にどれくらい良い報酬につながるかを推定するモデルです。PPO の安定化に使われますが、LLM では学習コストが高くなりやすく、GRPO はこれを持たないのが大きな特徴です。
Advantage
ある行動が基準よりどれだけ良かったかを表す量です。方策勾配法では更新方向を決める重要な信号になります。GRPO では価値モデルの代わりに、同一質問グループ内で正規化した報酬を advantage として使います。
KL 正則化
学習後の方策が元の参照モデルから離れすぎないようにする制約です。GRPO でも参照モデルとの KL 項を使い、報酬最適化だけで出力分布が壊れるのを防ぎます。

技術の仕組み

GRPO の中心は、「価値モデルによる絶対評価」ではなく、「同一質問内の相対評価」で更新信号を作ることです。

基本アイデア

論文では、同じ質問 q に対して旧方策から複数の出力をサンプリングします。たとえば 64 個の回答候補を出し、それぞれを報酬モデルやルールベース採点器で評価します。そのあと、各候補の報酬を単独で使うのではなく、グループ平均と標準偏差で正規化します。

この正規化済み報酬が、「この候補は同じ質問に対する他候補より良かったか悪かったか」を表す信号になります。つまり GRPO は、問題ごとにローカルな順位づけを作り、それを学習に使っています。

PPO との違い

PPO では、報酬と価値関数から advantage を作ります。GRPO では価値関数を持たず、同一質問に対する複数回答の相対スコアから advantage を作ります。論文では、PPO の価値モデルは方策モデルと同規模になりやすく、大きなメモリ負荷になると指摘しています。

もう1つの違いは、KL 項の扱いです。GRPO は PPO 風の clipped objective を保ちつつ、参照方策との KL ダイバージェンスを損失に直接加えます。これにより、報酬を追いすぎて出力分布が崩れるのを抑えます。

グループ相対 advantage の作り方

論文の outcome supervision では、各質問について得た報酬列 r = {r1, r2, ..., rG} を使い、各候補の正規化報酬を

(ri - mean(r)) / std(r)

で計算します。これがその候補全体に対する advantage として使われます。言い換えると、平均との差が正ならその回答を押し上げ、負なら押し下げます。

ここで重要なのは、絶対報酬のスケールに依存しにくい点です。採点器の出力が多少ずれていても、同じ質問の中で相対比較ができれば学習信号を作れます。これは、報酬モデルが完全ではない現場でかなり扱いやすい性質です。

モデル構造

GRPO 自体は新しい LLM アーキテクチャではありません。既存の SFT 済み LLM に対して、RL の更新ループだけを差し替えるイメージです。論文では DeepSeekMath-Instruct 7B を初期方策にし、参照モデルを固定しつつ、方策モデルを GRPO で更新しています。

つまり実装の主戦場は Transformer の中ではなく、学習ループ側にあります。既存の生成モデルに対して導入しやすいのは、この設計のおかげです。

学習方法

論文の設定では、GSM8K と MATH に関する chain-of-thought 形式の SFT データ約 14.4 万問を使って RL を行っています。各質問ごとに 64 個の出力をサンプリングし、報酬モデルで採点して、KL 係数 0.04、方策学習率 1e-6 で更新しています。

ポイントは、GRPO が「方策モデルを更新する前に、その質問に対する候補群を集める」ことです。これはバッチ内のサンプルを独立に見る通常の教師あり学習とは違い、質問単位の比較構造を前提にしています。

推論ではなく学習時に効く技術

GRPO は推論高速化ではなく、学習の仕方を変える技術です。使う場面は、モデルをデプロイして終わりではなく、「あるタスクに対してモデルをもう一段よくしたい」ときです。たとえばツール呼び出しの成功率、数理推論の正答率、フォーマット遵守率、コードパッチの通過率など、結果ベースで改善したいタスクに向いています。

Process Supervision への拡張

論文では、最終回答だけに報酬を付ける outcome supervision だけでなく、途中の推論ステップごとに報酬を与える process supervision も検証しています。process supervision では、各ステップ終端で得た報酬を正規化し、その時点以降のトークンに累積的に割り当てます。

この拡張が意味するのは、GRPO が単なる「回答の当たり外れ」の学習だけでなく、「途中の考え方」を少しずつ良くする方向にも使えることです。エージェントや長い手順タスクでは、こちらのほうが重要になる場面もあります。

実験と結果

論文では、GRPO が本当に有効なのかを、数理推論ベンチマークと複数の RL 設定比較で検証しています。

何を検証したのか

主な検証ポイントは3つあります。1つ目は、GRPO で SFT 後のモデルがどれだけ性能向上するかです。2つ目は、outcome supervision と process supervision のどちらが効くかです。3つ目は、単発の RL だけでなく iterative RL や online training のような運用面の工夫が効くかです。

データセットと評価指標

評価には GSM8K、MATH、CMATH などの数理推論ベンチマークが使われています。英語だけでなく中国語数学ベンチマークも含まれており、単なる訓練内最適化ではなく、一定の汎化も見ています。評価指標は主に正答率です。

RL 学習自体は GSM8K と MATH の chain-of-thought 形式データを中心に回し、それ以外のベンチマークは out-of-domain 的な評価として使っています。この構成のおかげで、「学習した問題だけ強くなった」のか、「推論能力自体が少し伸びた」のかをある程度切り分けて見られます。

SFT からさらに性能を押し上げた

論文では、DeepSeekMath-Instruct 7B に対して GRPO を適用した DeepSeekMath-RL 7B が、GSM8K で 82.9% から 88.2%、MATH で 46.8% から 51.7% に改善したと報告しています。CMATH でも 84.6% から 88.8% に伸びており、訓練対象外のベンチマークにも改善が波及しています。

ここで重要なのは、巨大な追加事前学習ではなく、SFT 後の RL 段階だけでこの改善が出ていることです。しかも論文では、GRPO は GSM8K と MATH の一部 SFT データだけを使っており、データ範囲はかなり限定的です。それでも他指標にまで伸びているため、「比較ベースの RL で推論方策そのものを磨ける」ことを示しています。

Process Supervision のほうが強かった

論文の分析では、GRPO+PS は GRPO+OS より良い結果を示しました。著者らは、途中ステップごとの細かい報酬が、最終結果だけを見るよりも学習信号として有効だと述べています。

これは実務的にも納得しやすいです。たとえばツール使用エージェントでも、最後に成功したかだけでなく、途中のツール選択や観測解釈が妥当だったかを見られるなら、そのほうが改善しやすいです。GRPO はこうした段階的評価と相性がよいと考えられます。

Iterative RL も効いた

論文では iterative GRPO も試しており、方策が変わった後に報酬モデルも更新し直すことで、特に最初の反復で大きな改善が出たと報告しています。これは、古い報酬モデルだけに頼ると、新しい方策の出力分布をうまく採点できなくなるという直感に合います。

ここから言えるのは、GRPO は単発の学習アルゴリズムというより、継続改善ループの一部として見るべきだということです。方策が変われば比較対象の質も変わるので、報酬モデル側も追従したほうがよいわけです。

結果から何が言えるのか

実験全体から見えてくるのは、LLM の RL では「critic を精密に持つこと」よりも、「同一プロンプト内の候補比較をうまく使うこと」がかなり強い学習信号になりうる、ということです。特に回答品質を順位や相対差で見やすいタスクでは、GRPO の設計が実務に乗せやすいです。

何に使える?

GRPO は、最終的な良し悪しを比較しやすいが、価値モデルまで重く持ちたくない場面で使いやすいです。

数理推論やコード生成の強化

論文の本筋どおり、数理推論との相性は非常によいです。正解判定がしやすく、複数候補の中で相対的に良い推論を選びやすいからです。同じ構造はコード生成にも転用しやすく、ユニットテスト通過率や静的解析結果を報酬として GRPO を回す設計が考えられます。

ツール使用エージェントの学習

エージェントでは、最終タスク達成率だけでなく、ツール選択の順序や観測の使い方も品質に効きます。GRPO に process supervision を組み合わせれば、最終成功だけでなく中間ステップの良し悪しも反映しやすいです。たとえば検索ツールの使いどころ、SQL 発行順序、ブラウズ戦略の改善に応用しやすいです。

フォーマット遵守や業務ルール遵守の改善

社内 AI では、回答内容の正しさだけでなく、JSON 形式遵守、禁止語回避、社内ルールへの適合なども重要です。これらはルールベース採点器を作りやすいので、複数候補を比較して良い形式を押し上げる GRPO と相性があります。

RAG 後段の回答方策改善

RAG の品質は検索だけで決まりません。取得した根拠をどう使って回答を組み立てるかも重要です。引用漏れ、根拠の混同、不要な推測を減らすような採点器を作れれば、GRPO で回答方策を後段調整する余地があります。

小規模チームでの軽量 RL 導入

PPO 一式を本格運用するのは難しくても、SFT モデル、参照モデル、報酬モデル、候補群サンプリングの4点をそろえられるなら、GRPO は比較的入りやすいです。特にオフライン評価器やルール採点器がすでにあるチームでは、次の一手として現実的です。

開発や事業へのヒント

この論文から得られるヒントは、LLM 改善の単位を「正解データの追加」だけにしないことです。

評価器を作れるなら学習器に変えられる

多くのプロダクトでは、すでに内部で回答評価をしています。たとえば QA 精度、テスト通過率、ツール成功率、フォーマット違反率などです。GRPO の発想に立つと、それらの評価器は単なる分析用ではなく、方策更新用の報酬源にもなります。つまり、運用で使っている指標を学習ループに接続しやすいです。

絶対採点より相対比較のほうが現場で作りやすい

完全な 100 点満点採点器を作るのは難しくても、「この2案ならどちらがよいか」や「同じ質問の候補の中でどれがましか」は作りやすいことが多いです。GRPO はこの現実をうまく利用しています。評価器設計のハードルを少し下げられるのは、事業面でも大きいです。

小規模プロダクトでも部分導入できる

論文どおりの大規模 GRPO をそのまま回さなくても、同一入力から複数候補を出し、ルール評価で順位づけして、そのログを学習データにする流れは小さく始められます。最初は Rejection Sampling 的に使い、後から GRPO 風のオンライン更新へ進む形も現実的です。

今後注目すべき方向性

今後は、報酬モデルの精度だけでなく、比較単位の設計がより重要になりそうです。どの候補群を比べるか、どの中間ステップに報酬を置くかで、学習される振る舞いはかなり変わります。これは論文の直接結論というより実務上の推測ですが、GRPO を使うなら「何を比べるか」の設計がプロダクト差分になりやすいです。

限界

GRPO は軽量化された RL 手法ですが、万能ではありません。まず、グループ内相対評価に依存するため、候補群の多様性が低いと学習信号が弱くなります。どれも似たような回答しか出ない段階では、平均との差を取っても改善方向が見えにくいです。

また、報酬モデルやルール評価器の質に強く依存します。相対比較で多少頑健になるとはいえ、採点器が誤った好みを学習していれば、方策もその方向へ寄っていきます。特に安全性、事実性、長期整合性のような複雑な性質は、単純な報酬では測りにくいです。

計算コストにも注意が必要です。価値モデルが不要でも、各質問に対して複数候補をサンプリングするので、生成コスト自体はそれなりにかかります。論文では各質問あたり 64 出力をサンプルしており、小さなモデルならともかく、大規模モデルでは無視できません。

さらに、実運用では process supervision 用の報酬付けが難しい場合があります。途中ステップに意味のある評価をどう与えるかはタスク依存で、ここが設計できないと GRPO の強みを十分に活かせません。

最後に、論文の主実験は数理推論中心です。コード、業務エージェント、一般対話で同じ程度の改善が出るかは追加検証が必要です。この部分は将来有望ですが、現時点では推測も含みます。

よくある質問

Q. GRPO は PPO の完全な代替ですか?

A. 完全な代替というより、LLM 向けに実装しやすくした PPO 系手法と見るのが適切です。特に、価値モデルを持たずに相対報酬から advantage を作れる点が強みです。一方で、候補群サンプリングや報酬設計の品質には強く依存します。

Q. GRPO は報酬モデルなしでも使えますか?

A. 使える余地はあります。論文でも「ルールで正誤判定できる報酬」と「報酬モデルによる採点」を区別して議論しています。コードのテスト通過や JSON 妥当性のように、自動判定できるタスクではルールベース報酬でも回しやすいです。

Q. なぜ相対評価が効くのですか?

A. 同じ質問に対する候補同士を比べると、採点器の絶対値のズレよりも「どちらが良いか」の情報を取りやすいからです。LLM の出力品質はプロンプトごとの難易度差が大きいので、質問内で正規化する発想はかなり合理的です。

Q. RAG やエージェントにも使えますか?

A. 使える可能性は高いです。特に、最終成功率や中間ステップ品質を自動評価できるなら、GRPO の相対比較は活かしやすいです。ただし、論文の主実験は数理推論なので、実タスクでの報酬設計と評価は別途必要です。

Q. 小規模チームでも導入できますか?

A. PPO よりは導入しやすいです。とはいえ、複数候補生成、参照モデル保持、報酬計算、RL 更新の流れは必要です。まずはオフライン候補比較や Rejection Sampling から始め、改善余地が見えたら GRPO に進むのが現実的です。

今日の学び

この論文は、LLM の強化学習を高コストな PPO 一式に頼らず、もっと回しやすくできないかという課題を扱っています。そこで提案されたのが、同一質問に対する複数候補の相対比較から advantage を作る GRPO です。

ここから得られるヒントは、LLM 改善では「良いデータを増やす」だけでなく、「複数候補をどう比べて学習信号に変えるか」が重要だということです。評価器や業務ルールをすでに持っているプロダクトほど、GRPO 的な考え方を学習改善に接続しやすそうです。

関連記事