Avançado

Scaling laws I: Kaplan

Scaling laws no estilo Kaplan ajustam relações de lei de potência entre loss, tamanho do modelo, dados e compute dentro de um regime experimental observado — e quebram no instante em que você extrapola para fora dele.

Atualizada em

01 · Conceito

Conceito

Você tem orçamento para exatamente uma run grande de treino e quatro configurações candidatas. Treinar as quatro para descobrir qual era sensata não é opção; a run é o orçamento. Então você faz o que construtores de navios fazem com tanques de reboque: roda uma família de experimentos pequenos e controlados, ajusta uma curva através deles e usa a curva para escolher. Scaling laws são essa curva. O achado empírico notável por trás delas é que a loss held-out cai ao longo de tendências surpreendentemente suaves conforme parâmetros, dados e compute crescem, mesmo que as redes subjacentes sejam tudo menos suaves.

A forma funcional padrão é uma lei de potência mais um piso:

L(x)=L+Axα.L(x)=L_\infty + A x^{-\alpha}.

Aqui xx é a contagem de parâmetros não-embedding, o tamanho do dataset ou o compute de treino. LL_\infty é o termo irredutível — a entropia que os próprios dados carregam, que nenhum modelo remove. AxαA x^{-\alpha} é a parte redutível, e em eixos log-log ela vira uma reta cuja inclinação é α-\alpha. Um α\alpha positivo maior significa que a loss cai mais rápido conforme aquele recurso cresce.

Ajuste isso uma vez na mão, porque fazê-lo expõe a armadilha. Suponha que duas runs controladas compartilhem corpus, tokenizer e receita e difiram só no tamanho: 100 milhões de parâmetros não-embedding chega a uma loss held-out de 3,20, e 1 bilhão chega a 2,80. Trabalho piloto estima o piso em L=1.70L_\infty = 1.70. Subtraia isso antes de fazer qualquer outra coisa:

1.501.10ao longo de uma deˊcada,1.101.50=0.7333,1.50 \rightarrow 1.10 \quad\text{ao longo de uma década}, \qquad \frac{1.10}{1.50}=0.7333, α=log10(0.7333)=0.135.\alpha=-\log_{10}(0.7333)=0.135.

Agora preveja um terceiro ponto. Com 10 bilhões de parâmetros a parte redutível deveria ser 1.10×0.7333=0.8071.10\times 0.7333 = 0.807, então L1.70+0.81=2.51L \approx 1.70 + 0.81 = 2.51. Você pode ir treinar essa run e conferir o resíduo — que é justamente o propósito de uma lei ajustada.

Aqui está o desvio, e é o que as pessoas de fato tomam. Pule o piso e ajuste as losses brutas diretamente. A razão é 2.80/3.20=0.8752.80/3.20 = 0.875 por década, dando α=log10(0.875)=0.058\alpha = -\log_{10}(0.875) = 0.058. Sobre os dois pontos ajustados isso parece perfeitamente respeitável — reproduz ambos exatamente. Extrapole quatro décadas até 10 trilhões de parâmetros e ele prevê

2.80×0.8754=2.80×0.5862=1.64,2.80\times 0.875^{4}=2.80\times 0.5862=1.64,

uma loss abaixo do piso irredutível de 1,70. O ajuste ingênuo previu um modelo que prevê os dados melhor do que a própria entropia dos dados permite. Nada na aritmética reclama; a impossibilidade só aparece quando você sabe que existe um piso e confere contra ele. Sempre ajuste LL_\infty conjuntamente, e sempre faça a checagem de sanidade da extrapolação contra ele.

Kaplan e colaboradores treinaram muitos modelos de linguagem Transformer autorregressivos e estudaram a loss contra tamanho do modelo, dados e compute. A alegação estrutural central deles é que o desempenho é limitado pelo recurso que estiver pequeno demais: parâmetros não conseguem compensar indefinidamente dados insuficientes, e tokens não conseguem compensar indefinidamente um modelo minúsculo. Para um orçamento fixo de compute, portanto, você precisa escolher um ponto num tradeoff — um modelo maior gasta mais operações por token e por isso vê menos tokens; um menor vê mais tokens com menos capacidade. O ótimo ajustado da era Kaplan favorecia crescer o tamanho do modelo relativamente rápido e parar o treino comparativamente cedo, e essa recomendação moldou o planejamento inicial de modelos grandes até a próxima lição derrubá-la.

O eixo de compute costuma usar a estimativa de primeira ordem C6NDC\approx 6ND operações de ponto flutuante para NN parâmetros não-embedding e DD tokens, com a constante dependendo do que é contado e da arquitetura. A lição 5.13 a aplica para valer. Note que FLOPs não são tempo de relógio: utilização, comunicação, carregamento de dados, recomputação e falhas decidem o custo decorrido.

Essa ressalva tem dentes para o espécime que este curso acompanha. O Qwen3.8-27B não publica estudo de scaling, nem contagem de tokens, nem compute de treino — não existe relatório técnico algum, apenas o model card e o config. Então você não consegue colocá-lo sobre a curva ajustada de ninguém. Pior, você não deveria supor que uma curva ajustada em transformers uniformes se transfira para ele, porque a arquitetura dele não é uniforme: 48 das suas 64 camadas são Gated DeltaNet em vez de full attention (lição 4.16), o que muda a constante de FLOPs por token e o modo como o custo cresce com o comprimento da sequência. O atalho 6ND6ND e os expoentes que o acompanham foram medidos em stacks em que toda camada era igual. Um stack híbrido é outro tanque, e as curvas de casco precisam ser reajustadas.

Bom trabalho de scaling separa interpolação de extrapolação. Ajuste sobre algumas runs, segure outras de fora e confira o erro de predição antes de confiar numa curva além da faixa medida. Plote resíduos em vez de admirar uma reta: um pequeno desvio sistemático fica caro ao longo de ordens de magnitude. Loss também não é o produto. Dois modelos com loss de validação equivalente podem diferir em tarefas downstream, calibração, segurança, cobertura multilíngue, latência e memória, e limiares de benchmark que parecem emergência frequentemente marcam uma capacidade suave cruzando uma fronteira de pontuação.

O eixo DD carrega a própria complicação, saída direta da lição 5.2: um token não é uma unidade padrão de informação. Boilerplate duplicado, texto web de baixa qualidade e dados de domínio curados contam todos como tokens e contribuem de formas diferentes, então o tamanho efetivo de dados depende de duplicação e mistura. Mantenha o pipeline fixo ao longo de um estudo de scaling, ou modele a mudança de pipeline explicitamente, ou o expoente que você ajusta está medindo seus filtros.

O fluxo de trabalho, então, é disciplinado em vez de esperto: escolha vários tamanhos e orçamentos de tokens, mantenha receitas comparáveis, reserve dados de validação, registre o compute realizado, ajuste formas funcionais concorrentes, valide em runs retidas, quantifique incerteza e reajuste sempre que dados ou arquitetura mudarem. O que perdura é previsibilidade com fronteiras — a curva torna decisões orçamentárias enormes empíricas em vez de supersticiosas, e a humildade de dizer onde ela deixa de valer é parte do método, não um pedido de desculpas por ele.

02 · Analogia

Analogia

Um estaleiro testa cascos pequenos num tanque de reboque e ajusta curvas suaves entre tamanho do casco, potência do motor e arrasto. As curvas ajudam a escolher o próximo protótipo, mas não são leis da natureza para todo oceano ou material. Scaling laws fazem o mesmo com runs de modelos: muitos experimentos controlados revelam tendências regulares de loss, e a extrapolação vira um instrumento de planejamento orçamentário com barras de erro.

03 · Explique de volta

Explique de volta

Explique o que é uma scaling law neural, ajuste um expoente a partir de duas runs medidas e diga por que o termo irredutível precisa fazer parte do ajuste.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

Uma scaling law é um ajuste empírico, em geral uma lei de potência mais um piso irredutível, ligando a loss held-out a parâmetros, dados ou compute sobre um regime medido. Ajustar significa subtrair o piso primeiro: a parte redutível cai por um fator constante por década, e o expoente é menos o logaritmo na base dez desse fator. Omitir o piso e ajustar a loss bruta produz um expoente que parece adequado sobre os pontos ajustados, mas que acaba prevendo uma loss abaixo do piso, o que é impossível. Expoentes também dependem de corpus, tokenizer, arquitetura, optimizer e faixa de ajuste, então são descrições de regime, e não constantes.

04 · Teste seu entendimento

Teste seu entendimento

01Duas runs dão losses held-out de 3,20 com 100M de parâmetros e 2,80 com 1B, com piso irredutível estimado em 1,70. Qual é o expoente ajustado por década?
Resposta e explicação

Cerca de 0,135, porque a parte redutível cai de 1,50 para 1,10 por década — Subtraia o piso primeiro: 1,10 / 1,50 = 0,733 por década, e o expoente é -log10(0,733) = 0,135.

02A lição 5.3 mostrou que as 248.320 linhas do Qwen3.8-27B, com seus parâmetros por linha, vão para o embedding e a head untied. Por que isso importa ao ler uma curva de scaling plotada contra N?
Resposta e explicação

Ajustes no estilo Kaplan usam parâmetros não-embedding, então cerca de 2,54 bilhões dos parâmetros deste modelo ficam de fora desse eixo — O embedding e a output head untied somam cerca de 2,54 bilhões de parâmetros que não escalam o compute por token como os parâmetros dos blocos do transformer, e é por isso que os ajustes usam N não-embedding.

03Por que rodar muitos experimentos de scaling menores?
Resposta e explicação

Para estimar tendências antes de comprometer o maior orçamento de compute — Runs menores controladas permitem ajustar e validar uma superfície de resposta usada para planejar runs maiores.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Jared Kaplan et al. (2020). Scaling Laws for Neural Language Models.
  2. Qwen Team (2026). Qwen3.8-27B Model Card.