論文紹介: Direct Preference Optimization: Your Language Model is Secretly a Reward Model


<!-- 論文紹介: Direct Preference Optimization: Your Language Model is Secretly a Reward Model-->

## はじめに

こんにちは、ひよこです。今回は、近年注目を集めている言語モデル微調整の新手法である **Direct Preference Optimization (DPO)** について紹介します。この手法は、複雑な強化学習（RL）を不要にし、シンプルかつ効率的に人間の選好に沿った言語モデルを構築できる技術です。

**参考文献**:
- R. Rafailov, A. Sharma, E. Mitchell et al., ["Direct Preference Optimization."](https://arxiv.org/abs/2305.18290) (NeurIPS 2023). 

DPO は、従来の強化学習から派生した RLHF (Reinforcement Learning with Human Feedback) の課題を克服することを目的としています。RLHF の複雑さや計算コストの高さを解消しつつ、同等以上の性能を発揮する方法論として提案されています。

> 🐣 「この出力は良い」とか「こちらは悪い」とか人間はわがままだなぁとか思われてそう

---
## 0. 忙しい人向けの要約

- **基本アイデア**: 強化学習を使わずに、人間の選好を直接モデルに反映させて調整  
- **利点**: 安定・高速な学習が可能で、ハイパーパラメータ調整や計算コストを削減  
- **従来手法との違い**: 報酬モデルや強化学習が不要で、よりシンプルなプロセスで同等以上の性能を発揮  
- **実験結果**: 既存手法に匹敵、または上回る性能を示し、安定性・効率性が高い  
- **今後の展望**: モデル規模拡大や分布外一般化などに向けて、さらなる応用が期待

---
## 1．論文の概要
大規模言語モデル (LLM) は膨大なテキストデータから学習することで、幅広い知識と推論力を獲得します。しかし完全な教師なし学習には限界があり、人間が望むような出力を直接的に制御するのは容易ではありません。これまで、この問題に対応するために「人間の選好 (preference)」に基づく手法が模索されてきました。たとえば、人間が好む出力を報酬として与え、それを最大化するよう強化学習でモデルを微調整する手法 (RLHF) が代表例です。

RLHF では、まずいったラベルをつけ、その選好を学習した報酬モデルを使って、言語モデルを強化学習によって更新します。しかし、報酬モデルの学習や強化学習ステップは複雑で計算コストもかかりやすく、不安定な挙動を示すこともありました。さらに、元の言語モデルから大きく逸脱しないような制御も難しいという問題がありました。

こうした課題に対し、新たなパラダイムとして提案されたのが Direct Preference Optimization (DPO) です。DPO は報酬モデルと最適な方策 (ポリシー) の間の理論的対応関係を活用し、複雑な強化学習ステップを必要とせず、シンプルな分類問題として人間の選好に沿った微調整を実現します。DPO は安定的で高性能な学習が可能で、既存手法と同等以上の性能を示しながら、計算コストを削減し、ハイパーパラメータチューニングも大幅に簡略化できます。

### 補足: アライメントの重要性
アライメントとは、モデルが人間の価値観や意図に沿って振る舞うように調整することを指します。LLM は大量のデータで学習しますが、その中には人間の望まない発言や不適切な応答のパターンも含まれます。もしアライメントが不十分だと、以下のような問題が生じ得ます。

- **誤解を招く発言**: ユーザが求めていない極端な意見や不正確な情報を出力  
- **倫理的・社会的トラブル**: 差別的、攻撃的、または法的問題を引き起こす不適切な応答  
- **ブランド価値の損失**: サービス提供者の信用低下や炎上リスクの増大

逆に、アライメントを適切に行うことで、人間の期待に沿った分かりやすく安全な応答が可能となり、ユーザ体験を向上させることができます。DPO をはじめとする新しい手法は、このアライメント作業をより効率的かつ確実に進める手段として有望視されています。

> 🐣 つまりは LLM にお行儀を教え込むってことですね
---
## 2. 従来手法と関連研究

LLM に人間が書いた指示や好みを反映させる手段として指示チューニングや選好学習が用いられますが、多くは複雑な強化学習過程を伴います。選好ベースの強化学習はバンディット学習の一種としても研究されてきましたが、いずれも報酬モデルの構築や RL アルゴリズムの不安定性などの問題が残っていました。

### 補足: バンディット学習
バンディット学習は「どのスロットマシン（選択肢）を引けば一番得をするか」を、試行錯誤しながら学習する手法です。たとえば複数のスロットマシンが並んでいて、どれが当たりやすいか分からない状態で、何度か挑戦しながら最も利益を生むマシンを見つけていきます。この考え方を言語モデルに応用すると「A と B の回答例のうち、どちらが好ましいか」というフィードバックを人間から得て、最適な選択（応答）を学ぶことができます。

ただし従来は、この人間の選好データを使い、わざわざ報酬モデルを作ったうえで強化学習により微調整する必要があり、学習が不安定になりやすい問題がありました。DPO は、このプロセスをよりシンプルかつ安定的な方向へ導くことで、この「バンディット的な選好学習」の課題を解決しようとしています。

## 3. 従来の RLHF パイプライン

RLHF は通常、以下の 3 段階で進みます。

1. 教師あり fine-tuning (SFT): 事前学習済みモデルを、高品質なデータで教師あり微調整する。  
2. 報酬モデリング: 人間が選んだ「好ましい出力」と「好ましくない出力」のペアを用いて報酬モデルを学習する。  
3. RL 最適化: 学習した報酬モデルを最大化するように、KL 制約付きで強化学習を行いモデルを最適化する。

しかし、この一連のプロセスは、報酬モデル学習と強化学習の 2 段構えであり、複雑かつ不安定になりがちでした。

---
## 4. Direct Preference Optimization (DPO) のアイデア

DPO の核心は、従来の「報酬モデルを学習してから、それを最大化するために RL を回す」という二段構成の簡略化です。DPO では、以下の考え方を使います。

- 報酬関数と最適なポリシーの間に理論的な対応関係を用い、報酬最大化問題を直接的な最適化問題として定式化します。  
- 独立した報酬モデルを構築せず、言語モデルそのものが暗黙的な報酬を表現するような形に落とし込みます。  
- KL 制約付きの報酬最大化問題は、実はシンプルな分類問題として再解釈可能であり、通常のクロスエントロピー損失で最適化できます。

これらにより、DPO は複雑な強化学習を必要とせず、サンプリングコストを抑え、過度なハイパーパラメータチューニングも不要になります。DPO を用いると、ポリシー更新はほぼ教師あり学習と同様の手法で行え、計算コストや実装の複雑さが著しく軽減されます。

---
## 5. 数学的な定式化 (補足解説)

ここからは DPO の核となる数理的な部分について簡潔に補足します。初心者の方は、この部分は読み飛ばしても問題ありませんが、DPO がなぜシンプルな分類問題として定式化できるのか、その理論的背景を知ることで理解が深まります。

まず、RLHF の目標は「報酬モデル $r_\phi(x,y)$ を最大化しつつ、参照モデル $\pi_{ref}(y|x)$ からあまり逸脱しないようにポリシー $\pi_\theta(y|x)$ を更新する」ことです。これを定式化すると、以下のような KL 制約付き最大化問題になります。

```math
\max_{\pi_\theta} \mathbb{E}_{x,y \sim \pi_\theta} [r_\phi(x,y)] - \beta D_{KL}[\pi_\theta(y|x) \| \pi_{ref}(y|x)]
```

ここで $D_{KL}$ は KL 情報量、$\beta$ は制約の強さを示すパラメータです。さらに、人間の選好を Bradley-Terry モデルという確率モデルで表すと、好まれた応答とそうでない応答のペア $(y_w, y_l)$ に対する選好確率は

```math
p^*(y_w \succ y_l|x) = \frac{\exp(r^*(x,y_w))}{\exp(r^*(x,y_w)) + \exp(r^*(x,y_l))}
```

と書けます (ここで $r^*(x,y)$ は真の潜在報酬関数、$r_\phi(x,y)$ はその推定)。

このとき、KL 制約付き報酬最大化問題の最適解は、以下のような閉形式で与えられます。

```math
\pi_r(y|x) = \frac{1}{Z(x)} \pi_{ref}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right)
```

ここで $Z(x)$ は正規化のための分配関数です。さらにこの形式から、報酬関数 $r(x,y)$ をポリシー比 $\pi_\theta(y|x)/\pi_{ref}(y|x)$ を用いて再パラメータ化でき、結果的に DPO は次のようなシンプルな損失関数を導出します。

```math
\mathcal{L}_{DPO}(\pi_\theta; \pi_{ref}) = -\mathbb{E}_{(x,y_w,y_l)\sim \mathcal{D}} \left[\log \sigma\left(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)}\right)\right]
```

ここで $\sigma$ はシグモイド関数です。この定式化によって、もともと RL を必要とするような複雑な問題が、単純な「選好を当てる分類問題」に帰着されます。ポリシー更新は通常の勾配降下法で安定的にできるため、報酬モデル学習や強化学習特有の不安定性から解放されます。

### 補足: DPO と KL 情報量の関係は？
RLHF では KL 情報量は「参照モデルからどれだけ逸脱しているか」を測る指標であり、モデル更新時の「歯止め」として機能します。これを直接最小化することで、モデルが元の分布から急激に外れないよう制御していました。  
一方、DPO では、その最適解の解析的な形を利用することで、同等の効果を単純なクロスエントロピー損失で達成できます。つまり、KL を明示的に**計算・最適化する必要がなくなり**、理論的な保証を維持しながら計算・実装の負担を大幅に軽減することができたのです。

---
## 6. 実験的評価と結果

DPO は、感情制御生成、要約生成、対話タスクなど複数の応用タスクで評価されています。これらのタスクでは、DPO は既存の強化学習ベースの手法 (たとえば PPO) と同等以上の人間選好一致性を示しながら、学習ははるかに安定的で、計算コストやパラメータ調整に要する労力が大幅に削減できることが示されています。

---
## まとめ

DPO は、選好学習に新しい道を示す手法です。RLHF が必要とした複雑な報酬モデル学習や RL ステップを、シンプルな分類問題に帰着させ、理論的に整合的で計算効率の良い学習を可能にします。その結果、選好学習のプロセスは安定し、実務的にも扱いやすいものとなりました。今後は、より大規模モデルでの適用や、分布外一般化性能の検証、さらなる大規模な評価実験などが課題として残されています。

---
## おわりに
以上が DPO の概要と、理論的背景、そして実験結果の紹介です。初学者の方にも、この手法の鍵となるアイデアのシンプルさと有用性が伝われば幸いです。いつか自分好みの LLM を作ってみたいですね。ではまた次の記事でお会いしましょう。