Pré-treinamento

From Systems analysis Wiki
Jump to navigation Jump to search

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

Conjuntos de dados frequentemente utilizados para o pré-treinamento de LLMs
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