antonio leandro

ia generativa

The Llama 3 Herd of Models

paper · núcleo · Grattafiori, Aaron, Dubey, Abhimanyu, Jauhri, Abhinav, Pandey, Abhinav, Kadian, Abhishek, Al-Dahle, Ahmad, Letman, Aiesha, Mathur, Akhil · · ~102 min de leitura do original

a tese

escala e dados fazem o trabalho; a arquitetura pode ser chata de propósito — transformer denso, dpo no lugar de ppo — porque a 16 mil gpus o que mata um treino é instabilidade, não falta de ideia

o que fica

  1. A Meta escolheu Transformer denso em vez de mixture-of-experts e DPO em vez de PPO pelo mesmo motivo declarado: maximizar estabilidade de treino e simplicidade de escala, não pontuação de benchmark.
  2. Os modelos de 8B e 70B foram treinados muito além do ponto compute-optimal de propósito, porque o que importa depois é o orçamento de inferência, não o de treino.
  3. Em 54 dias de pré-treino houve 466 interrupções, 419 delas não planejadas, e cerca de 78% vieram de hardware — treinar em escala é um problema de operação de datacenter tanto quanto de aprendizado de máquina.
  4. A lei de escala do paper prevê acurácia em benchmark, e não só loss: correlaciona FLOPs com log-verossimilhança da resposta certa e depois log-verossimilhança com acerto, extrapolando quatro ordens de magnitude.
  5. Annealing sobre 40B tokens virou um teste barato de qualidade de dataset, mais eficiente que rodar um experimento de lei de escala para cada fonte nova de dados.
  6. A própria análise de contaminação do paper estima 98% do AGIEval e 85% do HellaSwag contaminados no corpus de pré-treino, com ganho estimado de até 41 pontos em BIG-Bench Hard para o 405B.

o problema

Em meados de 2024, a distância entre peso aberto e fronteira fechada era medida em ordem de grandeza. O maior Llama 2 tinha 70B de parâmetros treinados em 1,8T tokens. Os modelos de ponta não publicavam nem o tamanho. Quem quisesse rodar algo de qualidade competitiva em infraestrutura própria — por custo, por privacidade, por não querer depender de API — não tinha essa opção.

Havia um segundo problema, menos comentado. Leis de escala predizem loss de próximo token, não acerto em benchmark, e são ajustadas com orçamentos de compute pequenos, o que as torna ruidosas justamente onde você mais precisa delas: na hora de decidir o tamanho de um modelo que vai custar meses de cluster. E ninguém publicava o que quebra quando você liga dezesseis mil GPUs ao mesmo tempo.

a ideia

Três alavancas, nas palavras dos autores: dados, escala e gerenciamento de complexidade. A terceira é a decisão que dá caráter ao trabalho. O orçamento de novidade foi gasto em dados e infraestrutura, e a arquitetura ficou entediante de propósito: Transformer denso, com ajustes pequenos em cima de Llama e Llama 2, em vez de mixture-of-experts. O pós-treino é SFT mais rejection sampling mais DPO, em vez de PPO. Cada uma dessas escolhas troca alguma coisa por estabilidade, e a conta fecha porque, nessa escala, uma divergência custa semanas.

A outra metade da ideia é usar lei de escala como instrumento de decisão, não como observação. O tamanho do modelo, a mistura de dados e até a previsão de desempenho em benchmark saíram de experimentos com modelos pequenos antes de o treino grande começar.

como funciona

O pré-treino do 405B usa 15,6T tokens e 3,8 × 10²⁵ FLOPs, quase 50 vezes mais compute que o maior Llama 2. A mistura final é de aproximadamente 50% conhecimento geral, 25% matemática e raciocínio, 17% código e 8% multilíngue, filtrada por dedup em três níveis (URL, documento com MinHash, linha) e por classificadores de qualidade treinados sobre anotações do próprio Llama 2. Um detalhe contraintuitivo: markdown piora o modelo em dados de web, então os marcadores são removidos.

As mudanças de arquitetura cabem em quatro linhas: GQA com 8 key-value heads para encolher o cache durante decoding, máscara de atenção que impede um documento de olhar para outro na mesma sequência, vocabulário de 128K tokens que melhora a compressão de 3,17 para 3,94 caracteres por token, e base do RoPE elevada para 500.000 para aguentar contexto longo.

A lei de escala foi ajustada com modelos de 40M a 16B parâmetros entre 6 × 10¹⁸ e 10²² FLOPs. O ajuste de tokens ótimos dá N*(C) = AC^α com α = 0,53 e A = 0,29, e a extrapolação sugere 402B parâmetros em 16,55T tokens. Como as curvas IsoFLOPs achatam perto do mínimo em orçamentos grandes, a escolha exata do tamanho importa pouco — daí 405B.

O treino roda em até 16.000 H100 com paralelismo 4D na ordem [TP, CP, PP, DP], ordenada por exigência de banda: o mais interno fica dentro do servidor, o mais externo tolera latência de rede. O MFU em BF16 fica entre 38% e 43%. Depois do pré-treino em contexto de 8K, o contexto sobe para 128K em seis etapas usando cerca de 800B tokens, e o fim é annealing da taxa de aprendizado até zero nos últimos 40M tokens, com média de checkpoints.

O pós-treino são seis rodadas de reward model, rejection sampling (K entre 10 e 30 amostras por prompt), SFT e DPO. Duas correções no DPO merecem nota: tokens de formatação são mascarados da loss, porque aparecem nas duas respostas e criam objetivo conflitante, e há um termo NLL com coeficiente 0,2 sobre a resposta escolhida. Capacidades específicas ganham especialistas: o expert de código é um branch do pré-treino continuado em 1T tokens com mais de 85% de código, usado depois para anotar e amostrar dados dos modelos principais.

o que isso custou

A escolha por densidade é paga na inferência: todos os 405B parâmetros ativam a cada token, e não existe o desconto de um MoE. O paper é explícito de que essa foi uma troca consciente por estabilidade.

Nos resultados, o 405B empata com a versão 0125 do GPT-4 na avaliação humana e tem resultados mistos contra GPT-4o e Claude 3.5 Sonnet, ficando atrás deste último em código e raciocínio. Em MultiPL-E, o desempenho cai bastante fora de Python. Em benchmarks adversariais de QA e matemática, o desempenho fica substancialmente abaixo do não adversarial, e isso vale igualmente para modelos pré-treinados e pós-treinados.

A honestidade mais útil está na análise de contaminação: em várias avaliações, o corpus de pré-treino contém as respostas. Para MMLU, HumanEval e MBPP, o método de sobreposição de 8-gramas nem produz estimativa confiável. Os autores dizem que como fazer essa análise ainda é problema aberto.

O resto é operação. Interrupção diária por manutenção automatizada, variação de 1% a 2% de throughput ao longo do dia por temperatura afetando o clock das GPUs, e flutuações de dezenas de megawatts no datacenter quando as GPUs param juntas para checkpoint. Os modelos multimodais descritos no paper não foram liberados.

onde isso aparece hoje

O 405B abriu o precedente de que um modelo de escala de fronteira pode sair com pesos públicos, e a receita virou referência para quem treina fora dos laboratórios fechados. O caminho oposto no eixo de arquitetura — esparsidade em vez de densidade — foi o escolhido por Mixtral of Experts e, com muito mais agressividade, pelo DeepSeek-V3, que tira exatamente o desconto de inferência que o Llama 3 abriu mão.

O uso de DPO aqui é a validação em escala de um método de 2023 que ainda era, até então, sobretudo acadêmico: a justificativa registrada é que exige menos compute que PPO e vai melhor em instruction following. E a leitura simples de Chinchilla fica relativizada: compute-optimal continua sendo o guia para escolher o modelo maior, mas os modelos menores são treinados muito além disso de propósito, porque quem paga a conta no fim é a inferência. O pipeline de rejection sampling, por sua vez, só é viável com gerenciamento de memória de KV cache do tipo descrito em PagedAttention, que os autores creditam por mais que dobrar a vazão nessa etapa.

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