CommunitySchreiben & Editierengithub.com

Datensatz-Kuration

Rohe Daten für überwachtes Feintuning und Präferenztraining vorbereiten, formatieren und validieren – inklusive Chat-Templates, Sequence Packing, synthetischer Datengenerierung und Dataset-Card.

Was ist Datensatz-Kuration?

Dieses Skill unterstützt Entwickler und Agenten bei der systematischen Aufbereitung von Datensätzen für Supervised Fine-Tuning (SFT) und Präferenzoptimierung (DPO, ORPO, KTO, GRPO). Es übernimmt die Auswahl des passenden Formats basierend auf der Feintuning-Methode, die korrekte Anwendung von Chat-Templates mit Loss-Masking, sowie Sequence Packing zur effizienteren Nutzung der Rechenleistung. Ein besonderer Fokus liegt auf der Erkennung und Vermeidung typischer stiller Fehlerquellen, wie Template-Tokenizer-Mismatches oder fehlerhaftem Packing, die erst in der Evaluationsqualität sichtbar werden. Darüber hinaus enthält es klare Regeln für die Beimischung synthetischer Daten, um Qualitätskollaps zu verhindern („≥25% reale Daten“-Regel), und eine strukturierte Dataset-Card, die vor dem Training als obligatorisches Phase-2-Artefakt geprüft wird. Das Skill arbeitet plattformunabhängig mit JSONL-Formaten und ist mit Frameworks wie TRL und ChatML kompatibel.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/plugins/llm-finetuning/skills/dataset-curation

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Datensatz-Kuration?

Dieses Skill setzt voraus, dass finetuning-method-selection bereits ausgeführt wurde – der nächste Schritt ist die Datenaufbereitung, nicht die Methodenauswahl. Im Folgenden: Formatwahl nach Zielmethode, die Template/Packing-Mechanik hinter den häufigsten stillen Trainingsfehlern, Regeln für die Beimischung synthetischer Daten ohne Kollaps, sowie die Dataset-Card, die Phase 2 abschließt, bevor ein Training startet.

Eingabe: rohe Beispiele (Demonstrationen, Präferenzurteile oder Aufgaben-Prompts) plus eine Routing-Entscheidung von finetuning-method-selection. Ausgabeformat: ein formatierter, gepackter, validierter JSONL-Datensatz plus eine vollständige Dataset-Card – das Phase-2-Artefakt, das /finetune prüft, bevor das Training gestartet wird.

Formatwahl

MethodeFormZeilen
SFT, EinzelgesprächInstruct (instruction/response oder prompt/completion)~1.000+ Minimum
SFT, MehrfachgesprächConversation / ChatML messages-Liste~1.000+ Minimum
DPO / ORPOPräferenzpaar (prompt, chosen, rejected)Methodenabhängig, siehe preference-optimization
KTOUngepaart (prompt, completion, label)Methodenabhängig, siehe preference-optimization
GRPO / RLVRNur-Prompt (prompt + Verifier-Metadaten)Methodenabhängig, siehe grpo-rlvr-training
  • ~1.000+ Zeilen ist das empfohlene Minimum für SFT, nicht ein Ziel. Darunter können wenige qualitativ minderwertige oder doppelte Beispiele den Gradienten dominieren; darüber gilt Qualität vor Quantität – ein kleinerer, verifizierter und deduplizierter Satz schlägt einen größeren verrauschten.

  • Die ChatML-Form zur Orientierung; die anderen vier Formate sowie ein ShareGPT-Konversionshinweis befinden sich in references/formats-and-templates.md:

    {"messages": [
      {"role": "user", "content": "..."},
      {"role": "assistant", "content": "..."}
    ]}
    

Chat-Templates und Loss-Masking

Wende das Chat-Template des Zielmodells vor jeder Verkettung oder Packing an, niemals danach – das Packen von Rohtext und das anschließende Templaten des gepackten Blocks zerstört die Gesprächsgrenzen, sodass Rollenmarker an der falschen Stelle relativ zu jedem Beispiel landen.

  • Nur auf Assistentenantworten trainieren. Maskiere den Loss (-100 im Labels-Tensor) über System-/User-Turns und die Rollenmarker des Templates – nur die Tokens des Assistenten-Turns tragen zum Loss bei.

  • Template/Tokenizer-Inkonsistenzen gehören zu den häufigsten stillen Fehlermodi. Ein Modell, das mit einem Chat-Template trainiert, aber mit einem anderen ausgeliefert oder evaluiert wird, verschlechtert sich ohne Fehlermeldung. Stelle sicher, dass dasselbe Template in Training, Inferenz und Evaluation verwendet wird.

  • Behalte den Datensatz im messages-Format und lass den Trainer das Template anwenden und maskieren (assistant_only_loss=True im aktuellen TRL) – vorab in ein flaches Textfeld zu rendern zerstört die für das Masking benötigten Gesprächsgrenzen. Vollständiger Codeskizze: references/formats-and-templates.md. Führe vor dem Training einen Integrationstest durch – dekodiere nur ungemaskierte Positionen; erwarte nur Assistententext:

    keep = batch["labels"][0] != -100
    print(tokenizer.decode(batch["input_ids"][0][keep]))
    

Packing

Ohne Packing werden 40–70 % der Rechenleistung für Padding verschwendet – variablel lange Beispiele, die auf eine feste Sequenzlänge gebündelt werden, vergeuden die Lücke zwischen der Länge jedes Beispiels und dem Batch-Maximum. Packing verkettet mehrere Beispiele zu einer Sequenz bis zur maximalen Länge und reduziert diesen Abfall drastisch.

  • Packing ändert die Batch-Semantik. Eine gepackte Sequenz kann mehrere ursprüngliche Beispiele enthalten, daher verschieben sich „Schritte pro Epoche“ und jeder auf die Beispielanzahl bezogene LR-Plan, sobald Packing aktiviert ist – berechne die Plan-Meilensteine neu auf Basis der gepackten Sequenzanzahl.

  • PFLICHT: Dekodiere und inspiziere manuell 5–10 gepackte Sequenzen, bevor du auf einen vollständigen Lauf skalierst. Bestätige, dass die Beispielegrenzen an den erwarteten Stellen liegen, die Templatemarker pro Teilbeispiel intakt sind und der Loss-Mask innerhalb jeder gepackten Sequenz assistentenbezogen bleibt. Nicht optional – Packing-Fehler sind still (die Loss-Kurve sieht normal aus) und zeigen sich erst in der Evaluationsqualität, Stunden später:

    for seq in packed_dataset.select(range(10)):
        print(tokenizer.decode(seq["input_ids"]))
    

Regeln für synthetische Daten

  • Halte mindestens 25 % echte Daten als Kollaps-Schutz. Das Training auf einem wachsenden Anteil modellgenerierter Daten ohne echte Daten-Boden führt über aufeinanderfolgende Generationen zu messbarem Qualitätskollaps – 25 % echte Daten sind das Minimum, das die Linie hält. Allgemeine Domänen-Wiederholungszeilen zählen zu diesem Boden – „echt“ bedeutet „nicht für diese Aufgabe von diesem Schüler generiert“, nicht „von Menschen erstellt.“ Ein synthetischer Datensatz von Grund auf kann die ≥25%-Regel allein durch Wiederholung erfüllen (siehe das Replay-Mix-Konstruktionsrezept in references/synthetic-data.md); gebe in der Dataset-Card an, welche Zeilen als „echt“ zählen, anstatt den Boden strukturell unerreichbar zu machen.
  • Magpie und Rejection Sampling sind die Arbeitspferde. Magpie extrahiert Prompts aus dem eigenen Template-Prior des Modells; Rejection Sampling generiert mehrere Kandidaten pro Prompt und behält nur diejenigen, die einen Filter passieren. Beide schlagen naives einmaliges Generieren.
  • Gezielte, schülerbewusste Generierung schlägt statische Generierung um das 1,3- bis 2-fache an Stichprobeneffizienz – das Anvisieren der tatsächlichen Fehlermodi des Schülers erreicht ein Qualitätsniveau mit weniger gefilterten Beispielen.
  • Typische Akzeptanzraten nach Filterung liegen bei 10–30 %. Plane die Menge entsprechend – ein Ziel von 10.000 Zeilen bei 15 % Akzeptanz erfordert ~65.000+ Rohgenerationen.
  • Rangfolge der Generierungsmethoden, Filter-Trichter, Replay-Mix-Konstruktion und Destillationsmuster: references/synthetic-data.md.

Die Dataset-Card

Jeder Datensatz, der zum Training gelangt, erhält eine Card – das erforderliche Phase-2-Artefakt, das /finetune vor dem Start prüft. Die Card ist keine freie Dokumentation; sie MUSS die folgenden Felder enthalten:

  • Herkunft – woher jede Zeile stammt (echte Quelle(n), synthetische Methode(n) oder beides), nachvollziehbar auf trace-to-training-data-Ausgabe.
  • Anzahl – Gesamtzeilen und Zeilen pro Split (Train/Evaluation/Zurückgehalten), falls gesplittet.
  • Synthetisch/Echt-Verhältnis – das gemessene Verhältnis, überprüft gegen den ≥25%-Echt-Boden oben.
  • Deduplizierungsmethode – exakte Übereinstimmung, semantisch (Embedding-Schwellwert) oder beides; siehe den Filtertrichter in references/synthetic-data.md.
  • Verwendetes Template – die exakte Chat-Template-Zeichenfolge/Kennung, konsistent über Inferenz und Evaluation gehalten – dies verbindet einen eval-harness-first-Lauf mit dem Checkpoint.
  • Packing-Konfiguration – ob Packing verwendet wurde, maximale Sequenzlänge und Bestätigung, dass die manuelle Inspektion von 5–10 Sequenzen oben durchgeführt wurde.

Ein Datensatz, dem eines dieser sechs Felder fehlt, ist nicht bereit für /finetune – die Card ist ein Gate, keine Zusammenfassung, die nachträglich geschrieben wird.

Phase-2-Exit-Checkliste

Bevor an /finetune übergeben wird, bestätige:

  1. Format entspricht der Methode (Tabelle oben).
  2. Template vor der Verkettung angewendet.
  3. Loss nur auf Assistenten-Turns gemaskiert.
  4. 5–10 gepackte Sequenzen dekodiert und gelesen.
  5. ≥25 % echte Daten im endgültigen Mix.
  6. Dataset-Card vollständig – alle sechs Felder.

Referenzen

  • references/formats-and-templates.md – JSONL-Beispiele pro Format, aktuelles TRL-Masking-Code und ShareGPT-Konversionshinweis.
  • references/synthetic-data.md – Rangfolge der Generierungsmethoden, Filtertrichter, Replay-Mix-Konstruktion und Lehrer→Schüler-Destillationsmuster.

Verwandte Skills: finetuning-method-selection leitet hierher; lora-qlora-recipes, vision-sft und preference-optimization konsumieren die von diesem Skill erstellten Datensätze; trace-to-training-data ist die Herkunftsquelle für bewertete Trajektorien-Datensätze; eval-harness-first bewertet den resultierenden Checkpoint.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Verwandte Skills