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

un

Gast
1 / ?

Einfaches SGD kann ANDREA nicht trainieren

Stochastischer Gradientenabstieg, der Ausgangspunkt

Backprop berechnet einen Gradienten g für jeden Parameter. Einfacher stochastischer Gradientenabstieg (SGD) aktualisiert jeden Parameter mit p -= lr * g. Eine Lernrate, eine Richtung pro Schritt, kein Gedächtnis vergangener Gradienten.


Einfaches SGD versagt bei Skalierung aus zwei Gründen:


1. Gradienten haben wild unterschiedliche Größen über Parameter hinweg. Ein Embedding für ein seltenes Token erhält die meiste Zeit einen winzigen Gradienten; eine Layernorm-Skala erhält einen großen. Eine Lernrate passt nicht zu beiden.

2. Gradienten oszillieren. Ein verrauschter Mini-Batch aus einem 16-Quellen-Korpus schiebt einen Parameter nach links, dann nach rechts, dann wieder nach links. Einfaches SGD verschwendet Schritte, indem es mit sich selbst kämpft.


Adam (Kingma & Ba, 2015) behebt beides mit zwei gleitenden Durchschnitten pro Parameter.

Erster Moment & Zweiter Moment

m: Geglättete Richtung

Der erste Moment m mittelt kürzliche Gradienten exponentiell:


m = beta1 m + (1 - beta1) g


mit beta1 = 0.9. Nach mehreren Schritten trägt m eine geglättete Richtung; ein schlechter Batch verschiebt es kaum.


v: Geglättete Magnitude

Das zweite Moment v mittelt kürzliche quadrierten Gradienten:


v = beta2 v + (1 - beta2) g^2


mit beta2 = 0.999. v verfolgt, wie groß der Gradient jedes Parameters typischerweise wird. Parameter mit großen Gradienten erhalten ein großes v; Parameter mit winzigen Gradienten erhalten ein kleines v.


Parameterweise adaptive Lernrate

Das Teilen der geglätteten Richtung durch die Quadratwurzel der geglätteten Magnitude skaliert jeden Parameter auf eine vergleichbare Basis:


adam_step = m / sqrt(v + eps)


Tiny-gradient embeddings get scaled up; large-gradient layernorms get scaled down. One global lr now suits every parameter.

Die Momente lesen

Zwei Parameter erhalten denselben Gradienten `g = 0.1` in diesem Schritt. Parameter A hat `v = 0.0001` über viele Schritte angesammelt; Parameter B hat `v = 1.0`. Unter Verwendung von `adam_step = g / sqrt(v + eps)`, welcher Parameter erhält die größere Aktualisierung in diesem Schritt, & warum will Adam es so?

Warum frühe Schritte Bias-Korrektur benötigen

Cold-Start Bias

m & v starten bei null. Nach Schritt 1 gilt m = 0.1 g_1 & v = 0.001 g_1^2. Beide Schätzungen unterschießen einen langfristigen Durchschnitt dramatisch. Ohne Korrektur startet der Optimizer vorsichtig & beschleunigt langsam, verschwendet wertvolle frühe Schritte, in denen Repräsentationen entstehen.


Die Korrektur

Adam skaliert jede Schätzung mit 1 / (1 - beta^t), wobei t die Schrittzahl ist:


m_hat = m / (1 - beta1^t)


v_hat = v / (1 - beta2^t)


Im Schritt 1 mit beta1 = 0.9 ist der Divisor (1 - 0.9) = 0.1, also m_hat = m / 0.1 = 10 * m. Die bias-korrigierte Schätzung stimmt mit dem überein, was der Langzeitdurchschnitt vorhersagt. Mit wachsendem t nähert sich beta^t 0 an, die Korrektur nähert sich 1 an, & korrigierte & unkorregierte Werte konvergieren.

Entkoppelter Weight Decay (die AdamW-Innovation)

L2-Regularisierung vs. Weight Decay

Klassische L2-Regularisierung fügt einen Penalty zum Loss hinzu: L_total = L_data + (lambda / 2) sum(p^2). Backprop sieht diesen Penalty als Teil des Gradienten: g_total = g_data + lambda p. Der L2-Term fließt durch Adams m- & v-Updates und wird geglättet & skaliert durch per-parameter Größen.


Loshchilov & Hutter (2019) bewiesen, dass das Glätten eines Regularisierers durch Adam beide korrumpiert. Adams adaptive Skalierung verkleinert den Weight Decay bei Parametern mit großen Gradienten (wo Decay am härtesten gegen Overfitting kämpfen sollte) & verstärkt ihn bei solchen mit kleinen Gradienten.


AdamW: Decay direkt anwenden

AdamW entkoppelt den Weight Decay vom Gradienten. Decay wird direkt auf jeden Parameter während der Parameteraktualisierung angewendet, ohne m oder v zu berühren:


p -= lr (m_hat / (sqrt(v_hat) + eps) + weight_decay p)


Zwei Terme treiben jetzt jeden Schritt: [BLOCK_TYPE CONTENT bias_decay/decoupled_decay]


1. Adam-Term: m_hat / (sqrt(v_hat) + eps) skaliert die Gradientenrichtung durch die pro-Parameter-Magnitudengeschichte.

2. Abbau-Term: weight_decay * p verkleinert jeden Parameter uniform gegen Null, ohne die Glättung von Adam zu durchlaufen.


ANDREA-120M v2 setzt weight_decay = 0.01. Bei jedem Schritt schrumpft jeder Parameter um 1 % gegen Null, zusätzlich zu dem, was der Adam-Term bewirkt.


AdamW Optimizer Step

Warum die Entkopplung wichtig ist

ANDREA-120M v1 verwendete vanilla Adam (kein Weight Decay) & kollabierte in Wiederholungsschleifen bei Schritt 110K. v2 verwendete AdamW mit `weight_decay = 0.01` & produzierte kohärenten mehrabsätzigen Text. Erklären Sie (a) welchen spezifischen Term AdamW hinzufügt, den vanilla Adam fehlt, & (b) warum das Platzieren dieses Terms INNEN im Gradienten (klassische L2) schlechter wäre als die decoupled Platzierung von AdamW AUSSEN.

Empirische Evidenz

v1 Kollaps (kein Weight Decay)

ANDREA-120M v1 trainiert für 165K Schritte mit vanilla Adam. Beispielaussgaben:


- Schritt 80K: region region region region region region region

- Schritt 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '

- Schritt 140K: games, games, games, games, games, games, games

- Schritt 165K: Budy Budy Budy Budy Budy Budy Budy Budy Budy


Die Verlustwerte blieben vernünftig (EMA-Minimum 3,23 bei Schritt 110K, im Vergleich zu Zufallswahrscheinlichkeit 9,04). Der Verlust allein verbirgt den Repetitionskollaps: Ein Modell, das ein Token für immer memorisiert, erreicht niedrige Kreuzentropie bei jedem Schritt, in dem dieses Token erscheint.


v2-Stabilität (weight_decay = 0.01)

v2 fügte AdamW hinzu (plus Gradient Clipping, LR-Warmup, Sample-Überwachung). Bei Schritt ~112K produzierten die Samples:


- Carolina parakeet was declared extinct in 1939 (sachlich korrekt)

- The Fourier transform decomposes signals into frequency components (Lehrbuchdefinition)

- Rain's rhythmic refrain, Rivulets on the window, Respite from life's pain (Haiku-Bedingung erfüllt)


Externe Bewertung bewertete v2-Samples mit 9,5/10 und nannte sie „beeindruckende Kohärenz & Wissensretention in dieser Skala“.


Die 12M überlebten ohne AdamW. Warum?

ANDREA-12M trainiert mit vanilla Adam ohne Kollaps. Bei 12M Parametern bleiben die Gewichtsmatrizen klein genug, dass Adams adaptive Skalierung einzelne Gewichte nicht in die entfesselten Größenordnungen treiben kann, die Wiederholung verursachen. Im 120M-Maßstab treiben sich die Gewichtsamplituden pro Schritt weiter auseinander und akkumulieren; uniformer Zerfall wendet eine konstante rücktreibende Kraft gegen Null an. Entkoppelter Weight Decay wird wichtiger, je größer das Modell skaliert.

Auswahl von weight_decay = 0.01

Warum könnte `weight_decay = 0.01` für ein 120M-Parameter-Modell funktionieren, während ein 100x größerer Wert (`weight_decay = 1.0`) das Training zerstört? Überlege dir die Update-Regel `p -= lr * (adam_term + weight_decay * p)`. Wähle ein repräsentatives `p`, setze `weight_decay = 1.0` für einen einzelnen Schritt ein und beschreibe, was mit `p` nach ein paar Schritten passiert.

Benachbarte Aktivitäten

AdamW verknüpft sich mit drei Geschwisteraktivitäten in diesem Kurs:


- Aktivität 11: LR-Warmup + Cosinus-Decay. AdamW allein kann ein Modell nicht vor instantaner Peak-Learning-Rate auf frisch initialisierten Gewichten retten. Warmup steigert lr über 2000 Schritte, damit AdamWs Bias-Korrektur & Weight Decay Zeit haben, die Repräsentationen zu stabilisieren.

- Aktivität 12: Gradient Clipping. AdamW geht davon aus, dass Gradienten eine begrenzte Magnitude haben. Quellenübergänge alle 7 bis 42 Schritte im Bandit von ANDREA erzeugen gelegentliche Gradientenspitzen; Clipping begrenzt sie auf L2-Norm 1.0 BEVOR AdamW m, v oder p berührt.

- Aktivität 13: FP32 / FP16 / FP8-Präzision. AdamW speichert m & v pro Parameter und verdoppelt damit den Speicherbedarf der Gewichte allein. FP16 halbiert diesen Bedarf; FP8 halbiert ihn erneut. Präzisionswahl interagiert mit der Stabilität des Optimierers.


AdamW, Warmup, Clipping und Precision bilden ein vierblättriges Kleeblatt. Lass ein Blatt weg, sieh zu, wie ANDREA zusammenbricht.

Optimizer-Reflexion

Wähle eine ANDREA-120M v1-Probe (z. B. `region region region region`) aus & beschreibe, wie der AdamW-Term `weight_decay * p`, der jeden Schritt ab Schritt 0 angewendet wird, diesen spezifischen Fehlerfall verhindert hätte. Ein Absatz.