DPO (прямая оптимизация предпочтений)
DPO (Direct Preference Optimization) — метод дообучения языковых моделей на основе человеческих предпочтений, не требующий отдельной модели наград и RL-цикла в отличие от классического RLHF. Предложен Rafailov et al. в 2023 году.
DPO — алгоритм выравнивания языковых моделей с человеческими предпочтениями, предложенный в статье Rafailov et al. в 2023 году. В отличие от RLHF (Reinforcement Learning from Human Feedback), DPO исключает необходимость обучения отдельной reward model и использования алгоритмов RL вроде PPO, заменяя весь пайплайн единым этапом оптимизации.
Метод работает с парами ответов: для каждого запроса датасет содержит «предпочтительный» и «отклонённый» ответы, полученные от людей-оценщиков или более сильной модели. DPO переформулирует задачу выравнивания как задачу бинарной классификации, оптимизируя логарифмическое отношение вероятностей предпочтительного и отклонённого ответов относительно базовой («замороженной») модели. Обучение выполняется стандартным градиентным спуском за один проход по датасету.
Практическая ценность DPO состоит в радикальном упрощении пайплайна выравнивания: не нужно чередовать обучение reward model и языковой модели, отсутствует нестабильность RL-оптимизации, вычислительные требования ниже на порядок. На большинстве бенчмарков DPO показывает результаты, сопоставимые с PPO-based RLHF, при значительно меньших затратах.
К 2026 году DPO и его модификации — IPO, SimPO, ORPO, cDPO — стали стандартным инструментом выравнивания в open-source сообществе. Библиотека TRL от Hugging Face включает DPO как один из основных методов; его применяют при дообучении моделей на базе Llama, Mistral, Qwen и других архитектур. Крупные лаборатории используют DPO как один из этапов многоступенчатого постобучения наряду с RLHF и RLVR.