VKВлад КуликовОткрытые лекции
Современные LLM14 / 20

Модуль 14. Обучение по обратной связи: RLHF, DPO, RLOO и GRPO

Сначала попробуйте решить упражнение. Ответы, подробные решения и проектные ориентиры раскрываются отдельно и сохраняют своё состояние при переключении RU/EN.

Скачать файлы курса (.zip) 2588,1 КБ

Архив содержит файлы на обоих языках и вспомогательные материалы с сохранением структуры каталогов.

У1. Bradley–Terry и DPO вручную

Вычислите σ(Δ)\sigma(\Delta) для Δ∈{0.5,1,2,4}\Delta\in\{0.5,1,2,4\} и восстановите логит для доли побед 75%. Затем при β=0.1\beta=0.1 разберите две DPO-пары: политика имеет суммы логарифмов вероятностей (−12.0,−11.5)(-12.0,-11.5) в обеих парах; референс — (−13.0,−10.8)(-13.0,-10.8) для первой и (−12.8,−11.65)(-12.8,-11.65) для второй. Первым числом в каждой паре указан предпочтительный ответ.

Показать ответ и решение

Решение. Значения сигмоиды: 0.622459, 0.731059, 0.880797 и 0.982014. Обратный переход даёт logit⁡(0.75)=log⁡(0.75/0.25)=log⁡3=1.098612\operatorname{logit}(0.75)=\log(0.75/0.25)=\log3=1.098612.

В DPO сначала находим разности логарифмов вероятностей выбранного и отклонённого ответов. Для пары I разность для политики равна −12−(−11.5)=−0.5-12-(-11.5)=-0.5, разность для референса — −13−(−10.8)=−2.2-13-(-10.8)=-2.2. Их разность 1.7, поэтому z=β⋅1.7=0.17z=\beta\cdot1.7=0.17 и L=−log⁡σ(z)=0.611755L=-\log\sigma(z)=0.611755. Для пары II разность для референса равна −12.8−(−11.65)=−1.15-12.8-(-11.65)=-1.15; разность этих величин 0.65, z=0.065z=0.065, L=0.661175L=0.661175.

Знак производной важен: dL/dz=σ(z)−1dL/dz=\sigma(z)-1, поэтому значения равны −0.457602 и −0.483756. При β=0.5\beta=0.5 для пары I z=0.85z=0.85, L=0.355865L=0.355865, dL/dz=−0.299433dL/dz=-0.299433. Полный градиент по параметрам дополнительно содержит β\beta и производные логарифмов вероятностей.

У2. Группа GRPO и учебная память

Для наград [1,0,0,1,0,0,1,0] найдите нормированные преимущества с ddof=0 и вероятность вырожденной группы размера 8 при независимой вероятности успеха 0.3. Затем сравните постоянные состояния PPO и DPO для модели 8.03B при цене 16 байт на параметр для обучаемой сети и 2 байта для замороженной bf16-копии.

Показать ответ и решение

Решение. В группе три успеха из восьми, поэтому μ=3/8=0.375\mu=3/8=0.375 и стандартное отклонение совокупности σ=18∑i(ri−μ)2=0.484123\sigma=\sqrt{\frac18\sum_i(r_i-\mu)^2}=0.484123. Нормировка (ri−μ)/σ(r_i-\mu)/\sigma даёт успеху 1.290994, неуспеху −0.774597; сумма преимуществ равна нулю. Группа вырождена, если успешны все ответы или ни один: 0.38+(1−0.3)8=0.0577140.3^8+(1-0.3)^8=0.057714.

При 8.03B параметров постоянные состояния обучаемой модели занимают (8.03⋅109⋅16)/230≈119.656(8.03\cdot10^9\cdot16)/2^{30}\approx119.656 GiB, замороженная копия bf16 — (8.03⋅109⋅2)/230≈14.957(8.03\cdot10^9\cdot2)/2^{30}\approx14.957 GiB. В учебной анатомии PPO хранит две обучаемые сети (политику и критика) и две замороженные (референс и модель вознаграждения): 36⋅8.03⋅109/230≈269.22736\cdot8.03\cdot10^9/2^{30}\approx269.227 GiB. DPO хранит одну обучаемую политику и один замороженный референс: 18⋅8.03⋅109/230≈134.61318\cdot8.03\cdot10^9/2^{30}\approx134.613 GiB. Это оценка постоянных состояний без активаций и буферов генерации.

У3. Стоимость траекторий

Для 256 запросов, восьми ответов на запрос и 4000 токенов на ответ вычислите время генерации на восьми ускорителях по 209.4 токена/с. Сравните его с оценкой 6ND6ND для модели 8.03B при 990 TFLOP/s на ускоритель и MFU 0.4.

Показать ответ и решение

Решение. Объём генерации равен D=256⋅8⋅4000=8 192 000D=256\cdot8\cdot4000=8\,192\,000 токенов. Совокупная скорость восьми ускорителей — 8⋅209.4=1675.28\cdot209.4=1675.2 ток/с, поэтому генерация занимает D/1675.2=4890.2D/1675.2=4890.2 с = 81.50 минуты.

Оценка вычислений обучения:

C=6ND=6⋅8.03B⋅8.192M≈3.946⋅1017 FLOP.C=6ND=6\cdot8.03\text{B}\cdot8.192\text{M}\approx3.946\cdot10^{17}\ \text{FLOP}.

Эффективная производительность равна 8⋅990 TFLOP/s⋅0.4=3.168⋅10158\cdot990\text{ TFLOP/s}\cdot0.4=3.168\cdot10^{15} FLOP/s, откуда 124.6 с = 2.076 минуты. Отношение 81.502706/2.076444≈39.2581.502706/2.076444\approx39.25: в этом сценарии стоимость определяется авторегрессионной генерацией, которая превышает стоимость одного обучающего прохода. Это не универсальный коэффициент RLVR.

У4 [проект]

Вызовите run_dpo из ноутбука с β=0.1\beta=0.1 и β=0.5\beta=0.5, сохранив одинаковые пары и 140 обновлений. Сначала используйте нулевую инициализацию по умолчанию: эти запуски детерминированы. Затем задайте init_std=0.02 и повторите сравнение для seed 41, 42 и 43. Внутри каждого сравнения двух β\beta используйте один seed: начальные веса и скопированный из них референс должны совпадать.

Измеряйте начальную и конечную потерю, долю правильно упорядоченных обучающих пар, вероятность верного отложенного ответа и KL к референсу. Объясните, почему потери при разных β\beta нельзя напрямую читать как шкалу качества ответов, а большая доля верных пар ещё не определяет качество новых ответов. Дополнительный этап — открытая модель 0.5–3B: зафиксируйте шаблон и маски, добавьте распределение длин и ручной разбор 50 генераций.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный demo-notebook модуля 14, раздел «Демо 1». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.

У5 [проект]

Реализуйте GRPO-подобный цикл для задач с бинарной проверкой. Сравните три способа обработки групп с одинаковой наградой: исключение, нулевое преимущество и повторная генерация. Измерьте стоимость генерации, долю вырожденных групп и зависимость результата от числа ответов GG.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный demo-notebook модуля 14, раздел «Демо 2». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.