マルチヘッドアテンション(マルチヘッドアテンション)
マルチヘッドアテンション(Multi-Head Attention, MHA)とは、アテンション計算を複数の独立したヘッド(部分空間)で並行実行し、各ヘッドが異なる種類の関係性パターン(構文的依存、意味的類似、位置関係など)を学習できるようにした機構である。Transformer原論文では8ヘッド構成だったが、GPT-4oでは推定128ヘッド、Llama 3.1 405Bでも128ヘッドに拡大している。
マルチヘッドアテンション(Multi-Head Attention)とは
マルチヘッドアテンション(MHA)は、1つのアテンション演算を複数の独立した「ヘッド」に分割して並列実行し、それぞれが入力の異なる特徴的パターンを捕捉するTransformerの中核手法である。2017年のTransformer原論文でd_model=512を8ヘッドに分割(各ヘッド64次元)する構成が提案された。
概要と動作原理
MHAの動作は以下のステップで構成される:
- 入力の埋め込みベクトル(次元d_model)に対し、ヘッド数hの個別の射影行列Wq_i、Wk_i、Wv_iを適用
- 各ヘッドでScaled Dot-Product Attentionを独立に計算
- 全ヘッドの出力を連結(concatenation)
- 連結結果に出力射影行列Woを適用して最終出力を得る
各ヘッドの次元はd_k = d_model / hとなるため、総パラメータ数は単一ヘッドのアテンションとほぼ同等である。
主要モデルのヘッド構成比較
| モデル | パラメータ | d_model | ヘッド数 | d_k | KV方式 | 最大文脈長 |
|---|---|---|---|---|---|---|
| Transformer Base | 65M | 512 | 8 | 64 | MHA | 512 |
| GPT-2 | 1.5B | 1,600 | 25 | 64 | MHA | 1,024 |
| GPT-3 175B | 175B | 12,288 | 96 | 128 | MHA | 4,096 |
| Llama 2 70B | 70B | 8,192 | 64 | 128 | GQA (8 KV) | 4,096 |
| Llama 3.1 405B | 405B | 16,384 | 128 | 128 | GQA (8 KV) | 128K |
| Mistral 7B | 7.3B | 4,096 | 32 | 128 | GQA (8 KV) | 32K |
| GPT-4o (推定) | ~200B MoE | 12,288 | 128 | 96 | GQA | 128K |
| Gemini 2.5 Pro | ~1.8T MoE | 不明 | 不明 | 不明 | MQA/GQA | 1M |
ヘッドごとの学習パターン
研究により、MHAの各ヘッドが異なる言語的パターンを自然に学習することが判明している:
- 構文ヘッド: 主語-動詞、修飾語-被修飾語の係り受け関係を捕捉
- 位置ヘッド: 直前・直後のトークンに強く注目する近接パターン
- コピーヘッド: 入力中の特定トークンを出力にコピーする動作(In-Context Learning)
- インダクションヘッド: [A][B]...[A]のパターンを認識し次に[B]を予測(ICLの基盤機構)
- 抑制ヘッド: 特定のパターンを抑制し出力の多様性を確保
- BERTの例: 12層x12ヘッド=144ヘッドのうち、約30%が構文関係、20%が位置関係に特化
MHAの派生手法
MHAのKVキャッシュが推論コストの主因となるため、多数の効率化変種が開発された:
| 手法 | Queryヘッド | KVヘッド | KVキャッシュ比 | 品質影響 | 代表モデル |
|---|---|---|---|---|---|
| MHA | h | h | 1.0x | 基準 | GPT-3, BERT |
| MQA | h | 1 | 1/h | やや劣化 | PaLM, Falcon-40B |
| GQA | h | g (1<g<h) | g/h | ほぼ同等 | Llama 3.1, Gemma 2 |
| MLA | h | 圧縮表現 | 可変 | 同等以上 | DeepSeek-V2/V3 |
実装上の注意点
- ヘッド数はd_modelの約数: d_model=4096ならh=32(d_k=128)が一般的
- Tensor並列化: 複数GPUに分散する際、ヘッド単位で分割可能(Megatron-LM方式)
- ドロップアウト: アテンション重みにドロップアウト(通常0.1)を適用して過学習を抑制
- 相対位置エンコーディング: RoPE(Rotary Position Embedding)をQ・Kに適用して位置情報を付与
よくある質問(FAQ)
Q1: ヘッド数を増やせば性能は向上しますか? A: d_modelを固定したままヘッド数を増やすと各ヘッドの次元d_kが小さくなり、ヘッドあたりの表現力が低下する。経験的にはd_k=64〜128が最適で、ヘッド数はd_model/d_kで自動決定される。405Bクラスではd_model=16,384、128ヘッド(d_k=128)が標準構成。
Q2: MHAとMQAではどちらが推論性能が良いですか? A: MQAはKVキャッシュを1/hに削減できるため推論速度が大幅に向上するが、品質がわずかに劣化する。GQAはその中間で、Llama 3.1(64Q/8KV)では品質劣化なしにKVキャッシュを1/8に圧縮している。2026年の標準はGQAである。
Q3: インダクションヘッドとは何ですか? A: インダクションヘッドは「前に[A]の後に[B]が来たパターンを記憶し、再び[A]が出現したら[B]を予測する」2層回路で、In-Context Learning(文脈内学習)の機械的基盤とされる。Anthropicの「A Mathematical Framework for Transformer Circuits」で詳細に解析された。
まとめ
- MHAはアテンションを複数ヘッドに分割し、各ヘッドが構文・意味・位置など異なるパターンを学習する
- 最新モデルは128ヘッド構成が標準で、GQAによるKVキャッシュ効率化が必須
- d_k=64〜128が最適範囲で、d_model/d_kでヘッド数が決まる
- MQA→GQA→MLAと効率化が進み、推論コスト削減とモデル品質の両立が実現