Direct Preference Optimization (DPO)
Узнай, как прямое оптимизационное предпочтение (DPO) упрощает выравнивание ИИ. Узнай, как этот эффективный метод заменяет RLHF для улучшения безопасности и производительности модели.
Direct Preference Optimization (DPO) — это стабильный и эффективный алгоритмический метод, используемый для дообучения моделей искусственного интеллекта, чтобы они соответствовали человеческим ожиданиям, стандартам безопасности и этическим принципам. В отличие от традиционных методов, требующих сложных многоэтапных конвейеров для сбора отзывов людей, DPO математически упрощает процесс настройки, рассматривая обучение на предпочтениях непосредственно как стандартную задачу классификации в машинном обучении. Оптимизируя модель напрямую на основе набора данных с предпочтениями людей — где аннотаторы выбирают «выигрышный» ответ вместо «проигрышного», — ты можешь значительно повысить полезность, честность и безопасность крупномасштабных базовых моделей и современных систем генеративного ИИ.
Link to this sectionКак DPO упрощает настройку моделей#
Основная инновация Direct Preference Optimization заключается в устранении архитектурного «посредника». Исторически сложилось так, что настройка большой языковой модели (LLM) или мультимодальной модели зрения и языка включала сложный процесс, известный как обучение с подкреплением на основе отзывов людей (RLHF). RLHF требует обучения отдельной модели вознаграждения для аппроксимации оценок людей, за которым следует использование нестабильного алгоритма обучения с подкреплением, такого как Proximal Policy Optimization, для обновления основной модели.
DPO математически исключает необходимость в такой отдельной модели вознаграждения. Вместо этого он опирается на производную функцию потерь, которая увеличивает вероятность генерации «предпочтительных» результатов и одновременно снижает вероятность «отвергнутых». Он использует эталонную модель для ограничения дивергенции Кульбака — Лейблера, гарантируя, что обновленная модель не отклонится слишком далеко от исходного распределения обучающих данных. Это математическое упрощение делает процесс работы гораздо более похожим на стандартное обучение с учителем, что приводит к более быстрой сходимости и меньшему использованию памяти на GPU-оборудовании. Это естественным образом снижает риск деградации модели и устраняет необходимость в обширной настройке гиперпараметров.
Link to this sectionРеальные приложения#
Direct Preference Optimization фундаментально меняет способы создания и развертывания интерактивных ИИ-систем в различных высокотехнологичных отраслях в стремлении к надежной безопасности ИИ.
- Улучшение диалоговых агентов: В области чат-ботов и виртуальных ассистентов DPO используется для снижения токсичности и приведения ответов в соответствие со строгими рекомендациями по безопасности OpenAI и исследованиями Anthropic по согласованию ИИ. Аннотаторы просматривают два ответа на запрос, помечая вежливый и фактический ответ как «выбранный». Затем DPO обновляет веса модели, чтобы отдавать предпочтение этому конкретному стилю общения, одновременно наказывая за галлюцинации.
- Уточнение мультимодальных моделей: По мере развития распознавания изображений от моделей всё чаще требуется объяснять операторам то, что они видят. Для приложений, таких как визуальные ответы на вопросы, DPO позволяет исследователям согласовывать текстовый вывод модели с подробными предпочтениями людей. Например, если пользователь просит роботизированную систему на базе Ultralytics YOLO26 описать объект, DPO обучает модель отдавать приоритет фактическим, кратким описаниям, а не расплывчатым интерпретациям, строго придерживаясь принципов этики ИИ.
Link to this sectionDPO на практике#
Для реализации DPO требуются высококачественные парные данные. Современные рабочие процессы используют комплексные инструменты, такие как Ultralytics Platform, для беспрепятственного управления этими наборами данных, гарантируя, что процесс разметки данных дает четкие примеры «победителей» и «проигравших». Ты можешь изучить фундаментальные исследования, стоящие за этим, в работе Direct Preference Optimization: Your Language Model is Secretly a Reward Model или прочитать о согласовании и предпочтениях людей от Stanford HAI.
Следующий фрагмент кода на Python демонстрирует фундаментальную структуру данных, необходимую для расчета функции потерь в стиле DPO с использованием функций, найденных в справочнике API PyTorch.
import torch
import torch.nn.functional as F
def dpo_loss(chosen_logps, rejected_logps, beta=0.1):
# DPO maximizes the margin between chosen and rejected log probabilities
logits = beta * (chosen_logps - rejected_logps)
# The loss minimizes the negative log sigmoid of this margin
return -F.logsigmoid(logits).mean()
print(f"DPO Loss: {dpo_loss(torch.tensor([-0.5]), torch.tensor([-2.5])):.4f}")





