AI・機械学習
上級

RMSNorm(Root Mean Square Normalization)(アールエムエスノーム)

Layer Normalizationから平均の引き算を省略し、二乗平均平方根(RMS)のみで正規化する簡略化手法。Zhang & Sennrich(2019)が提案し、計算コストを約10-15%削減しつつLayerNormと同等の性能を維持する。LLaMA・Qwen・Gemmaなど現代の主要LLMで標準採用。

0 回閲覧
0 いいね

RMSNorm(Root Mean Square Normalization)とは

RMSNorm は、LayerNorm の計算を簡略化した正規化手法である。LayerNormが「平均を引いてから分散で割る」のに対し、RMSNormは平均の計算と引き算を省略し、二乗平均平方根(Root Mean Square)のみで除算する。この簡略化により計算コストが削減される一方、実験的にはLayerNormとほぼ同等の学習性能が確認されている。

計算式の比較

手法計算式演算ステップ
LayerNormy = γ × (x - μ) / √(σ² + ε) + β平均→引算→分散→除算→スケール→シフト
RMSNormy = γ × x / √(RMS(x)² + ε)RMS計算→除算→スケール

ここで RMS(x) = √((1/H) Σ x_i²) である。

RMSNormが省略するもの

LayerNormの要素RMSNormでの扱い
平均 μ の計算省略
平均の引き算 (x - μ)省略
分散 σ² の計算RMS²で代替
スケールパラメータ γ保持
シフトパラメータ β省略(多くの実装で)

なぜ平均の引き算を省略できるのか

Zhang & Sennrich(2019)の分析によれば、LayerNormの成功要因は**再スケーリング(分散による除算)**にあり、**再センタリング(平均の引き算)**の寄与は限定的であるという知見に基づく。

直感的には、Transformerの隠れ層の活性化値はResidual Connectionにより層が深くなるほど累積的に大きくなる傾向がある。この「スケールの発散」を抑制することが正規化の主目的であり、平均のシフト補正は副次的な効果にすぎない。

計算効率の改善

RMSNormのLayerNormに対する計算効率改善は以下の通り:

項目LayerNormRMSNorm改善率
加算/減算2H + 1H~50%削減
乗算/除算2H + 1H + 1~50%削減
学習パラメータ2H (γ, β)H (γのみ)50%削減
総FLOPS~6H~3H~50%削減
壁時計時間基準10-15%高速メモリ帯域律速のため

理論的なFLOPS削減は約50%だが、実際の壁時計時間ではメモリ帯域がボトルネックとなるため、改善は10-15%程度に留まる。ただし、Transformerの全層で繰り返し適用されるため、モデル全体では有意な高速化となる。

採用モデル一覧

モデル正規化手法パラメータ数備考
GPT-2/3LayerNorm1.5B-175BPre-Norm配置
LLaMA / LLaMA 2/3RMSNorm7B-405BPre-RMSNorm
Qwen 2/2.5RMSNorm0.5B-72BPre-RMSNorm
Gemma / Gemma 2RMSNorm2B-27BPre-RMSNorm
Mistral / MixtralRMSNorm7B-8x22BPre-RMSNorm
Phi-3/3.5RMSNorm3.8B-14BPre-RMSNorm
GPT-4非公開非公開非公開
Claude非公開非公開非公開

2023年以降にリリースされたオープンソースLLMのほぼ全てがRMSNormを採用しており、LayerNormからの移行は完了したと言える。

実装上の注意点

FP16/BF16での数値安定性

RMSNormの除算 x / RMS(x) は、RMS(x)が非常に小さい場合に数値的に不安定になる。混合精度学習では以下の対策が必要:

  • ε(イプシロン)を 1e-5 以上に設定
  • RMS計算をFP32で実行し、結果をFP16/BF16にキャスト
  • Fused Kernel(Triton/CUDA)での精度保証

PyTorchでの実装

PyTorch 2.0以降では torch.nn.RMSNorm が公式サポートされており、手動実装は不要。

FAQ

Q1: RMSNormはLayerNormより性能が劣る?

ほとんどのベンチマークで性能差は0.1%未満であり、実用上の差はない。LLaMA論文(Touvron et al., 2023)では、RMSNormがLayerNormと同等の性能を達成しつつ学習速度が向上したと報告されている。

Q2: なぜβ(バイアス)パラメータも省略されるのか?

RMSNormの多くの実装ではβを省略する。これはTransformerのAttention層やFFN層にすでにバイアス項が含まれているため、正規化層のバイアスが冗長であるという経験的知見に基づく。LLaMAではFFN層のバイアスも省略している。

Q3: RMSNormの次に来る正規化手法は?

QK-Normalization(Query/Keyの正規化)やnGPT(normalized GPT)など、Attention内部の正規化手法が研究されている。RMSNormの置換というよりは、追加の正規化として併用される方向。