Artigos · arXiv 2302.13971
LLaMA: Modelos de Linguagem Fundamentais Abertos e Eficientes
LLaMA: Open and Efficient Foundation Language Models
Resumo em três linhas
- 🎯 A maioria dos principais LLMs depende de contagens massivas de parâmetros ou datasets proprietários, gerando altos custos de inferência e barreiras de acesso à pesquisa.
- 🔧 Treinamento de modelos transformer compactos (7B a 65B) em 1,0T a 1,4T de tokens utilizando apenas dados de código aberto, RMSNorm, SwiGLU e RoPE.
- 📈 O LLaMA-13B supera o GPT-3 (175B) na maioria dos benchmarks, enquanto o LLaMA-65B atinge 68,9% no MMLU após um ajuste fino instrucional simples.
Resumo
Apresentamos o LLaMA, uma coleção de modelos de linguagem fundamentais que variam de 7B a 65B parâmetros. Treinamos nossos modelos em trilhões de tokens e mostramos que é possível treinar modelos no estado da arte utilizando exclusivamente conjuntos de dados publicamente disponíveis, sem recorrer a bases de dados proprietárias e inacessíveis. Em particular, o LLaMA-13B supera o GPT-3 (175B) na maioria dos benchmarks, e o LLaMA-65B é competitivo com os melhores modelos, como Chinchilla-70B e PaLM-540B. Disponibilizamos todos os nossos modelos para a comunidade de pesquisa.
Resumo original (inglês)
We introduce LLaMA, a collection of foundation language models ranging from 7B to 65B parameters. We train our models on trillions of tokens, and show that it is possible to train state-of-the-art models using publicly available datasets exclusively, without resorting to proprietary and inaccessible datasets. In particular, LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B. We release all our models to the research community.
Guia de leitura
Problema e motivação
As leis de escala padrão (como Chinchilla) calculam o trade-off ideal entre o tamanho dos parâmetros e o tamanho do dataset para um orçamento computacional fixo de treinamento. No entanto, esse enquadramento negligencia o orçamento de inferência, que domina o custo operacional total ao longo da vida útil do serviço de modelos de linguagem. Para a eficiência de atendimento (serving), modelos menores treinados em volumes significativamente maiores de dados do que o recomendado pelas diretrizes de computação ideal são preferíveis, pois são substancialmente mais baratos de hospedar e executar.
Além disso, os principais modelos no estado da arte (como GPT-3, Chinchilla e PaLM) dependem de conjuntos de dados privados e não reprodutíveis ou de arquiteturas proibitivamente grandes. O LLaMA demonstra que modelos fundamentais competitivos podem ser treinados exclusivamente com dados publicamente disponíveis, permitindo a distribuição aberta para pesquisadores.
Ideias-chave
- Treinamento focado em inferência: Em vez de interromper o treinamento nos tamanhos de dataset ideais para computação (ex.: ~200B tokens para um modelo de 10B), o LLaMA treina modelos de 7B e 13B em 1,0T de tokens, e modelos de 33B e 65B em 1,4T de tokens.
- Apenas datasets abertos: Todos os dados de pré-treinamento são extraídos de fontes públicas: CommonCrawl (67%), C4 (15%), GitHub (4,5%), Wikipedia (4,5%), Books (4,5%), ArXiv (2,5%) e Stack Exchange (2%).
- Arquitetura Transformer modernizada: Incorpora pré-normalização com RMSNorm para estabilidade, ativações SwiGLU e Rotary Positional Embeddings (RoPE) em vez de posições absolutas.
- Eficiência de engenharia: Emprega atenção com uso eficiente de memória (via
xformers), checkpointing de ativação customizado e paralelismo de modelo/sequência.
Método
O LLaMA utiliza um decodificador Transformer autorregressivo com as seguintes modificações:
- Pré-normalização: Normalização da entrada usando RMSNorm antes de cada subcamada:
- Ativação SwiGLU: Substitui as ativações padrão ReLU/GELU por SwiGLU, dimensionando a dimensão intermediária para em vez de .
- Rotary Embeddings (RoPE): Aplicados em todas as camadas para codificar posições relativas sem embeddings de posição absolutos.
- Otimização: AdamW com , decaimento de peso (weight decay) de , corte de gradiente (gradient clipping) de , passos de warmup e um cronograma de taxa de aprendizado por cosseno decaindo até 10% da taxa máxima. O tamanho do lote (batch size) é de 4M de tokens em todas as escalas de modelo.
A estimativa de energia e pegada de carbono durante as execuções de treinamento segue:
Resultados
- Raciocínio de Senso Comum: O LLaMA-13B supera o GPT-3 (175B) em múltiplos benchmarks (ex.: 78,1% vs 60,5% no BoolQ; 73,0% vs 70,2% no WinoGrande). O LLaMA-65B iguala ou supera o PaLM-540B no PIQA (82,8% vs 82,3%) e HellaSwag (84,2% vs 83,4%).
- QA de Livro Fechado (Closed-book QA): No TriviaQA (0-shot), o LLaMA-65B atinge 68,2% e o LLaMA-13B alcança 56,6% (superando o desempenho comparável do GPT-3 mesmo rodando em uma única GPU V100).
- Geração de Código: No HumanEval (pass@1), o LLaMA-65B atinge 23,7%, superando o PaLM-62B (15,9%) e igualando o PaLM-cont 62B (23,7%).
- MMLU e Ajuste Instrucional: O LLaMA-65B base atinge 63,4% de acurácia 5-shot no MMLU (ficando atrás dos 69,3% do PaLM-540B, provavelmente devido a corpora menores de livros no pré-treinamento). No entanto, o ajuste fino com instruções em prompts básicos (LLaMA-I 65B) eleva o desempenho para 68,9%.
Limitações e questões em aberto
- Alucinação e Veracidade: As pontuações no TruthfulQA continuam modestas (o LLaMA-65B atinge 0,57 em Truthful e 0,53 em Truthful*Informative), mostrando uma tendência contínua à alucinação.
- Escalabilidade de Toxicidade: No RealToxicityPrompts, a toxicidade aumenta com o tamanho do modelo, especialmente em prompts respeitosos (0,141 para 65B vs 0,081 para 7B).
- Lacuna de Conhecimento Acadêmico: O desempenho no MMLU ficou abaixo de Chinchilla-70B e PaLM-540B, o que os autores hipotetizam ser resultado do treinamento em apenas ~177GB de livros e artigos acadêmicos, em comparação com os ~2TB dos conjuntos proprietários.
Termos-chave
- LLaMA
- Uma coleção de modelos de linguagem fundamentais que variam de 7B a 65B parâmetros, treinados em até 1,4 trilhão de tokens usando apenas conjuntos de dados públicos.
- Inference Budget (Orçamento de Inferência)
- O custo computacional e a latência incorridos no atendimento de um modelo treinado, priorizados pelo treinamento de modelos menores em mais tokens.
- RMSNorm
- Root Mean Square Layer Normalization, técnica usada para normalizar as entradas das subcamadas do transformer para garantir a estabilidade do treinamento.
- SwiGLU
- Uma variante de unidade linear com gating que utiliza a função de ativação Swish, dimensionada com uma dimensão oculta de 2/3 * 4d.
- Rotary Positional Embeddings (RoPE)
- Uma técnica que injeta informações de posição relativa nas camadas de atenção do transformer rotacionando as representações de query e key.
- xformers
- Uma biblioteca de código aberto que fornece uma implementação eficiente de causal multi-head attention, evitando o armazenamento de grandes matrizes de pesos de atenção.
- LLaMA-I
- A versão com ajuste fino instrucional do LLaMA-65B, treinada seguindo o protocolo Flan para melhorar o acompanhamento de instruções e o desempenho no MMLU.
- TruthfulQA
- Um benchmark que mede a propensão de um LLM em imitar falsidades humanas e alucinações em perguntas factuais adversariais.
Perguntas
Quais datasets foram usados para pré-treinar o LLaMA?
O pré-treinamento utilizou exclusivamente dados públicos: English CommonCrawl (67%), C4 (15%), GitHub (4,5%), Wikipedia em 20 idiomas (4,5%), Gutenberg e Books3 (4,5%), ArXiv (2,5%) e Stack Exchange (2%).
Como o LLaMA-13B se compara ao GPT-3 (175B)?
O LLaMA-13B supera o GPT-3 na maioria dos benchmarks padrão — incluindo BoolQ, PIQA e WinoGrande — apesar de ser mais de 10 vezes menor e capaz de rodar inferência em uma única GPU de consumidor ou de datacenter.
Quanto tempo levou para treinar o LLaMA-65B?
O treinamento do LLaMA-65B em 1,4 trilhão de tokens processou aproximadamente 380 tokens/seg/GPU em 2.048 GPUs A100 de 80GB, sendo concluído em cerca de 21 dias.
Quais modificações arquiteturais o LLaMA faz em relação ao Transformer original?
O LLaMA aplica pré-normalização com RMSNorm nas entradas das subcamadas, substitui o ReLU por ativações SwiGLU (dimensão 2/3 * 4d) e troca embeddings posicionais absolutos por embeddings posicionais rotativos (RoPE).
A explicação desta página foi escrita por IA a partir do artigo e pode conter erros. Consulte o artigo para os detalhes.