1) Po projekcjach liniowych na Q i K, każdy wektor zapytania i klucza jest normalizowany wzdłuż wymiaru głowicy (head_dim). W oryginale jest to normalizacja L2; w wariantach stosuje się LayerNorm (ViT-22B) lub RMSNorm (Qwen3). 2) Znormalizowane Q i K są mnożone (iloczyn skalarny). Po normalizacji L2 iloczyn jest ograniczony do [-1, 1]. 3) Zamiast dzielenia przez √d wynik jest skalowany uczonym parametrem (temperatura g), który kontroluje ostrość rozkładu softmax. 4) Reszta uwagi (softmax, mnożenie przez V) pozostaje bez zmian.
Bez normalizacji logity uwagi (iloczyny Q·K) mogą rosnąć do bardzo dużych wartości przy skalowaniu modelu, co prowadzi do saturacji softmaxa: rozkład uwagi staje się niemal one-hot o zerowej entropii, gradienty zanikają, a trening dużych modeli rozbiega się. QK-Norm ogranicza zakres logitów i stabilizuje trening.
Krok normalizujący wektory zapytań i kluczy wzdłuż wymiaru głowicy przed iloczynem skalarnym.
Oficjalna
Parametr uczony zastępujący stałe skalowanie 1/√d; kontroluje ostrość rozkładu softmax po znormalizowanym iloczynie Q·K.
Po normalizacji L2 iloczyn Q·K jest ograniczony do [-1,1]; bez uczonego parametru g logity są zbyt małe, a softmax zbyt płaski.
Normalizacja musi być per-głowica wzdłuż head_dim; wybór wariantu (L2 vs LayerNorm vs RMSNorm) wpływa na stabilność.
QK-Norm i rotacyjne kodowanie pozycji (RoPE) działają na tych samych Q/K; kolejność ich stosowania wpływa na wynik.
Henry i in. proponują QKNorm: normalizację L2 Q i K wzdłuż wymiaru głowicy oraz skalowanie uczonym parametrem zamiast 1/√d; poprawa BLEU o średnio 0,928 na 5 parach niskozasobowych.
Google Research stosuje LayerNorm na Q i K w ViT-22B, aby zapobiec rozbieganiu logitów uwagi i niemal one-hot rozkładom o zerowej entropii przy modelach 8B+.
Qwen3 usuwa bias QKV z Qwen2 i wprowadza QK-Norm (RMSNorm) do mechanizmu uwagi, aby zapewnić stabilny trening.
Złożoność czasowa: O(n·d) dodatkowo.
L2 (oryginał), LayerNorm (ViT-22B) lub RMSNorm (Qwen3).
Parametr g skalujący iloczyn Q·K zamiast 1/√d.
Normalizacja per-głowica wzdłuż head_dim.
Modyfikacja gęstej uwagi; wszystkie głowice i ścieżki są aktywne.
Normalizacja jest niezależna per token i per głowica, więc jest w pełni równoległa.
Normalizacja pointwise działa na dowolnym akceleratorze bez specjalnych wymagań.
Transformery z QK-Norm są trenowane głównie na GPU z Tensor Cores.