Pretraining av en LLM: data, compute, scaling laws och kostnad
Tjugo modeller tränade på en laptop-GPU för att mäta en scaling law och kontrollera 6ND-estimatet mot en verklig FLOP-räknare.
På den här sidan
Kapitel 9 slutade med ett transformer-block som tränar. Stapla några av dem, rikta next-token-förlusten från kapitel 8 mot utdata, och det finns inget kvar att uppfinna. Allt som återstår är ett inköp.
Det är ett större skifte än det låter. Varje kapitel hittills frågade lär den sig? — en ja-eller-nej-fråga som en laptop avgör på tio minuter. Det här ställer en fråga med pengar i: givet en fast mängd aritmetik, vilken är den bästa modell jag kan köpa? Svaret är en formel, och den var inte uppenbar för någon 2018.
Här är den frågan besvarad genom mätning, på en enda laptop-GPU. Tjugo modeller, från 98 624 till 15 miljoner parametrar, tränades från grunden på 174 miljoner tokens från Wikipedia — ett BPE-vokabulär på 2 048 token tränat på samma sätt som kapitel 7 tränar ett, med transformer från kapitel 9. Varje körning fick exakt en av tre compute-budgetar och inte en enda operation mer, så en större modell läser nödvändigtvis mindre text. Den bästa held-out-förlusten som nåddes vid varje budget:
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 computeTio gånger mer aritmetik sänker förlusten med 19 %, och de tre punkterna ligger på en rak linje i log-log. Ingenting i de första nio kapitlen förutsäger det. Det finns inget teorem bakom — det är en empirisk regelbundenhet, som håller med en annan exponent över de tio storleksordningarna mellan den här laptopen och ett datacenter, och det är den enskilda observation som övertalade en hel industri att lägga ett litet lands BNP på GPU:er.
Vad pretraining är, och vad som är nytt med det
Länk till avsnittet: Vad pretraining är, och vad som är nytt med detIngenting i målet förändras. Modellen förutsäger fortfarande nästa token, förlusten är fortfarande cross-entropy från kapitel 4 applicerad på faktoriseringen i kapitel 8, optimeraren är fortfarande AdamW från kapitel 6. Pretraining är inte en ny algoritm; det är samma algoritm körd på en corpus som är stor nog för att körningen måste budgeteras. Två saker gör det möjligt: etiketterna är gratis, eftersom målet för position är token vid och redan finns i texten; och det sista avsnittet i kapitel 6 tog bort invändningen, eftersom en modell med långt fler parametrar än de klassiska reglerna tillåter inte faller isär, utan blir bättre. Det som kommer ut är en basmodell — något som fortsätter text snarare än svarar.
Räkna compute innan du spenderar den: 6ND
Länk till avsnittet: Räkna compute innan du spenderar den: 6NDInnan något av detta kan budgeteras måste det räknas, och fältet räknar det med en formel:
där är antalet parametrar, antalet träningstokens och det totala antalet flyttalsoperationer. Kaplan et al. härleder den i två steg.1 Forward: 2 FLOPs per parameter per token, eftersom varje parameter i en matrismultiplikation används en gång per token, i en multiplikation och en addition. Backward: dubbelt så mycket som forward, eftersom backward-passet från kapitel 5 beräknar två gradienter i varje lager — med avseende på lagrets indata, så att signalen fortsätter färdas, och med avseende på dess vikter — var och en en matrismultiplikation i samma storlek som forward, så .
Det är hela härledningen, och den är värd att kontrollera snarare än att bara tro på. PyTorch levererar en verklig FLOP-räknare, torch.utils.flop_counter.FlopCounterMode, som fångar upp varje operation en modell skickar iväg och summerar det faktiska arbetet. Kör den över fyra storleksordningar, den största på meta-enheten, som allokerar former och inget minne:
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))| konfiguration | utan embeddings | totalt | uppmätt, fwd+bwd | ÷ (totalt ) | ÷ (utan emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 lager, 256 | 788 736 | 7 254 400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 lager, 256 | 25 183 232 | 51 045 888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 lager, 1024 | 84 973 056 | 124 356 864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 lager, 1024 | 1 474 870 400 | 1 556 920 000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 lager, 2048 | 6 442 983 424 | 6 582 444 032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 lager, 8192 | 64 427 147 264 | 65 544 929 280 | 3.75e15 | 1.163 | 1.183 | 3.000 |
Forward+backward över forward-kvoten är 3.000, exakt, i varje skala: inte en approximation som råkar vara bra, utan den aritmetiska identiteten ovan returnerad som ett runt tal av en räknare som inte vet något om härledningen.
Den uppmätta totalen ligger sedan mellan 3 % och 17 % över , när räknar embedding-matriserna — och den klausulen spelar roll, eftersom de två grundläggande artiklarna räknar olika. Kaplan utesluter ”all vocabulary and positional embeddings” eftersom det ”produces significantly cleaner scaling laws” (§1.3); Chinchillas Appendix F säger ”we also count embeddings matrices in the total parameter count”.2 För ett brett vokabulär och en smal hidden dimension skiljer de två sig med en faktor nio, som första raden visar.
Restgapet är vad avsiktligt utelämnar: attention-poängen. Kaplans ekv. (2.2) skriver forward-kostnaden som och släpper den andra termen eftersom — säkert 2020, mindre säkert nu, och skälet till att kvoten driver uppåt när växer — vilket är varför två rader här delar ett på 1 024 och kvoten faller, från 1.145 till 1.100, när går från 768 till 1 600. Det är -kostnaden som kapitel 9 introducerade och kapitel 16 gör om till ett pris.
Minne: vad som faktiskt måste få plats
Länk till avsnittet: Minne: vad som faktiskt måste få platsCompute avgör hur lång tid en körning tar; minnet avgör om den kan starta. Träna med vanlig fp32 AdamW och varje parameter bär fyra tal: vikten, dess gradient, och Adams löpande medelvärde och varians — de två medelvärdena som byggdes för hand i kapitel 6. Fyra tal på fyra byte vardera är 16 byte per parameter, före en enda aktivering. Uppmätt på en laptop-GPU med 8 GB, med resident allokering vid punkten i steget där ingen graf är vid liv:
| modell | vokabulär | batch | förutspått | resident uppmätt | topp i ett steg | skillnaden | |
|---|---|---|---|---|---|---|---|
| 512, 8 lager | 50 257 | 8 | 51 045 888 | 779 MB | 801 MB | 2 500 MB | 1 699 MB |
| 512, 8 lager | 4 096 | 8 | 27 411 456 | 418 MB | 426 MB | 1 043 MB | 617 MB |
| 256, 6 lager | 4 096 | 8 | 5 839 360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 lager | 4 096 | 32 | 5 839 360 | 89 MB | 89 MB | 1 259 MB | 1 170 MB |
| 256, 6 lager | 4 096 | 128 | 5 839 360 | 89 MB | 89 MB | 4 771 MB | 4 681 MB |
Förutsägelse och mätning stämmer inom 3 %. Överraskningen är den sista kolumnen: aktiveringarna får modellen att se liten ut. Samma modell med 5,8 miljoner parametrar som behöver 89 MB persistent state behöver 4 681 MB aktiveringar vid en batch på 128 — femtiotvå gånger modellen — och mycket av det är inte transformer alls. Det är logits, en vektor av vokabulärstorlek per token med fyra byte per post: 512 MB i sista raden, 393 MB i den första. Vokabulärstorleken valdes i kapitel 7, och den avgör fortfarande vad som får plats på kortet.
Vilken term som dominerar beror på körningens form, vilket är varför Micikevicius et al. säger att minne ”is dominated by activations”3 medan ZeRO säger att en modell med 1,5 miljarder parametrar behöver ”at least 24 GB” enbart för model states.4 ZeRO når samma 16 byte via en annan väg — för fp16-vikter, för fp16-gradienter, vardera för fp32-mastervikterna och Adams två moment — vilket för 70 miljarder parametrar är 1,12 terabyte, fjorton 80 GB-GPU:er värt innan en enda aktivering.
Parallelism, i ett stycke och en delegering
Länk till avsnittet: Parallelism, i ett stycke och en delegeringInget av detta får plats på en enda enhet i frontier-skala, så körningen delas på fyra sätt samtidigt. Data parallelism lägger en kopia av modellen på varje GPU och medelvärdesbildar gradienterna — standardläget, och det som ZeRO förbättrar genom att vägra behålla redundanta kopior av optimerarens state. Tensor parallelism delar upp enskilda matriser mellan enheter. Pipeline parallelism ger varje enhet en sammanhängande grupp lager. Context parallelism delar själva sekvensen, nödvändigt först när är tillräckligt lång för att attention-termen ska dominera. Llama 3:s tabell 4 listar alla fyra samtidigt: tensor 8, context upp till 16, pipeline 16, data upp till 128, över 16 384 H100-GPU:er.5 Det är allt den här kursen kommer att säga om det; ingenjörsarbetet bakom distribuerad träning är en egen termin, och Stanfords CS336 är den terminen, föreläsning 5 till 8, med koden.6 Det som överlever delegeringen är ett enda tal, model FLOPs utilisation — andelen av en GPU:s topparitmetik som en verklig körning uppnår — vilket är det som förvandlar det prydliga till väggklocketid och därmed till pengar.
Kaplan, och vad industrin satsade på
Länk till avsnittet: Kaplan, och vad industrin satsade påI januari 2020 tränade Kaplan et al. ett rutnät av transformers och fann att testförlusten följer en potenslag i var och en av de tre resurserna över mer än sex storleksordningar.1 Deras §1.2 ger tre anpassade lagar:
med följeslagare för data och för optimalt allokerad compute. Konstanterna är inte universella, och artikeln säger det: ”the precise numerical values of , and depend on the vocabulary size and tokenization and hence do not have a fundamental meaning.”
Exponenterna är pyttesmå: tio gånger parametrarna köper en faktor från den återstående förlusten. Det låter som ingenting, och det är det viktigaste faktumet här — avkastningen är usel och den tar aldrig slut. En potenslag med en liten exponent lovar att nästa storleksordning kommer att hjälpa, mindre än den förra gjorde, för alltid. Att köpa compute slutar vara en chansning och blir ett inköp med en publicerad växelkurs, vilket är exakt argumentet som låste upp kapitalet.
Sedan kom ordinationen, och det är här artikeln hade fel på ett sätt som kostade industrin väldigt mycket pengar. Kaplans tabell 6 ger och : tio gånger compute betyder en modell som är 5,4 gånger större men bara matas med 1,9 gånger så mycket text. Sammanfattningen är explicit — ”optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence.” Fältet gjorde exakt det: GPT-3 är 175 miljarder parametrar på 300 miljarder tokens,7 Gopher 280 miljarder på 300 miljarder, Megatron-Turing NLG 530 miljarder på 270 miljarder.2 En halv token till två tokens per parameter, rakt igenom.
Chinchilla, och vad svepet ovan mätte
Länk till avsnittet: Chinchilla, och vad svepet ovan mätteI mars 2022 tränade Hoffmann et al. över 400 modeller från 70 miljoner till 16 miljarder parametrar och nådde motsatt slutsats via tre oberoende vägar.2 Deras tabell 2 rapporterar exponenten i som 0.50, 0.49 och 0.46, mot Kaplans 0.73. I klartext: modellstorlek och träningsdata bör växa i samma proportion.
Deras andra angreppssätt är det som reproduceras av svepet högst upp i det här kapitlet, i en miljondel av skalan: fixa en budget, träna många storlekar vid exakt den budgeten, plotta slutförlust mot modellstorlek.
| parametrar | |||
|---|---|---|---|
| 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-förlust i nats per token, tokens per parameter inom parentes, fetstil för bästa modellen vid varje budget; ett streck är en punkt som inte kördes, eftersom budgeten krävde mer text än corpuset innehåller eller storleken låg utanför dem som sveptes där.
Läs nedåt i en kolumn: förlusten faller, bottnar och klättrar igen. En modell kan vara för stor för sin budget precis lika lätt som för liten — vid är straffet för att välja 665 280 parametrar framför 295 808 0,08 nats, vilket på kuvertet som anpassats ovan är den förlust en korrekt dimensionerad modell når med 18 % mindre compute. Att välja fel form kastar bort en femtedel av budgeten. Det är Chinchillas figur 3 på en eftermiddag på en GPU i stället för med fyrahundra modeller.
Läs nu tvärs över. Vid är den bästa modellen den minsta som sveptes; vid är den 295 808 parametrar, inramad på båda sidor. Optimum flyttar åt höger när budgeten växer, vilket är hela innehållet i korrigeringen. Anpassa artikelns tredje angreppssätt — ytan över varje körning — och minimera under villkoret :
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, från en laptop, mot Kaplans 0.73. Överensstämmelse på tre siffror från en trebuddgetsanpassning är tur; överensstämmelse på den första är det inte. Exponenten reser — konstanten gör det inte, eftersom token-till-parameter-kvoten vid dessa optima är 170 till 540, inte 20. Tre skäl, alla lärorika. anpassas till noll eftersom körningen vid en förlust över 4 nats inte är i närheten av entropigolvet som dominerar Chinchillas anpassning. Batchstorlek och learning rate hölls fasta i stället för att trimmas per punkt, vilket missgynnar de körningar som får minst antal steg — och det är de stora modellerna: vid FLOPs får en modell med 1,28 miljoner parametrar totalt 159 optimerarsteg, långt under de några tusen som Kaplans -term säger att varje modell behöver. En scaling law anpassas inom en regim, och den här ligger sex storleksordningar under Chinchillas.
Därav artikelns sammanfattning: ”current large language models are significantly undertrained”. Chinchilla är demonstrationen — 70 miljarder parametrar på 1,4 biljoner tokens, samma totala compute som Gophers 280 miljarder på 300 miljarder, och slår den på 51 av 57 MMLU-uppgifter, 67,5 % mot 60 %.2 Fyra gånger mindre, fyra och en halv gånger mer text, samma pengar, bättre modell.
Två förbehåll om den berömda kvoten. ”Tjugo tokens per parameter” är inte en mening i artikeln, som bara säger att ”for every doubling of model size the number of training tokens should also be doubled”; 20 är en slutsats från tabell 3 och från Chinchillas egna 70 B på 1,4 T. Och dess precision är sämre än publicerat: Besiroglu et al. anpassade om från en digitalisering av figur 4, fann att de ursprungliga parametrarna ”fit the reconstructed data poorly” med intervall ”implausibly tight given the number of data points”, och satte det ärliga intervallet till ”between 4 and 40” tokens per parameter.8
En detalj i Chinchillas metod infriar ett löfte som kapitel 1 gav om learning-rate schedules. Cosine-schemat måste matchas mot token-budgeten. En modell som ska se 10 miljoner tokens måste låta sin learning rate falla till noll vid 10 miljoner tokens; ge den ett schema dimensionerat för 100 miljoner, stoppa den tidigt, och du läser en förlust mitt i nedstigningen vid en alldeles för hög nivå. Chinchilla tränar varje modell med fyra cykellängder för att kontrollera exakt detta; svepet ovan sätter sitt schema från budgeten av samma skäl.
Vad scaling laws inte lovar
Länk till avsnittet: Vad scaling laws inte lovarDe är det mest användbara empiriska resultatet i fältet och de översäljs rutinmässigt. Fyra begränsningar.
De förutsäger förlust, inte förmåga. Vänsterledet är cross-entropy på held-out-text. Ingenting i dessa artiklar ger stöd för ett påstående om huruvida en modell kommer att skriva korrekt SQL, vägra en skadlig begäran eller använda ett tool. Det här är lärdomen från kapitel 5 igen: en förutsägelse av förlusten är inte en förutsägelse av beteendet du betalar för.
De är anpassade, inte härledda. Ingen teori producerar . Konstanterna flyttar sig med tokenizer — vilket är varför en perplexity-jämförelse mellan två tokenizers är meningslös, som kapitel 8 förklarade — och med datamixen, arkitekturen och optimeraren. Varje publicerad lag är en lag för den uppställning som producerade den, vilket är varför Meta anpassade sin egen före Llama 3.5
De antar en färsk token för varje steg, vilket tyst antar ett oändligt corpus. Muennighoff et al. mätte vad som händer när det tar slut: upp till fyra epoker av upprepade data kostar nästan ingenting — en modell med 8,7 miljarder parametrar på 44 miljarder unika tokens sedda fyra gånger slutade med ”only 0.5 % higher validation loss” än samma modell på 178 miljarder unika — medan ytterligare compute efter omkring sexton epoker inte köper något.9
Och ingen tränar compute-optimal längre. Chinchilla minimerar kostnaden för träning; en distribuerad modell betalar sedan ungefär FLOPs per genererad token, för alltid. LLaMA 1 sade det rakt ut: ”given a target level of performance, the preferred model is not the fastest to train but the fastest at inference”.10 Sardana et al. formaliserade det genom att minimera i stället, och fann att den som väntar sig en miljard förfrågningar bör träna ”smaller and longer than Chinchilla-optimal”.11 Llama 3:s §9.1 håller med: dess små modeller tränas ”far beyond the point of compute optimal training, effectively trading training compute for inference efficiency”.5 Kvoten är inte föråldrad; den svarar på en fråga som inte längre är den som ställs.
Emergent abilities, och argumentet om huruvida de är verkliga
Länk till avsnittet: Emergent abilities, och argumentet om huruvida de är verkligaFörlusten faller jämnt. Benchmark-poäng gör det ibland inte. Wei et al. samlade fall där en uppgift ligger på slumpnivå över storleksordningar av training compute och sedan hoppar — tresiffrig aritmetik som dyker upp i GPT-3 vid ungefär FLOPs, MMLU som stiger över gissning mellan och — och gav mönstret ett namn: ”an ability is emergent if it is not present in smaller models but is present in larger models”.12 Om det är en verklig egenskap är extrapolering från billiga experiment osäker, eftersom förmågan du köper kanske inte finns i någon skala du har råd att testa.
Schaeffer, Miranda och Koyejo hävdade att det mesta är en mätartefakt, och mekanismen är aritmetisk.13 Per-token-förlusten faller jämnt, så sannolikheten att en token är rätt, , förbättras gradvis. Poängsätt modellen med exakt strängmatchning över ett -token-svar och du höjer den sannolikheten till potensen — en jämn kurva upphöjd till en stor potens ser ut som en klippa. Byt till ett mått som räknar tokens i stället för att kräva alla, på samma utdata, och ”the family's performance smoothly, continuously and predictably improves with increasing scale”.
Deras granskning är talet att minnas — ”of the 39 preferred metrics in BIG-Bench, at most 5 display emergence”, med två diskontinuerliga mått som står för över 92 % av de påstådda fallen — och det är också deras varning: ”nothing in this paper should be interpreted as claiming that large language models cannot display emergent abilities”. Ett hopp i ett diagram är bevis om måttet tills motsatsen visats. Kapitel 29 är där det blir ditt problem, eftersom valet av ett hard-cutoff-mått är ett beslut du kommer att fatta utan att märka det.
Var datan kommer ifrån
Länk till avsnittet: Var datan kommer ifrånCorpuset är den del av en pretraining-körning som inte har någon ekvation kopplad till sig, och där de flesta av de följdrika besluten finns. Råmaterialet är en webbcrawl: Common Crawls arkiv från augusti 2026 innehåller ”2.14 billion web pages or 360 TiB of uncompressed content”, en månad av det, gratis att ladda ned.14 Nästan inget är användbart som det står. T5-artikeln säger att crawlen ”largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text”, och C4-pipelinen den introducerade är en lista med trubbiga heuristiker — behåll bara rader som slutar med avslutande skiljetecken, släpp sidor med färre än tre meningar, släpp varje sida som innehåller en klammerparentes eller ett ord från en offentlig lista över obsceniteter — vilket förvandlar tjugo terabyte månadstext till omkring 750 GB.15
Trubbig är ordet. Dodge et al. granskade vad dessa filter tar bort och fann att obscenitetsblocklistan raderar 42 % av dokument på afroamerikansk engelska och 32 % på hispanic-aligned engelska, mot 6,2 % av white-aligned engelska, vilket lämnar ett corpus där 97,8 % tillhör den sista kategorin.16 En regel utan åsikt om dialekt hade en.
Sedan deduplication, vilket inte är städning: Lee et al. fann en mening på 61 ord som upprepades 61 036 gånger i C4, och visade att deduplicering minskar takten med vilken modeller ”emit memorized text” tiofaldigt, från 1,9 % av genererade tokens till 0,19 %.17 Mer är dock inte bättre — FineWebs team deduplicerade globalt över 96 crawls, fick 4 biljoner tokens och ingen mätbar förbättring, deduplicerade sedan varje crawl separat, fick 20 biljoner, och matchade det bästa befintliga corpuset.18
Sedan contamination. Llama 3 mätte sin egen och publicerade den: 98 % av AGIEval, 95 % av BIG-Bench Hard och 85 % av HellaSwag överlappade träningsmängden med 8-grams, och för MMLU en överlappning så hög att ”it is impossible to get a good performance gain estimate”.5 GPT-3:s §4 rapporterar en filtreringsbugg som lämnade benchmarks i datan utan väg tillbaka: ”because of cost considerations it was infeasible to retrain the model”.7
Proveniens är den olösta delen. The Pile levererade en komponent på 100,96 GiB kallad Books3 — 12 % av corpuset och, enligt artikelns egen samtyckestabell, böcker från en privat torrenttracker;19 den togs offline i augusti 2023 efter ett upphovsrättsklagomål. Den rättsliga positionen i september 2026 är olöst, och de tre amerikanska domar som nämns som en trend är oense med varandra. Alsup fann att träning på lagligt förvärvade böcker var ”exceedingly transformative” samtidigt som han höll fast vid att ett bibliotek byggt från piratkopior inte var det, och Anthropic förlikade den halvan för $1,5 miljarder som täckte 482 460 verk, ungefär $3 000 vardera, godkänt 20 juli 2026.20 Chhabria beviljade Meta summary judgment samtidigt som han skrev att hans avgörande ”does not stand for the proposition that Meta's use of copyrighted materials to train its language models is lawful”, bara att ”these plaintiffs made the wrong arguments”.21 Bibas, i ett avgörande mot Ross Intelligence, noterade att ”only non-generative AI is before me today”.22 Ingen amerikansk appellationsdomstol har avgjort frågan.
Människor gör de delar som förlusten inte kan. TIME rapporterade i januari 2023 att arbetare som märkte toxisk text åt OpenAI via företaget Sama fick hem ”between around $1.32 and $2 per hour” för att läsa passager som beskrev sexuella övergrepp mot barn, tortyr och självskada, medan OpenAI betalade Sama $12,50 i timmen för arbetet; Sama bestrider både löneintervallet och kvoten.23 Det är filtreringen runt pretraining snarare än pretraining i sig — men det står på samma faktura, och det är där en människa sitter.
Elektriciteten är verklig och oftast felciterad. Den noggrannaste publicerade siffran är BLOOM:s: 1 082 990 GPU-timmar, 433 MWh och 24,7 ton CO₂-ekvivalenter för körningen, 50,5 när tillverkning och idle-noder räknas;24 Patterson et al. sätter GPT-3 till 1 287 MWh och 552 ton.25 Två varningar. BLOOM:s fördel är det franska kärnkraftsnätet på 57 g CO₂ per kWh snarare än effektivitet — den använde mer energi än OPT-175B. Och fältets mest citerade utsläppssiffra, Strubell et al.:s 626 155 lb för en neural architecture search, visades senare vara 88 gånger för hög, eftersom den antog att sökningen kördes i full modellstorlek när den kördes på en proxy.26 LBNL:s inramning är den försvarbara: amerikanska datacenter använde 192 TWh 2024, 4,7 % av landets el — en siffra kopplad till en industri, inte till någon enskild körning.27
Den röda tråden är vad Bender et al. kallade documentation debt: ”putting ourselves in a situation where the datasets are both undocumented and too large to document post hoc”.28 Varje faktum ovan finns för att någon tittade. För corpora bakom de modeller de flesta använder kan ingen göra det.
Vad det faktiskt kostar
Länk till avsnittet: Vad det faktiskt kostarNu aritmetiken alla vill ha, från fyra citerade indata, så att det är uppenbart vad som ska bytas ut när de blir inaktuella.
Toppgenomströmning
Länk till avsnittet: ToppgenomströmningNVIDIA:s H100-sida listar 1 979 teraFLOPS BF16 tensor-core-genomströmning under en fotnot som lyder ”with sparsity”.29 Ingen pretraining-körning använder strukturerad sparsity, så den täta siffran är hälften: 989,5 TFLOP/s.
Utnyttjande
Länk till avsnittet: UtnyttjandeLlama 3:s tabell 4 rapporterar 38–43 % BF16 model FLOPs utilisation. Ta 40 %: 395,8 TFLOP/s nyttig aritmetik per GPU.5
Lambdas on-demand-pris för en 8×H100 SXM-nod, hämtat 2026-09-06: $3,99 per GPU-timme, alltså $31,92 i timmen för noden.30
Chinchillas kvot, , ger och därmed .
| budget | H100-timmar | FLOPs | compute-optimal parametrar | tokens | på en 8×H100-nod | GPU:er för att bli klar på 90 dagar |
|---|---|---|---|---|---|---|
| $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 dagar | 2 |
| $100 000 | 25 063 | 3.6e22 | 17,3 B | 345 B | 131 dagar | 12 |
| $1 000 000 | 250 627 | 3.6e23 | 54,6 B | 1,09 T | 4 år | 116 |
| $10 000 000 | 2 506 266 | 3.6e24 | 173 B | 3,45 T | 36 år | 1 160 |
| $100 000 000 | 25 062 657 | 3.6e25 | 546 B | 10,9 T | 358 år | 11 603 |
Läs de två sista kolumnerna tillsammans. För $10 000 får du en modell med 5 miljarder parametrar på en hyrd nod på två veckor. Vid $100 000 000 säger aritmetiken 546 miljarder parametrar — och tolv tusen H100:or ihopkopplade i tre månader, vilket inte är något du hyr med kreditkort. Efter ungefär $100 000 slutar den bindande begränsningen vara pengar och blir klustret.
Innan du litar på en sådan tabell, testa den mot körningar vars verkliga kostnad är publicerad — llm.c reproducerar GPT-2 124M på ”~90 minutes” på en 8×A100-nod ”for about $20”, och GPT-2 1.6B på 24 timmar på en 8×H100-nod för $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.86Båda inom ungefär 15 %, vilket är ungefär den noggrannhet den här typen av estimat förtjänar och betydligt bättre än den noggrannhet den brukar citeras med.
Rubrikjämförelsen, med båda definitionerna på bordet
Länk till avsnittet: Rubrikjämförelsen, med båda definitionerna på bordetDen mest upprepade siffran i det här ämnet är att en GPT-2-klassmodell som kostade omkring $43 000 år 2019 kan reproduceras i dag för några tiotal dollar. Den moderna halvan är väldokumenterad; den historiska halvan är det inte.
I dag. Karpathys nanochat README: ”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” här är precist och publicerat — att slå GPT-2:s CORE-poäng på 0,256525 — på en leaderboard vars bästa bidrag den 14 mars 2026 är 1,65 timmar. $48 antar $3 per GPU-timme, under Lambdas listpris $3,99; vid listpris är det närmare $64.
År 2019. Det finns ingen primärkälla: OpenAI publicerade aldrig en varaktighet eller kostnad. Kedjan går via The Register, februari 2019, som rapporterar ”256 Google TPU3 cores” utan pris och utan varaktighet; sedan Synced, juni 2019, som noterar att hårdvaran kostade $256 i timmen på Google Cloud och uttryckligen säger att ”OpenAI didn't specify the training duration”. $43 008 är $256 i timmen gånger antagna 168 timmar som ingen någonsin har källbelagt.
Så den ärliga rubriken är: en modell som matchar GPT-2:s publicerade benchmark-poäng kan tränas i dag för långt under $100 på hyrd hårdvara, mot en kostnad 2019 som aldrig publicerades och vars berömda estimat vilar på en okällad gissning om varaktigheten. Kollapsen är verklig och den moderna halvan kan reproduceras av vem som helst med ett kreditkort; kvoten är aritmetik på ett tal som inte finns. Det är läget för publicerade träningskostnader i allmänhet. GPT-3-artikeln innehåller inget dollarbelopp alls, bara FLOPs i tabell D.1;7 Llama 3-artikeln innehåller inget heller.5 Varje träningskostnad du har läst är ett estimat från ett FLOP-tal, ett hårdvaruantagande och ett prisantagande — alltid värt att fråga vems.
Vad en basmodell vet, och när den slutade veta det
Länk till avsnittet: Vad en basmodell vet, och när den slutade veta detDet som kommer ut har sett ett fast corpus sammanställt vid ett fast ögonblick, och två egenskaper följer.
Den första är knowledge cutoff. Efter insamlingsdatumet vet modellen ingenting — inte ”är osäker”, ingenting — och den kommer att fabulera flytande i stället för att säga det, eftersom att säga det aldrig var ett beteende den tränades på. Llama 3.1:s model card anger december 2023;33 varje modell har en, och det är en egenskap hos träningsdatan, inte deployment. Att arbeta runt det är ett retrieval-problem, vilket är kapitel 19.
Den andra är att en basmodell kompletterar snarare än svarar. Ge den ”Vad är Frankrikes huvudstad?” och en plausibel fortsättning är en annan fråga, eftersom den strängen i corpuset oftast förekommer i en lista med övningar.
Vart detta leder härnäst
Länk till avsnittet: Vart detta leder härnästEn textkompletterare är inte en assistant. Den följer inte instruktioner, eftersom ingenting i corpuset sade att en begäran borde lydas i stället för fortsättas. Den har ingen föreställning om ett samtal med två deltagare. Den producerar gärna den mest sannolika fortsättningen på en skadlig prompt, eftersom sannolik var det enda den någonsin optimerades för.
Att göra den till något som svarar kräver ett andra steg som kostar en bråkdel av en procent av det första, och som nästan helt består av att visa den exempel på beteendet du vill ha och sedan jämföra par av dess egna utdata. Det steget är där instruktionföljning, chat templates, vägran och — vilket överraskar folk — förmågan att anropa ett tool alla kommer ifrån. Kapitel 11 är det steget: supervised fine-tuning, RLHF, DPO och GRPO, och frågan om vad ”aligned” betyder och vem som bestämmer.
Källor och metod
Länk till avsnittet: Källor och metodOckså värt att läsa vid sidan av det här kapitlet: Karpathys build-nanogpt och den tillhörande videon, som går igenom en full GPT-2-reproduktion från början till slut i ett tempo det här kapitlet inte kan hålla; och Stanford CS324, Large Language Models, vars föreläsningar om data och miljöpåverkan går djupare än avsnittet ovan i material som den här kursen behandlar en gång och delegerar.
Referenser
Länk till avsnittet: Referenser-
Kaplan, J., McCandlish, S., Henighan, T., Brown, T. B., Chess, B., Child, R., Gray, S., Radford, A., Wu, J. och Amodei, D. Scaling Laws for Neural Language Models. arXiv:2001.08361 (2020). De tre potenslagarna är ekv. (1.1)–(1.3) i §1.2 och de fullständiga konstanterna finns i Appendix A, tabell 5; -härledningen är §2.1; compute-allokeringens exponenter är tabell 6. Observera att det finns två compute-lagar, vid fast batchstorlek och vid optimal batchstorlek; artikeln säger att den senare ”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). Exponenter i tabell 2, projicerade budgetar i tabell 3, Gopher-jämförelsen i §4, parameterräkningskonventionen i Appendix F. Prosatexten under tabell 3 motsäger själva tabell 3 för raderna 175 B och 280 B; tabellen är versionen att citera. ↩ ↩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-mastervikter i §3.1, loss scaling i §3.2. ↩ ↩2
-
Rajbhandari, S., Rajbhandari, S., Ruwase, O. och He, Y. ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. arXiv:1910.02054 (2019), SC20. -bokföringen är §3.1; residual-state-siffrorna för aktiveringar är §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Compute-budget och token-antal i §1, den om-anpassade scaling law i §3.2.1, parallelism-konfiguration och MFU i tabell 4, contamination-analysen i §5.1.4, over-training-uttalandet i §9.1. Artikeln innehåller inga dollarsiffror och ingen utsläppstabell. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Stanford CS336, Language Modeling from Scratch. Föreläsning 2 täcker resursbokföring, föreläsning 5–8 GPU:er, kernels och parallelism, föreläsning 9 och 11 scaling, föreläsning 13–14 data. Det är kursen som det här kapitlet delegerar sin ingenjörskonst till, och den är offentlig. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Compute i Appendix D, tabell D.1 — som har en kolumn bokstavligen rubricerad ”flops per param per token”, vars värde för varje GPT-3-rad är 6. Contamination-analys i §4. ↩ ↩2 ↩3
-
Besiroglu, T., Erdil, E., Barnett, M. och You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Rekonstruerar Chinchillas data genom att digitalisera figur 4, anpassar om och rapporterar de korrigerade exponenterna och mycket bredare intervallen. ↩
-
Muennighoff, N., Rush, A. M., Barak, B., Le Scao, T., Piktus, A., Tazi, N., Pyysalo, S., Wolf, T. och Raffel, C. Scaling Data-Constrained Language Models. arXiv:2305.16264 (2023), NeurIPS 2023. Fyr-epoksresultatet är §6; sexton-epokers halveringstid är den anpassade . ↩
-
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 anger argumentet om inference-kostnad mot Chinchilla-optimal träning. ↩
-
Sardana, N., Portes, J., Doubov, S. och Frankle, J. Beyond Chinchilla-Optimal: Accounting for Inference in Language Model Scaling Laws. arXiv:2401.00448 (2023), ICML 2024. Deras §5 innehåller också motvikten: modeller tränade vid extrema token-kvoter fortsätter förbättras, men ”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. Definition i §2, exempel och compute-trösklar i §3–4 och tabell 1. ↩
-
Schaeffer, R., Miranda, B. och Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023), NeurIPS 2023 outstanding paper. Måttargumentet är §2, BIG-Bench-metaanalysen §4, det konstruerade vision-exemplet §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), publicerad 24 augusti 2026, hämtad 2026-09-06. Dess egen förstasida påstår ”over 300 billion pages spanning 15 years”, ”totalling more than 10 petabytes” — en siffra för hela arkivet, inte för den månadscrawl som prissätts här. ↩
-
Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., Zhou, Y., Li, W. och Liu, P. J. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683 (2019), JMLR 21(140). C4-filtren är §2.2. Artikeln anger storlekar i byte, inte tokens; siffran 156 miljarder tokens som ofta tillskrivs den kommer från Dodge et al. nedan. ↩
-
Dodge, J., Sap, M., Marasović, A., Agnew, W., Ilharco, G., Groeneveld, D., Mitchell, M. och Gardner, M. Documenting Large Webtext Corpora: A Case Study on the Colossal Clean Crawled Corpus. arXiv:2104.08758 (2021), EMNLP 2021. Borttagningsnivåer för dialekter är §5.3; benchmark-contamination i C4 är §4.2. ↩
-
Lee, K., Ippolito, D., Nystrom, A., Zhang, C., Eck, D., Callison-Burch, C. och Carlini, N. Deduplicating Training Data Makes Language Models Better. arXiv:2107.06499 (2021), ACL 2022. De 61 036 upprepningarna är fotnot 1; memoriseringssiffrorna är §6.2, tabell 4, och är procent av genererade tokens under ett 50-token-kriterium för exakt matchning. ↩
-
Penedo, G., Kydlíček, H., Ben Allal, L., Lozhkov, A., Mitchell, M., Raffel, C., Von Werra, L. och Wolf, T. The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale. arXiv:2406.17557 (2024), NeurIPS 2024 Datasets and Benchmarks. Dedupliceringsresultatet är §3.4. Den publicerade datasetet har sedan vuxit förbi artikelns 15 biljoner tokens. ↩
-
Gao, L., Biderman, S., Black, S. et al. The Pile: An 800GB Dataset of Diverse Text for Language Modeling. arXiv:2101.00027 (2020). Books3 är §2.3 och tabell 1; samtyckestabellen är tabell 5. Corpuset är 825,18 GiB, så även titeln är en avrundning nedåt. ↩
-
Bartz v. Anthropic, nr 4:24-cv-05417 (N.D. Cal.). Fair-use-beslut 23 juni 2025 (Dkt. 231); class certification 17 juli 2025; slutligt godkännande och dom 20 juli 2026 (Dkt. 680). Förlikningen friger endast tidigare inputs, inte outputs och inte framtida agerande. ↩
-
Kadrey v. Meta, nr 3:23-cv-03417-VC (N.D. Cal.), summary judgment 25 juni 2025 (Dkt. 598). Observera att distributionsyrkandet kring torrenting inte avgjordes och fortfarande är aktivt. ↩
-
Thomson Reuters v. ROSS Intelligence, nr 1:20-cv-00613-SB (D. Del.), reviderat yttrande 11 februari 2025 (Dkt. 770), Bibas J. På interlocutory appeal till Third Circuit (nr 25-2153), argumenterat 11 juni 2026, oavgjort vid skrivande stund. ↩
-
Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 januari 2023. $2 är ett tak för seniora granskare som nådde varje mål; juniora märkare, majoriteten, fick hem $1,32. Samas gensvar, citerat i samma artikel, anger $1,46–$3,74 och en lägre kvot. ↩
-
Luccioni, A. S., Viguier, S. och Ligozat, A.-L. Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model. arXiv:2211.02001 (2022), JMLR 24(253). Tabell 1 och 3. ↩
-
Patterson, D., Gonzalez, J., Le, Q., Liang, C., Munguia, L.-M., Rothchild, D., So, D., Texier, M. och Dean, J. Carbon Emissions and Large Neural Network Training. arXiv:2104.10350 (2021). GPT-3:s siffror är tabell 4; korrigeringen av NAS-estimatet är §4.1. ↩
-
Strubell, E., Ganesh, A. och McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. Värd att läsa just på grund av vad som hände med dess mest citerade siffra: artikeln är noggrann, anger sin extrapolering och hade ändå fel med två storleksordningar på den enda rad alla upprepade. ↩
-
Smith, S. J., Hubbard, A., Newkirk, A., Ganeshalingam, M., Holecek, B., Sartor, D., Mills, M. och Shehabi, A. United States Data Center Energy Usage Report: 2025 Update. LBNL-2001758 (18 juni 2026). Detta reviderar den ofta citerade rapporten från 2024 nedåt för den historiska serien; om du citerar siffran 176 TWh för 2023 citerar du den ersatta utgåvan. ↩
-
Bender, E. M., Gebru, T., McMillan-Major, A. och Shmitchell, S. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? FAccT '21, s. 610–623. DOI 10.1145/3442188.3445922. ”Documentation debt” är §4.4. Observera att artikelns egna koldioxidsiffror citeras från Strubell et al. och ärver korrigeringen ovan — vilket är en illustration av dess argument snarare än en vederläggning av det. ↩
-
NVIDIA. NVIDIA H100 Tensor Core GPU produktsida,
nvidia.com/en-us/data-center/h100/(hämtad 2026-09-06). Varje tensor-core-rad på den sidan utom FP64 har fotnoten ”with sparsity”; den täta BF16-siffran som används här är hälften av publicerade 1 979 TFLOPS. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(hämtad 2026-09-06). On-demand, per GPU per timme, före skatt. Priserna i det här avsnittet blir inaktuella snabbare än något annat i den här kursen; aritmetiken runt dem blir det inte. ↩ -
Karpathy, A.
karpathy/llm.c, diskussion #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 maj 2024), och diskussion #677, Let's reproduce GPT-2 (1.6B): one 8XH100 node, 24 hours, $672, in llm.c (11 juli 2024). ↩ -
Karpathy, A.
karpathy/nanochat, README och ”time to GPT-2”-leaderboard (hämtad 2026-09-06). Siffran $48 och CORE-score-definitionen av ”GPT-2 capability” finns båda i README; repositoryts egenspeedrun.shsäger ”approximately 1.5 hours”, så behandla tvåtimmarssiffran som avrundad. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdimeta-llama/llama-models(hämtad 2026-09-06). Källa för 30,84 M H100-timmar för 405 B-modellen, de 39,3 M totalt, den platsbaserade siffran 11 390 tCO2eq och data-cutoff i december 2023. ↩