Recursos/Treinamento de modelo/Datasets

Método

Dados sintéticos e o Construtor de Datasets

Como um modelo capaz pode escrever as conversas de exemplo que você ainda não possui, e como o briefing, o plano, as verificações e a revisão do Construtor de Datasets mantêm esses chats variados, fundamentados e sob o seu controle.

Capítulo 48 min de leitura5 referências

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.

Briefingescopo, público, contagens, documentos
→o modelo planejaPlanocenários que você lê e edita
→você aprovaGerarem segundo plano; pausar ou retomar
→conforme os chats chegamVerificaçõesformato corrigido, problemas sinalizados
→você lêRevisar e adicionarmarcado como Sintético no conjunto de dados
O Construtor de Conjuntos de Dados em cinco etapas. Nada é escrito até que você tenha aprovado o plano, e nada chega a um conjunto de dados até que você tenha revisado os chats.

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ópicoTipo de usuárioDificuldadeIntençãoChats
Relatar o rompimento de um canocliente no primeiro sinistrofáciliniciar um sinistro residencial8
Sinistro recusado por aviso tardiocliente frustrado, ríspidodifícilentender o motivo e recorrer9
Danos cobertos por duas apóliceslocadorcaso limitedescobrir qual apólice paga8
Envio de fotos e reciboscliente idoso, inseguro com aplicativosfácilenviar evidências7
Processar o vizinho de cimareclamantefora do escopoobter aconselhamento jurídico8
Um plano ilustrativo para 40 chats com tópicos sobre Automóveis: cerca de um cenário a cada 8 chats resulta em 5. Cada linha define quem está perguntando, qual é a dificuldade e o que desejam, para que os 40 chats não sejam todos a mesma pergunta educada.

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.

Verificação de formato
Inválidofunções incorretas, mensagens vazias→descartado e reescrito
Um turno a mais ou a menosainda é uma boa conversa→mantido, cortado para os turnos solicitados
Sinalizadores · mantidos, marcados para revisão
duplicadomuito longovaziorecusasem fundamentaçã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.

Cada chat é verificado assim que chega. Apenas os chats inválidos são descartados e reescritos; todo o resto é mantido, e os duvidosos recebem um sinalizador para que você saiba onde olhar primeiro.

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.

Uma construção de 40 chats para um helpdesk de sinistros (ilustrativo)
  1. 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.
  2. 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.
  3. Gerar. O construtor estima alguns minutos. Você pausa após os primeiros chats para lê-los e, em seguida, retoma.
  4. 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.
  5. 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

Tópicos (cenários)Típico Automático#

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.

Turnos por chatTípico Misto#

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.

Máximo de tokens de saída#

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.

Máximo de caracteres de entrada#

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.

Documentos#

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

Duplicado#

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.

Muito longo#

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.

Vazio#

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.

Recusa#

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.

Não fundamentado#

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.

  1. 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.
  2. 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.
  3. 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.
  4. 04Textbooks Are All You NeedGunasekar et al., 2023 · arXiv · arxiv.orgphi-1: o quanto dados cuidadosamente gerados podem fazer por um modelo pequeno.
  5. 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.

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