Pré-treinar um LLM: dados, compute, leis de escala e custo
Vinte modelos treinados numa GPU de portátil para medir uma lei de escala e validar a estimativa 6ND contra um contador FLOP real.
Nesta página
O Capítulo 9 terminou com um bloco transformer que treina. Empilhe alguns deles, aponte a perda de next-token do Capítulo 8 para a saída, e não sobra nada por inventar. Tudo o que resta é uma compra.
É uma mudança maior do que parece. Todos os capítulos até aqui perguntavam será que aprende? — uma pergunta de sim ou não que um portátil resolve em dez minutos. Este faz uma pergunta com dinheiro dentro: dada uma quantidade fixa de aritmética, qual é o melhor modelo que posso comprar? A resposta é uma fórmula, e não era óbvia para ninguém em 2018.
Eis essa pergunta respondida por medição, numa única GPU de portátil. Vinte modelos, de 98.624 a 15 milhões de parâmetros, foram treinados de raiz em 174 milhões de tokens da Wikipédia — um vocabulário BPE de 2.048 tokens treinado da forma como o Capítulo 7 treina um, o transformer do Capítulo 9. Cada execução recebeu exatamente um de três orçamentos de compute e nem uma operação a mais, pelo que um modelo maior lê necessariamente menos texto. A melhor perda em held-out atingida em cada orçamento:
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 computeDez vezes a aritmética retira 19 % à perda, e os três pontos ficam numa linha reta em log-log. Nada nos primeiros nove capítulos prevê isso. Não há teorema por trás — é uma regularidade empírica, que se mantém com um expoente diferente ao longo das dez ordens de grandeza entre este portátil e um datacenter, e é a única observação que convenceu uma indústria a gastar o PIB de um país pequeno em GPUs.
O que é pretraining, e o que há de novo nele
Ligação para a secção: O que é pretraining, e o que há de novo neleNada muda no objetivo. O modelo continua a prever o próximo token, a perda continua a ser a cross-entropy do Capítulo 4 aplicada à fatorização do Capítulo 8, o otimizador continua a ser o AdamW do Capítulo 6. Pretraining não é um algoritmo novo; é o mesmo algoritmo executado num corpus suficientemente grande para a execução ter de ser orçamentada. Duas coisas tornam isso possível: os rótulos são gratuitos, porque o alvo para a posição é o token em e já está no texto; e a última secção do Capítulo 6 removeu a objeção, porque um modelo com muito mais parâmetros do que as regras clássicas permitem não colapsa, melhora. O resultado é um modelo base — algo que continua texto em vez de responder.
Contar o compute antes de o gastar: 6ND
Ligação para a secção: Contar o compute antes de o gastar: 6NDAntes de tudo isto poder ser orçamentado, tem de ser contado, e a área conta-o com uma fórmula:
onde é a contagem de parâmetros, os training tokens e o total de operações de vírgula flutuante. Kaplan et al. derivam-na em dois passos.1 Forward: 2 FLOPs por parâmetro por token, porque cada parâmetro numa multiplicação de matrizes é usado uma vez por token, numa multiplicação e numa adição. Backward: o dobro do forward, porque a passagem backward do Capítulo 5 calcula dois gradientes em cada camada — relativamente aos inputs da camada, para o sinal continuar a viajar, e relativamente aos seus pesos — cada um uma multiplicação de matrizes do tamanho da forward, logo .
Essa é toda a derivação, e vale a pena verificá-la em vez de acreditar. O PyTorch inclui um contador FLOP real, torch.utils.flop_counter.FlopCounterMode, que interceta todas as operações que um modelo despacha e soma o trabalho real. Execute-o ao longo de quatro ordens de grandeza, o maior no dispositivo meta, que aloca formas e não memória:
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ção | sem embeddings | total | medido, fwd+bwd | ÷ (total ) | ÷ (sem emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 camadas, 256 | 788,736 | 7,254,400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 camadas, 256 | 25,183,232 | 51,045,888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 camadas, 1024 | 84,973,056 | 124,356,864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 camadas, 1024 | 1,474,870,400 | 1,556,920,000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 camadas, 2048 | 6,442,983,424 | 6,582,444,032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 camadas, 8192 | 64,427,147,264 | 65,544,929,280 | 3.75e15 | 1.163 | 1.183 | 3.000 |
O rácio forward+backward sobre forward é 3.000, exatamente, em todas as escalas: não é uma aproximação que por acaso é boa, mas a identidade aritmética acima devolvida como número redondo por um contador que nada sabe da derivação.
O total medido fica então entre 3 % e 17 % acima de , assim que conta as matrizes de embedding — e essa cláusula importa, porque os dois artigos fundadores contam de forma diferente. Kaplan exclui "all vocabulary and positional embeddings" porque fazê-lo "produces significantly cleaner scaling laws" (§1.3); o Apêndice F de Chinchilla diz "we also count embeddings matrices in the total parameter count".2 Para um vocabulário largo e uma dimensão hidden estreita, os dois diferem por um fator de nove, como mostra a primeira linha.
A diferença residual é o que omite deliberadamente: as pontuações de attention. A Eq. (2.2) de Kaplan escreve o custo forward como e elimina o segundo termo porque — seguro em 2020, menos seguro agora, e a razão pela qual o rácio sobe à medida que cresce — motivo pelo qual duas linhas aqui partilham um de 1.024 e o rácio cai, de 1.145 para 1.100, quando passa de 768 para 1.600. É o custo que o Capítulo 9 introduziu e que o Capítulo 16 transforma num preço.
Memória: o que tem mesmo de caber
Ligação para a secção: Memória: o que tem mesmo de caberO compute decide quanto tempo uma execução demora; a memória decide se pode começar. Treine com AdamW fp32 simples e cada parâmetro transporta quatro números: o peso, o seu gradiente, e a média móvel e a variância do Adam — as duas médias construídas à mão no Capítulo 6. Quatro números a quatro bytes cada são 16 bytes por parâmetro, antes de uma única activation. Medido numa GPU de portátil de 8 GB, tomando a alocação residente no ponto do passo em que não há gráfico vivo:
| modelo | vocabulário | batch | previsto | residente medido | pico num passo | a diferença | |
|---|---|---|---|---|---|---|---|
| 512, 8 camadas | 50,257 | 8 | 51,045,888 | 779 MB | 801 MB | 2,500 MB | 1,699 MB |
| 512, 8 camadas | 4,096 | 8 | 27,411,456 | 418 MB | 426 MB | 1,043 MB | 617 MB |
| 256, 6 camadas | 4,096 | 8 | 5,839,360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 camadas | 4,096 | 32 | 5,839,360 | 89 MB | 89 MB | 1,259 MB | 1,170 MB |
| 256, 6 camadas | 4,096 | 128 | 5,839,360 | 89 MB | 89 MB | 4,771 MB | 4,681 MB |
Previsão e medição concordam dentro de 3 %. A surpresa é a última coluna: as activations esmagam o modelo. O mesmo modelo de 5,8 milhões de parâmetros que precisa de 89 MB de estado persistente precisa de 4.681 MB de activations com um batch de 128 — cinquenta e duas vezes o modelo — e muito disso nem sequer é o transformer. São os logits, um vetor do tamanho do vocabulário por token a quatro bytes por entrada: 512 MB na última linha, 393 MB na primeira. O tamanho do vocabulário foi escolhido no Capítulo 7, e continua a decidir o que cabe na placa.
Que termo domina depende da forma da execução, razão pela qual Micikevicius et al. dizem que a memória "is dominated by activations"3 enquanto o ZeRO diz que um modelo de 1,5 mil milhões de parâmetros precisa de "at least 24 GB" apenas para os estados do modelo.4 O ZeRO chega aos mesmos 16 bytes por outro caminho — para pesos fp16, para gradientes fp16, cada para os pesos mestres fp32 e os dois momentos do Adam — o que, para 70 mil milhões de parâmetros, dá 1,12 terabytes, o equivalente a catorze GPUs de 80 GB antes de uma única activation.
Paralelismo, num parágrafo e uma delegação
Ligação para a secção: Paralelismo, num parágrafo e uma delegaçãoNada disso cabe num só dispositivo à escala frontier, por isso a execução é dividida de quatro formas ao mesmo tempo. Paralelismo de dados coloca uma cópia do modelo em cada GPU e calcula a média dos gradientes — o padrão, e aquele que o ZeRO melhora ao recusar manter cópias redundantes do estado do otimizador. Paralelismo de tensores divide matrizes individuais entre dispositivos. Paralelismo de pipeline dá a cada dispositivo um grupo contíguo de camadas. Paralelismo de contexto divide a própria sequência, necessário apenas quando é suficientemente longo para o termo de attention dominar. A Tabela 4 do Llama 3 lista os quatro de uma vez: tensor 8, contexto até 16, pipeline 16, dados até 128, em 16.384 GPUs H100.5 É tudo o que este curso dirá sobre isso; engenharia de treino distribuído é um semestre próprio, e o CS336 de Stanford é esse semestre, aulas 5 a 8, com o código.6 O que sobrevive à delegação é um único número, model FLOPs utilisation — a fração da aritmética de pico de uma GPU que uma execução real atinge — que é o que transforma o arrumado em tempo de relógio e, portanto, em dinheiro.
Kaplan, e a aposta que a indústria fez
Ligação para a secção: Kaplan, e a aposta que a indústria fezEm janeiro de 2020, Kaplan et al. treinaram uma grelha de transformers e descobriram que a perda de teste segue uma lei de potência em cada um dos três recursos ao longo de mais de seis ordens de grandeza.1 A secção §1.2 dá três leis ajustadas:
com companheiras para dados e para compute alocado de forma ótima. As constantes não são universais, e o artigo di-lo: "the precise numerical values of , and depend on the vocabulary size and tokenization and hence do not have a fundamental meaning."
Os expoentes são minúsculos: dez vezes os parâmetros compram um fator retirado à perda restante. Parece nada, e é o facto mais importante aqui — os retornos são péssimos e nunca acabam. Uma lei de potência com um expoente pequeno promete que a próxima ordem de grandeza ajudará, menos do que a anterior, para sempre. Comprar compute deixa de ser uma aposta e passa a ser uma compra com uma taxa de câmbio publicada, exatamente o argumento que desbloqueou o capital.
Depois veio a prescrição, e é aqui que o artigo estava errado de uma forma que custou muito dinheiro à indústria. A Tabela 6 de Kaplan dá e : dez vezes o compute significam um modelo 5,4 vezes maior alimentado com apenas 1,9 vezes mais texto. O resumo é explícito — "optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence." A área fez exatamente isso: GPT-3 tem 175 mil milhões de parâmetros em 300 mil milhões de tokens,7 Gopher 280 mil milhões em 300 mil milhões, Megatron-Turing NLG 530 mil milhões em 270 mil milhões.2 De meio token a dois tokens por parâmetro, em toda a linha.
Chinchilla, e o que a varredura acima estava a medir
Ligação para a secção: Chinchilla, e o que a varredura acima estava a medirEm março de 2022, Hoffmann et al. treinaram mais de 400 modelos de 70 milhões a 16 mil milhões de parâmetros e chegaram à conclusão oposta por três vias independentes.2 A Tabela 2 reporta o expoente em como 0.50, 0.49 e 0.46, contra os 0.73 de Kaplan. Em termos simples: o tamanho do modelo e os dados de treino devem crescer em igual proporção.
A segunda abordagem deles é a reproduzida pela varredura no início deste capítulo, a uma milionésima da escala: fixar um orçamento, treinar muitos tamanhos exatamente com esse orçamento, representar a perda final contra o tamanho do modelo.
| parâmetros | |||
|---|---|---|---|
| 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) |
Perda held-out em nats por token, tokens por parâmetro entre parênteses, negrito para o melhor modelo em cada orçamento; um travessão é um ponto não executado, porque o orçamento exigia mais texto do que o corpus contém ou porque o tamanho ficava fora dos varridos ali.
Leia uma coluna para baixo: a perda cai, chega ao fundo e volta a subir. Um modelo pode ser grande demais para o seu orçamento tão facilmente como pequeno demais — em , a penalização por escolher 665.280 parâmetros em vez de 295.808 é 0,08 nats, que no envelope ajustado acima é a perda que um modelo corretamente dimensionado atinge com 18 % menos compute. Escolher a forma errada deita fora um quinto do orçamento. É a Figura 3 de Chinchilla numa tarde numa GPU em vez de com quatrocentos modelos.
Agora leia na horizontal. Em o melhor modelo é o mais pequeno dos varridos; em são 295.808 parâmetros, enquadrado de ambos os lados. O ótimo desloca-se para a direita à medida que o orçamento cresce, que é todo o conteúdo da correção. Ajuste a terceira abordagem do artigo — a superfície sobre todas as execuções — e minimize sujeita a :
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, a partir de um portátil, contra os 0,73 de Kaplan. A concordância a três dígitos a partir de um ajuste de três orçamentos é sorte; a concordância no primeiro não é. O expoente viaja — a constante não, porque o rácio tokens-parâmetro nestes ótimos é de 170 a 540, não 20. Três razões, todas instrutivas. ajusta para zero porque, com uma perda acima de 4 nats, a execução não está nem perto do piso de entropia que domina o ajuste de Chinchilla. O tamanho do batch e a learning rate foram fixos em vez de ajustados por ponto, o que prejudica as execuções que recebem menos passos — e essas são os modelos grandes: em FLOPs, um modelo de 1,28 milhões de parâmetros recebe 159 passos de otimizador no total, muito abaixo dos poucos milhares que o termo de Kaplan diz que qualquer modelo precisa. Uma lei de escala é ajustada dentro de um regime, e esta está seis ordens de grandeza abaixo de Chinchilla.
Daí o resumo do artigo: "current large language models are significantly undertrained". Chinchilla é a demonstração — 70 mil milhões de parâmetros em 1,4 biliões de tokens, o mesmo compute total que o Gopher de 280 mil milhões em 300 mil milhões, superando-o em 51 de 57 tarefas MMLU, 67,5 % contra 60 %.2 Quatro vezes mais pequeno, quatro vezes e meia mais texto, mesmo dinheiro, melhor modelo.
Duas ressalvas sobre esse famoso rácio. "Vinte tokens por parâmetro" não é uma frase do artigo, que diz apenas que "for every doubling of model size the number of training tokens should also be doubled"; os 20 são uma inferência da Tabela 3 e do próprio Chinchilla, 70 B em 1,4 T. E a sua precisão é pior do que a publicada: Besiroglu et al. reajustaram a partir de uma digitalização da Figura 4, descobriram que os parâmetros originais "fit the reconstructed data poorly" com intervalos "implausibly tight given the number of data points", e colocaram o intervalo honesto em "between 4 and 40" tokens por parâmetro.8
Um detalhe do método de Chinchilla cumpre uma promessa que o Capítulo 1 fez sobre schedules de learning rate. O schedule cosseno tem de ser compatível com o orçamento de tokens. Um modelo que verá 10 milhões de tokens deve decair a sua learning rate para zero aos 10 milhões de tokens; dê-lhe um schedule dimensionado para 100 milhões, pare-o cedo, e está a ler uma perda a meio da descida com uma taxa demasiado alta. Chinchilla treina cada modelo em quatro comprimentos de ciclo para controlar exatamente isto; a varredura acima define o schedule a partir do orçamento pela mesma razão.
O que as leis de escala não prometem
Ligação para a secção: O que as leis de escala não prometemSão o resultado empírico mais útil da área e são rotineiramente exageradas. Quatro limites.
Preveem perda, não capacidade. O lado esquerdo é cross-entropy em texto held-out. Nada nestes artigos autoriza uma afirmação sobre se um modelo escreverá SQL correto, recusará um pedido nocivo ou usará uma tool. É de novo a lição do Capítulo 5: uma previsão da perda não é uma previsão do comportamento pelo qual está a pagar.
São ajustadas, não derivadas. Nenhuma teoria produz . As constantes movem-se com o tokenizer — é por isso que uma comparação de perplexity entre dois tokenizers não tem sentido, como explicou o Capítulo 8 — e com a mistura de dados, a arquitetura e o otimizador. Toda a lei publicada é uma lei da configuração que a produziu, razão pela qual a Meta reajustou a sua antes do Llama 3.5
Assumem um token novo para cada passo, o que discretamente assume um corpus infinito. Muennighoff et al. mediram o que acontece quando ele acaba: até quatro épocas de dados repetidos custam quase nada — um modelo de 8,7 mil milhões de parâmetros em 44 mil milhões de tokens únicos vistos quatro vezes terminou com "only 0.5 % higher validation loss" do que o mesmo modelo em 178 mil milhões de tokens únicos — enquanto, depois de cerca de dezasseis épocas, compute adicional não compra nada.9
E já ninguém treina de forma compute-optimal. Chinchilla minimiza o custo de treino; um modelo implementado paga depois cerca de FLOPs por token gerado, para sempre. O LLaMA 1 disse-o claramente: "given a target level of performance, the preferred model is not the fastest to train but the fastest at inference".10 Sardana et al. formalizaram isto minimizando antes , e descobriram que quem espera mil milhões de pedidos deve treinar "smaller and longer than Chinchilla-optimal".11 A secção §9.1 do Llama 3 concorda: os seus modelos pequenos treinam "far beyond the point of compute optimal training, effectively trading training compute for inference efficiency".5 O rácio não está obsoleto; responde a uma pergunta que já não é a que está a ser feita.
Capacidades emergentes, e a discussão sobre se são reais
Ligação para a secção: Capacidades emergentes, e a discussão sobre se são reaisA perda cai suavemente. As pontuações em benchmarks por vezes não. Wei et al. reuniram casos em que uma tarefa fica ao nível do acaso ao longo de ordens de grandeza de training compute e depois salta — aritmética de três dígitos a aparecer no GPT-3 por volta de FLOPs, MMLU a subir acima do palpite entre e — e deram nome ao padrão: "an ability is emergent if it is not present in smaller models but is present in larger models".12 Se isso for uma propriedade real, extrapolar a partir de experiências baratas é inseguro, porque a capacidade que está a comprar pode não existir em nenhuma escala que consiga testar.
Schaeffer, Miranda e Koyejo argumentaram que a maior parte disso é um artefacto de medição, e o mecanismo é aritmético.13 A perda por token cai suavemente, por isso a probabilidade de um token estar certo, , melhora gradualmente. Pontue o modelo com correspondência exata de string sobre uma resposta de tokens e eleva essa probabilidade à potência — uma curva suave elevada a uma potência grande parece um precipício. Troque para uma métrica que conta tokens em vez de exigir todos, nas mesmas saídas, e "the family's performance smoothly, continuously and predictably improves with increasing scale".
A auditoria deles é o número a reter — "of the 39 preferred metrics in BIG-Bench, at most 5 display emergence", com duas métricas descontínuas a explicarem mais de 92 % dos casos alegados — e também o é a cautela: "nothing in this paper should be interpreted as claiming that large language models cannot display emergent abilities". Um salto num gráfico é prova sobre a métrica até se mostrar o contrário. O Capítulo 29 é onde isso se torna problema seu, porque escolher uma métrica de corte rígido é uma decisão que tomará sem reparar.
De onde vêm os dados
Ligação para a secção: De onde vêm os dadosO corpus é a parte de uma execução de pretraining sem equação associada, e onde vivem a maioria das decisões consequentes. A matéria-prima é uma recolha da web: o arquivo de agosto de 2026 da Common Crawl contém "2.14 billion web pages or 360 TiB of uncompressed content", um mês dela, gratuito para download.14 Quase nada é utilizável como está. O artigo T5 diz que a recolha "largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text", e o pipeline C4 que introduziu é uma lista de heurísticas grosseiras — manter apenas linhas que terminam em pontuação final, eliminar páginas com menos de três frases, eliminar qualquer página que contenha uma chaveta ou uma palavra de uma lista pública de obscenidades — transformando vinte terabytes de texto mensal em cerca de 750 GB.15
Grosseiras é a palavra. Dodge et al. auditaram o que esses filtros removem e descobriram que a blocklist de obscenidades elimina 42 % dos documentos em inglês afro-americano e 32 % em inglês alinhado com hispânicos, contra 6,2 % do inglês alinhado com brancos, deixando um corpus 97,8 % da última categoria.16 Uma regra sem opinião sobre dialeto tinha uma.
Depois deduplicação, que não é arrumação: Lee et al. encontraram uma frase de 61 palavras repetida 61.036 vezes no C4, e mostraram que deduplicar reduz dez vezes a taxa a que os modelos "emit memorized text", de 1,9 % dos tokens gerados para 0,19 %.17 Mais não é melhor, porém — a equipa do FineWeb deduplicou globalmente em 96 recolhas, obteve 4 biliões de tokens e nenhum ganho mensurável; depois deduplicou cada recolha separadamente, obteve 20 biliões, e igualou o melhor corpus existente.18
Depois contaminação. O Llama 3 mediu a sua e publicou-a: 98 % do AGIEval, 95 % do BIG-Bench Hard e 85 % do HellaSwag sobrepunham-se ao conjunto de treino por 8-grams, e no MMLU uma sobreposição tão alta que "it is impossible to get a good performance gain estimate".5 A secção §4 do GPT-3 relata um bug de filtragem que deixou benchmarks nos dados sem volta possível: "because of cost considerations it was infeasible to retrain the model".7
A proveniência é a parte por resolver. O Pile incluiu um componente de 100,96 GiB chamado Books3 — 12 % do corpus e, pela própria tabela de consentimento do artigo, livros de um tracker de torrents privado;19 foi retirado do ar em agosto de 2023 após uma queixa de direitos de autor. A posição legal em setembro de 2026 está por resolver, e as três decisões dos EUA citadas como tendência discordam entre si. Alsup considerou que treinar em livros adquiridos legalmente era "exceedingly transformative", mantendo que uma biblioteca construída a partir de cópias pirateadas não o era, e a Anthropic transacionou essa metade por $1.5 billion cobrindo 482.460 obras, cerca de $3.000 cada, aprovado em 20 de julho de 2026.20 Chhabria concedeu julgamento sumário à Meta escrevendo ao mesmo tempo que a sua decisão "does not stand for the proposition that Meta's use of copyrighted materials to train its language models is lawful", apenas que "these plaintiffs made the wrong arguments".21 Bibas, decidindo contra a Ross Intelligence, assinalou que "only non-generative AI is before me today".22 Nenhum tribunal de recurso dos EUA decidiu a questão.
Pessoas fazem as partes que a perda não consegue. A TIME noticiou em janeiro de 2023 que trabalhadores que rotulavam texto tóxico para a OpenAI através da empresa Sama levavam para casa "between around $1.32 and $2 per hour" a ler passagens que descreviam abuso sexual infantil, tortura e automutilação, enquanto a OpenAI pagava à Sama $12.50 por hora pelo trabalho; a Sama contesta tanto o intervalo salarial como a quota.23 Isso é a filtragem à volta do pretraining, não o pretraining em si — mas está na mesma fatura, e é onde uma pessoa se senta.
A eletricidade é real e normalmente mal citada. O valor publicado mais cuidadoso é o do BLOOM: 1.082.990 horas-GPU, 433 MWh e 24,7 toneladas de CO₂ equivalente para a execução, 50,5 contando fabrico e nós inativos;24 Patterson et al. colocam o GPT-3 em 1.287 MWh e 552 toneladas.25 Duas cautelas. A vantagem do BLOOM é a rede nuclear francesa a 57 g CO₂ por kWh, não a eficiência — usou mais energia do que o OPT-175B. E o valor de emissões mais citado da área, as 626.155 lb de Strubell et al. para uma neural architecture search, revelou-se depois 88 vezes alto demais, por ter assumido que a pesquisa corria no tamanho completo do modelo quando corria num proxy.26 O enquadramento do LBNL é o defensável: os datacenters dos EUA usaram 192 TWh em 2024, 4,7 % da eletricidade nacional — um número ligado a uma indústria, não a uma execução individual.27
O fio condutor é o que Bender et al. chamaram dívida de documentação: "putting ourselves in a situation where the datasets are both undocumented and too large to document post hoc".28 Cada facto acima existe porque alguém foi ver. Para os corpora por trás dos modelos que a maioria das pessoas usa, ninguém consegue.
Quanto custa realmente
Ligação para a secção: Quanto custa realmenteAgora a aritmética que todos querem, a partir de quatro inputs citados, para que, quando envelhecerem, seja óbvio quais substituir.
Throughput de pico
Ligação para a secção: Throughput de picoA página da H100 da NVIDIA lista 1.979 teraFLOPS de throughput tensor-core BF16 sob uma nota que diz "with sparsity".29 Nenhuma execução de pretraining usa esparsidade estruturada, por isso o valor denso é metade: 989,5 TFLOP/s.
Utilização
Ligação para a secção: UtilizaçãoA Tabela 4 do Llama 3 reporta 38–43 % de BF16 model FLOPs utilisation. Tome 40 %: 395,8 TFLOP/s de aritmética útil por GPU.5
O preço on-demand da Lambda para um nó 8×H100 SXM, acedido em 2026-09-06: $3.99 por hora-GPU, logo $31.92 por hora para o nó.30
O rácio de Chinchilla, , dá e portanto .
| orçamento | horas-H100 | FLOPs | parâmetros compute-optimal | tokens | num nó 8×H100 | GPUs para terminar em 90 dias |
|---|---|---|---|---|---|---|
| $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 dias | 2 |
| $100,000 | 25,063 | 3.6e22 | 17.3 B | 345 B | 131 dias | 12 |
| $1,000,000 | 250,627 | 3.6e23 | 54.6 B | 1.09 T | 4 anos | 116 |
| $10,000,000 | 2,506,266 | 3.6e24 | 173 B | 3.45 T | 36 anos | 1,160 |
| $100,000,000 | 25,062,657 | 3.6e25 | 546 B | 10.9 T | 358 anos | 11,603 |
Leia as duas últimas colunas em conjunto. Com $10.000 obtém um modelo de 5 mil milhões de parâmetros num nó alugado em quinze dias. Com $100.000.000, a aritmética diz 546 mil milhões de parâmetros — e doze mil H100 interligadas durante três meses, o que não é algo que se alugue com cartão de crédito. Depois de cerca de $100.000, a restrição vinculativa deixa de ser dinheiro e passa a ser o cluster.
Antes de confiar numa tabela como essa, teste-a contra execuções cujo custo real está publicado — llm.c reproduz o GPT-2 124M em "~90 minutes" num nó 8×A100 "for about $20", e o GPT-2 1.6B em 24 horas num nó 8×H100 por $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.86Ambos dentro de cerca de 15 %, que é aproximadamente a precisão que este tipo de estimativa merece e consideravelmente melhor do que a precisão com que costuma ser citada.
A comparação de manchete, com ambas as definições em cima da mesa
Ligação para a secção: A comparação de manchete, com ambas as definições em cima da mesaO número mais repetido neste tema é que um modelo de classe GPT-2 que custava cerca de $43.000 em 2019 pode ser reproduzido hoje por umas dezenas de dólares. A metade moderna está bem documentada; a metade histórica não.
Hoje. README de nanochat de 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" aqui é preciso e publicado — superar a pontuação CORE do GPT-2 de 0.256525 — numa leaderboard cuja melhor entrada em 14 de março de 2026 é 1,65 horas. Os $48 assumem $3 por hora-GPU, abaixo dos $3.99 de tabela da Lambda; ao preço de tabela, fica mais perto de $64.
Em 2019. Não há fonte primária: a OpenAI nunca publicou uma duração ou um custo. A cadeia passa pelo The Register, fevereiro de 2019, que reporta "256 Google TPU3 cores" sem preço e sem duração; depois pelo Synced, junho de 2019, assinalando que o hardware custava $256 por hora na Google Cloud e afirmando explicitamente que "OpenAI didn't specify the training duration". $43.008 são $256 por hora vezes umas supostas 168 horas que ninguém alguma vez documentou.
Portanto, a manchete honesta é: um modelo que iguala a pontuação de benchmark publicada do GPT-2 pode ser treinado hoje por bastante menos de $100 em hardware alugado, contra um custo de 2019 que nunca foi publicado e cuja famosa estimativa assenta num palpite sem fonte sobre a duração. O colapso é real e a metade moderna é reproduzível por qualquer pessoa com cartão de crédito; o rácio é aritmética sobre um número que não existe. Esse é o estado dos custos de treino publicados em geral. O artigo do GPT-3 não contém qualquer montante em dólares, apenas FLOPs na Tabela D.1;7 o artigo do Llama 3 também não contém nenhum.5 Todo o custo de treino que leu é uma estimativa a partir de uma contagem FLOP, uma hipótese de hardware e uma hipótese de preço — vale sempre a pena perguntar de quem.
O que um modelo base sabe, e quando deixou de o saber
Ligação para a secção: O que um modelo base sabe, e quando deixou de o saberO que resulta viu um corpus fixo montado num momento fixo, e seguem-se duas propriedades.
A primeira é o knowledge cutoff. Depois da data de recolha, o modelo não sabe nada — não "está incerto", nada — e confabulará fluentemente em vez de o dizer, porque dizê-lo nunca foi um comportamento em que foi treinado. O model card do Llama 3.1 dá dezembro de 2023;33 todos os modelos têm uma, e é uma propriedade dos dados de treino, não do deployment. Contorná-lo é um problema de retrieval, que é o Capítulo 19.
A segunda é que um modelo base completa em vez de responder. Dê-lhe "Qual é a capital de França?" e uma continuação plausível é outra pergunta, porque no corpus essa string aparece mais frequentemente numa lista de exercícios.
Para onde vamos a seguir
Ligação para a secção: Para onde vamos a seguirUm completador de texto não é um assistente. Não segue instruções, porque nada no corpus lhe disse que um pedido deve ser obedecido em vez de continuado. Não tem noção de uma conversa com dois participantes. Produzirá alegremente a continuação mais provável de um prompt nocivo, porque provável é a única coisa para a qual alguma vez foi otimizado.
Transformá-lo em algo que responde exige uma segunda fase que custa uma fração de um por cento da primeira, e consiste quase inteiramente em mostrar-lhe exemplos do comportamento que quer e depois comparar pares das suas próprias saídas. Essa fase é de onde vêm o seguimento de instruções, chat templates, recusas e — isto surpreende as pessoas — a capacidade de chamar uma tool. O Capítulo 11 é essa fase: supervised fine-tuning, RLHF, DPO e GRPO, e a pergunta sobre o que significa "aligned" e quem decide.
Fontes e método
Ligação para a secção: Fontes e métodoTambém vale a pena ler juntamente com este capítulo: build-nanogpt de Karpathy e o vídeo que o acompanha, que percorrem uma reprodução completa do GPT-2 de ponta a ponta a um ritmo que este capítulo não consegue; e Stanford CS324, Large Language Models, cujas aulas sobre dados e impacto ambiental vão mais fundo do que a secção acima em material que este curso trata uma vez e delega.
Referências
Ligação para a secção: Referências-
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). As três leis de potência são as Eqs. (1.1)–(1.3) em §1.2 e as constantes completas estão no Apêndice A, Tabela 5; a derivação de é §2.1; os expoentes de alocação de compute estão na Tabela 6. Note que há duas leis de compute, com tamanho de batch fixo e com tamanho de batch ótimo; o artigo diz que a última "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). Expoentes na Tabela 2, orçamentos projetados na Tabela 3, a comparação com Gopher em §4, a convenção de contagem de parâmetros no Apêndice F. A prosa abaixo da Tabela 3 discorda da própria Tabela 3 para as linhas 175 B e 280 B; a tabela é a versão a citar. ↩ ↩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. Pesos mestres FP32 em §3.1, loss scaling em §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. A contabilidade está em §3.1; os valores de estado residual para activations estão em §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Orçamento de compute e contagem de tokens em §1, a lei de escala reajustada em §3.2.1, a configuração de paralelismo e MFU na Tabela 4, a análise de contaminação em §5.1.4, a afirmação de over-training em §9.1. O artigo não contém valores em dólares nem tabela de emissões. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Stanford CS336, Language Modeling from Scratch. A aula 2 cobre contabilidade de recursos, as aulas 5–8 GPUs, kernels e paralelismo, as aulas 9 e 11 scaling, as aulas 13–14 dados. É o curso ao qual este capítulo delega a sua engenharia, e é público. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Compute no Apêndice D, Tabela D.1 — que tem uma coluna literalmente intitulada "flops per param per token", cujo valor para todas as linhas GPT-3 é 6. Análise de contaminação em §4. ↩ ↩2 ↩3
-
Besiroglu, T., Erdil, E., Barnett, M. and You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Reconstrói os dados de Chinchilla digitalizando a Figura 4, reajusta, e reporta os expoentes corrigidos e intervalos muito mais amplos. ↩
-
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. O resultado das quatro épocas está em §6; a meia-vida das dezasseis épocas é o ajustado. ↩
-
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 declara o argumento do custo de inferência contra o treino 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. A secção §5 também contém o contrapeso: modelos treinados com rácios extremos de tokens continuam a melhorar, mas "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. Definição em §2, exemplos e limiares de compute em §3–4 e Tabela 1. ↩
-
Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023), artigo distinguido da NeurIPS 2023. O argumento da métrica está em §2, a meta-análise BIG-Bench em §4, o exemplo de visão construído em §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), publicado em 24 de agosto de 2026, acedido em 2026-09-06. A sua própria página inicial afirma "over 300 billion pages spanning 15 years", "totalling more than 10 petabytes" — um valor para o arquivo inteiro, não para a recolha mensal precificada aqui. ↩
-
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). Os filtros C4 estão em §2.2. O artigo dá tamanhos em bytes, não em tokens; o valor de 156 mil milhões de tokens amplamente atribuído a ele vem de Dodge et al. abaixo. ↩
-
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. As taxas de remoção por dialeto estão em §5.3; a contaminação de benchmarks no C4 está em §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. As 61.036 repetições estão na nota de rodapé 1; os valores de memorização estão em §6.2, Tabela 4, e são percentagens de tokens gerados sob um critério de correspondência exata de 50 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. O resultado de deduplicação está em §3.4. O dataset lançado já cresceu para além dos 15 biliões de tokens do artigo. ↩
-
Gao, L., Biderman, S., Black, S. et al. The Pile: An 800GB Dataset of Diverse Text for Language Modeling. arXiv:2101.00027 (2020). Books3 está em §2.3 e Tabela 1; a tabela de consentimento é a Tabela 5. O corpus tem 825,18 GiB, por isso até o título é um arredondamento para baixo. ↩
-
Bartz v. Anthropic, No. 4:24-cv-05417 (N.D. Cal.). Despacho de fair use de 23 de junho de 2025 (Dkt. 231); certificação da classe em 17 de julho de 2025; aprovação final e sentença em 20 de julho de 2026 (Dkt. 680). O acordo libera apenas inputs passados, não outputs nem conduta futura. ↩
-
Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), julgamento sumário de 25 de junho de 2025 (Dkt. 598). Note que a alegação de distribuição por torrenting não foi decidida e permanece viva. ↩
-
Thomson Reuters v. ROSS Intelligence, No. 1:20-cv-00613-SB (D. Del.), opinião revista de 11 de fevereiro de 2025 (Dkt. 770), Bibas J. Em recurso interlocutório para o Third Circuit (No. 25-2153), discutido em 11 de junho de 2026, por decidir à data de escrita. ↩
-
Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 de janeiro de 2023. Os $2 são um teto para revisores seniores que cumpriam todos os objetivos; rotuladores juniores, a maioria, levavam para casa $1.32. A refutação da Sama, citada no mesmo artigo, dá $1.46–$3.74 e uma quota inferior. ↩
-
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). Tabelas 1 e 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). Os valores do GPT-3 estão na Tabela 4; a correção da estimativa NAS está em §4.1. ↩
-
Strubell, E., Ganesh, A. and McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. Vale a pena ler precisamente por causa do que aconteceu ao seu número mais citado: o artigo é cuidadoso, declara a sua extrapolação, e ainda assim errou por duas ordens de grandeza na linha que toda a gente repetiu. ↩
-
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 de junho de 2026). Isto revê em baixa o relatório de 2024 amplamente citado para a série histórica; se está a citar o valor de 176 TWh para 2023, está a citar a edição ultrapassada. ↩
-
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" está em §4.4. Note que os valores de carbono do próprio artigo são citados de Strubell et al. e herdam a correção acima — o que é uma ilustração do seu argumento, não uma refutação. ↩
-
NVIDIA. Página de produto NVIDIA H100 Tensor Core GPU,
nvidia.com/en-us/data-center/h100/(acedido em 2026-09-06). Todas as linhas tensor-core nessa página exceto FP64 têm a nota "with sparsity"; o valor BF16 denso usado aqui é metade dos 1.979 TFLOPS publicados. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(acedido em 2026-09-06). On-demand, por GPU por hora, antes de impostos. Os preços nesta secção envelhecerão mais depressa do que qualquer outra coisa neste curso; a aritmética à volta deles não. ↩ -
Karpathy, A.
karpathy/llm.c, discussão #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 de maio de 2024), e discussão #677, Let's reproduce GPT-2 (1.6B): one 8XH100 node, 24 hours, $672, in llm.c (11 de julho de 2024). ↩ -
Karpathy, A.
karpathy/nanochat, README e leaderboard "time to GPT-2" (acedido em 2026-09-06). O valor de $48 e a definição de "GPT-2 capability" por pontuação CORE estão ambos no README; ospeedrun.shdo próprio repositório diz "approximately 1.5 hours", por isso trate o valor de duas horas como arredondado. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdemmeta-llama/llama-models(acedido em 2026-09-06). Fonte das 30,84 M horas-H100 para o modelo 405 B, do total de 39,3 M, do valor location-based de 11.390 tCO2eq e do data cutoff de dezembro de 2023. ↩