Pré-treinando um LLM: dados, computação, leis de escala e custo
Vinte modelos treinados em uma GPU de laptop para medir uma lei de escala e validar a estimativa 6ND contra um contador real de FLOPs.
Nesta página
Capítulo 9 terminou com um bloco transformer que treina. Empilhe alguns deles, aponte a perda de próximo token do Capítulo 8 para a saída, e não resta nada a inventar. Tudo o que sobra é uma compra.
Essa mudança é maior do que parece. Até aqui, todo capítulo perguntava isso aprende? — uma pergunta de sim ou não que um laptop 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 ela não era óbvia para ninguém em 2018.
Aqui está essa pergunta respondida por medição, em uma única GPU de laptop. Vinte modelos, de 98.624 a 15 milhões de parâmetros, foram treinados do zero em 174 milhões de tokens da Wikipédia — um vocabulário BPE de 2.048 tokens treinado do jeito que o Capítulo 7 treina um, o transformer do Capítulo 9. Cada execução recebeu exatamente um de três orçamentos de computação e nem uma operação a mais, então um modelo maior necessariamente lê menos texto. A melhor perda em held-out alcançada 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 mais aritmética tira 19% da perda, e os três pontos caem em uma linha reta em log-log. Nada nos nove primeiros capítulos prevê isso. Não há teorema por trás — é uma regularidade empírica, mantida com um expoente diferente ao longo das dez ordens de grandeza entre este laptop 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 é pré-treinamento, e o que há de novo nele
Link para a seção: O que é pré-treinamento, e o que há de novo neleNada no objetivo muda. O modelo ainda prevê o próximo token, a perda ainda é a entropia cruzada do Capítulo 4 aplicada à fatoração do Capítulo 8, o otimizador ainda é o AdamW do Capítulo 6. Pré-treinamento não é um novo algoritmo; é o mesmo algoritmo rodado em um corpus grande o suficiente para que a execução precise ter orçamento. Duas coisas tornam isso possível: os rótulos são gratuitos, já que o alvo para a posição é o token em e já está no texto; e a última seçã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 desmorona, ele melhora. O que sai é um modelo base — algo que continua texto, em vez de responder.
Contando a computação antes de gastá-la: 6ND
Link para a seção: Contando a computação antes de gastá-la: 6NDAntes que qualquer coisa disso possa entrar no orçamento, ela precisa ser contada, e a área a conta com uma fórmula:
em que é a contagem de parâmetros, são os tokens de treinamento e é o total de operações de ponto flutuante. Kaplan et al. a derivam em duas etapas.1 Forward: 2 FLOPs por parâmetro por token, já que cada parâmetro em uma multiplicação de matrizes é usado uma vez por token, em uma multiplicação e uma soma. Backward: duas vezes o forward, já que a passagem backward do Capítulo 5 calcula dois gradientes em cada camada — em relação às entradas da camada, para que o sinal continue viajando, e em relação aos seus pesos — cada um uma multiplicação de matrizes do tamanho da forward, então .
Essa é a derivação inteira, e vale conferir em vez de acreditar. O PyTorch vem com um contador real de FLOPs, torch.utils.flop_counter.FlopCounterMode, que intercepta cada operação que um modelo despacha e soma o trabalho real. Rode-o ao longo de quatro ordens de grandeza, a maior no dispositivo meta, que aloca shapes e nenhuma 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 |
A razão 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 não sabe nada sobre a derivação.
O total medido então fica entre 3% e 17% acima de , uma vez que conta as matrizes de embedding — e essa cláusula importa, porque os dois artigos fundadores contam de maneiras diferentes. Kaplan exclui “all vocabulary and positional embeddings” porque isso “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 amplo e uma dimensão oculta estreita, os dois diferem por um fator de nove, como mostra a primeira linha.
A lacuna residual é o que omite deliberadamente: os scores de attention. A Eq. (2.2) de Kaplan escreve o custo forward como e descarta o segundo termo porque — seguro em 2020, menos seguro agora, e o motivo pelo qual a razão deriva para cima conforme cresce — é por isso que duas linhas aqui compartilham um de 1.024 e a razão cai, de 1,145 para 1,100, quando vai de 768 para 1.600. É o custo que o Capítulo 9 introduziu e que o Capítulo 16 transforma em preço.
Memória: o que realmente precisa caber
Link para a seção: Memória: o que realmente precisa caberA computação decide quanto tempo uma execução leva; a memória decide se ela pode começar. Treine com AdamW fp32 puro e cada parâmetro carrega quatro números: o peso, 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 ativação. Medido em uma GPU de laptop de 8 GB, tomando a alocação residente no ponto da etapa em que nenhum grafo está vivo:
| modelo | vocabulário | batch | previsto | residente medido | pico em uma etapa | 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 está na última coluna: as ativações superam o modelo por muito. 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 ativações com batch de 128 — cinquenta e duas vezes o modelo — e boa parte disso nem é 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 ele ainda decide o que cabe na placa.
Qual termo domina depende do formato da execução, por isso Micikevicius et al. dizem que a memória “is dominated by activations”3 enquanto o ZeRO diz que um modelo de 1,5 bilhão de parâmetros precisa de “at least 24 GB” apenas de estados do modelo.4 O ZeRO chega aos mesmos 16 bytes por outro caminho — para pesos fp16, para gradientes fp16, cada para os pesos master fp32 e os dois momentos do Adam — o que, para 70 bilhões de parâmetros, dá 1,12 terabytes, o equivalente a quatorze GPUs de 80 GB antes de uma única ativação.
Paralelismo, em um parágrafo e uma delegação
Link para a seção: Paralelismo, em um parágrafo e uma delegaçãoNada disso cabe em um único dispositivo na escala de fronteira, então a execução é dividida de quatro maneiras ao mesmo tempo. Paralelismo de dados coloca uma cópia do modelo em cada GPU e tira a média dos gradientes — o padrão, e aquele que o ZeRO melhora ao se recusar a 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 é longo o bastante para o termo de attention dominar. A Tabela 4 do Llama 3 lista todos os quatro de uma vez: tensor 8, contexto até 16, pipeline 16, dados até 128, em 16.384 GPUs H100.5 Isso é tudo que este curso dirá sobre o assunto; engenharia de treinamento distribuído é um semestre próprio, e o CS336 de Stanford é esse semestre, aulas 5 a 8, com código.6 O que sobrevive à delegação é um único número, utilização de FLOPs do modelo — a fração do pico aritmético de uma GPU que uma execução real alcança — que é o que transforma o organizado em tempo de relógio e, portanto, em dinheiro.
Kaplan, e a aposta que a indústria fez
Link para a seção: Kaplan, e a aposta que a indústria fezEm janeiro de 2020, Kaplan et al. treinaram uma grade 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 §1.2 deles dá três leis ajustadas:
com companheiras para dados e para computação alocada de forma ótima. As constantes não são universais, e o artigo diz isso: “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 compra um fator a menos na perda restante. Isso parece nada, e é o fato mais importante aqui — os retornos são terríveis e nunca param. Uma lei de potência com expoente pequeno promete que a próxima ordem de grandeza vai ajudar, menos do que a anterior ajudou, para sempre. Comprar computação deixa de ser aposta e vira uma compra com taxa de câmbio publicada, que é exatamente o argumento que destravou o capital.
Então veio a prescrição, e é aqui que o artigo estava errado de um jeito que custou muito dinheiro à indústria. A Tabela 6 de Kaplan dá e : dez vezes a computação significa um modelo 5,4 vezes maior alimentado com apenas 1,9 vez 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 bilhões de parâmetros em 300 bilhões de tokens,7 Gopher 280 bilhões em 300 bilhões, Megatron-Turing NLG 530 bilhões em 270 bilhões.2 Meio token a dois tokens por parâmetro, em todos os casos.
Chinchilla, e o que a varredura acima estava medindo
Link para a seção: Chinchilla, e o que a varredura acima estava medindoEm março de 2022, Hoffmann et al. treinaram mais de 400 modelos, de 70 milhões a 16 bilhões de parâmetros, e chegaram à conclusão oposta por três rotas independentes.2 A Tabela 2 deles relata o expoente em como 0,50, 0,49 e 0,46, contra 0,73 de Kaplan. Em termos simples: tamanho do modelo e dados de treinamento devem crescer na mesma proporção.
A segunda abordagem deles é a reproduzida pela varredura no topo deste capítulo, em um milionésimo da escala: fixe um orçamento, treine muitos tamanhos exatamente nesse orçamento, trace 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 o tamanho ficou fora dos varridos ali.
Leia uma coluna de cima para baixo: a perda cai, chega ao fundo e volta a subir. Um modelo pode ser grande demais para seu orçamento com a mesma facilidade com que pode ser pequeno demais — em , a penalidade por escolher 665.280 parâmetros em vez de 295.808 é 0,08 nats, o que no envelope ajustado acima é a perda que um modelo corretamente dimensionado alcança com 18% menos computação. Escolher o formato errado joga fora um quinto do orçamento. Essa é a Figura 3 de Chinchilla em uma tarde em uma GPU, em vez de com quatrocentos modelos.
Agora leia na horizontal. Em , o melhor modelo é o menor da varredura; em , é o de 295.808 parâmetros, cercado dos dois lados. O ótimo se move para a direita conforme 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, vindo de um laptop, contra 0,73 de Kaplan. Concordância em três dígitos a partir de um ajuste com três orçamentos é sorte; concordância no primeiro não é. O expoente viaja — a constante não, já que a razão token-parâmetro nesses ótimos é de 170 a 540, não 20. Três motivos, todos instrutivos. ajusta para zero porque, em uma perda acima de 4 nats, a execução não está nem perto do piso de entropia que domina o ajuste de Chinchilla. Batch size e learning rate foram fixos em vez de ajustados por ponto, o que prejudica as execuções que recebem menos etapas — e essas são os modelos grandes: em FLOPs, um modelo de 1,28 milhão de parâmetros recebe 159 etapas 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 da de Chinchilla.
Daí o resumo do artigo: “current large language models are significantly undertrained”. Chinchilla é a demonstração — 70 bilhões de parâmetros em 1,4 trilhão de tokens, a mesma computação total que o Gopher de 280 bilhões em 300 bilhões, vencendo-o em 51 de 57 tarefas MMLU, 67,5% contra 60%.2 Quatro vezes menor, quatro vezes e meia mais texto, mesmo dinheiro, modelo melhor.
Duas ressalvas sobre essa razão famosa. “Vinte tokens por parâmetro” não é uma frase no artigo, que diz apenas que “for every doubling of model size the number of training tokens should also be doubled”; o 20 é uma inferência da Tabela 3 e dos próprios 70 B em 1,4 T de Chinchilla. E 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 a faixa honesta 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 cosine schedule precisa ser combinado ao orçamento de tokens. Um modelo que verá 10 milhões de tokens deve decair seu learning rate para zero em 10 milhões de tokens; dê a ele um schedule dimensionado para 100 milhões, pare cedo, e você está lendo uma perda no meio da descida a uma taxa alta demais. Chinchilla treina cada modelo em quatro comprimentos de ciclo para controlar exatamente isso; a varredura acima define seu schedule a partir do orçamento pelo mesmo motivo.
O que as leis de escala não prometem
Link para a seção: O que as leis de escala não prometemElas são o resultado empírico mais útil da área e são rotineiramente vendidas além do que dizem. Quatro limites.
Elas preveem perda, não capacidade. O lado esquerdo é entropia cruzada em texto held-out. Nada nesses artigos autoriza uma afirmação sobre se um modelo escreverá SQL correto, recusará uma solicitação prejudicial ou usará uma ferramenta. Esta é a lição do Capítulo 5 de novo: uma previsão da perda não é uma previsão do comportamento pelo qual você está pagando.
Elas são ajustadas, não derivadas. Nenhuma teoria produz . As constantes se movem com o tokenizer — por isso uma comparação de perplexidade entre dois tokenizers não tem sentido, como o Capítulo 8 explicou — e com a mistura de dados, arquitetura e otimizador. Toda lei publicada é uma lei do setup que a produziu, e é por isso que a Meta reajustou a sua antes do Llama 3.5
Elas assumem um token novo a cada etapa, o que silenciosamente 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 bilhões de parâmetros em 44 bilhões de tokens únicos vistos quatro vezes terminou com “only 0.5 % higher validation loss” do que o mesmo modelo em 178 bilhões de tokens únicos — enquanto, depois de cerca de dezesseis épocas, computação adicional não compra nada.9
E ninguém treina mais de forma compute-optimal. Chinchilla minimiza o custo de treinamento; um modelo implantado então paga aproximadamente FLOPs por token gerado, para sempre. LLaMA 1 disse isso 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 isso minimizando em vez disso, e descobriram que qualquer um esperando um bilhão de solicitações deve treinar “smaller and longer than Chinchilla-optimal”.11 A §9.1 do Llama 3 concorda: seus modelos pequenos treinam “far beyond the point of compute optimal training, effectively trading training compute for inference efficiency”.5 A razão não está obsoleta; ela responde a uma pergunta que já não é a que está sendo feita.
Habilidades emergentes, e o debate sobre se elas são reais
Link para a seção: Habilidades emergentes, e o debate sobre se elas são reaisA perda cai suavemente. Scores de benchmark às vezes não. Wei et al. reuniram casos em que uma tarefa fica no acaso ao longo de ordens de grandeza de computação de treinamento e então salta — aritmética de três dígitos aparecendo no GPT-3 por volta de FLOPs, MMLU subindo acima de chute 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 é uma propriedade real, extrapolar a partir de experimentos baratos é inseguro, porque a capacidade que você está comprando pode não existir em nenhuma escala que você possa se dar ao luxo de testar.
Schaeffer, Miranda e Koyejo argumentaram que a maior parte disso é um artefato de medição, e o mecanismo é aritmético.13 A perda por token cai suavemente, então a probabilidade de um token estar certo, , melhora gradualmente. Avalie o modelo com correspondência exata de string em uma resposta de tokens e você eleva essa probabilidade à potência — uma curva suave elevada a uma potência grande parece um precipício. Troque por uma métrica que conta tokens em vez de exigir todos eles, nas mesmas saídas, e “the family's performance smoothly, continuously and predictably improves with increasing scale”.
A auditoria deles é o número a lembrar — “of the 39 preferred metrics in BIG-Bench, at most 5 display emergence”, com duas métricas descontínuas respondendo por mais de 92% dos casos alegados — e a cautela deles também: “nothing in this paper should be interpreted as claiming that large language models cannot display emergent abilities”. Um salto em um gráfico é evidência sobre a métrica até prova em contrário. O Capítulo 29 é onde isso vira seu problema, porque escolher uma métrica com corte rígido é uma decisão que você tomará sem perceber.
De onde vêm os dados
Link para a seção: De onde vêm os dadosO corpus é a parte de uma execução de pré-treinamento que não tem equação associada, e onde vivem a maioria das decisões consequenciais. A matéria-prima é um rastreamento da web: o arquivo de agosto de 2026 do Common Crawl contém “2.14 billion web pages or 360 TiB of uncompressed content”, um mês dele, gratuito para baixar.14 Quase nada é utilizável como está. O artigo do T5 diz que o crawl “largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text”, e o pipeline C4 que ele introduziu é uma lista de heurísticas grosseiras — manter apenas linhas que terminam com pontuação final, descartar páginas com menos de três frases, descartar qualquer página que contenha uma chave 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 apaga 42% dos documentos em inglês afro-americano e 32% em inglês alinhado a hispânicos, contra 6,2% do inglês alinhado a brancos, deixando um corpus 97,8% da última categoria.16 Uma regra sem opinião sobre dialeto tinha uma.
Depois vem 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 em dez vezes a taxa com que modelos “emit memorized text”, de 1,9% dos tokens gerados para 0,19%.17 Mais não é melhor, porém — a equipe do FineWeb deduplicou globalmente ao longo de 96 crawls, obteve 4 trilhões de tokens e nenhum ganho mensurável, depois deduplicou cada crawl separadamente, obteve 20 trilhões, e igualou o melhor corpus existente.18
Depois, contaminação. O Llama 3 mediu a sua e publicou: 98% do AGIEval, 95% do BIG-Bench Hard e 85% do HellaSwag sobrepostos ao conjunto de treinamento por 8-grams, e para o MMLU uma sobreposição tão alta que “it is impossible to get a good performance gain estimate”.5 A §4 do GPT-3 relata um bug de filtragem que deixou benchmarks nos dados sem volta: “because of cost considerations it was infeasible to retrain the model”.7
Proveniência é a parte não resolvida. The Pile trouxe um componente de 100,96 GiB chamado Books3 — 12% do corpus e, pela própria tabela de consentimento do artigo, livros de um tracker privado de torrent;19 ele foi tirado do ar em agosto de 2023 após uma reclamação de copyright. A posição jurídica em setembro de 2026 é incerta, e as três decisões dos EUA citadas como tendência discordam entre si. Alsup considerou treinamento em livros adquiridos legalmente “exceedingly transformative” enquanto decidiu que uma biblioteca construída a partir de cópias pirateadas não era, e a Anthropic fez acordo nessa metade por $1,5 bilhão cobrindo 482.460 obras, cerca de $3.000 cada, aprovado em 20 de julho de 2026.20 Chhabria concedeu julgamento sumário à Meta escrevendo que 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, observou que “only non-generative AI is before me today”.22 Nenhum tribunal recursal 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 rotulando texto tóxico para a OpenAI por meio da empresa Sama levavam para casa “between around $1.32 and $2 per hour” lendo trechos que descreviam abuso sexual infantil, tortura e automutilação, enquanto a OpenAI pagava à Sama $12,50 por hora pelo trabalho; a Sama contesta tanto a faixa de pagamento quanto a cota.23 Isso é a filtragem ao redor do pré-treinamento, não o pré-treinamento em si — mas está na mesma fatura, e é onde uma pessoa se senta.
A eletricidade é real e geralmente citada de forma errada. O número publicado mais cuidadoso é o do BLOOM: 1.082.990 horas de GPU, 433 MWh e 24,7 toneladas de CO₂ equivalente para a execução, 50,5 contando fabricação e nós ociosos;24 Patterson et al. colocam o GPT-3 em 1.287 MWh e 552 toneladas.25 Duas cautelas. A vantagem do BLOOM é a matriz nuclear francesa a 57 g CO₂ por kWh, não eficiência — ele usou mais energia do que o OPT-175B. E o número de emissões mais citado da área, as 626.155 lb de Strubell et al. para uma busca de arquitetura neural, depois se mostrou 88 vezes alto demais, por ter assumido que a busca rodou no tamanho completo do modelo quando ela rodou em um proxy.26 O enquadramento do LBNL é o defensável: data centers 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 específica.27
A linha que atravessa tudo isso é o que Bender et al. chamaram de 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 fato acima existe porque alguém olhou. Para os corpora por trás dos modelos que a maioria das pessoas usa, ninguém consegue.
Quanto isso realmente custa
Link para a seção: Quanto isso realmente custaAgora a aritmética que todo mundo quer, a partir de quatro entradas citadas, para que, quando envelhecerem, fique óbvio qual substituir.
Throughput de pico
Link para a seção: Throughput de picoA página da H100 da NVIDIA lista 1.979 teraFLOPS de throughput de tensor-core BF16 sob uma nota de rodapé que diz “with sparsity”.29 Nenhuma execução de pré-treinamento usa esparsidade estruturada, então o número denso é metade disso: 989,5 TFLOP/s.
Utilização
Link para a seção: UtilizaçãoA Tabela 4 do Llama 3 relata 38–43% de utilização de FLOPs do modelo em BF16. Use 40%: 395,8 TFLOP/s de aritmética útil por GPU.5
Preço sob demanda da Lambda para um nó 8×H100 SXM, acessado em 2026-09-06: $3,99 por GPU-hora, portanto $31,92 por hora para o nó.30
Formato
Link para a seção: FormatoA razão de Chinchilla, , dá e portanto .
| orçamento | horas de H100 | FLOPs | params compute-optimal | tokens | em um 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 juntas. Com $10.000 você obtém um modelo de 5 bilhões de parâmetros em um nó alugado em quinze dias. Com $100.000.000, a aritmética diz 546 bilhões de parâmetros — e doze mil H100s conectadas por três meses, o que não é algo que você aluga com cartão de crédito. Depois de cerca de $100.000, a restrição vinculante deixa de ser dinheiro e passa a ser o cluster.
Antes de confiar em uma tabela assim, teste-a contra execuções cujo custo real foi publicado — llm.c reproduz o GPT-2 124M em “~90 minutes” em um nó 8×A100 “for about $20”, e o GPT-2 1.6B em 24 horas em um 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 esse tipo de estimativa merece e consideravelmente melhor do que a precisão com que ela costuma ser citada.
A comparação de manchete, com as duas definições na mesa
Link para a seção: A comparação de manchete, com as duas definições na mesaO número mais repetido neste assunto é que um modelo da classe GPT-2 que custava cerca de $43.000 em 2019 pode ser reproduzido hoje por algumas dezenas de dólares. A metade moderna é bem documentada; a metade histórica, não.
Hoje. README do 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 o score CORE do GPT-2 de 0,256525 — em um leaderboard cuja melhor entrada em 14 de março de 2026 é 1,65 hora. Os $48 assumem $3 por GPU-hora, abaixo do preço de tabela de $3,99 da Lambda; no preço de tabela, fica mais perto de $64.
Em 2019. Não há fonte primária: a OpenAI nunca publicou duração ou custo. A cadeia passa por The Register, fevereiro de 2019, relatando “256 Google TPU3 cores” sem preço e sem duração; depois Synced, junho de 2019, observando que o hardware custava $256 por hora no Google Cloud e afirmando explicitamente que “OpenAI didn't specify the training duration”. $43.008 são $256 por hora vezes 168 horas presumidas que ninguém jamais referenciou.
Então a manchete honesta é: um modelo que iguala o score de benchmark publicado do GPT-2 pode ser treinado hoje por bem menos de $100 em hardware alugado, contra um custo de 2019 que nunca foi publicado e cuja estimativa famosa repousa em um 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; a razão é aritmética sobre um número que não existe. Esse é o estado dos custos de treinamento publicados em geral. O artigo do GPT-3 não contém nenhum valor em dólares, apenas FLOPs na Tabela D.1;7 o artigo do Llama 3 também não contém.5 Todo custo de treinamento que você leu é uma estimativa a partir de uma contagem de FLOPs, uma suposição de hardware e uma suposição de preço — sempre vale perguntar de quem.
O que um modelo base sabe, e quando parou de saber
Link para a seção: O que um modelo base sabe, e quando parou de saberO que sai viu um corpus fixo montado em um momento fixo, e duas propriedades decorrem disso.
A primeira é o knowledge cutoff. Depois da data de coleta, o modelo não sabe nada — não “está incerto”, nada — e vai confabular fluentemente em vez de dizer isso, porque dizer isso nunca foi um comportamento em que ele foi treinado. O model card do Llama 3.1 dá dezembro de 2023;33 todo modelo tem um, e ele é uma propriedade dos dados de treinamento, não do deployment. Contornar isso é um problema de recuperação, que é o Capítulo 19.
A segunda é que um modelo base completa em vez de responder. Dê a ele “Qual é a capital da França?” e uma continuação plausível é outra pergunta, porque no corpus essa string aparece com mais frequência em uma lista de exercícios.
Para onde isso vai agora
Link para a seção: Para onde isso vai agoraUm completador de texto não é um assistente. Ele não segue instruções, porque nada no corpus lhe disse que um pedido deve ser obedecido em vez de continuado. Ele não tem noção de uma conversa com dois participantes. Ele produzirá tranquilamente a continuação mais provável de um prompt prejudicial, porque provável é a única coisa para a qual ele foi otimizado.
Transformá-lo em algo que responde exige uma segunda etapa que custa uma fração de um por cento da primeira, e consiste quase inteiramente em mostrar exemplos do comportamento que você quer e então comparar pares das próprias saídas dele. Essa etapa é de onde vêm seguimento de instruções, templates de chat, recusas e — isso surpreende as pessoas — a capacidade de chamar uma ferramenta. O Capítulo 11 é essa etapa: supervised fine-tuning, RLHF, DPO e GRPO, e a pergunta sobre o que “alinhado” significa e quem decide.
Fontes e método
Link para a seção: Fontes e métodoTambém vale ler junto com este capítulo: o build-nanogpt de Karpathy e seu vídeo acompanhante, que percorrem uma reprodução completa do GPT-2 de ponta a ponta em um ritmo que este capítulo não consegue; e Stanford CS324, Large Language Models, cujas aulas sobre dados e impacto ambiental aprofundam mais do que a seção acima em material que este curso trata uma vez e delega.
Referências
Link para a seçã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) na §1.2 e as constantes completas estão no Apêndice A, Tabela 5; a derivação de é a §2.1; os expoentes de alocação de computação estão na Tabela 6. Observe que há duas leis de computação, em batch size fixo e em batch size ó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 na §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 master FP32 na §3.1, loss scaling na §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á na §3.1; os valores de estado residual para ativações estão na §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Orçamento de computação e contagem de tokens na §1, a lei de escala reajustada na §3.2.1, a configuração de paralelismo e MFU na Tabela 4, a análise de contaminação na §5.1.4, a afirmação de over-training na §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 escala, as aulas 13–14 dados. É o curso ao qual este capítulo delega sua engenharia, e é público. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Computação no Apêndice D, Tabela D.1 — que tem uma coluna literalmente intitulada “flops per param per token”, cujo valor para cada linha do GPT-3 é 6. Análise de contaminação na §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 sua Figura 4, reajusta, e relata 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 de quatro épocas está na §6; a meia-vida de dezesseis é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). A §1 declara o argumento de custo de inference contra treinamento Chinchilla-ótimo. ↩
-
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 §5 deles também contém o contrapeso: modelos treinados em razões extremas de tokens continuam melhorando, 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 na §2, exemplos e limiares de computação nas §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 outstanding da NeurIPS 2023. O argumento da métrica está na §2, a meta-análise do BIG-Bench na §4, o exemplo visual construído na §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), publicado em 24 de agosto de 2026, acessado em 2026-09-06. Sua própria página inicial afirma “over 300 billion pages spanning 15 years”, “totalling more than 10 petabytes” — um número para o arquivo inteiro, não para o crawl mensal precificado 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 do C4 estão na §2.2. O artigo dá tamanhos em bytes, não tokens; o número de 156 bilhõ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 na §5.3; contaminação de benchmarks no C4 está na §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 números de memorização estão na §6.2, Tabela 4, e são porcentagens 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á na §3.4. O dataset lançado desde então cresceu além dos 15 trilhõ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á na §2.3 e na Tabela 1; a tabela de consentimento é a Tabela 5. O corpus tem 825,18 GiB, então até o título arredonda para baixo. ↩
-
Bartz v. Anthropic, No. 4:24-cv-05417 (N.D. Cal.). Ordem de fair use de 23 de junho de 2025 (Dkt. 231); certificação de classe em 17 de julho de 2025; aprovação final e julgamento em 20 de julho de 2026 (Dkt. 680). O acordo libera apenas inputs passados, não outputs e não conduta futura. ↩
-
Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), julgamento sumário em 25 de junho de 2025 (Dkt. 598). Observe que a alegação de distribuição por torrenting não foi decidida e permanece ativa. ↩
-
Thomson Reuters v. ROSS Intelligence, No. 1:20-cv-00613-SB (D. Del.), opinião revisada em 11 de fevereiro de 2025 (Dkt. 770), Bibas J. Em recurso interlocutório ao Third Circuit (No. 25-2153), sustentado em 11 de junho de 2026, ainda sem decisão no momento da 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 todas as metas; rotuladores juniores, a maioria, levavam para casa $1,32. A contestação da Sama, citada no mesmo artigo, dá $1,46–$3,74 e uma cota menor. ↩
-
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 números do GPT-3 estão na Tabela 4; a correção da estimativa de NAS está na §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 ler precisamente por causa do que aconteceu com seu número mais citado: o artigo é cuidadoso, declara sua extrapolação, e ainda assim errou por duas ordens de grandeza na única linha que todo mundo 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). Isso revisa para baixo o relatório de 2024 amplamente citado para a série histórica; se você está citando o número de 176 TWh para 2023, está citando a edição superada. ↩
-
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á na §4.4. Observe que os próprios números de carbono do artigo são citados de Strubell et al. e herdam a correção acima — o que é uma ilustração do argumento dele, não uma refutação. ↩
-
NVIDIA. Página de produto NVIDIA H100 Tensor Core GPU,
nvidia.com/en-us/data-center/h100/(acessado em 2026-09-06). Toda linha de tensor-core nessa página, exceto FP64, traz a nota “with sparsity”; o número BF16 denso usado aqui é metade dos 1.979 TFLOPS publicados. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(acessado em 2026-09-06). Sob demanda, por GPU por hora, antes de impostos. Os preços nesta seção ficarão desatualizados mais rápido do que qualquer outra coisa neste curso; a aritmética ao redor 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” (acessado em 2026-09-06). O valor de $48 e a definição por score CORE de “GPT-2 capability” estão ambos no README; o própriospeedrun.shdo repositório diz “approximately 1.5 hours”, então trate a cifra de duas horas como arredondada. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mdemmeta-llama/llama-models(acessado em 2026-09-06). Fonte das 30,84 M horas de H100 para o modelo 405 B, do total de 39,3 M, do valor location-based de 11.390 tCO2eq, e do cutoff de dados de dezembro de 2023. ↩