RMSNorm
Jedna warstwa dostaje listę liczb o dużej wielkości, inna znacznie mniejsze wartości. Takie różnice skali mogą utrudniać prowadzenie obliczeń i uczenia. Chcesz ujednolicić ogólny rozmiar sygnału, zachowując proporcje między jego elementami.
RMSNorm dzieli listę liczb przez jej RMS, czyli pierwiastek ze średniej ich kwadratów. Następnie każdą współrzędną może pomnożyć przez osobny wyuczony współczynnik. Lista liczb to wektor; w modelu opisuje przetwarzany kawałek tekstu.
Dla [3, 4] RMS wynosi około 3,54. Po podzieleniu otrzymujemy około [0,85, 1,13]: wspólna skala się zmniejszyła, a proporcja pozostała taka sama. Implementacje dodają małą stałą chroniącą przed dzieleniem przez zero. Zhang i Sennrich, §3, opisują ten mechanizm.
W odróżnieniu od Layer Normalization RMSNorm nie odejmuje średniej wejściowych liczb. Sama normalizacja jednej gałęzi nie usuwa skali ze wszystkich obliczeń modelu, zwłaszcza ze ścieżki Residual connection, która przekazuje wejście dalej. To lokalna operacja, a nie gwarancja niezmienniczości całej sieci.