Back to archive
#ai#llm#glossary#aigen

Layer Normalization

Do kolejnej warstwy trafia opis jednego fragmentu z liczbami [2, 4], a innego z [20, 40]. Rozmiar sygnału może się mocno różnić. Chcesz ułatwić obliczenia przez przeliczenie liczb w ramach każdego opisu do porównywalnej skali.

Layer Normalization normalizuje wektor — listę liczb — na podstawie jego własnej średniej i rozrzutu. W typowym Transformerze robi to osobno dla każdej pozycji tekstu. Nie potrzebuje do tego innych zdań z tej samej grupy danych.

Dla [2, 4] średnia to 3. Po odjęciu średniej zostaje [-1, 1]; podzielenie przez odpowiednią miarę rozrzutu reguluje skalę. Następnie wyuczone współczynniki mogą każdą liczbę rozciągnąć i przesunąć.

Końcowy wynik nie musi więc mieć dokładnie średniej zero i wariancji jeden. To lokalna operacja stabilizująca przetwarzanie, a nie usunięcie różnic znaczenia między tokenami ani gwarancja stabilności całej sieci. RMSNorm reguluje skalę bez odejmowania średniej.

Mechanizm i szczegóły

To rozróżnienie wprowadza praca Ba, Kiros i Hinton, Layer Normalization, §3. Statystyki zależą od aktualnego wejścia, więc normalizacja nie potrzebuje innych przykładów w tym samym batchu.

Dla współrzędnej xix_i zapis z uczonym skalowaniem i przesunięciem ma postać:

yi=γixi−μσ2+ε+βi.y_i=\gamma_i\frac{x_i-\mu}{\sqrt{\sigma^2+\varepsilon}}+\beta_i.

μ\mu jest średnią wektora, a σ2\sigma^2 średnią kwadratów odchyleń od niej. Dodatnie ε\varepsilon chroni przed dzieleniem przez zero. Parametry γi\gamma_i i βi\beta_i są uczone. Dokumentacja Keras podaje pełne obliczenie i znaczenie osi normalizacji.

Przykład dwóch współrzędnych

Dla [2; 4] średnia wynosi 3, a wariancja 1. Po odjęciu średniej otrzymujemy [−1; 1]. Przy bardzo małym epsilon, gamma równej jeden i beta równej zero wynik będzie bliski [−1; 1].

Po nauczeniu gamma i beta końcowy wektor nie musi mieć średniej zero ani wariancji jeden. Normalizacja nie oznacza też, że cały model staje się niezależny od skali wszystkich swoich parametrów.

W oryginalnym Transformer LayerNorm następowała po dodaniu przez Residual connection, zarówno przy attention, jak i FFN. Kolejność tę pokazuje Attention Is All You Need, §3.1; nie należy z niej robić reguły dla wszystkich LLM.