PPO(LLMにおける強化学習) ぴーぴーおー(えるえるえむにおけるきょうかがくしゅう)
PPOProximal Policy Optimization強化学習RLHF方策最適化LLM
PPOについて教えて
PPO(Proximal Policy Optimization)とは
PPO(Proximal Policy Optimization) とは、OpenAIが2017年に提案した強化学習アルゴリズムで、LLMの文脈ではRLHFの最終ステップとして人間の好みを示す報酬モデルのスコアを最大化するようにLLMの重みを更新するために使われます。
PPOの「Proximal(近接的)」とは、更新のたびにモデルが大きく変わりすぎないようにする制約(クリッピング)を意味します。強化学習では方策(Policy:行動の選び方)を大きく変えると不安定になりがちですが、PPOは変化量を制限することで学習を安定させます。LLMでは、変化しすぎるとSFTで学習した知識が失われる(壊滅的忘却)ため、この安定性が重要です。
LLMにおけるPPOの登場人物
4つのモデルが並行して動作(RLHF + PPO):
1. Actor(方策モデル)
→ 学習対象のLLM。プロンプトに対して回答を生成
2. Critic(価値モデル)
→ 各状態の「将来的な報酬の期待値」を推定
→ Actorと同じサイズのモデルが必要(計算コスト大)
3. Reward Model(報酬モデル)
→ 生成した回答を評価してスコアを返す
4. Reference Model(参照モデル)
→ SFT済みのオリジナルモデル(変更しない)
→ KLダイバージェンスで過度な変化を防ぐ基準
歴史と背景
- 2017年:OpenAIがPPOを発表(元はロボティクス・ゲームAI向け)
- 2020年:OpenAIがLLMのSummarizationタスクへのRLHF + PPO適用を実証
- 2022年:InstructGPTでRLHF + PPOが実用化、ChatGPTへと発展
- 2023年以降:DPO・GRPOなどの代替手法が登場し、PPOの利用コストの問題が顕在化
- 現在:OpenAIは依然PPO系を使用、多くのオープン研究はDPO・GRPOへ移行
PPOの課題とDPOへの移行
| 課題 | 詳細 |
|---|---|
| 4モデル同時稼働 | Actor・Critic・Reward・Referenceの4モデルが必要 |
| 計算コスト | 4モデル分のGPUメモリと計算が必要 |
| 実装の複雑さ | 多くのハイパーパラメータ調整が必要 |
| 報酬ハッキング | 報酬モデルを騙す回答を生成してしまう |
→ これらの課題を解決するためDPO・GRPOが提案された