この記事の途中に、以下の記事の引用を含んでいます。
Attention Normalizes the Wrong Norm
「ディープラーニングの定石」は本当に正しいのか?
この記事は、ディープラーニング、とりわけTransformer系アーキテクチャの心臓部ともいえる「Attention機構」における正規化手法に、大胆な再考を迫る内容です。
近年、生成AIや大規模言語モデル(LLM)の進化により、「長大な文脈(コンテキスト)」の扱いが大きな課題になっています。
まさにこの点に関して、Attentionの標準的なSoftmax正規化が実は本質的な落とし穴を抱えているという主張が記事内で展開されています。
「Softmaxの正規化は決定的にズレている」と主張
記事では、まず現在のAttention計算で用いられるSoftmax正規化が固有の「制約」を課していることが問題だと指摘します。
ソフトマックスは「L1ノルムが1になるように正規化」しています。
しかし、「Attention出力の分散(variance)」を保ちたい場合、本来必要なのは「L2ノルムが1」であることだと説明されています。
この違いから、長いシーケンスにおけるAttentionの出力変動(出力の「潰れ」)という現象が生まれ、汎化性能・スケーラビリティに大きな影響を与えているのです。
記事中、次のように指摘されています。
Softmax normalizes the L1 norm to 1. Variance preservation requires the L2 norm to equal 1. These constraints differ. The mismatch causes attention output variance to collapse as sequence length grows, forcing models to learn position-dependent compensation. That compensation doesn’t transfer to unseen lengths.
つまり、「SoftmaxによるL1ノルム正規化は、シーケンス長が伸びた場合、Attention出力の方の分散(variance)がどんどん小さくなっていく=“潰れる”」現象を生み、モデル側は訓練時の文脈長に対してだけ見合う補償を学習しますが、その“癖”は未学習の長さでは機能しなくなる、という主張です。
「L2ノルム」で正規化せよ――なぜそれが必要なのか?
ディープラーニングの実験を知っている方ほど、ここに驚きがあるでしょう。
なぜSoftmaxの「L1ノルム」ではだめなのでしょうか?
理由は数学的に極めて明確です。
Attention出力の分散は実は「重みA」ベクトルのL2ノルムに等しい。
標準的なSoftmaxではAのL1ノルム=1に保たれますが、L2ノルムは「1/√N」(Nはトークン数)。
Nが増える(文脈が長くなる)ほど分散が小さくなってしまう、というのが問題の本質です。
個人的に特に興味深いのは、記事中でも指摘されているように「シーケンス長が増えて長文が当たり前になった現代」だからこそ無視できなくなった現象だということ。
With L1 softmax, output magnitude depends on both sparsity and sequence length. With L2 softmax, it doesn’t. The same holds for gradients.
これはトークン数が急増するLLM・生成AIで学習時・推論時にスケールダウン(計算の縮小現象)が深刻化する点を意味しています。
つい最近まで短めの文章を処理する分には表面化しづらかった“バグ”が、新たな運用で致命的に効いてくる……技術進化と運用の現実が浮き彫りになっています。
「L2正規化」は何をもたらすのか?実験結果から考える
では、「L2ノルムで正規化」すると何が起きるのでしょうか。
記事では実際に「Softmax(L1ノルム)」「L2正規化Softmax」で同一タスク(ターゲットトークンのカウント)を行い、その一般化性能を比較検証しています。
実験概要
- 2つの同一構造のモデル
- 片方はSoftmax(L1)、もう片方はL2ノルムで正規化
- 学習時のシーケンス長は最大2048、評価時は32768まで伸ばして汎化性能を検証
L1 collapses beyond the current training length, while L2 generalizes up and down.
このように、L1ノルム(通常のSoftmax)は訓練で扱った最大長を超えると一気に崩壊しますが、L2ノルムでは長短問わず安定してパフォーマンスが維持できた、とのこと。
どのように実装するか?
「softmax以外」のpノルムを指定した汎用的なp-softmaxも、次のようなコードで簡単に実装可能です。
python
def p_softmax(x, p=1.0, dim=-1):
x = torch.exp(x)
return x / x.norm(p=p, dim=dim, keepdim=True)
このシンプルさがまた驚きです。
標準のSoftmaxならp=1、分散維持ならp=2――たったそれだけで本質的な性能変化が生まれるというのは、まさに“灯台下暗し”だったと言えるでしょう。
他のアプローチとの比較・問題点は?
Attentionのスケーリング問題自体は、業界でもすでに問題視されてきたトピックです。
例えば、「Scalable Softmax」(arXiv:2501.19399)では出力を$\log N$倍して補正します。
しかし記事はこれを「平均的なAttentionパターンに対する一律の補正」だとして次のように批判的に評しています。
It works. But $\log N$ is a fixed correction for an average-case attention pattern. Sharp attention needs no correction. Diffuse attention needs more. SSMax can’t tell the difference.
Sharpな(先鋭的な)Attentionパターンには補正不要なのに、Diffuseな(拡散的な)ケースにはさらに多く必要だと。
つまり「$\log N$補正」では、「具体的なAttentionパターンの質」に応じて動的に分散制御ができない――この点がL2ノルム正規化の自動適応性に大きく劣るという論点です。
私見――LLMの革新か、部分的な「注意」か?
この記事を読むと、「なぜ今まで誰も気づかなかったのか?」という感慨がまず湧きます。
と同時に、理論的には筋が通ってはいるものの、「現実のLLM運用全体で即座に導入可能か?」という点には慎重さも必要でしょう。
例えば、
– L2ノルム正規化がもたらす勾配流や収束挙動への影響
– 高速Attention近似アルゴリズムや各種ヒューリスティックと併用した際の予期せぬ競合
– 既存データセットやコンパクトなモデル(小規模LLM)でのベンチマーク結果
等、さらなる広範な検証なくしては標準化への道はまだ遠いかもしれません。
ただ、文脈長拡大競争が過熱し、推論コスト最適化という現実課題に直面する今、「数式の一行」で大きな正規化ミス(過小評価)が生じていた可能性は、今後の研究開発の引き金となるはずです。
「規範」を問い直す――今、Attention設計思想が生まれ変わる
まとめに入ります。
この記事が明示的に教えてくれるのは「従来“常識”とされてきた数式一つの選択が、スケーラブルなAI時代にどれほど重要なボトルネックになり得るか」という事実です。
Attention機構という基盤技術を、
– 「パターン平均的な補正」で済ますか
– 「数学的に妥当なノルム」へさかのぼって再発明するか
その分岐点が今、まさに来ているのかもしれません。
読者の皆さんも、
– LLMやAIシステムを使う側
– アルゴリズム設計を担う側
どちらであれ、「既存の“正規化”の常識」自体に時折立ち返る重要性。
そして、「実装の一行」が未来の性能・スケーラビリティ・応用可能性を左右し得ることを、ぜひ心の片隅に留めていただきたいと思います。
categories:[technology]

コメント