Du kannst perfekte Hardware und perfekte Hyperparameter haben — ein schlechter Datensatz gibt dir trotzdem ein schlechtes Modell, jedes einzelne Mal. Datenqualitaet ist die Stunde mit dem groessten Hebel, die du in diesem gesamten Kurs verbringen wirst. Diese Lektion zeigt dir das Format, die Menge und die Reinigungsrituale, die ein scharfes Fine-Tuning von einer teuren Enttaeuschung trennen.
Das Format: Chat-Style JSONL
Modernes Instruction-Fine-Tuning nutzt ein Trainingsbeispiel pro Zeile, in JSON, das eine echte Konversation nachbildet. Das ist das Format, das sowohl MLX als auch Unsloth erwarten:
{"messages": [
{"role": "system", "content": "You are Ember, the support assistant for Nordlys Shop. Friendly and precise. Structure: short answer, explanation, next step. Never invent order details."},
{"role": "user", "content": "My order hasn't arrived and it's been 10 days. Order #4571."},
{"role": "assistant", "content": "I'm sorry about the wait — 10 days is longer than it should be.\n\nStandard delivery is 3–5 business days, so #4571 deserves a proper look. I can't see live courier data from here, so I won't guess where the package is.\n\nNext step: reply with your postal code and I'll open a trace request with the courier today. You'll get a tracking update within 24 hours."}
]}
Schau genau hin — dieses eine Beispiel lehrt vier Verhaltensweisen auf einmal: den entschuldigend-aber-gefassten Ton, die dreiteilige Struktur, die Weigerung, Tracking-Daten zu erfinden, und den konkreten naechsten Schritt. Jedes Beispiel ist eine Lektion; sorge dafuer, dass jedes etwas lehrt.
Konzept
Das Modell lernt, die assistant-Beitraege zu imitieren, im Kontext der system- und user-Beitraege. Dein Datensatz ist buchstaeblich eine Sammlung von "so sieht die perfekte Antwort aus"-Demonstrationen. Wenn eine Demonstration mittelmaessig ist, trainierst du Mittelmaessigkeit — mit grosser Praezision.Wie viele Beispiele brauchst du?
Die ehrliche Antwort ueberrascht Anfaenger in beide Richtungen:
| Zieltyp | Benoetigte Beispiele |
|---|---|
| Ton-/Stimm-Anpassung | 50–200 |
| Format-Disziplin (Struktur, JSON-Schema) | 100–500 |
| Aufgaben-Spezialisierung (Klassifikation, Extraktion) | 300–2.000 |
| Neuer Domaenen-Stil (juristisches, medizinisches Schreiben) | 1.000–10.000 |
Fuer Ember schlagen 150–300 exzellente Beispiele 3.000 zusammengekratzte mittelmaessige. LoRA-Fine-Tuning ist Sample-effizient; es ist ein Skalpell, kein Feuerwehrschlauch.
Ehrlicher Hinweis
"Mehr Daten sind immer besser" ist Pre-Training-Weisheit, nicht Fine-Tuning-Weisheit. Beim Fine-Tuning schlaegt Konsistenz das Volumen. Zehn Beispiele, die deinem Format widersprechen, bringen dem Modell bei, dass das Format optional ist. Hundert makellose Beispiele bringen ihm bei, dass das Format Gesetz ist.Woher Embers Beispiele kommen
Drei Quellen, nach Wert geordnet:
1. Echte Historie (am besten). Echte Kunden-E-Mails + die echten Antworten deines besten Mitarbeiters, aufgeraeumt. Die Realitaet hat Verteilung: seltsame Fragen, Tippfehler, Wut, Grenzfaelle.
2. Synthetische Generierung (gut, mit Sorgfalt). Nutze ein starkes Modell (Claude oder ein grosses lokales Modell), um Beispiele zu entwerfen: "Generiere 20 realistische Kundenfragen zu Retouren fuer einen Online-Shop, mit Antworten in genau dieser Stimme und Struktur: [3 echte Beispiele einfuegen]". Dann pruefe jedes einzelne von Hand. Du bist der Cheftrainer; das grosse Modell ist nur dein Assistent.
3. Handgeschriebene Grenzfaelle (essenzielle Wuerze). Schreib die gefaehrlichen selbst: der Kunde, der nach Bestellinfos fragt, die du nicht hast (lehre die Weigerung), die wuetende Nachricht (lehre Gelassenheit), die Frage auf Rumaenisch (lehre Sprachanpassung). Diese kommen in Massendaten selten vor, definieren aber den Charakter deines Modells, wenn es darauf ankommt.
Das Reinigungsritual
Vor dem Training laeuft jedes Beispiel durch diese Checkliste:
- Wuerdest du diese Antwort an einen echten Kunden schicken? Wenn nicht: reparieren oder loeschen.
- Folgt es exakt der Zielstruktur? Alle. Keine Ausnahmen — Ausnahmen sind Anti-Training.
- Ist der System-Prompt ueberall identisch? Gleicher Wortlaut, Byte fuer Byte. Du wirst denselben zur Inferenzzeit verwenden.
- Keine Geheimnisse oder persoenlichen Daten. Echte Kundennamen, E-Mails, Bestellnummern werden durch Fakes ersetzt. Die Gewichte werden sie auswendig lernen.
- Deduplizieren. Nahezu identische Beispiele uebergewichten eine Lektion und langweilen den Drachen.
Aufteilen vor dem Training: train / valid / test
Schneide deine Daten dreifach, bevor du trainierst, und lass das Modell die letzte Scheibe niemals sehen:
- train.jsonl (~80%) — wovon das Modell lernt
- valid.jsonl (~10%) — wird waehrend des Trainings beobachtet, um Overfitting zu erkennen (Lektion 6)
- test.jsonl (~10%) — wird erst ganz am Ende angefasst, um den fertigen Drachen ehrlich zu benoten
Beide Toolchains lesen dieses Layout direkt. MLX erwartet einen Ordner mit exakt diesen Dateinamen; mit Unsloth laedst du dieselben Dateien mit der datasets-Bibliothek.
Profi-Tipp
Mach die Test-Scheibe absichtlich schwer. Pack deine fiesesten Grenzfaelle dorthin: die Fangfragen, die wuetende mehrteilige Beschwerde, die Aufforderung, Daten zu erfinden. Ein Modell, das einen harten Test besteht, ist trainiert; ein Modell, das einen leichten Test besteht, hat Glueck gehabt.Probier es aus
Bau diese Woche dein v1-Dataset: 10 handgeschriebene Gold-Beispiele (deine absolut besten Antworten), dann 100–150 synthetische, generiert aus diesen Gold-Beispielen, dann das Reinigungsritual, dann der Dreifach-Split. Ziel:data/train.jsonl, data/valid.jsonl, data/test.jsonl. Halte die Anzahlen in einer Notiz fest — in Lektion 6 iterierst du darauf.