LLM学習・訓練

DPO(Direct Preference Optimization) でぃーぴーおー(だいれくとぷりふぁれんすおぷてぃまいぜーしょん)

DPODirect Preference Optimization人間フィードバックRLHFの代替選好学習ファインチューニング
DPOについて教えて

簡単に言うとこんな感じ!

RLHFの「複雑な強化学習」を使わず、「良い回答 vs 悪い回答」の比較データだけでシンプルに学習できる手法だよ!報酬モデルを別途作らなくていいからコストも下がって、でも性能はRLHF並み!「賢くて安全なAI」をより手軽に作れるようになったんだ!


DPO(Direct Preference Optimization)とは

DPO(Direct Preference Optimization) とは、2023年にStanford大学が提案した、RLHFの報酬モデルと強化学習を省略し、人間の選好(好みの比較データ)から直接LLMを最適化する手法です。RLHFでは「SFT → 報酬モデル学習 → PPOによる強化学習」という3ステップが必要でしたが、DPOはこれを数式上でまとめて1つの損失関数に統合しています。

理論的には、RLHFが解こうとしている最適化問題を変形すると、報酬モデルを陽に学習しなくても直接LLM自体の選好を損失関数として表せることをDPOは示しました。実装が単純(通常の分類と同様の学習ループ)、報酬モデル不要でコストが低い、学習が安定しやすいという利点があります。Llama 2 Chat・Zephyrなどの有力モデルで採用されています。


DPOとRLHFの比較

項目RLHFDPO
報酬モデル必要(別途学習)不要
強化学習PPOが必要不要(通常の損失関数)
実装の複雑さ高い低い
計算コスト高い中程度
安定性報酬ハッキングのリスク比較的安定
代表採用モデルChatGPTLlama 2 Chat, Zephyr

歴史と背景

  • 2023年5月:Rafailov et al.「Direct Preference Optimization: Your Language Model is Secretly a Reward Model」を発表
  • 2023年後半:Zephyr(HuggingFace)がDPOで高性能を達成し注目
  • 2024年:SimPO・ORPO・IPOなどDPOの改良版が多数登場
  • 現在:RLHFとDPOの両方が使われており、用途・コストに応じて選択

DPOの学習データ例

DPOの学習データ形式(Preference Pair):

指示: 「東京の観光スポットを教えて」

chosen(良い回答):
  「東京の主な観光スポットには、浅草寺・東京スカイツリー・
   新宿御苑・上野公園などがあります。浅草寺は...」

rejected(悪い回答):
  「東京に観光スポットはたくさんありますね。色々あると
   思います。ご自身で調べてみてください。」

→ DPOはchosenをrejectedより生成しやすいよう最適化

関連用語

  • RLHF — DPOが置き換えを狙う強化学習ベースの手法
  • SFT — DPOの前段階として必要な教師あり微調整
  • GRPO — DPOと競合する別の選好最適化手法
  • 報酬モデル — DPOが不要にする報酬モデル
  • PPO — DPOが代替するPPOベースの強化学習