Pretrainingul unui LLM: date, compute, scaling laws și cost
Douăzeci de modele antrenate pe un GPU de laptop pentru a măsura o scaling law și a verifica estimarea 6ND.
Pe această pagină
Capitolul 9 s-a încheiat cu un bloc transformer care se antrenează. Pune câteva unul peste altul, leagă loss-ul de next-token din Capitolul 8 la ieșire și nu mai rămâne nimic de inventat. Tot ce rămâne este o achiziție.
Este o schimbare mai mare decât pare. Fiecare capitol de până acum a întrebat învață? — o întrebare cu răspuns da sau nu, pe care un laptop o tranșează în zece minute. Acesta pune o întrebare în care intră bani: dată fiind o cantitate fixă de aritmetică, care este cel mai bun model pe care îl pot cumpăra? Răspunsul este o formulă, iar în 2018 nu era evident pentru nimeni.
Iată întrebarea aceea rezolvată prin măsurare, pe un singur GPU de laptop. Douăzeci de modele, de la 98.624 la 15 milioane de parametri, au fost antrenate de la zero pe 174 de milioane de tokens din Wikipedia — un vocabular BPE de 2.048 de tokens antrenat cum îl antrenează Capitolul 7, transformerul din Capitolul 9. Fiecare rulare a primit exact unul dintre trei bugete de compute și nici o operație în plus, deci un model mai mare citește neapărat mai puțin text. Cel mai bun held-out loss atins la fiecare buget:
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 computeDe zece ori mai multă aritmetică reduce loss-ul cu 19 %, iar cele trei puncte stau pe o linie dreaptă în log-log. Nimic din primele nouă capitole nu prezice asta. Nu există o teoremă în spate — este o regularitate empirică, valabilă cu un exponent diferit pe cele zece ordine de mărime dintre acest laptop și un centru de date, și este observația care a convins o industrie să cheltuiască PIB-ul unei țări mici pe GPU-uri.
Ce este pretrainingul și ce este nou la el
Link către secțiunea: Ce este pretrainingul și ce este nou la elObiectivul nu se schimbă. Modelul tot prezice următorul token, loss-ul este tot cross-entropy din Capitolul 4 aplicată factorizării din Capitolul 8, optimizatorul este tot AdamW din Capitolul 6. Pretrainingul nu este un algoritm nou; este același algoritm rulat pe un corpus suficient de mare încât rularea trebuie bugetată. Două lucruri fac asta posibil: etichetele sunt gratuite, deoarece ținta pentru poziția este tokenul de la și se află deja în text; iar ultima secțiune din Capitolul 6 a eliminat obiecția, fiindcă un model cu mult mai mulți parametri decât permit regulile clasice nu se destramă, ci se îmbunătățește. Rezultatul este un model de bază — ceva care continuă text, nu răspunde.
Numărarea compute-ului înainte de a-l cheltui: 6ND
Link către secțiunea: Numărarea compute-ului înainte de a-l cheltui: 6NDÎnainte ca totul să poată fi bugetat, trebuie numărat, iar domeniul îl numără cu o singură formulă:
unde este numărul de parametri, numărul de tokens de antrenare, iar operațiile totale în virgulă mobilă. Kaplan et al. o derivă în doi pași.1 Forward: 2 FLOPs per parametru per token, deoarece fiecare parametru dintr-o înmulțire de matrici este folosit o dată per token, într-o înmulțire și o adunare. Backward: de două ori forward, deoarece backward pass-ul din Capitolul 5 calculează două gradients la fiecare strat — față de intrările stratului, ca semnalul să continue, și față de weights — fiecare fiind o înmulțire de matrici de mărimea celei din forward, deci .
Aceasta este întreaga derivare și merită verificată, nu crezută. PyTorch include un contor real de FLOP, torch.utils.flop_counter.FlopCounterMode, care interceptează fiecare operație lansată de model și adună munca efectivă. Rulează-l pe patru ordine de mărime, cel mai mare pe dispozitivul meta, care alocă forme, nu memorie:
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))| configurație | fără embeddings | total | măsurat, fwd+bwd | ÷ (total ) | ÷ (fără emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 straturi, 256 | 788.736 | 7.254.400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 straturi, 256 | 25.183.232 | 51.045.888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 straturi, 1024 | 84.973.056 | 124.356.864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 straturi, 1024 | 1.474.870.400 | 1.556.920.000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 straturi, 2048 | 6.442.983.424 | 6.582.444.032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 straturi, 8192 | 64.427.147.264 | 65.544.929.280 | 3.75e15 | 1.163 | 1.183 | 3.000 |
Raportul forward+backward peste forward este 3.000, exact, la fiecare scară: nu o aproximație întâmplător bună, ci identitatea aritmetică de mai sus returnată ca număr rotund de un contor care nu știe nimic despre derivare.
Totalul măsurat stă apoi între 3 % și 17 % peste , odată ce numără matricile de embedding — iar clauza contează, fiindcă cele două lucrări fondatoare numără diferit. Kaplan exclude „toate embeddings de vocabular și poziționale” fiindcă așa „produce scaling laws semnificativ mai curate” (§1.3); Appendix F din Chinchilla spune „numărăm și matricile embeddings în numărul total de parametri”.2 Pentru un vocabular larg și o dimensiune ascunsă îngustă, cele două diferă de nouă ori, cum arată primul rând.
Diferența rămasă este ceea ce omite deliberat: scorurile de attention. Ecuația (2.2) a lui Kaplan scrie costul forward ca și elimină al doilea termen fiindcă — sigur în 2020, mai puțin sigur acum, și motivul pentru care raportul urcă odată cu — de aceea două rânduri de aici au același de 1.024 și raportul scade, de la 1.145 la 1.100, când trece de la 768 la 1.600. Este costul introdus în Capitolul 9 și transformat în preț în Capitolul 16.
Memorie: ce trebuie să încapă de fapt
Link către secțiunea: Memorie: ce trebuie să încapă de faptCompute-ul decide cât durează o rulare; memoria decide dacă poate începe. Antrenează cu AdamW fp32 simplu și fiecare parametru poartă patru numere: weight-ul, gradientul, media mobilă Adam și varianța — cele două medii construite manual în Capitolul 6. Patru numere a câte patru bytes înseamnă 16 bytes per parametru, înainte de orice activare. Măsurat pe un GPU de laptop de 8 GB, luând alocarea rezidentă în punctul din pas în care nu mai există graph:
| model | vocabular | batch | prezis | rezident măsurat | vârf într-un pas | diferența | |
|---|---|---|---|---|---|---|---|
| 512, 8 straturi | 50.257 | 8 | 51.045.888 | 779 MB | 801 MB | 2.500 MB | 1.699 MB |
| 512, 8 straturi | 4.096 | 8 | 27.411.456 | 418 MB | 426 MB | 1.043 MB | 617 MB |
| 256, 6 straturi | 4.096 | 8 | 5.839.360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 straturi | 4.096 | 32 | 5.839.360 | 89 MB | 89 MB | 1.259 MB | 1.170 MB |
| 256, 6 straturi | 4.096 | 128 | 5.839.360 | 89 MB | 89 MB | 4.771 MB | 4.681 MB |
Predicția și măsurarea se potrivesc în limita a 3 %. Surpriza este ultima coloană: activările eclipsează modelul. Același model de 5,8 milioane de parametri care are nevoie de 89 MB de stare persistentă are nevoie de 4.681 MB de activări la un batch de 128 — de cincizeci și două de ori modelul — iar mare parte nu este transformerul deloc. Sunt logits: câte un vector de mărimea vocabularului per token, la patru bytes per intrare: 512 MB în ultimul rând, 393 MB în primul. Mărimea vocabularului a fost aleasă în Capitolul 7 și încă decide ce încape pe placă.
Termenul dominant depinde de forma rulării, motiv pentru care Micikevicius et al. spun că memoria „este dominată de activări”3, în timp ce ZeRO spune că un model de 1,5 miliarde de parametri are nevoie de „cel puțin 24 GB” doar pentru stările modelului.4 ZeRO ajunge la aceiași 16 bytes pe altă cale — pentru weights fp16, pentru gradients fp16, câte pentru fp32 master weights și cele două momente Adam — ceea ce, pentru 70 de miliarde de parametri, înseamnă 1,12 terabytes, cât paisprezece GPU-uri de 80 GB înainte de orice activare.
Paralelismul, într-un paragraf și o delegare
Link către secțiunea: Paralelismul, într-un paragraf și o delegareNimic din asta nu încape pe un singur dispozitiv la scară frontier, așa că rularea se împarte în patru feluri deodată. Data parallelism pune o copie a modelului pe fiecare GPU și mediază gradients — varianta implicită, pe care ZeRO o îmbunătățește refuzând copiile redundante ale stării optimizatorului. Tensor parallelism împarte matrici individuale între dispozitive. Pipeline parallelism dă fiecărui dispozitiv un grup contiguu de straturi. Context parallelism împarte însăși secvența, necesar doar când devine suficient de lungă ca termenul de attention să domine. Tabelul 4 din Llama 3 le listează pe toate patru simultan: tensor 8, context până la 16, pipeline 16, data până la 128, pe 16.384 GPU-uri H100.5 Atât va spune acest curs despre asta; ingineria distributed training este un semestru separat, iar CS336 de la Stanford este acel semestru, cursurile 5–8, cu cod.6 Ce rămâne după delegare este un singur număr, model FLOPs utilisation — fracțiunea din vârful aritmetic al unui GPU pe care o obține o rulare reală — care transformă ordonatul în timp de ceas și deci în bani.
Kaplan și pariul făcut de industrie
Link către secțiunea: Kaplan și pariul făcut de industrieÎn ianuarie 2020, Kaplan et al. au antrenat o grilă de transformers și au găsit că test loss-ul urmează o power law în fiecare dintre cele trei resurse pe mai mult de șase ordine de mărime.1 §1.2 dă trei legi ajustate:
cu însoțitoarele pentru date și pentru compute alocat optim. Constantele nu sunt universale, iar lucrarea o spune: „valorile numerice precise ale , și depind de mărimea vocabularului și tokenization și, prin urmare, nu au un sens fundamental.”
Exponenții sunt minusculi: de zece ori parametrii cumpără un factor din loss-ul rămas. Pare nimic, și acesta este cel mai important fapt aici — randamentele sunt groaznice și nu se opresc niciodată. O power law cu exponent mic promite că următorul ordin de mărime va ajuta, mai puțin decât precedentul, pentru totdeauna. Cumpărarea de compute încetează să fie un pariu și devine o achiziție cu curs de schimb publicat, exact argumentul care a deblocat capitalul.
Apoi a venit prescripția, iar aici lucrarea s-a înșelat într-un fel care a costat industria mulți bani. Tabelul 6 din Kaplan dă și : de zece ori compute înseamnă un model de 5,4 ori mai mare hrănit cu doar 1,9 ori mai mult text. Rezumatul este explicit — „antrenarea optimă din punctul de vedere al compute implică antrenarea unor modele foarte mari pe o cantitate relativ modestă de date și oprirea mult înainte de convergență.” Domeniul a făcut exact asta: GPT-3 are 175 de miliarde de parametri pe 300 de miliarde de tokens,7 Gopher 280 de miliarde pe 300 de miliarde, Megatron-Turing NLG 530 de miliarde pe 270 de miliarde.2 De la jumătate de token la doi tokens per parametru, peste tot.
Chinchilla și ce măsura sweep-ul de mai sus
Link către secțiunea: Chinchilla și ce măsura sweep-ul de mai susÎn martie 2022, Hoffmann et al. au antrenat peste 400 de modele, de la 70 de milioane la 16 miliarde de parametri, și au ajuns la concluzia opusă prin trei căi independente.2 Tabelul 2 raportează exponentul din ca 0,50, 0,49 și 0,46, față de 0,73 la Kaplan. Pe scurt: mărimea modelului și datele de antrenare trebuie să crească în aceeași proporție.
A doua lor abordare este cea reprodusă de sweep-ul de la începutul capitolului, la o milionime din scară: fixezi un buget, antrenezi multe mărimi exact la acel buget, plotezi loss-ul final față de mărimea modelului.
| parametri | |||
|---|---|---|---|
| 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 în nats per token, tokens per parametru în paranteze, bold pentru cel mai bun model la fiecare buget; liniuța este un punct nerulat, fiindcă bugetul cerea mai mult text decât conține corpusul sau mărimea era în afara celor testate acolo.
Citește în jos pe o coloană: loss-ul scade, atinge minimul și urcă din nou. Un model poate fi prea mare pentru bugetul lui la fel de ușor cum poate fi prea mic — la penalizarea pentru alegerea a 665.280 de parametri în loc de 295.808 este 0,08 nats, care pe anvelopa ajustată mai sus este loss-ul la care un model dimensionat corect ajunge cu 18 % mai puțin compute. Alegerea formei greșite aruncă o cincime din buget. Aceasta este Figura 3 din Chinchilla într-o după-amiază pe un GPU, nu cu patru sute de modele.
Acum citește pe orizontală. La cel mai bun model este cel mai mic din sweep; la are 295.808 parametri, încadrat de ambele părți. Optimul se mută spre dreapta pe măsură ce bugetul crește, ceea ce este întreg conținutul corecției. Ajustează a treia abordare a lucrării — suprafața peste fiecare rulare — și minimizeaz-o sub constrângerea :
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, de pe un laptop, față de 0,73 la Kaplan. Potrivirea la trei cifre dintr-o ajustare pe trei bugete este noroc; potrivirea la prima nu este. Exponentul călătorește — constanta nu, fiindcă raportul tokens-per-parametru la aceste optime este 170–540, nu 20. Trei motive, toate instructive. se ajustează la zero fiindcă la un loss peste 4 nats rularea nu este nicăieri aproape de podeaua de entropie care domină ajustarea Chinchilla. Batch size și learning rate au fost fixe, nu ajustate per punct, ceea ce dezavantajează rulările cu cei mai puțini pași — adică modelele mari: la FLOPs, un model de 1,28 milioane de parametri primește 159 de pași de optimizator în total, mult sub cele câteva mii pe care termenul al lui Kaplan spune că le cere orice model. O scaling law este ajustată într-un regim, iar aceasta stă cu șase ordine de mărime sub Chinchilla.
De aici rezumatul lucrării: „current large language models are significantly undertrained”. Chinchilla este demonstrația — 70 de miliarde de parametri pe 1,4 trilioane de tokens, cu același compute total ca Gopher de 280 de miliarde pe 300 de miliarde, pe care îl bate în 51 din 57 de sarcini MMLU, 67,5 % față de 60 %.2 De patru ori mai mic, de patru ori și jumătate mai mult text, aceiași bani, model mai bun.
Două avertismente despre acel raport faimos. „Douăzeci de tokens per parametru” nu este o propoziție din lucrare, care spune doar că „pentru fiecare dublare a mărimii modelului, numărul de tokens de antrenare trebuie și el dublat”; 20 este o inferență din Tabelul 3 și din propriul Chinchilla, 70 B pe 1,4 T. Iar precizia lui este mai slabă decât publicată: Besiroglu et al. au reajustat pornind de la o digitizare a Figurii 4, au găsit că parametrii originali „se potrivesc prost datelor reconstruite”, cu intervale „neverosimil de strânse date fiind punctele”, și au pus intervalul onest la „între 4 și 40” tokens per parametru.8
Un detaliu al metodei Chinchilla achită o promisiune făcută în Capitolul 1 despre learning-rate schedules. Cosine schedule trebuie potrivit cu bugetul de tokens. Un model care va vedea 10 milioane de tokens trebuie să-și decaiedă learning rate-ul la zero la 10 milioane de tokens; dă-i un schedule pentru 100 de milioane, oprește-l devreme, și citești un loss la mijlocul coborârii, la o rată mult prea mare. Chinchilla antrenează fiecare model la patru lungimi de ciclu tocmai pentru asta; sweep-ul de mai sus își setează schedule-ul din buget din același motiv.
Ce nu promit scaling laws
Link către secțiunea: Ce nu promit scaling lawsSunt cel mai util rezultat empiric din domeniu și sunt vândute excesiv în mod regulat. Patru limite.
Prezic loss, nu capabilitate. Partea stângă este cross-entropy pe text held-out. Nimic din aceste lucrări nu autorizează o afirmație despre dacă un model va scrie SQL corect, va refuza o cerere dăunătoare sau va folosi un tool. Este lecția din Capitolul 5 din nou: o predicție a loss-ului nu este o predicție a comportamentului pentru care plătești.
Sunt ajustate, nu derivate. Nicio teorie nu produce . Constantele se mută cu tokenizerul — motiv pentru care o comparație de perplexity între două tokenizers nu are sens, cum a explicat Capitolul 8 — și cu amestecul de date, arhitectura și optimizatorul. Fiecare lege publicată este o lege a setup-ului care a produs-o, motiv pentru care Meta și-a reajustat propria lege înainte de Llama 3.5
Presupun un token proaspăt pentru fiecare pas, ceea ce presupune tacit un corpus infinit. Muennighoff et al. au măsurat ce se întâmplă când se termină: până la patru epoci de date repetate costă aproape nimic — un model de 8,7 miliarde de parametri pe 44 de miliarde de tokens unici văzuți de patru ori a terminat cu „doar 0,5 % validation loss mai mare” decât același model pe 178 de miliarde de tokens unici — în timp ce după circa șaisprezece epoci compute-ul suplimentar nu mai cumpără nimic.9
Și nimeni nu mai antrenează compute-optimal. Chinchilla minimizează costul antrenării; un model deployat plătește apoi aproximativ FLOPs per token generat, pentru totdeauna. LLaMA 1 a spus-o clar: „dat un nivel țintă de performanță, modelul preferat nu este cel mai rapid de antrenat, ci cel mai rapid la inference”.10 Sardana et al. au formalizat asta minimizând în schimb și au găsit că oricine așteaptă un miliard de cereri ar trebui să antreneze „mai mic și mai mult decât Chinchilla-optimal”.11 §9.1 din Llama 3 este de acord: modelele mici sunt antrenate „mult dincolo de punctul de compute optimal training, schimbând efectiv training compute pentru eficiență la inference”.5 Raportul nu este depășit; răspunde unei întrebări care nu mai este cea pusă.
Abilități emergente și disputa despre realitatea lor
Link către secțiunea: Abilități emergente și disputa despre realitatea lorLoss-ul scade lin. Scorurile pe benchmark-uri uneori nu. Wei et al. au adunat cazuri în care o sarcină stă la șansă pe ordine de mărime de training compute și apoi sare — aritmetica pe trei cifre apare în GPT-3 la circa FLOPs, MMLU urcă peste ghicit între și — și au numit tiparul: „o abilitate este emergentă dacă nu este prezentă în modele mai mici, dar este prezentă în modele mai mari”.12 Dacă aceasta este o proprietate reală, extrapolarea din experimente ieftine este nesigură, fiindcă abilitatea cumpărată poate să nu existe la nicio scară pe care îți permiți s-o testezi.
Schaeffer, Miranda și Koyejo au argumentat că mare parte este un artefact de măsurare, iar mecanismul este aritmetic.13 Per-token loss scade lin, deci probabilitatea ca un token să fie corect, , crește treptat. Evaluează modelul cu exact string match pe un răspuns de tokens și ridici probabilitatea la puterea — o curbă lină ridicată la o putere mare arată ca o prăpastie. Schimbă metrica cu una care numără tokens în loc să le ceară pe toate, pe aceleași ieșiri, și „performanța familiei se îmbunătățește lin, continuu și previzibil odată cu scara”.
Auditul lor este numărul de ținut minte — „din cele 39 de metrici preferate din BIG-Bench, cel mult 5 afișează emergență”, două metrici discontinue reprezentând peste 92 % din cazurile susținute — și la fel avertismentul: „nimic din această lucrare nu trebuie interpretat ca afirmație că large language models nu pot afișa abilități emergente”. Un salt într-un grafic este dovadă despre metrică până se arată altfel. Capitolul 29 este locul unde asta devine problema ta, fiindcă alegerea unei metrici cu prag dur este o decizie pe care o vei lua fără să observi.
De unde vin datele
Link către secțiunea: De unde vin dateleCorpusul este partea unei rulări de pretraining fără ecuație atașată și locul unde trăiesc cele mai multe decizii cu consecințe. Materia primă este un crawl web: arhiva Common Crawl din august 2026 conține „2,14 miliarde de pagini web sau 360 TiB de conținut necomprimat”, o lună, gratuită la descărcare.14 Aproape nimic nu este utilizabil ca atare. Lucrarea T5 spune că crawl-ul „constă în mare parte din text fără sens sau boiler-plate precum meniuri, mesaje de eroare sau text duplicat”, iar pipeline-ul C4 introdus acolo este o listă de euristici contondente — păstrează doar liniile care se termină cu punctuație terminală, elimină paginile cu mai puțin de trei propoziții, elimină orice pagină care conține o acoladă sau un cuvânt dintr-o listă publică de obscenități — transformând douăzeci de terabytes de text lunar în circa 750 GB.15
Contondent este cuvântul. Dodge et al. au auditat ce elimină filtrele și au găsit că blocklistul de obscenități șterge 42 % dintre documentele în engleză afro-americană și 32 % în engleză aliniată hispanic, față de 6,2 % în engleză aliniată albilor, lăsând un corpus 97,8 % din ultima categorie.16 O regulă fără opinie despre dialect a avut una.
Apoi deduplication, care nu este curățenie: Lee et al. au găsit o propoziție de 61 de cuvinte repetată de 61.036 de ori în C4 și au arătat că deduplicating reduce de zece ori rata cu care modelele „emit text memorat”, de la 1,9 % din tokens generați la 0,19 %.17 Mai mult nu este mai bine însă — echipa FineWeb a deduplicat global pe 96 de crawls, a obținut 4 trilioane de tokens și niciun câștig măsurabil, apoi a deduplicat fiecare crawl separat, a obținut 20 de trilioane și a egalat cel mai bun corpus existent.18
Apoi contamination. Llama 3 și-a măsurat-o și publicat-o: 98 % din AGIEval, 95 % din BIG-Bench Hard și 85 % din HellaSwag se suprapun cu setul de antrenare prin 8-grams, iar pentru MMLU o suprapunere atât de mare încât „este imposibil de obținut o estimare bună a câștigului de performanță”.5 §4 din GPT-3 raportează un bug de filtrare care a lăsat benchmark-uri în date fără cale de întoarcere: „din considerente de cost, era imposibil să reantrenăm modelul”.7
Proveniența este partea nerezolvată. The Pile a livrat o componentă de 100,96 GiB numită Books3 — 12 % din corpus și, după propriul tabel de consimțământ al lucrării, cărți dintr-un tracker privat de torrents;19 a fost scoasă offline în august 2023 după o plângere de copyright. Poziția legală în septembrie 2026 este neclară, iar cele trei hotărâri americane citate ca tendință se contrazic. Alsup a găsit antrenarea pe cărți obținute legal „extrem de transformatoare”, dar a decis că o bibliotecă construită din copii piratate nu era, iar Anthropic a închis acea jumătate pentru $1,5 miliarde, acoperind 482.460 de opere, circa $3.000 fiecare, aprobat la 20 iulie 2026.20 Chhabria a acordat Meta summary judgment, dar a scris că hotărârea lui „nu susține propoziția că folosirea de către Meta a materialelor protejate prin copyright pentru a-și antrena modelele de limbaj este legală”, ci doar că „acești reclamanți au adus argumentele greșite”.21 Bibas, hotărând împotriva Ross Intelligence, a notat că „doar AI non-generativ este în fața mea astăzi”.22 Nicio curte de apel americană nu s-a pronunțat asupra întrebării.
Oamenii fac părțile pe care loss-ul nu le poate face. TIME a raportat în ianuarie 2023 că lucrătorii care etichetau text toxic pentru OpenAI prin firma Sama luau acasă „între circa $1,32 și $2 pe oră” citind pasaje despre abuz sexual asupra copiilor, tortură și autovătămare, în timp ce OpenAI plătea Sama $12,50 pe oră pentru muncă; Sama contestă atât intervalul de plată, cât și norma.23 Aceasta este filtrarea din jurul pretrainingului, nu pretrainingul însuși — dar este pe aceeași factură și este locul unde stă o persoană.
Electricitatea este reală și de obicei citată greșit. Cea mai atentă cifră publicată este pentru BLOOM: 1.082.990 GPU-hours, 433 MWh și 24,7 tone de CO₂ echivalent pentru rulare, 50,5 incluzând fabricația și nodurile idle;24 Patterson et al. pun GPT-3 la 1.287 MWh și 552 de tone.25 Două avertismente. Avantajul BLOOM este rețeaua nucleară franceză la 57 g CO₂ per kWh, nu eficiența — a folosit mai multă energie decât OPT-175B. Iar cea mai citată cifră de emisii din domeniu, 626.155 lb la Strubell et al. pentru o căutare de neural architecture, s-a dovedit ulterior de 88 de ori prea mare, presupunând că search-ul a rulat la mărimea completă a modelului, când rula pe un proxy.26 Încadrarea LBNL este cea defensibilă: centrele de date din SUA au folosit 192 TWh în 2024, 4,7 % din electricitatea națională — un număr atașat unei industrii, nu unei rulări.
Firul comun este ceea ce Bender et al. au numit documentation debt: „ne punem într-o situație în care datasets sunt atât nedocumentate, cât și prea mari pentru a fi documentate post hoc”.27 Fiecare fapt de mai sus există fiindcă cineva s-a uitat. Pentru corpusurile din spatele modelelor folosite de majoritatea oamenilor, nimeni nu poate.
Cât costă de fapt
Link către secțiunea: Cât costă de faptAcum aritmetica pe care o vrea toată lumea, din patru intrări citate, astfel încât atunci când se învechesc să fie clar ce trebuie înlocuit.
Throughput de vârf
Link către secțiunea: Throughput de vârfPagina NVIDIA pentru H100 listează 1.979 teraFLOPS de throughput BF16 tensor-core sub o notă „with sparsity”.28 Nicio rulare de pretraining nu folosește sparsity structurată, deci cifra densă este jumătate: 989,5 TFLOP/s.
Utilizare
Link către secțiunea: UtilizareTabelul 4 din Llama 3 raportează 38–43 % BF16 model FLOPs utilisation. Ia 40 %: 395,8 TFLOP/s de aritmetică utilă per GPU.5
Prețul on-demand Lambda pentru un nod 8×H100 SXM, accesat 2026-09-06: $3,99 per GPU-hour, deci $31,92 pe oră pentru nod.29
Raportul Chinchilla, , dă și deci .
| buget | H100-hours | FLOPs | parametri compute-optimal | tokens | pe un nod 8×H100 | GPU-uri pentru 90 de zile |
|---|---|---|---|---|---|---|
| $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 zile | 2 |
| $100,000 | 25,063 | 3.6e22 | 17.3 B | 345 B | 131 zile | 12 |
| $1,000,000 | 250,627 | 3.6e23 | 54.6 B | 1.09 T | 4 ani | 116 |
| $10,000,000 | 2,506,266 | 3.6e24 | 173 B | 3.45 T | 36 ani | 1,160 |
| $100,000,000 | 25,062,657 | 3.6e25 | 546 B | 10.9 T | 358 ani | 11,603 |
Citește ultimele două coloane împreună. La $10.000 primești un model de 5 miliarde de parametri pe un nod închiriat în două săptămâni. La $100.000.000 aritmetica spune 546 de miliarde de parametri — și douăsprezece mii de H100 legate împreună timp de trei luni, lucru pe care nu-l închiriezi cu cardul. Dincolo de circa $100.000, constrângerea decisivă încetează să fie banii și devine clusterul.
Înainte să ai încredere într-un astfel de tabel, testează-l față de rulări ale căror costuri reale sunt publicate — llm.c reproduce GPT-2 124M în „~90 de minute” pe un nod 8×A100 „pentru circa $20”, iar GPT-2 1.6B în 24 de ore pe un nod 8×H100 pentru $672.30
$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.86Ambele sunt în limita a circa 15 %, aproximativ acuratețea pe care o merită acest tip de estimare și considerabil mai bună decât acuratețea cu care este de obicei citată.
Comparația de titlu, cu ambele definiții pe masă
Link către secțiunea: Comparația de titlu, cu ambele definiții pe masăCifra repetată cel mai des în acest subiect este că un model din clasa GPT-2, care costa circa $43.000 în 2019, poate fi reprodus azi cu câteva zeci de dolari. Jumătatea modernă este bine documentată; cea istorică nu.
Astăzi. README-ul nanochat al lui Karpathy: „îți poți antrena propriul GPT-2 capability LLM ... pentru doar $48 (~2 ore pe un nod GPU 8XH100) ... Pe o instanță spot, costul total poate fi mai aproape de ~$15.”31 „GPT-2 capability” este aici precis și publicat — depășește scorul CORE de 0,256525 al GPT-2 — pe un leaderboard al cărui cel mai bun rezultat la 14 martie 2026 este 1,65 ore. Cei $48 presupun $3 per GPU-hour, sub lista Lambda de $3,99; la listă este mai aproape de $64.
În 2019. Nu există sursă primară: OpenAI nu a publicat nici durată, nici cost. Lanțul pornește de la The Register, februarie 2019, care raportează „256 Google TPU3 cores” fără preț și fără durată; apoi Synced, iunie 2019, notează că hardware-ul costa $256 pe oră pe Google Cloud și afirmă explicit că „OpenAI nu a specificat durata antrenării”. $43.008 înseamnă $256 pe oră înmulțit cu 168 de ore presupuse, pentru care nimeni nu a dat vreodată o sursă.
Așadar titlul onest este: un model care egalează scorul benchmark publicat al GPT-2 poate fi antrenat astăzi cu mult sub $100 pe hardware închiriat, față de un cost din 2019 care nu a fost publicat niciodată și a cărui estimare faimoasă se sprijină pe o presupunere nesursată despre durată. Prăbușirea este reală, iar jumătatea modernă poate fi reprodusă de oricine are un card; raportul este aritmetică pe un număr care nu există. Aceasta este starea costurilor de antrenare publicate în general. Lucrarea GPT-3 nu conține nicio sumă în dolari, doar FLOPs în Tabelul D.1;7 nici lucrarea Llama 3 nu conține.5 Fiecare cost de antrenare pe care l-ai citit este o estimare dintr-un număr de FLOP, o presupunere de hardware și o presupunere de preț — merită mereu întrebat ale cui.
Ce știe un model de bază și când a încetat să știe
Link către secțiunea: Ce știe un model de bază și când a încetat să știeRezultatul a văzut un corpus fix, asamblat la un moment fix, iar de aici urmează două proprietăți.
Prima este knowledge cutoff. După data colectării, modelul nu știe nimic — nu „este nesigur”, ci nimic — și va fabula fluent în loc să spună asta, fiindcă a spune asta nu a fost niciodată un comportament pe care a fost antrenat. Model card-ul Llama 3.1 dă decembrie 2023;32 fiecare model are una, și este o proprietate a datelor de antrenare, nu a deploymentului. Ocolirea ei este o problemă de retrieval, adică Capitolul 19.
A doua este că un model de bază completează, nu răspunde. Dă-i „Care este capitala Franței?” și o continuare plauzibilă este o altă întrebare, fiindcă în corpus acel șir apare cel mai des într-o listă de exerciții.
Încotro mergem mai departe
Link către secțiunea: Încotro mergem mai departeUn completor de text nu este un asistent. Nu urmează instrucțiuni, fiindcă nimic din corpus nu i-a spus că o cerere trebuie ascultată, nu continuată. Nu are noțiunea unei conversații cu doi participanți. Va produce bucuros continuarea cea mai probabilă a unui prompt dăunător, fiindcă probabilul este singurul lucru pentru care a fost optimizat vreodată.
Transformarea lui în ceva care răspunde cere o a doua etapă, care costă o fracțiune de procent din prima și constă aproape în întregime în a-i arăta exemple ale comportamentului dorit și apoi în a compara perechi din propriile lui ieșiri. Acea etapă este locul de unde vin urmarea instrucțiunilor, chat templates, refuzurile și — lucru care surprinde — capacitatea de a apela un tool. Capitolul 11 este acea etapă: supervised fine-tuning, RLHF, DPO și GRPO, plus întrebarea ce înseamnă „aligned” și cine decide.
Surse și metodă
Link către secțiunea: Surse și metodăMerită citite alături de acest capitol: build-nanogpt al lui Karpathy și videoul aferent, care parcurg o reproducere completă GPT-2 cap-coadă într-un ritm pe care capitolul acesta nu îl poate susține; și Stanford CS324, Large Language Models, ale cărui cursuri despre date și impactul de mediu merg mai adânc decât secțiunea de mai sus în materialul pe care acest curs îl tratează o singură dată și apoi îl deleagă.
Referințe
Link către secțiunea: Referințe-
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). Cele trei power laws sunt ecuațiile (1.1)–(1.3) din §1.2, iar constantele complete sunt în Appendix A, Tabelul 5; derivarea este §2.1; exponenții de alocare a compute sunt în Tabelul 6. Observă că există două legi de compute, la batch size fix și la batch size optim; lucrarea spune că a doua „trebuie folosită pentru predicții”. ↩ ↩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). Exponenți în Tabelul 2, bugete proiectate în Tabelul 3, comparația cu Gopher în §4, convenția de numărare a parametrilor în Appendix F. Textul de sub Tabelul 3 contrazice tabelul însuși pentru rândurile 175 B și 280 B; tabelul este versiunea de citat. ↩ ↩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 în §3.1, loss scaling în §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. Contabilitatea este §3.1; cifrele de stare reziduală pentru activări sunt §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Bugetul de compute și numărul de tokens în §1, scaling law reajustată în §3.2.1, configurația de paralelism și MFU în Tabelul 4, analiza de contamination în §5.1.4, afirmația de over-training în §9.1. Lucrarea nu conține sume în dolari și nici tabel de emisii. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Stanford CS336, Language Modeling from Scratch. Cursul 2 acoperă contabilitatea resurselor, cursurile 5–8 GPU-uri, kernels și paralelism, cursurile 9 și 11 scaling, cursurile 13–14 date. Este cursul către care acest capitol își deleagă ingineria și este public. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Compute în Appendix D, Tabelul D.1 — care are o coloană intitulată literal „flops per param per token”, a cărei valoare pentru fiecare rând GPT-3 este 6. Analiza contamination în §4. ↩ ↩2 ↩3
-
Besiroglu, T., Erdil, E., Barnett, M. and You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Reconstruiește datele Chinchilla prin digitizarea Figurii 4, reajustează și raportează exponenții corectați și intervale mult mai largi. ↩
-
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. Rezultatul de patru epoci este §6; timpul de înjumătățire la șaisprezece epoci este ajustat. ↩
-
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 formulează argumentul costului de inference împotriva antrenării Chinchilla-optimal. ↩
-
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 conține și contragreutatea: modelele antrenate la rapoarte extreme de tokens continuă să se îmbunătățească, dar „mai lent decât prezic scaling laws”. ↩
-
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. Definiția este în §2, exemplele și pragurile de compute în §3–4 și Tabelul 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. Argumentul metricii este §2, meta-analiza BIG-Bench §4, exemplul vizual construit §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), publicat 24 august 2026, accesat 2026-09-06. Propria pagină principală susține „peste 300 de miliarde de pagini pe 15 ani”, „totalizând peste 10 petabytes” — o cifră pentru întreaga arhivă, nu pentru crawl-ul lunar evaluat aici. ↩
-
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). Filtrele C4 sunt §2.2. Lucrarea dă mărimi în bytes, nu tokens; cifra de 156 de miliarde de tokens atribuită des acesteia vine de la Dodge et al. mai jos. ↩
-
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. Ratele de eliminare pe dialect sunt §5.3; contamination de benchmark în C4 este §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. Cele 61.036 de repetări sunt nota 1; cifrele de memorare sunt §6.2, Tabelul 4, și sunt procente din tokens generați sub un criteriu de exact-match de 50 de tokens. ↩
-
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. Rezultatul de deduplication este §3.4. Datasetul publicat a crescut între timp peste cele 15 trilioane de tokens din lucrare. ↩
-
Gao, L., Biderman, S., Black, S. et al. The Pile: An 800GB Dataset of Diverse Text for Language Modeling. arXiv:2101.00027 (2020). Books3 este §2.3 și Tabelul 1; tabelul de consimțământ este Tabelul 5. Corpusul are 825,18 GiB, deci până și titlul rotunjește în jos. ↩
-
Bartz v. Anthropic, No. 4:24-cv-05417 (N.D. Cal.). Ordinul fair-use 23 iunie 2025 (Dkt. 231); certificarea clasei 17 iulie 2025; aprobare finală și hotărâre 20 iulie 2026 (Dkt. 680). Tranzacția eliberează doar inputurile trecute, nu outputurile și nu conduita viitoare. ↩
-
Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), summary judgment 25 iunie 2025 (Dkt. 598). Observă că pretenția de distribuție prin torrenting nu a fost decisă și rămâne activă. ↩
-
Thomson Reuters v. ROSS Intelligence, No. 1:20-cv-00613-SB (D. Del.), opinie revizuită 11 februarie 2025 (Dkt. 770), Bibas J. În apel interlocutoriu la Third Circuit (No. 25-2153), pledat 11 iunie 2026, nerezolvat la data scrierii. ↩
-
Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 ianuarie 2023. Cei $2 sunt un plafon pentru reviewerii seniori care atingeau fiecare țintă; labellerii juniori, majoritatea, luau acasă $1,32. Replica Sama, citată în același articol, dă $1,46–$3,74 și o normă mai mică. ↩
-
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). Tabelele 1 și 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). Cifrele GPT-3 sunt Tabelul 4; corecția estimării NAS este §4.1. ↩
-
Strubell, E., Ganesh, A. and McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. Merită citită tocmai pentru ce s-a întâmplat cu cifra ei cea mai citată: lucrarea este atentă, își declară extrapolarea și tot a greșit cu două ordine de mărime pe linia repetată de toată lumea. ↩
-
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” este §4.4. Observă că propriile cifre de carbon ale lucrării sunt citate din Strubell et al. și moștenesc corecția de mai sus — ceea ce ilustrează argumentul ei, nu îl respinge. ↩
-
NVIDIA. NVIDIA H100 Tensor Core GPU product page,
nvidia.com/en-us/data-center/h100/(accesat 2026-09-06). Fiecare rând tensor-core de pe pagină, cu excepția FP64, are nota „with sparsity”; cifra densă BF16 folosită aici este jumătate din cele 1.979 TFLOPS publicate. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(accesat 2026-09-06). On-demand, per GPU pe oră, înainte de taxe. Prețurile din această secțiune se vor învechi mai repede decât orice altceva din curs; aritmetica din jurul lor nu. ↩ -
Karpathy, A.
karpathy/llm.c, discuția #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 mai 2024), și discuția #677, Let's reproduce GPT-2 (1.6B): one 8XH100 node, 24 hours, $672, in llm.c (11 iulie 2024). ↩ -
Karpathy, A.
karpathy/nanochat, README și leaderboard „time to GPT-2” (accesat 2026-09-06). Cifra de $48 și definiția prin CORE-score a „GPT-2 capability” sunt ambele în README; propriulspeedrun.shal repository-ului spune „aproximativ 1,5 ore”, deci tratează cifra de două ore ca rotunjită. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdînmeta-llama/llama-models(accesat 2026-09-06). Sursa pentru 30,84 M H100-hours ale modelului 405 B, totalul de 39,3 M, cifra location-based de 11.390 tCO2eq și data cutoff decembrie 2023. ↩