Iterative and Online DPO
Iterative / Online DPO は、固定された preference dataset に対して一度だけ DPO を行うのではなく、現在の policy から新しい response を sample し、judge や verifier で preference を作り直し、DPO で再び更新するという loop 型の alignment method です。Offline DPO の簡潔さを保ちながら、policy が実際に出す分布に preference data を近づけることを狙います。
自作概念図。現在の policy が sample を生成し、judge / verifier が winner と loser を作り、その pair で DPO 更新を行います。
なぜ offline DPO だけでは足りないのか
標準的な DPO は、既に集められた pair preference data を使います。この設計は非常に扱いやすい一方で、次の問題があります。
- Preference data が古い policy から作られており、現在の policy の失敗を反映しないことがあります。
- Model が改善すると、古い loser が簡単すぎて学習 signal が弱くなります。
- Hard negative、長い reasoning、tool use などの失敗例は、on-policy に集めないと見つかりにくいです。
- Dataset にない領域では、offline preference objective が過信や reward hacking を起こすことがあります。
Iterative / online DPO は、policy が実際に生成する response に対して preference を付けることで、この distribution mismatch を減らします。
標準 DPO の復習
DPO の loss は、winner と loser の log probability ratio の差を使って書けます。
Online 化しても、この loss 自体は大きく変わらないことが多いです。変わるのは、pair をどの policy から生成し、どの judge で label し、どの頻度で buffer を更新するかです。
Iterative DPO
Iterative DPO は、DPO を round ごとに繰り返す recipe です。
- 現在の policy から複数 response を sample します。
- Human、reward model、LLM judge、rule-based verifier で preference を付けます。
- 新しい pair を preference buffer に追加します。
- DPO で policy を更新します。
- 更新された policy で次 round の sample を作ります。
この方法では、各 round で model の弱点が変わるため、preference data も徐々に難しくなります。Math や code のように automatic verifier が使える task では、human annotation なしでも loop を回せる場合があります。
Online DPO
Online DPO は、policy sampling と preference optimization をより密に結合します。たとえば、mini-batch ごとに current policy から candidate を生成し、その場で judge して DPO loss を計算します。
| 観点 | Iterative DPO | Online DPO |
|---|---|---|
| Data collection | round 単位 | training 中に逐次 |
| 実装 | 比較的簡単 | serving と training の結合が必要 |
| Data freshness | 高い | さらに高い |
| Cost | 中 | 高 |
| 安定性 | buffer で平滑化しやすい | judge noise の影響を受けやすい |
Online DPO は on-policy RL に近づきますが、PPO や GRPO と違い、value model や advantage estimation を持たないことが多いです。その代わり、pairwise preference の作り方が性能を大きく左右します。
SPIN との関係
SPIN (Self-Play Fine-Tuning) は、model 自身の出力と human-written response を対比し、model が自分の過去出力を識別して改善するように学習する self-play 型の post-training method です。DPO と同じく pairwise な contrastive objective に近く、iteration によって model の出力分布を更新していく点で、iterative preference optimization の代表例と見なせます。
Self-Rewarding Language Models
Self-Rewarding Language Models は、LLM 自身を judge として使い、instruction following data と preference data を反復的に生成します。これは RLAIF や AI feedback と近く、human annotation の scale 制約を緩和します。ただし、judge model の bias、自己強化による崩壊、reward hacking の検出が課題になります。
Judge / verifier の設計
| Judge | 向いている task | 注意点 |
|---|---|---|
| Human | Safety、helpfulness、creative | 高コストで遅い |
| Reward model | Chat quality、style | reward hacking と drift |
| LLM-as-a-judge | 大規模 annotation | judge bias と position bias |
| Rule verifier | Math、code、format | reward が sparse になりやすい |
DPO、Online DPO、GRPO の違い
| 観点 | Offline DPO | Iterative / Online DPO | GRPO |
|---|---|---|---|
| Data | 固定 preference dataset | current policy 由来の preference | on-policy rollout + scalar reward |
| Objective | pairwise logistic loss | 多くは DPO loss | policy gradient |
| Value model | 不要 | 不要 | 不要なことが多い |
| Reward model | 不要または label 用 | judge / verifier として使うことがある | scalar reward が必要 |
| 強み | 簡単、安定、安い | distribution mismatch を減らす | verifiable reasoning に強い |
| 弱み | data が古くなる | sampling と judge が高コスト | RL tuning が不安定になりやすい |
実装上の注意
- Reference model をいつ更新するかで挙動が変わります。固定 reference は安定しますが、古くなります。
- Judge が current policy に甘くなると、自己強化で品質が落ちます。
- Easy pair ばかりになると学習 signal が弱くなるため、hard negative mining が重要です。
- Length bias を抑えるために、response 長の制御や normalization が必要です。
- Safety alignment では、online sampling 中に危険出力を生成するため、filtering と sandbox が必要です。
数式で見る online preference data の分布変化
Iterative / online DPO では、現在の policy から response を生成し、その response に対する preference data を追加します。
その後、新しい data で policy を更新します。
この式の気持ちは、「古い policy が作った response だけで学習するのではなく、現在の policy が実際に出しそうな response に対して preference を集め、学習分布を追いかける」というものです。
ただし、online data は policy が改善するほど distribution が変わります。過去 data に過剰適合すると現在の failure を直せず、現在 data だけに寄せすぎると forgetting が起きます。そのため、replay buffer、data mixture、KL regularization が重要になります。
関連ページ
主なソース
- DPO: https://arxiv.org/abs/2305.18290
- Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models: https://arxiv.org/abs/2401.01335
- Self-Rewarding Language Models: https://arxiv.org/abs/2401.10020
- Online Iterative Reinforcement Learning from Human Feedback with General Preference Model: https://arxiv.org/abs/2402.07314
- DeepSeekMath / GRPO: https://arxiv.org/abs/2402.03300