RMSNorm — метод нормализации, который масштабирует вектор по среднеквадратичному значению без вычитания среднего.
Определение
RMSNorm — это вариант нормализации, использующий масштабирование по корню из среднего квадрата элементов вектора. В отличие от LayerNorm, RMSNorm не вычитает среднее значения, а только нормализует амплитуду вектора. Такой подход снижает вычислительную стоимость, уменьшает шум при вычитании среднего и обеспечивает более стабильное обучение глубоких трансформеров.
RMSNorm применяется в современных языковых моделях благодаря упрощённой формуле, стабильности градиентов и лучшему поведению при больших глубинах сети.
Как работает
Пусть x — входной вектор размерности d. В RMSNorm вычисляется среднеквадратичное значение:
RMS(x) = √( (1/d) · Σ xᵢ² )
Затем вектор нормализуется делением на RMS(x) и масштабируется обучаемым вектором весов g:
RMSNorm(x) = g ⊙ (x / RMS(x + ε))
Где ε — малое число для стабилизации деления. Никакого вычитания среднего не происходит — поэтому RMSNorm проще, точнее и менее чувствителен к распределению признаков.
Где применяется
- Большие языковые модели (включая LLaMA-подобные архитектуры).
- Мультимодальные системы с преобразованием визуальных, аудио- и текстовых признаков.
- Глубокие трансформеры с большим количеством слоёв.
- Модели с параллельными residual-потоками.
- Архитектуры, чувствительные к шуму LayerNorm на больших размерах.
Практические примеры использования
В LLaMA и ряде современных LLM RMSNorm заменяет LayerNorm, обеспечивая более ровное поведение градиентов при глубокой архитектуре. Это особенно важно в моделях, где увеличенная глубина даёт качественный рост, но LayerNorm может приводить к накоплению ошибок из-за вычисления среднего вектора.
В мультимодальных моделях RMSNorm помогает стабилизировать признаки от гетерогенных источников, где распределения могут быть нестабильными: изображения, аудио, сенсорные данные.
В генеративных моделях RMSNorm улучшает согласованность residual-потоков, снижая риск взрывных значений или деградации сигнала в глубоких сетях.
Почему RMSNorm предпочтительнее LayerNorm
LayerNorm включает два шага: вычитание среднего и деление на стандартное отклонение. RMSNorm делает только одно — делит вектор на его среднеквадратичное значение.
- меньше вычислений — отсутствует расчёт среднего;
- меньше численного шума — вычитание среднего ухудшает стабильность при FP16/FP8;
- лучше масштабируется по глубине — RMSNorm даёт более ровное распределение активаций;
- повышает устойчивость — меньше риск деградации в глубоких трансформерах;
- естественная совместимость — хорошо работает с residual-суммированием.
Из-за этих свойств RMSNorm стал стандартом в трансформерах, где глубина и стабильность критичны.
Вариации и архитектурные особенности
Современные модели используют несколько вариантов RMSNorm:
- Pre-RMSNorm — нормализация перед attention или FFN-блоком;
- Post-RMSNorm — реже используется, применяется после блока;
- Parallel RMSNorm — часть архитектур с параллельными residual-путями;
- RMSNorm с learnable ε — адаптивная стабилизация деления;
- RMSNorm внутри gating-блоков — для стабилизации GLU/SwiGLU.
В большинстве LLM применяется pre-norm схема с RMSNorm — она улучшает сходимость и предотвращает накопление градиентных искажений.
Преимущества и ограничения
- Плюс: стабильность в глубоких архитектурах.
- Плюс: меньше вычислений, чем LayerNorm.
- Плюс: хорошая числовая устойчивость при FP16/FP8.
- Плюс: естественная совместимость с современными FFN и gating-блоками.
- Минус: отсутствие центрирования может ухудшать качество на некоторых задачах.
- Минус: параметры g требуют точной инициализации.
- Минус: в shallow-моделях разница с LayerNorm может быть минимальной.
- Минус: не работает как замена LayerNorm в автоэнкодерах с симметричной структурой.
Связанные термины
- LayerNorm
- Pre-norm
- Residual connections
- Feed-forward network
- SwiGLU
- Transformer block
- Stability optimization