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

un

gość
1 / ?
powrót do lekcji

Dwa problemy na obu końcach treningu

Problem wczesnych kroków: świeże wagi nie tolerują dużych kroków

W kroku 0 każda waga zaczyna jako mała losowa liczba pobrana z rozkładu bliskiego zeru. Aktywacje pozostają bliskie zeru. Gradienty niosą niemal żadnej informacji o ostatecznym rozwiązaniu. Zastosowanie maksymalnego tempa uczenia do tych gradientów sprawia, że model oddala się daleko od inicjalizacji w kierunkach, które nie kodują znaczącej struktury.


ANDREA-120M v1 popełnił ten błąd. Brak rozgrzewki. W kroku 1 użyto lr = 0.0003 na świeżo zainicjalizowanych wagach. Efekt: model wylądował w złym basenie parametrów w ciągu kilkuset kroków. Wartości straty wyglądały rozsądnie; próbki generowały pętle powtarzania do kroku 80K i nigdy się nie odzyskały.


Problem późnego etapu: duże kroki nie wypolerują rozwiązania

Do kroku 100K model opanował już strukturę ogólną. Gradienty niosą teraz sygnał drobnoziarnisty: które wagi tokena potrzebują delikatnego przesunięcia, który head uwagi wymaga lekkiego przestrojenia. Zastosowanie maksymalnego współczynnika uczenia na tym etapie powoduje przeskakiwanie każdej drobnej korekty, oscylację wokół optimum bez jego osiągnięcia.


Dwa problemy, przeciwległe końce treningu. Jeden harmonogram, dwa obszary: łagodne przyspieszenie na początku, płynne wygaszenie na końcu.

Liniowe rozgrzewanie: pierwsze 2000 kroków

Wzór

ANDREA-120M v2 stosuje liniowe rozgrzewanie przez 2000 kroków:

<translated content> [BLOCK_TYPE SECTION/STEP]

lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps) [BLOCK_TYPE SECTION/STEP]

<translated content> [BLOCK_TYPE SECTION/STEP]

gdzie t to numer kroku (indeksowany od 0), warmup_steps = 2000, a lr_scheduled(t) to wartość, którą narzuciłby harmonogram cosinusowy, gdyby nie uwzględniać rozgrzewki. [BLOCK_TYPE SECTION/STEP]

<translated content> [BLOCK_TYPE SECTION/STEP]

Interpretacja wzoru: [BLOCK_TYPE SECTION/STEP]

<translated content> [BLOCK_TYPE SECTION/STEP]

- Przy t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Bardzo mały pierwszy krok.

- Przy t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Połowa siły.

- Przy t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Pełna siła.

- Przy t > 2000: ograniczenie utrzymuje mnożnik na poziomie 1, rozgrzewka przestaje mieć wpływ, a samoczynnie przejmuje kontrolę zanik kosinusowy.


Liniowe narastanie od zera daje modelowi 2000 kroków na utworzenie zgrubnych reprezentacji, zanim AdamW i przycinanie gradientów zobaczą aktualizacje o pełnej sile. Do kroku 2000 wagi zdążyły się na tyle przemieścić, że szczytowe lr nie wpycha ich już do złego minimum.

Obliczanie LR podczas rozgrzewki

ANDREA-120M v2 używa `lr_scheduled = 0.0003` (szczyt) oraz `warmup_steps = 2000`. Pomijamy zanik kosinusowy podczas rozgrzewki (zakładamy, że `lr_scheduled` pozostaje stałe). Oblicz rzeczywistą wartość współczynnika uczenia w: (a) kroku 0, (b) kroku 500, (c) kroku 2000, (d) kroku 5000. Pokaż obliczenia.

Cosine Decay po Warmup

Krzywa

Po zakończeniu warmup na kroku 2000, learning rate podąża za krzywą cosinusową od wartości szczytowej w dół do zera przez pozostałe kroki:


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


gdzie progress = (t - warmup_steps) / (total_steps - warmup_steps). Przy progress = 0 (tuż po warmup), cos(0) = 1, lr = peak. Przy progress = 1 (ostatni krok), cos(pi) = -1, lr = lr_min (zazwyczaj 0 lub minimalna wartość).


Dlaczego cosinus, a nie liniowo czy wykładniczo?

Rozkład cosinusowy zaczyna się powoli (krzywa prawie płaska przy szczycie), przyspiesza w środku, a następnie zwalnia ponownie w pobliżu zera. Trzy korzyści:


1. Plateau przy szczycie. Wczesne kroki po warmup nadal otrzymują prawie pełny lr, pozwalając modelowi na długi okres wysokiej szybkości uczenia się w celu budowania reprezentacji.

2. Płynne przejście przez środek. Brak gwałtownych skoków, które musiałby absorbować AdamW.

3. Plateau przy zerze. W końcowych krokach lr jest bardzo małe, co umożliwia precyzyjne dostrojenie, podobnie jak w symulowanym wyżarzaniu.


ANDREA-120M trenuje łącznie przez 200K kroków; 198K z nich przypada na obszar cosine decay po 2000-krokowym warmupie.


LR Warmup & Cosine Decay

Warm Restart ANDREA-12M w kroku 25K

Plateau

ANDREA-12M trenowano przez 60K kroków z cosine decay od szczytowego lr = 0.0004. Około kroku 22K strata ustabilizowała się na poziomie EMA ~2.4. Cosine decay obniżyło lr do ~0.00015. Bandit nadal dostarczał zróżnicowane dane; model przestał się poprawiać.


Diagnoza: lr spadło zbyt nisko, aby model mógł wyjść z obecnego basenu. Dane Hermes miały właśnie wejść do programu nauczania (krok 25K), przynosząc 590K nowych rozmów. Model potrzebował energii, aby wchłonąć ten wstrząs danych.


Restart

W kroku 25K harmonogram wykonał ciepły restart: podniósł lr z 0.00015 (po spadku) z powrotem do 0.0004 (pierwotny szczyt), a następnie wznowił zanik cosinusowy w pozostałych krokach.


Loshchilov & Hutter (2017) nazwali tę technikę „SGDR” (stochastyczny spadek gradientu z ciepłymi restartami). Intuicja: wysoki lr dodaje wystarczająco dużo energii kinetycznej, aby wyjść z lokalnego basenu i zbadać sąsiednie; późniejszy zanik cosinusowy ponownie wyżarzał do lepszego basenu.


Outcome. Loss EMA spadła z 2.40 do 2.10 w ciągu kolejnych 10K kroków po restarcie. Model został wydany w kroku 43.6K z wartością SMMA loss 2.0, demonstrując spójną strukturę tur Q&A.


ANDREA-120M v2 zdecydował się NIE używać warm restarts: przy dostępnych 200K krokach i znacznie większej liczbie parametrów, płynny monotoniczny decay zapewniał stabilniejszą zbieżność. Restart działa najlepiej, gdy trening jest krótki i plateau zbiega się ze znaną zmianą danych.

Diagnozowanie awarii v1

ANDREA-120M v1 używał `lr = 0.0003` od kroku 1, bez warmupu. Do kroku 80K próbki generowały `region region region region`. Wyjaśnij mechanistycznie: przejdź krok po kroku, co dzieje się ze świeżo zainicjalizowaną macierzą wag w krokach 1–100 przy `lr = 0.0003` w porównaniu z 2000-krokowym warmupem. Dlaczego ścieżka bez warmupu trafia do złego basenu?

Wybory harmonogramu w praktyce

Gdybyś trenował model 120M na zaszumionym zbiorze danych przez TYLKO 50K kroków łącznie, użyłbyś dłuższego czy krótszego rozgrzewania niż 2000 kroków w ANDREA-120M v2? Uzasadnij jednym argumentem mechanistycznym.

Działania pokrewne

Trzej bracia łączą się z harmonogramem LR:


- Aktywność 10: AdamW. Rozgrzewka daje korekcji biasu AdamW czas na ustabilizowanie się. Bez rozgrzewki 10-krotne wzmocnienie w kroku 1 mnoży szum, który niosą gradienty; z rozgrzewką mnożnik trafia na rzeczywisty sygnał.

- Aktywność 12: Przycinanie gradientów. Przycinanie ogranicza normę L2 gradientu do 1.0 PRZED AdamW. Rozgrzewka tłumi lr; przycinanie tłumi g. Razem zapewniają bezpieczeństwo wczesnych kroków nawet przy niestabilnych programach nauczania.

- Aktywność 22: Zapisywanie punktów kontrolnych. Ciepły restart wymaga wczytania stanu optymalizatora (m, v, licznik kroków) z punktu kontrolnego, a następnie modyfikacji harmonogramu w trakcie działania. Restart ANDREA-12M w kroku 25K pokazuje to; zajęło dwie próby, aby poprawnie zaimplementować logikę wczytywania stanu.


Harmonogram, optymalizator i przycinanie tworzą trójkąt stabilności. Usuń jeden wierzchołek, a ANDREA powtórzy swój upadek z wersji v1.