ORPO (Odds Ratio Preference Optimization) 2024(オーアールピーオーオッズレシオプレファレンスオプティマイゼーション2024)
Hong ら KAIST 2024年 LLM alignment 手法。SFT と preference 学習を1段階統合・reference model 不要で計算コスト半減
概要
ORPO(Odds Ratio Preference Optimization)は 2024年3月に韓国 KAIST(Korea Advanced Institute of Science and Technology)の Jiwoo Hong・Noah Lee・James Thorne ら 3名が arXiv:2403.07691 で発表した革新的 LLM alignment 手法(論文「ORPO: Monolithic Preference Optimization without Reference Model」)。従来 SFT (Supervised Fine-Tuning) → DPO/PPO の 2段階パイプラインを 1段階に統合し、さらに DPO が必須としていた reference model(π_ref)を不要にすることで計算コスト半減・GPU メモリ 50% 削減を実現した画期的手法。
論文発表後 1ヶ月で Hugging Face TRL に ORPOTrainer として実装され、Mistral 7B・Llama 3 8B 等のコミュニティ fine-tune で標準採用された。最大の優位性は SFT データセットと preference データセットを同じ形式(chosen のみ + chosen vs rejected)で扱えるため、データ準備の柔軟性が高いこと。
主な特徴・仕組み
- 理論基盤: Odds Ratio(オッズ比、医学統計の基本概念)
- 損失関数: L_ORPO = L_SFT + λ·L_OR、L_OR = -log σ(log(odds_θ(y_w|x)/odds_θ(y_l|x)))
- λ パラメータ: 0.1-0.5(SFT と preference の比重、デフォルト 0.1)
- Reference Model: 不要(π_ref 計算スキップで GPU メモリ 50% 削減)
- データ形式: (prompt, chosen, rejected) ペア(DPO と同じ)
- 学習段階: 1段階(SFT + preference 同時最適化)
- 計算コスト: DPO の 50%・PPO の 25%
- chosen の loss: 同時に SFT として強化(負の log-likelihood)
- rejected の loss: odds ratio で相対的に下げる
- OS バージョン: v1 (2024-03)・v2 (2024-04 改良版)
スペック比較表
| 項目 | ORPO 2024 | DPO 2023 | KTO 2024 | SimPO 2024 |
|---|---|---|---|---|
| SFT 統合 | あり (1段階) | なし (2段階) | なし | なし |
| Reference Model | 不要 | 必要 | 必要 | 不要 |
| GPU メモリ | 1x | 2x (base+ref) | 2x | 1x |
| 学習時間 | 短 (50%) | 中 (100%) | 中 (100%) | 短 (50%) |
| データ形式 | ペア | ペア | 単発 or ペア | ペア |
| 採用例 | Mistral ORPO Capybara | Zephyr β, Tulu 2 | Archangel, Zephyr KTO | SimPO Llama 3 |
具体例・対応製品
- Mistral ORPO Capybara 7B (Argilla 2024-04): Mistral 7B + Capybara DPO data の ORPO 版、MT-Bench 8.2
- ORPO Mistral Alpha 7B (KAIST 2024-03): 論文の reference 実装、UltraFeedback 採用
- ORPO Llama 3 8B (HuggingFace 2024-05): Llama 3 8B + ORPO、Open LLM Leaderboard 上位
- ORPO Phi-3 Mini (Microsoft コミュニティ 2024-05): Phi-3 3.8B + ORPO 軽量版
- Zephyr ORPO 7B (HuggingFace 2024-04): Zephyr 7B β の ORPO 再学習版
選び方・注意点
- SFT データと preference データ統合: 同じデータ準備で両方学習できるため運用容易
- GPU メモリ制約環境: reference model 不要で 50% 削減、24GB GPU で 13B モデル可
- λ 設定: 0.1 が安定、0.3-0.5 で preference 学習強化
- chosen の質: SFT も同時実行されるため chosen データの質が DPO 以上に重要
- TRL ORPOTrainer: 2024-04 以降標準搭載、ORPOConfig で設定
- DPO との性能差: 同サイズで僅差〜ORPO 優位、特に小規模モデル (7B 以下) で ORPO 優位
関連用語との違い
| 用語 | 違い |
|---|---|
| ORPO 2024 | SFT 統合・reference 不要・odds ratio |
| DPO 2023 | 2段階・reference 必要 |
| KTO 2024 | プロスペクト理論・単発ラベル可 |
| IPO 2024 | 過剰最適化修正・reference 必要 |
| SimPO 2024 | 更に簡素化・reference 不要・odds ratio なし |
よくある質問(FAQ)
Q1: SFT と preference を同時最適化のリスクは? A: SFT が chosen を強化し、preference が rejected を相対的に下げるため互いに整合的。論文では分離パイプラインより安定との結果。ただし λ 設定を誤ると SFT 偏重・preference 偏重に傾くリスクあり、デフォルト 0.1 で開始推奨。
Q2: Odds Ratio はなぜ使う? A: 確率比 (probability ratio) は分母が 0 に近づくと発散するが、odds ratio は計算安定。π/(1-π) という形で、π → 1 でも grad が暴走しにくい数学的性質を持つ。医学統計の RCT 解析で使われる古典手法。
Q3: DPO と ORPO どちらを選ぶ? A: GPU 制約環境・SFT 統合が魅力なら ORPO、既存 SFT モデルから出発するなら DPO。最近のコミュニティ実装は ORPO 寄り(特に Mistral 系)、研究用途では DPO 寄り。性能差は誤差範囲。
まとめ
- KAIST 2024年3月発表・SFT と preference を 1段階統合
- Reference model 不要で GPU メモリ 50% 削減
- 計算コスト DPO の 50%・PPO の 25%
- Mistral ORPO Capybara・Llama 3 8B 等で実証
- TRL ORPOTrainer 標準対応・コミュニティ実装活発