DPOとは
Direct Preference Optimization / 直接選好最適化
報酬モデルを別途学習せず、人間の選好データから直接LLMの方策を最適化するアライメント手法
ひとことで言うと
「こっちの答えの方が良い」という人の好みデータを使い、報酬モデルという中間ステップなしでAIを直接調整する方法。
概要
DPO(Direct Preference Optimization)は、ある質問に対する2つの応答のどちらが好ましいかを示す人間の選好データを使い、RLHFのように別途報酬モデルを学習し強化学習で最適化するのではなく、選好データから直接LLMの方策(パラメータ)を最適化するアライメント手法。 RLHFにおける報酬モデルとKL制約付き方策最適化の目的関数を数式的に整理すると、実は選好データに対する単純な分類損失(好ましい応答の確率を上げ、好ましくない応答の確率を下げる)として書き換えられることを示し、強化学習の複雑な学習ループなしで同等の効果を得られるようにした点がDPOの核心。 報酬モデルの学習、方策からのサンプリング、PPOなどの強化学習アルゴリズムによる更新という複数段階から成るRLHFのパイプラインを、教師あり学習に近い単一の最適化ステップに置き換えられるため、実装がシンプルになり学習も安定しやすい。 2023年の登場以降、多くのオープンウェイトLLMの指示チューニング・アライメント工程で、RLHFの代替または補完として広く採用されている。
背景
RLHFは高い効果を持つ一方、報酬モデルの学習、方策のサンプリング、強化学習による更新という複数の複雑な段階を経る必要があり、学習の不安定さや実装コストの高さが課題だった。 DPOは、RLHFの目的関数を数学的に変形することで、この複雑なパイプラインを単純な分類問題として解けることを示し、実装と学習の負担を軽減する狙いで考案された。
歴史
2023年: Rafailovらが論文「Direct Preference Optimization: Your Language Model is Secretly a Reward Model」を発表。 2023-2024年: MistralやZephyr、Llamaベースの派生モデルなど、多くのオープンウェイトLLMのアライメント手法としてDPOが採用される。
ワークフロー
同じプロンプトに対する2つの応答のペアと、どちらが好ましいかを示す人間の選好ラベルを収集する。 選好データに対して、好ましい応答の生成確率を上げ、好ましくない応答の生成確率を下げるようなDPO損失関数を定義する。 事前学習・指示チューニング済みのモデルに対し、DPO損失を使って直接勾配降下法で方策を更新する。
利点
欠点
比較
関連用語
よくある質問
DPOとRLHFの違いは?
RLHFは報酬モデルを学習し強化学習で方策を最適化する多段階のプロセスであるのに対し、DPOは選好データから直接方策を最適化する単一ステップの手法。DPOは実装がシンプルで、学習も安定しやすいとされる。
DPOにはどんなデータが必要?
同じプロンプトに対する2つの応答と、どちらが好ましいかを示す人間(またはAI)の選好ラベルのペアデータが必要になる。