Transformer — Attention だけで組み上げる現代AIの基本構造
RNN を捨て、Self-Attention だけで文脈を処理する。2017年の論文「Attention Is All You Need」が提案した Transformer は、GPT も BERT も画像認識も飲み込む現代AIの共通基盤になりました。ブロックの中をデータが流れる様子を、1段ずつ追いかけます。
1. 何が革命だったのか — 「再帰を捨てたら並列になった」
RNN・LSTM は文を前から1トークンずつ処理します。時刻 t の計算は時刻 t−1 の結果を待つ必要があり、どれだけ GPU を並べても学習を並列化できません。Transformer は再帰をやめ、全トークン間の関係を1回の行列積で同時に計算します。
| 観点 | RNN / LSTM | Transformer |
|---|---|---|
| 学習の並列化 | 不可(前の時刻の結果を待つ) | 完全に並列(行列積で一括計算) |
| 離れたトークン間の距離 | 最大 n ステップの伝言ゲーム | 常に1ステップ(直接参照) |
| 長距離依存 | 勾配消失で苦手 | 距離によらず等しく扱える |
| 計算量(系列長 n) | O(n) | O(n²) — これが弱点 |
2. アーキテクチャツアー — デコーダブロックの中を歩く
現代のLLMで主流のデコーダのみ(GPT型)構成を見ます。トークン列(下の色付きチップ)が各ブロックを通過するたびにどう変換されるか、「次へ」を押して1段ずつ進めてください。チップの色=そのトークンが持つベクトルの中身、だと思って眺めるのがコツです。
3. Multi-Head Attention — 複数の視点を並列に持つ
前レッスンの Attention は「どこに注目するか」の重み分布を1つ計算しました。Transformer はこれをh 個の小さなヘッドに分けて並列に行います。各ヘッドは低次元の部分空間で独自の注目パターンを学び、結果を連結して1つに戻します。
下のデモは同じ文「猫が魚を食べた」に対する4つのヘッドの注目パターンです。ヘッドを切り替えて、見ている場所がまったく違うことを確かめてください(光っているトークンが今のクエリ)。
4. 位置エンコーディング — 順序を「波」で埋め込む
Attention は集合演算で、そのままでは語順を区別できません(「猫が魚を」も「魚が猫を」も同じに見える)。そこで各位置に固有のベクトルを足します。原論文の方法は、次元ごとに周波数の違う sin / cos の波を使うもの。
下のヒートマップが位置エンコーディング行列そのものです。位置スライダー p, q を動かして、(1) 各行が固有の「波の指紋」を持つこと、(2) 2つの位置の内積が相対距離 p−q だけで決まることを確かめてください。
5. 因果マスク — 未来を見ないための目隠し
GPT型モデルは「次のトークンを当てる」訓練をします。このとき位置 i の予測に位置 i+1 以降が見えていたら答えを写すカンニングになってしまう。そこで attention 行列の上三角(未来側)を −∞ にして softmax で 0 にします。これが因果マスクです。
6. 3つの型 — エンコーダ・デコーダの使い分け
Transformer ブロックの組み合わせ方で、得意分野の違う3つの型ができます。違いの本質は「attention がどちらを向けるか」だけです。
| 型 | Attention の向き | 代表モデル | 得意な仕事 |
|---|---|---|---|
| エンコーダ型 | 双方向(全トークンが互いを見る) | BERT | 文の理解・分類・検索 |
| デコーダ型 | 左→右のみ(因果マスク) | GPT系・現代のLLMのほぼ全部 | 文章生成・対話 |
| エンコーダ+デコーダ型 | 入力側は双方向、出力側は因果+入力参照 | T5、翻訳モデル | 翻訳・要約など系列変換 |
7. まとめ
- 再帰を捨てて並列化 — 全トークン対を行列積で一括処理。これが巨大モデル時代の入口になった。
- ブロック= Self-Attention(混ぜる)+ FFN(消化する)に残差接続と正規化。同じ形を N 回積むだけ。
- Multi-Head — 低次元の部分空間で複数の注目パターンを並列に学ぶ。
- 位置エンコーディングが語順を、因果マスクが「未来を見ない」制約を与える。