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

un

gast
1 / ?
terug naar lessen

Twee problemen aan beide uiteinden van de training

Vroegstappen-probleem: verse gewichten kunnen geen grote stappen nemen

Bij stap 0 beginnen alle gewichten als kleine willekeurige getallen uit een verdeling dicht bij nul. Activaties blijven dicht bij nul. Gradiënten bevatten vrijwel geen informatie over een uiteindelijke oplossing. Pas een piek-leersnelheid toe op die gradiënten en het model springt ver weg van de initialisatie in richtingen die geen betekenisvolle structuur bevatten.


ANDREA-120M v1 maakte deze fout. Geen warmup. Stap 1 gebruikte lr = 0.0003 op vers geïnitialiseerde gewichten. Resultaat: het model belandde binnen een paar honderd stappen in een slecht parameterbekken. De verlieswaarden leken redelijk; de samples produceerden herhalingslussen rond stap 80K en herstelden nooit.


Laat-stap probleem: Grote stappen kunnen een oplossing niet verfijnen

Tegen stap 100K heeft een model de grove structuur geleerd. De gradiënten bevatten nu fijnkorrelige signalen: welke token-gewichten een kleine aanpassing nodig hebben, welke attention-head licht moet worden hergebalanceerd. Een piek-leersnelheid toepassen in deze fase overschiet elke fijne aanpassing, waardoor het model rond een optimum oscilleert zonder zich te stabiliseren.


Twee problemen, tegenovergestelde kanten van het trainen. Eén schema, twee regio’s: voorzichtig opbouwen, soepel afbouwen.

Lineaire Warmup: Eerste 2000 Stappen

De Formule

ANDREA-120M v2 gebruikt lineaire warmup over 2000 stappen:


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


waarbij t het stapnummer is (0-geïndexeerd), warmup_steps = 2000, en lr_scheduled(t) is wat het cosinus-schema zou voorschrijven zonder rekening te houden met warmup.


De formule lezen:


- Bij t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Minuscule eerste stap.

- Bij t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Halfsterkte.

- Bij t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Volle sterkte.

- Bij t > 2000: de clamp houdt de multiplier op 1, warmup heeft geen invloed meer, cosine decay neemt het alleen over.


Lineaire opbouw vanaf nul geeft het model 2000 stappen om grove representaties te vormen voordat AdamW & gradient clipping updates op volle sterkte zien. Tegen stap 2000 zijn de gewichten voldoende verschoven zodat de piek-lr ze niet meer in een slecht bassin duwt.

LR berekenen tijdens Warmup

ANDREA-120M v2 gebruikt `lr_scheduled = 0.0003` (piek) & `warmup_steps = 2000`. Negeer cosine decay tijdens warmup (neem aan dat `lr_scheduled` constant blijft). Bereken de werkelijke leersnelheid op: (a) stap 0, (b) stap 500, (c) stap 2000, (d) stap 5000. Toon je berekening.

Cosinusverval na Warmup

De Curve

Na de warmup die eindigt bij stap 2000, volgt de leersnelheid een cosinuscurve van piek naar nul over de resterende stappen:


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


waar progress = (t - warmup_steps) / (total_steps - warmup_steps). Bij progress = 0 (net na warmup), cos(0) = 1, lr = piek. Bij progress = 1 (laatste stap), cos(pi) = -1, lr = lr_min (meestal 0 of een kleine ondergrens).


Waarom cosinus, niet lineair of exponentieel?

Cosinusverval begint langzaam (de curve is bijna vlak nabij de piek), versnelt in het midden en vertraagt weer nabij nul. Drie voordelen:


1. Plateau nabij de piek. Vroege stappen na de warmup krijgen nog bijna de volledige lr, zodat het model een lang traject met hoge leersnelheid kan gebruiken om representaties op te bouwen.

2. Vloeiende overgang in het midden. Geen abrupte sprongen die AdamW moet opvangen.

3. Plateau nabij nul. In de laatste stappen wordt de lr heel klein voor fijne afwerking, vergelijkbaar met simulated annealing.


ANDREA-120M traint in totaal 200K stappen; 198K daarvan bevinden zich in de cosine-decay-regio na de 2000-stappen warmup.


LR Warmup & Cosine Decay

ANDREA-12M's Warm Restart op Stap 25K

Het Plateau

ANDREA-12M trainde 60K stappen met cosine decay vanaf een piek-lr = 0.0004. Rond stap 22K stagneerde de loss bij EMA ~2.4. De cosine decay had de lr verlaagd tot ~0.00015. De bandit bleef diverse data aanleveren; het model verbeterde niet meer.


Diagnose: lr was te ver gedaald voor het model om uit zijn huidige basin te ontsnappen. Hermes-data stond op het punt om in het curriculum te komen (stap 25K), wat 590K nieuwe gesprekken zou brengen. Het model had energie nodig om die datashock te absorberen.


De herstart

Op stap 25K voerde het schema een warm restart uit: lr werd verhoogd van 0.00015 (gedaald) terug naar 0.0004 (oorspronkelijke piek), waarna de cosinusverval over de resterende stappen werd hervat.


Loshchilov & Hutter (2017) noemden deze techniek "SGDR" (stochastic gradient descent with warm restarts). De intuïtie: een hoge lr voegt voldoende kinetische energie toe om een lokaal basin te verlaten en naburige basins te verkennen; het daaropvolgende cosinusverval laat het model opnieuw in een beter basin neerkomen.


Resultaat. Loss EMA daalde van 2.40 naar 2.10 in de volgende 10K stappen na de herstart. Het model werd uitgebracht op stap 43.6K met SMMA-loss 2.0, wat een coherente Q&A-draaistructuur aantoont.


ANDREA-120M v2 koos ervoor GEEN warm restarts te gebruiken: met 200K beschikbare stappen en een veel groter aantal parameters zorgde een soepele, monotone decay voor een stabielere convergentie. Restart werkt het best wanneer de training kort is en een plateau samenvalt met een bekende data-shift.

Diagnose van v1's falen

ANDREA-120M v1 gebruikte `lr = 0.0003` vanaf stap 1, zonder warmup. Tegen stap 80K produceerden samples `region region region region`. Redeneer mechanistisch: loop door wat er gebeurt met een vers geïnitialiseerde gewichtsmatrix in stappen 1 tot 100 onder `lr = 0.0003` versus onder een 2000-stappen warmup. Waarom belandt het pad zonder warmup in een slechte basin?

Keuzes in de praktijk

Als je een 120M-model zou trainen op een ruisachtige dataset voor in totaal SLECHTS 50K stappen, zou je dan een langere of kortere warmup gebruiken dan de 2000 stappen van ANDREA-120M v2? Rechtvaardig met één mechanistisch argument.

Aanverwante Activiteiten

Drie verwante onderwerpen linken aan LR-schedule:


- Activiteit 10: AdamW. Warmup geeft AdamW's bias-correctie de tijd om te stabiliseren. Zonder warmup vermenigvuldigt de 10x-versterking bij stap 1 de ruis die de gradiënten bevatten; met warmup raakt de vermenigvuldiger echt signaal.

- Activiteit 12: Gradient clipping. Clipping beperkt de L2-norm van de gradiënt tot 1.0 VOOR AdamW. Warmup dempt lr; clipping dempt g. Samen houden ze de vroege stappen veilig, zelfs bij curricula die gevoelig zijn voor schokken.

- Activiteit 22: Checkpointing. Een warme herstart vereist het laden van de optimizer-status (m, v, stap-teller) uit een checkpoint, gevolgd door het aanpassen van het schema tijdens de run. ANDREA-12M's herstart bij stap 25K illustreert dit; het kostte twee pogingen om de logica voor het laden van de status correct te krijgen.


Schedule, optimizer en clipping vormen een stabiliteitsdriehoek. Laat een hoek weg en ANDREA herhaalt zijn v1-instorting.