🎲
DPO(Direct Preference Optimization)
報酬モデルなしで直接選好最適化
DPO(Direct Preference Optimization)は2023年にStanfordで提案された技法で、RLHFの本質を数学的に再定義しました。RLHFでは報酬モデル学習 → PPO強化学習という2段階を踏みますが、DPOは選好データ(良い応答vs悪い応答のペア)からLLMの重みを直接更新します。核心的洞察は「最適な報酬関数は最適な方策から逆に導出できる」ということです。数式で証明するとRLHFの目的関数が単純な分類損失(cross-entropy)に変換されます。実装がRLHFよりはるかに簡単で安定的であり、性能も同等以上の場合が多く、急速に採用されています。
キーコンセプト
1
選好データ収集: プロンプト+選好応答(chosen)+非選好応答(rejected)のペア
2
Reference Modelを固定: 学習前LLMのコピーを参照モデルとして使用
3
DPO損失関数を計算: log(π(chosen)/π_ref(chosen)) - log(π(rejected)/π_ref(rejected))
4
選好応答の確率を高め、非選好応答の確率を下げる方向に重みを更新
5
βパラメータで参照モデルからの逸脱度を制御
6
別途の報酬モデル/PPOなしで直接整列完了
メリット
- ✓ 報酬モデル学習不要 → パイプラインの簡素化
- ✓ PPOより学習が安定的
- ✓ メモリ/計算効率が高い
- ✓ RLHFと同等以上の性能
デメリット
- ✗ データ品質に非常に敏感
- ✗ 選好ペアデータの構築コスト
- ✗ βハイパーパラメータのチューニングが必要
- ✗ 複雑な選好パターンの表現に限界
ユースケース
LLaMA 2 Chatの学習
Zephyrモデル
Mixtral Instruct
オープンソースモデル整列の事実上の標準