DPOとその後 — RLHFを単純化する系譜
報酬モデルを別に建てずに選好から直接学ぶDPOの導出を、KL制約付き最大化の閉形式解から一段ずつ追う。さらにDPOの過学習を数式で説明したIPO、ペアを要求しないKTO、価値モデルを捨ててオンラインへ戻ったGRPOまでを「何を消したか」で整理し、手元のデータの形から選ぶ基準をまとめる。
Direct Preference Optimization: Your Language Model is Secretly a Reward Model
一次資料 — この記事の根拠
この解説の公開 2026-08-27
Direct Preference Optimization: Your Language Model is Secretly a Reward ModelarXiv:2305.18290論文ページ·PDFA General Theoretical Paradigm to Understand Learning from Human PreferencesarXiv:2310.12036論文ページ·PDF
KTO: Model Alignment as Prospect Theoretic OptimizationarXiv:2402.01306論文ページ·PDF
DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsarXiv:2402.03300論文ページ·PDF
ORPO: Monolithic Preference Optimization without Reference ModelarXiv:2403.07691論文ページ·PDF
報酬モデルという「回り道」
料理の腕を上げたいとします。素直な方法は、食べた人に「AとB、どっちが美味しい?」と聞いて、答えを次の一皿に反映させることです。
ところがRLHF(人間のフィードバックによる強化学習)は、そこにワンクッション置きます。まず「AとBならA」という比較データを大量に集め、それで採点員を育てる。採点員とは、料理を入れると点数を返すニューラルネット、つまり報酬モデルです。そのうえで、採点員が高い点をつける料理を作るように、料理人(言語モデル)を強化学習で回す。この3段構えがInstruction Tuning と RLHFで扱ったInstructGPT型のパイプラインです。
回り道をする理由ははっきりしています。強化学習は「試して、点をもらって、直す」を何万回も繰り返すので、そのたびに人間に聞くわけにはいかない。だから人間の代役が要る。
代償も同じくらいはっきりしています。学習中のGPUには4つのモデルが同時に載ります。学習中の方策、固定した参照モデル、報酬モデル、そしてPPOが使う価値モデル。おまけに強化学習は不安定です。「人間の好みを反映したい」だけなのに、装置が大きすぎるのです。
2023年のDPO(Direct Preference Optimization)は、ここに一撃を入れました。採点員はいらない。 正確には、採点員は方策そのものの中にすでに書き込まれているので、別のネットワークとして建てる必要がない、という主張です。
直感: 採点表は方策の中にすでにある
核心は一行です。ある採点基準(報酬関数)を決めれば、それに最適化された料理人が一意に決まる。逆も成り立つ。 料理人の振る舞いを見れば、どんな採点基準に最適化されたかが逆算できる。だとしたら採点基準を先に学ぶ必要はなく、比較データを直接料理人に当てればいい。
但し書きが1つ。逆算には「参照点」が要ります。料理人が塩を強めに使ったとして、それが「塩が高評価だから」なのか「もともとの癖」なのかは単独では分かりません。訓練前の姿と比べて初めて、訓練に押された差分が読み取れます。だからDPOには最後まで参照モデルが登場します。消えるのは報酬モデルと価値モデルであって、参照モデルではありません。
仕組み: 報酬モデルが消える3行の変形
出発点は、RLHFが解こうとしている問題そのものです。
は入力(プロンプト)、 は出力(応答)、 が学習中の方策、 が訓練前に固定した参照モデル、 が報酬、 は2つの分布のズレを測るKL情報量です。つまりこの式は「もらえる点数の平均をできるだけ高くしたい。ただし訓練前の自分から離れた分だけ、 倍の罰金を差し引かれる」という一文を、そのまま記号に置き換えたものです。 は「どれだけ冒険していいか」のつまみです。
ここが分かれ道でした。従来はこれをPPOで近似的に解いていた。ところがこの形の問題には、閉じた式の厳密解があります。
つまり最適な方策は「元のモデルの出やすさに、報酬の指数関数を掛け、合計が1になるよう割っただけ」ということです。 はその割り算に使う正規化定数(分配関数)で、 ごとに1つ決まります。報酬が高い応答は指数で持ち上げられますが、元のモデルがほぼ出さない応答は が小さいので急には出てきません。KL罰金の正体はこれです。
次に、この式を について解き直します。対数を取って移項するだけです。
これが決定的な一行です。 報酬が、方策と参照モデルの「対数の比」で書けてしまった。つまりある応答の報酬とは「訓練後のモデルがそれを言う確率は、訓練前と比べて何倍になったか」を対数で測り、 倍したもの、というのがこの式の中身です( は応答によらず全員に同じだけ乗る下駄)。報酬関数を別に持つ必要はなく、方策そのものが報酬関数を兼ねている。原論文の副題「あなたの言語モデルは、実は報酬モデルである」はこの式を指しています。
残る問題は で、全応答にわたる和なので計算できません。ここで選好データの形が効きます。人間が答えているのは絶対的な点数ではなく「AとBならA」という比較でした。比較を確率に変える古典的なモデルがBradley-Terryモデルです。
は人間が選んだ方、 は選ばれなかった方、 はシグモイド関数です。つまり「2つの応答の点差をシグモイドに通した値が、人間がそちらを選ぶ確率になる」— 点差が大きいほど勝つ確率が1に近づく、スポーツのレーティングと同じ発想です。
注目すべきは、式(4)に入るのが報酬の差だという点です。式(3)を代入すると は両側に同じ値で現れるので、引き算できれいに消えます。計算できなかった項が、問題の立て方のおかげで消滅する。
コメント
コメントにはログインが必要です