MQA(Multi-Query Attention)は、TransformerのAttentionで全Queryヘッドが1組のKey・Value(KV)を共有する効率化です。標準のマルチヘッド注意はヘッドごとにKVを持ち、推論時のKVキャッシュが膨らむ——MQAは「視点(Q)は複数、記憶(KV)は一本」——本記事はGQAが「中間案」として触れるスペクトラムの最速端に焦点を当てます。
推論のボトルネック
LLMの生成は1トークンずつ進みます。各ステップで新トークンのQueryが、過去全トークンのKey・Valueを参照する——G-295のAttentionの枠組みは同じです。
過去のK・VはKVキャッシュに保存して再利用しますが、ヘッド数×層数×トークン数ぶんのKVを抱えるほどメモリ帯域が逼迫します(G-180)。MQAはこのKVの本数そのものを減らす設計です。
MQAの設計
| 部品 | 標準MHA | MQA |
|---|---|---|
| Query(Q) | ヘッドごとに独立 | ヘッドごとに独立(複数の視点を維持) |
| Key(K) | ヘッドごとに独立 | 全ヘッドで1組を共有 |
| Value(V) | ヘッドごとに独立 | 全ヘッドで1組を共有 |
たとえばQueryヘッドが8本あっても、K・Vは1本だけ——8つの「探し方」が、同じ索引棚(K)と同じ引き出し(V)を見にいくイメージです。G-304のScaled Dot-Product Attentionの計算式は変わりません。変えるのはKVテンソルの数だけです。
速度と表現力
KVを1組に集約すると、メモリ読み出しとキャッシュ容量が劇的に減ります——長いコンテキストでの生成が速くなりやすい(G-406の推論高速化の文脈)。
- 利点 — KVキャッシュ最小、帯域効率◎、デプロイコスト削減
- 代償 — ヘッドごとに異なる「記憶の引き出し」がなくなる→表現の多様性が制限されやすい
- 実務 — 学習時はMHA相当で学び、推論時にMQAへ変換する手法も研究されている
MQAは学習アルゴリズム(損失関数・最適化)ではなく、Attentionの部品設計——FlashAttention(実装最適化)やALiBi(位置符号)とは別レイヤーの効率化です。
KVキャッシュとの関係
| 手法 | 何を減らすか | 層 |
|---|---|---|
| KVキャッシュ | 過去KVの再計算 | 推論の実装・アルゴリズム |
| MQA | KVの本数→キャッシュ容量そのもの | Attentionの設計 |
| FlashAttention | 注意計算のメモリIO | GPU実装 |
KVキャッシュは「同じ量のKVを賢く使い回す」、MQAは「そもそもKVの量を減らす」——両方効くため、長文生成の高速化でセットで語られることがあります(TF-0108のTransformer文脈)。
試験で押さえるポイント
- 定義 — 全Queryヘッドが1組のKVを共有するAttention効率化
- 目的 — 推論時のKVキャッシュ削減・速度向上
- 位置づけ — MHAとGQAの共有度スペクトラムの最速端
- すり替え回避 — Transformer名・学習率・損失関数ではない
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| MQA=GQA | 全ヘッド1組KV vs グループ共有の中間案 |
| MQA=KVキャッシュ | ヘッド設計でKV削減 vs 再計算回避のキャッシュ |
| MQA=FlashAttention | Attention設計 vs IO実装最適化 |
| MQA=Transformer | 注意の部品 vs モデル全体 |
| MQA=LoRA | 推論効率のAttention設計 vs 軽量ファインチューニング |
よくある質問
MQAは何をするAttentionの改良ですか?
標準のマルチヘッド注意では各ヘッドが独自のKey・Valueを持ちますが、MQAは全Queryヘッドが1組のKey・Valueを共有します。推論時のKVキャッシュ量を最小化し、トークン生成の速度とメモリ効率を改善する目的で使われます。
MQAとGQAは同じですか?
同じではありません。MQAは全ヘッドでKVを1組に完全共有します。GQAは複数のQueryヘッドがグループごとにKVを共有する中間案です。MQAの方が共有度が高く推論は速い一方、表現力のトレードオフが大きくなりやすいと整理します。
MQAとKVキャッシュは同じですか?
同じではありません。KVキャッシュは過去トークンのKey・Valueを保存して再計算を避ける推論最適化です。MQAはAttentionのヘッド設計としてKVの本数自体を減らす手法です。MQAを採用するとキャッシュが小さくなり、KVキャッシュの効果も相乗的に得やすくなります。