Um treino falha no primeiro registro malformado, e normalmente encontra isso depois que você já foi para casa. As checagens que valem a pena antes são pouco vistosas e rápidas: cada registro um objeto com um array de mensagens, cada mensagem com papel e conteúdo, a conversa começando onde deve e — a que passa despercebida — terminando numa mensagem do assistente, porque esse é o turno que o registro ensina. Duas mensagens de usuário seguidas também são apontadas, já que costumam significar que dois registros se fundiram. Ao lado dos erros, a distribuição de tamanhos mostra a cauda que não vai caber antes de ela virar o motivo de o treino parar.
Recursos
Cada achado apontado na linha de onde veio
Confere se cada registro analisa, e segue além dos que não
Papéis conferidos contra o conjunto conhecido, os incomuns apontados
Pega um registro que não termina numa mensagem do assistente
Pega dois turnos seguidos do mesmo lado
Pega conteúdo vazio, que valida e não ensina nada
Distribuição de tamanhos: mediana, percentil 90 e maior
Chave de mensagens configurável para formatos que a chamam de outro jeito
Como usar Validador de datasets
Solte o conjunto .jsonl ou cole
Ajuste a chave de mensagens se seu formato for diferente
Corrija os erros, depois olhe os avisos
Compare a distribuição de tamanhos com seu limite de contexto
Exemplo
Entrada
line 3: two user messages in a row
Saída
Records: 3 · Errors: 0 · Warnings: 1
Normalmente sinal de que dois registros foram unidos por acidente.
Erros comuns e solução de problemas
Um registro não termina com mensagem do assistente. — Esse registro não tem o que ensinar: o turno final do assistente é o alvo. Por isso é um erro e não um aviso.
Não encontra o array de mensagens. — Ajuste a chave de mensagens para o nome que seu formato usa. Conversation e turns são ambos comuns.
Duas mensagens de usuário seguidas são apontadas. — Costumam ser dois registros concatenados por engano. Se o turno duplicado for deliberado, é um aviso e não um erro.
Alguns registros são enormes. — Os percentis mostram a cauda. Tudo além do limite de contexto vai falhar, e é muito mais barato descobrir aqui do que no meio de um treino.
Perguntas frequentes
Que formato ele espera?
O formato de chat: um objeto JSON por linha, cada um com um array de mensagens de pares papel e conteúdo. O nome da chave é configurável, porque as convenções variam, mas o formato interno é o mesmo em todo lugar.
Por que um registro precisa terminar numa mensagem do assistente?
Porque esse turno é o que o registro ensina. Uma conversa que termina numa mensagem de usuário tem uma pergunta e nenhuma resposta, então não há nada a aprender.
As contagens de tokens são exatas?
Não, são estimativas por caracteres. Servem para detectar o caso extremo que não vai caber, o que não exige precisão: a contagem exata vem do tokenizador do provedor.
Um resultado limpo significa que os dados estão bons?
Significa que o arquivo está bem formado. Se os exemplos ensinam a coisa certa é uma pergunta sobre seus dados, e nenhum validador responde.
Meu conjunto de dados é enviado?
Não. Dados de treino costumam ser o arquivo mais sensível de uma equipe, e tudo isso roda no navegador.