Pretraining на LLM: данни, compute, scaling laws и цена
20 модела на един laptop GPU: scaling law, проверка на 6ND compute оценката и реален FLOP брояч.
На тази страница
Глава 9 завърши с transformer блок, който се обучава. Подредете няколко такива, насочете next-token loss от Глава 8 към изхода и няма какво повече да се измисля. Всичко останало е покупка.
Това е по-голям завой, отколкото звучи. Всяка глава досега питаше учи ли се? — въпрос с да или не, който laptop решава за десет минути. Тази пита въпрос, в който има пари: при фиксирано количество аритметика, кой е най-добрият модел, който мога да купя? Отговорът е формула, а през 2018 г. тя не беше очевидна за никого.
Ето този въпрос, отговорен чрез измерване върху един laptop GPU. Двадесет модела, от 98 624 до 15 милиона параметъра, бяха обучени от нулата върху 174 милиона token от Wikipedia — BPE vocabulary от 2 048 token, обучен по начина, по който Глава 7 обучава такъв, transformer-ът от Глава 9. Всеки run получи точно един от три 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. Нищо в първите девет глави не предсказва това. Зад него няма теорема — това е емпирична закономерност, която с различен експонент важи през десетте порядъка между този laptop и datacentre, и е единственото наблюдение, убедило цяла индустрия да похарчи БВП на малка държава за GPU.
Какво е pretraining и кое е новото в него
Връзка към раздела: Какво е pretraining и кое е новото в негоНищо в целта не се променя. Моделът все още предсказва следващия token, loss-ът все още е cross-entropy от Глава 4, приложена към факторизацията от Глава 8, оптимизаторът все още е AdamW от Глава 6. Pretraining не е нов алгоритъм; това е същият алгоритъм, пуснат върху корпус, достатъчно голям, че run-ът трябва да се бюджетира. Две неща го правят възможно: labels са безплатни, защото целта за позиция е token-ът при и вече е в текста; а последният раздел на Глава 6 премахна възражението, защото модел с много повече параметри, отколкото класическите правила позволяват, не се разпада, а се подобрява. Резултатът е base model — нещо, което продължава текст, вместо да отговаря.
Броене на compute преди харченето му: 6ND
Връзка към раздела: Броене на compute преди харченето му: 6NDПреди всичко това да може да се бюджетира, трябва да се преброи, а областта го брои с една формула:
където е броят параметри, са training token, а са общите floating-point операции. Kaplan et al. я извеждат в две стъпки.1 Forward: 2 FLOPs на параметър на token, защото всеки параметър в матрично умножение се използва веднъж на token, в едно умножение и едно събиране. Backward: два пъти forward, защото backward pass-ът от Глава 5 изчислява два gradient-а във всеки layer — спрямо inputs на layer-а, за да продължи сигналът да пътува, и спрямо неговите weights — всеки е матрично умножение с размера на forward, така че .
Това е цялото извеждане и си струва да се провери, вместо да се вярва. PyTorch идва с реален FLOP брояч, torch.utils.flop_counter.FlopCounterMode, който прихваща всяка операция, dispatch-ната от модела, и сумира реалната работа. Пуснете го през четири порядъка, най-големия върху meta device, който алокира shapes и никаква памет:
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))| конфигурация | без embeddings | общо | измерено, fwd+bwd | ÷ (общо ) | ÷ (без emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 layers, 256 | 788 736 | 7 254 400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 layers, 256 | 25 183 232 | 51 045 888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 layers, 1024 | 84 973 056 | 124 356 864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 layers, 1024 | 1 474 870 400 | 1 556 920 000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 layers, 2048 | 6 442 983 424 | 6 582 444 032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 layers, 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 matrices — а тази уговорка има значение, защото двете основополагащи статии броят различно. 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. Това е cost, който Глава 9 въведе, а Глава 16 превръща в цена.
Памет: какво всъщност трябва да се побере
Връзка към раздела: Памет: какво всъщност трябва да се побереCompute решава колко дълго трае run-ът; паметта решава дали изобщо може да започне. Обучавайте с plain fp32 AdamW и всеки параметър носи четири числа: weight, неговия gradient и running mean и variance на Adam — двете средни, построени на ръка в Глава 6. Четири числа по четири байта са 16 байта на параметър, преди дори една activation. Измерено на 8 GB laptop GPU, като resident allocation е взета в точката от step-а, в която няма жив graph:
| модел | vocabulary | batch | предсказано | resident измерено | peak в step | разликата | |
|---|---|---|---|---|---|---|---|
| 512, 8 layers | 50 257 | 8 | 51 045 888 | 779 MB | 801 MB | 2 500 MB | 1 699 MB |
| 512, 8 layers | 4 096 | 8 | 27 411 456 | 418 MB | 426 MB | 1 043 MB | 617 MB |
| 256, 6 layers | 4 096 | 8 | 5 839 360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 layers | 4 096 | 32 | 5 839 360 | 89 MB | 89 MB | 1 259 MB | 1 170 MB |
| 256, 6 layers | 4 096 | 128 | 5 839 360 | 89 MB | 89 MB | 4 771 MB | 4 681 MB |
Прогнозата и измерването съвпадат в рамките на 3%. Изненадата е последната колона: activations смазват модела. Същият модел с 5,8 милиона параметъра, който се нуждае от 89 MB persistent state, се нуждае от 4 681 MB activations при batch 128 — петдесет и два пъти модела — и голяма част от това изобщо не е transformer-ът. Това са logits, един вектор с размер vocabulary за всеки token по четири байта на елемент: 512 MB в последния ред, 393 MB в първия. Размерът на vocabulary беше избран в Глава 7 и все още решава какво се побира на картата.
Кой член доминира зависи от формата на run-а, затова 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 и двата moments на Adam — което за 70 милиарда параметъра е 1,12 терабайта, равни на четиринадесет 80 GB GPU още преди една activation.
Паралелизъм, в един абзац и едно делегиране
Връзка към раздела: Паралелизъм, в един абзац и едно делегиранеНищо от това не се побира на едно устройство при frontier scale, затова run-ът се разделя по четири начина едновременно. Data parallelism поставя копие на модела на всеки GPU и осреднява gradients — default-ът и този, който ZeRO подобрява, като отказва да държи излишни копия на optimizer state. Tensor parallelism разделя отделни матрици между устройства. Pipeline parallelism дава на всяко устройство непрекъсната група layers. Context parallelism разделя самата sequence, необходимо само когато е достатъчно дълго attention членът да доминира. Table 4 на Llama 3 изброява и четирите наведнъж: tensor 8, context до 16, pipeline 16, data до 128, върху 16 384 H100 GPU.5 Това е всичко, което този курс ще каже по темата; distributed training инженерството е отделен семестър, а Stanford CS336 е този семестър, лекции 5 до 8, с кода.6 След делегирането остава едно число, model FLOPs utilisation — частта от peak arithmetic на GPU, която реален run постига — и именно то превръща спретнатото в wall-clock време и следователно в пари.
Kaplan и залогът, който индустрията направи
Връзка към раздела: Kaplan и залогът, който индустрията направиПрез януари 2020 г. Kaplan et al. обучиха grid от 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 пъти повече текст. Abstract-ът е категоричен — „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 спрямо размера на модела.
| параметри | |||
|---|---|---|---|
| 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 на token, token на параметър в скоби, bold за най-добрия модел при всеки бюджет; тирето е точка, която не е пускана, защото бюджетът изисква повече текст, отколкото корпусът съдържа, или размерът е извън sweep-а там.
Четете надолу по колона: loss-ът пада, стига дъно и пак се качва. Един модел може да е твърде голям за бюджета си точно толкова лесно, колкото и твърде малък — при наказанието за избор на 665 280 параметъра вместо 295 808 е 0.08 nats, което по envelope-а, fitted по-горе, е loss-ът, който правилно оразмерен модел достига с 18% по-малко compute. Изборът на грешна форма изхвърля една пета от бюджета. Това е Figure 3 на Chinchilla за един следобед на един GPU вместо с четиристотин модела.
Сега четете напречно. При най-добрият модел е най-малкият в sweep-а; при е 295 808 параметъра, ограден от двете страни. Оптимумът се мести надясно с растежа на бюджета, което е цялото съдържание на корекцията. Fit-нете третия подход от статията — повърхността върху всеки run — и минимизирайте при условие :
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, от laptop, срещу 0.73 на Kaplan. Съвпадение до три цифри от fit с три бюджета е късмет; съвпадение до първата не е. Експонентът пътува — константата не, защото token-to-parameter ratio при тези optima е 170 до 540, не 20. Три причини, всички поучителни. fit-ва до нула, защото при loss над 4 nats run-ът не е близо до entropy floor, който доминира fit-а на Chinchilla. Batch size и learning rate бяха фиксирани, вместо tuned за всяка точка, което ощетява run-овете с най-малко steps — а това са големите модели: при FLOPs модел с 1,28 милиона параметъра получава общо 159 optimizer steps, далеч под няколкото хиляди, които членът на Kaplan казва, че всеки модел има нужда. Scaling law се fit-ва вътре в режим, а този стои шест порядъка под Chinchilla.
Оттук и abstract-ът на статията: „current large language models are significantly undertrained“. Chinchilla е демонстрацията — 70 милиарда параметъра върху 1,4 трилиона token, същият общ 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 на Chinchilla върху 1,4 T. А точността му е по-лоша от публикуваното: Besiroglu et al. refit-наха от дигитализация на 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, трябва да decay-не learning rate до нула при 10 милиона token; дайте му schedule за 100 милиона, спрете го рано, и четете loss по средата на descent при твърде висок rate. Chinchilla обучава всеки модел при четири cycle lengths, за да контролира точно това; sweep-ът по-горе задава schedule-а си от бюджета по същата причина.
Какво не обещават scaling laws
Връзка към раздела: Какво не обещават scaling lawsТе са най-полезният емпиричен резултат в областта и редовно се продават прекалено. Четири ограничения.
Те предсказват loss, не capability. Лявата страна е cross-entropy върху held-out text. Нищо в тези статии не разрешава твърдение дали модел ще пише правилен SQL, ще откаже вредна заявка или ще използва tool. Това отново е урокът от Глава 5: предсказание на loss-а не е предсказание на поведението, за което плащате.
Те са fitted, не derived. Няма теория, която произвежда . Константите се местят с tokenizer-а — затова perplexity сравнение между два tokenizer-а е безсмислено, както обясни Глава 8 — и с data mixture, architecture и optimiser. Всяка публикувана law е law на setup-а, който я е произвел, затова Meta fit-на собствена преди Llama 3.5
Те предполагат fresh token за всеки step, което тихо предполага безкраен корпус. Muennighoff et al. измериха какво става, когато той свърши: до четири epochs повторени данни струват почти нищо — модел с 8,7 милиарда параметъра върху 44 милиарда unique token, видени четири пъти, завършва с „only 0.5 % higher validation loss“ от същия модел върху 178 милиарда unique — докато след около шестнадесет epochs допълнителният compute не купува нищо.9
И вече никой не обучава compute-optimal. Chinchilla минимизира цената на training; deployed модел след това плаща грубо 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 Съотношението не е остаряло; то отговаря на въпрос, който вече не е този, който се задава.
Emergent abilities и спорът дали са реални
Връзка към раздела: Emergent abilities и спорът дали са реалниLoss-ът пада гладко. Benchmark scores понякога не. Wei et al. събраха случаи, в които задача стои на ниво chance през порядъци training compute и после скача — трицифрена аритметика, появяваща се в GPT-3 при около FLOPs, MMLU, издигащ се над guessing между и — и назоваха модела: „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“, като две прекъснати метрики обясняват над 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“, един месец от него, безплатен за download.14 Почти нищо не е използваемо както е. Статията T5 казва, че crawl-ът „largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text“, а C4 pipeline-ът, който въвежда, е списък от груби heuristics — пази само редове, завършващи с terminal punctuation, маха страници с по-малко от три изречения, маха всяка страница с curly brace или дума от публичен списък с obscenities — превръщайки двадесет терабайта месечен текст в около 750 GB.15
Груби е точната дума. Dodge et al. провериха какво премахват тези filters и откриха, че obscenity blocklist изтрива 42% от документи на African-American English и 32% на Hispanic-aligned English, срещу 6,2% от White-aligned English, оставяйки корпус 97,8% от последната категория.16 Правило без мнение за dialect се оказа с мнение.
После deduplication, което не е подреждане: Lee et al. откриват 61-word sentence, повторено 61 036 пъти в C4, и показват, че deduplicating намалява скоростта, с която моделите „emit memorized text“, десетократно, от 1,9% от generated token до 0,19%.17 Повече обаче не е по-добре — екипът на FineWeb deduplicate-на глобално през 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 съобщава за filtering bug, оставил benchmarks в данните без път назад: „because of cost considerations it was infeasible to retrain the model“.7
Provenance е нерешената част. The Pile беше публикуван с компонент от 100,96 GiB, наречен Books3 — 12% от корпуса и, по собствената consent table на статията, книги от private torrent tracker;19 той беше свален offline през август 2023 г. след copyright complaint. Правната позиция към септември 2026 г. е неуредена, а трите американски решения, цитирани като тенденция, си противоречат. Alsup прие, че training върху законно придобити книги е „exceedingly transformative“, но постанови, че библиотека, построена от pirated copies, не е, и 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 Нито един US appellate court не се е произнесъл по въпроса.
Хората вършат частите, които loss-ът не може. TIME съобщи през януари 2023 г., че работници, label-ващи toxic text за OpenAI чрез фирмата Sama, получават „between around $1.32 and $2 per hour“, докато четат пасажи, описващи child sexual abuse, torture and self-harm, докато OpenAI плаща на Sama $12.50 на час за работата; Sama оспорва както диапазона на заплащането, така и quota-та.23 Това е filtering около pretraining, не самият pretraining — но е на същата фактура и е мястото, където стои човек.
Електричеството е реално и обикновено се цитира погрешно. Най-внимателната публикувана стойност е тази на BLOOM: 1 082 990 GPU-hours, 433 MWh и 24,7 tonnes CO₂ equivalent за run-а, 50,5 с manufacturing и idle nodes;24 Patterson et al. поставят GPT-3 на 1 287 MWh и 552 tonnes.25 Две предупреждения. Предимството на BLOOM е френската nuclear grid при 57 g CO₂ на kWh, не ефективност — той използва повече енергия от OPT-175B. А най-цитираната emissions стойност в областта, 626 155 lb на Strubell et al. за neural architecture search, по-късно беше показана като 88 пъти твърде висока, защото е приела, че search-ът е вървял на full model size, когато е вървял върху proxy.26 Рамката на LBNL е защитимата: US data centres са използвали 192 TWh през 2024 г., 4,7% от националното електричество — число, прикачено към индустрия, не към отделен run.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, така че когато остареят, да е ясно кое да се замени.
Peak throughput
Връзка към раздела: Peak throughputСтраницата на NVIDIA за H100 изброява 1 979 teraFLOPS BF16 tensor-core throughput под бележка „with sparsity“.29 Нито един pretraining run не използва structured sparsity, така че dense стойността е половината: 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 node, достъпена на 2026-09-06: $3.99 на GPU-hour, тоест $31.92 на час за node.30
Съотношението на Chinchilla, , дава и следователно .
| бюджет | H100-hours | FLOPs | compute-optimal параметри | token | на един 8×H100 node | 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 days | 2 |
| $100,000 | 25,063 | 3.6e22 | 17.3 B | 345 B | 131 days | 12 |
| $1,000,000 | 250,627 | 3.6e23 | 54.6 B | 1.09 T | 4 years | 116 |
| $10,000,000 | 2,506,266 | 3.6e24 | 173 B | 3.45 T | 36 years | 1,160 |
| $100,000,000 | 25,062,657 | 3.6e25 | 546 B | 10.9 T | 358 years | 11,603 |
Четете последните две колони заедно. При $10 000 получавате модел с 5 милиарда параметъра на един нает node за две седмици. При $100 000 000 аритметиката казва 546 милиарда параметъра — и дванадесет хиляди H100, свързани за три месеца, което не е нещо, което наемате с кредитна карта. След около $100 000 обвързващото ограничение престава да е парите и става cluster-ът.
Преди да се доверите на такава таблица, тествайте я срещу run-ове, чиято реална цена е публикувана — llm.c възпроизвежда GPT-2 124M за „~90 minutes“ на 8×A100 node „for about $20“, и GPT-2 1.6B за 24 часа на 8×H100 node за $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 на GPU-hour, под list цената на Lambda от $3.99; по list е по-близо до $64.
През 2019. Няма primary source: OpenAI никога не публикува duration или cost. Веригата върви през The Register, февруари 2019 г., съобщаващ „256 Google TPU3 cores“ без цена и без duration; после Synced, юни 2019 г., отбелязващ, че hardware струва $256 на час в Google Cloud и изрично казващ, че „OpenAI didn't specify the training duration“. $43 008 са $256 на час по предполагаеми 168 часа, които никой никога не е sourced.
Така че честното заглавие е: модел, съответстващ на публикувания benchmark score на GPT-2, може да се обучи днес за доста под $100 върху нает hardware, срещу цена от 2019 г., която никога не е публикувана и чиято прочута оценка лежи върху неподкрепено предположение за duration. Сривът е реален и съвременната половина е възпроизводима от всеки с кредитна карта; ratio-то е аритметика върху число, което не съществува. Това е състоянието на публикуваните training costs като цяло. Статията GPT-3 не съдържа никаква dollar amount, само FLOPs в Table D.1;7 статията Llama 3 също не съдържа такава.5 Всяка training cost, която сте чели, е estimate от FLOP count, hardware assumption и price assumption — винаги си струва да питате чие.
Какво знае base model и кога е спрял да го знае
Връзка към раздела: Какво знае base model и кога е спрял да го знаеРезултатът е видял фиксиран корпус, събран в определен момент, и от това следват две свойства.
Първото е knowledge cutoff. След датата на събиране моделът не знае нищо — не „не е сигурен“, нищо — и ще confabulate-ва гладко, вместо да го каже, защото такова поведение никога не е било обучавано. Model card на Llama 3.1 дава декември 2023 г.;33 всеки модел има такъв cutoff, и това е свойство на training data, не на deployment-а. Заобикалянето му е retrieval проблем, което е Глава 19.
Второто е, че base model довършва, вместо да отговаря. Дайте му „Коя е столицата на Франция?“ и правдоподобно продължение е друг въпрос, защото в корпуса този низ най-често се появява в списък с упражнения.
Накъде продължава това
Връзка към раздела: Накъде продължава товаText completer не е assistant. Той не следва instructions, защото нищо в корпуса не му е казало, че request трябва да бъде изпълнен, а не продължен. Няма понятие за conversation с двама участници. Ще произведе с охота най-вероятното продължение на вреден prompt, защото probable е единственото, за което някога е бил оптимизиран.
Превръщането му в нещо, което отговаря, изисква втори stage, струващ частица от процента от първия, и състоящ се почти изцяло в това да му покажете examples на желаното поведение и после да сравнявате двойки от собствените му outputs. Този stage е мястото, откъдето идват instruction following, chat templates, refusals и — това изненадва хората — способността да call-не tool. Глава 11 е този stage: supervised fine-tuning, RLHF, DPO и GRPO, и въпросът какво означава „aligned“ и кой решава.
Източници и метод
Връзка към раздела: Източници и методСъщо си струва да се чете заедно с тази глава: build-nanogpt на Karpathy и придружаващото го video, които минават през пълно GPT-2 reproduction end to end с темпо, което тази глава не може да си позволи; и 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-allocation експонентите са Table 6. Обърнете внимание, че има два compute laws, при фиксиран 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, convention за броене на параметри в 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 и parallelism, lectures 9 и 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, refit-ва и отчита corrected exponents и много по-широки intervals. ↩
-
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 съдържа и counterweight: модели, обучени при 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, BIG-Bench meta-analysis §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. Собствената му front page твърди „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 filters са §2.2. Статията дава размери в bytes, не token; числото 156-billion-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 criterion. ↩
-
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 result е §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 е round-down. ↩
-
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, undecided at the time of writing. ↩
-
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, които са изпълнили every target; junior labellers, мнозинството, са получавали $1.32. Rebuttal-ът на 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 и 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 estimate е §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). Това ревизира широко цитирания report от 2024 г. надолу за historical series; ако цитирате стойността 176 TWh за 2023 г., цитирате superseded edition. ↩
-
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 на статията са cited from 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 стойността, използвана тук, е половината от публикуваните 1 979 TFLOPS. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(accessed 2026-09-06). On-demand, на GPU на час, преди данъци. Цените в този раздел ще остареят по-бързо от всичко друго в този курс; аритметиката около тях няма. ↩ -
Karpathy, A.
karpathy/llm.c, discussion #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 May 2024), and 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 и „time to GPT-2“ leaderboard (accessed 2026-09-06). Стойността $48 и CORE-score дефиницията на „GPT-2 capability“ са и двете в README; собственотоspeedrun.shна repository казва „approximately 1.5 hours“, така че третирайте двучасовата стойност като закръглена. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdinmeta-llama/llama-models(accessed 2026-09-06). Източник за 30.84 M H100-hours за 405 B модела, общите 39.3 M, location-based стойността 11 390 tCO2eq и data cutoff през декември 2023 г. ↩