Dla wektora wejściowego a o n elementach RMSNorm liczy statystykę RMS(a) = sqrt((1/n) · Σ aᵢ²), a następnie każdą składową normalizuje i skaluje: āᵢ = (aᵢ / RMS(a)) · gᵢ, gdzie g to uczony wektor wzmocnienia (gain) o wymiarze n. W przeciwieństwie do LayerNorm nie ma odejmowania średniej ani (w podstawowej wersji) wyrazu przesunięcia (bias). Do mianownika dodaje się małą stałą ε dla stabilności numerycznej. W wariancie częściowym (pRMSNorm) statystykę RMS estymuje się tylko na podstawie pierwszych p% składowych wektora, co dodatkowo obniża koszt, nie naruszając własności niezmienniczości.
LayerNorm wymaga dwóch przejść po wektorze aktywacji — do wyliczenia średniej (re-centrowanie) i wariancji (re-skalowanie) — co wprowadza narzut obliczeniowy szczególnie kosztowny w sieciach rekurencyjnych i głębokich Transformerach. RMSNorm eliminuje krok re-centrowania, zmniejszając liczbę operacji i czas działania przy zachowaniu stabilności treningu.
Pierwiastek ze średniej kwadratów składowych wektora: RMS(a) = sqrt((1/n)·Σ aᵢ²). Zastępuje odchylenie standardowe z LayerNorm i nie wymaga obliczania średniej.
Uczony wektor parametrów o wymiarze n, mnożony element po elemencie przez znormalizowane aktywacje. Zapewnia adaptacyjne re-skalowanie i niejawną adaptację tempa uczenia.
Wariant, w którym RMS estymuje się tylko na podstawie pierwszych p% składowych wektora, dodatkowo obniżając koszt obliczeniowy bez naruszenia własności niezmienniczości.
Oficjalna
Sumowanie kwadratów w fp16/bf16 może prowadzić do przepełnienia lub utraty precyzji.
Dodanie ε wewnątrz lub na zewnątrz pierwiastka daje inne zachowanie numeryczne i różni się między implementacjami.
Przenoszenie kodu z LayerNorm i pozostawienie odejmowania średniej lub wyrazu przesunięcia zmienia semantykę RMSNorm.
Ba, Kiros i Hinton wprowadzają LayerNorm — poprzednika, który RMSNorm upraszcza.
Zhang i Sennrich pokazują, że pominięcie re-centrowania daje wyniki porównywalne z LayerNorm przy 7–64% krótszym czasie działania.
LLaMA stosuje RMSNorm w konfiguracji pre-normalizacji, po czym technika staje się standardem w kolejnych rodzinach modeli (Gemma, Mistral, Qwen).
Złożoność czasowa: O(n · d). Złożoność przestrzenna: O(d).
Operacja jest ograniczona przepustowością pamięci (memory-bandwidth bound): elementowe potęgowanie i redukcja po wymiarze d, a nie mnożenie macierzy. Nie wykorzystuje rdzeni tensorowych.
Rozmiar wektora aktywacji poddawanego normalizacji; zwykle równy wymiarowi ukrytemu modelu.
Mała stała dodawana dla stabilności numerycznej (unikanie dzielenia przez zero).
Czy stosowany jest uczony wektor wzmocnienia; w praktyce niemal zawsze włączony.
Odsetek wejść używany do estymacji RMS w wariancie pRMSNorm.
Operacja gęsta, stosowana do wszystkich aktywacji bez warunkowego routingu.
Normalizacja każdego tokena jest niezależna od pozostałych, więc jest w pełni równoległa po tokenach; wewnątrz tokena występuje redukcja po wymiarze ukrytym.
Operacja elementowa z redukcją, ograniczona przepustowością pamięci; działa efektywnie na dowolnym akceleratorze i CPU.
Nie wykorzystuje rdzeni tensorowych (brak mnożenia macierzy); zwykle łączona (fused) z sąsiednimi operacjami dla efektywności.