中文翻译暂不可用,显示俄语原文。

Как работает Direct Preference Optimization (DPO) в деталях (потеря, градиенты)?

Краткий тезис

Direct Preference Optimization (DPO) — это метод выравнивания языковых моделей по предпочтениям человека без явного обучения отдельной reward model (модели вознаграждения). В отличие от RLHF (Reinforcement Learning from Human Feedback), DPO использует аналитическое (closed-form) выражение для оптимальной политики, что позволяет переписать задачу оптимизации как простую бинарную классификацию. loss|Потеря DPO имеет вид -log σ(β * (log(π(y_w)/π_ref(y_w)) - log(π(y_l)/π_ref(y_l)))), а градиенты этой функции напрямую увеличивают вероятность предпочитаемых ответов и уменьшают вероятность непредпочитаемых, причём сила обновления зависит от того, насколько модель «ошибается» относительно референсной политики.


1. От RLHF к DPO: почему понадобился новый метод

RLHF — стандартный пайплайн выравнивания:

  1. Собрать Collection|data датасет предпочтений (x, y_w, y_l), где y_w — предпочитаемый ответ, y_l — непредпочитаемый.
  2. Обучить reward model r(x, y) на этих парах (обычно через логистическую регрессию).
  3. Оптимизировать политику π (языковую модель) методом PPO (Policy Optimization|Proximal Policy Optimization]]), максимизируя ожидаемое вознаграждение с KL-регуляризацией к референсной модели π_ref.

Недостатки RLHF:

  • Требует обучения и хранения отдельной reward model.
  • PPO — сложный и нестабильный алгоритм (чувствителен к гиперпараметрам, требует много памяти).
  • Высокие вычислительные затраты.

DPO (Rafailov et al., 2023) устраняет эти проблемы, напрямую оптимизируя политику на основе предпочтений, используя аналитическое решение для оптимальной политики в терминах reward.


2. Термин: Implicit reward и closed-form решение

Ключевая идея DPO — implicit reward (неявное вознаграждение). Вместо того чтобы учить отдельную reward model, DPO выражает reward через отношение вероятностей текущей политики π и референсной π_ref:

r(x, y) = β * log(π(y|x) / π_ref(y|x)) + β * log(Z(x))

где Z(x) — нормировочная константа (partition function). В RLHF оптимальная политика имеет вид:

π*(y|x) = ([[1. Как бы вы спроектировали RAG-систему для 10 000 документов с разной структурой|1]]/Z(x)) * π_ref(y|x) * exp(r(x,y)/β)

DPO замечает, что можно выразить reward через политику:

r(x,y) = β * log(π(y|x) / π_ref(y|x)) + β * log(Z(x))

Подставляя это в модель предпочтений Брэдли-Терри (вероятность предпочесть y_w над y_l равна σ(r(x,y_w) - r(x,y_l))), получаем вероятность предпочтения, зависящую только от π и π_ref:

p(y_w > y_l | x) = σ(β * log(π(y_w|x)/π_ref(y_w|x)) - β * log(π(y_l|x)/π_ref(y_l|x)))

Таким образом, reward model исчезает, и мы можем напрямую максимизировать вероятность правильного порядка пар.


3. Потеря DPO: вывод и формула

Потеря DPO — это отрицательное логарифмическое правдоподобие модели предпочтений Брэдли-Терри:

L_DPO(π; π_ref) = -E_{(x, y_w, y_l) ~ D} [ log σ( β * log(π(y_w|x)/π_ref(y_w|x)) - β * log(π(y_l|x)/π_ref(y_l|x)) ) ]

Обозначим:

s_w = log(π(y_w|x) / π_ref(y_w|x))
s_l = log(π(y_l|x) / π_ref(y_l|x))

Тогда:

L_DPO = -log σ(β * (s_w - s_l))

Интуиция: мы хотим, чтобы разница s_w - s_l была как можно больше (положительной). Сигмоида превращает эту разницу в вероятность, а логарифм делает потерю выпуклой и гладкой.

Почему это работает Если π совпадает с π_ref, разница равна нулю, и потеря равна -log σ(0) = -log(0.5) ≈ 0.693. При обучении модель увеличивает s_w (делает предпочитаемый ответ более вероятным относительно референса) и уменьшает s_l (делает непредпочитаемый менее вероятным).


4. Градиенты DPO: что они делают

Вычислим градиент потери по параметрам θ модели π_θ. Для одного примера (x, y_w, y_l):

∇_θ L = -β * [ σ(β * (s_l - s_w)) * (∇_θ log π_θ(y_w|x) - ∇_θ log π_θ(y_l|x)) ]

Обозначим δ = β * (s_w - s_l) — «запас» (margin) между предпочитаемым и непредпочитаемым. Тогда:

∇_θ L = -β * σ(-δ) * (∇_θ log π_θ(y_w|x) - ∇_θ log π_θ(y_l|x))

Интерпретация:

  • Множитель σ(-δ) — это вес ошибки. Если δ большой положительный (модель уже правильно ранжирует), σ(-δ) близок к 0, и градиент мал — обновление слабое.
  • Если δ отрицательный (модель ошибается, предпочитает y_l), σ(-δ) близок к 1, градиент большой — модель сильно корректируется.
  • Градиент увеличивает log π_θ(y_w|x) (через положительный вклад) и уменьшает log π_θ(y_l|x) (через отрицательный). Это похоже на contrastive learning (контрастивное обучение).

Важно: градиент не требует вычисления reward model или сложной выборки из политики — только forward pass на двух ответах.


5. Сравнение DPO и RLHF

ХарактеристикаRLHF (PPO)DPO
Необходимость отдельной reward modelДаНет (implicit reward)
Алгоритм оптимизацииPPO (actor-critic)Простая бинарная классификация
СтабильностьНизкая (чувствителен к гиперпараметрам)Высокая (нет adversarial обновлений)
ПамятьТребует хранения reward model + policyТолько policy и reference model
Скорость обученияМедленнее (много шагов PPO)Быстрее (одна loss на пару)
Теоретическая эквивалентностьПриближение через KLТочное closed-form решение (при Bradley-Terry)
ОграниченияReward hacking, collapseЗависит от качества пар предпочтений

6. Преимущества DPO

  • Простота реализации: loss — одна строка в PyTorch.
  • Стабильность: нет проблем с reward hacking, так как reward не учится отдельно.
  • Эффективность: не нужно генерировать онлайновые выборки (off-policy).
  • Масштабируемость: легко применять к большим моделям (LLaMA, Mistral).

7. Недостатки и ограничения

  • Зависимость от референсной модели: π_ref должна быть фиксирована, иначе loss не определён.
  • Предположение Брэдли-Терри: предпочтения должны быть транзитивны и независимы от контекста (не всегда верно для сложных задач).
  • Off-policy: DPO использует статический датасет, не адаптируется к новым предпочтениям в процессе обучения (в отличие от онлайн-методов).
  • Чувствительность к β: гиперпараметр β контролирует «жёсткость» выравнивания; слишком большое β может привести к переобучению на пары.

8. Применение DPO в Agentic RAG

В контексте Agentic RAG (агентные системы с поиском) DPO может использоваться для выравнивания поведения агента:

  • Траектории агента: последовательность действий (retrieval, reasoning, tool use) можно рассматривать как «ответ» на запрос.
  • Сбор предпочтений: эксперты или автоматические метрики (например, успешность выполнения задачи) ранжируют траектории.
  • Fine-tuning: DPO применяется к политике агента (LLM, принимающей решения), чтобы увеличить вероятность успешных траекторий и уменьшить — неудачных.

Пример: агент для ответа на вопросы с поиском. Для запроса «Какая столица Франции?» одна траектория (поиск → извлечение → ответ) успешна, другая (поиск → ошибка → неверный ответ) — нет. DPO учит агента выбирать правильные действия.


9. Пет-проект для закрепления

Задача: Реализовать DPO для fine-tuning небольшой языковой модели (например, GPT-2) на синтетическом датасете предпочтений.

Инструменты:

  • Python, PyTorch, Hugging Face Transformers
  • Датасет: Anthropic/hh-rlhf (или сгенерировать свои пары с помощью LLM)
  • Референсная модель: та же архитектура, но замороженная

Шаги:

  1. Загрузить предобученную модель (например, distilgpt2) и её токенизатор.
  2. Создать референсную модель (копия с замороженными весами).
  3. Реализовать loss DPO:
    def dpo_loss(policy_logps, ref_logps, beta=0.1):
        # policy_logps: [batch, 2] — log probs для y_w и y_l
        # ref_logps: [batch, 2] — log probs от reference модели
        s_w = policy_logps[:, 0] - ref_logps[:, 0]
        s_l = policy_logps[:, 1] - ref_logps[:, 1]
        logits = beta * (s_w - s_l)
        loss = -F.logsigmoid(logits).mean()
        return loss
    
  4. Обучить модель на парах (x, y_w, y_l).
  5. Оценить: сравнить вероятность предпочитаемых ответов до и после обучения.

Ожидаемый результат: После fine-tuning модель будет с большей вероятностью генерировать ответы, похожие на y_w, и реже — на y_l. Можно проверить на held-out парах.


10. Связь с другими вопросами

ВопросТема
334RLHF и PPO для alignment
336Reward modeling и Bradley-Terry
337Контрастивное обучение в NLP
338Fine-tuning LLM с предпочтениями
340Agentic RAG: обучение агентов
332KL-дивергенция и регуляризация политики

11. Навигация


Навигация