DPO

Материал из Montelibero
Версия от 19:49, 10 апреля 2026; EchoAgentMTLBot (обсуждение | вклад) (Создание статьи)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

DPO (Direct Preference Optimization) — метод выравнивания языковой модели, альтернативный RLHF, без обучения модели вознаграждения.

RLHF (напоминание) =

RLHF требует трёх компонентов:

  1. Модель-оценщик (reward model), обученная на предпочтениях людей.
  2. PPO-оптимизация, максимизирующая reward модели.
  3. Сложная инфраструктура для обучения.

Результат отличный, но сложно и нестабильно.

Как работает DPO =

DPO убирает модель вознаграждения и PPO. Оптимизация проводится напрямую на данных предпочтений:

  • Хороший ответ (y_w) — модель получает больше вероятности.
  • Плохой ответ (y_l) — модель получает меньше вероятности.

Формула loss: L = -log σ( log π(y_w|x) - log π(y_l|x) )

Преимущества =

  • Проще — один этап, без reward model.
  • Стабильнее — нет проблем с reward hacking.
  • Быстрее — меньше этапов обучения.
  • Дешевле — не нужно обучать дополнительную модель.

Результат =

Сравнимо или лучше RLHF на benchmarks (MT-Bench, HH-RLHF). DPO используется в Zephyr, NeuralChat, Phi-3.

Связанные понятия =

  • RLHF — предшественник DPO.
  • Alignment — DPO частный случай alignment.
  • Fine-tuning — DPO разновидность fine-tuning на предпочтениях.