O processo de treinamento de um modelo é frequentemente dividido em pré-treinamento e pós-treinamento. O pré-treinamento torna o modelo capaz, mas não necessariamente seguro ou fácil de usar. É aqui que entra o pós-treinamento. O objetivo do pós-treinamento é alinhar o modelo às preferências humanas.
Embora a maioria das pessoas entenda o impacto do treinamento no desempenho de um modelo, o impacto da amostragem é frequentemente negligenciado. A amostragem é como um modelo escolhe uma saída entre todas as opções possíveis. A amostragem não apenas explica muitos comportamentos aparentemente desconcertantes da IA, incluindo alucinações e inconsistências, mas escolher a estratégia de amostragem correta também pode aumentar significativamente o desempenho de um modelo com relativamente pouco esforço.
Dados de Treinamento
Um modelo de IA é tão bom quanto os dados com os quais foi treinado. Se você deseja que um modelo melhore em uma determinada tarefa, pode incluir mais dados para essa tarefa nos dados de treinamento.
Uma fonte comum de dados de treinamento é o Common Crawl, criado por uma organização sem fins lucrativos que rastreia sites esporadicamente na internet. Em 2022 e 2023, essa organização rastreou aproximadamente 2 a 3 bilhões de páginas da web por mês. O Google fornece um subconjunto limpo do Common Crawl chamado Colossal Clean Crawled Corpus, ou C4, para abreviar. A qualidade dos dados do Common Crawl, e do C4 até certo ponto, é questionável — pense em caça-cliques, desinformação, propaganda, teorias da conspiração, racismo, misoginia e todos os sites suspeitos que você já viu ou evitou na internet. Algumas equipes usam heurística para filtrar dados de baixa qualidade da internet.
A abordagem “usar o que temos, não o que queremos” pode levar a modelos com bom desempenho em tarefas presentes nos dados de treinamento, mas não necessariamente nas tarefas com as quais você se importa. Para resolver esse problema, é crucial selecionar conjuntos de dados que se alinhem às suas necessidades específicas.
Modelagem
Antes de treinar um modelo, os desenvolvedores precisam decidir como ele deve ser. Qual arquitetura deve seguir? Quantos parâmetros deve ter? Essas decisões impactam não apenas as capacidades do modelo, mas também sua usabilidade para aplicações posteriores.
Arquitetura do Modelo
No momento em que este texto foi escrito, a arquitetura mais dominante para modelos de base baseados em linguagem é a arquitetura do transformer, que se baseia no mecanismo de atenção. Os detalhes da arquitetura do transformador podem ser vistos neste artigo: Arquitetura Transformer para Modelos de fundamento.
Outras arquiteturas de modelo
Embora os modelos baseados em transformers sejam dominantes, no momento em que este texto foi escrito, diversas arquiteturas alternativas estão ganhando força. Um modelo popular é o RWKV, um modelo baseado em RNN que pode ser paralelizado para treinamento. Devido à sua natureza de RNN, em teoria, ele não possui a mesma limitação de comprimento de contexto que os modelos baseados em transformadores. No entanto, na prática, a ausência de limitação de comprimento de contexto não garante um bom desempenho com contextos longos.
A modelagem de sequências longas continua sendo um desafio central no desenvolvimento de LLMs. Uma arquitetura que se mostrou bastante promissora em memória de longo alcance são os SSMs (modelos de espaço de estados). Desde a introdução da arquitetura em 2021, diversas técnicas foram introduzidas para torná-la mais eficiente, melhor no processamento de sequências longas e escalável para tamanhos de modelo maiores.
Tamanho do Modelo
Grande parte do progresso da IA nos últimos anos pode ser atribuído ao aumento do tamanho do modelo. É difícil falar sobre modelos de base sem mencionar seu número de parâmetros. O número de parâmetros geralmente é anexado ao final do nome do modelo. Por exemplo, Llama-13B refere-se à versão do Llama, uma família de modelos desenvolvida pela Meta, com 13 bilhões de parâmetros.
O número de parâmetros nos ajuda a estimar os recursos computacionais necessários para treinar e executar este modelo. Por exemplo, se um modelo tiver 7 bilhões de parâmetros e cada parâmetro for armazenado usando 2 bytes (16 bits), podemos calcular que a memória da GPU necessária para realizar inferências usando este modelo será de pelo menos 14 bilhões de bytes (14 GB).
Um modelo maior também pode ter desempenho inferior ao de um modelo menor se não for treinado com dados suficientes. Imagine um modelo com 13B parâmetros treinado em um conjunto de dados que consiste em uma única frase: “Eu gosto de abacaxis”. Este modelo terá um desempenho muito pior do que um modelo muito menor treinado com mais dados. Ao discutir o tamanho do modelo, é importante considerar o tamanho dos dados com os quais ele foi treinado. Para a maioria dos modelos, o tamanho dos conjuntos de dados é medido pelo número de amostras de treinamento.
Para modelos de linguagem, uma amostra de treinamento pode ser uma frase, uma página da Wikipédia, uma conversa de bate-papo ou um livro. Um livro vale muito mais do que uma frase, portanto, o número de amostras de treinamento não é mais uma boa métrica para medir o tamanho de conjuntos de dados. Uma medida melhor é o número de tokens no conjunto de dados.
O número de tokens no conjunto de dados de um modelo não é o mesmo que o número de tokens de treinamento. O número de tokens de treinamento mede os tokens nos quais o modelo é treinado. Se um conjunto de dados contém 1 trilhão de tokens e um modelo é treinado nesse conjunto de dados por duas épocas — uma época é uma passagem pelo conjunto de dados — o número de tokens de treinamento é 2 trilhões.
O pré-treinamento de modelos grandes requer computação. Uma unidade padronizada para o requisito de computação de um modelo é o FLOP, ou operação de ponto flutuante. O FLOP mede o número de operações de ponto flutuante realizadas para uma determinada tarefa.
Lei de Escala: Construindo Modelos de Computação Ótima
Dado um orçamento computacional, a regra que ajuda a calcular o tamanho ideal do modelo e o tamanho do conjunto de dados é chamada de lei de escala de Chinchilla, proposta no artigo de Chinchilla “Training Compute-Optimal Large Language Models”. Para estudar a relação entre tamanho do modelo, tamanho do conjunto de dados, orçamento computacional e desempenho do modelo, os autores treinaram 400 modelos de linguagem, variando de 70 milhões a mais de 16 bilhões de parâmetros, em 5 a 500 bilhões de tokens. Eles descobriram que, para o treinamento de computação ótima, é necessário que o número de tokens de treinamento seja aproximadamente 20 vezes o tamanho do modelo. Isso significa que um modelo de 3 bilhões de parâmetros precisa de aproximadamente 60 bilhões de tokens de treinamento.
A lei de escala foi desenvolvida para modelos densos treinados com dados predominantemente gerados por humanos. A adaptação desse cálculo para modelos esparsos, como modelos de mistura de especialistas, e dados sintéticos é uma área de pesquisa ativa. A lei de escala otimiza a qualidade do modelo, considerando um orçamento computacional. No entanto, é importante lembrar que, para produção, a qualidade do modelo não é tudo. Alguns modelos, principalmente o Llama, apresentam desempenho abaixo do ideal, mas melhor usabilidade.
Vale a pena notar que o custo para atingir um determinado desempenho do modelo está diminuindo. Por exemplo, no conjunto de dados ImageNet, o custo para atingir 93% de precisão caiu pela metade de 2019 para 2021. Embora o custo para o mesmo desempenho do modelo esteja diminuindo, o custo para a melhoria do desempenho do modelo permanece alto. Melhorar a precisão de um modelo de 90 para 95% é mais caro do que melhorá-la de 85 para 90%.
Parâmetro Versus Hiper-parâmetro
Um parâmetro pode ser aprendido pelo modelo durante o processo de treinamento. Um hiperparâmetro é definido pelos usuários para configurar o modelo e controlar como ele aprende. Os hiperparâmetros para configurar o modelo incluem o número de camadas, a dimensão do modelo e o tamanho do vocabulário. Os hiper-parâmetros para controlar como um modelo aprende incluem tamanho do lote, número de épocas, taxa de aprendizado, variância inicial por camada e muito mais.
Extrapolação de Escala
O desempenho de um modelo depende fortemente dos valores de seus hiperparâmetros. Ao trabalhar com modelos pequenos, é uma prática comum treinar um modelo várias vezes com diferentes conjuntos de hiperparâmetros e escolher o de melhor desempenho. No entanto, isso raramente é possível para modelos grandes, pois treiná-los uma única vez já consome muitos recursos.
Isso significa que, para muitos modelos, você pode ter apenas uma chance de obter o conjunto correto de hiperparâmetros. Como resultado, a extrapolação de escala surgiu como um subcampo de pesquisa que tenta prever, para modelos grandes, quais hiper-parâmetros apresentarão o melhor desempenho. A abordagem atual é estudar o impacto dos hiper-parâmetros em modelos de tamanhos diferentes, geralmente muito menores do que o tamanho do modelo alvo, e então extrapolar como esses hiper-parâmetros funcionariam no tamanho do modelo alvo.
A extrapolação de escala ainda é um tópico de nicho, pois poucas pessoas têm a experiência e os recursos para estudar o treinamento de modelos grandes. Também é difícil de fazê-lo devido ao grande número de hiper-parâmetros e como eles interagem entre si.
Além disso, as habilidades emergentes tornam a extrapolação menos precisa. Habilidades emergentes referem-se àquelas que estão presentes apenas em escala e podem não ser observáveis em modelos menores treinados em conjuntos de dados menores.
Gargalos de escalonamento
Já existem dois gargalos visíveis para o escalonamento: dados de treinamento e eletricidade.
Os modelos de base usam tantos dados que existe uma preocupação realista de que ficaremos sem dados da internet nos próximos anos. A taxa de crescimento do tamanho do conjunto de dados de treinamento é muito mais rápida do que a taxa de novos dados gerados. Além disso, a internet está sendo rapidamente preenchida com dados gerados por modelos de IA. Se as empresas continuarem usando dados da internet para treinar modelos futuros, esses novos modelos serão parcialmente treinados com dados gerados por IA. Uma vez que os dados publicamente disponíveis se esgotem, os caminhos mais viáveis para mais dados de treinamento gerados por humanos são dados proprietários. Dados proprietários exclusivos – livros, traduções, contratos, registros médicos, sequências genômicas e assim por diante – serão uma vantagem competitiva na corrida da IA.
O outro gargalo, menos óbvio, mas mais urgente, é a eletricidade. Máquinas precisam de eletricidade para funcionar. No momento em que este texto foi escrito, estima-se que os data centers consumam de 1% a 2% da eletricidade global. Estima-se que esse número atinja entre 4% e 20% até 2030.
Em nosso próximo artigo, abordaremos os modelos de fundamento a partir do estágio de pós-treinamento. Até lá!
Referências
Huyen, Chip. AI Engineering: Building Applications with Foundation Models
Comments (0)