Предобучение LLM: данные, compute, scaling laws и стоимость
20 моделей на GPU ноутбука: проверяем scaling law и оценку compute 6ND по реальному счётчику FLOP.
На этой странице
Глава 9 закончилась transformer-блоком, который обучается. Сложите несколько таких блоков, направьте next-token loss из главы 8 на выход — и изобретать больше нечего. Всё, что остаётся, — это покупка.
Это больший сдвиг, чем кажется. До сих пор каждая глава спрашивала: учится ли это? — вопрос «да или нет», который ноутбук решает за десять минут. Эта глава задаёт вопрос, в котором уже есть деньги: при фиксированном объёме арифметики какую лучшую модель я могу купить? Ответ — формула, и в 2018 году он не был очевиден никому.
Вот этот вопрос, отвеченный измерением на одном GPU ноутбука. Двадцать моделей, от 98 624 до 15 млн параметров, обучались с нуля на 174 млн token Wikipedia — vocabulary BPE на 2 048 token, обученный так, как в главе 7, и transformer из главы 9. Каждый запуск получил ровно один из трёх compute-бюджетов и ни одной операции сверх него, поэтому более крупная модель неизбежно читает меньше текста. Лучшая held-out loss на каждом бюджете:
budget C (FLOPs) best loss reached by a model of
1.00e13 5.3531 98,624 params
3.16e13 4.8638 98,624 params
1.00e14 4.3383 295,808 params
fitted: L = (Cc / C)^0.0913 over one decade of computeВ десять раз больше арифметики снижает loss на 19 %, а три точки ложатся на прямую в log-log. Ничто в первых девяти главах этого не предсказывает. За этим нет теоремы — это эмпирическая регулярность, которая с другим показателем держится на десяти порядках масштаба между этим ноутбуком и дата-центром, и именно это наблюдение убедило индустрию потратить ВВП небольшой страны на GPU.
Что такое pretraining и что в нём нового
Ссылка на раздел: Что такое pretraining и что в нём новогоЦелевая функция не меняется. Модель всё ещё предсказывает следующий token, loss всё ещё является cross-entropy из главы 4, применённой к факторизации главы 8, optimiser всё ещё AdamW из главы 6. Pretraining — не новый алгоритм; это тот же алгоритм, запущенный на корпусе настолько большом, что запуск приходится бюджетировать. Это возможно по двум причинам: метки бесплатны, поскольку target для позиции — это token в , уже присутствующий в тексте; а последний раздел главы 6 снял возражение, потому что модель с куда большим числом параметров, чем допускают классические правила, не разваливается, а улучшается. На выходе получается base model — то, что продолжает текст, а не отвечает.
Считаем compute до того, как его потратить: 6ND
Ссылка на раздел: Считаем compute до того, как его потратить: 6NDПрежде чем что-либо бюджетировать, это нужно посчитать, и область считает это одной формулой:
где — число параметров, — training tokens, а — общее число операций с плавающей точкой. Kaplan et al. выводят её в два шага.1 Forward: 2 FLOP на параметр на token, потому что каждый параметр в матричном умножении используется один раз на token — одно умножение и одно сложение. Backward: вдвое больше forward, потому что backward pass из главы 5 вычисляет два gradient на каждом слое — по входам слоя, чтобы сигнал продолжал идти, и по его весам; каждое — матричное умножение размера forward, так что .
Это весь вывод, и его стоит проверить, а не принимать на веру. В PyTorch есть реальный счётчик FLOP, torch.utils.flop_counter.FlopCounterMode: он перехватывает каждую операцию, которую запускает модель, и суммирует фактическую работу. Запустим его на четырёх порядках масштаба; крупнейший — на устройстве meta, которое выделяет формы, но не память:
from torch.utils.flop_counter import FlopCounterMode
counter = FlopCounterMode(display=False)
with counter:
loss = model(x, targets)[1]
loss.backward()
measured = counter.get_total_flops()
print(measured / (6 * n_params * n_tokens))| configuration | без embeddings | всего | измерено, fwd+bwd | ÷ (всего ) | ÷ (без emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 слоя, 256 | 788,736 | 7,254,400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 слоёв, 256 | 25,183,232 | 51,045,888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 слоёв, 1024 | 84,973,056 | 124,356,864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 слоёв, 1024 | 1,474,870,400 | 1,556,920,000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 слоя, 2048 | 6,442,983,424 | 6,582,444,032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 слоёв, 8192 | 64,427,147,264 | 65,544,929,280 | 3.75e15 | 1.163 | 1.183 | 3.000 |
Отношение forward+backward к forward равно 3.000 — точно, на каждом масштабе: это не приближение, которое случайно хорошо работает, а приведённое выше арифметическое тождество, возвращённое круглым числом счётчиком, который ничего не знает о выводе.
Измеренный итог оказывается на 3–17 % выше , когда включает матрицы embedding — и эта оговорка важна, потому что две основополагающие статьи считают по-разному. Kaplan исключает «all vocabulary and positional embeddings», потому что это «produces significantly cleaner scaling laws» (§1.3); Appendix F Chinchilla говорит: «we also count embeddings matrices in the total parameter count».2 Для широкого vocabulary и узкой hidden dimension разница — фактор девять, как показывает первая строка.
Оставшийся разрыв — то, что намеренно опускает: attention scores. Eq. (2.2) у Kaplan записывает forward cost как и отбрасывает второй член, потому что — безопасно в 2020-м, менее безопасно сейчас, и именно поэтому отношение растёт вместе с . Поэтому две строки здесь имеют общий 1 024, а отношение падает, с 1.145 до 1.100, когда растёт с 768 до 1 600. Это стоимость , которую ввела глава 9 и которую глава 16 превращает в цену.
Память: что на самом деле должно поместиться
Ссылка на раздел: Память: что на самом деле должно поместитьсяCompute решает, сколько продлится запуск; память решает, сможет ли он начаться. При обучении с обычным fp32 AdamW каждый параметр несёт четыре числа: вес, его gradient, а также скользящее среднее Adam и дисперсию — две средние величины, собранные вручную в главе 6. Четыре числа по четыре байта — это 16 байт на параметр, ещё до единой activation. Измерено на 8 GB GPU ноутбука, по resident allocation в точке шага, где графа уже нет:
| model | vocabulary | batch | прогноз | resident измерено | пик за шаг | разница | |
|---|---|---|---|---|---|---|---|
| 512, 8 слоёв | 50,257 | 8 | 51,045,888 | 779 MB | 801 MB | 2,500 MB | 1,699 MB |
| 512, 8 слоёв | 4,096 | 8 | 27,411,456 | 418 MB | 426 MB | 1,043 MB | 617 MB |
| 256, 6 слоёв | 4,096 | 8 | 5,839,360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 слоёв | 4,096 | 32 | 5,839,360 | 89 MB | 89 MB | 1,259 MB | 1,170 MB |
| 256, 6 слоёв | 4,096 | 128 | 5,839,360 | 89 MB | 89 MB | 4,771 MB | 4,681 MB |
Прогноз и измерение сходятся в пределах 3 %. Сюрприз — последний столбец: activations затмевают модель. Та же модель с 5.8 млн параметров, которой нужно 89 MB постоянного состояния, требует 4 681 MB activations при batch 128 — в 52 раза больше модели, и значительная часть этого вовсе не transformer. Это logits: по одному вектору размера vocabulary на token, четыре байта на элемент — 512 MB в последней строке, 393 MB в первой. Размер vocabulary был выбран в главе 7, и он всё ещё решает, что поместится на карте.
Какой член доминирует, зависит от формы запуска; поэтому Micikevicius et al. говорят, что память «is dominated by activations»,3 а ZeRO говорит, что модель с 1.5 млрд параметров требует «at least 24 GB» только для model states.4 ZeRO приходит к тем же 16 байтам другим путём — для fp16 weights, для fp16 gradients, каждое для fp32 master weights и двух моментов Adam. Для 70 млрд параметров это 1.12 TB — четырнадцать GPU по 80 GB ещё до единой activation.
Parallelism, в одном абзаце и одной передаче дела
Ссылка на раздел: Parallelism, в одном абзаце и одной передаче делаНа frontier scale всё это не помещается на одном устройстве, поэтому запуск делят сразу четырьмя способами. Data parallelism кладёт копию модели на каждый GPU и усредняет gradients — это стандарт, а ZeRO улучшает его, отказываясь хранить лишние копии состояния optimiser. Tensor parallelism делит отдельные матрицы между устройствами. Pipeline parallelism отдаёт каждому устройству непрерывную группу слоёв. Context parallelism делит саму последовательность; это нужно только когда достаточно велико, чтобы член attention начал доминировать. Table 4 Llama 3 перечисляет все четыре сразу: tensor 8, context до 16, pipeline 16, data до 128, на 16 384 GPU H100.5 На этом курс остановится: инженерия distributed training — отдельный семестр, и Stanford CS336 как раз этот семестр, лекции 5–8, с кодом.6 После передачи дела остаётся одно число — model FLOPs utilisation, доля пиковой арифметики GPU, которой достигает реальный запуск; именно оно превращает аккуратное во wall-clock time и значит в деньги.
Kaplan и ставка, которую сделала индустрия
Ссылка на раздел: Kaplan и ставка, которую сделала индустрияВ январе 2020 года Kaplan et al. обучили сетку transformers и обнаружили, что test loss следует power law по каждому из трёх ресурсов на более чем шести порядках масштаба.1 В §1.2 приведены три fitted laws:
с сопутствующими для данных и для оптимально распределённого compute. Константы не универсальны, и статья прямо говорит об этом: «the precise numerical values of , and depend on the vocabulary size and tokenization and hence do not have a fundamental meaning».
Показатели крошечные: десятикратный рост параметров покупает фактор от оставшегося loss. Звучит почти как ничто, и это самый важный факт здесь — отдача ужасна и никогда не прекращается. Power law с малым показателем обещает, что следующий порядок масштаба поможет — меньше, чем предыдущий, но всегда. Покупка compute перестаёт быть азартной ставкой и становится покупкой с опубликованным обменным курсом — именно этот аргумент и открыл капитал.
Затем появилась рекомендация, и именно здесь статья ошиблась так, что это стоило индустрии больших денег. Table 6 Kaplan даёт и : в десять раз больше compute означает модель в 5.4 раза больше, которой дают лишь в 1.9 раза больше текста. Аннотация формулирует прямо: «optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence». Область так и сделала: GPT-3 — 175 млрд параметров на 300 млрд token,7 Gopher — 280 млрд на 300 млрд, Megatron-Turing NLG — 530 млрд на 270 млрд.2 От половины token до двух token на параметр — повсеместно.
Chinchilla и что измерял sweep выше
Ссылка на раздел: Chinchilla и что измерял sweep вышеВ марте 2022 года Hoffmann et al. обучили более 400 моделей от 70 млн до 16 млрд параметров и тремя независимыми путями пришли к противоположному выводу.2 Их Table 2 сообщает показатель в как 0.50, 0.49 и 0.46 против 0.73 у Kaplan. Простыми словами: размер модели и training data должны расти в равной пропорции.
Их второй подход — тот, который воспроизведён sweep в начале этой главы в масштабе одной миллионной: зафиксировать бюджет, обучить много размеров ровно на этом бюджете и построить final loss против размера модели.
| parameters | |||
|---|---|---|---|
| 98,624 | 5.3531 (171) | 4.8638 (542) | — |
| 150,320 | 5.4636 (74) | — | — |
| 194,208 | 5.5041 (44) | 4.8730 (140) | 4.4040 (442) |
| 295,808 | 5.5550 (19) | 4.9029 (60) | 4.3383 (190) |
| 665,280 | 5.7849 (3.8) | 5.1254 (12) | 4.4192 (38) |
| 1,280,768 | 5.8174 (1.0) | 5.1751 (3.2) | 4.5003 (10) |
| 3,101,568 | — | 5.4686 (0.5) | 4.7768 (1.7) |
| 5,315,072 | — | 5.5894 (0.2) | 4.8514 (0.6) |
| 15,053,568 | — | — | 5.3534 (0.1) |
Held-out loss в nats per token, token на параметр в скобках, жирным — лучшая модель на каждом бюджете; тире означает точку, которую не запускали, потому что бюджет требовал больше текста, чем есть в корпусе, или размер не входил в sweep.
Читайте столбец вниз: loss падает, достигает минимума и снова растёт. Модель может быть слишком большой для своего бюджета ровно так же легко, как слишком маленькой — при штраф за выбор 665 280 параметров вместо 295 808 равен 0.08 nats, что на fitted envelope выше соответствует loss, которого правильно выбранная модель достигает с 18 % меньшим compute. Неверная форма выбрасывает пятую часть бюджета. Это Figure 3 Chinchilla за один день на одном GPU вместо четырёхсот моделей.
Теперь читайте по строкам. При лучшая модель — самая маленькая в sweep; при это 295 808 параметров, окружённая точками с обеих сторон. Оптимум сдвигается вправо по мере роста бюджета — в этом всё содержание исправления. Подгоните третий подход статьи — поверхность по всем запускам — и минимизируйте при условии :
L(N, D) = 24.7 / N^0.195 + 46.8 / D^0.169 (E fits to ~0; see below)
implied N_opt ∝ C^0.464
compare Chinchilla 0.46-0.50 · Besiroglu 0.513 · Kaplan 0.730.46, с ноутбука, против 0.73 у Kaplan. Совпадение до трёх знаков при fit по трём бюджетам — удача; совпадение до первого — нет. Показатель переносится, константа — нет: token-to-parameter ratio в этих optimum составляет 170–540, а не 20. Три причины, и все полезны. подгоняется к нулю, потому что при loss выше 4 nats запуск далёк от entropy floor, доминирующего в fit Chinchilla. Batch size и learning rate были фиксированы, а не настроены для каждой точки, что ухудшает те запуски, у которых меньше всего шагов, — крупные модели: при FLOPs модель на 1.28 млн параметров получает всего 159 шагов optimiser, намного меньше нескольких тысяч, которые член у Kaplan считает необходимыми для любой модели. Scaling law подгоняется внутри режима, и этот режим на шесть порядков ниже Chinchilla.
Отсюда аннотация статьи: «current large language models are significantly undertrained». Chinchilla — демонстрация: 70 млрд параметров на 1.4 трлн token, тот же total compute, что у Gopher 280 млрд на 300 млрд, и лучше результат на 51 из 57 задач MMLU: 67.5 % против 60 %.2 В четыре раза меньше, в четыре с половиной раза больше текста, те же деньги, лучшая модель.
Две оговорки о знаменитом ratio. «Двадцать token на параметр» — не фраза из статьи: там сказано только, что «for every doubling of model size the number of training tokens should also be doubled»; 20 — вывод из Table 3 и из собственной Chinchilla 70 B на 1.4 T. И точность хуже опубликованной: Besiroglu et al. заново fit по digitisation Figure 4, нашли, что исходные параметры «fit the reconstructed data poorly» с интервалами «implausibly tight given the number of data points», и честный диапазон — «between 4 and 40» token на параметр.8
Одна деталь метода Chinchilla выполняет обещание, данное главой 1 о learning-rate schedules. Cosine schedule должен соответствовать token-бюджету. Модель, которая увидит 10 млн token, должна свести learning rate к нулю на 10 млн token; дайте ей schedule на 100 млн, остановите рано — и вы читаете loss посреди спуска при слишком высокой ставке. Chinchilla обучает каждую модель на четырёх длинах цикла именно для контроля этого эффекта; sweep выше задаёт schedule из бюджета по той же причине.
Чего scaling laws не обещают
Ссылка на раздел: Чего scaling laws не обещаютЭто самый полезный эмпирический результат в области, и его регулярно продают слишком широко. Четыре ограничения.
Они предсказывают loss, а не capability. Левая часть — cross-entropy на held-out text. Ничто в этих статьях не даёт права утверждать, будет ли модель писать корректный SQL, отказываться от вредного запроса или использовать tool. Это снова урок главы 5: prediction of the loss — не prediction поведения, за которое вы платите.
Они подогнаны, а не выведены. Никакая теория не производит . Константы меняются вместе с tokenizer — поэтому сравнение perplexity между двумя tokenizers бессмысленно, как объясняла глава 8, — а также с data mixture, architecture и optimiser. Каждый опубликованный закон — закон той установки, которая его породила, поэтому Meta заново fit свой перед Llama 3.5
Они предполагают новый token на каждом шаге, то есть молча предполагают бесконечный корпус. Muennighoff et al. измерили, что происходит, когда он заканчивается: до четырёх epochs повторённых данных почти ничего не стоят — модель на 8.7 млрд параметров на 44 млрд unique token, увиденных четыре раза, закончила «only 0.5 % higher validation loss», чем та же модель на 178 млрд unique token, — а после примерно шестнадцати epochs дополнительный compute уже ничего не покупает.9
И никто больше не обучает compute-optimal. Chinchilla минимизирует стоимость training; deployed model затем платит примерно FLOPs за generated token, всегда. LLaMA 1 сказала прямо: «given a target level of performance, the preferred model is not the fastest to train but the fastest at inference».10 Sardana et al. формализовали это, минимизируя вместо этого , и нашли, что при ожидании миллиарда запросов нужно обучать «smaller and longer than Chinchilla-optimal».11 §9.1 Llama 3 согласен: малые модели обучаются «far beyond the point of compute optimal training, effectively trading training compute for inference efficiency».5 Ratio не устарел; он отвечает на вопрос, который больше не является тем, что задают.
Emergent abilities и спор о том, реальны ли они
Ссылка на раздел: Emergent abilities и спор о том, реальны ли ониLoss падает гладко. Benchmark scores иногда нет. Wei et al. собрали случаи, где задача держится на уровне угадывания через порядки training compute, а затем прыгает: трёхзначная арифметика появляется в GPT-3 примерно при FLOPs, MMLU поднимается выше угадывания между и — и дали паттерну имя: «an ability is emergent if it is not present in smaller models but is present in larger models».12 Если это реальное свойство, экстраполировать из дешёвых экспериментов опасно, потому что capability, которую вы покупаете, может не существовать ни на каком масштабе, который вы можете позволить себе протестировать.
Schaeffer, Miranda and Koyejo утверждали, что большая часть этого — артефакт измерения, и механизм арифметический.13 Per-token loss падает гладко, значит вероятность того, что один token верен, , улучшается постепенно. Оцените модель через exact string match на ответе длиной token — и вы возводите эту вероятность в степень : гладкая кривая в большой степени выглядит как обрыв. Замените метрику на ту, что считает token вместо требования совпасть целиком, на тех же outputs, и «the family's performance smoothly, continuously and predictably improves with increasing scale».
Их audit — число, которое стоит запомнить: «of the 39 preferred metrics in BIG-Bench, at most 5 display emergence», причём две discontinuous metrics объясняют более 92 % заявленных случаев. Стоит помнить и их осторожность: «nothing in this paper should be interpreted as claiming that large language models cannot display emergent abilities». Прыжок на графике — свидетельство о метрике, пока не доказано иное. Глава 29 — место, где это станет вашей проблемой, потому что выбор hard-cutoff metric — решение, которое вы примете, не заметив.
Откуда берутся данные
Ссылка на раздел: Откуда берутся данныеКорпус — часть pretraining run, к которой не прилагается уравнение, и именно там живёт большинство существенных решений. Сырьё — web crawl: архив Common Crawl за август 2026 года содержит «2.14 billion web pages or 360 TiB of uncompressed content», один месяц, бесплатно для скачивания.14 Почти ничто не пригодно как есть. В статье T5 говорится, что crawl «largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text», а предложенный там pipeline C4 — список грубых эвристик: оставить только строки, заканчивающиеся терминальной пунктуацией, выбросить страницы с менее чем тремя предложениями, выбросить любую страницу с фигурной скобкой или словом из публичного списка непристойностей; так двадцать терабайт ежемесячного текста превращаются примерно в 750 GB.15
«Грубые» — правильное слово. Dodge et al. проверили, что удаляют эти фильтры, и нашли: blocklist непристойностей удаляет 42 % документов на African-American English и 32 % на Hispanic-aligned English против 6.2 % White-aligned English, оставляя корпус на 97.8 % из последней категории.16 Правило без мнения о dialect получило его.
Затем deduplication, и это не уборка: Lee et al. нашли в C4 предложение из 61 слова, повторённое 61 036 раз, и показали, что deduplication снижает частоту, с которой модели «emit memorized text», в десять раз — с 1.9 % generated tokens до 0.19 %.17 Но больше не значит лучше: команда FineWeb провела global deduplication по 96 crawls, получила 4 трлн token и без измеримого выигрыша, затем deduplicate каждый crawl отдельно, получила 20 трлн и сравнялась с лучшим существующим корпусом.18
Затем contamination. Llama 3 измерила собственную и опубликовала: 98 % AGIEval, 95 % BIG-Bench Hard и 85 % HellaSwag пересекаются с training set по 8-grams, а для MMLU overlap настолько высок, что «it is impossible to get a good performance gain estimate».5 §4 GPT-3 сообщает о баге фильтрации, который оставил benchmarks в данных без возможности отката: «because of cost considerations it was infeasible to retrain the model».7
Provenance остаётся нерешённой частью. The Pile поставлял компонент 100.96 GiB под названием Books3 — 12 % корпуса и, по собственной таблице согласия статьи, книги из private torrent tracker;19 его сняли с доступа в августе 2023 года после copyright complaint. Правовая позиция на сентябрь 2026 года не урегулирована, и три судебных решения США, часто цитируемые как тренд, расходятся. Alsup признал training на законно приобретённых книгах «exceedingly transformative», но счёл библиотеку из пиратских копий недопустимой, и Anthropic урегулировала эту половину за $1.5 billion по 482 460 произведениям, примерно $3 000 за каждое, утверждено 20 июля 2026 года.20 Chhabria удовлетворил summary judgment для Meta, одновременно написав, что его решение «does not stand for the proposition that Meta's use of copyrighted materials to train its language models is lawful», а лишь что «these plaintiffs made the wrong arguments».21 Bibas, решая против Ross Intelligence, отметил, что «only non-generative AI is before me today».22 Ни один appellate court США не решил этот вопрос.
Люди делают те части, которые loss не может. TIME сообщила в январе 2023 года, что работники, размечавшие toxic text для OpenAI через фирму Sama, получали «between around $1.32 and $2 per hour», читая фрагменты о сексуальном насилии над детьми, пытках и самоповреждении, тогда как OpenAI платила Sama $12.50 в час за эту работу; Sama оспаривает и диапазон оплаты, и квоту.23 Это фильтрация вокруг pretraining, а не сам pretraining — но она в том же счёте, и именно там сидит человек.
Электричество реально, и его обычно цитируют неверно. Самая аккуратная опубликованная цифра — BLOOM: 1 082 990 GPU-hours, 433 MWh и 24.7 tonnes CO₂ equivalent за запуск, 50.5 с учётом производства и простаивающих узлов;24 Patterson et al. оценивают GPT-3 в 1 287 MWh и 552 tonnes.25 Две оговорки. Преимущество BLOOM — французская атомная сеть с 57 g CO₂/kWh, а не эффективность: энергии он использовал больше, чем OPT-175B. И самая цитируемая в области цифра emissions, 626 155 lb у Strubell et al. для neural architecture search, позже оказалась в 88 раз завышенной, потому что предполагалось, что поиск шёл в полном размере модели, хотя он шёл на proxy.26 Формулировка LBNL защищаемая: data centres США использовали 192 TWh в 2024 году, 4.7 % национального электричества — число, привязанное к индустрии, а не к одному запуску.27
Сквозная линия — то, что Bender et al. назвали documentation debt: «putting ourselves in a situation where the datasets are both undocumented and too large to document post hoc».28 Каждый факт выше существует потому, что кто-то посмотрел. Для корпусов за моделями, которыми пользуется большинство людей, никто не может.
Сколько это на самом деле стоит
Ссылка на раздел: Сколько это на самом деле стоитТеперь арифметика, которую все хотят, из четырёх цитируемых входов, чтобы, когда они устареют, было ясно, что заменить.
Peak throughput
Ссылка на раздел: Peak throughputСтраница NVIDIA H100 указывает 1 979 teraFLOPS BF16 tensor-core throughput с примечанием «with sparsity».29 Ни один pretraining run не использует structured sparsity, поэтому dense figure — половина: 989.5 TFLOP/s.
Utilisation
Ссылка на раздел: UtilisationTable 4 Llama 3 сообщает 38–43 % BF16 model FLOPs utilisation. Возьмём 40 %: 395.8 TFLOP/s полезной арифметики на GPU.5
On-demand цена Lambda для узла 8×H100 SXM, доступ 2026-09-06: $3.99 per GPU-hour, то есть $31.92 в час за узел.30
Ratio Chinchilla, , даёт и потому .
| budget | H100-hours | FLOPs | compute-optimal params | tokens | на одном узле 8×H100 | GPU, чтобы закончить за 90 дней |
|---|---|---|---|---|---|---|
| $100 | 25 | 3.6e19 | 546 M | 10.9 B | 3.1 h | 1 |
| $1,000 | 251 | 3.6e20 | 1.73 B | 34.5 B | 31.3 h | 1 |
| $10,000 | 2,506 | 3.6e21 | 5.46 B | 109 B | 13 дней | 2 |
| $100,000 | 25,063 | 3.6e22 | 17.3 B | 345 B | 131 день | 12 |
| $1,000,000 | 250,627 | 3.6e23 | 54.6 B | 1.09 T | 4 года | 116 |
| $10,000,000 | 2,506,266 | 3.6e24 | 173 B | 3.45 T | 36 лет | 1,160 |
| $100,000,000 | 25,062,657 | 3.6e25 | 546 B | 10.9 T | 358 лет | 11,603 |
Читайте два последних столбца вместе. За $10 000 вы получаете модель на 5 млрд параметров на одном арендованном узле за две недели. При $100 000 000 арифметика говорит о 546 млрд параметров — и о двенадцати тысячах H100, соединённых на три месяца, что не арендуют кредитной картой. После примерно $100 000 ограничением становится уже не деньги, а cluster.
Прежде чем доверять такой таблице, проверьте её на запусках, реальная стоимость которых опубликована — llm.c воспроизводит GPT-2 124M за «~90 minutes» на узле 8×A100 «for about $20» и GPT-2 1.6B за 24 часа на узле 8×H100 за $672.31
$672, against what $672 actually bought (llm.c GPT-2 1.6B, one 8xH100 node, 24 h)
this table predicts: 168 H100-hours N = 1.41 B params D = 28.3 B tokens
what was actually run: 192 H100-hours N = 1.558 B params D = 33.6 B tokens
Llama 3 405B, against Meta's own published GPU-hours
from the paper's 3.8e25 FLOPs at 40 % MFU: 26.67 M H100-hours
published in Meta's Llama 3.1 model card: 30.84 M H100-hours ratio 0.86Оба в пределах примерно 15 %, а это приблизительно та точность, которой заслуживает оценка такого рода, и намного лучше точности, с которой её обычно цитируют.
Главное сравнение, с обеими дефинициями на столе
Ссылка на раздел: Главное сравнение, с обеими дефинициями на столеСамая повторяемая цифра в этой теме: модель класса GPT-2, стоившая около $43 000 в 2019 году, сегодня воспроизводится за несколько десятков долларов. Современная половина хорошо документирована; историческая — нет.
Сегодня. README nanochat Karpathy: «you can train your own GPT-2 capability LLM ... for only $48 (~2 hours of 8XH100 GPU node) ... On a spot instance, the total cost can be closer to ~$15».32 «GPT-2 capability» здесь определено точно и опубликовано — обгон CORE score GPT-2 0.256525 — на leaderboard, лучшая запись которого на 14 марта 2026 года составляет 1.65 часа. $48 предполагают $3 per GPU-hour, ниже прайса Lambda $3.99; по прайсу ближе к $64.
В 2019 году. Первичного источника нет: OpenAI никогда не публиковала длительность или стоимость. Цепочка такая: The Register, февраль 2019, сообщает «256 Google TPU3 cores» без цены и длительности; затем Synced, июнь 2019, отмечает, что hardware cost составляет $256 в час в Google Cloud, и прямо говорит, что «OpenAI didn't specify the training duration». $43 008 — это $256 в час, умноженные на предполагаемые 168 часов, для которых никто никогда не привёл источник.
Так что честный headline таков: модель, совпадающая с опубликованным benchmark score GPT-2, сегодня можно обучить значительно дешевле $100 на арендованном hardware, против стоимости 2019 года, которая никогда не публиковалась и чья знаменитая оценка держится на неподтверждённой догадке о длительности. Обвал реален, и современную половину может воспроизвести любой с кредитной картой; ratio — арифметика на числе, которого не существует. Таково состояние опубликованных training costs в целом. Статья GPT-3 не содержит суммы в долларах вообще, только FLOPs в Table D.1;7 статья Llama 3 тоже не содержит.5 Любая training cost, которую вы читали, — оценка из FLOP count, hardware assumption и price assumption; всегда стоит спрашивать — чьих.
Что знает base model и когда она перестала это знать
Ссылка на раздел: Что знает base model и когда она перестала это знатьНа выходе модель, видевшая фиксированный корпус, собранный в фиксированный момент, и из этого следуют два свойства.
Первое — knowledge cutoff. После даты сбора модель не знает ничего — не «не уверена», а ничего — и будет бегло выдумывать вместо того, чтобы сказать об этом, потому что такое поведение её никогда не учили демонстрировать. Model card Llama 3.1 указывает декабрь 2023 года;33 у каждой модели есть такой cutoff, и это свойство training data, а не deployment. Обход этого — retrieval problem, то есть глава 19.
Второе — base model дополняет, а не отвечает. Дайте ей «What is the capital of France?» — и правдоподобным продолжением будет ещё один вопрос, потому что в корпусе такая строка чаще всего встречается в списке упражнений.
Куда дальше
Ссылка на раздел: Куда дальшеТекстовый продолжатель — не assistant. Он не следует инструкциям, потому что ничто в корпусе не говорило ему, что просьбу нужно выполнять, а не продолжать. У него нет понятия разговора с двумя участниками. Он с радостью произведёт наиболее вероятное продолжение вредного prompt, потому что probable — единственное, под что его когда-либо оптимизировали.
Чтобы превратить его в то, что отвечает, нужна вторая стадия стоимостью доли процента первой; она почти целиком состоит из показа примеров нужного поведения и сравнения пар собственных outputs модели. Именно на этой стадии появляются instruction following, chat templates, refusals и — это удивляет людей — способность вызвать tool. Глава 11 — про эту стадию: supervised fine-tuning, RLHF, DPO и GRPO, а также вопрос о том, что значит «aligned» и кто решает.
Источники и метод
Ссылка на раздел: Источники и методТакже стоит читать вместе с этой главой: build-nanogpt Karpathy и сопроводительное видео, где полное воспроизведение GPT-2 проходится от начала до конца в темпе, невозможном для этой главы; и Stanford CS324, Large Language Models, чьи лекции о data и environmental impact глубже разбирают материал, который этот курс рассматривает один раз и делегирует.
Сноски
Ссылка на раздел: Сноски-
Kaplan, J., McCandlish, S., Henighan, T., Brown, T. B., Chess, B., Child, R., Gray, S., Radford, A., Wu, J. and Amodei, D. Scaling Laws for Neural Language Models. arXiv:2001.08361 (2020). Три power laws — Eqs. (1.1)–(1.3) в §1.2, полные константы — Appendix A, Table 5; вывод — §2.1; показатели распределения compute — Table 6. Обратите внимание: есть два compute laws, при fixed batch size и при optimal batch size; статья говорит, что последний «should be used to make predictions». ↩ ↩2
-
Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E. et al. Training Compute-Optimal Large Language Models. arXiv:2203.15556 (2022). Показатели — Table 2, projected budgets — Table 3, сравнение с Gopher — §4, соглашение о подсчёте параметров — Appendix F. Текст под Table 3 расходится с самой Table 3 для строк 175 B и 280 B; цитировать следует таблицу. ↩ ↩2 ↩3 ↩4
-
Micikevicius, P., Narang, S., Alben, J., Diamos, G., Elsen, E., Garcia, D. et al. Mixed Precision Training. arXiv:1710.03740 (2017), ICLR 2018. FP32 master weights — §3.1, loss scaling — §3.2. ↩ ↩2
-
Rajbhandari, S., Rajbhandari, S., Ruwase, O. and He, Y. ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. arXiv:1910.02054 (2019), SC20. Учёт — §3.1; residual-state figures для activations — §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Compute budget и token count — §1, refitted scaling law — §3.2.1, parallelism configuration и MFU — Table 4, contamination analysis — §5.1.4, over-training statement — §9.1. Статья не содержит dollar figures и emissions table. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Stanford CS336, Language Modeling from Scratch. Lecture 2 покрывает resource accounting, lectures 5–8 — GPUs, kernels and parallelism, lectures 9 and 11 — scaling, lectures 13–14 — data. Это курс, которому эта глава делегирует инженерию, и он публичный. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Compute — Appendix D, Table D.1, где столбец буквально называется «flops per param per token», и значение для каждой строки GPT-3 равно 6. Contamination analysis — §4. ↩ ↩2 ↩3
-
Besiroglu, T., Erdil, E., Barnett, M. and You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Восстанавливает данные Chinchilla через digitising Figure 4, заново fit и сообщает исправленные показатели и гораздо более широкие интервалы. ↩
-
Muennighoff, N., Rush, A. M., Barak, B., Le Scao, T., Piktus, A., Tazi, N., Pyysalo, S., Wolf, T. and Raffel, C. Scaling Data-Constrained Language Models. arXiv:2305.16264 (2023), NeurIPS 2023. Результат четырёх epochs — §6; half-life шестнадцати epochs — fitted . ↩
-
Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M.-A., Lacroix, T. et al. LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971 (2023). §1 формулирует аргумент inference-cost против Chinchilla-optimal training. ↩
-
Sardana, N., Portes, J., Doubov, S. and Frankle, J. Beyond Chinchilla-Optimal: Accounting for Inference in Language Model Scaling Laws. arXiv:2401.00448 (2023), ICML 2024. В §5 есть и противовес: модели, обученные при extreme token ratios, продолжают улучшаться, но «more slowly than scaling laws predict». ↩
-
Wei, J., Tay, Y., Bommasani, R., Raffel, C., Zoph, B., Borgeaud, S. et al. Emergent Abilities of Large Language Models. arXiv:2206.07682 (2022), TMLR. Определение — §2, примеры и compute thresholds — §3–4 и Table 1. ↩
-
Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023), NeurIPS 2023 outstanding paper. Аргумент о метриках — §2, meta-analysis BIG-Bench — §4, constructed vision example — §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), published 24 August 2026, accessed 2026-09-06. Собственная главная страница заявляет «over 300 billion pages spanning 15 years», «totalling more than 10 petabytes» — это число для всего архива, а не для месячного crawl, оцененного здесь. ↩
-
Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., Zhou, Y., Li, W. and Liu, P. J. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683 (2019), JMLR 21(140). Фильтры C4 — §2.2. Статья даёт размеры в bytes, не token; цифра 156 млрд token, которую часто ей приписывают, взята из Dodge et al. ниже. ↩
-
Dodge, J., Sap, M., Marasović, A., Agnew, W., Ilharco, G., Groeneveld, D., Mitchell, M. and Gardner, M. Documenting Large Webtext Corpora: A Case Study on the Colossal Clean Crawled Corpus. arXiv:2104.08758 (2021), EMNLP 2021. Dialect removal rates — §5.3; benchmark contamination в C4 — §4.2. ↩
-
Lee, K., Ippolito, D., Nystrom, A., Zhang, C., Eck, D., Callison-Burch, C. and Carlini, N. Deduplicating Training Data Makes Language Models Better. arXiv:2107.06499 (2021), ACL 2022. 61 036 повторов — footnote 1; memorisation figures — §6.2, Table 4, проценты generated tokens при критерии 50-token exact-match. ↩
-
Penedo, G., Kydlíček, H., Ben Allal, L., Lozhkov, A., Mitchell, M., Raffel, C., Von Werra, L. and Wolf, T. The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale. arXiv:2406.17557 (2024), NeurIPS 2024 Datasets and Benchmarks. Результат deduplication — §3.4. Выпущенный dataset с тех пор вырос за пределы 15 трлн token из статьи. ↩
-
Gao, L., Biderman, S., Black, S. et al. The Pile: An 800GB Dataset of Diverse Text for Language Modeling. arXiv:2101.00027 (2020). Books3 — §2.3 и Table 1; consent table — Table 5. Корпус имеет 825.18 GiB, так что даже title округляет вниз. ↩
-
Bartz v. Anthropic, No. 4:24-cv-05417 (N.D. Cal.). Fair-use order 23 June 2025 (Dkt. 231); class certification 17 July 2025; final approval and judgment 20 July 2026 (Dkt. 680). Settlement освобождает только past inputs, не outputs и не future conduct. ↩
-
Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), summary judgment 25 June 2025 (Dkt. 598). Обратите внимание: distribution claim по torrenting не был решён и остаётся live. ↩
-
Thomson Reuters v. ROSS Intelligence, No. 1:20-cv-00613-SB (D. Del.), revised opinion 11 February 2025 (Dkt. 770), Bibas J. On interlocutory appeal to the Third Circuit (No. 25-2153), argued 11 June 2026, на момент написания решения нет. ↩
-
Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 January 2023. $2 — потолок для senior reviewers, выполнивших все targets; junior labellers, большинство, получали $1.32. Опровержение Sama, процитированное в той же статье, даёт $1.46–$3.74 и меньшую quota. ↩
-
Luccioni, A. S., Viguier, S. and Ligozat, A.-L. Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model. arXiv:2211.02001 (2022), JMLR 24(253). Tables 1 and 3. ↩
-
Patterson, D., Gonzalez, J., Le, Q., Liang, C., Munguia, L.-M., Rothchild, D., So, D., Texier, M. and Dean, J. Carbon Emissions and Large Neural Network Training. arXiv:2104.10350 (2021). Цифры GPT-3 — Table 4; correction оценки NAS — §4.1. ↩
-
Strubell, E., Ganesh, A. and McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. Стоит читать именно из-за того, что случилось с самой цитируемой цифрой: статья аккуратна, явно формулирует extrapolation — и всё равно ошиблась на два порядка в той строке, которую все повторяли. ↩
-
Smith, S. J., Hubbard, A., Newkirk, A., Ganeshalingam, M., Holecek, B., Sartor, D., Mills, M. and Shehabi, A. United States Data Center Energy Usage Report: 2025 Update. LBNL-2001758 (18 June 2026). Это пересматривает широко цитируемый отчёт 2024 года вниз для исторического ряда; если вы цитируете 176 TWh за 2023 год, вы цитируете устаревшую редакцию. ↩
-
Bender, E. M., Gebru, T., McMillan-Major, A. and Shmitchell, S. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? FAccT '21, pp. 610–623. DOI 10.1145/3442188.3445922. «Documentation debt» — §4.4. Обратите внимание: собственные carbon figures статьи цитируются по Strubell et al. и наследуют correction выше — что скорее иллюстрирует её аргумент, чем опровергает его. ↩
-
NVIDIA. NVIDIA H100 Tensor Core GPU product page,
nvidia.com/en-us/data-center/h100/(accessed 2026-09-06). Каждая tensor-core строка на этой странице, кроме FP64, имеет примечание «with sparsity»; использованная здесь dense BF16 figure — половина опубликованных 1 979 TFLOPS. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(accessed 2026-09-06). On-demand, per GPU per hour, до налогов. Цены в этом разделе устареют быстрее всего остального в курсе; арифметика вокруг них — нет. ↩ -
Karpathy, A.
karpathy/llm.c, discussion #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 May 2024), и discussion #677, Let's reproduce GPT-2 (1.6B): one 8XH100 node, 24 hours, $672, in llm.c (11 July 2024). ↩ -
Karpathy, A.
karpathy/nanochat, README и leaderboard «time to GPT-2» (accessed 2026-09-06). Цифра $48 и CORE-score definition «GPT-2 capability» находятся в README; собственныйspeedrun.shрепозитория говорит «approximately 1.5 hours», так что двухчасовую цифру следует считать округлением. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdвmeta-llama/llama-models(accessed 2026-09-06). Источник 30.84 M H100-hours для модели 405 B, 39.3 M total, location-based показателя 11 390 tCO2eq и data cutoff декабря 2023 года. ↩