AIエージェントを自作したり、LLMを用いたアプリケーション開発をしていると、ある瞬間に頭打ちを感じます。
APIを叩いてプロンプトを工夫すれば、ある程度は動く。でも、 「なぜ長文脈は重いのか」「なぜMoEが主流なのか」「精度が落ちる原因を構造から特定できない」「新モデルが出るたびに伝聞のベンチマークに振り回される」 といった、ブラックボックス特有のモヤモヤを抱えてはいないでしょうか。
モデルの強みも弱みも、すべては構造から因果的に説明できます。そしてそれを理解する最短経路こそが、現代のすべてのLLM(GPT, Claude, Gemini)の源流である2017年の伝説の論文『Attention Is All You Need』を本気で読むことでした。
10ページ程度の論文に詰まった「なぜそうでなければならないのか」という設計の必然性を、整理しました。
1. なぜQ, K, Vの3つに分けるのか?
入力 $X$ をそのまま使う $X X^T$ だと、内積の性質から「トークン間の類似度」が必ず対称($i \rightarrow j$ と $j \rightarrow i$ が同じ)になってしまいます。しかし言語の本質は「非対称(限定詞 the が名詞 cat を修飾するが、逆は不成立)」です。
- Q と K を分ける必然性: $Q = XW_Q, K = XW_K$ と分けることで、矢印の向き(どちらからどちらへの注目か)を学習する非対称な自由度を獲得するため。
- V を分ける必然性: 「どこを見るかという判断(Q, K)」と「そこから何を取り出すかという内容(V)」の空間を独立させて個別最適化するため。
2. なぜ $\sqrt{d_k}$ で割るのか?
Qの各行 $q$ とKの各行 $k$ の各成分が独立で平均0、分散1の確率変数と仮定したとき、内積 $q \cdot k$ は $d_k$ 個の独立な積の和となるため、分散は $d_k$ に比例して大きくばらつく数学的根拠があります。
これをそのまま softmax に入れると、出力がある1つの要素だけ 1 になり他が 0 に張り付く「勝者総取り」状態になります。softmax の微分係数には $\text{softmax}(x)(1 - \text{softmax}(x))$ が含まれるため、出力が極端になると**勾配消失(学習ストップ)**を引き起こします。定数 $c$ で割ると分散は $c^2$ 倍になるため、$\sqrt{d_k}$ で割ることで分散を綺麗に 1 に正規化しています。
3. なぜMulti-Head(細切れ)にするのか?
softmax は「合計が1になる単一の確率分布」しか作れない構造的限界があります。単一のAttentionでは、例えば cat という単語が、文法的な関係の the や、動詞の sat、空間の mat に**「同時に、それぞれ独立して強く注目する」ことが不可能**(どれか1つに重みが集中するか、均等に薄まるか)になります。
計算コストを維持するために全体の次元を $h$ 分割(512を64次元×8 headに)し、独立した複数のsoftmaxを並列で走らせることで、多角的な関係性を同時にロックオンできる設計にしています。
4. なぜsin/cosで位置情報を「足し算」するのか?
Transformerは一撃で並列処理するため、そのままでは単語の順序を区別できません(置換不変性)。
- なぜ足し算か: $d_{model}=512$ という超高次元空間では、ランダムなベクトル同士はほぼ直交(干渉しない)するため、意味を壊さずに位置を上乗せできます(カクテルパーティー効果)。
- なぜsin/cosか: 三角関数の加法定理により、位置 $pos+k$ のエンコーディングを、位置 $pos$ に「$pos$ に依存しない固定のシフト行列 $M_k$」を掛けた線形変換で表現できるからです。これにより、絶対位置ではなく**「$k$ 単語離れた相手を見る」という相対位置パターン**をモデルが一般化して学習できるようになります。
5. なぜFFN(Feed-Forward)が必要なのか?
Attentionがやっているのは、トークン間の「線形な混ぜ合わせ(横方向の通信)」だけです。しかし、混ぜた情報から新しい抽象概念(例:「猫」+「マット」 $\rightarrow$ 「動物が物の上にいる状態」)を生成するにはベクトル内部の非線形な変形が必要です。
Transformerは、**Attention(横の通信)とFFN(縦の非線形加工)**を完全に役割分担させています。なお、次元を一度4倍(512 $\rightarrow$ 2048)に拡張するのは、高次元空間の方が独立した非線形境界(ReLU)を多く取れて表現力が跳ね上がるからです。
6. なぜSelf-Attentionは業界の王者を蹂躙できたか?
それまでの主流だったRNNは、前の時刻の計算が終わるまで次の計算ができない構造($O(N)$)のため並列化が不可能でした。また、離れた単語間の情報伝達(最大経路長)に $O(N)$ ステップを要するため、バケツリレーの途中で勾配が消失する致命傷を抱えていました。
Self-Attentionは全トークンペアの関係を一撃の行列演算で同時に計算(並列化ステップ $O(1)$)し、任意の2点間を直通ルート(最大経路長 $O(1)$)で結ぶことで、「並列化可能性」と「長距離依存の解消」を同時に達成しました。これこそが、GPUのパワーを限界まで動員してモデルを巨大化させる「スケーリング則」の出発点です。
🗺️ 現代の最新LLMへの接続マップ
この論文の「設計の意図」と「構造的トレードオフ」がわかると、最新技術がすべてこの論文の 「どこの改造・制約回避なのか」 として地続きで見えてきます。
📝 まとめ & さらに深いディープダイブへ
『Attention Is All You Need』の本当の意味は、「LSTMの複雑なゲートもCNNの階層構造も要らない。シンプルなAttentionだけで並列化も長距離依存も構造的にすべて解決する」という強烈なパラダイムシフトの宣言でした。
並列化と長距離依存を引き換えに得た代償が「計算量が系列長の2乗($O(N^2)$)で爆発する」という呪いであり、現代の長文脈モデル(Gemini 1Mなど)はこの呪いとの戦いの歴史そのものかもしれません。
最新モデルが出るたびに「これは元論文のどの制約を回避するための改造か」という視点を持てるようになると、技術選定やエージェント設計の解像度が桁違いに上がります。