Self-Attentionを複数の独立したヘッド(サブ空間)で並列実行し、それぞれ異なる観点から文脈を捉えた後に結合する機構。単一ヘッドでは捉えきれない多様な関係性(構文的・意味的・位置的)を同時に学習できる。
Multi-Head Attention(MHA)は、Self-Attentionを複数の「ヘッド」に分割して並列実行し、異なる表現部分空間から情報を集約する機構です。Transformerの原論文で提案され、「Attention Is All You Need」の中核的な設計要素です。各ヘッドが独立した重み行列を持つことで、1つのヘッドは構文関係を、別のヘッドは意味的類似性を、さらに別のヘッドは位置的近接性を学習するといった分業が自然に発生します。
数式: MultiHead(Q, K, V) = Concat(head_1, ..., head_h) W_O ただし head_i = Attention(Q W_Qi, K W_Ki, V W_Vi)
| モデル | パラメータ数 | ヘッド数 | d_model | d_k(ヘッドあたり) |
|---|---|---|---|---|
| BERT-base | 110M | 12 | 768 | 64 |
| GPT-2 | 1.5B | 25 | 1600 | 64 |
| GPT-3 | 175B | 96 | 12288 | 128 |
| LLaMA 2 70B | 70B | 64 | 8192 | 128 |
| GPT-4(推定) | ~1.8T | 128 | 16384 | 128 |
ヘッド数はモデルサイズに比例して増加する傾向がありますが、d_k は64〜128で安定しています。
研究(Clark et al., 2019; Voita et al., 2019)により、Transformerの各ヘッドが異なる言語的特徴を自律的に学習することが判明しています。
| ヘッドの種類 | 学習する関係 | 例 |
|---|---|---|
| 位置ヘッド | 直前・直後のトークンへの注目 | 「東京の天気」→「東京」と「天気」の隣接関係 |
| 構文ヘッド | 主語-述語、修飾関係 | 「猫が魚を食べた」→「猫」と「食べた」の主述関係 |
| 意味ヘッド | 意味的に関連するトークン | 「犬と猫」→ 動物カテゴリの共起 |
| コピーヘッド | 同一トークンの繰り返し検出 | 「AはBでBはC」→ 2つの「B」を紐付け |
| 区切りヘッド | 文末・句読点への集中 | 文全体の要約表現を生成 |
この分業はモデルが明示的に指示されるのではなく、学習過程で自然に発生する「創発的」な現象です。
Google が提案。Key と Value を全ヘッドで共有し、Query のみヘッドごとに独立させる方式。KVキャッシュのメモリ使用量を h 分の1に削減。PaLM、Falcon で採用。
MHAとMQAの中間。ヘッドをグループに分け、グループ内でKey/Valueを共有。LLaMA 2 70B、Mistral 7B で採用。MHAの品質を維持しつつMQAに近いメモリ効率を実現。
DeepSeek-V2/V3 で採用。KVを低ランク圧縮して潜在空間に射影し、必要時に復元。KVキャッシュを93%以上削減しつつMHAと同等の品質を達成。
推論時のKVキャッシュサイズは「バッチサイズ × シーケンス長 × レイヤー数 × ヘッド数 × d_k × 2(K+V)× データ型サイズ」で決まります。
| 方式 | KVキャッシュ倍率 | 品質 | 採用例 |
|---|---|---|---|
| MHA | 1.0x(基準) | 最高 | GPT-3, BERT |
| GQA (8グループ) | 0.125x | MHAとほぼ同等 | LLaMA 2 70B, Mistral |
| MQA | 1/h x | やや劣化 | PaLM, Falcon |
| MLA | ~0.07x | MHA同等 | DeepSeek-V2/V3 |
A1: 一定の範囲では改善しますが、d_k が小さくなりすぎると各ヘッドの表現力が低下します。実用的には d_k = 64〜128 を維持する範囲でヘッド数を設定するのが一般的です。
A2: はい。Attention機構はモデルの重み構造に直結するため、アーキテクチャ変更時は再学習(またはファインチューニング)が必要です。LLaMA 2では70Bモデルのみ学習初期からGQAを採用しています。
A3: はい。Vision Transformer(ViT)やSwin Transformerなどで画像パッチ間のMHAが広く使われています。各ヘッドがエッジ・テクスチャ・形状など異なる視覚特徴を学習します。