Gewone SGD Kan ANDREA Niet Trainen
Stochastic Gradient Descent, het Startpunt
Backprop berekent een gradient g voor elke parameter. Gewone stochastic gradient descent (SGD) update elke parameter met p -= lr * g. Eén leersnelheid, één richting per stap, geen geheugen van eerdere gradients.
Gewone SGD faalt op schaal om twee redenen:
1. Gradienten hebben sterk verschillende magnitudes over parameters. Een embedding voor een zeldzaam token ontvangt een kleine gradient de meeste stappen; een layernorm-schaal ontvangt een grote. Eén leersnelheid kan niet voor beide geschikt zijn.
2. Gradienten oscilleren. Een ruise mini-batch uit een corpus met 16 bronnen duwt een parameter naar links, dan rechts, dan links. Gewone SGD verspilt stappen door tegen zichzelf te vechten.
Adam (Kingma & Ba, 2015) lost beide op met twee lopende gemiddelden per parameter.
Eerste Moment & Tweede Moment
m: Gesmoorde Richting
Het eerste moment m gemiddelt recente gradienten exponentieel:
m = beta1 m + (1 - beta1) g
met beta1 = 0.9. Na enkele stappen draagt m een gesmoorde richting; één slechte batch verschuift het nauwelijks.
v: Gesmoorde Grootte
De tweede moment v gemiddelt recente gekwadrateerde gradiënten:
v = beta2 v + (1 - beta2) g^2
met beta2 = 0.999. v houdt bij hoe groot de gradiënt van elke parameter typisch wordt. Parameters met grote gradiënten krijgen een grote v; parameters met kleine gradiënten krijgen een kleine v.
Per-Parameter Adaptive Learning Rate
Het delen van de gesmoorde richting door de vierkantswortel van de gesmoorde grootte brengt elke parameter op een vergelijkbare basis:
adam_step = m / sqrt(v + eps)
Kleine-gradient embeddings worden opgeschaald; grote-gradient layernorms worden omlaag geschaald. Eén globale lr past nu bij elke parameter.
De Moments lezen
Waarom vroege stappen bias-correctie nodig hebben
Cold-Start Bias
m & v starten bij nul. Na stap 1, m = 0.1 g_1 & v = 0.001 g_1^2. Beide schattingen undershooten een langetermijngemiddelde dramatisch. Zonder correctie start de optimizer voorzichtig & loopt langzaam op, verspilt kostbare vroege stappen wanneer representaties vormen.
De Correctie
Adam schaalt elke schatting met 1 / (1 - beta^t) waarbij t het stapnummer is:
m_hat = m / (1 - beta1^t)
v_hat = v / (1 - beta2^t)
Bij stap 1 met beta1 = 0.9 is de deler (1 - 0.9) = 0.1, dus m_hat = m / 0.1 = 10 * m. De bias-gecorrigeerde schatting komt overeen met wat het langetermijngemiddelde zou voorspellen. Naarmate t groeit, nadert beta^t 0, de correctie nadert 1, & gecorrigeerde & ongecorrigeerde waarden convergeren.
Gekoppelde Weight Decay (de AdamW-innovatie)
L2 Regularisatie vs Weight Decay
Klassieke L2-regularisatie voegt een straf toe aan een verlies: L_total = L_data + (lambda / 2) sum(p^2). Backprop ziet die straf als onderdeel van de gradiënt: g_total = g_data + lambda p. De L2-term vloeit door Adam's m & v updates, wordt gesmeerd & herschaald door per-parameter groottes.
Loshchilov & Hutter (2019) bewezen dat het gladstrijken van een regularizer via Adam beide corrumpeert. Adam's adaptieve schaling verkleint weight decay op parameters met grote gradiënten (waar decay overfitting het hardst moet bestrijden) & versterkt het op parameters met kleine gradiënten.
AdamW: Pas Decay Direct Toe
AdamW ontkoppelt weight decay van een gradiënt. Decay wordt direct op elke parameter toegepast tijdens een parameterupdate, zonder m of v aan te raken:
p -= lr (m_hat / (sqrt(v_hat) + eps) + weight_decay p)
Twee termen drijven nu elke stap aan:
1. Adam-term: m_hat / (sqrt(v_hat) + eps) schaalt de gradiënt richting om op basis van de per-parameter groottegeschiedenis.
2. Vervalterm: weight_decay * p krimpt elke parameter uniform naar nul, zonder via de smoothing van Adam te gaan.
ANDREA-120M v2 stelt weight_decay = 0.01 in. Elke stap krimpt elke parameter 1% naar nul, naast wat de Adam-term doet.
Waarom Decoupled Belangrijk is
Empirisch Bewijs
v1 Instorting (geen weight decay)
ANDREA-120M v1 getraind voor 165K stappen met vanilla Adam. Sample outputs:
- Stap 80K: region region region region region region region
- Stap 110K: ''''' ''''' '' ''' '' ''' '''?' ''' ' '' '' '
- Stap 140K: games, games, games, games, games, games, games
- Stap 165K: Budy Budy Budy Budy Budy Budy Budy Budy Budy
Verliescijfers bleven redelijk (EMA minimum 3.23 bij stap 110K, vs willekeurige kans 9.04). Verlies alleen verbergt herhalingscollapse: een model dat één token voor altijd memoriseert bereikt lage cross-entropy op elke stap waar die token verschijnt.
v2 Stabiliteit (weight_decay = 0.01)
v2 voegde AdamW toe (plus gradient clipping, LR warmup, sample monitoring). Bij stap ~112K, geproduceerde samples:
- Carolina parkiet werd in 1939 uitgestorven verklaard (feitelijk correct)
- De Fouriertransformatie ontbindt signalen in frequentiecomponenten (tekstboekdefinitie)
- Regens ritmisch refrein, Riviertjes op het raam, Respijte van levenspijn (haiku-beperking voldaan)
Externe beoordeling gaf v2-samples 9.5/10, noemde ze "indrukwekkende coherentie & kennisbehoud op deze schaal."
De 12M overleefde zonder AdamW. Waarom?
ANDREA-12M getraind op vanilla Adam zonder collapse. Bij 12M parameters blijven gewichtsmatrices klein genoeg dat Adams adaptieve schaling individuele gewichten niet kan duwen naar de uit de hand lopende magnitudes die herhaling veroorzaken. Bij 120M-schaal drijven gewichtsmagnitudes verder per stap & accumuleren; uniforme decay past een constante herstellende kracht naar nul toe. Decoupled weight decay doet er meer toe naarmate een model schaalt.
Kiezen van weight_decay = 0.01
Aangrenzende Activiteiten
AdamW verweeft met drie zusteractiviteiten in deze cursus:
- Activiteit 11: LR-opwarmfase + cosinusverval. AdamW alleen kan een model niet redden van een onmiddellijke piek-leerpercentage op vers geïnitialiseerde gewichten. Opwarmfase verhoogt lr over 2000 stappen zodat de bias-correctie van AdamW & gewichtsverval tijd krijgen om representaties te stabiliseren.
- Activiteit 12: Gradient clipping. AdamW gaat ervan uit dat gradients een begrensde grootte hebben. Bronovergangen elke 7 tot 42 stappen in ANDREA's bandit produceren occasionele gradientpieken; clipping beperkt ze tot L2-norm 1.0 VOORDAT AdamW m, v of p aanraakt.
- Activiteit 13: FP32 / FP16 / FP8 precisie. AdamW slaat m & v op per parameter, wat het geheugengebruik van de gewichten verdubbelt. FP16 halveert dat gebruik; FP8 halveert het opnieuw. Precisiekeuzes interageren met de stabiliteit van de optimizer.
AdamW, warmup, clipping en precision vormen een vierbladige klaver. Laat één blad vallen, zie ANDREA instorten.