モデルのしくみ 上級

DPO

Direct Preference Optimization

「AとBのどちらの回答がよいか」という人の好みのデータから、報酬モデルを別に作らずにモデルを直接調整する手法です。RLHF より手順が簡単になるため、広く使われています。

例人が選んだ回答と選ばなかった回答のペアを集め、報酬モデルを作らずに DPO で調整した。

詳しく

DPO(Direct Preference Optimization、直接選好最適化)は、人が付けた「この回答のほうがよい」という比較データを使って、言語モデルを直接調整する学習方法です。2023年に提案され、RLHF の代わりとして広まりました。

背景:RLHF の手間

RLHF では、まず人間の好みを学ぶ報酬モデルを作り、次に強化学習でその報酬が高くなるよう言語モデルを更新します。報酬モデルの用意、強化学習の不安定さ、調整すべき設定の多さなど、実装と運用の負担が大きいことが課題でした。

しくみ

DPO は、報酬モデルを別に作らず、好みの比較データをそのまま使って言語モデルを学習します。データは次の形です。

  • 指示(プロンプト)
  • 選ばれた回答(人が好んだほう)
  • 選ばれなかった回答(好まなかったほう)

学習では、基準となるモデル(SFT 後のモデルなど)からあまり離れすぎない範囲で、「選ばれた回答の確率を相対的に上げ、選ばれなかった回答の確率を下げる」ように更新します。数学的には、RLHF が目指していた目的を、強化学習を使わずに通常の教師あり学習に近い形の損失で書き直したものです。

具体例

料理教室で、先生が2つの試作品を並べ、「こちらのほうが良い」と評価するだけの指導を想像してください。レシピ(絶対的な正解)を示すのは手本をまねる SFT に近く、2品を比べて好みを伝えるのが DPO です。比べるほうが、人にとって判断しやすい場合が多くあります。

使うときの注意・よくある誤解

  • 好みのデータの質が結果を決める:比較の基準があいまいだったり、評価者によってばらついたりすると、学習がうまくいきません。
  • 長い回答に偏ることがある:評価者が長い回答を好む傾向があると、モデルも冗長になりやすくなります。
  • 万能の勝者ではない:DPO と RLHF のどちらが良いかは、タスクやデータ、実装次第で、一律には決まりません。実際の学習では、複数の手法を組み合わせることもあります。
  • 基準モデルが前提:多くの場合、まず SFT でおおよその振る舞いを整えてから DPO をかけます。
  • 派生手法も多数提案されています。名称や違いは頻繁に更新されるので、使うときは最新の資料を確認してください。

関連する考え方

DPO は、人の価値観や意図に合わせるアラインメントの手法の1つです。「回答に原則を当てはめて自分で評価させる」Constitutional AI のような方法でできた比較データを、DPO で使うこともあります。軽量な LoRA と組み合わせれば、小さな計算資源でも試せます。

あわせて知りたい言葉

「モデルのしくみ」の言葉をすべて見る