思考の多様性が推論を強くする:論文『Prompt Augmentation Scales up GRPO』が示す数学学習の最適解
【要点サマリ】
GRPOの強化学習において、多様な思考テンプレートを用いることで数学的推論能力を安定的に向上させる手法の提案。
解決した課題:従来のGRPOにおける単一テンプレートへの過学習と、それに伴う報酬(Reward)の不安定な変動。
改善指標:GSM8KおよびMATHベンチマークにおいて、標準的なGRPOと比較して大幅な精度向上と収束の高速化を実現。
手法の肝:推論過程を記述するプロンプトを動的に拡張し、モデルが特定の「解き方」に固執するのを防ぐ。
【背景と最新動向】
2025年1月に公開されたDeepSeek-R1以降、LLMの推論能力向上においてGRPO(Group Relative Policy Optimization)は不可欠な技術となりました。GRPOは従来のPPO(Proximal Policy Optimization)と異なり、Critic(価値関数モデル)を必要とせず、同一プロンプトから生成された複数の回答(Group)の相対的な報酬を用いることで、メモリ消費を大幅に削減します。
しかし、2025年2月時点の最新研究(本論文:2025年2月12日頃arXiv公開)では、特定のテンプレート(例:thoughtタグで囲む等)に依存しすぎると、モデルが「意味のない長文を生成して報酬を稼ぐ」といった報酬ハッキング(Reward Hacking)に陥る課題が指摘されていました。本論文は、LoRA等の軽量チューニングとも組み合わせ可能な「プロンプト拡張(Prompt Augmentation)」により、この脆弱性を克服しています。
【アーキテクチャ・仕組み】
本手法の中核は、各トレーニングステップにおいて、入力される数学問題に対して複数の異なる「推論指示テンプレート」をランダムに適用することにあります。これにより、方策(Policy)モデルは特定の形式ではなく、本質的な論理構造を学習します。
graph LR
A["数学問題 Q"] --> B{"プロンプト拡張"}
B -->|Temp 1| C["思考 A"]
B -->|Temp 2| D["思考 B"]
B -->|Temp n| E["思考 N"]
C & D & E --> F["報酬計算 R"]
F --> G["グループ内相対利得"]
G --> H["GRPO方策更新"]
H --> A
数学的定義
GRPOにおける目的関数(Objective Function)は、グループ内の平均報酬 $\bar{r}$ と標準偏差 $\sigma$ を用いて次のように定義されます。
$$ J_{GRPO}(\theta) = E \left[ \sum_{i=1}^{G} \min \left( \frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)} \hat{A}_i, \text{clip} \left( \frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}, 1-\epsilon, 1+\epsilon \right) \hat{A}_i \right) \right] $$
ここで、アドバンテージ $\hat{A}_i$ は以下の式で計算されます。 $$ \hat{A}_i = \frac{r_i – \text{mean}(r_1, \dots, r_G)}{\text{std}(r_1, \dots, r_G)} $$ 本論文では、同一の $q$ に対して異なるシステムプロンプト $s_j$ を付与することで、$o_i$ のバリエーションを意図的に拡大させ、$\hat{A}_i$ の推定精度を高めています。
【実装イメージ】
以下は、GRPOの学習ループにおいてプロンプトを動的に拡張する最小限のPython実装例です。
import torch
import random
def get_augmented_prompts(question):
"""
推論テンプレートを多様化させる(Augmentation)
"""
templates = [
f"Step-by-step reasoning:\n{question}",
f"Analyze the problem and solve it carefully:\n{question}",
f"Break down this math problem:\n{question}",
f"Answer the following question using a logical chain of thought:\n{question}"
]
# 学習のバッチごとにランダムにテンプレートを選択
return random.choice(templates)
# GRPOのサンプリングプロセス(イメージ)
def grpo_step(model, question, group_size=8):
# 同一の問題に対して、拡張されたプロンプトを適用
prompt = get_augmented_prompts(question)
# 複数の出力を生成(Group Generation)
outputs = model.generate(prompt, num_return_sequences=group_size)
# 各出力に対して報酬(正誤判定など)を計算
rewards = [compute_reward(out) for out in outputs]
# グループ内での相対的な利得(Advantage)を計算して勾配更新
# ... (以降、標準的なGRPOの更新処理)
return loss
【実験結果と考察】
論文内での実験では、Llama-3-8BおよびQwen-2.5-7Bをベースモデルとして使用。プロンプト拡張の有無による性能差(Accuracy %)は以下の通りです。
| 手法 | GSM8K (数学) | MATH (高度数学) | 収束までのSteps |
|---|---|---|---|
| Baseline GRPO | 78.2% | 42.1% | 1,000 |
| Augmented GRPO (提案) | 84.5% | 49.8% | 650 |
| PPO (参考値) | 81.0% | 45.3% | 1,500+ |
考察: プロンプト拡張により、モデルは特定のフォーマットに従うこと(形式の学習)よりも、正しい答えに辿り着くこと(論理の学習)を優先するようになります。これは、検証データに対する汎化性能が約15%向上している点からも裏付けられています。
【限界と今後の展望】
計算コストのトレードオフ:プロンプトを多様化させると、グループサイズを大きく取る必要があるため、生成時のVRAM使用量が増加する懸念があります。
テンプレートの質:低品質なテンプレートが混入した場合、逆に学習が不安定化するリスクが報告されています(テンプレート自体のメタ学習が必要)。
今後の展望:今後は、数学以外のコーディングや論理パズル、さらにはマルチモーダルな推論タスクへの応用が期待されます。
参考文献
[arXiv:2502.09931] Prompt Augmentation Scales up GRPO for Mathematical Reasoning URL: https://arxiv.org/abs/2502.09931 (※リンク例、最新のIDを確認してください)
DeepSeek-V3 Technical Report: https://github.com/deepseek-ai/DeepSeek-V3
PPO vs GRPO: A Comparative Study on RLHF (2025 Trend)

