O que é
Um dataset é uma coleção nomeada de exemplos de treinamento. No Scalata, a maioria dos exemplos são chats: a conversa, mais a escolha de quais respostas do assistente são os alvos. Um dataset também pode conter documentos para o aprendizado de fatos. Tudo o que vem a seguir faz referência a ele: você prepara um dataset, treina nos arquivos preparados e avalia o modelo resultante.
Snapshot, não link
Quando um chat é adicionado a um dataset, suas mensagens são copiadas para ele. A partir de então, o dataset e o chat tornam-se independentes: continuar o chat, editá-lo ou excluí-lo não altera nada no dataset.
Isso é intencional. Uma execução de treinamento pode levar horas, uma avaliação é lida dias depois e um modelo pode permanecer em uso por meses. Se o dataset pudesse mudar por trás deles, não seria mais possível afirmar em que um modelo foi treinado; duas execuções do “mesmo” dataset poderiam ter visto dados diferentes; e a exclusão de um chat poderia remover silenciosamente exemplos nos quais você confiava.
Correções dentro do dataset
Você pode corrigir uma resposta dentro de um dataset. O texto corrigido é o que será treinado, e o original é mantido ao lado dele. Manter ambos é útil além do mero registro: o original e a correção formam um par de preferência pronto para uso, com a correção sendo a preferida. Uma correção é um dos sinais mais fortes que você pode dar a um modelo, pois é uma pessoa dizendo exatamente o que estava errado.
- Resposta original: “Acesse as configurações.”
- Sua correção: “Abra Configurações → Notificações e desative ‘Resumo semanal’.”
- O ajuste fino supervisionado aprende a correção.
- O ajuste de preferência pode usar o par: a correção é preferida, a original não.
Conversas importadas
Conversas exportadas de outros aplicativos de chat também podem ser importadas. Importar a mesma exportação novamente não adiciona nada em duplicidade. As duplicatas importam mais do que parecem: uma conversa que aparece duas vezes conta em dobro no treinamento, e suas cópias poderiam cair em ambos os lados da divisão de validação, o que favoreceria artificialmente a avaliação.
Outras fontes de exemplos
- Chats sintéticos. O Construtor de Datasets faz com que um modelo capaz elabore um plano de cenários variados a partir de um briefing e escreva conversas de exemplo. Você as revisa antes de adicioná-las, e elas são marcadas como Sintéticas para que possam ser diferenciadas de chats reais.
- Datasets públicos. Linhas de um dataset do Hugging Face podem ser importadas como chats assim que a Scalata identificar quais colunas contêm a pergunta e a resposta. Importações grandes são executadas em segundo plano.
- Feedback de chat. Avaliações positivas e negativas dadas no chat tornam-se exemplos: uma resposta curtida torna-se uma resposta com a qual aprender, e uma resposta curtida e outra não curtida para a mesma pergunta tornam-se um par de preferência.
- Documentos. Arquivos enviados, arquivos já na Scalata, páginas da web públicas, as linhas de texto simples de um dataset do Hugging Face ou arquivos de uma fonte de dados conectada. Seu texto é lido uma vez; um modelo pode então escrever exemplos de perguntas e respostas a partir dele, ou modelos abertos podem treinar diretamente no texto (pré-treinamento contínuo).
Cada fonte tem sua própria armadilha. Chats sintéticos são mais limpos do que os reais, portanto, misture-os com dados reais onde puder e guarde os chats reais para testes. Linhas importadas são tão boas quanto a sua fonte. Documentos ensinam o que é verdade, não como responder, então eles geralmente vêm antes, ou junto, do treinamento de chat.
Novas versões em vez de alterações intermináveis
Para uma mudança substancial — uma nova área de produto, um novo lote de chats, um estilo diferente —, geralmente é mais claro criar um novo dataset do que continuar remodelando um antigo. Nomeie as versões para que a diferença seja óbvia (“Suporte v2 — faturamento adicionado”) e arquive a versão antiga em vez de excluí-la, para que os modelos anteriores ainda apontem para o que foram treinados.
Erros comuns
- Esperar que uma correção feita no chat original chegue a um dataset criado anteriormente.
- Excluir um dataset antigo que treinou um modelo que você ainda usa, perdendo o registro do que ele aprendeu.
- Misturar tarefas não relacionadas em um único dataset sem exemplos suficientes de cada uma.
- Deixar uma resposta incorreta como alvo em vez de corrigi-la no dataset.
Referências e leitura complementar
Fontes externas abrem em uma nova aba.
- 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgA justificativa para registrar como cada dataset foi coletado e o que ele contém.
- 02DatasetsHugging Face docs · huggingface.coComo o ecossistema de código aberto armazena, versiona e compartilha dados de treinamento.
- 03Deduplicating Training Data Makes Language Models BetterLee et al., 2021 · arXiv · arxiv.orgPor que vale a pena remover exemplos duplicados.