Към съдържанието
10/30Глава 10 от 30

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, достигнат при всеки бюджет:

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. Нищо в първите девет глави не предсказва това. Зад него няма теорема — това е емпирична закономерност, която с различен експонент важи през десетте порядъка между този laptop и datacentre, и е единственото наблюдение, убедило цяла индустрия да похарчи БВП на малка държава за GPU.

Нищо в целта не се променя. Моделът все още предсказва следващия token, loss-ът все още е cross-entropy от Глава 4, приложена към факторизацията от Глава 8, оптимизаторът все още е AdamW от Глава 6. Pretraining не е нов алгоритъм; това е същият алгоритъм, пуснат върху корпус, достатъчно голям, че run-ът трябва да се бюджетира. Две неща го правят възможно: labels са безплатни, защото целта за позиция tt е token-ът при t+1t+1 и вече е в текста; а последният раздел на Глава 6 премахна възражението, защото модел с много повече параметри, отколкото класическите правила позволяват, не се разпада, а се подобрява. Резултатът е base model — нещо, което продължава текст, вместо да отговаря.

Преди всичко това да може да се бюджетира, трябва да се преброи, а областта го брои с една формула:

C6NDC \approx 6ND

където NN е броят параметри, DD са training token, а CC са общите floating-point операции. Kaplan et al. я извеждат в две стъпки.1 Forward: 2 FLOPs на параметър на token, защото всеки параметър в матрично умножение се използва веднъж на token, в едно умножение и едно събиране. Backward: два пъти forward, защото backward pass-ът от Глава 5 изчислява два gradient-а във всеки layer — спрямо inputs на layer-а, за да продължи сигналът да пътува, и спрямо неговите weights — всеки е матрично умножение с размера на forward, така че 4N4N.

Това е цялото извеждане и си струва да се провери, вместо да се вярва. PyTorch идва с реален FLOP брояч, torch.utils.flop_counter.FlopCounterMode, който прихваща всяка операция, dispatch-ната от модела, и сумира реалната работа. Пуснете го през четири порядъка, най-големия върху meta device, който алокира 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 layers, TT 256788 7367 254 4004.60e101.0319.4853.000
dd 512, 8 layers, TT 25625 183 23251 045 8883.26e111.0382.1043.000
dd 768, 12 layers, TT 102484 973 056124 356 8641.75e121.1451.6763.000
dd 1600, 48 layers, TT 10241 474 870 4001 556 920 0002.10e131.1001.1613.000
dd 4096, 32 layers, TT 20486 442 983 4246 582 444 0328.74e131.0801.1043.000
dd 8192, 80 layers, TT 819264 427 147 26465 544 929 2803.75e151.1631.1833.000

Съотношението forward+backward към forward е 3.000, точно, на всеки мащаб: не приближение, което случайно е добро, а аритметичната идентичност по-горе, върната като кръгло число от брояч, който не знае нищо за извеждането.

След това измерената обща стойност стои между 3% и 17% над 6ND6ND, след като NN брои embedding matrices — а тази уговорка има значение, защото двете основополагащи статии броят NN различно. 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 двете се различават с фактор девет, както показва първият ред.

Остатъчната разлика е това, което 6ND6ND нарочно пропуска: attention scores. Eq. (2.2) на Kaplan записва 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) cost, който Глава 9 въведе, а Глава 16 превръща в цена.

Памет: какво всъщност трябва да се побере

Връзка към раздела: Памет: какво всъщност трябва да се побере

Compute решава колко дълго трае run-ът; паметта решава дали изобщо може да започне. Обучавайте с plain fp32 AdamW и всеки параметър носи четири числа: weight, неговия gradient и running mean mm и variance vv на Adam — двете средни, построени на ръка в Глава 6. Четири числа по четири байта са 16 байта на параметър, преди дори една activation. Измерено на 8 GB laptop GPU, като resident allocation е взета в точката от step-а, в която няма жив graph:

моделvocabularybatchNN16N16N предсказаноresident измереноpeak в stepразликата
dd 512, 8 layers50 257851 045 888779 MB801 MB2 500 MB1 699 MB
dd 512, 8 layers4 096827 411 456418 MB426 MB1 043 MB617 MB
dd 256, 6 layers4 09685 839 36089 MB89 MB382 MB293 MB
dd 256, 6 layers4 096325 839 36089 MB89 MB1 259 MB1 170 MB
dd 256, 6 layers4 0961285 839 36089 MB89 MB4 771 MB4 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 байта по друг път — 2Ψ2\Psi за fp16 weights, 2Ψ2\Psi за fp16 gradients, 4Ψ4\Psi за 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, необходимо само когато TT е достатъчно дълго 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 постига — и именно то превръща спретнатото 6ND6ND в wall-clock време и следователно в пари.

Kaplan и залогът, който индустрията направи

Връзка към раздела: Kaplan и залогът, който индустрията направи

През януари 2020 г. Kaplan et al. обучиха grid от transformers и откриха, че test loss следва power law във всеки от трите ресурса през повече от шест порядъка.1 Техният §1.2 дава три fitted laws:

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 престава да бъде хазарт и става покупка с публикуван обменен курс, което е точно аргументът, отключил капитала.

После дойде предписанието, и тук статията сгреши по начин, който струваше на индустрията много пари. Table 6 на Kaplan дава NoptC0.73N_{\text{opt}} \propto C^{0.73} и DoptC0.27D_{\text{opt}} \propto C^{0.27}: десет пъти повече 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 на параметър, навсякъде.

През март 2022 г. Hoffmann et al. обучиха над 400 модела от 70 милиона до 16 милиарда параметъра и стигнаха до обратното заключение по три независими пътя.2 Тяхната Table 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 в nats на token, token на параметър в скоби, bold за най-добрия модел при всеки бюджет; тирето е точка, която не е пускана, защото бюджетът изисква повече текст, отколкото корпусът съдържа, или размерът е извън sweep-а там.

Четете надолу по колона: loss-ът пада, стига дъно и пак се качва. Един модел може да е твърде голям за бюджета си точно толкова лесно, колкото и твърде малък — при 101410^{14} наказанието за избор на 665 280 параметъра вместо 295 808 е 0.08 nats, което по envelope-а, fitted по-горе, е loss-ът, който правилно оразмерен модел достига с 18% по-малко compute. Изборът на грешна форма изхвърля една пета от бюджета. Това е Figure 3 на Chinchilla за един следобед на един GPU вместо с четиристотин модела.

Сега четете напречно. При 101310^{13} най-добрият модел е най-малкият в sweep-а; при 101410^{14} е 295 808 параметъра, ограден от двете страни. Оптимумът се мести надясно с растежа на бюджета, което е цялото съдържание на корекцията. Fit-нете третия подход от статията — повърхността L(N,D)=E+A/Nα+B/DβL(N,D) = E + A/N^{\alpha} + B/D^{\beta} върху всеки run — и минимизирайте при условие 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, от laptop, срещу 0.73 на Kaplan. Съвпадение до три цифри от fit с три бюджета е късмет; съвпадение до първата не е. Експонентът пътува — константата не, защото token-to-parameter ratio при тези optima е 170 до 540, не 20. Три причини, всички поучителни. EE fit-ва до нула, защото при loss над 4 nats run-ът не е близо до entropy floor, който доминира fit-а на Chinchilla. Batch size и learning rate бяха фиксирани, вместо tuned за всяка точка, което ощетява run-овете с най-малко steps — а това са големите модели: при 101310^{13} FLOPs модел с 1,28 милиона параметъра получава общо 159 optimizer steps, далеч под няколкото хиляди, които членът SminS_{\min} на 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-а си от бюджета по същата причина.

Те са най-полезният емпиричен резултат в областта и редовно се продават прекалено. Четири ограничения.

Те предсказват loss, не capability. Лявата страна е cross-entropy върху held-out text. Нищо в тези статии не разрешава твърдение дали модел ще пише правилен SQL, ще откаже вредна заявка или ще използва tool. Това отново е урокът от Глава 5: предсказание на loss-а не е предсказание на поведението, за което плащате.

Те са fitted, не derived. Няма теория, която произвежда αN=0.076\alpha_N = 0.076. Константите се местят с 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 модел след това плаща грубо 2N2N 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. го формализираха, като минимизираха 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 Съотношението не е остаряло; то отговаря на въпрос, който вече не е този, който се задава.

Loss-ът пада гладко. Benchmark scores понякога не. Wei et al. събраха случаи, в които задача стои на ниво chance през порядъци training compute и после скача — трицифрена аритметика, появяваща се в GPT-3 при около 2×10222 \times 10^{22} FLOPs, MMLU, издигащ се над guessing между 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 — гладка крива, вдигната на голяма степен, изглежда като скала. Сменете метриката с такава, която брои 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, така че когато остареят, да е ясно кое да се замени.

Страницата на NVIDIA за H100 изброява 1 979 teraFLOPS BF16 tensor-core throughput под бележка „with sparsity“.29 Нито един pretraining run не използва structured sparsity, така че dense стойността е половината: 989,5 TFLOP/s.

Table 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, D=20ND = 20N, дава C=6ND=120N2C = 6ND = 120N^2 и следователно N=C/120N = \sqrt{C/120}.

бюджетH100-hoursFLOPscompute-optimal параметриtokenна един 8×H100 nodeGPU за приключване за 90 дни
$100253.6e19546 M10.9 B3.1 h1
$1,0002513.6e201.73 B34.5 B31.3 h1
$10,0002,5063.6e215.46 B109 B13 days2
$100,00025,0633.6e2217.3 B345 B131 days12
$1,000,000250,6273.6e2354.6 B1.09 T4 years116
$10,000,0002,506,2663.6e24173 B3.45 T36 years1,160
$100,000,00025,062,6573.6e25546 B10.9 T358 years11,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

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 на 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, само 3.14×10233.14 \times 10^{23} 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 навлизат по-дълбоко от раздела по-горе в материал, който този курс разглежда веднъж и делегира.

  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 са Eqs. (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 при optimal 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, 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

  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, refit-ва и отчита corrected exponents и много по-широки intervals.

  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 е fitted 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 аргумента срещу 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 съдържа и counterweight: модели, обучени при extreme 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. Аргументът за метриката е §2, BIG-Bench meta-analysis §4, constructed vision example §5.

  14. 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, оценен тук.

  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 filters са §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, и са проценти от 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 result е §3.4. Публикуваният 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 е round-down.

  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-ът освобождава само past inputs, не outputs и не 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 не беше решен и остава live.

  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, които са изпълнили every target; 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 estimate е §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 на статията са cited from Strubell et al. и наследяват correction-а по-горе — което е илюстрация на аргумента ѝ, а не опровержение.

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

  30. Lambda. GPU Cloud pricing, lambda.ai/pricing (accessed 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), and 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 и „time to GPT-2“ leaderboard (accessed 2026-09-06). Стойността $48 и CORE-score дефиницията на „GPT-2 capability“ са и двете в README; собственото speedrun.sh на repository казва „approximately 1.5 hours“, така че третирайте двучасовата стойност като закръглена.

  33. Meta. Llama 3.1 model card, models/llama3_1/MODEL_CARD.md in meta-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 г.


Създадено от

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.
jev12 мин четене

AI моделът Jev е създаден за решения, не за проза

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

Abstract legal research workspace with documents, search nodes and governance controls.
openai11 мин четене

Astra for Law на OpenAI е правна AI система, не нов модел

Правният старт на OpenAI е не толкова за нов базов модел, колкото за системата около него: домейн извличане, надеждни инструменти, права, бенчмаркове и пътища за преглед.

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineering12 мин четене

Инженеринг на контекста за AI агенти с дълъг хоризонт

Дълго работещите агенти не се провалят само защото прозорецът е малък. Те се провалят, когато файлове, изходи от инструменти и остаряла история изтласкат задачата, която агентът е трябвало да завърши.

Готови ли сте LIA да избира вместо вас?

Създавайте с всички AI модели на едно място — започнете безплатно още днес.