ORPO(Odds Ratio Preference Optimization)(オーアールピーオー オッズレシオ プリファレンス オプティマイゼーション)
SFT(教師あり微調整)と選好最適化を単一学習ステップで同時に行うLLM整合手法。参照モデル不要・計算コスト低減を実現し、DPOより効率的に人間の選好をモデルに反映できる。
ORPO(Odds Ratio Preference Optimization)とは
ORPO(Odds Ratio Preference Optimization)は、2024年にHong et al.が提案したLarge Language Modelの後処理整合(Post-training Alignment)手法。従来の整合パイプラインであるSFT(教師あり微調整)→ RLHF/DPO の2段階フローを、単一の学習ステップに圧縮することで計算コストと実装複雑度を大幅に削減する。
従来手法の課題
DPO(Direct Preference Optimization)の制約
DPOは参照モデル(Reference Model)として事前に学習済みのSFTモデルのコピーを保持する必要があり、メモリ使用量がほぼ2倍になる。また、SFT段階と整合段階を別々に実施するため、トータルの計算時間が長くなる。
PPO(Proximal Policy Optimization)の複雑さ
PPOはActor/Critic/RM(報酬モデル)/Reference Modelの最大4つのモデルを同時に扱う必要があり、実装が複雑でハイパーパラメータ調整も困難。
ORPOのアルゴリズム
オッズ比ロスの概念
ORPOは通常のSFTクロスエントロピーロスに、好まれる応答(chosen)と好まれない応答(rejected)の対数オッズ比を直接組み込む。
好まれる応答の確率を上げながら好まれない応答の確率を下げる方向に学習することで、参照モデルなしに整合を実現する。
参照モデル不要の仕組み
DPOが「参照モデルとの確率比」でペナルティを計算するのに対し、ORPOは「モデル自身のchosenとrejectedのオッズ比」を直接最大化するため、外部参照モデルが不要になる。
実験結果と性能比較
Mistral-7B でのベンチマーク
- AlpacaEval 2.0: DPO と同等以上の勝率
- MT-Bench: SFT単独より平均+0.3〜0.5ポイント向上
- IFEval: 指示追従精度の改善を確認
計算効率
- DPOと比べてGPUメモリ使用量約30〜50%削減
- 学習時間(SFT+DPO)と比べて約40〜60%短縮(モデルサイズ・データ量依存)
実装フレームワーク
TRL(Transformer Reinforcement Learning library)v0.8以降でORPOTrainerが公式実装として提供されている。主な設定パラメータはlearning_rate、beta(λ: オッズ比ロスの重み)、max_length、per_device_train_batch_sizeなど。
他手法との比較
主要な選好最適化手法の比較:
- PPO: 参照モデル必要(4モデル)、複数学習段階、メモリ×4、実装難易度高
- DPO: 参照モデル必要(SFTコピー)、2段階、メモリ×2、実装難易度中
- ORPO: 参照モデル不要、1段階、メモリ×1、実装難易度低
- SimPO: 参照モデル不要、1段階、メモリ×1、実装難易度低
活用シーン
計算資源が限られた環境(シングルGPUや小規模クラスタ)でのLLM整合、あるいは高速な実験サイクルを回したい研究環境に特に有効。Hugging Face TRLとの連携により、LoRA/QLoRAと組み合わせた軽量整合も容易に実装できる。