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.
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.
{"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.
{"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…"}textuma linha por trecho→aprende cada tokenprompto título do documento+completiono trecho→aprende o trechoNã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.
- Uma central de ajuda de 120.000 palavras é dividida em cerca de 170 passagens de aproximadamente 700 palavras.
- Cerca de 5% (9 passagens) são reservadas; 161 são utilizadas no treinamento, totalizando cerca de 113.000 palavras.
- 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.
- 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.
- Uma execução supervisionada nos chats de suporte e no Q&A gerado continua a partir dele, sendo avaliada em comparação a ele.
- 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
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.
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.
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.
- 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.
- 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.
- 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.
- 04SFT TrainerHugging Face TRL docs · huggingface.coTreinamento em texto simples e agrupamento de sequências com o Hugging Face TRL.
- 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comAjuste de modelos abertos como Gemma, Llama e Qwen no Vertex AI.