RMSNorm(Root Mean Square Layer Normalization)は、LayerNorm から平均の減算ステップを省略し、二乗平均平方根(RMS)のみで正規化を行う軽量な正規化手法である。2019年に Biao Zhang と Rico Sennrich が提案し、LLaMA・Mistral・Gemma・Qwen など 2023年以降の主要 LLM で標準採用されている。計算コストが LayerNorm より約 10〜30% 低く、性能は同等以上であることが実験的に確認されている。
RMSNorm は LayerNorm の計算量を削減しながら同等の正規化効果を実現する手法であり、2023年以降の大規模言語モデル開発において LayerNorm に代わる新たなデファクトスタンダードとなりつつある。平均の減算を省略するという一見単純な変更が、なぜ性能を損なわずに効率化できるのかという理論的背景と、実際のモデルでの採用状況を解説する。
RMSNorm は「Re-centering(平均をゼロに戻す)処理は正規化の効果に対して本質的でない」という仮説に基づいて設計された。LayerNorm は平均の減算(re-centering)と分散による正規化(re-scaling)の2つの操作を行うが、RMSNorm は re-scaling のみを行う。
この設計思想の背景には、ニューラルネットワークの内部表現において重要なのは各特徴次元の相対的なスケール(大きさの比率)であり、絶対的なオフセット(平均値からのずれ)は学習に対する寄与が小さいという観察がある。実際、LayerNorm のシフトパラメータ β は学習後にゼロ付近に収束する傾向があり、平均の減算自体が冗長である可能性が高い。
RMSNorm が急速に普及した直接的なきっかけは、2023年2月に Meta が公開した LLaMA モデルである。LLaMA は RMSNorm を採用して学習効率を改善し、この選択が後続の多くのオープンソース LLM に影響を与えた。2026年現在、新規に設計される LLM の大半が RMSNorm を採用しており、LayerNorm は主にレガシーモデルの互換性維持のために残っている状況である。
RMSNorm の計算は以下の通りである。入力ベクトル x = (x₁, x₂, ..., x_H) に対して:
ステップ1: 二乗平均平方根(RMS)の計算
RMS(x) = √((1/H) × Σᵢ xᵢ²)
ステップ2: 正規化
x̂ᵢ = xᵢ / RMS(x)
ステップ3: スケーリング
yᵢ = γᵢ × x̂ᵢ
LayerNorm との決定的な違いは2点ある:
| 操作 | LayerNorm | RMSNorm | 削減率 |
|---|---|---|---|
| 平均計算(Σxᵢ) | H回の加算 + 1回の除算 | なし | -100% |
| 平均減算(xᵢ-μ) | H回の減算 | なし | -100% |
| 二乗和計算(Σxᵢ²) | H回の乗算 + H回の加算 | H回の乗算 + H回の加算 |
| 0% |
| 正規化(除算) | H回 | H回 | 0% |
| アフィン変換 | 2H回(γ, β) | H回(γのみ) | -50% |
| 合計演算数 | 約 5H | 約 3H | 約 40% |
| 学習パラメータ数 | 2H(γ + β) | H(γのみ) | -50% |
実測での速度向上は理論値ほど大きくなく、通常 10〜30% 程度である。これは GPU 上での演算がメモリ帯域律速であり、演算数の削減がそのまま速度向上に反映されないためである。ただし、リダクション操作が1回(二乗和のみ)に減ることで、カーネル融合の最適化が容易になり、大きなバッチサイズや長い系列長では 30% 以上の高速化が得られるケースもある。
RMSNorm では平均の減算を行わないため、入力値のスケールが大きい場合にオーバーフローのリスクがある。特に FP16(半精度浮動小数点)では、xᵢ² の計算で容易に最大値(65504)を超えうる。対策として、以下の手法が用いられる:
| 特性 | LayerNorm | RMSNorm | BatchNorm | GroupNorm |
|---|---|---|---|---|
| 正規化方向 | 特徴次元 | 特徴次元 | バッチ方向 | グループ内特徴 |
| 平均の減算 | あり | なし | あり | あり |
| 学習パラメータ | γ, β (2H) | γ (H) | γ, β (2C) | γ, β (2C) |
| 推論時コスト | 中 | 低 | 高(統計量保持) | 中 |
| バッチ依存 | なし | なし | あり | なし |
| LLM での採用率(2026年) | 中(レガシー) | 高(新規標準) | ほぼなし | ほぼなし |
| モデル | 公開年 | パラメータ数 | 正規化手法 | 備考 |
|---|---|---|---|---|
| LLaMA(Meta) | 2023 | 7B-65B | RMSNorm | RMSNorm 普及の契機 |
| LLaMA 2(Meta) | 2023 | 7B-70B | RMSNorm | |
| Mistral 7B | 2023 | 7B | RMSNorm | |
| Mixtral 8x7B | 2024 | 46.7B | RMSNorm | MoE モデル |
| Gemma(Google) | 2024 | 2B-7B | RMSNorm | |
| Gemma 4(Google) | 2025 | 4B-27B | RMSNorm | 最新世代 |
| Qwen 2.5(Alibaba) | 2024 | 0.5B-72B | RMSNorm | |
| Qwen 3(Alibaba) | 2025 | 0.6B-235B | RMSNorm | MoE 含む |
| LLaMA 3(Meta) | 2024 | 8B-405B | RMSNorm | |
| Phi-3(Microsoft) | 2024 | 3.8B-14B | RMSNorm | 小規模高性能 |
RMSNorm はPyTorch 2.4 以降 torch.nn.RMSNorm として標準提供されている:
import torch
import torch.nn as nn
# PyTorch 2.4+ の標準 RMSNorm
rms_norm = nn.RMSNorm(768, eps=1e-6)
# 手動実装(互換性のため)
class RMSNorm(nn.Module):
def __init__(self, dim, eps=1e-6):
super().__init__()
self.eps = eps
self.weight = nn.Parameter(torch.ones(dim))
def forward(self, x):
rms = torch.sqrt(torch.mean(x ** 2, dim=-1, keepdim=True) + self.eps)
return x / rms * self.weight
1. FP8 対応 RMSNorm: NVIDIA H100/H200 の FP8 Transformer Engine では、RMSNorm と FP8 量子化を融合したカーネルが提供されており、RMSNorm の計算コストが実質的にゼロに近づいている。
2. SimpleRMSNorm: スケールパラメータ γ も省略した完全パラメータフリーの正規化手法が研究されている。一部の小規模モデルで LayerNorm と同等の性能を示すが、大規模モデルでの検証は限定的である。
3. 正規化の統一理論: LayerNorm・RMSNorm・BatchNorm を包括する統一的なフレームワークの構築が試みられており、タスクやモデルサイズに応じて最適な正規化手法を自動選択する手法が研究されている。
A: 実用上はほぼそうだが、理論的には「完全な上位互換」とは言い切れない。2026年時点の大規模なベンチマークでは、RMSNorm と LayerNorm の性能差は統計的有意差の範囲内であり、計算効率の優位性から RMSNorm が推奨されている。ただし、特定の翻訳タスクやマルチモーダルモデルの一部で LayerNorm がわずかに優れるケースが報告されており、タスク依存の可能性がある。新規モデルの開発では RMSNorm を第一候補とし、性能問題が発生した場合に LayerNorm への切り替えを検討するのが実務的なアプローチである。
A: 直接の置き換えは不可能である。LayerNorm と RMSNorm は数学的に異なる変換であるため、学習済みの重みをそのまま転用すると性能が大幅に劣化する。置き換えには再学習またはファインチューニングが必要である。ただし、LoRA のような Parameter-Efficient Fine-Tuning(PEFT)を使用して正規化層の変更に対応する研究もあり、限定的なデータで適応できる可能性がある。実務的には、モデルの設計段階で正規化手法を決定し、最初から RMSNorm で学習するのが推奨される。
A: 一般的に RMSNorm では LayerNorm よりも小さい ε(1e-6)が推奨される。LayerNorm のデフォルト ε は多くのフレームワークで 1e-5 だが、RMSNorm では二乗和の平均がゼロに近づくケースが LayerNorm よりも稀であるため(平均の減算を行わないため入力値がゼロ周辺に集中しにくい)、より小さい ε で数値安定性が十分に確保される。LLaMA の実装では ε = 1e-5 が、Mistral では ε = 1e-5 が使用されているが、学術論文では 1e-6 を推奨するケースが多い。実務では 1e-5〜1e-6 の範囲で、混合精度の設定に合わせて調整するのが安全である。
A: LLaMA などの現代的な LLM では、Pre-Norm 配置(残差接続の前に正規化)が標準である。具体的には、Multi-Head Attention の直前と Feed-Forward Network の直前の2箇所に RMSNorm を配置する。これにより、残差パスの勾配が正規化層を経由せずに直接伝播し、深いネットワークでも学習が安定する。一部のモデルでは最終層の出力にも追加の RMSNorm を適用する「Final RMSNorm」パターンを採用している。