Scaling laws описывают гладкое улучшение loss при росте параметров, данных и вычислений. Они не говорят «больше всегда лучше»: при фиксированном бюджете модель и корпус надо увеличивать согласованно, а экстраполяция верна только внутри проверенного режима.

Линейка на логарифмической бумаге

Обучим модели разных размеров на сопоставимых данных. Validation loss часто приближается степенным законом:

L(N)=L+aNα,L(N)=L_\infty+aN^{-\alpha},

где NN — число параметров, LL_\infty — необратимая часть при данном распределении, α>0\alpha>0. После вычитания LL_\infty:

log(LL)=logaαlogN.\log(L-L_\infty)=\log a-\alpha\log N.

На log–log графике получается прямая с наклоном α-\alpha. Если α=0,08\alpha=0{,}08, увеличение NN в 10 раз уменьшает избыточный loss только в 100,081,2010^{0{,}08}\approx1{,}20 раза. Улучшение устойчиво, но отдача убывает.

Закон — эмпирическая аппроксимация серии экспериментов. Он не является теоремой о всех трансформерах и не предсказывает скачки конкретных способностей без отдельной проверки.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Одинаковые значения loss на линейных и логарифмических осях с fitted power law
Рис. 79.1. Степенной закон виден только после правильных осей

Слева точки кажутся быстро выходящими на плато. Справа после log–log преобразования лежат около прямой. Серой областью отмечен диапазон измерений, пунктиром — рискованная экстраполяция за него; LL_\infty показан отдельно.

Три ресурса: NN, DD, CC

NN — параметры, DD — обучающие токены, CC — вычисления. Для dense decoder грубая оценка training FLOPs:

C6ND.C\approx6ND.

Коэффициент зависит от архитектуры и реализации, но произведение объясняет ограничение. При фиксированном CC нельзя независимо увеличить и модель, и данные.

Совместную поверхность loss приближают, например,

L(N,D)=L+ANα+BDβ.L(N,D)=L_\infty+\frac{A}{N^\alpha}+\frac{B}{D^\beta}.

Малая модель недоиспользует большой корпус: capacity term велик. Огромная модель на малом корпусе многократно видит те же данные и ограничена data term. Минимум вдоль гиперболы ND=C/6ND=C/6 задаёт compute-optimal пару.

Из условия касания

Подставим D=C/(6N)D=C/(6N):

L(N)=L+ANα+B(6NC)β.L(N)=L_\infty+AN^{-\alpha} +B\left(\frac{6N}{C}\right)^\beta.

Первое слагаемое падает с NN, второе растёт, потому что токенов становится меньше. В оптимуме производные по масштабу уравновешиваются. Конкретные показатели зависят от fitted α,β\alpha,\beta.

Геометрически линии равного loss касаются линии бюджета. Увеличить NN при неизменном CC можно только двигаясь к меньшему DD.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Контурная карта loss по числу параметров и токенов с линиями постоянного compute
Рис. 79.2. Долина вычислительного бюджета

Обе оси логарифмические. Цвет показывает fitted loss, диагонали — бюджеты CC. Белые точки отмечают минимум на каждой диагонали и образуют compute-optimal ridge. Две точки с одинаковым CC по краям подписаны как under-sized и under-trained.

Что изменил результат Chinchilla

Ранние крупные модели часто были слишком велики относительно числа токенов. Работа Chinchilla показала на своих экспериментах, что при фиксированном training compute выгоднее уменьшить модель и дать ей больше данных, приблизительно масштабируя NN и DD вместе.

Это не вечная константа «20 токенов на параметр». Оптимум зависит от качества данных, повторов, архитектуры, оптимизатора и того, учитывается ли стоимость последующего инференса. Mixture из предыдущего урока меняет ценность одного токена.

Лаборатория бюджета

Параметры, токены и compute-optimal долина

Загружается живая иллюстрация…

Зафиксируйте бюджет и двигайте NN. Наблюдайте U-образный loss вдоль линии ND=constND=\mathrm{const}. Затем измените качество токена: data term сдвинется, и прежний optimum перестанет быть лучшим.

Добавьте цену инференса. Маленькая модель с большим DD дороже обучалась не обязательно, но дешевле обслуживает каждый запрос. При большом числе запросов deployment-optimal решение отличается от training-optimal.

Fit без самообмана

Чтобы оценить scaling law:

  1. спланировать сетку N,DN,D до обучения;
  2. держать токенизатор, данные, optimizer schedule и evaluation фиксированными;
  3. измерить несколько seed для малых шумных моделей;
  4. fit выполнять на validation loss;
  5. оставить крупнейшие конфигурации для проверки экстраполяции;
  6. показывать residual, а не только красивую прямую.

Обычная least squares в исходных координатах и в логарифмах задаёт разные веса ошибкам. LL_\infty трудно оценить по малому диапазону: неверное плато меняет наклон. Нужны интервалы параметров или bootstrap по запускам.

Loss и способность

Cross-entropy усредняет токены. Небольшое улучшение может сопровождаться резким ростом accuracy на задаче, если множество примеров пересекает порог правильного ответа. И наоборот, loss падает, а конкретное рассуждение не улучшается.

«Emergence» иногда усиливается дискретной метрикой. Если вместо exact match смотреть вероятность правильного ответа, переход может стать гладким. Поэтому для заявленного скачка строят несколько метрик и интервалы.

Perplexity зависит от токенизатора, поэтому между разными словарями лучше сравнивать bits per byte или downstream-задачи.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Вероятность правильного ответа и exact-match accuracy по масштабу модели
Рис. 79.3. Гладкая вероятность и ступенчатая accuracy

Верхняя кривая показывает плавный рост среднего probability правильного варианта. Нижняя exact-match пересекает порог выбора и выглядит скачком. Точки соответствуют тем же моделям; фигура объясняет, как метрика создаёт видимость emergence.

Качество и повтор токена

Миллиард неповторяющихся, чистых и соответствующих задаче токенов не равен миллиарду повторяющегося спама. Можно ввести effective data DeffD_{\mathrm{eff}}, но его нельзя наблюдать напрямую. Proxy — loss малой модели, доля дубликатов, domain performance.

Контрольный опыт прост: при одинаковом числе токенов замените часть качественного корпуса дубликатами. Если fitted exponent изменился, закон описывал не объём файлов, а полезную информацию обучающей смеси.

Повтор данных сначала полезен, затем отдача падает и memorization растёт. Синтетические данные могут повысить плотность решений, но наследуют ошибки генератора. Scaling law на одном corpus regime нельзя переносить на другой без новых точек.

Обучение спорит с инференсом

Полная стоимость системы:

Ctotal=Ctrain+QCinfer,C_{\mathrm{total}} =C_{\mathrm{train}}+Q\,C_{\mathrm{infer}},

где QQ — число запросов. Большая under-trained модель может быть плоха и по loss, и по обслуживанию. Но слишком долго обученная малая модель ограничена capacity на сложных задачах.

Distillation переносит поведение в меньшую модель; quantization уменьшает память и стоимость операций; speculative decoding ускоряет генерацию. Эти методы меняют deployment frontier и требуют отдельной проверки качества.

Мини-исследование: fit, который переживает скрытую точку

Сгенерируйте или соберите результаты 12 запусков на четырёх размерах. Спрячьте крупнейший размер до начала fit. Оцените L,a,αL_\infty,a,\alpha по остальным и получите prediction interval, пересэмплируя запуски bootstrap-ом. Затем откройте holdout и сравните не только точечную ошибку, но и попадание в интервал.

Повторите fit после удаления самого малого размера. Если α\alpha резко меняется, единый scaling regime сомнителен: маленькая модель могла быть optimization-limited или иметь другую архитектурную bottleneck. Нарисуйте residual против NN; систематическая дуга важнее высокого R2R^2.

Сравните три модели: степенной закон с LL_\infty, без плато и quadratic polynomial по logN\log N. Последний легко интерполирует и плохо экстраполирует. Выбор должен происходить по скрытым крупным точкам, а не по fit-error.

От loss к вычислительному решению

Допустим, увеличение training compute в 10 раз снижает loss на 0,03, но требует дополнительного месяца и делает inference вдвое дороже. Составьте decision table: ожидаемый downstream gain, цена обучения, число будущих запросов, latency и риск задержки.

Scaling law отвечает на условный вопрос «какой loss при таком режиме», но не выбирает продукт. Для малой аудитории может победить большая модель с коротким обучением; для миллиардов запросов — меньшая, обученная на большем DD или distillated. Это связь с оптимизацией нескольких критериев.

Добавьте uncertainty стоимости. Реальный throughput зависит от utilization, sequence length и отказов запуска. Вместо одного CC задайте диапазон и Monte Carlo по цене. Compute-optimal точка может сместиться, если большой run имеет риск не завершиться в срок.

В отчёте разделяйте measured FLOPs, оценённые FLOPs и wall-clock. Первое зависит от profiler, второе от формулы, третье включает ввод-вывод и простои. Смешение единиц делает красивую кривую непроверяемой.

Проверьте sensitivity optimum к uncertainty fit. Сэмплируйте (α,β,A,B)(\alpha,\beta,A,B) из интервалов и для каждого находите compute-optimal N,DN,D. Вместо одной точки получится распределение решений.

Если полоса широка, разумнее запустить несколько пилотов в разных областях, чем тратить весь бюджет по неустойчивому прогнозу. На графике показывайте median ridge и 80-процентный диапазон.

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

Закон работает внутри режима

Scaling law — инструмент планирования экспериментов. Он связывает параметры, токены и compute, показывает убывающую отдачу и помогает не выращивать модель без данных. Но fit требует контролируемой серии, residual-проверки и общего определения метрики. За пределами измеренного диапазона закон превращается в ставку.

Задачи