Ultralytics YOLO27:
YOLOのライセンス
Ultralytics用語集に戻る

Direct Preference Optimization

直接選好最適化(DPO)は、報酬モデルやRLを使わず、1つの損失関数で、好ましい応答と好ましくない応答のペアを用いて言語モデルを調整します。

直接選好最適化(DPO)は、好ましい応答と好ましくない応答のペアを使ってモデルを直接学習させ、人間の選好に大規模言語モデル(LLM)を適合させる手法です。単一の分類形式の損失関数を用います。別個の報酬モデルや、学習中にモデルからサンプルを生成する強化学習ループを必要とせず、人間のフィードバックによる強化学習(RLHF)の目的を達成します。StanfordのRafael Rafailov、Archit Sharma、Eric Mitchell、Stefano Ermon、Christopher Manning、Chelsea Finnが2023年にこの手法を発表し、論文Direct Preference Optimization: Your Language Model is Secretly a Reward ModelはNeurIPS 2023で発表されました。重要な考え方は、学習中の言語モデル自体が暗黙の報酬を定義するため、報酬モデルとポリシーを1ステップで適合させられるという点です。

DPOの仕組み#

各学習例は、選好応答と棄却応答を含むプロンプトであり、人または別のモデルがラベル付けします。学習は、すでに教師ありファインチューニング、通常は指示チューニングを経たモデルから始め、そのコピーを参照モデルとして固定します。各応答について、DPOは学習中のモデルと参照モデルそれぞれの対数確率を比較します。応答の暗黙の報酬は、その対数比にβを掛けた値です。損失は、選好応答の報酬から棄却応答の報酬を引いた値に対する負の対数シグモイドです。これを最小化すると、棄却応答に対する選好応答の確率が上がり、モデルがまだ誤った順位付けをしているペアほど大きく更新されます。

係数βは、RLHFにおけるKLペナルティの役割を果たします。Rafailovらは、RLHFで使われるKL制約付き報酬最大化には閉形式の最適ポリシーがあり、それは参照確率を報酬をβで割った値の指数関数で再重み付けしたものだと示しました。また、その式を変形して、ポリシー自体を使って報酬を表現しました。βが小さいほど、学習によってモデルを参照モデルから大きく変化させられます。

このPyTorchの例では、Hugging Face TransformersのGPT-2に対し、カスタマーサービスの選好ペア2組を使ってDPOを10ステップ実行し、モデルが一度も学習していない3組目のペアを評価します。

import copy

import torch
import torch.nn.functional as F
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
policy = AutoModelForCausalLM.from_pretrained("gpt2")
reference = copy.deepcopy(policy).requires_grad_(False)  # frozen copy of the starting model
optimizer = torch.optim.Adam(policy.parameters(), lr=1e-5)

# Preference pairs: (prompt, chosen reply, rejected reply)
train = [
    ("My order arrived broken.", " Sorry about that, we will send a replacement today.", " That is not our problem."),
    ("I was charged twice.", " Sorry for the trouble, we have refunded the extra charge.", " Check your bank again."),
]
held_out = ("My package is a week late.", " Sorry for the delay, we will track it down for you.", " Be more patient.")


def log_prob(model, prompt, reply):
    """Sum of the log-probabilities the model gives the reply tokens after the prompt."""
    ids = tokenizer(f"Customer: {prompt}\nAgent:{reply}", return_tensors="pt").input_ids
    token_logps = model(ids).logits[0, :-1].log_softmax(-1).gather(1, ids[0, 1:, None])
    return token_logps[-len(tokenizer(reply).input_ids) :].sum()


def margin(prompt, chosen, rejected):
    """Policy-to-reference log-ratio of the chosen reply minus that of the rejected reply."""
    chosen_ratio = log_prob(policy, prompt, chosen) - log_prob(reference, prompt, chosen)
    return chosen_ratio - (log_prob(policy, prompt, rejected) - log_prob(reference, prompt, rejected))


for step in range(10):
    loss = sum(-F.logsigmoid(0.1 * margin(*pair)) for pair in train) / len(train)  # DPO loss, beta = 0.1
    if step in {0, 9}:
        print(f"Step {step}: training loss {loss.item():.3f}")
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

with torch.no_grad():
    print(f"Held-out margin: {margin(*held_out).item():+.1f}")

ステップ0では、学習損失が0.693と出力されます。これはln 2で、ポリシーがまだ参照モデルと同じであり、どちらの応答にも暗黙の報酬がないためです。ステップ9では損失が0.047、未学習データのマージンが+7.8になります。一度も見たことのない苦情に対して、モデルは、そっけない返信よりも謝罪する返信の対数確率を参照モデルに比べて7.8多く引き上げました。

DPOとRLHFの比較#

従来のRLHFでは、選好ペアを使って報酬モデルを学習させた後、近接方策最適化(PPO)で言語モデルを報酬モデルに対して最適化します。PPOは各ステップでモデルから新しいサンプルを必要とし、ポリシー、価値モデル、報酬モデル、参照モデルをメモリ上に保持します。DPOではポリシーと参照モデルだけが必要で、通常の教師あり学習と同様に固定データセットで学習するため、調整が簡単で実行コストも大幅に低くなります。初期の実験では、一定のKL予算のもとで生成映画レビューのセンチメントを制御する能力において、DPOがPPOを上回りました。TL;DR Reddit要約タスクでは、GPT-4による評価で、サンプリング温度0のDPO要約は人間が書いた参照要約より61%の確率で優れており、最適温度のPPOは57%でした。Anthropicの有用かつ無害な対話データでは、DPOは、データセット内の選好応答を改善した手法のうち、計算効率が高かった唯一の手法でした。

トレードオフとして、DPOは与えられたペアからのみ学習します。Group Relative Policy Optimization(GRPO)のようなオンラインRL手法は、学習中に現在のモデルから新しいサンプルを生成して評価します。そのため、チェッカーが新しい回答をすべて採点できる数学やコードでは、検証可能な報酬による強化学習(RLVR)で主流になっています。選好ラベルは、Constitutional AIのように、文書化された原則に基づくAIモデルから得ることもでき、DPOはそのようなラベルでも同様に学習します。

DPOの用途#

DPOは、オープンウェイトのチャットボットで標準的な事後学習手法になりました。Hugging FaceのZephyr-7B-βはAIが順位付けしたUltraFeedbackデータに適用し、MetaのLlama 3モデルは、教師ありファインチューニングを複数回行った後にDPOを適用して調整されました。TRLライブラリには、そのまま使えるDPOトレーナーが用意されています。Ultralytics LLMインターフェースは、ローカルサーバーを含むOpenAI互換エンドポイント経由でモデルを呼び出せるため、DPOで調整されたオープンモデルをUltralytics YOLO26のビジョンパイプラインでテキスト生成に利用できます。

この手法は画像にも適用できます。Diffusion-DPOは拡散モデル向けに損失を再定式化し、Pick-a-Picデータセットから得たクラウドソーシングによる851,000組の選好ペアを使ってStable Diffusion XLのベースモデルをファインチューニングし、テキストから画像への生成におけるプロンプトとの整合性と視覚的な魅力を向上させました。視覚言語モデル(VLM)では、RLHF-Vがハルシネーションを含む画像説明について、人間によるセグメント単位の修正を集め、DPOの密な変種で学習しました。その結果、注釈付きサンプルがわずか1,400件でも、ベースモデルのハルシネーション率が34.8%低下しました。

DPOの派生手法#

  • IPO(Identity Preference Optimization): 対数シグモイドを固定マージンに向けた二乗損失に置き換えます。同じ応答が常に選ばれる場合に、暗黙の報酬が際限なく大きくなり、過学習するのを防ぎます。
  • KTO(Kahneman-Tversky Optimization): 好ましい、または好ましくないとラベル付けされた単独の応答から学習するため、ペア比較は不要です。
  • ORPO(Odds Ratio Preference Optimization): 参照モデルを使わず、教師ありファインチューニングの損失にオッズ比ペナルティを加えることで、指示チューニングと選好への適合を1段階に統合します。
  • SimPO(Simple Preference Optimization): 応答の長さで正規化した平均対数確率を報酬として使い、参照モデルを不要とし、選好応答と棄却応答の報酬間に目標マージンを設定します。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう