- はじめに
- RMSNorm が標準になった理由
- プレノルムとポストノルム
- SwiGLU 系
- アテンションロジットが暴走するとき
- QK-Clip: 別のアプローチ
- 正規化をさらに足す場合
- 安定性は学習率スケジュールにもある
- おわりに
- 参考資料
- 試してみる
- シリーズ
はじめに
これまでの記事はパラメータとメモリを扱いました。今回の主題は少し違います。正規化と活性化関数はパラメータ数にほとんど寄与しませんが、これを誤ると学習そのものが止まります。数千枚の GPU が数週間回る作業において、損失の発散は最も高価な失敗です。
config から見える手がかりは rms_norm_eps、hidden_act、そして最近のモデルの use_qk_norm くらいです。その背後にどんな設計があるのかを見ていきます。
数値は 2026-08-12 に論文・公式レポート・config.json で直接確認しました。モデルは更新されるため、原典を再度確認してください。
RMSNorm が標準になった理由
ここで確認したすべてのモデルの config に rms_norm_eps があります。Qwen3、DeepSeek-V3、Kimi K2 は 1e-06、Mixtral と GLM-4.5 は 1e-05 です。例外なく RMSNorm です。
もとのレイヤー正規化は平均を引いて分散で割ります。RMSNorm は平均を引く段階をなくし、二乗平均平方根だけで割ります。計算が減り、さらに重要なことに平均を求めるための追加の集約演算が消えるため、分散学習における通信と同期のコストが下がります。
rms_norm_eps はゼロ除算を防ぐ小さな値です。些細に見えますが、低精度の学習ではこの値が小さすぎると数値が不安定になり、大きすぎると正規化がぼやけます。
プレノルムとポストノルム
正規化をどこに置くかが安定性を大きく左右します。もとのトランスフォーマーは残差接続を足した後に正規化しました。ポストノルムです。いまはほぼすべてが、残差に足す前に正規化するプレノルムを使います。Qwen3 レポートも、事前正規化とともに RMSNorm を使うと明記しています(arXiv:2505.09388)。
違いは残差経路にあります。プレノルムでは入力から出力まで正規化を通らない恒等経路が保たれ、層が深くなっても勾配がよく伝わります。代償はあります。プレノルムは深い層の出力の大きさが累積して大きくなる傾向があり、そのため最終正規化を別に置く必要があります。最初の記事のパラメータ計算で最後に足した 4,096 が、まさにその最終正規化です。
SwiGLU 系
hidden_act が silu なのは SwiGLU 系である合図です。確認したモデルのうち Qwen3、Qwen2.5、Mixtral、DeepSeek-V3、GLM-4.5 がいずれも silu です。Llama 3 レポートの表 3 も活性化関数を SwiGLU と記しています(arXiv:2407.21783)。
ゲート構造は二つの線形射影を作り、一方に非線形を適用したうえで要素ごとに掛け合わせます。関連論文は、ゲート付き線形ユニットの変種をトランスフォーマーの FFN 部分に入れて試した結果、いくつかが通常用いられる ReLU や GELU より品質の向上を示したと報告しています(Shazeer, arXiv:2002.05202)。
ここに実務上重要な代償があります。行列が二つから三つに増えます。したがって同じパラメータ予算に合わせるには FFN の内部次元を縮める必要があります。Llama 3.1 8B は幅 4096 に FFN 14336 で 3.5 倍、Qwen3-8B は 4096 に 12288 で 3 倍です。ゲートがなかった時代の慣習である 4 倍と違う理由がこれです。
アテンションロジットが暴走するとき
最近のレポートが共通して扱う失敗モードがあります。学習が進むにつれてアテンションロジットが増え続ける現象です。ソフトマックスの入力が大きくなりすぎると分布が一点に集中して勾配が消え、低精度では数値のオーバーフローにつながります。
Qwen3 の対応は QK-Norm です。レポートは、Qwen2 で使っていた QKV バイアスを取り除き、学習を安定させるためにアテンション機構へ QK-Norm を導入したと述べています(arXiv:2505.09388)。クエリとキーを正規化して内積の大きさに上限を設ける方式です。
config でも確認できます。Qwen3-8B のパラメータを数えたとき、層ごとに 128 x 2、すなわち 256 個の追加パラメータがありました。これがヘッド次元の大きさを持つクエリ正規化とキー正規化です。GLM-4.5 はそもそも use_qk_norm フィールドを true として露出しています。コストは層あたり 256 パラメータとわずかな演算、つまりほぼ無料です。
QK-Clip: 別のアプローチ
Kimi K2 は同じ問題をオプティマイザ側で解きました。レポートによれば、トークン効率の良い Muon オプティマイザを使いつつ、その不安定さを QK-Clip で緩和した MuonClip を提案し、これにより 15.5 兆トークンを損失スパイクなしで事前学習したと報告しています(arXiv:2507.20534)。
QK-Clip はクエリとキーの射影重みを更新後に再スケールし、アテンションロジットの成長を抑えます。レポートは、中規模の学習実験でアテンションロジットが急速に 1000 を超えたこと、K2 の学習では閾値を 100 に設定したこと、最大ロジットが上限値まで速やかに上がったのち学習ステップ全体の約 30 パーセントを過ぎてから安定域へ下がったことを記しています。
注目すべき設計は介入を最小にした点です。実際にはごく一部のヘッドだけがロジットの暴走を示すため、ヘッドごとのスケール係数を計算して該当ヘッドにのみ適用します。
正規化をさらに足す場合
DeepSeek-V3 は圧縮構造のために正規化を追加しました。レポートは、圧縮された潜在ベクトルの後に RMSNorm 層を追加し、幅が狭まる箇所でスケーリング係数を掛けると述べています(arXiv:2412.19437)。
ここに一般的な教訓があります。メモリを節約するために表現を圧縮すると、その地点で値の大きさの分布が歪みやすく、そのため正規化を当てる必要が出てきます。第三の記事で MLA が計算と複雑さを差し出すと述べたことの具体的な姿です。
安定性は学習率スケジュールにもある
構造だけで安定性が確保されるわけではありません。DeepSeek-V3 レポートは、学習率を最初の 2000 ステップで 0 から 2.2e-4 まで線形に上げ、10 兆トークンまで維持し、続いて 4.3 兆トークンにわたりコサイン曲線で 2.2e-5 まで下げたと記しています。勾配クリッピングのノルムは 1.0、バッチサイズは最初の 4690 億トークンで 3072 から 15360 まで段階的に増やしました。
Llama 3 の表 3 に記された最大学習率は 8B が 3e-4、70B が 1.5e-4、405B が 8e-5 です。モデルが大きくなるほど学習率を下げています。大きなモデルほど発散に弱いという経験則が数字として現れています。
おわりに
正規化と活性化は config で最も目立たない部分ですが、レポートでは最も多くの紙面を占める主題です。RMSNorm とプレノルムと SwiGLU が事実上の標準となったいま、レポートが扱っているのはその次の問題であるアテンションロジットの暴走です。Qwen3 は QK-Norm で構造から、Kimi K2 は QK-Clip でオプティマイザから解きました。新しいモデルのレポートを読むとき、この部分に何が追加されたかを見れば、そのチームが何に苦しんだかが見えてきます。
参考資料
- GLU Variants Improve Transformer (Shazeer, arXiv:2002.05202): https://arxiv.org/abs/2002.05202
- Qwen3 Technical Report (arXiv:2505.09388): https://arxiv.org/abs/2505.09388
- Kimi K2 (arXiv:2507.20534): https://arxiv.org/abs/2507.20534
- DeepSeek-V3 Technical Report (arXiv:2412.19437): https://arxiv.org/abs/2412.19437
- The Llama 3 Herd of Models (arXiv:2407.21783): https://arxiv.org/abs/2407.21783
- GLM-4.5 config.json: https://huggingface.co/zai-org/GLM-4.5/raw/main/config.json
試してみる
- ニューラルネット実習室 — 活性化関数を変えて学習曲線がどう変わるか観察してみましょう。
- ニューラルネットワークアーキテクチャ探索 — 層構成と正規化の位置を眺めてみましょう。
- VRAM 計算機 — FFN の内部次元がメモリに与える影響を確認してみましょう。
シリーズ
현재 단락 (1/33)
これまでの記事はパラメータとメモリを扱いました。今回の主題は少し違います。正規化と活性化関数はパラメータ数にほとんど寄与しませんが、これを誤ると学習そのものが止まります。数千枚の GPU が数週間回る...