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