論文紹介: Discovering Preference Optimization Algorithms with and for Large Language Models ～その 1～

<!-- 論文紹介: Discovering Preference Optimization Algorithms with and for Large Language Models -->

## はじめに

今回は、「Discovering Preference Optimization Algorithms with and for Large Language Models」というタイトルの論文を紹介します。本論文では、大規模言語モデル (LLM) の損失関数を、LLM で自律的に発見・改善する手法について述べられています。論文は LLM が発見した DiscoPOP という損失関数の優秀さを示す本文と多くの方が気になるであろう『LLM がどうやって発見したのか』に関する Appendix (付録) に分かれていました。そこでこの論文は **2 回に分けて**解説したいと思います。

参考文献:  
C. Lu, S. Holt, C. Fanconi, A. J. Chan, J. Foerster, M. van der Schaar, & R. T. Lange. ["Discovering Preference Optimization Algorithms with and for Large Language Models"](https://github.com/luchris429/DiscoPOP), NeurIPS 2024.

> 🐣 この論文は付録の方が長いんです…

---

## 0 時間がない人向けの概要

この論文では、「オフライン嗜好最適化アルゴリズム(損失関数)」を LLM で自動的に発見する手法を提案し、従来の損失関数を上回る損失関数「Discovered Preference Optimization（DiscoPOP）」を発見しました。

- **新規性**: 人間の介入なしで LLM が優秀な損失関数 DiscoPOP を自動生成  
- **応用例**: 対話生成、感情制御、要約生成など幅広いタスクで有効  
- **利点**: 従来手法よりも高い性能を達成し、一般化能力を持つ損失関数を LLM で発見可能
- **リソース**: 実装コードが [GitHub](https://github.com/luchris429/DiscoPOP) にて公開中  

---

## 1 論文の概要

この論文では、LLM を用いて新しい「オフライン嗜好最適化アルゴリズム(損失関数)」を発見する手法を提案しています。以下が主なポイントです。

### 1.1 問題設定
事前学習済みのLLMは、そのままでは人間の価値観に合わない出力を生成する場合があります。そのため、嗜好データ（人間の嗜好に基づくラベル付きデータ）を活用して、モデルを人間の価値観に合わせる手法が必要です。

### 1.2 従来手法の課題
- **損失関数への依存**: 従来の手法（例: Direct Preference Optimization, Sequence Likelihood Calibration）は、手動で設計された損失関数を使用しており、探索空間が限られています。これにより、新しい損失関数の可能性が見逃されるリスクがあります。
- **重みの最適化に限られる範囲**: 従来手法はモデルの重みを最適化しますが、損失関数自体は固定されており、損失関数そのものを改良するアプローチが不足しています。

### 1.3 提案手法の特徴
- **損失関数の自動生成**: 提案手法では、LLMを用いて新しい損失関数を自動生成し、そのパフォーマンスをタスク指標（例: MT-Benchスコア）で評価するループを構築。

- **モデルへの直接的な介入はなし**: 提案手法は、既存のモデルアーキテクチャや重みには手を触れず、既存または追加可能な嗜好データと発見された損失関数だけで性能向上。

- **新規データは必須ではない**: 提案手法の焦点は損失関数の改善にあるため、既存の嗜好データセットを活用して動作可能です。ただし、タスクに応じて新しい嗜好データを追加することで、適応性がさらに高まる可能性。

- **LLM が独自に探索**: 人間が初期条件さえ与えれば後は LLM が自律的に最適な損失関数を発見可能なことを示唆。

以下に本論文を読む際の予備知識として必要な用語について示します。

| 用語 | 説明 |
|------|------|
| オフライン嗜好最適化 | データセットを基にモデルを人間の嗜好に合わせるアルゴリズム |
| DiscoPOP | 提案手法で発見された、新しい非凸損失関数を用いた損失関数|
| RLHF | 人間のフィードバックを利用した強化学習 |
| ロジスティック損失 | 対数型の損失関数で、小さなランク差 $\rho$ に対しての影響が大きく、学習初期に適した挙動を示す |
| 指数損失 | 指数型の損失関数で、大きなランク差 $\rho$ に対しての影響が大きく、学習後期に適した挙動を示す |

---

## 2 関連研究

この論文では、以下の既存研究を基に、損失関数設計と嗜好最適化アルゴリズムを発展させています。

### 2.1 **Direct Preference Optimization (DPO)**
#### 概要
- **DPO の特徴**: DPO は、選好データペア（人間が嗜好する選択肢と非選択肢）を用いてモデルを訓練します。
- **アルゴリズムの基本**: ロジスティック損失を使用して選好データのランク付けを直接学習します。

  ```math
  f_{\text{DPO}}(\beta \rho) = \log(1 + \exp(-\beta \rho))
  ```
ここで、$\rho$ は選好ペア間の確率的ランク差を示します。選好関係の研究において、$\rho$ は非常に重要であり、以下のように選好データペアの生成確率に対する対数差分で表されます：

```math
\rho = \log \frac{\pi_\theta(y_w | x)}{\pi_\text{ref}(y_w | x)} - \log \frac{\pi_\theta(y_l | x)}{\pi_\text{ref}(y_l | x)}
```

ここで：
- $\pi_\theta$ はモデル $\theta$ による出力の確率分布
- $\pi_\text{ref}$ は参照モデルの出力確率分布
- $y_w$ と $y_l$ は、それぞれ「望ましい選好」と「望ましくない選好」とされた出力を表します

この定義により、$\rho$ はモデルと参照モデルの間で、選好データに基づく相対的なスコア差を計算する指標となります。$\rho$ が正の値の場合、モデル $\pi_\theta$ は望ましい選択肢 $y_w$ を参照モデル $\pi_\text{ref}$ よりも高く評価していることを意味し、$\rho$ が負の場合はその逆を示します。

> 🐣 元が**参照モデル**、選好関係を反映しようとしているのが**モデル**ですね

#### 提案手法との関係
- **発展のポイント**: 提案手法は DPO のように選好データペアを利用しますが、固定的なロジスティック損失ではなく、LLM を用いて動的に設計された新しい損失関数を採用します。
- **併用可能性**: 提案手法は DPO の学習フレームワークをそのまま利用でき、DPO で使用する損失関数を提案手法で生成したものに置き換える形で併用が可能です。

### 2.2 **Sequence Likelihood Calibration (SLiC)**
#### 概要
- **SLiCの特徴**: SLiCはロジスティック損失に代わり、マージンベースのヒンジ損失を使用して嗜好ペアのランク付けを学習します。
  
  ```math
  f_{\text{SLiC}}(\beta \rho) = \max(0, 1 - \beta \rho)
  ```
  - この手法では、より大きなランク差を強調する特性があります。
  - $\beta$ は外部パラメータとして固定され、学習中に動的に変化しません。

#### 提案手法との関係
- **発展のポイント**: 提案手法は SLiC の「損失関数を改良して嗜好の差を強調する」という基本アイデアを引き継ぎつつ、より柔軟かつ複雑な損失関数を設計します。これにより、データ特性や学習フェーズに応じて動的な挙動を示すよう設計されています。損失関数の詳細はこの先で詳しく述べます。
- **上位互換としての提案**: 提案手法は、SLiC の基本設計を含むような柔軟性を持つ損失関数を生成可能であり、SLiC の単純なヒンジ損失表現に比べ、より複雑な嗜好関係や学習条件に適応できる点で上位互換と言えます。

---

## 3 提案手法の詳細

提案手法は、ロジスティック損失と指数損失を動的に組み合わせた新しい損失関数「Log Ratio Modulated Loss（DiscoPOP）」を採用しています。この損失関数は以下のように表現されます。

```math
f_{\text{lrml}}(\beta \rho) = (1 - \sigma(\beta \rho / \tau)) \cdot \log(1 + \exp(-\beta \rho)) + \sigma(\beta \rho / \tau) \cdot \exp(-\beta \rho)
```

ここで、
- $\sigma$ はシグモイド関数で、ロジスティック損失と指数損失の動的な切り替えを制御します。
- $\tau$ は温度パラメータで、切り替えのスケールを調整します。

### 学習中の挙動

#### 初期段階
- モデルが選好データを十分に学習していない初期段階では、ランク差 $\rho$ の値が小さくなりがちです。
- このとき、$\sigma(\beta \rho / \tau)$ の値は約 0.5 に近づき、ロジスティック損失と指数損失が均等に寄与します。
- これにより、学習が安定し、ランク差が小さなペアに対する穏やかな罰則が適用されます。

#### 学習が進むと
- 学習が進むにつれ、モデルが選好データの特徴を捉え、ランク差 $\rho$ の絶対値が大きくなります。
- $\rho > 0$ の場合：$\sigma(\beta \rho / \tau) \to 1$ に近づき、指数損失が支配的になります。大きなランク差を持つペアに対する罰則が強調されます。
- $\rho < 0$ の場合：$\sigma(\beta \rho / \tau) \to 0$ に近づき、ロジスティック損失が支配的になります。負のランク差に対する穏やかな罰則が適用されます。

> 🐣 $\rho$ は対数差分なので正負どちらの値も取ります

### 提案手法の利点
- **動的適応性**：シグモイド関数による切り替えにより、ランク差の大小と符号に応じて損失関数が柔軟に動作します。
- **安定性と効率性**：学習初期にはロジスティック損失で安定性を、後期には指数損失で効率的な最適化を実現します。


提案手法は、選好データの進化に応じた動的な損失関数の調整を可能にし、モデルのパフォーマンスを最大化します。従来の固定的な損失関数に対する明確な改良点と言えます。

---

## 4 実験結果と性能評価

提案手法 DiscoPOP の有効性を 3 つの異なるタスクで検証しました。

### 対話生成（Alpaca Eval 2.0）
- ベース: Gemma-7b から微調整した zephyr-7b-gemma-sft
- GPT-4 との比較で 13.21% の勝率（DPO は 11.23%）
- 長さ考慮評価で 14.78% の勝率（DPO は 12.81%）

### 要約生成（TL;DR）
- ベース: zephyr-7b-gemma-sft
- Reddit TL;DR データの 10% で学習
- 人間生成の要約との一致率 87.63%
- 長さ考慮評価で 81.88% の精度

### 感情制御（IMDb）
- ベース: IMDb で事前学習済み GPT-2
- $\beta$ パラメータ 0.025～0.1 で最適な性能
- DPO と比較し同じ KL ダイバージェンスでより高い報酬を獲得

> 🐣 各実験で比較した DPO や SLiC も同じベースモデルを使用しています

---

## 5 まとめ

本論文では、LLM を用いて新しい嗜好最適化アルゴリズムを発見するフレームワークを提案しました。提案手法により得られた損失関数 DiscoPOP は、対話生成や要約生成といった多様なタスクで性能向上を達成しています。

---

## おわりに

個人的には、この論文が「 AI 自身が新しいアルゴリズムを発見する」という未来的なテーマに挑戦している点がとても面白いと感じました。具体的に LLM が DiscoPOP という損失関数をどのように発見したのかの詳細をぜひとも知りたくなりますよね！ というわけで明日の DiscoPOP ～その 2～でお会いしましょう。