DPO (Direct Preference Optimization)
DPO
でいぴいおお
Definition
DPO is a training method that directly optimizes a model using preference comparison data without running a reinforcement learning loop. It simplifies preference-based alignment while retaining technical correctness.
RLHFはLLMの品質を飛躍的に向上させましたが、報酬モデルの訓練、PPOによる最適化、ハイパーパラメータの調整と、実装が非常に複雑です。もっとシンプルにできないか——その問いから生まれたのがDPOです。DPO(Direct Preference Optimization)とは、報酬モデルを介さず、人間の選好データから直接モデルを最適化する手法です。
RLHFの複雑さを解消
RLHFのパイプラインは3段階に分かれます。SFT→報酬モデルの訓練→PPOによる強化学習です。各段階でモデルの訓練が必要で、特にPPOは学習が不安定になりやすく、パラメータ調整が難しいという課題がありました。DPOは2023年にStanford大学の研究チームが発表した手法で、この3段階のうち後半2つを1つのステップに置き換えます。
選好ペアからの直接学習
DPOの入力データは、RLHFと同じ選好ペアです。同じプロンプトに対する2つの回答(良い回答と悪い回答)のペアを用意します。RLHFではこのデータで報酬モデルを訓練しますが、DPOでは数学的な変換により、報酬モデルを経由せず、選好データからLLMを直接最適化する損失関数を導出しました。結果として、訓練プロセスは通常のファインチューニングと同程度にシンプルになります。
メリットと性能
DPOの主なメリットは、実装のシンプルさと訓練の安定性です。報酬モデルの訓練が不要なためGPUメモリの使用量が少なく、PPOの不安定さも回避できます。性能面では、多くのベンチマークでRLHFと同等またはそれ以上の結果を達成しています。このため、Llamaなどのオープンソースモデルのアライメントでは、DPOが標準的な手法として採用されるようになっています。
現在の位置づけと発展
DPOの登場以降、さらなる改良手法も次々と提案されています。IPO(Identity Preference Optimization)、KTO(Kahneman-Tversky Optimization)、ORPO(Odds Ratio Preference Optimization)など、選好学習をさらに効率化・改善する研究が活発です。RLHFが開拓した「人間の好みをモデルに反映する」というアプローチは、DPOによってより実用的になり、LLM開発の標準工程として定着しつつあります。