モデル・技術

MQAとは?全ヘッドが同じKVを見る——推論最速の共有Attention

読み:マルチ クエリ アテンション / 英:Multi-Query Attention(MQA)

更新日: 読了目安:約6分

MQA(Multi-Query Attention)は、TransformerAttention全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の設計

部品標準MHAMQA
Query(Q)ヘッドごとに独立ヘッドごとに独立(複数の視点を維持
Key(K)ヘッドごとに独立全ヘッドで1組を共有
Value(V)ヘッドごとに独立全ヘッドで1組を共有

たとえばQueryヘッドが8本あっても、K・Vは1本だけ——8つの「探し方」が、同じ索引棚(K)と同じ引き出し(V)を見にいくイメージです。G-304のScaled Dot-Product Attentionの計算式は変わりません。変えるのはKVテンソルの数だけです。

MHA・GQA・MQAの並び

GQA記事が示す共有度のスペクトラムで、MQAは最右端に立ちます。

方式KVの持ち方推論効率表現力
MHA(標準)ヘッドごとに独自KV△(キャッシュ大)
GQAグループ共有○(中間)
MQA全ヘッドで1組KV◎(最軽・最速)

近年の大規模LLMでは、精度劣化を抑えつつ効率を取るGQAがMQAより選ばれることも多い——MQAは「最速端の選択肢」として覚えると、試験の対比が明確になります。

速度と表現力

KVを1組に集約すると、メモリ読み出しとキャッシュ容量が劇的に減ります——長いコンテキストでの生成が速くなりやすい(G-406の推論高速化の文脈)。

  • 利点 — KVキャッシュ最小、帯域効率◎、デプロイコスト削減
  • 代償 — ヘッドごとに異なる「記憶の引き出し」がなくなる→表現の多様性が制限されやすい
  • 実務 — 学習時はMHA相当で学び、推論時にMQAへ変換する手法も研究されている

MQAは学習アルゴリズム(損失関数・最適化)ではなく、Attentionの部品設計——FlashAttention(実装最適化)やALiBi(位置符号)とは別レイヤーの効率化です。

KVキャッシュとの関係

手法何を減らすか
KVキャッシュ過去KVの再計算推論の実装・アルゴリズム
MQAKVの本数→キャッシュ容量そのものAttentionの設計
FlashAttention注意計算のメモリIOGPU実装

KVキャッシュは「同じ量のKVを賢く使い回す」、MQAは「そもそもKVの量を減らす」——両方効くため、長文生成の高速化でセットで語られることがあります(TF-0108のTransformer文脈)。

試験で押さえるポイント

  • 定義 — 全Queryヘッドが1組のKVを共有するAttention効率化
  • 目的 — 推論時のKVキャッシュ削減・速度向上
  • 位置づけ — MHAとGQAの共有度スペクトラムの最速端
  • すり替え回避 — Transformer名・学習率・損失関数ではない

演習で確認する

G検定:G-295G-304G-180G-406

生成AIパスポート:TF-0108

すり替えに注意

誤った説明正しい理解
MQA=GQA全ヘッド1組KV vs グループ共有の中間案
MQA=KVキャッシュヘッド設計でKV削減 vs 再計算回避のキャッシュ
MQA=FlashAttentionAttention設計 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キャッシュの効果も相乗的に得やすくなります。