AI・機械学習
上級

Grouped-Query Attention(GQA)(グループドクエリアテンション)

Multi-Head Attentionのヘッドを複数のグループに分割し、グループ内でKey・Valueの重みを共有する効率化手法。MHAの品質を維持しつつKVキャッシュのメモリ使用量を大幅削減する。LLaMA 2 70BやMistralで採用され、2026年現在の大規模LLMのデファクトスタンダード。

0 回閲覧
0 いいね

Grouped-Query Attention(GQA)とは

Grouped-Query Attention(GQA)は、2023年にGoogleが論文「GQA: Training Generalized Multi-Query Attention Models」で提案したAttention効率化手法です。従来のMulti-Head Attention(MHA)では全ヘッドが独立したKey/Value重みを持ちますが、GQAではヘッドをグループに分けてグループ内でKey/Valueを共有します。これにより、KVキャッシュのメモリを削減しつつ、MHAに近い品質を維持します。

MHA・GQA・MQAの比較

方式Query ヘッド数KV ヘッド数KVキャッシュ倍率品質
MHAHH1.0x(基準)最高
GQA-8HH/80.125xMHAとほぼ同等
GQA-4HH/40.25xMHA同等
GQA-2HH/20.5xMHA同等
MQAH11/H xやや劣化

GQAはMHA(全ヘッド独立)とMQA(全ヘッド共有)の中間に位置する設計で、グループ数を調整することでメモリ効率と品質のトレードオフを柔軟に制御できます。

採用モデル一覧

モデルQueryヘッド数KVヘッド数グループサイズ効果
LLaMA 2 70B6488Q:1KVKVキャッシュ8分の1
LLaMA 3 8B3284Q:1KVKVキャッシュ4分の1
LLaMA 3 70B6488Q:1KVKVキャッシュ8分の1
Mistral 7B3284Q:1KVKVキャッシュ4分の1
Mixtral 8x7B3284Q:1KVMoEとGQAの組み合わせ
Gemma 2 27B32162Q:1KVKVキャッシュ半分
Qwen 2.5 72B6488Q:1KVKVキャッシュ8分の1

2026年現在、7B以上の新規モデルでMHAをそのまま使うケースはほぼなくなり、GQAまたはMLA(Multi-Latent Attention)が標準になっています。

KVキャッシュ削減の実際の効果

LLaMA 2 70Bの場合、コンテキスト長4,096トークン・バッチサイズ32での推論時KVキャッシュ:

  • MHA(64 KVヘッド): 約32GB
  • GQA-8(8 KVヘッド): 約4GB

この差は、A100 80GB GPUでサーブ可能な同時リクエスト数に直結します。GQAにより同一GPUで8倍のスループットが得られる計算になります。

実装の仕組み

GQAの実装は比較的シンプルです。

  1. Queryの投影は従来通り H 個のヘッド分の重みを保持
  2. Key/Valueの投影は G 個(G = H / グループサイズ)分の重みのみ保持
  3. Attention計算時、各Queryヘッドは対応するグループのKey/Valueを参照
  4. グループ内のQueryヘッドは同じKey/Valueに対して異なるAttention Weightを計算

重要な点は、Query側は依然として全ヘッドが独立した重みを持つことです。各Queryヘッドは共有されたKey/Valueに対して異なる「質問」を投げかけるため、表現力の低下は最小限に抑えられます。

MHAモデルからGQAへの変換

既存のMHAモデルをGQAに変換する手法(Uptraining)も提案されています。MHAの各グループ内のKVヘッドの重みを平均化し、その状態から追加学習(元の学習量の5〜10%程度)を行うことで、MHAに近い品質のGQAモデルが得られます。LLaMA 2 70Bはこの手法で開発されました。

よくある質問

Q1: GQAのグループ数はどう決めればよいですか?

A1: 実験的に決定されますが、一般的にはKVヘッド数を4〜8にする設計が多いです。LLaMA 3系列ではKVヘッド8が標準化されています。グループ数が少ないほどメモリ効率は高いですが、品質とのトレードオフがあります。

Q2: GQAとFlashAttentionは併用できますか?

A2: はい、併用可能で実際に標準的な組み合わせです。GQAはKVキャッシュのメモリ削減、FlashAttentionはAttention計算のメモリ・速度最適化と、異なるレイヤーの効率化を担当するため相補的です。

Q3: GQAとMLA(Multi-Latent Attention)の違いは何ですか?

A3: GQAはKVヘッドをグループ化して共有する手法、MLAはKVを低ランク射影で圧縮する手法です。MLAはDeepSeek-V2/V3で採用され、GQA以上のキャッシュ削減(93%超)を達成しますが、実装が複雑でGQAほど広く採用されていません。