Reading the Math in AI Papers · Часть 3 из 3

Как читать целевые функции: дистилляция, DPO и GRPO

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Дистилляция, Direct Preference Optimization (DPO) и Group Relative Policy Optimization (GRPO) меняют вероятности языковой модели, но используют разные обучающие примеры и обратную связь. Это руководство для инженеров, которые хотят понять эти различия, прежде чем читать полные целевые функции. Схемы показывают, откуда берётся обратная связь и как она меняет сравнения вероятностей; уравнения задают соответствующие операции.

При обычном файн-тюнинге с учителем модель учится предсказывать следующий токен в сохранённых примерах. Методы ниже меняют обратную связь: учитель предоставляет вероятности, пара предпочтений указывает, какой ответ лучше, а награда оценивает ответы, сэмплированные во время обучения. Политика — это просто модель, которая генерирует ответы. Все логарифмы ниже натуральные.

Часть 1 объясняет, как читать уравнения, и содержит справочник обозначений. Здесь каждый раздел объясняет нужные ему термины, и его можно читать отдельно.

Классическая дистилляция: температура в обоих softmax

Обучающая метка указывает правильный результат: при предсказании следующего токена это следующий токен в сохранённом примере. Модель-учитель даёт больше информации: вероятности всех токенов-кандидатов, включая правдоподобные альтернативы. Дистилляция обучает меньшую модель-ученика воспроизводить эти вероятности. Обучение уменьшает численное значение функции потерь, меняя параметры ученика; параметры учителя остаются фиксированными.

В статье о дистилляции Хинтона и соавторов, §2, распределения обеих моделей сглаживают перед сравнением. Разделим каждый логит — исходную оценку до softmax — на температуру TT:

qi=exp⁡(zi/T)∑jexp⁡(zj/T).q_i=\frac{\exp(z_i/T)}{\sum_j\exp(z_j/T)}.

Здесь ziz_i — оценка кандидата ii, а qiq_i — его вероятность. Допустим, у упрощённой модели есть только два возможных следующих токена, «cat» и «dog», и после «The animal is a» она присваивает им оценки (2,0)(2,0). При T=1T=1 вероятности равны примерно (0.88,0.12)(0.88,0.12); при T=2T=2 они становятся (0.73,0.27)(0.73,0.27). Меньшая оценка теперь сильнее влияет на сравнение. Учитель и ученик используют одинаковую температуру.

Столбцы показывают, как при повышении температуры те же две оценки дают менее концентрированное распределение.

Для примерных следующих токенов cat и dog логиты 2 и 0 дают вероятности 0,88 и 0,12 при температуре 1 и 0,73 и 0,27 при температуре 2. Оба графика используют одинаковую шкалу от нуля до единицы. Вероятность dog растёт.Для примерных следующих токенов cat и dog логиты 2 и 0 дают вероятности 0,88 и 0,12 при температуре 1 и 0,73 и 0,27 при температуре 2. Оба графика используют одинаковую шкалу от нуля до единицы. Вероятность dog растёт.

Функция потерь объединяет обычную потерю по метке с потерей за несовпадение со сглаженным распределением учителя. Обозначим вероятности учителя через p(T)p^{(T)}, а ученика через q(T)q^{(T)} при температуре TT. Для одного входа с меткой:

L=(1−λ)(−log⁡qy(1))+λT2DKL(p(T)∥q(T)).\begin{aligned} \mathcal L&=(1-\lambda)\bigl(-\log q_y^{(1)}\bigr)\\ &\quad+\lambda T^2 D_{\mathrm{KL}}\bigl(p^{(T)}\Vert q^{(T)}\bigr). \end{aligned}

Здесь L\mathcal L — потеря, yy — правильный следующий токен, а λ∈[0,1]\lambda\in[0,1] задаёт пропорции смеси. Верхние индексы в скобках обозначают температуры, а не степени. Первый член читается как «штрафовать низкую вероятность правильного токена при T=1T=1». Второй — как «воспроизводить сглаженные вероятности учителя». Обучение усредняет эти потери по сохранённым входам и меняет только ученика.

DKL(p∥q)D_{\mathrm{KL}}(p\Vert q) — KL-дивергенция от учителя pp к ученику qq. Она измеряет различие двух распределений вероятностей: при совпадении равна нулю. Первое распределение задаёт веса сравнения, поэтому вероятные по оценке учителя результаты получают больший вес. Хинтон и соавторы описывают член сопоставления через кросс-энтропию; эта форма KL вычитает константу, зависящую только от учителя, и даёт те же градиенты ученика.

Множитель T2T^2 приблизительно компенсирует уменьшение градиентов при повышении температуры. Это настройка обучения; при использовании обученного ученика для этого softmax обычно возвращают T=1T=1.

Префикс — текст, доступный перед следующим токеном: промпт и уже полученные токены ответа. Например, «The animal is a» — префикс перед «cat». На рисунке обе модели читают один префикс и выдают вероятности следующего токена. Слева префиксы берутся из сохранённых примеров. Справа — из ответов, которые ученик генерирует при обучении. В обоих случаях потеря сравнения обновляет только ученика.

Классическая дистилляция передаёт фиксированные входы замороженному учителю и обучаемому ученику, а затем сравнивает их вероятности. Дистилляция on-policy сначала сэмплирует текст ученика; затем учитель и ученик сравнивают вероятности следующего токена на префиксах этого текста. Обновляется только ученик.Классическая дистилляция передаёт фиксированные входы замороженному учителю и обучаемому ученику, а затем сравнивает их вероятности. Дистилляция on-policy сначала сэмплирует текст ученика; затем учитель и ученик сравнивают вероятности следующего токена на префиксах этого текста. Обновляется только ученик.

Бывает и дистилляция без сопоставления вероятностей. Дистиллированные модели DeepSeek-R1, §2.4, прошли файн-тюнинг на 800 000 примеров, заранее отобранных с помощью DeepSeek-R1. Они использовали функцию потерь с учителем на сохранённом тексте; запускать модель-учителя во время такого обучения не требовалось.

Подробный разбор дистилляции объясняет смешанную функцию потерь и масштабирование температурой.

Дистилляция on-policy: ученик стоит первым в KL

Ученик, генерирующий собственный ответ, может получить префиксы — промпт и уже сгенерированную часть ответа, — которых никогда не было в обучающем датасете. Дистилляция on-policy получает обратную связь на текст, который ученик действительно создаёт. Получив промпт, ученик сэмплирует ответ. Замороженный учитель затем оценивает те же префиксы, так что обучение сравнивает модели там, где ученику нужна помощь.

On-policy описывает этот источник обучающего текста. Сам по себе термин не задаёт конкретную функцию потерь. Здесь в примерах используется обратная KL, в которой ученик стоит первым:

DKL(qθ∥p)=Ey∼qθ[log⁡qθ(y∣x)p(y∣x)].D_{\mathrm{KL}}(q_\theta\Vert p) =\mathbb E_{y\sim q_\theta}\left[\log\frac{q_\theta(y\mid x)}{p(y\mid x)}\right].

Для фиксированного промпта xx обозначение qθq_\theta задаёт ученика с обучаемыми параметрами θ\theta, pp — учителя, а yy — ответ, сэмплированный из ученика. Выражение сравнивает вероятность, которую ученик присвоил своему ответу, с вероятностью учителя. При усреднении по ответам ученика оно штрафует высокую вероятность текста, который учитель считает маловероятным.

Это отличается от требования охватить все результаты, которые мог бы выдать учитель. Если маленький ученик не может воспроизвести полное распределение учителя, обратная KL может способствовать концентрации на части его вероятных ответов. MiniLLM, §2.1, уравнение (1), использует эту целевую функцию. Реальная процедура обучения также добавляет сэмплы учителя в генерацию и корректирует градиент, чтобы снизить дисперсию и смещение по длине; схема показывает базовую конфигурацию on-policy, а не все изменения MiniLLM.

В упрощённом примере ниже учитель и ученик присваивают разные вероятности «cat» и «dog» после одного префикса. KL умножает логарифм отношения для каждого токена на его вес, а затем складывает два члена. При смене первого аргумента больший вес переходит от «cat» к «dog». Столбцы показывают веса, а не полные вклады в потерю.

После одного префикса вероятности учителя для cat и dog равны 0,8 и 0,2, а ученика — 0,4 и 0,6. Прямая KL взвешивает логарифмы отношений учитель/ученик с весами 0,8 и 0,2. Обратная KL взвешивает логарифмы отношений ученик/учитель с весами 0,4 и 0,6.После одного префикса вероятности учителя для cat и dog равны 0,8 и 0,2, а ученика — 0,4 и 0,6. Прямая KL взвешивает логарифмы отношений учитель/ученик с весами 0,8 и 0,2. Обратная KL взвешивает логарифмы отношений ученик/учитель с весами 0,4 и 0,6.

От KL последовательности к KL токенов

Вероятность ответа вычисляется из вероятностей его следующих токенов. На каждом префиксе ответа ученика обе модели предсказывают следующий токен. Поэтому их различия можно сравнивать по позициям, а затем суммировать по ответу. DeepSeek-V4, §5.1.2, уравнение (29), использует дистилляцию с обратной KL от нескольких специализированных моделей-учителей в одного ученика. Эти учителя — отдельные модели, а не экспертные подсети внутри слоя mixture-of-experts.

В позиции tt пусть qt(v)=qθ(v∣x,y<t)q_t(v)=q_\theta(v\mid x,y_{<t}) — вероятность токена-кандидата vv по оценке ученика. Префикс содержит промпт xx и предыдущие токены ответа y<ty_{<t}; pt(v)p_t(v) — вероятность учителя на том же префиксе. Тогда:

dt=∑v∈Vqt(v)log⁡qt(v)pt(v),DKL(qθ∥p)=Ey∼qθ[∑tdt].\begin{aligned} d_t&=\sum_{v\in V}q_t(v)\log\frac{q_t(v)}{p_t(v)},\\ D_{\mathrm{KL}}(q_\theta\Vert p) &=\mathbb E_{y\sim q_\theta}\left[\sum_t d_t\right]. \end{aligned}

VV — словарь, а dtd_t — KL следующего токена на одном префиксе. Внутренняя сумма читается как «сравнить каждый токен-кандидат с весом, равным вероятности ученика». Сложите эти сравнения по позициям, затем усредните по ответам, которые генерирует ученик. Внешнее математическое ожидание по-прежнему использует сэмплирование текста, даже когда каждое dtd_t суммирует весь словарь.

Один сэмплированный токен или весь словарь

Учитель может оценить только выбранный учеником токен или вернуть вероятности для всего словаря. Первый вариант передаёт меньше информации; второй сравнивает все возможные следующие токены на данном префиксе. DeepSeek-V4 сообщает о нестабильном обучении с оценкой по одному токену и использует сравнение по всему словарю. Это делает сравнение токенов точным на данном префиксе; сами префиксы по-прежнему берутся из сэмплированных ответов.

Обе модели читают «The animal is a» и возвращают вероятности, показанные ниже. Выделенные строки входят в функцию потерь для обновления ученика. Вариант с полным словарём включает «dog» и «fox», хотя ученик выбрал «cat»; вариант с одним токеном оценивает это сравнение только по выбранному токену.

На префиксе «The animal is a» ученик сэмплирует cat. Оценка по одному токену сравнивает вероятности только для cat. KL по всему словарю включает cat, dog и fox из этого примерного словаря и взвешивает каждый логарифм отношения вероятностью ученика. Префикс остаётся сэмплированным.На префиксе «The animal is a» ученик сэмплирует cat. Оценка по одному токену сравнивает вероятности только для cat. KL по всему словарю включает cat, dog и fox из этого примерного словаря и взвешивает каждый логарифм отношения вероятностью ученика. Префикс остаётся сэмплированным.

Для трёх строк получаем dt=0.5log⁡(0.5/0.6)+0.2log⁡(0.2/0.3)+0.3log⁡(0.3/0.1)≈0.157d_t=0.5\log(0.5/0.6)+0.2\log(0.2/0.3)+0.3\log(0.3/0.1)\approx0.157. Логарифм отношения только для сэмплированного «cat» равен примерно −0.182-0.182. Одна выборка может дать отрицательное значение, хотя полная KL неотрицательна.

Подробный разбор on-policy рассматривает переход от последовательностей к токенам, поправки сэмплирования и оценки градиента.

DPO: логистическая потеря для двух логарифмов отношений

DPO начинает с сохранённой пары предпочтений: одного промпта, предпочтительного и отклонённого ответов. Пара может быть получена из человеческих оценок более ранних ответов моделей. При обучении модель читает каждый сохранённый ответ токен за токеном и записывает его вероятность при заданных промпте и предыдущих токенах. Сумма этих логарифмов вероятностей даёт логарифм вероятности ответа. Это оценивает вероятность текста по модели; сохранённая метка предпочтения указывает, какой ответ лучше.

В обычной процедуре RLHF пары предпочтений сначала обучают отдельную модель награды, а затем обучение с подкреплением обучает языковую модель по этой награде. DPO, §4, уравнение (7), вместо этого обучает языковую модель непосредственно на парах. Замороженная референсная модель оценивает те же ответы для сравнения. Обучение меняет только текущую модель; ни одной из моделей не нужно генерировать новые ответы на этом шаге.

Для каждого ответа вычтите референсный логарифм вероятности из текущего. Назовём это изменение приростом. DPO сравнивает прирост предпочтительного ответа с приростом отклонённого:

g(y)=log⁡πθ(y∣x)πref(y∣x),Δ=g(yw)−g(yl),LDPO=E(x,yw,yl)∼D[−log⁡σ(βΔ)].\begin{aligned} g(y)&=\log\frac{\pi_\theta(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)},\\ \Delta&=g(y_w)-g(y_l),\\ \mathcal L_{\mathrm{DPO}} &=\mathbb E_{(x,y_w,y_l)\sim\mathcal D} \bigl[-\log\sigma(\beta\Delta)\bigr]. \end{aligned}

Здесь xx — промпт, ywy_w и yly_l — предпочтительный и отклонённый ответы, а πθ\pi_\theta и πref\pi_{\mathrm{ref}} — текущая и референсная модели. Сигмоида σ\sigma отображает число в (0,1)(0,1), а β\beta — положительный масштаб. Последняя строка читается как «усреднить потерю пары в квадратных скобках по сохранённым парам датасета D\mathcal D». Увеличение Δ\Delta уменьшает эту потерю; обучение минимизирует LDPO\mathcal L_{\mathrm{DPO}}, меняя параметры θ\theta текущей модели.

Например, если логарифм вероятности предпочтительного ответа вырос на 2, а отклонённого упал на 1, то Δ=2−(−1)=3\Delta=2-(-1)=3. Предпочтение изменилось в нужном направлении относительно референса. Функция потерь не содержит отдельного члена KL и не задаёт максимальное расстояние до референса.

Одна разность может скрыть проблему: предпочтительный ответ может становиться менее вероятным, пока вероятность отклонённого падает ещё быстрее. Потеря при этом улучшается. Smaug исследует этот сбой, поэтому проверяйте вероятности отдельных ответов наряду с потерей предпочтений.

Оба случая ниже дают одинаковое Δ=3\Delta=3 и, следовательно, одинаковую потерю пары при фиксированном β\beta. Только слева предпочтительный ответ становится вероятнее, чем был у референса.

Два случая используют общую ось изменения логарифма вероятности. Предпочтительный плюс 2 и отклонённый минус 1 дают разность приростов 3. Предпочтительный минус 1 и отклонённый минус 4 тоже дают 3, хотя вероятности обоих ответов упали относительно референса.Два случая используют общую ось изменения логарифма вероятности. Предпочтительный плюс 2 и отклонённый минус 1 дают разность приростов 3. Предпочтительный минус 1 и отклонённый минус 4 тоже дают 3, хотя вероятности обоих ответов упали относительно референса.

На следующем рисунке обратная связь DPO связана с сохранённой парой. GRPO генерирует четыре ответа на «2 + 2?» во время обучения. Проверка ответа присваивает 1 за «4» и 0 в остальных случаях. Сравнение каждой награды со средним по группе даёт преимущество: положительная обратная связь поощряет токены сэмплированного ответа, а отрицательная — подавляет. Следующий раздел показывает этот расчёт и ограничения его влияния.

DPO использует текущую и замороженную референсную модели для оценки двух сохранённых ответов, затем обновляет текущую модель. GRPO сэмплирует 3, 4, 4 и 5 для вопроса 2 плюс 2. Проверка присваивает награды 0, 1, 1 и 0. Преимущества относительно группы минус 1, плюс 1, плюс 1 и минус 1 направляют обновления текущей модели.DPO использует текущую и замороженную референсную модели для оценки двух сохранённых ответов, затем обновляет текущую модель. GRPO сэмплирует 3, 4, 4 и 5 для вопроса 2 плюс 2. Проверка присваивает награды 0, 1, 1 и 0. Преимущества относительно группы минус 1, плюс 1, плюс 1 и минус 1 направляют обновления текущей модели.

Подробный разбор DPO выводит функцию потерь из целевой функции с регуляризацией награды и разбирает её градиент.

GRPO: целевая функция PPO с групповой базой сравнения

Group Relative Policy Optimization сэмплирует несколько ответов на один вопрос, оценивает их и сравнивает каждую оценку со средним по группе. Правильный ответ среди преимущественно неправильных получает положительную обратную связь; неправильный среди правильных — отрицательную. Для математики или кода оценку может давать проверка ответа или тесты. Другие задачи могут использовать модель награды.

DeepSeekMath, §4.1.1, представил GRPO как вариант Proximal Policy Optimization (PPO). DeepSeek-R1, §2.2.1, позже использовал его. Главное изменение — способ вычисления преимущества, относительной награды, которая направляет обновление:

Ai=ri−mean⁡(r1,…,rG)std⁡(r1,…,rG).A_i=\frac{r_i-\operatorname{mean}(r_1,\ldots,r_G)}{\operatorname{std}(r_1,\ldots,r_G)}.

rir_i — награда ответа ii, а GG — число ответов на один вопрос. Вычитание среднего показывает, какие ответы получили оценки выше или ниже среднего по группе. Деление на стандартное отклонение масштабирует эти разности. В показанной группе (0,1,1,0)(0,1,1,0) среднее равно 0.50.5, а стандартное отклонение генеральной совокупности — 0.50.5, что даёт преимущества (−1,1,1,−1)(-1,1,1,-1).

Что меняется по сравнению с PPO

PPO обычно обучает отдельную модель ценности, чтобы оценивать будущую награду по частичному ответу. GRPO использует вместо неё оценки группы как базу сравнения, поэтому не обучает эту модель ценности. Обратная связь в виде награды всё ещё нужна, а исходная целевая функция по-прежнему использует референсную модель для штрафа KL. Удаление модели ценности не устраняет эти другие роли.

Сравнение ниже показывает, где находилась заменённая модель ценности. Нижний ряд показывает два других входа обучения. Старая модель или модель сэмплирования — версия, которая сгенерировала этот батч ответов; её записанные вероятности токенов остаются фиксированными, пока текущая модель обучается на этом батче. Отдельная референсная модель, также фиксированная во время этих обновлений, даёт вероятности для сравнения KL. Оба сравнения оценивают один токен после одного префикса.

PPO использует награды и обучаемую модель ценности для оценки преимуществ. GRPO вместо этого нормализует награду каждого ответа относительно наград на тот же вопрос. Отношение вероятностей текущей модели к модели сэмплирования и KL текущей модели относительно референсной выполняют разные роли при обучении.PPO использует награды и обучаемую модель ценности для оценки преимуществ. GRPO вместо этого нормализует награду каждого ответа относительно наград на тот же вопрос. Отношение вероятностей текущей модели к модели сэмплирования и KL текущей модели относительно референсной выполняют разные роли при обучении.

GRPO сохраняет целевую функцию PPO с отсечением отношения вероятностей. Если сэмплированный токен имел вероятность 0.200.20, а текущая модель теперь присваивает ему 0.240.24 на том же префиксе, отношение равно 0.24/0.20=1.20.24/0.20=1.2. Целевая функция взвешивает это отношение преимуществом ответа. Обучение меняет текущую модель, чтобы увеличить эту функцию, а отдельный штраф KL сдерживает отклонение от референса.

Для одного сэмплированного ответа обозначим через sts_t промпт и токены ответа перед позицией tt, а через yty_t — токен на этой позиции. Часть уравнения (3) DeepSeekMath, показанная на графике:

ρt=πθ(yt∣st)πold(yt∣st),Ct=min⁡ ⁣(ρtA,clip⁡(ρt,1−ε,1+ε)A).\begin{aligned} \rho_t&=\frac{\pi_\theta(y_t\mid s_t)}{\pi_{\mathrm{old}}(y_t\mid s_t)},\\ C_t&=\min\!\bigl(\rho_t A,\\ &\qquad\operatorname{clip}(\rho_t,1-\varepsilon,1+\varepsilon)A\bigr). \end{aligned}

πθ\pi_\theta — текущая модель, πold\pi_{\mathrm{old}} — копия для сэмплирования, а AA — преимущество этого ответа относительно группы. Ширина ε\varepsilon задаёт интервал отсечения. Читайте clip⁡\operatorname{clip} как «заменить отношение вне интервала ближайшей границей», а затем min⁡\min как «взять меньший из двух членов, взвешенных преимуществом». CtC_t — вклад, который нужно максимизировать. GRPO вычитает штраф KL и усредняет по токенам внутри ответов, ответам внутри групп и сэмплированным вопросам.

При A=1A=1, ε=0.2\varepsilon=0.2 и ρt=1.5\rho_t=1.5 два члена равны 1.51.5 и 1.21.2, поэтому Ct=1.2C_t=1.2. При A=−1A=-1 и ρt=0.5\rho_t=0.5 они равны −0.5-0.5 и −0.8-0.8, поэтому Ct=−0.8C_t=-0.8. Это два горизонтальных участка графика.

График выделяет вклад одного токена при фиксированном преимуществе. Положительное преимущество поощряет большее отношение; отрицательное — меньшее. Отсечение делает линию горизонтальной там, где благоприятное изменение перестаёт улучшать этот член. Оно не задаёт жёсткого ограничения реальных вероятностей модели.

При ширине отсечения 0,2 и преимуществе плюс 1 целевая функция с отсечением растёт с отношением до 1,2, а затем остаётся постоянной. При преимуществе минус 1 она постоянна ниже 0,8 и убывает, когда отношение растёт выше 0,8. Реальное отношение вероятностей может выйти за любой из этих порогов.При ширине отсечения 0,2 и преимуществе плюс 1 целевая функция с отсечением растёт с отношением до 1,2, а затем остаётся постоянной. При преимуществе минус 1 она постоянна ниже 0,8 и убывает, когда отношение растёт выше 0,8. Реальное отношение вероятностей может выйти за любой из этих порогов.

Копия для сэмплирования и референс могут начинать с одинаковых весов, но служат разным сравнениям. Копия для сэмплирования обновляется при сборе нового батча; её записанные вероятности остаются знаменателем при обновлениях на этом батче.

Если все ответы получают одинаковую награду, относительного предпочтения для обучения нет. Формула преимущества тогда делит ноль на ноль. Реализации нужно правило для этого случая, например нулевые преимущества; DAPO, §3.2, вместо этого исключает такие группы и сэмплирует им замену.

Подробный разбор GRPO рассматривает полную целевую функцию, случаи отсечения, градиенты, сэмплированный оцениватель KL и влияние усреднения по ответам или по токенам.

Дополнительные разборы уравнений

Подробные разборы по ссылкам включают выводы и проверки на небольших числах. Они созданы с помощью навыков для программирующих агентов из paper-math-skills и собраны в paper-math-readings.

Источники и версии