Механизм Attention в трансформерах работает через скалярное произведение векторов Query и Key: чем оно больше, тем сильнее один токен «смотрит» на другой. Геометрически это произведение раскладывается на два множителя — длину векторов и косинус угла между ними. Казалось бы, оба множителя равноправны. Но на практике оптимизатор AdamW предпочитает наращивать длину: это проще, чем аккуратно вращать вектор в пространстве из тысяч измерений, не задев угловые расстояния до остальных токенов.
Результат предсказуем: без нормализации модель учится выделять «важные» токены не за счёт их точного положения в семантическом пространстве, а за счёт их «громкости». Векторы частых слов, знаков препинания и предлогов раздуваются, притягивая к себе непропорционально большой вес внимания — явление, которое в литературе называют attention sinks. Тонкие смысловые связи при этом подавляются.
QK Norm устраняет этот путь к отступлению. Применение RMSNorm к матрицам Q и K перед их перемножением фиксирует длину всех векторов как константу. Формула скалярного произведения схлопывается до чистого косинусного сходства: Q·K ≈ cos(θ). Все токены оказываются «заперты» на поверхности N-мерной гиперсферы — у точек на сфере нет массы, есть только координаты.
Без нормализации сеть «накачивает» длину векторов вместо того, чтобы точно позиционировать их в пространстве смыслов — это проще для оптимизатора.
Это ограничение одной степени свободы (масштаба) вынуждает модель максимально эффективно использовать оставшуюся — угловое позиционирование. Токены теперь кластеризуются исключительно по смыслу: слова с похожим значением сближаются не потому, что у них большие веса, а потому что модель научилась направлять их векторы в одну сторону. Следствие — более плотные и геометрически выверенные семантические кластеры, лучшая интерполяция для редких слов и устойчивость к доминированию служебных токенов.
С инженерной точки зрения изменение минимально. В PyTorch достаточно добавить два объекта nn.RMSNorm — отдельно для q и k — и применить их после проекции, но до вычисления скалярного произведения. Масштабирующий коэффициент sqrt(d_k), стандартный для Scaled Dot-Product Attention, при этом можно заменить на обучаемый скалярный параметр температуры или вовсе убрать, поскольку длины векторов уже нормированы.
Технически QK Norm появился как ответ на практическую проблему: модели масштаба 100 млрд параметров и выше отказывались стабильно обучаться без контроля над ростом логитов. Скалярные произведения Q·Kᵀ при большом числе параметров неконтролируемо растут, Softmax вырождается в one-hot вектор, градиенты затухают. Нормализация решает эту проблему напрямую. Но побочный эффект — регуляризация самого пространства представлений — оказался не менее ценным. Именно поэтому QK Norm закрепился как стандарт де-факто в современных открытых архитектурах, а не остался временным патчем для нестабильного обучения.



