antonio leandro

ia generativa

Scaling Laws for Neural Language Models

paper · núcleo · Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei ·

a tese

a loss de um modelo de linguagem é previsível: cai como lei de potência em parâmetros, dados e compute, a arquitetura quase não importa, e com orçamento fixo o certo é treinar um modelo grande e parar cedo.

o que fica

  1. Dobrar o número de parâmetros não-embedding multiplica a loss por 0,95 — o ganho é real, previsível e pequeno, e é por isso que escalar exige ordens de grandeza, não porcentagens.
  2. Excluir os parâmetros de embedding da contagem é o que faz modelos de profundidades diferentes colapsarem numa única curva; incluindo os embeddings, a tendência some.
  3. Com N fixo, forma quase não importa: um modelo de 6 camadas e d_model 4288 chega a 3% da loss de um de 48 camadas e d_model 1600.
  4. Com compute fixo, o ótimo é treinar um modelo muito maior e parar em torno de 10% acima da loss convergida — a prática da época parava em 2% e gastava mais para chegar no mesmo lugar.
  5. A receita de alocação previa modelo crescendo como C^0,73 e dados só como C^0,27; é justamente essa assimetria que trabalhos posteriores revisaram.
  6. O próprio paper mostra que suas leis se contradizem se extrapoladas longe demais: L(Cmin) e L(D) se cruzam perto de 1,7 nat/token, e alguma delas tem que quebrar antes disso.

o problema

Em 2019 a decisão mais cara de um laboratório de ia era também a menos fundamentada: quanto gastar no próximo modelo. Treinar um transformer grande consome semanas de cluster e um orçamento que não volta. E a única forma de saber se valeu era treinar, olhar a loss e comparar com o modelo anterior — que tinha outra profundidade, outro dataset, outro batch size. Cada run era uma aposta isolada, e a literatura acumulava resultados que ninguém conseguia compor.

Pior: não estava claro de onde vinha o ganho. Um modelo novo era melhor porque tinha mais camadas, mais attention heads, um feed-forward mais largo, ou simplesmente porque era maior? A comunidade gastava esforço ajustando forma de arquitetura sem saber se aquilo movia a agulha. Faltava uma curva — qualquer curva — que permitisse rodar experimentos baratos e prever o resultado do caro.

a ideia

Kaplan e McCandlish trataram a loss como grandeza macroscópica e foram medir. Treinaram uma bateria larga de transformers decoder-only variando modelo (de 768 até 1,5 bilhão de parâmetros não-embedding), dataset (de 22 milhões a 23 bilhões de tokens), forma, contexto e batch size, e plotaram tudo em log-log. Saiu reta. Não uma reta aproximada num intervalo estreito: leis de potência limpas atravessando seis ordens de grandeza em N e oito em compute.

A analogia é dos próprios autores e é honesta: lei dos gases ideais. Uma relação entre propriedades macroscópicas que vale sem depender de quase nada do detalhe microscópico. Depth versus width, número de heads, dimensão do feed-forward — tudo isso mexe pouco. O que manda é escala.

como funciona

Três quantidades, medidas em WebText2 com contexto de 1.024 tokens e loss de cross-entropy em nats:

L(N)    = (Nc/N)^0,076        Nc ≈ 8,8e13 params não-embedding
L(D)    = (Dc/D)^0,095        Dc ≈ 5,4e13 tokens
L(Cmin) = (Cc/Cmin)^0,050     Cc ≈ 3,1e8 PF-days

Duas escolhas de contabilidade fazem a coisa funcionar. N conta só parâmetros não-embedding — N ≈ 12 · n_layer · d_model²; incluir a matriz de embedding embaralha a curva. E C ≈ 6NBS estima o compute de treino, ignorando os termos que dependem de n_ctx.

As duas primeiras leis se juntam numa só, L(N,D) = [(Nc/N)^(αN/αD) + Dc/D]^αD, que governa também o overfitting: o penalty depende do ratio N^0,74 / D. Na prática, aumentar o modelo 8 vezes exige só cerca de 5 vezes mais dados para não pagar pedágio. A curva de aprendizado ganha forma equivalente em S_min, o número de passos normalizado pelo batch crítico — que por sua vez segue uma lei de potência na própria loss e dobra a cada queda de 13% nela, chegando a 1 ou 2 milhões de tokens nos maiores modelos.

Daí sai a receita. Minimizando a loss sob compute fixo: N ∝ Cmin^0,73, B ∝ Cmin^0,24, S ∝ Cmin^0,03. O número de passos seriais praticamente não cresce — o expoente medido é compatível com zero. Dez vezes mais compute vira cinco vezes mais modelo e quase nada de tempo a mais. O corolário é a parte que incomoda: convergir é desperdício. O ponto ótimo fica cerca de 10% acima da loss convergida. Comparado com parar a 2%, isso significa 2,7 vezes mais parâmetros, 7,7 vezes menos updates e 65% menos compute para a mesma loss.

o que isso custou

Os autores listam os buracos, e são grandes. Não existe teoria por trás de nenhuma das leis — a escala com N e com compute é descrita como misteriosa, e sem entender as correções não dá para saber quando confiar. O regime de dados pequenos não foi investigado: os fits falham para o dataset reduzido a 2×10⁷ tokens, onde uma época são 40 updates. Regularização e data augmentation não foram otimizados enquanto N e D variavam. O batch crítico não é confiável fora da faixa medida, e ele é justamente o que decide o trade-off entre paralelismo e passos seriais. A estimativa 6NBS deixa de valer com contexto grande, especificamente quando n_ctx ≳ 12·d_model.

E há a contradição interna, na seção 6.3. Como os dados crescem devagar demais na receita compute-eficiente, a curva L(Cmin) acaba cruzando o piso imposto por L(D). O cruzamento cai perto de 10¹² parâmetros e 1,7 nat/token, com incerteza de uma ordem de grandeza em cada direção. Ou as leis quebram antes disso, ou aquele ponto é onde a informação confiável do texto natural se esgota. O paper não decide.

Falta ainda o elo que o texto admite estar aberto: melhorar a loss não é o mesmo que melhorar em tarefas. “More is different” aparece na discussão como conjectura, não como resultado.

onde isso aparece hoje

A prática de treinar uma família de modelos pequenos, ajustar a curva e extrapolar antes de comprometer o orçamento virou procedimento padrão de laboratório — e o vocabulário de “scaling law” e “compute-optimal” nasce aqui. Meses depois, GPT-3 saiu da mesma casa como aposta direta nessa leitura: modelo enorme, uma passada, longe da convergência.

A parte da receita que não sobreviveu é a alocação. Chinchilla, em 2022, refez o estudo e concluiu que os modelos daquela geração estavam subtreinados: parâmetros e tokens devem crescer em proporção aproximadamente igual, não com dados quase parados. A metodologia de Kaplan continuou de pé; os expoentes, não. Vale ler o paper pelo método e pelas ressalvas, não pelos números.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·