Pré-treinamento
Pré-treinamento de modelos de linguagem grandes (LLMs) — é uma etapa fundamental na criação de modelos de linguagem grandes modernos, que consiste em seu treinamento em enormes e diversos conjuntos de textos não rotulados. Esse processo permite que os modelos assimilem padrões linguísticos gerais, conhecimento sobre o mundo e conexões semânticas, formando o que é conhecido como modelo fundamental (foundation model), que pode ser posteriormente adaptado para resolver tarefas específicas.
O que é pré-treinamento?
O pré-treinamento (pre-training) representa a fase inicial de treinamento, na qual um LLM é exposto a conjuntos de dados de texto em grande escala usando métodos de aprendizagem autossupervisionada (self-supervised learning). Isso significa que os sinais de treinamento (rótulos) são gerados a partir dos próprios dados, sem a necessidade de rotulagem manual por humanos.
A principal meta desta etapa é prever partes ocultas ou futuras do texto. Dependendo da arquitetura, duas tarefas principais são utilizadas:
- Modelagem de linguagem causal (Causal Language Modeling, CLM): O modelo aprende a prever a próxima palavra (token) em uma sequência com base em todas as anteriores. Essa abordagem é a base de modelos generativos, como o GPT.
- Modelagem de linguagem mascarada (Masked Language Modeling, MLM): O modelo aprende a restaurar palavras aleatoriamente "mascaradas" (ocultas) no texto, utilizando o contexto bidirecional ao redor delas (palavras à esquerda e à direita). Esse método é usado em modelos como o BERT.
Graças a essas tarefas, o modelo é forçado a aprender sintaxe, semântica e conhecimento factual sobre o mundo para fazer previsões bem-sucedidas.
Dados para o pré-treinamento
A eficácia do pré-treinamento depende em grande parte da qualidade e diversidade dos dados de treinamento. As seguintes fontes principais são utilizadas:
- Páginas da web: Conjuntos de dados como Common Crawl e C4 fornecem uma ampla gama de tópicos, estilos e idiomas, representando um "instantâneo" da internet.
- Livros: Corpora como BookCorpus e The Pile fornecem textos estruturados e coesos, úteis para a compreensão de dependências de longo prazo e narrativas.
- Dados de conversação: Dados de fóruns (por exemplo, Reddit) e redes sociais, que ajudam os modelos a aprender a linguagem informal e os padrões de diálogo.
- Dados especializados: Artigos científicos (do arXiv), código de programação (do GitHub e The Stack) ou textos multilíngues para aprimorar capacidades específicas do modelo.
Exemplos de distribuição de dados
Diferentes modelos utilizam diferentes proporções de fontes, o que afeta suas capacidades finais:
- GPT-3 (175 bilhões de parâmetros): 16% livros, 84% páginas da web.
- PaLM (540 bilhões de parâmetros): 5% livros, 14% páginas da web, 50% dados de conversação, 31% outros.
- LLaMA (65 bilhões de parâmetros): 5% livros, 2% páginas da web, 87% dados de conversação.
Essas distribuições mostram que a escolha dos dados é uma decisão estratégica que varia dependendo dos objetivos do modelo.
Corpora frequentemente utilizados
| Corpus | Tamanho | Fonte | Última atualização |
|---|---|---|---|
| BookCorpus | 5GB | Livros | Dez-2015 |
| Gutenberg | - | Livros | Dez-2021 |
| C4 | 800GB | Common Crawl | Abr-2019 |
| CC-Stories-R | 31GB | Common Crawl | Set-2019 |
| CC-NEWS | 78GB | Common Crawl | Fev-2019 |
| REALNEWS | 120GB | Common Crawl | Abr-2019 |
| OpenWebText | 38GB | Links do Reddit | Mar-2023 |
| Pushshift.io | 2TB | Links do Reddit | Mar-2023 |
| Wikipedia | 21GB | Wikipédia | Mar-2023 |
| The Pile | 800GB | Outros | Dez-2020 |
| ROOTS | 1.6TB | Outros | Jun-2022 |
Técnicas de treinamento
O pré-treinamento de LLMs exige recursos computacionais significativos. Para gerenciar esse processo, as seguintes técnicas são aplicadas:
- Treinamento distribuído: Uso de múltiplas GPUs ou TPUs para processamento paralelo.
- Precisão mista (Mixed Precision): Uso de formatos numéricos com menor precisão (por exemplo, 16 bits em vez de 32 bits) para acelerar os cálculos e reduzir o uso de memória.
- Checkpointing de gradiente (Gradient Checkpointing): Técnica para economizar memória recalculando, em vez de armazenar, algumas ativações intermediárias.
- Paralelismo de modelo (Model Parallelism): Distribuição do próprio modelo por vários dispositivos.
O treinamento de um modelo como o GPT-3 pode levar vários meses em milhares de GPUs.
Leis de escalonamento
Pesquisas, como o trabalho da OpenAI (Kaplan et al., 2020), mostraram que o desempenho dos modelos de linguagem melhora de forma previsível com o aumento de três fatores:
- Tamanho do modelo (número de parâmetros).
- Volume de dados.
- Recursos computacionais.
Essas dependências empíricas, conhecidas como leis de escalonamento, servem como um guia para os desenvolvedores ao projetar e treinar modelos maiores e mais poderosos, permitindo uma alocação ótima do orçamento computacional.
Desafios e conquistas
- Escalonamento: A principal conquista do pré-treinamento é a capacidade de equilibrar o tamanho do modelo, os dados e a computação para alcançar um desempenho ótimo.
- Qualidade dos dados: Garantir a pureza, a diversidade e a ausência de vieses nos dados de treinamento é um desafio fundamental.
- Eficiência: Desenvolver métodos para reduzir os custos computacionais, como o pré-treinamento contínuo ou arquiteturas mais eficientes.
- Multilinguismo: Criar modelos capazes de processar eficazmente vários idiomas exige uma seleção e um balanceamento cuidadosos dos dados.
Ver também
- Modelos de linguagem grandes
- BERT
- GPT