🎲

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 オープンソースモデル整列の事実上の標準