[[2017__NeurIPS__Attention Is All You Need]]
Transformerのアーキテクチャ
![[Pasted image 20250829105532.png]]
---
[[Transformer - SSII 2022 チュートリアル]]
> 2017年に機械翻訳を対象として提案されたTransformerは、従来の畳込みや再帰を排して自己注意機構を活用したニューラルネットワークです。2019年頃からコンピュータビジョン分野でも急速に応用が進んでいて、より柔軟かつ高精度なネットワーク構造としての地位を確立しつつあります。本チュートリアルでは、Transformerおよびその周辺のネットワーク構造について、コンピュータビジョンへの応用を中心とした最前線を概説しました。
> TransformerはトークンをResidual接続しながら2つのモジュールを繰り返しているだけ!
> - トークンを混ぜるToken Mixer
> - トークンを変換するMLP
[深層学習界の大前提Transformerの論文解説! - Qiita](https://qiita.com/omiita/items/07e69aef6c156d23c538)
![[transformer.png]]
出典:[[2022__AI Open__A Survey of Transformers|Tianyang Lin+, arXiv2021]]
![[Pasted image 20230623155458.png]]
出典:[[2023__arXiv__Harnessing the Power of LLMs in Practice - A Survey on ChatGPT and Beyond|Yang+, arXiv2023]]
---
by ChatGPT 5 Pro
以下では、Transformer を\*\*「なぜその形なのか」\*\*という観点から、構成要素間の相互作用と設計上の必然性を軸に論述する。単に部品を列挙するのでなく、系列学習という課題設定から出発し、各要素がどの失敗を避け、どの限界を突破するために導入されたのかを説明する。
---
### 1. 課題設定:系列を扱うモデルが満たすべき条件
自然言語・音声・コードなどの入力は可変長の系列であり、**遠距離依存**(数十〜数千トークン離れた要素間の関係)と**局所構造**(句・節のまとまり)の双方が意味理解に重要である。[[RNN]] は理論上長距離依存を表現できるが、勾配伝播の経路長が系列長に比例して増えるため実務では劣化しやすい。[[畳み込みニューラルネットワーク|CNN]] は並列化しやすいが受容野を広げるには層を厚くする必要がある。Transformer は**計算グラフ上の経路長を 1 にまで短縮**し(任意の位置同士が1段で情報交換できる)、かつ [[GPU]]/[[TPU]] に適した大規模並列性を得るために設計された。
---
### 2. 埋め込み:記号から連続空間へ
トークン(サブワード等)を巨大な one‑hot から低次元ベクトルへ写像する埋め込み層は、**分布仮説**(似た文脈に現れる語は似た意味)に基づき、学習可能な連続表現空間を与える。この段階でしばしばベクトルを $\sqrt{d_{\text{model}}}$ でスケーリングする。理由は、後段の加法(位置情報の付加)や残差接続と合成したときに各成分の分散が過小にならないよう**信号スケールを安定化**するためである。出力側ではしばしば\*\*重み共有(weight tying)\*\*を行う。入力埋め込みと出力ソフトマックスの重みを共有することで語彙空間の幾何を整合させ、パラメータを節約しつつ汎化を促す。
---
### 3. 位置の導入:順序性の欠落をどう補うか
自己注意は**集合に対する写像**としては自然だが、そのままでは順序に不変=**置換不変**になってしまう。したがって位置情報を外から注入する必要がある。初期の Transformer は**絶対位置エンコーディング**(サイン・コサイン波形)を用いた。これは未学習の長さへ滑らかに外挿しやすく、周波数ごとの位相差で距離情報を暗黙的に持てるためだ。後続研究では**相対位置表現**(隣接・距離に応じたバイアス)や**回転位置埋め込み(RoPE)**、スケールに強い**ALiBi**などが使われる。これらは「どの位置にいるか」より「**互いに何語離れているか**」が重要なタスク(翻訳、生成)での**距離同変性**を強め、長文への外挿性能や繰り返しパターンの保持を改善する。
---
### 4. 自己注意:内容に基づく可変結合
Transformer の核心は**スケールド・ドット積注意**である。入力 $X \in \mathbb{R}^{n \times d_{\text{model}}}$ に線形写像を施し,
$
Q = XW_Q,\quad K = XW_K,\quad V = XW_V
$
とし,重み付き平均
$
\text{Attn}(Q,K,V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}} + M\right)V
$
を計算する。ここで $M$ はマスクで、後述の因果制約やパディングを実装する。**なぜドット積を $\sqrt{d_k}$ で割るのか**。内積の分散は次元 $d_k$ に比例して増大するため、スケールしないとソフトマックスの指数が過大になり**勾配が飽和**する。割ることで温度を適正化し、学習を安定させる。
自己注意は**内容アドレッシング**(どの単語が今の文脈で重要かを動的に決める)を実現し、文中の任意の位置間に**直接のエッジ**を敷く。これにより長距離依存を 1 ステップで取り込め、同時に**線形写像+凸結合**という構造が最適化を容易にする(勾配が深部で消えにくい)。
---
### 5. マルチヘッド化:表現の多様性と分解能
単一の注意だけでは「どこを見るか」の基準が一つに固定される。**マルチヘッド注意**は $h$ 個の独立な $W_Q^{(i)}, W_K^{(i)}, W_V^{(i)}$ を用い、**異なる表現部分空間**で注意を同時に計算して結合する。これは(i)複数の関係(係り受け、照応、同義・反義、位置的規則性など)を**並列に分担**できること、(ii)各ヘッドの次元を小さく保つことで**注意重みの濃淡が付けやすく**なること、(iii)線形代数的には低ランク近似を組み合わせた**高ランク表現**を構成できること、が利点である。
推論時のメモリ帯域を抑えるために Keys/Values のみを共有する**Multi‑Query**や**Grouped‑Query**といった派生も広く使われる。これはヘッド数に比例して成長するキャッシュ(K,V)のコストを抑え、レイテンシを下げるためである。
---
### 6. マスキング:情報漏洩の統制
生成モデルでは**因果マスク**(未来へのエッジを遮断)により、確率的言語モデル $p(x_t\mid x_{<t})$ の条件付き構造をネットワーク内に厳密に埋め込む。機械翻訳のエンコーダ–デコーダでは、デコーダ側は因果マスクに加えて**クロス注意**でエンコーダ出力にアクセスする。パディングマスクは可変長バッチで無意味なトークンに重みが流れるのを防ぎ、学習を**統計的にクリーン**に保つ。
---
### 7. 残差接続と正規化:深さと安定性の両立
自己注意も FFN も**残差接続**の内側で作用し、外側で**Layer Normalization (LN)** によりスケールを整える。残差は恒等写像への**近道勾配**を提供し、初期段階から深層でも最適化困難を回避する。LN は系列長やバッチに依存しないため、可変長入力・小バッチで安定に働く。
配置には二つの流派がある。**Post‑LN**(元論文に近い)はサブレイヤの後で正規化するが、深いモデルで勾配が不安定になりがちで、学習率ウォームアップが必須になりやすい。**Pre‑LN**はサブレイヤの前に正規化を置き、**勾配の通り道を確保**して極端な深さでも学習を安定化する。実務では Pre‑LN が主流である。いずれの場合も**ドロップアウト**(注意重み・活性・残差への注入)は過学習と共同適応を抑え、汎化を助ける。
---
### 8. 位置ごとの前向きネット(FFN):非線形写像とチャネル混合
注意は重み付き平均であり**位置間の情報路**を作るが、各位置のチャネル方向の変換は線形に留まる。そこで各トークン独立に同一の MLP を適用する**Position‑wise FFN**を挿入する。二層線形+活性(ReLU, GELU, SiLU 等)で、中間幅は通常 $4d_{\text{model}}$ 前後に拡張する。これは**広いボトルネックで非線形基底を豊富に確保**し、注意で集めた情報を**特徴抽出器**として再合成するためである。近年は**ゲーティング付き活性(GEGLU, SwiGLU)**がよく用いられ、入力とゲートの積で**有効ランクを適応的に変える**ことで表現力と学習安定性を両立させる。
---
### 9. エンコーダ、デコーダ、そしてクロス注意
**エンコーダ**は双方向自己注意により入力全体の整合的表現を構築する。文理解・分類・抽出ではこの型(BERT 系)が自然である。**デコーダ**は因果自己注意で左から右へ生成し、**クロス注意**を介してエンコーダの鍵・値にアクセスする(翻訳・要約の典型)。クロス注意は**条件付き生成の情報ボトルネック**であり、入力のどの部分をどの生成時点で参照するかを柔軟に制御する。条件なし生成や自己回帰プリトレイン(GPT 系)ではデコーダ単体が用いられる。**なぜクロス注意が必要か**。単純な連結や平均では、入力と出力の**可変なアライメント**(語順の入れ替え、多対一対応)が表現しにくい。クロス注意は時刻 $t$ ごとにアライメントを**ソフトに再推定**しつつ表現を取り出せる。
---
### 10. 出力分布と訓練目的
生成モデルの最終層は語彙ソフトマックスであり、**確率的言語モデル**として尤度最大化(クロスエントロピー)で学習する。これは**逐次決定の局所一貫性**(次トークン予測の正しさ)を担保し、長文の尤度に分解可能なため効率的である。エンコーダ型では\*\*マスク化言語モデリング(MLM)\*\*のような双方向目的が使われる。**ラベルスムージング**は出力過信を抑え、分布のエントロピーを保って汎化を改善する。
---
### 11. 複雑度と効率化:なぜ O($n^2$) を受け入れ、どこを削るか
自己注意は長さ $n$ に対して計算・メモリとも $O(n^2)$ で、長文では律速になる。これを巡り多様な設計が生まれた。**局所注意(スライディング窓)**は言語の**近傍依存**という経験的事実に立脚し、**希薄なグローバルトークン**で遠距離を補う(Longformer 等)。**カーネル化や低ランク近似**(Performer など)は注意を**線形時間**で近似する。**階層化**(Pooling, Conformer 的混合)や**スカラー・相対バイアス**(ALiBi)はコスト一定で長文外挿性を改善する。推論側では前述の**Multi‑Query**により KV キャッシュの帯域とレイテンシを削減する。いずれの工夫も、「**どこを見るか**の自由度」をなるべく保ちながらコストを下げるというトレードオフの最適点を狙っている。
---
### 12. なぜ「この順序」で積むのか:注意→FFN の反復という設計
各層は概ね「(正規化)→注意→(残差)→(正規化)→FFN→(残差)」というパターンを繰り返す。まず注意で**情報を集約**し、続いて FFN で**非線形写像・チャネル混合**を行う。順序を逆にすると、局所的特徴抽出の後に長距離結合が来るため、深さに対する役割分担が曖昧になりやすい。注意→FFN の交互反復は**メッセージパッシングと局所変換**の交互更新と解釈でき、グラフニューラルネットの 1‑hop 伝播と位置独立 MLP を交互に適用する構造に類比される。
---
### 13. 正則化と初期化・最適化の設計意味
**ドロップアウト**や**Attention Dropout**は、重み付き平均の**鋭いピーク**に過度に依存するのを防ぎ、幅広いコンテキストを探索させる。**AdamW** と**学習率ウォームアップ**は、初期段階で残差経路に近い挙動を保ちつつ安定に大スケール学習を始動させるための定石である。これらは厳密には「アーキテクチャ外」の要素だが、Transformer の深さ・幅・バッチスケールと**不可分に結びついた設計選択**である。
---
### 14. もし要素を外したらどうなるか(設計の反証可能性)
位置エンコーディングを外すとモデルは**単語袋(Bag‑of‑Words)**に退化し、語順に依存する課題で破綻する。マルチヘッドを 1 頭にすると、異種の関係を同じ尺度で取り合うため**干渉**が増え性能が下がる。残差や LN を外すと**深層最適化が不安定**になり、学習が進まない。FFN を外すと、注意による集約はできても**非線形な特徴抽出器**が不足し表現力が落ちる。因果マスクを外せば自己回帰目的は破れ、学習時と生成時の**分布ミスマッチ**が致命的になる。いずれも、各要素が「性能向上に寄与する」だけでなく、**成立条件を満たすために必要**であることを示している。
---
### 15. まとめ:Transformer を一文で捉える
Transformer は「**位置を与えた集合**」上で、**内容に基づく可変な完全結合**(自己注意)と、**位置ごとの強力な非線形写像**(FFN)を、**残差・正規化**で包んで深く反復する枠組みである。これにより、長距離依存の取り扱い、並列実行、安定した最適化、スケール拡張のすべてを高い次元で両立させる。個々の部品は互いの弱点を補完しており、**なぜ必要か**という観点から見れば、Transformer は「系列学習の要請を満たすための最小限かつ十分な構成」を目指して設計された、と総括できる。