Skip to main content

GRPO

GRPO (Group Relative Policy Optimization) は、DeepSeek が提案した policy gradient 系の RL algorithm です。Value model を持たず、同じ prompt から複数 sample した group 内 advantage を使う 点が特徴で、DeepSeek-R1 をはじめとする reasoning model の学習で広く使われるようになりました。

PPO の何を変えるのか

PPO は、advantage を計算するために value model (critic) が必要でした。LLM RLHF では、policy と同サイズの value model も持つため、memory 要件が極めて重くなります。

GRPO は、

  • 同じ prompt xx に対して GG 個の response {yi}i=1G\{y_i\}_{i=1}^{G} を sample
  • 各 response の reward rir_i を計算
  • group 内 z-score を advantage として使う

ことで、value model を不要にします。

Ai=rimean({r1,,rG})std({r1,,rG})A_i = \frac{r_i - \mathrm{mean}(\{r_1, \ldots, r_G\})}{\mathrm{std}(\{r_1, \ldots, r_G\})}

Objective

PPO の clipped surrogate を流用しつつ、advantage を上記 group advantage に置き換えます。KL は別途 reference policy に対して加えるのが標準です。

LGRPO=E ⁣[1Gi=1Gmin ⁣(ri(θ)Ai,  clip(ri(θ),1ϵ,1+ϵ)Ai)]βKL(πθπref)\mathcal{L}_{\text{GRPO}} = \mathbb{E}\!\left[\frac{1}{G}\sum_{i=1}^{G}\min\!\bigl(r_i(\theta) A_i,\; \mathrm{clip}(r_i(\theta), 1-\epsilon, 1+\epsilon)\, A_i\bigr)\right] - \beta\, \mathrm{KL}(\pi_\theta \,\|\, \pi_{\text{ref}})

なぜ reasoning model で人気か

DeepSeek-R1 のような reasoning model では、

  • Verifiable reward (math 正誤、code unit test 通過) が使える
  • Reward model が不要、または検証器で代替できる
  • Long CoT の policy gradient を value model なしで安定して回せる

ため、GRPO は reasoning RL のレシピとして広まりました。

RLOO との関係

RLOO (Reinforce Leave-One-Out) も似た発想で、各 sample の baseline を 他のサンプルの平均 で置き換えます。GRPO の z-score を平均ベースに簡略化したものとも見られます。

DPO との違い

観点DPOGRPO
Data固定 pair preference (offline)On-policy rollouts
Reward不要 (preference から暗黙)必要 (scalar reward)
Sampling不要必要 (group sample)
Reasoning task弱い (offline、verifier なし)強い (verifiable reward と相性)
メモリ軽い中 (value model 不要だが rollout 大量)

DPO は preference alignment、GRPO は verifiable reasoning RL、と棲み分けが進んでいます。

DAPO への発展

GRPO は critic を不要にする点で大きな前進でしたが、大規模 reasoning RL では、探索不足、長すぎる出力、prompt 難易度の偏りなどが問題になります。DAPO は、GRPO を土台にして、非対称 clipping、dynamic sampling、token-level loss、overlong reward shaping を導入した改良です。

注意点

  • 長 CoT で sampling が高コスト
  • KL strength を上げないと policy が崩れる
  • Reward が sparse すぎると group 内が全部 0 になる
  • Multi-turn / tool use に拡張する場合の credit assignment

数式で見る group relative advantage

GRPO は、同じ prompt xx に対して複数の response {yi}i=1G\{y_i\}_{i=1}^{G} を sample し、その group 内で reward を相対化します。Reward を ri=r(x,yi)r_i=r(x,y_i) とすると、group mean と標準偏差で正規化した advantage は次のように書けます。

Ai=rimean(r1:G)std(r1:G)+ϵA_i=\frac{r_i-\mathrm{mean}(r_{1:G})}{\mathrm{std}(r_{1:G})+\epsilon}

Policy objective は PPO 風の ratio を使って書けます。

LGRPO=Ei[min(ρiAi,clip(ρi,1ϵ,1+ϵ)Ai)]\mathcal{L}_{GRPO}=\mathbb{E}_i\left[\min\left(\rho_i A_i,\mathrm{clip}(\rho_i,1-\epsilon,1+\epsilon)A_i\right)\right]

ここで、ρi=πθ(yix)/πold(yix)\rho_i=\pi_\theta(y_i\mid x)/\pi_{old}(y_i\mid x) です。この式の気持ちは、「critic を別に学習せず、同じ prompt に対する複数回答の中で相対的に良かったものを強める」というものです。Math や code のような verifiable reward がある task では、group 内比較が安定した signal になりやすいです。

関連ページ

主なソース