antonio leandro

ia generativa

LLaMA: Open and Efficient Foundation Language Models

paper · Hugo Touvron, Thibaut Lavril, Gautier Izacard, et al. ·

a tese

o orçamento que importa não é o de treino, é o de inferência: um modelo de 13b treinado muito além do ponto ótimo supera o gpt-3 de 175b, roda numa gpu só e sai inteiro de dado público

o que fica

  1. As leis de escala de Chinchilla otimizam o orçamento de treino e ignoram o de inferência — quem serve o modelo paga a segunda conta todo dia, e por isso prefere o modelo menor treinado por mais tempo.
  2. O 7B continuou melhorando depois de 1T tokens, muito além do ponto onde a receita compute-optimal mandaria parar: treinar "demais" é um investimento em inferência barata.
  3. Dá para chegar ao estado da arte só com dado público — o diferencial dos modelos fechados não estava no corpus proprietário.
  4. A arquitetura quase não tem novidade: pre-norm com RMSNorm, SwiGLU e RoPE são todos emprestados de outros modelos, e o trabalho real está na curadoria de dados e na engenharia de treino.
  5. A toxicidade medida cresce com o tamanho do modelo, e cresce mais quando o prompt pede resposta educada — o 65B pontua 0,141 nos prompts "respectful" contra 0,081 do 7B.
  6. O 65B fica atrás de Chinchilla e PaLM em MMLU, e os autores atribuem isso à dieta de livros: 177 GB de ArXiv, Gutenberg e Books3 contra até 2 TB dos concorrentes.

o problema

Até 2022, a régua era a de Kaplan: mais parâmetros, melhor desempenho. Hoffmann e o Chinchilla corrigiram a régua — para um dado orçamento de compute, o melhor resultado não vem do maior modelo, e sim de um modelo menor treinado em mais dados. As duas receitas, porém, otimizam a mesma coisa: o custo de treinar. Treino é um evento. Inferência é uma assinatura mensal. Quando o alvo é servir o modelo, o que interessa não é qual chega mais rápido a certo nível de qualidade, e sim qual é mais barato de rodar depois de chegar lá.

O segundo problema era de acesso. GPT-3, Chinchilla, Gopher e PaLM foram treinados em dados que ninguém de fora podia inspecionar nem reproduzir — o paper cita as linhas de dataset que os concorrentes publicaram, tipo “Books – 2TB” e “Social media conversations”, sem mais detalhe. Existiam modelos abertos (OPT, GPT-NeoX, BLOOM, GLM), mas nenhum competitivo com PaLM-62B ou Chinchilla. A hipótese implícita era que o corpus fechado fazia a diferença.

a ideia

Trocar o eixo de otimização. Em vez de perguntar “qual o melhor modelo por FLOP de treino”, perguntar “qual o melhor modelo por FLOP de inferência”. Isso autoriza a fazer algo que a receita compute-optimal chamaria de desperdício: pegar um modelo pequeno e treinar muito além do ponto de parada recomendado. Chinchilla sugeriria treinar um modelo de 10B em 200B tokens; eles rodaram o 7B em 1T tokens e a perda continuou caindo. O custo extra do treino é pago uma vez; a economia na inferência vale enquanto o modelo estiver no ar.

O segundo movimento é uma restrição autoimposta: só dado público, compatível com open source. Não é uma escolha técnica, é uma aposta — a de que o corpus fechado não era o segredo.

como funciona

O corpus tem 1,4T tokens: CommonCrawl processado com o CCNet (67%), C4 (15%), GitHub restrito às licenças Apache, BSD e MIT (4,5%), Wikipedia em 20 idiomas (4,5%), Gutenberg mais Books3 do Pile (4,5%), ArXiv em LaTeX com bibliografia e macros removidas (2,5%) e Stack Exchange (2%). Quase todo token é visto uma vez; Wikipedia e livros passam duas vezes. O tokenizer é BPE via SentencePiece, com números quebrados em dígitos individuais e fallback para bytes.

A arquitetura é o transformer com três enxertos já conhecidos: pre-normalization com RMSNorm no lugar de LayerNorm na saída, SwiGLU em vez de ReLU com dimensão de ⅔·4d, e RoPE em cada camada substituindo o positional embedding absoluto. Nada disso é invenção do paper, e o paper diz de onde tirou cada um.

O ganho está na implementação. A attention causal vem do xformers: não guarda os pesos de atenção e não calcula os scores que a máscara causal descartaria, com o backward do FlashAttention. O backward do bloco transformer é escrito à mão em vez de deixar o autograd decidir, para salvar só as ativações caras — saída de camada linear — e recomputar o resto. Somam-se model e sequence parallelism e o overlap entre computação e os all_reduce na rede. Resultado: cerca de 380 tokens por segundo por GPU em 2.048 A100 de 80 GB, o que dá aproximadamente 21 dias para os 1,4T tokens do 65B.

O que sai disso: o 13B supera o GPT-3 na maioria dos benchmarks sendo 10 vezes menor, e roda numa única V100 na inferência. O 65B bate o Chinchilla-70B em todos os benchmarks de common sense reportados exceto BoolQ.

o que isso custou

Em MMLU o 65B fica em 63,4, atrás de Chinchilla-70B (67,5) e PaLM-540B (69,3). Os próprios autores apontam o culpado provável: a fatia de livros e papers do corpus soma 177 GB, contra os até 2 TB de livros dos concorrentes. Em código, o 65B faz 23,7 de pass@1 no HumanEval, abaixo do PaLM-540B, e finetuning em código ficou explicitamente fora do escopo. Em matemática, sem finetune específico, o 65B só passa o Minerva-62B no GSM8k quando se usa majority voting (69,7 contra 68,5); no MATH a distância é grande.

A seção de viés é honesta e desconfortável. A toxicidade medida sobe com o tamanho do modelo, e sobe mais nos prompts que pedem resposta educada. No CrowS-Pairs a média (66,6) é levemente melhor que GPT-3 e OPT, mas a categoria religião é 10 pontos pior que o OPT-175B. No WinoGender, o modelo erra mais justamente nos casos “gotcha”, em que o pronome contraria o gênero majoritário da profissão — ou seja, ele resolve correferência olhando o estereótipo, não a frase. No TruthfulQA melhora sobre o GPT-3 e ainda assim alucina com frequência.

Tem também o custo em energia: 2.638 MWh e 1.015 tCO₂eq estimados para desenvolver a família inteira. E os pesos foram liberados “à comunidade de pesquisa” — não é o mesmo que licença aberta de uso.

onde isso aparece hoje

A combinação RMSNorm pre-norm, SwiGLU e RoPE virou a configuração default de quase todo modelo aberto que veio depois — o LLaMA não inventou nenhum dos três, mas fixou o trio como receita. A prática de treinar muito além do ponto compute-optimal deixou de soar como desperdício e virou norma para qualquer modelo que se pretenda servir em escala.

O efeito mais duradouro é o de disponibilidade: pesos de qualidade competitiva num tamanho que cabe em uma GPU tornaram viável uma linhagem inteira de fine-tunes de instrução e de runtimes de inferência local que antes não tinham base sobre a qual trabalhar. O próprio paper termina anunciando modelos maiores em corpora maiores, que vieram.

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