Alterna · учебный материал
16.5 Учимся по сравнению двух ответов
Данные могут говорить, какой из двух ответов предпочли. Это отдельный критерий обучения, а не доказательство истинности выбранного ответа.
Что в этом материале
- Сравниваем ответы относительно reference policy
Содержание и основные понятия
На предыдущей странице: учебные примеры вопроса и ответа.
Данные могут говорить, какой из двух ответов предпочли. Это отдельный критерий обучения, а не доказательство истинности выбранного ответа.
Каждый известный токен готовит прогноз следующего. Ошибка проходит назад по программе, оптимизатор меняет веса, а отдельные данные проверяют результат. Разметка диалога и предпочтений меняет objective.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Сравниваем ответы относительно reference policy
Preference dataset содержит prompt и пару ответов: chosen/rejected по некоторому процессу разметки. DPO использует разность log-ratios текущей и reference policies и binary logistic loss. Положительный margin означает, что policy усилила chosen относительно rejected сильнее, чем reference. F03, F04.
Δ
=
[
log
π
θ
(
y
+
∣
x
)
−
log
π
θ
(
y
−
∣
x
)
]
−
[
log
π
r
e
f
(
y
+
∣
x
)
−
log
π
r
e
f
(
y
−
∣
x
)
]
,
L
D
P
O
=
−
log
σ
(
β
Δ
)
.
\Delta=\left[\log\pi_\theta(y^+|x)-\log\pi_\theta(y^-|x)\right]
-\left[\log\pi_{ref}(y^+|x)-\log\pi_{ref}(y^-|x)\right],
\quad L_{DPO}=-\log\sigma(\beta\Delta).
Δ
=
[
lo
g
π
θ
(
y
+
∣
x
)
−
lo
g
π
θ
(
y
−
∣
x
)
]
−
[
lo
g
π
re
f
(
y
+
∣
x
)
−
lo
g
π
re
f
(
y
−
∣
x
)
]
,
L
D
PO
=
−
lo
g
σ
(
β
Δ
)
.
Log-probability ответа является суммой masked token log-probabilities под одним и тем же prompt/template. Reference frozen. Параметр beta масштабирует предпочтение; он не является «процентом человечности». RLHF с reward model и policy optimization — другой pipeline: сводить весь alignment к одной формуле DPO нельзя.
Что показывает модель.
Модель показывает четыре sequence log-probabilities, две внутри-policy разности и итоговый margin. Простая вероятность chosen у policy недостаточна: objective оценивает относительное изменение против reference. Ties, disagreement annotators и position bias должны оставаться наблюдаемыми метаданными.
Граница применимости.
Preference не равна истине и может конфликтовать между пользователями. Pairwise dataset плохо покрывает редкие риски, а reward hacking возможен и без явного reward model. Offline improvement по preference loss не заменяет red-team, factual evaluation и мониторинг реального distribution shift.
from math import exp,log
policy_chosen_16e,policy_rejected_16e=-1.2,-2.0
ref_chosen_16e,ref_rejected_16e,beta_16e=-1.0,-1.5,0.5
margin_16e=(policy_chosen_16e-policy_rejected_16e)-(ref_chosen_16e-ref_rejected_16e)
pair_prob_16e=1/(1+exp(-beta_16e*margin_16e)); dpo_loss_16e=-log(pair_prob_16e)
assert abs(margin_16e-0.3)<1e-12 and abs(dpo_loss_16e-0.6209570477895321)<1e-12
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Pairwise loss подгоняется под наблюдённые chosen/rejected labels и frozen reference contract.
Небольшая добавка к большой таблице. Как этот вопрос продолжает полученный результат?
Python-примеры главы 16
Академическая база →