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

Модуль 9. Претрейн: данные, законы масштабирования, оптимизаторы

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

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

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

У1. Цена долгого обучения Llama-3 8B

Для эмпирической модели

L(N,D)=1.69+406.4N−0.34+410.7D−0.28L(N,D)=1.69+406.4N^{-0.34}+410.7D^{-0.28} и бюджета C=6NDC=6ND сравните сценарий N=8.03⋅109N=8.03\cdot10^9, D=15⋅1012D=15\cdot10^{12} с аналитически оптимальным распределением того же бюджета. Найдите оба значения функции потерь и разность ΔL\Delta L.

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

Решение. Бюджет сценария равен C=6⋅8.03⋅109⋅15⋅1012=7.227⋅1023C=6\cdot8.03\cdot10^9\cdot15\cdot10^{12}=7.227\cdot10^{23} FLOP, а L(8.03B,15T)=1.948310L(8.03\text{B},15\text{T})=1.948310. В оптимуме одновременно выполняются 6ND=C6ND=C и 0.34⋅406.4N−0.34=0.28⋅410.7D−0.280.34\cdot406.4N^{-0.34}=0.28\cdot410.7D^{-0.28}. Их решение даёт N∗=35.663BN^*=35.663\text{B}, D∗=3.377TD^*=3.377\text{T}, D∗/N∗=94.70D^*/N^*=94.70 и L∗=1.922505L^*=1.922505. Поэтому ΔL=L(8.03B,15T)−L(N∗,D∗)≈0.025804\Delta L=L(8.03\text{B},15\text{T})-L(N^*,D^*)\approx\mathbf{0.025804}. Разность вычислена до округления обоих значений функции потерь. Это не оценка качества реальной Llama 3, а арифметика внутри указанной аппроксимации. Полный воспроизводимый расчёт находится в module_09_notebook_pretrain.ipynb, раздел «1. Закон масштабирования и точное вычислительно-оптимальное разбиение».

У2. Точка окупаемости с учётом инференса

Модель 8.03B из У1 обучена за

7.227⋅10237.227\cdot10^{23} FLOP. Модель 70B достигает того же значения аппроксимированной функции потерь после меньшего претрейна. При оценке плотного декодирования как 2N2N FLOP на сгенерированный токен найдите число токенов T∗T^*, после которого меньшая модель становится выгоднее по совокупным вычислениям.

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

Решение. Из уравнения L(70B,D70)=1.948310L(70\text{B},D_{70})=1.948310 получаем D70=1.094026⋅1012D_{70}=1.094026\cdot10^{12} и C70=6⋅70B⋅D70=4.59491⋅1023C_{70}=6\cdot70\text{B}\cdot D_{70}=4.59491\cdot10^{23} FLOP. Экономия на обучении равна ΔC=2.63209⋅1023\Delta C=2.63209\cdot10^{23} FLOP. Каждый сгенерированный токен большой модели стоит дополнительно 2(70−8.03)B=1.2394⋅10112(70-8.03)\text{B}=1.2394\cdot10^{11} FLOP, поэтому

T∗=ΔC2(N70−N8)=2.63209⋅10231.2394⋅1011=2.12368⋅1012 токенов.T^*=\frac{\Delta C}{2(N_{70}-N_8)} =\frac{2.63209\cdot10^{23}}{1.2394\cdot10^{11}} =\mathbf{2.12368\cdot10^{12}}\ \text{токенов}.

До этого объёма выигрывает более дорогая при инференсе 70B-модель, после — 8.03B. Допущения и проверка находятся в ноутбуке, раздел «2. Точка окупаемости при одинаковом качестве и сценарий времени обучения».

У3. Память состояния и пузырь 1F1B

Для модели 7B примите 16 байт на параметр

(веса и градиенты в bf16, копия весов и два момента AdamW в fp32), 64 процесса и идеальный ZeRO-3. Затем посчитайте долю пузыря для восьми стадий конвейера при 32 и 128 микропакетах по f=(p−1)/(m+p−1)f=(p-1)/(m+p-1).

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

Решение. Без шардинга объём состояния одного процесса равен 7⋅109⋅16=112⋅1097\cdot10^9\cdot16=112\cdot10^9 B = 112 GB = 104.308 GiB. В идеальном ZeRO-3 всё состояние делится на 64: 1.75 GB = 1.630 GiB на процесс. Это нижняя граница без активаций, буферов, коммуникаций и фрагментации. Для конвейера: f(8,32)=7/39=0.17949=17.9%f(8,32)=7/39=0.17949=\mathbf{17.9\%} и f(8,128)=7/135=0.05185=5.2%f(8,128)=7/135=0.05185=\mathbf{5.2\%}; для доли строго ниже 5% нужно не менее 134 микропакетов. Полные таблицы и отрицательные тесты находятся в разделах «6. Объём состояния обучения» и «7. Пузырь конвейера» ноутбука.

У4 [проект]

Начните с восьми синтетических документов в «Демо 1». Для каждого документа объясните решение фильтра; посчитайте доли относительно исходного пула и относительно входа каждой стадии. Затем измените порядок фильтров и порог сходства: какие причины отсева и какие сохранённые документы изменились? Метки языка и качества в этом опыте заданы вручную. Необязательное расширение — небольшой фиксированный срез внешнего корпуса с проверенной лицензией, реальными классификаторами и журналом времени; 100 GB не требуются.

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

Демо к проектному упражнению: русскоязычный демонстрационный ноутбук модуля 9, раздел «Демо 1». В нём находится исходный опыт; задание предлагает изменить условия и объяснить результат.

У5 [проект]

В «Демо 2» на CPU сравните обычное обновление матрицы с обновлением двух её частей: временно соберите веса, усредните локальные градиенты и обновите принадлежащую каждому процессу часть. Проверьте совпадение после нескольких шагов. Отдельно составьте таблицу состояния условной модели 1B для ZeRO 0–3 на 1, 2 и 8 процессах при схеме 16 байт на параметр. Добавьте заданный буфер сборки и резерв активаций: почему деление всего объёма на число процессов перестаёт описывать пик памяти? Настоящий распределённый запуск не требуется.

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

Демо к проектному упражнению: русскоязычный демонстрационный ноутбук модуля 9, раздел «Демо 2». В нём находится исходный опыт; задание предлагает изменить условия и объяснить результат.