Эпоха 6 · Генеративка и системы · 2023

51 DPO

Direct Preference Optimization: Your Language Model is Secretly a Reward Model · Rafailov, Sharma, Mitchell, Manning, Ermon & Finn · Stanford · NeurIPS
🟥 читать целиком~2 чоригинал ↗
Суть за 20 секунд. RLHF без RL: preference-objective решается напрямую как простой classification-loss на парах предпочтений — без отдельной reward-модели и PPO-петли. Модель сама себе reward-модель. Выравнивание стало проще и стабильнее → дефолт open-моделей.

Контекст

RLHF (#44) — мощный, но СЛОЖНЫЙ конвейер: отдельная reward-модель + нестабильное RL (PPO) с кучей гиперпараметров. Рафаилов и др. спрашивают: нельзя ли получить результат RLHF БЕЗ RL?

Идея и механизм

Математический инсайт: оптимальная политика RLHF выражается замкнуто через reward, а значит и reward — через политику. Подставив это в модель предпочтений, целевую функцию RLHF превращают в простой classification-loss прямо на парах (предпочтённый, отвергнутый). Отдельная reward-модель и PPO-петля не нужны.

оптимизация · теорвер Вывод: как RL-задача схлопывается в классификацию

Шаг 1. Цель RLHF maxπ E[r] − β KL(π ‖ πref) имеет известное замкнутое решение:

π*(y|x) = 1Z(x) πref(y|x) · exp(r(x,y)β)

Шаг 2. Выразим reward через политику (просто переставив):

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

Шаг 3. Подставим в модель предпочтений Брэдли-Терри P(yw≻yl) = σ(rw−rl) — нормировка Z(x) сокращается (одинаковый x!), и остаётся лосс прямо на политике:

L = −E log σ(β log πθ(yw)πref(yw) − β log πθ(yl)πref(yl))

Ни reward-модели, ни PPO — обычный classification на парах. Сама языковая модель неявно и есть reward-модель (отсюда подзаголовок статьи). Вот этот вывод в три строки — главная ценность работы.

PyTorch Лосс DPO
import torch.nn.functional as F
# pi_*, ref_* — log-вероятности выбранного/отвергнутого (политика / референс)
def dpo_loss(pi_w, pi_l, ref_w, ref_l, beta=0.1):
    logits = beta * ((pi_w - ref_w) - (pi_l - ref_l))
    return -F.logsigmoid(logits).mean()     # просто classification на парах
RLHF (#44): reward PPO (RL) DPO (#51): один classification-лосс на парах проще, стабильнее,без отдельной модели и RL
RLHF: reward-модель + нестабильный RL. DPO сворачивает то же самое в один прямой лосс на парах предпочтений.
Аналогия. Чтобы научить вкусу, можно нанять отдельного дегустатора (reward-модель) и через него методом проб и ошибок (RL) подстраивать повара — долго и шатко. А можно прямо сказать повару: «вот это блюдо лучше того» — и пусть он сам подвигает свои рецепты в нужную сторону. DPO — это «учить на парах напрямую», без посредника-дегустатора.

Почему это важно

Резко упростил выравнивание; стал дефолтным рецептом для open-моделей и базой множества вариантов (IPO, KTO, ORPO). Понять его вывод — значит понять, как устроено современное alignment без RL.

Связи

↔ упрощает44. InstructGPT (RLHF)

Тот же результат (выравнивание по предпочтениям), но без отдельной reward-модели и PPO. DPO взял ровно ту же постановку RLHF и алгебраически свернул её в один шаг — планку RLHF обошёл по простоте, не по цели.

↔ заменяет33. PPO

PPO был RL-движком выравнивания; DPO показывает, что для preference-обучения RL не нужен вовсе. Где RLHF крутит нестабильную RL-петлю, DPO делает обычный supervised-шаг — стабильнее и дешевле.

→ дополняет45. Constitutional AI

Два независимых упрощения RLHF: CAI убирает человека из разметки (AI-фидбек), DPO убирает RL из обучения. Их совмещают: получить предпочтения AI-фидбеком (CAI) и обучить на них DPO-лоссом.

Вопросы пытливого ума

Если DPO проще и стабильнее, зачем кому-то всё ещё PPO/RLHF?

У RL остаются преимущества: он работает с онлайн-данными (генерирует и оценивает на лету), а DPO учится на фиксированном наборе пар и может «зазубрить» их распределение. Для сложных сигналов (многошаговые награды, верифицируемые задачи) RL гибче. На практике многие фронтир-лаборатории комбинируют: DPO как дешёвая база, RL-дообучение там, где оно реально нужно.

«Модель сама себе reward-модель» — это метафора или буквально?

Буквально, в точном смысле вывода: величина β log(πθ/πref) и есть неявная награда, соответствующая этой политике. Не нужно отдельной сети-оценщика — reward «зашит» в отношение вероятностей политики к референсу. Это не аналогия, а следствие замкнутой формы оптимальной RLHF-политики.

Где DPO ломается на практике?

Известные проблемы: чувствительность к качеству и покрытию набора пар, склонность снижать вероятность обоих ответов (и хорошего, и плохого) при неудачной настройке, зависимость от хорошего референса. Отсюда поток вариантов (IPO исправляет переобучение предпочтений, KTO работает без пар, ORPO убирает референс). DPO — мощная база, но не «серебряная пуля», и его тюнинг — отдельное искусство.

Что читать в оригинале

Читать целиком — главная ценность именно ВЫВОД (несколько строк, превращающих RL-задачу в классификацию); понять его = понять современное alignment без RL.