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

Модуль 6. Нормализация, активации и анатомия блока

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

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

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

У1. Точный бюджет блока

Для Llama-3.1-8B вычислите матричную и полную цену блока.

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

Решение. В GQA attention матрицы QQ и OO имеют размер d×dd\times d, а ширина K/V в четыре раза меньше: две K/V-матрицы дают 2d(d/4)=0.5d22d(d/4)=0.5d^2. Поэтому

Pattn=2d2+0.5d2=2.5d2.P_{\text{attn}}=2d^2+0.5d^2=2.5d^2.

SwiGLU содержит проекции gate, up и down. При dff=3.5dd_{ff}=3.5d это 3ddff=10.5d23dd_{ff}=10.5d^2. Итого матричная часть равна

Pmatrix=(2.5+10.5)d2=13⋅40962=218,103,808.P_{\text{matrix}}=(2.5+10.5)d^2=13\cdot4096^2=218{,}103{,}808.

Две RMSNorm добавляют по одному обучаемому масштабу на канал, то есть 2d=81922d=8192. Полный блок содержит 218 112 000 параметров. Смещений в рассматриваемой архитектуре нет.

У2. Роль ϵ\epsilon

Для RMS 10−310^{-3} сравните множители при ϵ=10−6\epsilon=10^{-6} и 10−510^{-5}.

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

Решение. RMSNorm делит на RMS⁡(x)2+ϵ\sqrt{\operatorname{RMS}(x)^2+\epsilon}. При RMS 10−310^{-3} квадрат сигнала равен 10−610^{-6}. Поэтому

g10−6=110−6+10−6≈707.1,g_{10^{-6}}=\frac1{\sqrt{10^{-6}+10^{-6}}}\approx707.1, g10−5=110−6+10−5≈301.5.g_{10^{-5}}=\frac1{\sqrt{10^{-6}+10^{-5}}}\approx301.5.

Увеличение ϵ\epsilon здесь более чем вдвое уменьшает усиление малого сигнала: стабилизатор уже сравним с его энергией и даже доминирует над ней. Поэтому выбирать ϵ\epsilon нужно по точности редукции и рабочим масштабам активаций, а не только по машинной точности формата.

У3. Ограничения в gpt-oss

Воспроизведите таблицу для z∈{−9,−2,0,2,7,9}z\in\{-9,-2,0,2,7,9\} и объясните, почему нижнее ограничение всё же меняет ветвь up.

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

Решение. Используем g=min⁡(z,7)g=\min(z,7), u=clip⁡(z,−7,7)u=\operatorname{clip}(z,-7,7) и

y=g σ(1.702g)(u+1).y=g\,\sigma(1.702g)(u+1).

zzgguuyy
-9-9-70.000012019
-2-2-20.064341377
0000
2225.806975869
77755.999625026
97755.999625026

Для z=−9z=-9 gate не ограничивается снизу и почти подавляется сигмоидой, но up всё равно заменяется на −7-7 и входит как (u+1)=−6(u+1)=-6; малость результата не означает, что ограничение не сработало. При z=7z=7 и 99 обе используемые ветви уже одинаковы, поэтому совпадают и выходы.

У4 [проект]

Сравните RMSNorm, DyT и DyISRU на одной малой языковой модели, используя одинаковые случайные инициализации, порядок данных, оптимизатор и сетку скоростей обучения. Не делайте вывод о масштабе 100B по одному малому запуску.

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

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

У5 [проект]

Сравните распределения логитов QK у двух открытых моделей с разными механизмами стабилизации Q/K. Зафиксируйте точный код модели и не объединяйте L2 QKNorm, RMSNorm для Q/K и soft-capping логитов в одну категорию.

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

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

У6. Масштаб и ось нормы

Почему одинаковый множитель Q/K не даёт точной инвариантности при фиксированном ϵ>0\epsilon>0? Чем отличается увеличение только одной головы при общей и покомпонентной по головам RMSNorm?

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

Решение. Для положительного множителя cc вынесем его из знаменателя:

cxc2mean⁡(x2)+ϵ=xmean⁡(x2)+ϵ/c2.\frac{cx}{\sqrt{c^2\operatorname{mean}(x^2)+\epsilon}} =\frac{x}{\sqrt{\operatorname{mean}(x^2)+\epsilon/c^2}}.

При фиксированном ϵ>0\epsilon>0 это другая нормировка. Например, при одном значении x=10−3x=10^{-3}, ϵ=10−6\epsilon=10^{-6} и единичном обучаемом масштабе получаем 1/2≈0.70711/\sqrt2\approx0.7071. Для 2x2x результат равен 2/5≈0.89442/\sqrt5\approx0.8944. Отличие заметно, потому что стабилизатор сравним с квадратом сигнала.

Если RMS считается по всем головам сразу, увеличение одной головы повышает общий знаменатель и меняет даже неизменённые головы. При отдельной нормировке каждой головы их знаменатели независимы. Ноутбук воспроизводит обе оси редукции; сначала предскажите, какие головы должны измениться.

У7. Дважды стохастическое смешивание

Проверьте пример A,XA,X из §12. Следует ли из единичных сумм строк и столбцов, что AX=XAX=X?

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

Решение. В матрице из §12 каждая строка и каждый столбец имеют сумму 0.75+0.25=10.75+0.25=1. Умножение даёт 0.75⋅2+0.25⋅6=30.75\cdot2+0.25\cdot6=3 в первой строке и 0.25⋅2+0.75⋅6=50.25\cdot2+0.75\cdot6=5 во второй. Поэтому AX=(3,5)⊤≠XAX=(3,5)^\top\ne X.

Неотрицательность и единичная сумма строки делают каждый выход выпуклой комбинацией входов: он остаётся между 2 и 6. Сам диапазон может сузиться — здесь он стал от 3 до 5. Единичные суммы столбцов дополнительно сохраняют сумму по потокам: 3+5=2+63+5=2+6. Ни одно из этих свойств не требует сохранять каждый поток отдельно. Для матрицы после конечного числа итераций Sinkhorn–Knopp сначала проверяют обе невязки сумм: тогда понятно, насколько точно применимы эти выводы.