Direct Preference Optimization (DPO) — 直接選好最適化
Direct Preference Optimization (DPO) とは、大規模言語モデル (LLM) を人間の選好に整合させる(アライメントする)ための手法であり、人間からのフィードバックによる強化学習 (RLHF) に代わる、よりシンプルで安定した方法として提案されました。この手法は2023年に、スタンフォード大学のラファエル・ラファイロフが率いる研究者グループによって発表されました[1]。
DPOの主な特徴は、言語モデルを人間の選好に合わせるために直接最適化する点にあります。これにより、独立した報酬モデル (reward model) の明示的な学習や、複雑な強化学習 (RL) の段階が不要となり、LLMのチューニングプロセスが大幅に簡素化され、高速かつ安定したものになります[2]。
背景:RLHFの限界
標準的なReinforcement Learning from Human Feedback (RLHF) の手法は、主に3つのステップで構成されます:
- Supervised Fine-Tuning (SFT): 高品質なサンプルを用いたモデルの基本的なファインチューニング。
- 報酬モデルの学習: 人間から提供されたペアワイズ比較(例:回答Aは回答Bよりも優れている)に基づいて、応答に「スコア」を割り当てることを学習する独立したモデルの作成。
- RLによる方策の最適化: 報酬モデルからのスコアを最大化する応答を生成するように、RLアルゴリズム(例:PPO)を用いてメインモデルをファインチューニングする。
RLHFはその有効性にもかかわらず、複雑でコストがかかり、不安定なプロセスです。モデルが報酬モデルを「欺く」reward hackingのような問題に陥りやすく、多数のハイパーパラメータを慎重に調整する必要があります[1]。DPOはこれらの制約を克服するために開発されました。
DPOの仕組み
DPOの手法は、RLHFの多段階パイプラインを、教師ありファインチューニングと見なせる単一の学習ステージに置き換えます。
- 選好データの収集。RLHFと同様に、各プロンプト `x` に対して、選好される応答 (`y_w`, winning) と棄却される応答 (`y_l`, losing) のペアを含むデータセットを収集します。
- 直接最適化。報酬モデルを学習する代わりに、DPOはこれらのデータを直接用いて言語モデル自体を更新します。最適化の目標は、選好される応答 `y_w` の生成確率を増加させ、同時に棄却される応答 `y_l` の生成確率を減少させることです。
数学的には、これは応答の対数確率の差に適用されるロジスティック回帰に基づいた損失関数を最小化することに帰着します。モデルが元の知識を「忘れない」ようにするため、DPOはRLHFと同様に、正則化のために参照モデル (reference model、通常はSFT版) を使用し、元の応答分布から大きく逸脱することを防ぎます[2]。
RLHFと比較した利点
- 単純さと安定性: DPOは、独立した報酬モデルの学習や複雑なRLのチューニングを不要にします。これにより、プロセスはより単純で予測可能になり、エラーが発生しにくくなります[3]。
- 効率と速度: 2つのステップを省略することで、計算コスト(GPU時間)とモデルのチューニングに必要な時間が大幅に削減されます。一部の評価では、DPOはRLHFよりも50~60%効率的であるとされています[4]。
- 結果の品質: 実験により、DPOは品質面でRLHFに劣らず、応答のトーン制御などの一部のタスクではRLHFを上回ることが示されています。DPOで学習されたモデルは、人間の選好とのより高い一致を示します[1]。
- 基本能力の低下がない: RLHFが時としてベースラインのメトリクスを悪化させることがあるのに対し、DPOによるチューニングはモデルの全般的な能力(例:事実に関する知識や論理)への影響が最小限です[5]。
応用と普及
その効率性と単純さから、DPOは急速に普及しました。Hugging Face TRLやOpenRLHFなどの主要なオープンソースライブラリに実装されています。
Zephyr-7BやTÜLU 2など、多くの成功したオープンモデルがDPOを用いてファインチューニングされています。これらのモデルは応答品質評価のベンチマークで高い性能を示し、大規模モデルに対するDPOの有効性を裏付けています[5]。
業界のリーダーたちも自社のプラットフォームにDPOを導入しています。例えば、MicrosoftはAzure OpenAIサービスにDPOファインチューニングのサポートを追加し、ユーザーがGPT-4を含むモデルを独自の選好データでカスタマイズできるようにしました[6]。
制約
多くの利点がある一方で、DPOは選好に基づく学習アプローチ自体からいくつかの制約を継承しています:
- データへの感度: 収集された選好データの品質と多様性は非常に重要です。データに偏りがある場合(例えば、単一の言語やスタイルしか含まない場合)、モデルは過学習し、他の領域での性能が低下する可能性があります[7]。
- 学習の静的性: RLHFと同様に、DPOは静的なデータセットで学習され、環境との動的な相互作用を前提としていません。この手法はワンステップのアライメントには適していますが、連続的な行動を通じて学習する必要があるタスクには向いていません。
関連リンク
参考文献
- Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. arXiv:2305.18290.
- Hong, J.; Lee, N.; Thorne, J. (2024). ORPO: Monolithic Preference Optimization without Reference Model. arXiv:2403.07691.
- Sun, L. et al. (2025). BPO: Revisiting Preference Modeling in Direct Preference Optimization. arXiv:2506.03557.
- Yin, Y. et al. (2024). Self-Augmented Preference Optimization: Off-Policy Paradigms for Language Model Alignment. arXiv:2405.20830.
- Wu, Y. et al. (2024). Self-Play Preference Optimization for Language Model Alignment. arXiv:2405.00675.
- Li, P. et al. (2024). ROPO: Robust Preference Optimization for Large Language Models. arXiv:2404.04102.
- Tunstall, L. et al. (2023). Zephyr: Direct Distillation of LM Alignment. arXiv:2310.16944.
- Wu, F. et al. (2023). Diffusion-DPO: Diffusion Model Alignment Using Direct Preference Optimization. arXiv:2311.12908.
- Lee, H. et al. (2023). RLAIF vs. RLHF: Scaling Reinforcement Learning from Human Feedback with AI Feedback. arXiv:2309.00267.
- Rafailov, R.; Sharma, A.; Mitchell, E.; Manning, C. D.; Finn, C. (2024). Direct Preference Optimization (v3): Enhanced Experiments and Analysis. arXiv:2305.18290v3.
脚注
- ↑ 1.0 1.1 1.2 Rafailov, R., et al. «Direct Preference Optimization: Your Language Model is Secretly a Reward Model». arXiv:2305.18290. [1]
- ↑ 2.0 2.1 «Simplifying Alignment: From RLHF to Direct Preference Optimization (DPO)». Hugging Face Blog. [2]
- ↑ «What is direct preference optimization (DPO)?». SuperAnnotate Blog. [3]
- ↑ «RLHF vs DPO: A Closer Look into the Process and Methodology». Arbisoft Blog. [4]
- ↑ 5.0 5.1 «RLHF without RL - Direct Preference Optimization». ICLR Blogposts 2024. [5]
- ↑ «Direct preference optimization». Azure OpenAI | Microsoft Learn. [6]
- ↑ «Direct Preference Optimization (DPO): A Lightweight Counterpart to RLHF». Toloka AI Blog. [7]