GRPO(Group Relative Policy Optimization)の “数式が言いたいこと” を噛み砕いてみる

1. GRPO(Group Relative Policy Optimization)の整理

1.1. 登場する記号の整理

記号 意味 直感的なイメージ
$q$ 質問(プロンプト) 1 つの入力
$\{o_1,\dots,o_G\}$ 旧モデルが同じ $q$ から生成した G 個の出力 いわば「候補回答リスト」
$\pi_{\theta}(o_i\mid q)$ 新しく学習中のモデル(パラメータ $\theta$)が $o_i$ を出す確率 更新したい確率
$\pi_{\text{old}}(o_i\mid q)$ 旧モデルが $o_i$ を出す確率 ひとつ前のスナップショット
$\pi_{\text{ref}}$ 参照モデル(大抵は事前学習モデル) 行き過ぎ防止の“錘”
$r_i$ ルールベースで付けた報酬 「その回答はどれだけ良かったか」の点数
$A_i$ アドバンテージ 同じグループ内での「平均よりどれだけ良いか」を標準化した値

$$ A_i=\frac{r_i-\text{mean}(\{r_1,\dots,r_G\})}{\text{std}(\{r_1,\dots,r_G\})} $$

1.2. “グループ”を作ってベースライン代わりにする

1 つの質問ごとに候補を まとめて 評価し、その中で相対的に良いものを押し上げ、悪いものを押し下げる── これが “Group Relative” の名前の由来です。 従来 PPO だと 価値関数(critic) を学習してベースラインに使いますが、GRPO は

  • 「同じ質問・同じ旧モデル」で得た 平均報酬 をベースラインにする
  • つまり ニューラルネットワークベースのcritic を置かない → 学習コスト・メモリ節約
はるか
はるか
グループ相対方策最適化。名前の通り、グループで相対評価してるだけ。
ふゅか
ふゅか
うん、でもその「相対評価」ってどういう意味なんだろう?全体じゃなくて、質問ごとに分けるってことかな?
はるか
はるか
1つの質問に対する複数の答えを見る。

2. 目的関数 $J_{\text{GRPO}}$ の内訳

$$ J_{\text{GRPO}}(\theta) =\frac1G\sum_{i=1}^{G} \underbrace{\min\!\left(\displaystyle\frac{\pi_\theta(o_i\mid q)}{\pi_{\text{old}}(o_i\mid q)}\,A_i \,, \; \text{clip}\left(\displaystyle\frac{\pi_\theta(o_i\mid q)}{\pi_{\text{old}}(o_i\mid q)},1-\varepsilon,1+\varepsilon\right)\,A_i \right)}_{\text{PPO の “クリップ付き比率”}} -\beta D_{\mathrm{KL}}\!\bigl(\pi_\theta\ \|\ \pi_{\text{ref}}\bigr) $$

2.1. PPO 部分(左側)

  • 確率比 $\displaystyle\frac{\pi_\theta}{\pi_{\text{old}}}$ が 1(= 変わらない)から大きく外れすぎないように
  • クリップ範囲 $[1-\varepsilon,\,1+\varepsilon]$ に収めた値と 元の値 の小さい方を使う
  • こうすると 一度の更新で確率が跳ね過ぎる暴走 を防ぐ

2.2. KL ペナルティ(右側)

$$ D_{\mathrm{KL}}(\pi_\theta\ \|\ \pi_{\text{ref}}) =\frac{\pi_{\text{ref}}(o_i\mid q)}{\pi_\theta(o_i\mid q)} -\log\!\frac{\pi_{\text{ref}}(o_i\mid q)}{\pi_\theta(o_i\mid q)}-1 $$

  • 新モデルが 参照モデル から離れすぎるとコストが増加
  • 係数 $\beta$ で強さを調整
  • 逸脱を抑えつつもタスク専用能力を伸ばすための安全弁

2.3. 一連の流れをストーリーで

  1. 旧モデルが 1 つの質問 $q$ から回答を G 個出す
  2. ルールベースで $\{r_i\}$ を採点
  3. グループ平均との差 $A_i$ を求める
    • 上位回答 → $A_i>0$
    • 下位回答 → $A_i<0$
  4. 新モデル側の確率をすこしずつ動かす
    • 上位回答の $\pi_\theta$ ↑(ただしクリップ範囲内)
    • 下位回答の $\pi_\theta$ ↓
  5. その動きが参照モデルから離れすぎていないかを KL でチェック
  6. すべての質問について平均したものを最大化 → $\theta$ 更新

3. 参考

参考論文

DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

written by DeepSeek-AI, Daya Guo, Dejian Yang, Haowei Zhang, Junxiao Song, Ruoyu Zhang, Runxin Xu, Qihao Zhu, Shirong Ma, Peiyi Wang, Xiao Bi, Xiaokang Zhang, Xingkai Yu, Yu Wu, Z.F. Wu, Zhibin Gou, Zhihong Shao, Zhuoshu Li, Ziyi Gao, Aixin Liu, Bing Xue, Bingxuan Wang, Bochao Wu, Bei Feng, Chengda Lu, Chenggang Zhao, Chengqi Deng, Chenyu Zhang, Chong Ruan, Damai Dai, Deli Chen, Dongjie Ji, Erhang Li, Fangyun Lin, Fucong Dai, Fuli Luo, Guangbo Hao, Guanting Chen, Guowei Li, H. Zhang, Han Bao, Hanwei Xu, Haocheng Wang, Honghui Ding, Huajian Xin, Huazuo Gao, Hui Qu, Hui Li, Jianzhong Guo, Jiashi Li, Jiawei Wang, Jingchang Chen, Jingyang Yuan, Junjie Qiu, Junlong Li, J.L. Cai, Jiaqi Ni, Jian Liang, Jin Chen, Kai Dong, Kai Hu, Kaige Gao, Kang Guan, Kexin Huang, Kuai Yu, Lean Wang, Lecong Zhang, Liang Zhao, Litong Wang, Liyue Zhang, Lei Xu, Leyi Xia, Mingchuan Zhang, Minghua Zhang, Minghui Tang, Meng Li, Miaojun Wang, Mingming Li, Ning Tian, Panpan Huang, Peng Zhang, Qiancheng Wang, Qinyu Chen, Qiushi Du, Ruiqi Ge, Ruisong Zhang, Ruizhe Pan, Runji Wang, R.J. Chen, R.L. Jin, Ruyi Chen, Shanghao Lu, Shangyan Zhou, Shanhuang Chen, Shengfeng Ye, Shiyu Wang, Shuiping Yu, Shunfeng Zhou, Shuting Pan, S.S. Li et al. (100 additional authors not shown)

arXiv:2501.00663

Submitted on 22 Jan 2025

PR