Перейти до вмісту
10/30Розділ 10 з 30

Pretraining LLM: дані, обчислення, scaling laws і вартість

20 моделей, навчених на GPU ноутбука: вимірюємо scaling law і звіряємо оцінку 6ND із реальним лічильником FLOP.

На цій сторінці

Розділ 9 завершився transformer-блоком, який навчається. Складіть кілька таких блоків, спрямуйте loss передбачення наступного token з розділу 8 на вихід — і винаходити більше нічого. Усе, що лишається, — це купівля.

Це більший зсув, ніж здається. Усі попередні розділи запитували: чи воно навчається? — питання «так» або «ні», яке ноутбук вирішує за десять хвилин. Цей розділ ставить питання, у якому вже є гроші: за фіксований обсяг арифметики, яку найкращу модель я можу купити? Відповідь — формула, і у 2018 році вона не була очевидною нікому.

Ось відповідь на це питання через вимірювання, на одному GPU ноутбука. Двадцять моделей, від 98 624 до 15 мільйонів параметрів, були навчені з нуля на 174 мільйонах token з Wikipedia — із BPE-словником на 2 048 token, навченим так, як це робить розділ 7, і transformer з розділу 9. Кожен запуск отримав рівно один із трьох бюджетів обчислень і жодної операції більше, тож більша модель неминуче читала менше тексту. Найкращий held-out loss, досягнутий за кожного бюджету:

TEXT
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 ВВП невеликої країни.

В objective нічого не змінюється. Модель усе ще передбачає наступний token, loss усе ще є cross-entropy з розділу 4, застосованою до факторизації з розділу 8, optimiser усе ще AdamW з розділу 6. Pretraining — це не новий алгоритм; це той самий алгоритм, запущений на корпусі настільки великому, що запуск доводиться бюджетувати. Дві речі роблять це можливим: мітки безкоштовні, бо target для позиції tt — це token у t+1t+1, і він уже є в тексті; а останній розділ глави 6 прибрав заперечення, бо модель із набагато більшою кількістю параметрів, ніж дозволяють класичні правила, не розвалюється — вона покращується. На виході маємо base model — щось, що продовжує текст, а не відповідає.

Порахувати compute перед тим, як його витрачати: 6ND

Посилання на розділ: Порахувати compute перед тим, як його витрачати: 6ND

Перш ніж це можна бюджетувати, це треба порахувати, і галузь рахує це однією формулою:

C6NDC \approx 6ND

де NN — кількість параметрів, DD — training tokens, а CC — загальна кількість операцій із рухомою комою. Kaplan et al. виводять її у два кроки.1 Forward: 2 FLOPs на параметр на token, бо кожен параметр у множенні матриць використовується один раз на token — в одному множенні й одному додаванні. Backward: удвічі більше за forward, бо backward pass із розділу 5 обчислює два градієнти на кожному шарі — щодо inputs шару, щоб сигнал продовжував рухатися, і щодо його weights — кожен є множенням матриць розміру forward, тож 4N4N.

Це весь вивід, і його варто перевірити, а не приймати на віру. PyTorch постачає справжній лічильник FLOP, torch.utils.flop_counter.FlopCounterMode, який перехоплює кожну операцію, що її dispatch-ить модель, і підсумовує реальну роботу. Запустіть його на чотирьох порядках величини, найбільший — на пристрої meta, який виділяє shapes і не виділяє пам’ять:

flops.pyPYTHON
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))
конфігураціяNN без embeddingsNN загаломвиміряно, fwd+bwd÷ 6ND6ND (загалом NN)÷ 6ND6ND (без emb.)fwd+bwd ÷ fwd
dd 128, 4 шари, TT 256788,7367,254,4004.60e101.0319.4853.000
dd 512, 8 шарів, TT 25625,183,23251,045,8883.26e111.0382.1043.000
dd 768, 12 шарів, TT 102484,973,056124,356,8641.75e121.1451.6763.000
dd 1600, 48 шарів, TT 10241,474,870,4001,556,920,0002.10e131.1001.1613.000
dd 4096, 32 шари, TT 20486,442,983,4246,582,444,0328.74e131.0801.1043.000
dd 8192, 80 шарів, TT 819264,427,147,26465,544,929,2803.75e151.1631.1833.000

Відношення forward+backward до forward дорівнює 3.000, точно, на кожному масштабі: це не наближення, яке випадково добре працює, а наведена вище арифметична тотожність, повернена круглим числом лічильником, який нічого не знає про вивід.

Виміряна сума далі лежить на 3–17 % вище за 6ND6ND, щойно NN враховує матриці embedding — і це уточнення важливе, бо дві засадничі статті рахують NN по-різному. Kaplan виключає «all vocabulary and positional embeddings», бо це «produces significantly cleaner scaling laws» (§1.3); у додатку F Chinchilla сказано: «we also count embeddings matrices in the total parameter count».2 Для широкого словника й вузького hidden dimension вони відрізняються у дев’ять разів, як показує перший рядок.

Залишковий розрив — це те, що 6ND6ND навмисно пропускає: attention scores. Kaplan у рівнянні (2.2) записує forward cost як 2N+2nlayernctxdmodel2N + 2\,n_{\text{layer}} n_{\text{ctx}} d_{\text{model}} і відкидає другий член, бо dmodelnctx/12d_{\text{model}} \gg n_{\text{ctx}}/12 — безпечно у 2020 році, менш безпечно тепер, і саме тому відношення повзе вгору, коли зростає T/dT/d; ось чому два рядки тут мають спільне TT 1 024, а відношення падає, з 1.145 до 1.100, коли dd зростає з 768 до 1 600. Це вартість O(T2)O(T^2), яку ввів розділ 9 і яку розділ 16 перетворює на ціну.

Compute вирішує, скільки триватиме запуск; пам’ять вирішує, чи він узагалі стартує. Тренуйте звичайним fp32 AdamW — і кожен параметр несе чотири числа: weight, його gradient, а також Adam-ові running mean mm і variance vv — дві середні, зібрані вручну в розділі 6. Чотири числа по чотири байти кожне — це 16 байтів на параметр, ще до першої activation. Виміряно на 8 GB GPU ноутбука, за resident allocation у точці кроку, де жоден graph не живий:

модельсловникbatchNN16N16N прогнозresident виміряноpeak у кроцірізниця
dd 512, 8 шарів50,257851,045,888779 MB801 MB2,500 MB1,699 MB
dd 512, 8 шарів4,096827,411,456418 MB426 MB1,043 MB617 MB
dd 256, 6 шарів4,09685,839,36089 MB89 MB382 MB293 MB
dd 256, 6 шарів4,096325,839,36089 MB89 MB1,259 MB1,170 MB
dd 256, 6 шарів4,0961285,839,36089 MB89 MB4,771 MB4,681 MB

Прогноз і вимірювання збігаються в межах 3 %. Несподіванка — останній стовпець: activations затьмарюють модель. Та сама модель із 5,8 мільйона параметрів, якій потрібно 89 MB постійного стану, потребує 4 681 MB activations за batch 128 — у п’ятдесят два рази більше за модель — і значна частина цього взагалі не transformer. Це logits, один вектор розміру словника на token по чотири байти на елемент: 512 MB в останньому рядку, 393 MB у першому. Розмір словника був обраний у розділі 7, і він досі вирішує, що поміститься на карті.

Який член домінує, залежить від форми запуску, тому Micikevicius et al. кажуть, що пам’ять «is dominated by activations»3, тоді як ZeRO каже, що моделі з 1,5 мільярда параметрів потрібно «at least 24 GB» лише model states.4 ZeRO приходить до тих самих 16 байтів іншим шляхом — 2Ψ2\Psi для fp16 weights, 2Ψ2\Psi для fp16 gradients, 4Ψ4\Psi кожен для fp32 master weights і двох моментів Adam — що для 70 мільярдів параметрів становить 1,12 терабайта, тобто чотирнадцять GPU по 80 GB ще до першої activation.

Parallelism в одному абзаці й одному делегуванні

Посилання на розділ: Parallelism в одному абзаці й одному делегуванні

На frontier scale усе це не поміщається на одному пристрої, тож запуск розділяють одразу чотирма способами. Data parallelism кладе копію моделі на кожен GPU й усереднює gradients — це стандарт, і саме його покращує ZeRO, відмовляючись тримати надлишкові копії стану optimiser. Tensor parallelism розділяє окремі матриці між пристроями. Pipeline parallelism віддає кожному пристрою суцільну групу шарів. Context parallelism розділяє саму послідовність, що потрібно лише тоді, коли TT стає достатньо довгим, аби член attention домінував. Таблиця 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, якої досягає реальний запуск. Саме воно перетворює охайне 6ND6ND на wall-clock time, а отже — на гроші.

У січні 2020 року Kaplan et al. навчили сітку transformers і виявили, що test loss підкоряється power law для кожного з трьох ресурсів на понад шести порядках величини.1 Їхній §1.2 дає три підігнані закони:

L(N)=(NcN)αN,αN0.076,Nc8.8×1013L(N) = \left(\frac{N_c}{N}\right)^{\alpha_N}, \qquad \alpha_N \approx 0.076, \qquad N_c \approx 8.8 \times 10^{13}

із супутніми αD0.095\alpha_D \approx 0.095 для даних і αCmin0.050\alpha_C^{\min} \approx 0.050 для оптимально розподіленого compute. Константи не універсальні, і стаття це каже: «the precise numerical values of NcN_c, CcminC_c^{\min} and DcD_c depend on the vocabulary size and tokenization and hence do not have a fundamental meaning.»

Показники крихітні: удесятеро більше параметрів купує множник 100.0761.1910^{0.076} \approx 1.19 від залишкового loss. Це звучить як ніщо, і це найважливіший факт тут — віддача жахлива, і вона ніколи не припиняється. Power law із малим показником обіцяє, що наступний порядок величини допоможе — менше, ніж попередній, але завжди. Купівля compute перестає бути азартом і стає покупкою з опублікованим курсом обміну; саме цей аргумент і розблокував капітал.

Потім з’явився рецепт, і саме тут стаття помилилася так, що це коштувало індустрії дуже багато грошей. Таблиця 6 Kaplan дає NoptC0.73N_{\text{opt}} \propto C^{0.73} і DoptC0.27D_{\text{opt}} \propto C^{0.27}: удесятеро більше 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 на параметр, повсюдно.

У березні 2022 року Hoffmann et al. навчили понад 400 моделей від 70 мільйонів до 16 мільярдів параметрів і трьома незалежними шляхами дійшли протилежного висновку.2 Їхня таблиця 2 повідомляє показник aa у NoptCaN_{\text{opt}} \propto C^{a} як 0.50, 0.49 і 0.46 проти 0.73 у Kaplan. Простими словами: розмір моделі й training data мають зростати в однаковій пропорції.

Їхній другий підхід — це те, що відтворює sweep на початку цього розділу, у мільйон разів меншому масштабі: зафіксувати бюджет, навчити багато розмірів точно на цьому бюджеті, побудувати final loss проти розміру моделі.

параметриC=1013C = 10^{13}C=3.16×1013C = 3.16 \times 10^{13}C=1014C = 10^{14}
98,6245.3531 (171)4.8638 (542)
150,3205.4636 (74)
194,2085.5041 (44)4.8730 (140)4.4040 (442)
295,8085.5550 (19)4.9029 (60)4.3383 (190)
665,2805.7849 (3.8)5.1254 (12)4.4192 (38)
1,280,7685.8174 (1.0)5.1751 (3.2)4.5003 (10)
3,101,5685.4686 (0.5)4.7768 (1.7)
5,315,0725.5894 (0.2)4.8514 (0.6)
15,053,5685.3534 (0.1)

Held-out loss у nat на token, token на параметр у дужках, жирним — найкраща модель за кожного бюджету; риска — точка, яку не запускали, бо бюджет вимагав більше тексту, ніж містить корпус, або розмір був поза sweep там.

Читайте вниз по стовпцю: loss падає, досягає мінімуму й знову зростає. Модель може бути завеликою для свого бюджету так само легко, як і замалою — за 101410^{14} штраф за вибір 665 280 параметрів замість 295 808 становить 0,08 nat, що на підігнаній вище огинаючій є loss, якого правильно розмірена модель досягає з на 18 % меншим compute. Вибір неправильної форми викидає п’яту частину бюджету. Це Figure 3 Chinchilla за післяобідній час на одному GPU, а не з чотирма сотнями моделей.

Тепер читайте впоперек. За 101310^{13} найкраща модель — найменша зі sweep; за 101410^{14} це 295 808 параметрів, обрамлені з обох боків. Оптимум рухається праворуч із ростом бюджету, і в цьому весь зміст виправлення. Підігнайте третій підхід статті — поверхню L(N,D)=E+A/Nα+B/DβL(N,D) = E + A/N^{\alpha} + B/D^{\beta} по кожному запуску — і мінімізуйте за умови C=6NDC = 6ND:

TEXT
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.73

0.46 — з ноутбука, проти 0.73 у Kaplan. Збіг до трьох цифр із fit на трьох бюджетах — удача; збіг до першої — ні. Показник переноситься — константа ні, бо співвідношення token до параметрів у цих оптимумах становить 170–540, а не 20. Три причини, усі повчальні. EE fit-иться до нуля, бо за loss понад 4 nat запуск ніде не близько до entropy floor, що домінує fit Chinchilla. Batch size і learning rate були фіксовані, а не налаштовані для кожної точки, що шкодить тим запускам, які отримують найменше кроків, — а це великі моделі: за 101310^{13} FLOPs модель із 1,28 мільйона параметрів отримує всього 159 кроків optimiser, значно менше за кілька тисяч, які член SminS_{\min} у 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 У чотири рази менша, у чотири з половиною рази більше тексту, ті самі гроші, краща модель.

Два застереження щодо цього знаменитого співвідношення. «Двадцять token на параметр» — це не речення зі статті, яка каже лише, що «for every doubling of model size the number of training tokens should also be doubled»; 20 — це висновок із Table 3 і з власних 70 B на 1,4 T у Chinchilla. І точність цього гірша, ніж публікують: Besiroglu et al. перепідігнали за 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 budget. Модель, яка побачить 10 мільйонів token, має decay свій learning rate до нуля на 10 мільйонах token; дайте їй schedule на 100 мільйонів, зупиніть рано — і ви читаєте loss посеред descent зі значно завеликим rate. Chinchilla тренує кожну модель із чотирма cycle lengths саме для контролю цього; sweep вище задає schedule з бюджету з тієї самої причини.

Це найкорисніший емпіричний результат у галузі, і його регулярно перепродають. Чотири межі.

Вони передбачають loss, а не capability. Ліва частина — cross-entropy на held-out тексті. Ніщо в цих статтях не дає права стверджувати, чи писатиме модель правильний SQL, відмовлятиме на шкідливий запит або використовуватиме tool. Це знову урок розділу 5: передбачення loss не є передбаченням поведінки, за яку ви платите.

Їх підганяють, а не виводять. Жодна теорія не породжує αN=0.076\alpha_N = 0.076. Константи рухаються разом із tokenizer — тому порівняння perplexity між двома tokenizers беззмістовне, як пояснив розділ 8, — і разом із сумішшю даних, архітектурою та optimiser. Кожен опублікований закон — це закон сетапу, який його породив, тому Meta перепідігнала свій перед Llama 3.5

Вони припускають свіжий token на кожному кроці, що тихо припускає нескінченний корпус. Muennighoff et al. виміряли, що стається, коли він закінчується: до чотирьох epochs повторених даних майже нічого не коштують — модель із 8,7 мільярда параметрів на 44 мільярдах унікальних token, побачених чотири рази, завершила з «only 0.5 % higher validation loss», ніж та сама модель на 178 мільярдах унікальних, — тоді як після приблизно шістнадцяти epochs додатковий compute нічого не купує.9

І ніхто більше не тренує compute-optimal. Chinchilla мінімізує вартість training; deployed model потім платить приблизно 2N2N FLOPs за згенерований 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. формалізували це, мінімізуючи натомість 6NDtrain+2NDinference6ND_{\text{train}} + 2ND_{\text{inference}}, і виявили, що будь-хто, хто очікує мільярд запитів, має тренувати «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 Співвідношення не застаріло; воно відповідає на питання, яке вже не є тим, що ставлять.

Emergent abilities і суперечка про те, чи вони реальні

Посилання на розділ: Emergent abilities і суперечка про те, чи вони реальні

Loss падає плавно. Benchmark scores іноді ні. Wei et al. зібрали випадки, де задача лишається на рівні випадкового вгадування крізь порядки величини training compute, а потім стрибає — тризначна арифметика з’являється в GPT-3 приблизно на 2×10222 \times 10^{22} FLOPs, MMLU піднімається вище вгадування між 33 і 5×10235 \times 10^{23} — і дали патерну назву: «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 правильний, exp(L)\exp(-\mathcal{L}), поліпшується поступово. Оцініть модель через exact string match на відповіді з LL token, і ви підносите цю ймовірність до степеня LL — плавна крива у великому степені схожа на урвище. Замініть metric на таку, що рахує 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». Стрибок на графіку є свідченням про metric, доки не доведено інше. Розділ 29 — місце, де це стане вашою проблемою, бо вибір hard-cutoff metric — це рішення, яке ви ухвалите, не помітивши.

Корпус — це частина pretraining-запуску без рівняння, і саме там живе більшість наслідкових рішень. Сировина — 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 — це список грубих евристик: залишати лише рядки, що закінчуються terminal punctuation, відкидати сторінки з менш ніж трьома реченнями, відкидати будь-яку сторінку з фігурною дужкою або словом із публічного списку непристойностей — перетворюючи двадцять терабайтів місячного тексту приблизно на 750 GB.15

Грубі — правильне слово. Dodge et al. проаудитували, що ці фільтри видаляють, і виявили, що blocklist непристойностей видаляє 42 % документів African-American English і 32 % Hispanic-aligned English проти 6,2 % White-aligned English, лишаючи корпус на 97,8 % із останньої категорії.16 Правило без думки про діалект усе одно її мало.

Потім deduplication, і це не прибирання: Lee et al. знайшли речення з 61 слова, повторене в C4 61 036 разів, і показали, що deduplicating зменшує частоту, з якою моделі «emit memorized text», удесятеро — з 1,9 % generated tokens до 0,19 %.17 Але більше не означає краще: команда FineWeb провела deduplication глобально по 96 crawls, отримала 4 трильйони token і жодного вимірного виграшу, потім провела deduplication окремо для кожного 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 повідомляє про bug фільтрації, через який benchmarks лишилися в даних без дороги назад: «because of cost considerations it was infeasible to retrain the model».7

Provenance — невирішена частина. The Pile постачав компонент на 100,96 GiB під назвою Books3 — 12 % корпусу і, за власною consent table статті, книжки з приватного torrent tracker;19 його прибрали з онлайн-доступу в серпні 2023 року після скарги щодо copyright. Правова позиція станом на вересень 2026 року не усталена, а три рішення судів США, які цитують як тренд, суперечать одне одному. Alsup визнав training на законно отриманих книжках «exceedingly transformative», водночас постановивши, що бібліотека, зібрана з піратських копій, такою не була, а Anthropic врегулювала цю половину за $1.5 billion щодо 482 460 творів, приблизно $3 000 за кожен, схвалено 20 липня 2026 року.20 Chhabria надав Meta summary judgment, одночасно написавши, що його рішення «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 Жоден апеляційний суд США не ухвалив рішення щодо цього питання.

Люди роблять ті частини, яких 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-годин, 433 MWh і 24,7 тонни CO₂-equivalent за запуск, 50,5 з урахуванням виробництва й idle nodes;24 Patterson et al. оцінюють GPT-3 у 1 287 MWh і 552 тонни.25 Два застереження. Перевага BLOOM — французька атомна мережа з 57 g CO₂ на kWh, а не ефективність: вона використала більше енергії, ніж OPT-175B. І найцитованіша в галузі цифра emissions, 626 155 lb у Strubell et al. для neural architecture search, пізніше виявилася завищеною у 88 разів, бо припустили, що search запускався в повному розмірі моделі, хоча він ішов на 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 Кожен факт вище існує, бо хтось подивився. Для корпусів за моделями, якими користується більшість людей, ніхто не може.

Тепер арифметика, яку всі хочуть, із чотирьох цитованих inputs, щоб коли вони застаріють, було очевидно, що саме замінити.

Сторінка NVIDIA H100 вказує 1 979 teraFLOPS BF16 tensor-core throughput під приміткою «with sparsity».29 Жоден pretraining-запуск не використовує structured sparsity, тож dense-цифра — половина: 989,5 TFLOP/s.

Таблиця 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 за GPU-годину, тобто $31.92 на годину за вузол.30

Співвідношення Chinchilla, D=20ND = 20N, дає C=6ND=120N2C = 6ND = 120N^2, а отже N=C/120N = \sqrt{C/120}.

бюджетH100-годиниFLOPscompute-optimal параметриtokenна одному вузлі 8×H100GPU, щоб завершити за 90 днів
$100253.6e19546 M10.9 B3.1 h1
$1,0002513.6e201.73 B34.5 B31.3 h1
$10,0002,5063.6e215.46 B109 B13 днів2
$100,00025,0633.6e2217.3 B345 B131 день12
$1,000,000250,6273.6e2354.6 B1.09 T4 роки116
$10,000,0002,506,2663.6e24173 B3.45 T36 років1,160
$100,000,00025,062,6573.6e25546 B10.9 T358 років11,603

Читайте два останні стовпці разом. За $10 000 ви отримуєте модель із 5 мільярдами параметрів на одному орендованому вузлі за два тижні. За $100 000 000 арифметика каже 546 мільярдів параметрів — і дванадцять тисяч H100, з’єднаних між собою на три місяці, що не є чимось, що орендують кредитною карткою. Після приблизно $100 000 обмеженням перестають бути гроші й стає кластер.

Перш ніж довіряти такій таблиці, перевірте її на запусках, реальна вартість яких опублікована — llm.c відтворює GPT-2 124M за «~90 minutes» на вузлі 8×A100 «for about $20», а GPT-2 1.6B за 24 години на вузлі 8×H100 за $672.31

TEXT
$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 Karpathy nanochat: «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 за GPU-годину, нижче за list $3.99 у Lambda; за list це ближче до $64.

У 2019. Первинного джерела немає: OpenAI ніколи не публікувала ні тривалість, ні вартість. Ланцюжок такий: The Register, лютий 2019, повідомляє «256 Google TPU3 cores» без ціни й тривалості; потім Synced, червень 2019, зазначає, що hardware коштував $256 на годину в Google Cloud, і прямо каже, що «OpenAI didn't specify the training duration». $43 008 — це $256 на годину, помножені на припущені 168 годин, джерела для яких ніхто ніколи не навів.

Тож чесний headline: модель, що відповідає опублікованому benchmark score GPT-2, сьогодні можна навчити значно дешевше ніж за $100 на орендованому hardware, проти вартості 2019 року, яку ніколи не публікували і знаменита оцінка якої спирається на непідтверджене припущення про тривалість. Обвал реальний, і сучасну половину може відтворити будь-хто з кредитною карткою; співвідношення — це арифметика над числом, якого не існує. Такий стан опублікованих training costs загалом. Стаття GPT-3 не містить жодної суми в доларах, лише 3.14×10233.14 \times 10^{23} FLOPs у таблиці D.1;7 стаття Llama 3 також не містить.5 Кожна training cost, яку ви читали, — це оцінка з FLOP count, hardware assumption і price assumption — завжди варто питати, чиїх саме.

Що знає base model і коли вона перестала це знати

Посилання на розділ: Що знає base model і коли вона перестала це знати

Те, що виходить, бачило фіксований корпус, зібраний у фіксований момент, і з цього випливають дві властивості.

Перша — knowledge cutoff. Після дати збору модель не знає нічого — не «невпевнена», а нічого — і вона fluent-confabulate замість того, щоб це сказати, бо говорити так не було поведінкою, на якій її тренували. Model card Llama 3.1 вказує грудень 2023 року;33 він є в кожної моделі, і це властивість training data, а не deployment. Обхід цього — retrieval problem, і це розділ 19.

Друга — base model доповнює, а не відповідає. Дайте їй «What is the capital of France?» — і правдоподібним продовженням буде інше питання, бо в корпусі цей рядок найчастіше з’являється у списку вправ.

Text completer — не assistant. Він не виконує інструкції, бо ніщо в корпусі не сказало йому, що request треба виконувати, а не продовжувати. Він не має поняття розмови з двома учасниками. Він охоче згенерує найімовірніше продовження шкідливого prompt, бо «імовірне» — єдине, під що його колись optimised.

Перетворення його на щось, що відповідає, потребує другого етапу, який коштує частку відсотка від першого й майже повністю складається з показу прикладів бажаної поведінки та порівняння пар його власних 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 заходять глибше за розділ вище в матеріал, який цей курс розглядає один раз і делегує.

  1. 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 — це рівняння (1.1)–(1.3) у §1.2, повні константи — в Appendix A, Table 5; вивід 6N6N — §2.1; показники compute-allocation — Table 6. Зверніть увагу, що є два compute laws: αC=0.057\alpha_C = 0.057 за фіксованого batch size і αCmin=0.050\alpha_C^{\min} = 0.050 за оптимального batch size; стаття каже, що останній «should be used to make predictions». 2

  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, convention підрахунку параметрів в Appendix F. Проза під Table 3 не збігається із самою Table 3 для рядків 175 B і 280 B; цитувати слід таблицю. 2 3 4

  3. 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

  4. Rajbhandari, S., Rajbhandari, S., Ruwase, O. and He, Y. ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. arXiv:1910.02054 (2019), SC20. Облік 16Ψ16\Psi — §3.1; residual-state figures для activations — §3.2.

  5. Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Compute budget і token count у §1, перепідігнаний scaling law у §3.2.1, конфігурація parallelism і MFU у Table 4, contamination analysis у §5.1.4, твердження про over-training у §9.1. Стаття не містить dollar figures і emissions table. 2 3 4 5 6

  6. Stanford CS336, Language Modeling from Scratch. Lecture 2 охоплює resource accounting, lectures 5–8 — GPUs, kernels і parallelism, lectures 9 і 11 — scaling, lectures 13–14 — data. Це курс, якому цей розділ делегує інженерію, і він публічний.

  7. 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

  8. Besiroglu, T., Erdil, E., Barnett, M. and You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Реконструює дані Chinchilla через digitising Figure 4, перепідганяє і повідомляє виправлені показники та значно ширші інтервали.

  9. 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 — підігнане RD15R_D^* \approx 15.

  10. 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 argument проти Chinchilla-optimal training.

  11. 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 також містить противагу: моделі, навчені з екстремальними token ratios, продовжують покращуватися, але «more slowly than scaling laws predict».

  12. 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.

  13. Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023), NeurIPS 2023 outstanding paper. Аргумент про metric — §2, meta-analysis BIG-Bench — §4, сконструйований vision example — §5.

  14. Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), опубліковано 24 August 2026, доступ 2026-09-06. Його власна front page заявляє «over 300 billion pages spanning 15 years», «totalling more than 10 petabytes» — це цифра для всього архіву, а не для місячного crawl, оціненого тут.

  15. 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-billion-token, яку часто їй приписують, походить від Dodge et al. нижче.

  16. 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.

  17. 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, і це percentages of generated tokens за 50-token exact-match criterion.

  18. 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. Released dataset відтоді виріс понад 15 трильйонів token зі статті.

  19. 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 округлює вниз.

  20. 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 releases past inputs only, not outputs and not future conduct.

  21. Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), summary judgment 25 June 2025 (Dkt. 598). Зверніть увагу, що distribution claim щодо torrenting не було вирішено і вона лишається активною.

  22. 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, undecided at the time of writing.

  23. Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 January 2023. $2 — це ceiling для senior reviewers, які виконували всі targets; junior labellers, більшість, отримували $1.32. Rebuttal Sama, процитований у тій самій статті, дає $1.46–$3.74 і нижчу quota.

  24. 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 і 3.

  25. 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.

  26. Strubell, E., Ganesh, A. and McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. Варто читати саме через те, що сталося з найцитованішим числом: стаття обережна, явно вказує свою extrapolation, і все одно помилилася на два порядки величини в одному рядку, який усі повторювали.

  27. 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). Це переглядає широко цитований report 2024 вниз для historical series; якщо ви цитуєте 176 TWh за 2023 рік, ви цитуєте superseded edition.

  28. 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 вище — що є ілюстрацією її аргументу, а не його спростуванням.

  29. NVIDIA. NVIDIA H100 Tensor Core GPU product page, nvidia.com/en-us/data-center/h100/ (доступ 2026-09-06). Кожен tensor-core row на цій сторінці, окрім FP64, має примітку «with sparsity»; dense BF16 figure, використана тут, — половина опублікованих 1 979 TFLOPS.

  30. Lambda. GPU Cloud pricing, lambda.ai/pricing (доступ 2026-09-06). On-demand, за GPU на годину, до податків. Ціни в цьому розділі застаріють швидше за все інше в курсі; арифметика навколо них — ні.

  31. 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).

  32. Karpathy, A. karpathy/nanochat, README і leaderboard «time to GPT-2» (доступ 2026-09-06). Цифра $48 і CORE-score визначення «GPT-2 capability» обидва в README; власний speedrun.sh репозиторію каже «approximately 1.5 hours», тож двогодинну цифру слід вважати округленою.

  33. Meta. Llama 3.1 model card, models/llama3_1/MODEL_CARD.md у meta-llama/llama-models (доступ 2026-09-06). Джерело 30.84 M H100-hours для моделі 405 B, 39.3 M total, location-based figure 11 390 tCO2eq і data cutoff у грудні 2023 року.


Створено

David Vicente Campos

Засновник NeuraLIA Labs і співзасновник MyRealFood

Я інженер-програміст, випускник Університету Леона. Я співзаснував MyRealFood, де на посаді CTO створив застосунок, яким користувалися мільйони людей, щоб харчуватися здоровіше, і заснував NeuraLIA Labs, де створюю AI-продукти. Тут я пишу про те, що мені довелося зрозуміти дорогою, — так, як я сам хотів би, щоб мені це свого часу пояснили.

Більше про автора

Опубліковано NeuraLIA Labs.

Отримуйте нові дописи на пошту

Новини AI, гайди й оновлення продукту — короткий лист, коли ми публікуємо щось варте вашого часу.

Зміст курсу

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jev10 хв читання

AI-модель Jev створена для рішень, а не прози

Jev від TypeSafe AI привертає увагу, бо розглядає програмний інтелект як задачу ймовірності: вибрати правильну гілку, додати впевненість і не платити LLM за написання тексту, коли коду потрібне рішення.

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineering12 хв читання

Context engineering for long-horizon AI agents

Long-running agents do not fail only because the window is small. They fail when files, tool outputs and stale history crowd out the task the agent was supposed to finish.

Готові довірити вибір моделі LIA?

Створюйте з усіма моделями ШІ в одному місці — почніть безкоштовно вже сьогодні.