DPO(Direct Preference Optimization)は、報酬モデルを明示的に学習せずに人間の選好データから直接LLMを最適化する手法で、RLHFの簡略化代替として2023年にStanford大学が提案した
DPO(Direct Preference Optimization)は、従来のRLHF(Reinforcement Learning from Human Feedback)パイプラインで必要だった報酬モデルの明示的な学習とPPO(Proximal Policy Optimization)による強化学習ステップを省略し、人間の選好データから直接言語モデルのポリシーを最適化する手法である。2023年5月にStanford大学のRafailov らが論文「Direct Preference Optimization: Your Language Model is Secretly a Reward Model」で発表した。
DPOの核心的なアイデアは、Bradley-Terryモデルに基づく選好確率と最適ポリシーの間に閉形式の対応関係が存在することを利用する点にある。従来のRLHFでは(1)SFT(Supervised Fine-Tuning)→(2)報酬モデル学習 →(3)PPOによるRL最適化という3段階が必要だったが、DPOでは(1)SFT →(2)DPO損失による直接最適化の2段階に短縮される。DPO損失関数は以下の形式を取る:
L_DPO(π_θ; π_ref) = -E[(y_w, y_l) ~ D] [log σ(β · (log π_θ(y_w|x)/π_ref(y_w|x) - log π_θ(y_l|x)/π_ref(y_l|x)))]
ここで y_w は選好されたレスポンス、y_l は棄却されたレスポンス、π_ref はリファレンスポリシー(SFTモデル)、β は温度パラメータである。
| モデル/プロジェクト | DPO適用対象 | データセット | 結果 |
|---|---|---|---|
| Zephyr-7B-beta | Mistral-7B-v0.1 | UltraFeedback 63K | MT-Bench 7.34(GPT-3.5級) |
| Intel Neural Chat 7B | Mistral-7B | 独自選好データ |
| Open LLM Leaderboard上位 |
| Nous Hermes 2 | Llama-2系 | 複合選好データ | 汎用チャット性能向上 |
| Starling-7B | OpenChat-3.5 | Nectar 183K | AlpacaEval 2.0で高スコア |
| Tulu 2 (AI2) | Llama-2-70B | 複合 | RLHF比でほぼ同等性能 |
| 観点 | RLHF (PPO) | DPO |
|---|---|---|
| パイプライン | SFT→報酬モデル→PPO | SFT→DPO |
| 必要モデル数 | 4(ポリシー/参照/報酬/価値) | 2(ポリシー/参照) |
| GPU メモリ | 70B で A100×16+ 必要 | 70B で A100×8 で可能 |
| 学習安定性 | 報酬ハッキングリスク | 安定した収束 |
| ハイパーパラメータ | PPO固有の複数パラメータ | β のみ(実質1つ) |
| 性能上限 | 理論的に高い | PPOにやや劣る場合あり |
| 実装難易度 | 高(RL基盤必要) | 低(教師あり学習と同等) |
DPOは TRL(Transformer Reinforcement Learning)ライブラリで簡単に実装できる。HuggingFace の DPOTrainer クラスを使用し、SFTモデルとトークナイザー、選好データセットを渡すだけで学習が開始できる。主要パラメータは β(デフォルト0.1)、学習率(1e-6〜5e-7推奨)、バッチサイズ(選好ペア単位)である。QLoRAと組み合わせることで、RTX 4090(24GB VRAM)1枚でも7Bモデルの DPO 学習が可能になる。
DPOの主な限界は(1)オフポリシー問題(学習中にポリシーが変化してもデータが固定)、(2)長さバイアス(長い応答を選好しやすい)、(3)選好データの品質依存性が高い点である。これらの課題を解決するために IPO、KTO、ORPO、SimPO などの後継手法が提案されている。2025-2026年の最新動向として、オンラインDPO(OAIF)やイテレーティブDPOが注目を集めている。
Q1: DPOとRLHFはどちらが性能が高いですか? A: 同等のデータ品質・量であればRLHF(PPO)がわずかに上回る場合が多いが、実装コストと安定性を考慮するとDPOの方が実用的である。Meta の Llama 2 論文でもPPOとDPOの性能差は僅差と報告されている。
Q2: DPOに必要な選好データはどのくらいですか? A: 7Bモデルの場合、10,000〜50,000ペアで有意な改善が見られる。UltraFeedback(約64,000ペア)が標準的なベンチマークデータセットとして広く使われている。
Q3: DPOはLoRA/QLoRAと組み合わせられますか? A: 可能。QLoRA + DPO の組み合わせにより、RTX 4090(24GB)1枚で7Bモデルの選好最適化が実行できる。TRL の DPOTrainer は PEFT と統合されている。