Re Reference AI

技術

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が採用される。

アーキテクチャ

RLHFは方策モデル・報酬モデル・(PPOでは)価値関数モデルという複数のネットワークを必要とするのに対し、DPOは学習対象の方策モデルと、学習開始時点で固定した参照モデル(多くは指示チューニング済みモデルのコピー)の2つだけで構成される。 損失関数は、選好された応答と棄却された応答それぞれについて方策モデルと参照モデルの対数確率比を計算し、選好された応答の比が棄却された応答の比より大きくなるよう促す二値分類形式のロジスティック損失として定義される。 報酬モデル強化学習のサンプリングループを持たないため、教師あり学習と同様の1パスの勾配降下法で最適化できる。

ワークフロー

同じプロンプトに対する2つの応答のペアと、どちらが好ましいかを示す人間の選好ラベルを収集する。 選好データに対して、好ましい応答の生成確率を上げ、好ましくない応答の生成確率を下げるようなDPO損失関数を定義する。 事前学習指示チューニング済みのモデルに対し、DPO損失を使って直接勾配降下法で方策を更新する。

コード例

TRLでのDPO学習の骨格

from trl import DPOTrainer, DPOConfig

config = DPOConfig(beta=0.1, output_dir="./dpo-model")
trainer = DPOTrainer(
    model=model,
    ref_model=ref_model,
    args=config,
    train_dataset=preference_dataset,  # {prompt, chosen, rejected} 形式
)
trainer.train()

利点

  • 報酬モデルの学習や強化学習ループが不要で、RLHFよりパイプラインが簡素になる
  • 教師あり学習に近い枠組みで最適化できるため、学習が安定しやすい
  • 既存の指示チューニング済みモデルに対して、比較的少ない追加計算コストで適用できる

欠点

  • 選好データの質と量に性能が大きく依存し、偏ったデータはモデルの挙動を歪める
  • オンラインで新たな応答を生成しながら評価するRLHFと比べ、オフラインの固定データに基づく最適化のため、方策の分布が学習データから離れすぎると性能が低下しうる
  • 報酬モデルを明示的に持たないため、報酬の妥当性を独立に検証しにくい

比較

  • RLHFDPOはRLHFの報酬モデル学習と強化学習の段階を、選好データに対する単純な分類損失の最適化に置き換えた手法
  • 指示チューニングDPOは指示チューニング済みのモデルの応答を、さらに人間の選好へ合わせ込む目的で適用されることが多い
  • アライメントDPOはアライメントを実現するための具体的な学習手法の1つ

関連用語

RLHFアライメント指示チューニングファインチューニング強化学習

よくある質問

DPOとRLHFの違いは?

RLHF報酬モデルを学習し強化学習で方策を最適化する多段階のプロセスであるのに対し、DPOは選好データから直接方策を最適化する単一ステップの手法。DPOは実装がシンプルで、学習も安定しやすいとされる。

DPOにはどんなデータが必要?

同じプロンプトに対する2つの応答と、どちらが好ましいかを示す人間(またはAI)の選好ラベルのペアデータが必要になる。

参考文献

関連Zenn記事