概要 で扱った Transformer ブロック(Attention + FFN)を、実際のモデルがどう組み合わせているかを整理します。

記法

本ドキュメントは以下の記法で統一します。

記号 意味
$\cdot$ 行列積(ドット積)
$\odot$ 要素積(アダマール積、element-wise product)
$C$ コンテキスト長
$E$ 埋め込みベクトル次元数
$D$ クエリ、キー次元数

3種類のアーキテクチャ

元祖Transformer論文(機械翻訳向け)は Encoder と Decoder の両方を持つ構造でしたが、その後のモデルは目的に応じてどちらか一方だけを使うものが主流になりました。

構造 代表モデル Attention の種類 得意なタスク
Encoder-only BERT 双方向(マスクなし)Self-Attention 文章分類、固有表現抽出など「理解」系
Decoder-only GPT系 因果(マスクあり)Self-Attention 文章生成など「生成」系
Encoder-Decoder T5、元祖Transformer Encoder:双方向 / Decoder:因果 + Cross-Attention 翻訳、要約など「変換」系

Encoder(BERT型):双方向 Self-Attention

各トークンが自分より前後どちらの位置のトークンも参照できます。Attention の「マスク」の節で扱ったマスク(下三角行列、$-\infty$ で未来を遮断)を適用しません

\[Attention(Q,K,V) = Softmax\left(\frac{Q\cdot K^\top}{\sqrt{D}}\right)\cdot V \quad \text{(マスクなし)}\]
  • 文全体の文脈を一度に見られるため、文の意味理解に強い
  • BERT は事前学習として、文中の一部をマスクして周囲の文脈から当てる Masked Language Model(MLM) を使う(次のトークンを予測する自己回帰的な学習ではない点が GPT と大きく異なる)
  • 構造上、左から右へ1トークンずつ生成していく用途(文章生成)には向かない

Decoder(GPT型):因果 Self-Attention

Attention の「マスク」の節で説明した下三角マスクを適用し、自分より未来の位置は参照できません

\[Attention(Q,K,V) = Softmax\left(mask\left(\frac{Q\cdot K^\top}{\sqrt{D}}\right)\right)\cdot V\]

Encoder-Decoder(T5型):Cross-Attention

翻訳・要約のように「入力系列」と「出力系列」が別物であるタスクでは、Encoder と Decoder を両方使い、両者を Cross-Attention でつなぎます。

\[\text{CrossAttention}(Q_{\text{dec}}, K_{\text{enc}}, V_{\text{enc}}) = Softmax\left(\frac{Q_{\text{dec}}\cdot K_{\text{enc}}^\top}{\sqrt{D}}\right)\cdot V_{\text{enc}}\]
  • $Q$:Decoder 側の現在の隠れ状態から算出(「今どこまで訳したか」)
  • $K, V$:Encoder 側の出力から算出(「入力文全体の情報」)— Encoder は入力全体に対して1回だけ計算すればよく、Decoder の各ステップで使い回される

Decoder 内の処理順序は以下の3段構成になります。

  1. Masked Self-Attention:Decoder がこれまで自分で生成したトークン列だけを参照(因果マスクあり)
  2. Cross-Attention:1. の出力を $Q$、Encoder の出力を $K,V$ として、入力文のどこに注目すべきかを計算
  3. FFN

NOTE
Cross-Attention の $Q$ と $K,V$ が異なる系列(Decoder側/Encoder側)から来る点が、Self-Attention($Q,K,V$ がすべて同じ $x$ から来る)との本質的な違いです。

まとめ

  Self-Attention(Encoder) Self-Attention(Decoder) Cross-Attention
$Q,K,V$ の出所 すべて同じ入力系列 すべて同じ出力系列(生成済み部分) $Q$:Decoder/$K,V$:Encoder
マスク なし(双方向) あり(未来を遮断) なし(Encoder側全体を参照可)
代表モデル BERT GPT T5、元祖Transformer