Back to archive
#ai#llm#glossary#aigen

Learning Rate Warmup

Chcesz nauczyć prosty model przewidywania czasu dostawy. W naszym wymyślonym przykładzie każda dostawa trwa 10 minut, a model zaczyna od prognozy 0. Trzeba przesunąć ją w górę. Sama właściwa wskazówka kierunku nie wystarcza: zbyt duża poprawka może przeskoczyć cel i pogorszyć wynik. Chcesz ograniczyć początkowe zmiany, a później dopuścić większe.

Learning Rate Warmup to początkowy etap uczenia, w którym stopniowo zwiększamy learning rate, czyli współczynnik regulujący wielkość aktualizacji ustawień modelu. Określamy docelową wartość i liczbę kroków dojścia do niej. Nie chodzi o nagrzewanie komputera. Liniowy wariant opisują Xiong i współautorzy, §3.2, równanie 1.

Czerwona papierowa wstęga tworząca cztery stopnie i równy podest jako metafora wzrostu learning rate do ustalonej wartości.

Ten sam kierunek, inna wielkość poprawki

Model ma jedną wagę — regulowaną liczbę równą prognozie. Strata ocenia pomyłkę: przyjmujemy połowę kwadratu różnicy między prognozą a celem 10. Gradient mówi, jak mała zmiana wagi wpływa na tę stratę. Tutaj wynosi prognoza − 10. Odejmujemy gradient pomnożony przez learning rate, podobnie jak w SGD; w tym przykładzie nie losujemy danych.

Na starcie gradient to −10. Przy learning rate 2,4 pierwsza poprawka daje 0 − 2,4 × (−10) = 24. Błąd względem 10 rośnie z 10 do 14 minut. Przy czterech krokach liniowego warmup zaczynamy od jednej czwartej docelowej wartości, czyli 0,6. Prognoza zmienia się na 6, a błąd maleje do 4 minut. Następne wartości learning rate to 1,2; 1,8; 2,4. Gradient obliczamy od nowa przed każdą poprawką.

Warmup łagodzi więc start, lecz nie naprawia zbyt dużej wartości docelowej. W tym przykładzie po dojściu do 2,4 pomyłki znów narastają. Przy rozsądnym 0,8 wariant bez warmup od początku zbliża się do celu szybciej. To ograniczenie zobaczysz poniżej.

Sprawdź pierwszy krok i dalszy ciąg

Porównaj pierwszy krok, potem wykonaj dwanaście. Zmień docelową wartość z 2,4 na 0,8. Oba przebiegi startują od zera i widzą te same dane. Słupki pokazują learning rate, a nie rzeczywistą odległość przesunięcia wagi: ta zależy także od gradientu.

Dlaczego przydaje się w modelach językowych?

W oryginalnym Transformerze Vaswani i współautorzy, §5.3, zwiększali learning rate liniowo przez 4000 kroków, a później go zmniejszali. Używali Adama, czyli algorytmu dobierającego aktualizacje na podstawie historii gradientów. Warmup określa harmonogram jego learning rate, a nie zastępuje optymalizatora.

Xiong i współautorzy wiążą trudny start m.in. z dużymi początkowymi gradientami w badanej architekturze (§3.3–3.4). Przesunięcie Layer Normalization — operacji regulującej skalę liczb wewnątrz modelu — przed główne obliczenia danego bloku pozwoliło im uczyć wariant Pre-LN bez warmup (§4). W oryginalnym wariancie Post-LN normalizacja następuje po dodaniu wyniku bloku do jego wejścia. Nie wynika z tego, że każdy model potrzebuje warmup ani że każdy Pre-LN może go pominąć.

Gradient Clipping ogranicza wielkość gradientu; warmup zmienia współczynnik zastosowania aktualizacji w czasie. Nasza demonstracja pokazuje tylko ten drugi pomysł na jednej wadze. Utrzymuje stały learning rate po czterech krokach, aby odsłonić ograniczenie; nie odtwarza całej receptury treningu Transformera.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.