Loss-Kurven interpretieren
Das Herzstück des Trainingsmonitorings
Die Loss-Kurve ist dein wichtigstes Diagnosewerkzeug. Ein geübtes Auge erkennt in Sekunden, ob das Training gesund läuft, Probleme entstehen oder sofortiger Handlungsbedarf besteht.
Anatomie einer Loss-Kurve
X-Achse: Zeit
Trainingsschritte (Steps) oder Epochen. Je weiter rechts, desto länger wurde trainiert. Steps geben mehr Granularität.
Y-Achse: Loss-Wert
Der Fehler des Modells. Niedriger = besser. Ziel: möglichst schnell auf ein niedriges, stabiles Niveau sinken.
Training Loss (lila)
Fehler auf Trainingsdaten. Berechnet nach jedem Batch. Oft etwas rauschig durch Stochastizität.
Validation Loss (gestrichelt)
Fehler auf Validation-Daten. Glatter als Training Loss. Der entscheidende Indikator für echte Performance.
Die 4 grundlegenden Loss-Kurven-Muster
Gutes Training: Train- und Val-Loss sinken gemeinsam
Gutes Training: Beide Kurven sinken gleichmäßig und konvergieren auf einen niedrigen Wert. Kleiner, stabiler Gap zwischen Training und Validation Loss. Am Ende flacht es ab (Plateau).
Overfitting: Val-Loss steigt wieder an
Overfitting: Training Loss sinkt weiter, Validation Loss beginnt zu steigen. Der Divergenzpunkt markiert den optimalen Trainingszeitpunkt (Early Stopping!)
Underfitting: beide Kurven stagnieren auf hohem Niveau
Underfitting: Beide Kurven stagnieren auf hohem Niveau. Das Modell lernt die Muster nicht. Ursachen: LR zu niedrig, zu wenige Epochen, falsches Modell.
Zu hohe Learning Rate: Loss springt unkontrolliert
Instabiles Training (LR zu hoch): Starke Oszillation, kein Konvergieren. Der Optimizer springt immer über das Minimum hinaus. Lösung: LR reduzieren.
Richtwerte für "gute" Loss-Werte
Hinweis: Absolute Werte hängen stark von Task und Modell ab. Trend und Vergleich sind wichtiger als absolute Zahlen.
Loss-Kurven in FrameTrain lesen
Im FrameTrain Monitoring-Panel siehst du Training Loss und Validation Loss in Echtzeit. Das Dashboard zeigt sowohl Steps als auch Epochen auf der X-Achse. Aktionen basierend auf dem Validation Loss — nicht dem Training Loss!
Gutes Training erkennen
Die Zeichen eines erfolgreichen, stabilen Trainings
Das Ideal-Szenario
Gutes Training: Train- und Val-Loss sinken gemeinsam
Checkliste: 6 Zeichen von gutem Training
Beide Losses sinken in den ersten Epochen deutlich
Zeigt aktives Lernen. Wenn Losses ab Epoche 1 kaum sinken → Underfitting, LR zu niedrig oder Datenproblem.
Training Loss ≈ Validation Loss (kleiner, stabiler Gap)
Typischerweise ist Val Loss 5–15% höher. Riesiger Gap = Overfitting. Kein Gap = Underfitting oder identische Daten (Data Leakage!).
Kurven werden am Ende flacher (Plateau)
Das Modell nähert sich seinem Maximum auf diesem Dataset. Normal und gewünscht.
Keine großen Sprünge (Spikes) im Loss
Gelegentlich kleine Spikes sind normal. Große, wiederkehrende Spikes = LR zu hoch oder fehlerhafte Daten.
Validation Accuracy steigt monoton oder nahezu so
Kleine Schwankungen sind normal. Langfristiger Aufwärtstrend zeigt echte Verbesserung.
Validation Loss erreicht Minimum und stabilisiert sich
Das ist der optimale Checkpoint. Hier ist das ideale Modell gespeichert.
Training-Phasen verstehen
Phase 1: Schnelles Lernen (Epochen 1–3)
Loss fällt steil. Das Modell lernt die offensichtlichsten Muster. Validation Loss folgt eng dem Training Loss.
Phase 2: Verfeinerung (Epochen 4–8)
Loss sinkt langsamer. Subtilere Muster werden gelernt. Der Generalisierungs-Gap kann sich leicht öffnen.
Phase 3: Konvergenz / Plateau (ab Epoche 8+)
Kaum noch Verbesserung. Training Loss minimal unter Validation Loss. Guter Zeitpunkt zum Stoppen.
Phase 4 (falls zu lange): Overfitting
Training Loss sinkt weiter, Validation Loss steigt. Ab hier: besten Checkpoint laden.
Wann ist das Training optimal beendet?
Validation Loss flacht ab, schwankt nur minimal (±0.001)
→ Noch 2–3 Epochen Geduld, dann stoppen. Besten Checkpoint laden.
Validation Loss steigt zum ersten Mal an
→ Das war die beste Epoche. Best Checkpoint laden und stoppen.
Validation Loss steigt für 3 Epochen in Folge
→ Early Stopping ausgelöst. Best Checkpoint ist optimal.
Training Loss << Validation Loss (großer Gap)
→ Overfitting. Entweder zurück zum besten Checkpoint oder Training abbrechen.
Overfitting erkennen
Wenn das Modell die Trainingsdaten auswendig lernt
Overfitting ist das häufigste Problem beim Training tiefer Netze. Das Modell lernt die Trainingsdaten so gut, dass es auch Rauschen und zufällige Artefakte memoriert. Auf neuen, ungesehenen Daten performt es dann deutlich schlechter.
Overfitting: Val-Loss steigt wieder an
Klare Erkennungszeichen
Training Loss sinkt kontinuierlich, Validation Loss steigt
KritischGroßer, wachsender Abstand zwischen Training und Validation Loss
WarnungTraining Accuracy nahe 100%, Validation Accuracy deutlich niedriger
KritischModell performt auf Trainingsdaten sehr gut, auf neuen Daten schlecht
KritischValidation Loss macht nach anfänglichem Sinken eine U-Kurve
WarnungWarum passiert Overfitting? (Ursachen)
Zu wenig Trainingsdaten
Wenig Beispiele = Modell lernt sie auswendig statt Muster. Lösung: Mehr Daten sammeln oder Augmentation.
Zu viele Trainings-Epochen
Langes Training schleift Trainingsdaten immer tiefer ein. Early Stopping wäre die Lösung gewesen.
Modell zu komplex für die Datenmenge
Zu viele Parameter für wenig Daten = zu viel Kapazität zum Memorieren. Kleineres Modell oder LoRA mit kleinem Rank.
Kein Dropout / zu wenig Regularisierung
Ohne Regularisierung: Modell lernt freier. Mehr Dropout oder Weight Decay einsetzen.
Zu homogenes Dataset
Dataset enthält Duplikate oder sehr ähnliche Beispiele. Deduplizierung hilft.
Datenleck (Data Leakage)
Test-Daten im Training: Modell hat "gespickt". Metriken scheinbar gut, echte Performance schlecht.
Der Bias-Varianz-Tradeoff
Overfitting und Underfitting sind die zwei Seiten des klassischen Bias-Varianz-Tradeoffs:
Underfitting
Hoher Bias
Niedrige Varianz
Modell zu einfach
Ideal
Bias ↔ Varianz
Ausgewogen
Sweet Spot
Overfitting
Niedriger Bias
Hohe Varianz
Modell zu komplex
Leichtes Overfitting ist normal
Underfitting erkennen
Wenn das Modell die Muster nicht lernt
Underfitting bedeutet, dass das Modell die zugrundeliegenden Muster in den Daten nicht erfasst. Es performt sowohl auf Trainings- als auch auf Validation-Daten schlecht. Es ist das Gegenteil von Overfitting.
Underfitting: beide Kurven stagnieren auf hohem Niveau
Erkennungszeichen
Hoher Training Loss, der sich nach Epochen kaum verändert
Das schlimmste Zeichen – das Modell lernt praktisch nichts.
Hoher Validation Loss korreliert mit Training Loss (beide hoch)
Beide Kurven liegen nahe beieinander, aber auf hohem Niveau.
Niedrige Training Accuracy (< 60–70% auf einfachen Tasks)
Kann noch nicht mal die eigenen Trainingsdaten klassifizieren.
Loss-Kurve flacht sehr früh ab ohne tief zu sinken
Stagnation nach wenigen Steps – kein weiterer Lernfortschritt.
Val Loss und Train Loss fast identisch, aber beide hoch
Kein Overfitting, aber auch kein Lernen – Modell ist zu simpel.
Ursachen und direkte Fixes
Learning Rate zu niedrig
Erkennen: Loss sinkt <0.01 pro Epoche
→ Fix: LR um Faktor 3–10 erhöhen. Starte mit 1e-5, probiere 3e-5, dann 1e-4.
Zu wenige Epochen
Erkennen: Training Loss sinkt noch bei letzter Epoche
→ Fix: Epochen verdoppeln. Loss-Kurve zeigt, ob Potential noch vorhanden.
Modell zu klein / zu simpel
Erkennen: Auch lange Training verbessert nicht
→ Fix: Größeres Basismodell wählen: BERT → RoBERTa → DeBERTa oder 7B Modell statt 1B.
Falscher Optimizer
Erkennen: SGD ohne Momentum bei transformers
→ Fix: AdamW statt SGD. AdamW ist Standard für alle Transformer-Trainings.
Zu hoher Dropout
Erkennen: Train und Val Loss beide hoch und ähnlich
→ Fix: Dropout auf 0.0 setzen zum Testen, dann schrittweise erhöhen.
Falsche Daten-Formatierung
Erkennen: Loss ist von Anfang an konstant (kein Sinken)
→ Fix: Dataset-Format genau prüfen: Stimmt Tokenisierung? Stimmen Labels (0-indiziert vs. 1-indiziert)?
Gradient Vanishing bei sehr tiefen Netzen
Erkennen: Gradienten nahe 0 in frühen Layers
→ Fix: Layer Normalization prüfen, Residual Connections sicherstellen, Initialisierung.
Underfitting schnell diagnostizieren
Instabiles Training
Loss-Spikes, Explosionen und Chaos diagnostizieren
Instabiles Training äußert sich durch starke Schwankungen, plötzliche Sprünge oder den kompletten Absturz des Loss. Diese Muster haben klare Ursachen und lösbare Fixes.
Zu hohe Learning Rate: Loss springt unkontrolliert
Instabilitätsmuster und ihre Bedeutung
Starke Oszillation: Loss springt hoch und runter jede Epoche
Learning Rate zu hochDer Optimizer "springt" über das Minimum hinaus und schaukelt sich auf. Kein Konvergieren möglich.
→ LR um Faktor 5–10 reduzieren. LR-Warmup hinzufügen.
Einzelner großer Spike → Training erholt sich
Schlechtes Batch / Ausreißer in DatenEin fehlerhaftes oder extrem schwieriges Batch hat einen temporären Spike verursacht. Gradient Clipping hilft.
→ Gradient Clipping (max_grad_norm=1.0) aktivieren. Datensatz auf Ausreißer prüfen.
Loss explodiert und wird NaN oder Inf
Gradient ExplosionGradienten wachsen exponentiell, bis numerische Werte instabil werden. Training bricht ab.
→ Gradient Clipping auf 1.0. LR drastisch reduzieren. Mixed Precision deaktivieren oder auf fp32 wechseln.
Loss steigt plötzlich nach vielen guten Epochen
LR Spike durch falschen Scheduler / zu langer WarmupEin falscher LR-Scheduler kann die LR plötzlich erhöhen. Oder: ein sehr ungewöhnlicher Batch nach langer Stabilität.
→ Scheduler-Konfiguration prüfen. Best Checkpoint laden. Gradient Clipping.
Regelmäßige, sanfte Wellen im Loss
Cosine Annealing mit Restarts (SGDR)Kein Problem! Cyclische LR-Scheduler erzeugen bewusst zyklische Loss-Muster. Jeder Zyklus konvergiert neu.
→ Nur wenn unerwünscht: anderen Scheduler wählen. Sonst: geplantes Verhalten.
Gradient Clipping – die wichtigste Schutzmaßnahme
Gradient Clipping begrenzt die maximale Norm der Gradienten. Falls Gradienten zu groß werden, werden sie proportional skaliert. Standard-Wert: max_grad_norm = 1.0
Ohne Gradient Clipping: Gradient = [0.01, 0.02, ..., 500.0] ← Explosion! → Weight Update riesig → Training bricht ab (NaN) Mit Gradient Clipping (max_norm = 1.0): Gradient-Norm = sqrt(sum(g²)) = 500.01 Wenn norm > 1.0: gradient = gradient × (1.0 / norm) → Gradient wird skaliert, Richtung bleibt erhalten → sicherer Update, Training bleibt stabil In FrameTrain: standardmäßig auf 1.0 gesetzt.
FrameTrain schützt automatisch