【ディーピーオー】

DPO(Direct Preference Optimization) とは?

最終更新:
💡 好みの比較を、モデルの学習に直接つなぐ

Direct Preference Optimization(直接選好最適化)の略。同じ入力に対する回答の比較データで言語モデルを調整する。独立した報酬モデルの学習や強化学習のループを省く。

📌 このページのポイント
DPO:選好を学ぶ手順の比較代表的なRLHFDPO比較データ報酬モデルを学習強化学習で調整比較データモデルを直接調整基本形では参照モデルも使う調整する言語モデルは、どちらも必要DPOは独立した報酬モデルの学習を省く
選好学習部分の比較。事前学習や準備は省略しています。手順の違いで性能を保証する図ではありません。
ひよこ ひよこ
DPOは、RLHFのどこを変えたの?
ペンギン先生 ペンギン先生
代表的なRLHFでは、比較データで報酬モデルを作り、その評価を使って強化学習を行うよ。DPOは、別の報酬モデルを学習する工程と強化学習のループを使わず、比較データから回答のモデルを直接調整するんだ。
ひよこ ひよこ
なぜ、報酬モデルを作らなくてもいいの?
ペンギン先生 ペンギン先生
原論文は、一定の仮定の下で報酬と回答のモデルの関係を数式で表し、選好を学ぶ目的を回答のモデルの式に置き換えているよ。報酬の考え方そのものが消えるのではなく、独立した報酬モデルを学習しなくてよくなるんだ。
ひよこ ひよこ
どんなものを用意して学習するの?
ペンギン先生 ペンギン先生
同じ入力に対する好ましい回答と比較相手の回答、調整する言語モデル、学習設定などだよ。基本形では参照モデルも使う。Hugging FaceのTRLにはDPO Trainerがあり、こうした比較データを渡して追加学習できるんだ。
ひよこ ひよこ
DPOを使えば、回答は必ず正確になる?
ペンギン先生 ペンギン先生
好みの比較は、事実の正しさを保証するものではないよ。比較データの内容や基準が偏っていれば、その影響を受ける。手順の簡素さだけで決めず、タスクに合うデータを用意し、学習後の回答を別のデータで評価しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DPO」って出てきたら「回答の好みを比べて、言語モデルを直接調整する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Direct Preference Optimization」 = 直接的な選好最適化
💬 Directは「直接」、Preferenceは「好み」、Optimizationは「最適化」。報酬モデルを介さず直接好みを学ぶから「ダイレクト」なんだよ

参考資料

← 用語集にもどる