English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

Gast
1 / ?

Zwei Probleme an den beiden Enden des Trainings

Problem in den ersten Schritten: Frische Gewichte vertragen keine großen Schritte

Bei Schritt 0 sind alle Gewichte kleine Zufallszahlen aus einer nahe-null-Verteilung. Aktivierungen bleiben nahe null. Gradienten enthalten kaum Informationen über eine endgültige Lösung. Wird auf diese Gradienten die Spitzen-Lernrate angewendet, springt das Modell weit von der Initialisierung weg – in Richtungen, die keine sinnvolle Struktur kodieren.


ANDREA-120M v1 machte genau diesen Fehler. Kein Warmup. Schritt 1 verwendete lr = 0.0003 auf frisch initialisierten Gewichten. Ergebnis: das Modell landete innerhalb weniger hundert Schritte in einem schlechten Parameter-Becken. Die Verlustwerte sahen vernünftig aus; die Samples produzierten ab Schritt 80K Wiederholungsschleifen und erholten sich nie.


Spätes Problem: Große Schritte können eine Lösung nicht verfeinern

Bis Schritt 100K hat ein Modell grobe Strukturen gelernt. Die Gradienten tragen nun feinkörnige Signale: welche Token-Gewichte eine kleine Anpassung brauchen, welcher Attention-Head leicht neu ausbalanciert werden muss. Eine maximale Lernrate in dieser Phase überschreitet jede feine Anpassung, oszilliert um ein Optimum, ohne sich zu stabilisieren.


Zwei Probleme, entgegengesetzte Enden des Trainings. Ein Schedule, zwei Bereiche: sanft hochfahren, sanft herunterfahren.

Lineares Warmup: Erste 2000 Schritte

Die Formel

ANDREA-120M v2 verwendet lineares Warmup über 2000 Schritte:


lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)


wobei t die Schritt-Nummer (0-indiziert) ist, warmup_steps = 2000 und lr_scheduled(t) die Vorgabe des Kosinus-Schedules ohne Warmup darstellt.


Formel lesen:


- Bei t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Winziger erster Schritt.

- Bei t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Halbe Stärke.

- Bei t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Volle Stärke.

- Bei t > 2000: Der Clamp hält den Multiplikator bei 1, das Warmup hat keinen Einfluss mehr, nur noch der Cosinus-Abfall wirkt.


Der lineare Anstieg von Null gibt dem Modell 2000 Schritte, um grobe Repräsentationen zu bilden, bevor AdamW und Gradient Clipping mit voller Stärke arbeiten. Bis Schritt 2000 haben sich die Gewichte so weit verschoben, dass die Spitzen-lr sie nicht mehr in ein schlechtes Minimum drängt.

LR-Berechnung während des Warmups

ANDREA-120M v2 verwendet `lr_scheduled = 0.0003` (Peak) und `warmup_steps = 2000`. Ignoriere den Cosinus-Abfall während des Warmups (nehme an, `lr_scheduled` bleibt konstant). Berechne die tatsächliche Lernrate bei: (a) Schritt 0, (b) Schritt 500, (c) Schritt 2000, (d) Schritt 5000. Zeige deine Rechnung.

Kosinus-Abklingung nach Warmup

Die Kurve

Nachdem das Warmup bei Schritt 2000 endet, folgt die Lernrate einer Kosinuskurve vom Höchstwert bis auf null über die verbleibenden Schritte:


lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))


where progress = (t - warmup_steps) / (total_steps - warmup_steps). Bei progress = 0 (direkt nach dem Warmup) gilt cos(0) = 1, lr = Peak. Bei progress = 1 (letzter Schritt) gilt cos(pi) = -1, lr = lr_min (typischerweise 0 oder ein sehr kleiner Wert).


Warum Kosinus und nicht linear oder exponentiell?

Der Kosinus-Decay beginnt langsam (die Kurve ist nahe dem Peak fast flach), beschleunigt sich in der Mitte und verlangsamt sich dann wieder gegen Null. Drei Vorteile:


1. Plateau nahe dem Peak. Die ersten Schritte nach dem Warmup erhalten noch fast die volle lr, sodass das Modell eine lange Phase mit hoher Lernrate nutzen kann, um Repräsentationen aufzubauen.

2. Sanfter Übergang in der Mitte. Keine abrupten Sprünge, die AdamW ausgleichen muss.

3. Plateau nahe Null. In den letzten Schritten wird lr sehr klein, um Feinpolierungen vorzunehmen – ähnlich wie beim Simulated Annealing.


ANDREA-120M wird insgesamt für 200K Schritte trainiert; 198K davon liegen im Cosine-Decay-Bereich nach dem 2000-Schritt-Warmup.


LR Warmup & Cosine Decay

ANDREA-12M's Warm Restart bei Schritt 25K

Das Plateau

ANDREA-12M wurde 60K Schritte mit Cosine Decay von lr = 0.0004 Peak trainiert. Um Schritt 22K plateauierte der Loss bei EMA ~2.4. Cosine Decay hatte lr auf ~0.00015 gesenkt. Der Bandit lieferte weiterhin diverse Daten; das Modell hörte auf, sich zu verbessern.


Diagnose: lr war zu stark abgeklungen, sodass das Modell nicht mehr aus seinem aktuellen Becken entkommen konnte. Hermes-Daten standen kurz davor, in den Lehrplan aufgenommen zu werden (Schritt 25K) und brachten 590K neue Gespräche mit sich. Das Modell benötigte Energie, um diesen Datenschock zu absorbieren.


Der Neustart

Bei Schritt 25K führte der Zeitplan einen Warm-Restart durch: lr von 0.00015 (abgeklungen) wieder auf 0.0004 (ursprünglicher Peak) anheben, danach die Kosinus-Abklingung über die verbleibenden Schritte fortsetzen.


Loshchilov & Hutter (2017) nannten diese Technik „SGDR“ (Stochastic Gradient Descent with Warm Restarts). Die Intuition: eine hohe lr verleiht genügend kinetische Energie, um ein lokales Becken zu verlassen und benachbarte Becken zu erkunden; die anschließende Kosinus-Abklingung führt zu einem besseren Becken.


Outcome. Loss EMA sank von 2.40 auf 2.10 in den nächsten 10K Schritten nach dem Restart. Das Modell wurde bei Schritt 43.6K mit einem SMMA-Loss von 2.0 ausgeliefert und zeigte eine kohärente Q&A-Turn-Struktur.


ANDREA-120M v2 entschied sich GEGEN Warm-Restarts: bei 200K verfügbaren Schritten und einer deutlich größeren Parameteranzahl führte ein gleichmäßiger, monotoner Decay zu einer stabileren Konvergenz. Restarts funktionieren am besten, wenn das Training kurz ist und ein Plateau mit einem bekannten Datenshift zusammenfällt.

Diagnose des Fehlers von v1

ANDREA-120M v1 verwendete `lr = 0.0003` ab Schritt 1, ohne Warmup. Bis Schritt 80K erzeugten die Samples `region region region region`. Erklären Sie mechanistisch: gehen Sie Schritt für Schritt durch, was mit einer frisch initialisierten Gewichtsmatrix in den Schritten 1 bis 100 unter `lr = 0.0003` im Vergleich zu einem 2000-Schritt-Warmup passiert. Warum führt der Pfad ohne Warmup in ein schlechtes Basin?

Zeitplan-Auswahl in der Praxis

Wenn du ein 120M-Modell auf einem verrauschten Datensatz für INSGESAMT nur 50K Schritte trainieren würdest, würdest du dann eine längere oder kürzere Warmup-Phase als die 2000 Schritte von ANDREA-120M v2 verwenden? Begründe mit einem mechanistischen Argument.

Angrenzende Aktivitäten

Drei Geschwister verlinken zum LR-Schedule:


- Aktivität 10: AdamW. Das Warmup gibt der Bias-Korrektur von AdamW Zeit, sich zu stabilisieren. Ohne Warmup multipliziert die 10-fache Verstärkung in Schritt 1 jegliches Rauschen, das die Gradienten mit sich führen; mit Warmup trifft der Multiplikator auf echtes Signal.

- Aktivität 12: Gradient Clipping. Das Clipping begrenzt die L2-Norm des Gradienten auf 1.0 VOR AdamW. Warmup dämpft lr; Clipping dämpft g. Zusammen halten sie die frühen Schritte sicher, selbst bei schockanfälligen Curricula.

- Aktivität 22: Checkpointing. Ein Warm-Restart erfordert das Laden des Optimizer-States (m, v, Schrittzähler) aus einem Checkpoint, gefolgt von einer Mutation des Schedules während des Laufs. ANDREA-12M's Restart bei Schritt 25K demonstriert dies; es brauchte zwei Versuche, um die State-Loading-Logik korrekt zu implementieren.


Schedule, Optimizer und Clipping bilden ein Stabilitäts-Dreieck. Lässt man eine Ecke weg, wiederholt ANDREA seinen v1-Zusammenbruch.