Обучение с подкреплением и выравнивание

DPO

Обратить формулу оптимума — и обучать политику предпочтениями напрямую

Шаг 115 из 117 · ~28 мин

Вывод в три строки

Из урока 120 известно решение KL-регуляризованной задачи:

π(yx)=1Z(x)πref(yx)er(x,y)/β\pi^*(y\mid x) = \frac{1}{Z(x)}\,\pi_{\text{ref}}(y\mid x)\,e^{r(x,y)/\beta}

Обычно это читают слева направо: есть награда — вот политика. Прочитаем справа налево и выразим награду:

r(x,y)=βlogπ(yx)πref(yx)+βlogZ(x)r(x,y) = \htmlData{k=implicit}{\beta \log\frac{\pi^*(y\mid x)}{\pi_{\text{ref}}(y\mid x)}} + \htmlData{k=z}{\beta\log Z(x)}

Теперь подставим это в модель Брэдли–Терри из урока 130. Там стоит разность наград двух ответов на один и тот же запрос — и βlogZ(x)\beta\log Z(x), одинаковая для обоих, сокращается.

P(ywyl)=σ(βlogπ(ywx)πref(ywx)βlogπ(ylx)πref(ylx))P(y_w \succ y_l) = \sigma\left(\beta\log\frac{\pi(y_w\mid x)}{\pi_{\text{ref}}(y_w\mid x)} - \beta\log\frac{\pi(y_l\mid x)}{\pi_{\text{ref}}(y_l\mid x)}\right)

Максимизируем правдоподобие — получаем функцию потерь DPO:

L=logσ(βlogπ(yw)πref(yw)βlogπ(yl)πref(yl))\mathcal{L} = -\log\sigma\left(\beta\log\frac{\pi(y_w)}{\pi_{\text{ref}}(y_w)} - \beta\log\frac{\pi(y_l)}{\pi_{\text{ref}}(y_l)}\right)

Всё. Ни модели награды, ни RL, ни генерации в цикле обучения — обычная классификация пар.

Что исчезло и почему

Стоит проследить, куда делся каждый кусок конвейера.

компонент RLHFчто с ним стало
модель наградыстала неявной — это βlog(π/πref)\beta\log(\pi/\pi_{\text{ref}})
нормировка Z(x)Z(x)сократилась в разности
PPO со всеми деталямине нужен
генерация в циклене нужна: данные фиксированы
опорная модельосталась — нужна для отношения

Второе — ключевое место вывода. Z(x)=yπref(y)er(x,y)/βZ(x) = \sum_y \pi_{\text{ref}}(y)e^{r(x,y)/\beta} — сумма по всем возможным ответам, невычислимая в принципе. Она исчезает не потому, что мы её оценили, а потому, что модель предпочтений смотрит на разность.

Тот же приём встречался в блоке 3 (score не зависит от нормировки) и в ветке A (урок 040). Приём один: работать с разностями или градиентами логарифма, где неизвестная константа не выживает.

Сравнение

RLHFDPO
моделей при обучении3 (политика, награда, опорная)2 (политика, опорная)
генерация в цикленужнанет
данныеможно собирать по ходуфиксированный набор
настройкамного (PPO)мало (β\beta)
оптимизируетвыученную наградупредпочтения напрямую

Четвёртая строка — не только преимущество. Фиксированный набор означает, что DPO работает off-policy на данных, собранных чужой политикой, со всеми последствиями урока 090. RLHF может собирать свежие сравнения на текущей политике; DPO — нет, если только не запускать её итеративно.

Чего DPO не решает

Стоит быть точным, потому что вывод элегантен и от этого возникает завышенное ожидание.

Смещения разметки остаются. DPO обучается на тех же сравнениях. Если разметчики предпочитают длинные ответы, DPO выучит длину — не хуже и не лучше, чем RLHF.

Overoptimisation остаётся, в другой форме. У неявной награды нет отдельной модели, которую можно переоптимизировать, но давление на разность логарифмов есть, и оно может уводить модель в области с малой вероятностью у πref\pi_{\text{ref}}.

Предположение Брэдли–Терри остаётся. Оно постулирует, что предпочтения порождены скалярной латентной наградой и транзитивны. Реальные предпочтения людей нетранзитивны, и разбор Azar и др. показывает, где это вредит.

Появляется своя проблема. Функция потерь снижается и тогда, когда вероятность обоих ответов падает — важна лишь разность. На практике наблюдают, что π(yw)\pi(y_w) уменьшается вместе с π(yl)\pi(y_l), просто медленнее. Отсюда варианты вроде IPO и добавление SFT-члена.

предпочтёнотвергнутпрочее

ответ вероятность

опорная модель цель обучения
коэффициент β 0.5
средняя награда
0.8252
KL от опорной
0.3546
значение цели
0.6479
β·log Z
0.6479
DPO не оптимизирует эту цель напрямую — она обучает политику так, чтобы разность логарифмов отношений соответствовала предпочтениям. Но оптимум у обеих задач один и тот же, и он изображён здесь: то же перевзвешивание опорной модели. β в DPO означает ровно то же, что в RLHF, и подбирается по тому же соображению.

Итог

  • DPO получается обращением формулы оптимума и подстановкой в Брэдли–Терри.
  • Невычислимая нормировка Z(x)Z(x) сокращается в разности — тот же приём, что со score в ветке A.
  • Остаются две модели вместо трёх, обучение становится обычной классификацией пар.
  • Не решаются: смещения разметки, предположение Брэдли–Терри, давление на маловероятные области.
  • Появляется своя проблема: потери падают и при снижении вероятности обоих ответов.

Источники

Проверки

0 из 2
  1. Что сокращается и что остаётся

    Отметьте все верные утверждения о DPO.

  2. Функция потерь DPO

    Реализуйте dpo_loss(p_win, p_lose, ref_win, ref_lose, beta), где четыре первых аргумента — вероятности предпочтённого и отвергнутого ответов у текущей и у опорной модели. Верните [logit, loss, probability, implicit_reward_win]:

    • logit = β(logπ(yw)πref(yw)logπ(yl)πref(yl))\beta\left(\log\dfrac{\pi(y_w)}{\pi_{\text{ref}}(y_w)} - \log\dfrac{\pi(y_l)}{\pi_{\text{ref}}(y_l)}\right);
    • loss = logσ(logit)-\log\sigma(\texttt{logit});
    • probability = σ(logit)\sigma(\texttt{logit});
    • implicit_reward_win = βlogπ(yw)πref(yw)\beta\log\dfrac{\pi(y_w)}{\pi_{\text{ref}}(y_w)} — та самая неявная награда, ради которой всё затевалось.

    Проверить себя можно так: если текущая модель совпадает с опорной, logit равен нулю, а потери — ln2\ln 2. Обучение стартует ровно оттуда.

    функция dpo_loss

    Загрузка редактора…

    Ctrl/⌘ + Enter