Antevisão · Latent Rehearsal
07

Escala
e orçamento

Quanto custa chegar à escala do GPT-3, por que a VRAM quase nunca é o limite, e a fórmula que diz qual tamanho treinar com o dinheiro que você tem.

Apostila 07 Pré-requisito: apostila 08 do curso GPT-2

1 Primeiro, desfazer um mal-entendido

Os pesos do GPT-3 nunca foram publicados. O repositório openai/gpt-3 tem amostras de texto e estatísticas do corpus — nenhum peso. Não existe "baixar o GPT-3".

E arquiteturalmente ele é, em essência, um GPT-2 maior: mesmos blocos, mesma atenção causal, com camadas de atenção esparsa alternadas. O que separa os dois é escala, não invenção.

Então "chegar ao GPT-3" significa subir degraus de tamanho. E o paper define oito, não um — o 175 B é o último, não o único.

2 A lei que organiza tudo

Chinchilla (Hoffmann et al., 2022) mediu a relação entre parâmetros, dados e compute. A regra prática: ~20 tokens de treino por parâmetro.

O custo em operações de ponto flutuante para treinar N parâmetros em D tokens é aproximadamente:

C = 6 · N · D

O fator 6 vem de duas multiplicações por parâmetro na passada direta e quatro na reversa. Substituindo D = 20N:

C = 120 · N²   ⟹   N = √C / 120
A consequência prática

Dado um orçamento, existe um tamanho ótimo. Treinar maior deixa o modelo subtreinado — ele tem capacidade que nunca foi preenchida. Treinar menor desperdiça compute em algo que já convergiu.

"Pego o maior modelo que couber na VRAM" é a heurística errada, e é a mais comum.

3 A escada, com preços

Numa RTX 5090 alugada (32 GB, US$ 0,678/h), a 60 TFLOP/s efetivos:

Família GPT-3 do paper, mais os nossos presets. "Texto" assume ~4 caracteres por token.
ModeloParamsTokensTextoVRAMHorasCusto
nosso mini ✓7 M0,1 B1 GB0,2 GB——
nosso grande97,5 M1,9 B7 GB2,1 GB5,3US$ 2
GPT-3 Small125 M2,5 B9 GB2,7 GB8,7US$ 4
GPT-3 Medium350 M7,0 B26 GB7,6 GB68US$ 31
GPT-3 Large760 M15,2 B57 GB16,6 GB321US$ 145
GPT-3 XL1,3 B26 B97 GB28,3 GB939US$ 424
GPT-3 2.7B2,7 B54 B201 GB58,8 GB ✗4 050US$ 1 831
GPT-3 175B175 B3,5 T13 TB3 814 GB ✗1 942 anosUS$ 7,7 M

Três leituras que mudam o plano

A VRAM quase nunca é o limite. Até o GPT-3 Large cabe nos 32 GB. Só a partir de 2,7 B a placa fica pequena — e aí o problema deixa de ser alugar uma e passa a ser paralelizar entre várias, que é outra engenharia.

O limite é o corpus. Temos 310,6 M tokens. O GPT-3 Small pede 2,5 bilhões: 8× mais texto do que temos. Nenhuma placa resolve isso.

O 175 B não é uma questão de dinheiro seu. Quase dois mil anos numa placa. Aquilo foi feito com milhares de GPUs em paralelo por meses — outra categoria de empreendimento, não o próximo degrau.

4 De onde vem cada número

VRAM

Treinar exige mais que os pesos. Com AdamW: os pesos, os gradientes, e dois momentos por parâmetro. Em fp32 são 16 bytes por parâmetro; com bf16 misto, ~18 contando a cópia mestra. Somamos ~30% para ativações:

VRAM ≈ N × 18 bytes × 1,3

Um modelo de 1 B pede ~24 GB só para o estado do otimizador. É por isso que a linha do 2,7 B estoura uma placa de 32 GB — não pelos pesos, que são 5,4 GB.

Throughput, e a honestidade sobre ele

Os 60 TFLOP/s efetivos são uma estimativa, não medida. Calibramos contra um ponto real: o nanoGPT treina o GPT-2 de 124 M em 8×A100 a ~870 k tok/s, ou ~110 k por placa. Nossa fórmula dá ~117 k para um modelo equivalente — bate.

Onde a estimativa não vale

Em modelos pequenos, ela mente para cima. Um modelo de 3 M de parâmetros não satura placa nenhuma: o gargalo vira lançamento de kernel e alimentação de dados, não cálculo. Por isso a tabela marca com ? as linhas que bateram no teto conservador de 400 k tok/s.

A solução é não estimar: cloud/calibrate.py roda alguns passos reais em cada tamanho, mede, e só então recomenda. Custa ~4 centavos.

5 O que sete horas de placa compram

Um orçamento pequeno nesta faixa de aluguel dá da ordem de 7,4 horas de uma placa. Aplicando N = √C/120:

O tamanho compute-ótimo para o orçamento, em duas hipóteses de throughput.
Throughput efetivoOrçamento em FLOPsTamanho ótimo
40 TFLOP/s (conservador)1,07 × 10¹⁸94 M
60 TFLOP/s (otimista)1,60 × 10¹⁸115 M

O nosso preset grande tem 97,5 M. O GPT-3 Small tem 125 M. Sete horas de uma única placa compram exatamente essa faixa — treinada até o ponto ótimo, não pela metade.

O que ela exige são ~2 bilhões de tokens, ou ~8 GB de texto. É o degrau que falta, e ele é de dados, não de dinheiro.

6 Onde o dinheiro vaza

Três desperdícios aparecem ao preparar um aluguel — todos encontrados lendo o código antes de rodá-lo.

Nenhum apareceria em teste local: na CPU tudo funciona, só devagar.
VazamentoCausaCusto
Treino na CPU da máquina alugadao script de treino nunca move o modelo para a GPUtodas as horas contratadas
Tokenização serialtok.encode um documento por vez roda em uma thread~35% do orçamento
Pesos irrecuperáveischeckpoint salvo com tensores CUDAo trabalho todo

O segundo é o mais instrutivo. Trocar tok.encode(um_texto) por tok(lista_de_textos) aciona o paralelismo do backend em Rust:

um a um   :   0,80 M chars/s
em bloco  :   6,35 M chars/s   ->  7,9x mais rapido

8 GB de corpus:  178,2 min um a um  vs  22,5 min em bloco

35% do orçamento, numa linha de código. E numa máquina cobrada por hora, o preparo de dados custa tanto quanto o treino — a GPU fica parada enquanto a CPU tokeniza.

Outras três regras de economia

  1. Baixe o corpus na máquina alugada, não localmente. Ela tem 6,5 Gbps; subir 8 GB por uma conexão doméstica levaria horas — e essas horas são cobradas.
  2. Confiabilidade importa mais que preço. Uma oferta a 97,8% falha a cada ~45 h de máquina; a 99,9%, a cada ~1 200. Para um treino de 9 h, a diferença de preço não paga o risco.
  3. Só destroy para a cobrança. stop pausa a GPU e continua cobrando o disco.

7 O caminho

Em ordem de dependência. O degrau 4 custa menos que um almoço — e exige o degrau 2.
#PassoCustoDestranca
1treinar pequeno até convergirgrátis (4 h de CPU)primeiro modelo sério
2corpus para ~10 GBtempo de downloadGPT-3 Small vira viável
3alugar e treinar grande~US$ 2escala do GPT-2 base
4GPT-3 Small com o nosso tokenizador~US$ 4paridade de escala
5GPT-3 Medium~US$ 31teto sensato para projeto pessoal
A conclusão que orienta o projeto

Chegar à escala do GPT-3 Small custa menos de oito horas de uma única GPU. O que falta não é tempo de placa: é texto. Por isso a prioridade é corpus, e por isso a apostila 01 insiste tanto no tokenizador — cada token economizado é orçamento de treino devolvido.

Perguntas em aberto

Com a conta feita, a apostila 08 mostra a bancada: onde tudo isso se opera
— servir, radiografar e treinar, sem sair do navegador.