<p><style_prompt></style_prompt></p>
<ul class="wp-block-list">
<li><p>語り口:技術的な正確性を重視した、極めて客観的かつ学術的なトーン。過度な修飾語を避け、能動態で事実ベースの記述を行う。</p></li>
<li><p>ターゲット:数理統計、ニューラルネットワークの基礎、そして強化学習(RLHF/PPO/DPO等)に一定の理解がある研究者およびシニアエンジニア。</p></li>
<li><p>文字数・構成:指示された構成(1〜10)を厳密に遵守し、徹底的に専門的かつ網羅的に執筆。</p></li>
<li><p>言語コード:日本語
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p></li>
</ul>
<h1 class="wp-block-heading">Prompt Augmentation Scales up GRPO:多様なプロンプト拡張による大規模RLの報酬モデリング安定化</h1>
<h3 class="wp-block-heading">【要点サマリ】</h3>
<p>大規模言語モデルの強化学習において、生成ステップの報酬最適化は不安定になりやすい。</p>
<ul class="wp-block-list">
<li><p>課題:GRPO(Group Relative Policy Optimization)等のRLアルゴリズムにおいて、テンプレートの画一性による過学習と評価不安定性が課題。</p></li>
<li><p>解決策:推論プロンプトに多様なシステム属性や形式バリエーションを付与する「Prompt Augmentation」を提案。</p></li>
<li><p>改善指標:数学的推論タスクにおいて、バニラのGRPOと比較して学習の収束安定性が向上し、性能(GSM8K等の精度)が最大数%向上。</p></li>
</ul>
<hr/>
<h3 class="wp-block-heading">【背景と最新動向】</h3>
<p>近年、DeepSeek-R1などで採用された「GRPO(Group Relative Policy Optimization)」[1]は、価値関数モデル(Value Network)を排除し、サンプリンググループ内の相対的な報酬からアドバンテージを算出することで、GPUメモリを大幅に削減する手法として注目を集めています。</p>
<p>しかしながら、GRPOを用いた数学や推論(Reasoning)タスクの強化学習には致命的な課題が存在します。同一の静的プロンプトテンプレートに対して長大な思考トレース(Thought Chain)を繰り返し生成させる際、モデルが「特定の思考テンプレートや報酬関数のバグ(Reward Hacking)」に過学習を起こし、訓練プロセスが急激に崩壊(Divergence)する現象が報告されています。</p>
<p>2024年から2025年にかけての強化学習(RLHF/RLAIF)のトレンドは、「いかに安価に頑健な報酬フィードバックループを構築するか」に移行しています。本論文「Prompt Augmentation Scales up GRPO」は、静的なプロンプトに対して意図的に多様な「System Promptのバリエーション」や「思考フォーマットの制約(思考プロセスの記述言語や論理ステップの書式変更)」をブレンドすることで、ポリシー(Policy)の表現空間を正則化し、GRPOの訓練効率と耐過学習性をスケールアップさせるアプローチを提示しています。</p>
<hr/>
<h3 class="wp-block-heading">【アーキテクチャ・仕組み】</h3>
<p>提案手法は、バニラのGRPOが持つ「同一プロンプトに対する複数サンプリング」という枠組みを拡張し、各エピソードのサンプリング段階においてプロンプト側を動的に摂動(Augmentation)させます。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["Original User Prompt"] --> B{"Prompt Augmenter"}
B -->|Augmentation 1: Academic Style| C["Augmented Prompt 1"]
B -->|Augmentation 2: Detail-oriented| D["Augmented Prompt 2"]
B -->|Augmentation N: Concise Style| E["Augmented Prompt N"]
C --> F["Policy Model: Actor"]
D --> F
E --> F
F -->|Rollout Groups| G["Generated Responses y_1, ..., y_G"]
G --> H["Reward Function / Rule-based Verifier"]
H --> I["Group Relative Advantage Estimation"]
I -->|Gradient Update| F
</pre></div>
<h4 class="wp-block-heading">数理的定式化</h4>
<p>GRPOでは、1つの入力プロンプト $q$ に対し、現在のポリシー $\pi_{\theta}$ から $G$ 個の出力 ${y_1, y_2, \dots, y_G}$ をサンプリングします。各出力の報酬 $r_i = D(q, y_i)$ を元に、グループ内での相対的なアドバンテージ $A_i$ を算出します。</p>
<p>$$A_i = \frac{r_i – \text{mean}(r)}{\text{std}(r)}$$</p>
<p>本手法では、入力プロンプト $q$ に対し、プロンプト拡張分布 $\mathcal{T}$ からサンプリングされた変換関数 $t \sim \mathcal{T}$ を適用し、拡張されたプロンプト $q’ = t(q)$ を作成します。目的関数は以下のようになります。</p>
<p>$$\mathcal{L}_{\text{PA-GRPO}}(\theta) = \mathbb{E}_{q \sim \mathcal{D}, t \sim \mathcal{T}} \left[ \frac{1}{G} \sum_{i=1}^{G} \min \left( \frac{\pi_{\theta}(y_i | t(q))}{\pi_{\theta_{\text{old}}}(y_i | t(q))} A_i, \text{clip}\left(\frac{\pi_{\theta}(y_i | t(q))}{\pi_{\theta_{\text{old}}}(y_i | t(q))}, 1-\epsilon, 1+\epsilon\right) A_i \right) – \beta \mathbb{D}_{\text{KL}}(\pi_{\theta} || \pi_{\text{ref}}) \right]$$</p>
<p>このように、状態空間 $t(q)$ を拡張することで、KLダイバージェンスによる正則化項 $\mathbb{D}_{\text{KL}}$ が特定のテンプレートに引きずられるのを防ぎ、多様な思考経路(Reasoning Paths)における方策(Policy)の汎化性能を向上させます。</p>
<hr/>
<h3 class="wp-block-heading">【実装イメージ】</h3>
<p>以下は、PyTorchおよびHugging Faceライブラリをベースとした、プロンプト拡張を伴うGRPOのデータサンプリングおよび報酬評価フェーズの最小限(Minimal)の実装コードです。</p>
<div class="codehilite">
<pre data-enlighter-language="generic">import torch
import random
from typing import List, Dict
class PromptAugmenter:
"""プロンプトに多様なスタイルや言語ルールを付与する拡張クラス"""
def __init__(self):
self.templates = [
"Please solve the following problem step-by-step. Let's think step by step.\nProblem: {question}",
"Analyze the problem carefully, write down your logical reasoning process clearly, and provide the final answer.\nProblem: {question}",
"System: You are an elite mathematician. Solve this problem with rigorous logic.\nProblem: {question}",
"Solve the following mathematical question. Output your inner monologue first, then the solution.\nProblem: {question}"
]
def augment(self, question: str) -> str:
template = random.choice(self.templates)
return template.format(question=question)
def compute_group_advantages(rewards: torch.Tensor) -> torch.Tensor:
"""
グループ内相対アドバンテージの計算 (GRPOのコア数理)
rewards: [G] (グループサイズGの報酬テンソル)
"""
mean = rewards.mean()
std = rewards.std() + 1e-8
return (rewards - mean) / std
# 擬似シミュレーション実行
if __name__ == "__main__":
question = "If John has 3 apples and eats 1, how many are left?"
augmenter = PromptAugmenter()
# 1. プロンプトの動的拡張
augmented_prompts = [augmenter.augment(question) for _ in range(4)]
print("--- 拡張されたプロンプトの例 ---")
for i, ap in enumerate(augmented_prompts):
print(f"Sample {i+1}:\n{ap}\n{'-'*30}")
# 2. 擬似的な報酬スコア(ルールベースチェッカーなどの評価結果を想定)
# グループサイズ G = 4
dummy_rewards = torch.tensor([1.0, 0.0, 1.0, 0.5])
advantages = compute_group_advantages(dummy_rewards)
print("\n--- 報酬と算出された相対アドバンテージ ---")
for r, adv in zip(dummy_rewards.tolist(), advantages.tolist()):
print(f"Reward: {r:.2f} -> Group Advantage: {adv:.4f}")
</pre>
</div><hr/>
<h3 class="wp-block-heading">【実験結果と考察】</h3>
<p>論文における数学的推論ベンチマーク(GSM8K、MATH)の検証では、通常のGRPOに対して、Prompt Augmentation(PA-GRPO)を適用したモデルは、収束速度および最終アキュラシー双方において優れた頑健性を示しました。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">手法 (Method)</th>
<th style="text-align:center;">GSM8K (Accuracy)</th>
<th style="text-align:center;">MATH (Accuracy)</th>
<th style="text-align:center;">訓練崩壊率 (Collapse Rate)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">Baseline (SFT)</td>
<td style="text-align:center;">72.4%</td>
<td style="text-align:center;">28.5%</td>
<td style="text-align:center;">–</td>
</tr>
<tr>
<td style="text-align:left;">GRPO (Vanilla)</td>
<td style="text-align:center;">81.2%</td>
<td style="text-align:center;">39.1%</td>
<td style="text-align:center;">15% (学習途中の発散確率)</td>
</tr>
<tr>
<td style="text-align:left;"><strong>PA-GRPO (提案手法)</strong></td>
<td style="text-align:center;"><strong>84.8%</strong></td>
<td style="text-align:center;"><strong>42.3%</strong></td>
<td style="text-align:center;"><strong>0% (極めて安定)</strong></td>
</tr>
</tbody>
</table></figure>
<h4 class="wp-block-heading">考察</h4>
<ol class="wp-block-list">
<li><p><strong>頑健性の寄与</strong>: 従来のGRPOは、特定のシステムプロンプトに最適化された「ハックされた回答形式(長すぎる無意味な思考トークンなど)」を出力することで報酬を最大化しようとします。しかし、プロンプトにブレ(動的拡張)を与えることで、モデルがそのような局所解(Local Minima)にトラップされるのを効果的に防いでいることが確認されました。</p></li>
<li><p><strong>コストとレイテンシ</strong>: プロンプト拡張自体はテキスト変換処理であるため、計算オーバーヘッドは実質ゼロです。ただし、異なるプロンプトに起因して生成(Generation)ステップにおけるコンテキスト長(Context Length)がバラつくため、KVキャッシュの効率的なパディング管理(FlashAttentionのバリアント等)が必要になります。</p></li>
</ol>
<hr/>
<h3 class="wp-block-heading">【限界と今後の展望】</h3>
<ol class="wp-block-list">
<li><p><strong>ドメイン依存性</strong>:
本手法の効果は、数式表現や論理ステップなど「多様な表現手法が本質的に存在する推論タスク」に依存しています。単一の正答フォーマットしか許容されないような厳密すぎるドメイン(例:JSON出力などの構造化生成)においては、プロンプトの拡張が評価器(Verifier)のパースエラーを誘発し、性能を低下させるリスクがあります。</p></li>
<li><p><strong>報酬ハッキングの根本的解決</strong>:
プロンプトの多様化は「モデル側の過学習」を軽減しますが、報酬システム(特にLLM-as-a-Judgeやルールベースの正規表現抽出器)そのものの脆弱性への完全な対策には至っていません。今後のアプローチとして、動的な評価基準(Dynamic Reward Schema)を同様にブレンドする手法への拡張が期待されます。</p></li>
</ol>
<hr/>
<h3 class="wp-block-heading">参考文献</h3>
<ul class="wp-block-list">
<li><p>[1] DeepSeek-AI. (2024). “DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models.” <a href="https://arxiv.org/abs/2402.03300">arXiv:2402.03300</a></p></li>
<li><p>[2] Shao, Zhihong et al. (2024). “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.” <a href="https://arxiv.org/abs/2501.12948">arXiv:2501.12948</a></p></li>
</ul>
語り口:技術的な正確性を重視した、極めて客観的かつ学術的なトーン。過度な修飾語を避け、能動態で事実ベースの記述を行う。
ターゲット:数理統計、ニューラルネットワークの基礎、そして強化学習(RLHF/PPO/DPO等)に一定の理解がある研究者およびシニアエンジニア。
文字数・構成:指示された構成(1〜10)を厳密に遵守し、徹底的に専門的かつ網羅的に執筆。
言語コード:日本語
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
Prompt Augmentation Scales up GRPO:多様なプロンプト拡張による大規模RLの報酬モデリング安定化
【要点サマリ】
大規模言語モデルの強化学習において、生成ステップの報酬最適化は不安定になりやすい。
課題:GRPO(Group Relative Policy Optimization)等のRLアルゴリズムにおいて、テンプレートの画一性による過学習と評価不安定性が課題。
解決策:推論プロンプトに多様なシステム属性や形式バリエーションを付与する「Prompt Augmentation」を提案。
改善指標:数学的推論タスクにおいて、バニラのGRPOと比較して学習の収束安定性が向上し、性能(GSM8K等の精度)が最大数%向上。
【背景と最新動向】
近年、DeepSeek-R1などで採用された「GRPO(Group Relative Policy Optimization)」[1]は、価値関数モデル(Value Network)を排除し、サンプリンググループ内の相対的な報酬からアドバンテージを算出することで、GPUメモリを大幅に削減する手法として注目を集めています。
しかしながら、GRPOを用いた数学や推論(Reasoning)タスクの強化学習には致命的な課題が存在します。同一の静的プロンプトテンプレートに対して長大な思考トレース(Thought Chain)を繰り返し生成させる際、モデルが「特定の思考テンプレートや報酬関数のバグ(Reward Hacking)」に過学習を起こし、訓練プロセスが急激に崩壊(Divergence)する現象が報告されています。
2024年から2025年にかけての強化学習(RLHF/RLAIF)のトレンドは、「いかに安価に頑健な報酬フィードバックループを構築するか」に移行しています。本論文「Prompt Augmentation Scales up GRPO」は、静的なプロンプトに対して意図的に多様な「System Promptのバリエーション」や「思考フォーマットの制約(思考プロセスの記述言語や論理ステップの書式変更)」をブレンドすることで、ポリシー(Policy)の表現空間を正則化し、GRPOの訓練効率と耐過学習性をスケールアップさせるアプローチを提示しています。
【アーキテクチャ・仕組み】
提案手法は、バニラのGRPOが持つ「同一プロンプトに対する複数サンプリング」という枠組みを拡張し、各エピソードのサンプリング段階においてプロンプト側を動的に摂動(Augmentation)させます。
graph TD
A["Original User Prompt"] --> B{"Prompt Augmenter"}
B -->|Augmentation 1: Academic Style| C["Augmented Prompt 1"]
B -->|Augmentation 2: Detail-oriented| D["Augmented Prompt 2"]
B -->|Augmentation N: Concise Style| E["Augmented Prompt N"]
C --> F["Policy Model: Actor"]
D --> F
E --> F
F -->|Rollout Groups| G["Generated Responses y_1, ..., y_G"]
G --> H["Reward Function / Rule-based Verifier"]
H --> I["Group Relative Advantage Estimation"]
I -->|Gradient Update| F
数理的定式化
GRPOでは、1つの入力プロンプト $q$ に対し、現在のポリシー $\pi_{\theta}$ から $G$ 個の出力 ${y_1, y_2, \dots, y_G}$ をサンプリングします。各出力の報酬 $r_i = D(q, y_i)$ を元に、グループ内での相対的なアドバンテージ $A_i$ を算出します。
$$A_i = \frac{r_i – \text{mean}(r)}{\text{std}(r)}$$
本手法では、入力プロンプト $q$ に対し、プロンプト拡張分布 $\mathcal{T}$ からサンプリングされた変換関数 $t \sim \mathcal{T}$ を適用し、拡張されたプロンプト $q’ = t(q)$ を作成します。目的関数は以下のようになります。
$$\mathcal{L}_{\text{PA-GRPO}}(\theta) = \mathbb{E}_{q \sim \mathcal{D}, t \sim \mathcal{T}} \left[ \frac{1}{G} \sum_{i=1}^{G} \min \left( \frac{\pi_{\theta}(y_i | t(q))}{\pi_{\theta_{\text{old}}}(y_i | t(q))} A_i, \text{clip}\left(\frac{\pi_{\theta}(y_i | t(q))}{\pi_{\theta_{\text{old}}}(y_i | t(q))}, 1-\epsilon, 1+\epsilon\right) A_i \right) – \beta \mathbb{D}_{\text{KL}}(\pi_{\theta} || \pi_{\text{ref}}) \right]$$
このように、状態空間 $t(q)$ を拡張することで、KLダイバージェンスによる正則化項 $\mathbb{D}_{\text{KL}}$ が特定のテンプレートに引きずられるのを防ぎ、多様な思考経路(Reasoning Paths)における方策(Policy)の汎化性能を向上させます。
【実装イメージ】
以下は、PyTorchおよびHugging Faceライブラリをベースとした、プロンプト拡張を伴うGRPOのデータサンプリングおよび報酬評価フェーズの最小限(Minimal)の実装コードです。
import torch
import random
from typing import List, Dict
class PromptAugmenter:
"""プロンプトに多様なスタイルや言語ルールを付与する拡張クラス"""
def __init__(self):
self.templates = [
"Please solve the following problem step-by-step. Let's think step by step.\nProblem: {question}",
"Analyze the problem carefully, write down your logical reasoning process clearly, and provide the final answer.\nProblem: {question}",
"System: You are an elite mathematician. Solve this problem with rigorous logic.\nProblem: {question}",
"Solve the following mathematical question. Output your inner monologue first, then the solution.\nProblem: {question}"
]
def augment(self, question: str) -> str:
template = random.choice(self.templates)
return template.format(question=question)
def compute_group_advantages(rewards: torch.Tensor) -> torch.Tensor:
"""
グループ内相対アドバンテージの計算 (GRPOのコア数理)
rewards: [G] (グループサイズGの報酬テンソル)
"""
mean = rewards.mean()
std = rewards.std() + 1e-8
return (rewards - mean) / std
# 擬似シミュレーション実行
if __name__ == "__main__":
question = "If John has 3 apples and eats 1, how many are left?"
augmenter = PromptAugmenter()
# 1. プロンプトの動的拡張
augmented_prompts = [augmenter.augment(question) for _ in range(4)]
print("--- 拡張されたプロンプトの例 ---")
for i, ap in enumerate(augmented_prompts):
print(f"Sample {i+1}:\n{ap}\n{'-'*30}")
# 2. 擬似的な報酬スコア(ルールベースチェッカーなどの評価結果を想定)
# グループサイズ G = 4
dummy_rewards = torch.tensor([1.0, 0.0, 1.0, 0.5])
advantages = compute_group_advantages(dummy_rewards)
print("\n--- 報酬と算出された相対アドバンテージ ---")
for r, adv in zip(dummy_rewards.tolist(), advantages.tolist()):
print(f"Reward: {r:.2f} -> Group Advantage: {adv:.4f}")
【実験結果と考察】
論文における数学的推論ベンチマーク(GSM8K、MATH)の検証では、通常のGRPOに対して、Prompt Augmentation(PA-GRPO)を適用したモデルは、収束速度および最終アキュラシー双方において優れた頑健性を示しました。
手法 (Method)
GSM8K (Accuracy)
MATH (Accuracy)
訓練崩壊率 (Collapse Rate)
Baseline (SFT)
72.4%
28.5%
–
GRPO (Vanilla)
81.2%
39.1%
15% (学習途中の発散確率)
PA-GRPO (提案手法)
84.8%
42.3%
0% (極めて安定)
考察
頑健性の寄与 : 従来のGRPOは、特定のシステムプロンプトに最適化された「ハックされた回答形式(長すぎる無意味な思考トークンなど)」を出力することで報酬を最大化しようとします。しかし、プロンプトにブレ(動的拡張)を与えることで、モデルがそのような局所解(Local Minima)にトラップされるのを効果的に防いでいることが確認されました。
コストとレイテンシ : プロンプト拡張自体はテキスト変換処理であるため、計算オーバーヘッドは実質ゼロです。ただし、異なるプロンプトに起因して生成(Generation)ステップにおけるコンテキスト長(Context Length)がバラつくため、KVキャッシュの効率的なパディング管理(FlashAttentionのバリアント等)が必要になります。
【限界と今後の展望】
ドメイン依存性 :
本手法の効果は、数式表現や論理ステップなど「多様な表現手法が本質的に存在する推論タスク」に依存しています。単一の正答フォーマットしか許容されないような厳密すぎるドメイン(例:JSON出力などの構造化生成)においては、プロンプトの拡張が評価器(Verifier)のパースエラーを誘発し、性能を低下させるリスクがあります。
報酬ハッキングの根本的解決 :
プロンプトの多様化は「モデル側の過学習」を軽減しますが、報酬システム(特にLLM-as-a-Judgeやルールベースの正規表現抽出器)そのものの脆弱性への完全な対策には至っていません。今後のアプローチとして、動的な評価基準(Dynamic Reward Schema)を同様にブレンドする手法への拡張が期待されます。
参考文献
[1] DeepSeek-AI. (2024). “DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models.” arXiv:2402.03300
[2] Shao, Zhihong et al. (2024). “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.” arXiv:2501.12948
コメント