Recursos/Treinamento de modelo/Métodos de treinamento

Método

Pré-treinamento contínuo

O pré-treinamento contínuo treina um modelo em seu texto bruto da mesma forma que foi treinado inicialmente: prevendo a próxima palavra. Ele adiciona conhecimento do seu domínio, não novos comportamentos, por isso geralmente é seguido por uma execução supervisionada.

Capítulo 75 min de leitura5 referências

O que é

Um modelo base aprendeu o que sabe no pré-treinamento: prevendo a próxima palavra em uma vasta quantidade de textos públicos. O pré-treinamento contínuo executa esse mesmo processo uma segunda vez, no seu texto. Não há prompts, nem respostas, nem avaliador; o modelo lê a sua documentação e torna-se melhor em prever como ela continua, o que significa que ele absorve o seu vocabulário, as suas entidades e os seus fatos.

A ideia é bem estabelecida. Gururangan et al. (2020) demonstraram em quatro domínios (artigos biomédicos e de ciência da computação, notícias e avaliações) e oito tarefas que uma segunda fase de pré-treinamento em textos do próprio domínio melhorou os resultados, e que o pré-treinamento no próprio texto não rotulado da tarefa ajudou mesmo após isso.

Como o texto é preparado

  • Passagens de cerca de 700 palavras, cortadas nas quebras de parágrafo para que nenhuma passagem termine no meio de um raciocínio. Documentos muito curtos podem ser ignorados.
  • Os dados pessoais são ocultados, como em qualquer preparação de dados.
  • Cerca de 5% das passagens são reservadas, para que a perda possa ser medida em textos nos quais o modelo nunca é treinado.
1 · CORTAR NAS QUEBRAS DE PARÁGRAFOABCDEFreservado (~5%)um trecho ≈ 700 palavras ≈ 900 tokens2 · AGRUPAR EM SEQUÊNCIAS DE 2.048 TOKENSsequência 1ABsequência 2CDEcompletocompletoa perda abrange cada token: não há perguntas e respostas, apenas texto
Como os documentos se tornam dados de pré-treinamento contínuo. O texto é cortado em trechos de cerca de 700 palavras nas quebras de parágrafo, para que nenhum trecho termine no meio de um raciocínio, e cerca de 5% são reservados para medir a perda em textos nos quais o modelo nunca é treinado. No Hugging Face, trechos curtos são então agrupados lado a lado em sequências de comprimento total, para que nenhum processamento seja gasto com preenchimento. Os comprimentos são ilustrativos.

Como cada provedor o treina

Hugging Face: cada passagem é uma linha text. A perda abrange todos os tokens, ao contrário do treinamento supervisionado, onde apenas a resposta conta. Passagens curtas são agrupadas em sequências de comprimento total, de modo que nenhum processamento é gasto com preenchimento.

Uma passagem para o Hugging Face
{"text": "Sharing reports\n\nAny report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}

Modelos abertos do Vertex AI (Gemma, Llama, Qwen): não há modo de texto simples, portanto, cada passagem entra como um prompt e uma conclusão, com o título do documento como o prompt. O Vertex aprende a conclusão, que é a passagem. O Vertex pode não exibir uma curva de perda para este tipo de trabalho.

A mesma passagem para modelos abertos da Vertex AI
{"prompt": "Sharing reports",
 "completion": "Any report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}
Hugging Face · texto simples
trecho→textuma linha por trecho→aprende cada token
Modelos abertos do Vertex AI · prompt e conclusão
prompto título do documento+completiono trecho→aprende o trecho
O mesmo trecho, escrito da forma como cada provedor pode treiná-lo. O Hugging Face aceita texto simples. Os modelos abertos do Vertex AI não possuem modo de texto simples, portanto, o título do documento atua como o prompt e o trecho é a parte que é aprendida.

Não disponível em outros lugares. Gemini, Azure, Fireworks e os modelos atuais do Bedrock não oferecem pré-treinamento contínuo; o Bedrock apenas o fez para o Titan Text, que foi descontinuado. Nesses provedores, os documentos tornam-se Q&A gerado.

Conhecimento, não comportamento

Após o pré-treinamento contínuo, o modelo sabe mais, mas não necessariamente responde melhor: ele foi treinado para continuar um texto, não para responder a uma pergunta. Allen-Zhu & Li (2023) descobriram que o conhecimento que um modelo memorizou nem sempre é extraível por meio de perguntas, e que formulações variadas do mesmo fato são o que o tornam recuperável. Portanto, a receita usual é primeiro o pré-treinamento contínuo e, em seguida, uma execução supervisionada, em chats ou Q&A gerado, que continue a partir do modelo treinado.

Modelo baseconhecimento geral
→lê o seu textoPré-treinamento contínuoagora conhece seus documentos
→continuar a partir deExecução supervisionadachats ou perguntas e respostas geradas: usa esse conhecimento para responder
O pré-treinamento contínuo adiciona conhecimento, não comportamento. Um modelo que apenas leu seus documentos continua o texto; ele ainda não responde a perguntas sobre ele. Uma execução supervisionada que continua a partir dele o ensina a usar o que leu.
Dimensionamento de uma execução (ilustrativo)
  1. Uma central de ajuda de 120.000 palavras é dividida em cerca de 170 passagens de aproximadamente 700 palavras.
  2. Cerca de 5% (9 passagens) são reservadas; 161 são utilizadas no treinamento, totalizando cerca de 113.000 palavras.
  3. A cerca de 1,3 tokens por palavra, isso equivale a aproximadamente 150.000 tokens por época. Duas épocas treinam em cerca de 300.000 tokens.
  4. Agrupadas em sequências de 2.048 tokens, uma época corresponde a cerca de 72 sequências. Com o rank LoRA de 32 em um modelo aberto pequeno, trata-se de um trabalho curto e de baixo custo.
  5. Uma execução supervisionada nos chats de suporte e no Q&A gerado continua a partir dele, sendo avaliada em comparação a ele.
  6. Em contrapartida, um piloto em um documento de 2.000 palavras resulta em três passagens: isso prova que o pipeline funciona, mas é muito pouco texto para alterar o modelo.

Quando escolhê-lo

  • Escolha esta opção quando você tiver um grande volume de documentação (dezenas de milhares de palavras ou mais), treinar um modelo aberto e planejar uma execução supervisionada em seguida.
  • Escolha Q&A gerado quando você quiser respostas melhores em breve, tiver menos documentos ou treinar em um provedor sem pré-treinamento contínuo.
  • Considere ambos: pré-treinamento contínuo para absorver a documentação, seguido de Q&A e chats gerados para ensinar o modelo a responder a partir dela.

Configurações

Comprimento da passagemTípico Cerca de 700 palavras#

O tamanho de cada trecho de treinamento. Cerca de 700 palavras, cortadas nas quebras de parágrafo, para que cada trecho seja um texto coerente e se ajuste confortavelmente em uma sequência de treinamento. Documentos muito curtos podem ser ignorados por serem insuficientes para ensinar algo.

ÉpocasTípico 1–3#

Quantas vezes o modelo lê todas as passagens. Mantenha este valor baixo: muitas iterações fazem com que o modelo recite as passagens palavra por palavra em vez de usar o conhecimento. Cada época também adiciona aproximadamente mais uma época de custo.

Rank do LoRATípico 32 (16 para outros métodos)#

O tamanho do adaptador que armazena o que o modelo aprende. Novos conhecimentos exigem um adaptador maior do que uma mudança de estilo, portanto a Scalata utiliza o rank 32 para o pré-treinamento contínuo e 16 para os demais métodos. Biderman et al. (2024) descobriram, em código e matemática, que o ajuste fino completo aprende mudanças de um rank 10 a 100 vezes maior do que as configurações típicas do LoRA, sendo esta uma provável razão pela qual ranks baixos são insuficientes quando o objetivo é adquirir novos conhecimentos.

Erros comuns

  • Executá-lo em algumas páginas e esperar uma mudança. É necessário dezenas de milhares de palavras ou mais.
  • Parar após o pré-treinamento contínuo. O modelo sabe mais, mas ainda precisa de uma execução supervisionada para responder bem.
  • Usar muitas épocas. O modelo começa a recitar passagens em vez de usar o que elas dizem.
  • Manter um rank LoRA pequeno. O conhecimento precisa de mais capacidade de adaptador do que o estilo.
  • Procurá-lo no Gemini, Azure, Fireworks ou Bedrock. Use Q&A gerado nesses casos.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Don't Stop Pretraining: Adapt Language Models to Domains and TasksGururangan et al., 2020 · arXiv · arxiv.orgO estudo clássico de pré-treinamento adaptativo de domínio e de tarefa.
  2. 02LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgLoRA versus ajuste fino completo para pré-treinamento contínuo, e por que o rank é importante.
  3. 03Synthetic continued pretrainingYang et al., 2024 · arXiv · arxiv.orgPor que um corpus pequeno ensina pouco por si só, e como as variações sintéticas ajudam.
  4. 04SFT TrainerHugging Face TRL docs · huggingface.coTreinamento em texto simples e agrupamento de sequências com o Hugging Face TRL.
  5. 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comAjuste de modelos abertos como Gemma, Llama e Qwen no Vertex AI.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas