dataset-curation
Faz seu agente preparar e organizar dados para treinar modelos de IA. É útil para transformar dados brutos em formato de treino ou criar dados de exemplo.
O que ela faz
Esta ferramenta organiza e prepara seus dados brutos para treinar modelos de IA. Ela garante que os dados estejam no formato correto, bem organizados e validados para que o treinamento seja bem-sucedido.
Quando usar
- ✓Quando você tem dados brutos e precisa transformá-los em um formato que a IA possa usar para aprender.
- ✓Ao misturar dados gerados por IA com dados reais para melhorar o treinamento.
- ✓Antes de iniciar o treinamento de um modelo de IA, para garantir que os dados estejam prontos.
Exemplo do que pedir para a IA
“Prepare meus dados de conversas para treinar um modelo de chat, usando o formato de mensagens.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta formata seus dados de acordo com o método de treinamento escolhido (como conversas ou pares de perguntas/respostas). Ela também organiza os dados para que a IA aprenda apenas as respostas importantes e evita desperdício de processamento.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill dataset-curationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/llm-finetuning/skills/dataset-curation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Curadoria de Dataset
Esta habilidade assume que finetuning-method-selection já foi direcionado para cá — o próximo passo é preparar os dados, não escolher um método. O que se segue: seleção de formato pelo método alvo, a mecânica de template/empacotamento por trás das falhas mais comuns de treinamento silencioso, regras para misturar dados sintéticos sem colapso, e o cartão do dataset que encerra a Fase 2 antes do início de uma execução.
Entrada: exemplos brutos (demonstrações, julgamentos de preferência ou prompts de tarefa) mais uma decisão de roteamento de finetuning-method-selection.
Formato de saída: um dataset JSONL formatado, empacotado e validado, mais um cartão de dataset completo — o artefato da Fase 2 que /finetune verifica antes de iniciar o treinamento.
Seleção de Formato
| Método | Formato | Linhas |
|---|---|---|
| SFT, turno único | Instrução (instruction/response ou prompt/completion) |
Mínimo de ~1.000+ |
| SFT, multi-turno | Conversa / Lista ChatML messages |
Mínimo de ~1.000+ |
| DPO / ORPO | Par de preferência (prompt, chosen, rejected) |
Dependente do método, veja preference-optimization |
| KTO | Não pareado (prompt, completion, label) |
Dependente do método, veja preference-optimization |
| GRPO / RLVR | Apenas prompt (prompt + metadados do verificador) |
Dependente do método, veja grpo-rlvr-training |
~1.000+ linhas é o mínimo recomendado para SFT, não um alvo. Abaixo disso, um punhado de exemplos de baixa qualidade ou duplicados pode dominar o gradiente; acima disso, qualidade acima de quantidade — um conjunto menor verificado e deduplicado supera um maior e ruidoso.
O formato ChatML, para orientação; os outros quatro formatos mais uma nota de conversão ShareGPT estão em
references/formats-and-templates.md:{"messages": [ {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ]}
Templates de Chat e Mascaramento de Perda
Aplique o template de chat do modelo alvo antes de qualquer concatenação ou empacotamento, nunca depois — empacotar texto bruto e aplicar o template no bloco empacotado depois corrompe os limites de turno, colocando os marcadores de papel no lugar errado em relação a cada exemplo.
Treine apenas em respostas do assistente. Mascare a perda (
-100no tensor de rótulos) sobre os turnos do sistema/usuário e os próprios marcadores de papel do template — apenas os tokens de conteúdo do turno do assistente contribuem para a perda.Incompatibilidades de template/tokenizador são um modo de falha silenciosa principal. Um modelo treinado com um template de chat e servido ou avaliado com um diferente degrada sem gerar erros. Verifique se a mesma string de template usada no treinamento é aplicada no momento da inferência e avaliação.
Mantenha o dataset no formato
messagese deixe o treinador aplicar o template e mascará-lo (assistant_only_loss=Trueno TRL atual) — renderizar previamente em um campo de texto plano destrói os limites de turno que o mascaramento necessita. Esboço completo do código:references/formats-and-templates.md. Verificação de sanidade antes do treinamento — decodifique apenas posições não mascaradas; espere apenas texto do assistente:keep = batch["labels"][0] != -100 print(tokenizer.decode(batch["input_ids"][0][keep]))
Empacotamento
Sem empacotamento, 40–70% do processamento é gasto em preenchimento — exemplos de comprimento variável em lotes com um comprimento de sequência fixo desperdiçam o espaço entre o comprimento de cada exemplo e o máximo do lote. O empacotamento concatena múltiplos exemplos em uma única sequência até o comprimento máximo, cortando a maior parte desse desperdício.
O empacotamento muda a semântica do lote. Uma sequência empacotada pode conter vários exemplos originais, então "passos por época" e qualquer agendamento de LR (taxa de aprendizado) vinculado à contagem de exemplos mudam quando o empacotamento é ativado — recalcule os marcos do agendamento contra a contagem de sequências empacotadas.
OBRIGATÓRIO: decodifique e inspecione manualmente 5–10 sequências empacotadas antes de escalar para uma execução completa. Confirme se os limites dos exemplos caem onde esperado, os marcadores de template estão intactos por sub-exemplo, e a máscara de perda ainda é apenas do assistente dentro de cada sequência empacotada. Não é opcional — bugs de empacotamento são silenciosos (a curva de perda parece normal) e só surgem na qualidade da avaliação, horas depois:
for seq in packed_dataset.select(range(10)): print(tokenizer.decode(seq["input_ids"]))
Regras de Dados Sintéticos
- Mantenha ≥25% de dados reais como guarda contra colapso. Treinar com uma porcentagem crescente de dados gerados pelo modelo sem um piso de dados reais leva a um colapso mensurável na qualidade ao longo de gerações sucessivas — 25% de dados reais é o mínimo que mantém a linha. Linhas de repetição de domínio geral contam para este piso — "real" significa "não gerado para esta tarefa a partir desta
…
Perguntas frequentes
O que é 'packing' (empacotamento)?
É uma técnica que agrupa vários exemplos de treinamento em uma única sequência para usar o poder de processamento de forma mais eficiente, reduzindo o desperdício com espaços vazios.
Por que preciso manter dados reais se estiver usando dados gerados por IA?
Manter pelo menos 25% de dados reais ajuda a evitar que o modelo de IA perca qualidade ao longo do tempo, garantindo que ele continue aprendendo de fontes confiáveis.
O que é um 'dataset card'?
É um documento que descreve detalhadamente a origem, quantidade e características dos dados usados para treinar a IA, garantindo transparência e rastreabilidade.
Detalhes
Descrição original do autor
Prepare, format, and validate datasets for supervised fine-tuning and preference training. Use when converting raw data into training format, applying chat templates, configuring sequence packing, generating synthetic training data, or writing a dataset card before a run.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4896
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
pytorch-patterns
Ajuda seu agente a usar o PyTorch para criar modelos de aprendizado de máquina. Ele aplica as melhores práticas para treinar modelos de forma eficiente e garantir que os resultados sejam consistentes.
affaan-m/ECC
evm-token-decimals
Ajuda seu agente a evitar erros com números decimais em diferentes redes blockchain. Garante que os valores de tokens sejam precisos em transações e cálculos.
affaan-m/ECC
knowledge-agent
Cria e consulta bases de conhecimento com inteligência artificial. Permite fazer perguntas sobre trabalhos passados ou compilar conhecimento sobre um tema.
thedotmack/claude-mem