Adam
Adam to optymalizator: algorytm, który podczas treningu oblicza, jak zmienić wagi modelu, aby zmniejszać jego błąd. Nazwa pochodzi od adaptive moment estimation. Wagi to liczby określające działanie modelu; uczenie polega na ich stopniowym korygowaniu.
Najpierw model przetwarza przykłady, a funkcja straty, np. Cross-entropy, mierzy błąd. Następnie obliczany jest gradient: informacja, jak mała zmiana każdej wagi wpływa na stratę. Adam korzysta z gradientów, żeby wyznaczyć aktualizację wag.
Co Adam pamięta?
Dla każdej wagi przechowuje dwie liczby:
- Średnią kroczącą gradientów — zachowuje informację o kierunku zmian z poprzednich kroków. Nowsze gradienty mają większy udział niż starsze.
- Średnią kroczącą kwadratów gradientów — opisuje ich skalę bez względu na znak. Służy do dostosowania wielkości aktualizacji osobno dla każdej wagi.
Są to estymaty pierwszego i drugiego momentu. Druga liczba nie jest zwykłą wariancją: algorytm uśrednia kwadraty gradientów bez odejmowania średniej. Adam koryguje też początkowe zaniżenie obu średnich wynikające z rozpoczęcia od zera. Mechanizm opisują Kingma i Ba, §2–3 i algorytm 1.

Mały przykład
Własne podstawienie do reguły Adama: po korekcie początkowego zaniżenia średnia gradientów wynosi 2, a średnia ich kwadratów 4. Adam dzieli 2 przez pierwiastek z 4, otrzymując 1. Przy współczynniku uczenia (learning rate) 0,001 odejmuje więc od wagi około 0,001. Waga 0,5 zmienia się na około 0,499. Pomijamy tu bardzo małą stałą dodawaną w mianowniku dla stabilności obliczeń.
Adam nadal wymaga dobrania współczynnika uczenia. Dostosowanie kroku do historii gradientów nie gwarantuje spadku błędu po każdej aktualizacji.
Dlaczego pojawia się przy ZeRO?
Dwie statystyki na każdą z miliarda wag, zapisane jako liczby FP32 po 4 bajty, zajmują 8 GB — jeszcze bez samych wag, gradientów i pozostałych danych treningu. To własny rachunek, z dziesiętnym GB.
ZeRO rozdziela między GPU m.in. te pomocnicze dane, czyli stan optymalizatora. Adam określa sposób aktualizacji wag, a ZeRO organizuje przechowywanie i wymianę potrzebnych danych. W recepturze Mixed Precision Training analizowanej w pracy ZeRO, §3.1 dochodzi jeszcze kopia wag FP32.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.