O que são dados sintéticos
Os melhores dados de treinamento são conversas reais com seus usuários. Muitas vezes, há muito poucas delas, cobrem apenas os casos fáceis, ou o assistente que você deseja treinar ainda não existe. Dados sintéticos preenchem a lacuna: um modelo capaz escreve exemplos de conversas que demonstram o comportamento desejado, e um modelo menor ou mais barato é então treinado com eles.
Esta é agora uma técnica padrão. O artigo Self-Instruct (2022) fez com que o GPT-3 escrevesse suas próprias instruções e respostas, filtrou as inválidas e quase duplicadas, e realizou o ajuste fino do GPT-3 no resultado: uma melhoria absoluta de 33% no benchmark Super-NaturalInstructions. O Alpaca de Stanford (2023) usou a mesma ideia para criar 52.000 demonstrações por menos de US$ 500. O UltraChat gerou 1,5 milhão de diálogos de múltiplos turnos, e o phi-1 da Microsoft mostrou que um modelo de código de 1,3 bilhão de parâmetros treinado parcialmente em livros didáticos sintéticos poderia atingir 50,6% no benchmark HumanEval.
O risco: o aluno copia o autor
Um modelo treinado na escrita de outro modelo aprende seus hábitos tão fielmente quanto seu conhecimento. Se todo usuário gerado começar com “Olá, tenho uma dúvida sobre…”, o modelo treinado lidará apenas com perguntas educadas e bem formuladas. Se o autor nunca recusar nada, o aluno também não o fará. Pesquisas sobre o treinamento repetido de modelos em textos gerados (Shumailov e colegas, 2023) descobriram que os casos raros — as caudas da distribuição — são os primeiros a desaparecer. Portanto, bons dados sintéticos dependem principalmente de duas coisas: variedade, para que os casos raros e complexos estejam presentes, e controle, para que você decida o que é considerado bom.
Como funciona o Construtor de Conjuntos de Dados
O briefing descreve o que construir. O escopo define o que o assistente cobre e, tão importante quanto, o que ele não cobre: chats fora do escopo, onde o assistente recusa educadamente ou redireciona, ensinam ao modelo onde termina o seu trabalho. O objetivo e o enredo definem o que uma boa resposta alcança e quem é o assistente — tom, persona, regras. O público define quem são os usuários, o que molda as perguntas. As instruções contêm qualquer outra coisa (“sempre termine com um próximo passo”, “nunca cite preços”). Em seguida, vêm as contagens e os limites: quantos chats, turnos por chat, a resposta mais longa, a mensagem de usuário mais longa e o idioma. Os documentos opcionais fornecem seus fatos.
1. Plano. Antes de escrever qualquer chat, o modelo escreve um plano: uma lista de cenários, cada um com um tópico, um tipo de usuário, uma dificuldade (fácil, difícil, caso extremo ou fora do escopo) e a intenção do usuário, além de quantos chats cada um recebe. Planejar primeiro é o que produz variedade: sem isso, um modelo ao qual são solicitados 100 chats tende a escrever 100 versões das mesmas três perguntas. Você lê o plano, edita ou exclui linhas e adiciona as suas próprias antes que qualquer coisa seja escrita.
| Tópico | Tipo de usuário | Dificuldade | Intenção | Chats |
|---|---|---|---|---|
| Relatar o rompimento de um cano | cliente no primeiro sinistro | fácil | iniciar um sinistro residencial | 8 |
| Sinistro recusado por aviso tardio | cliente frustrado, ríspido | difícil | entender o motivo e recorrer | 9 |
| Danos cobertos por duas apólices | locador | caso limite | descobrir qual apólice paga | 8 |
| Envio de fotos e recibos | cliente idoso, inseguro com aplicativos | fácil | enviar evidências | 7 |
| Processar o vizinho de cima | reclamante | fora do escopo | obter aconselhamento jurídico | 8 |
2. Gerar. Assim que você aprova o plano, os chats são escritos em segundo plano, cada um baseando-se nas partes de seus documentos que se adequam ao seu cenário. Você pode pausar, retomar ou cancelar a qualquer momento, e o construtor mostra uma estimativa aproximada de quanto tempo resta.
3. Verificações. Cada chat é verificado assim que chega. O formato deve estar correto: o usuário e o assistente se revezam, começando com o usuário e terminando com uma resposta do assistente. Os modelos frequentemente escrevem um turno a mais ou a menos do que o solicitado; esses chats são mantidos e ajustados, pois ainda são bons exemplos. Apenas chats corrompidos — papéis errados, mensagens vazias — são descartados e reescritos. Outros problemas geram uma sinalização: o chat é mantido, mas marcado para sua revisão.
Um sinalizador é uma pergunta, não um veredito: uma recusa é exatamente o correto em um cenário fora do escopo e um sinal de alerta em qualquer outro lugar.
4. Revisar e adicionar. Você lê os chats, filtra por cenário ou sinalização, edita ou exclui qualquer um deles e os adiciona a um conjunto de dados novo ou existente. Lá, eles são marcados como Sintéticos, para que possam sempre ser diferenciados dos chats reais. Adicionar a mesma compilação novamente apenas adiciona o que ainda não está presente.
- Resumo. Um assistente de sinistros de Seguros para apólices residenciais. Fora do escopo: aconselhamento Jurídico e qualquer assunto sobre outras seguradoras. Público: segurados, alguns estressados, alguns não acostumados com aplicativos. 40 chats, turnos mistos, respostas de até 400 tokens, dois artigos da central de ajuda como documentos.
- Plano. Tópicos no Automático: 40 ÷ 8 = 5 cenários, desde um fácil “relatar um cano estourado” até um fora do escopo “posso processar meu vizinho?”. Você adiciona um sexto cenário, difícil — um sinistro registrado duas vezes por engano — e move 2 chats para ele.
- Gerar. O construtor estima alguns minutos. Você pausa após os primeiros chats para lê-los e, em seguida, retoma.
- Verificações. 40 chats chegam: 3 são cortados para os turnos solicitados, 1 chat quebrado é reescrito, 2 são sinalizados como possíveis recusas (ambos no cenário fora do escopo, portanto, corretos) e 1 como sem fundamentação.
- Revisão. Você corrige a resposta sem fundamentação com base no artigo, exclui um chat genérico e adiciona 39 chats ao conjunto de dados junto a 120 reais.
Como utilizá-lo bem
- Misture com dados reais quando os tiver. Chats sintéticos são mais limpos do que os reais, e um modelo treinado apenas neles pode se confundir com entradas desorganizadas. Peça por usuários concisos, frustrados e com erros de digitação no briefing.
- Revise uma amostra, especialmente os cenários difíceis e fora do escopo: é neles que o redator mais frequentemente erra a resposta ideal.
- Use o modelo mais forte que tiver para escrever. O aluno pode, no máximo, igualar-se ao redator.
- Fundamente em documentos sempre que as respostas dependerem dos seus fatos, para que as respostas utilizem as suas políticas em vez do conhecimento geral do modelo.
- Reserve chats reais para avaliação. Testar um modelo treinado em chats sintéticos com mais chats sintéticos superestima a sua qualidade.
Configurações
Quantos cenários o plano contém. Automático escolhe cerca de um a cada 8 chats, no mínimo 5 e no máximo 60; ou defina um número exato. Mais tópicos oferecem mais variedade e menos chats por tópico; menos tópicos aprofundam-se mais em cada situação.
Quantas trocas entre usuário e assistente cada chat possui: 1 a 4, ou misto. Chats de turno único são rápidos de escrever e revisar; chats de múltiplos turnos ensinam o modelo a usar o que foi dito anteriormente. O misto geralmente é o mais próximo do uso real.
A resposta mais longa do assistente, em tokens. Defina-a com o comprimento que deseja que o modelo treinado responda: o aluno aprende tanto o comprimento quanto o conteúdo. Limites maiores tornam a compilação mais lenta, embora menos que proporcionalmente, pois as respostas raramente atingem o limite.
A mensagem mais longa do usuário, em caracteres. Usuários reais costumam ser breves; um limite baixo mantém as perguntas geradas curtas e realistas, em vez de longas e excessivamente explicadas.
Páginas de ajuda, manuais ou políticas opcionais, para que as respostas usem os seus fatos. Sem documentos, o redator depende de seu conhecimento geral, que pode estar incorreto ou desatualizado para o seu produto.
Sinalizações
Muito semelhante a outro chat na construção. Mantenha um e exclua ou reescreva o outro; cópias quase idênticas dão peso excessivo a um exemplo e reduzem a variedade.
Uma resposta acima do limite de tokens de saída ou uma mensagem de usuário acima do limite de caracteres. Encurte-a, ou o modelo aprenderá respostas mais longas do que você solicitou.
Uma mensagem sem texto. Exclua o chat ou escreva a mensagem ausente; uma resposta vazia não ensina nada e uma pergunta vazia ensina o modelo a não responder nada.
Uma resposta que parece uma recusa (“Não posso ajudar com isso”). Esperado em cenários fora do escopo; em outros casos, é um sinal de alerta, pois treinar com isso ensina o modelo a recusar perguntas que deveria responder.
Apenas quando documentos foram usados: uma resposta que pode não ser baseada em seus documentos, dependendo do conhecimento geral do modelo em vez de seus fatos. Verifique-a em relação ao documento e corrija-a.
Erros comuns
- Deixar de fora cenários fora do escopo, fazendo com que o modelo treinado responda a tudo, incluindo o que não deveria.
- Escrever centenas de chats sem ler o plano e, em seguida, descobrir que todos perguntam a mesma coisa.
- Treinar apenas com chats sintéticos quando existem chats reais; o modelo é então surpreendido por entradas reais e desordenadas.
- Ignorar sinalizações nos cenários difíceis e casos extremos, onde o autor erra com mais frequência.
- Avaliar um modelo treinado em chats sintéticos com mais chats sintéticos.
- Escrever com um modelo mais fraco do que aquele que você irá treinar; o aluno pode, na melhor das hipóteses, igualar-se ao autor.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01Self-Instruct: Aligning Language Models with Self-Generated InstructionsWang et al., 2022 · arXiv · arxiv.orgUm modelo escrevendo suas próprias instruções de treinamento, com filtragem para as inválidas e quase duplicadas.
- 02Alpaca: A Strong, Replicable Instruction-Following ModelStanford CRFM, 2023 · crfm.stanford.edu52.000 demonstrações geradas por menos de US$ 500, e os limites do resultado.
- 03Enhancing Chat Language Models by Scaling High-quality Instructional ConversationsDing et al., 2023 · arXiv · arxiv.orgUltraChat: geração de 1,5 milhão de conversas variadas de múltiplos turnos.
- 04Textbooks Are All You NeedGunasekar et al., 2023 · arXiv · arxiv.orgphi-1: o quanto dados cuidadosamente gerados podem fazer por um modelo pequeno.
- 05The Curse of Recursion: Training on Generated Data Makes Models ForgetShumailov et al., 2023 · arXiv · arxiv.orgPor que casos raros desaparecem quando os modelos aprendem apenas com a saída de outros modelos.