Pular para o conteúdo
Skillpedia
Machine learning41 mil · #4896

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

https://github.com/wshobson/agents/blob/main/plugins/llm-finetuning/skills/dataset-curation/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/llm-finetuning/skills/dataset-curation/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-curation

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/llm-finetuning/skills/dataset-curation/SKILL.md -o SKILL.md
Conteú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 (-100 no 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 messages e deixe o treinador aplicar o template e mascará-lo (assistant_only_loss=True no 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas