モデル・技術

GQAとは?KVを束ねる——注意の精度と推論速度の中間案

読み:グループドクエリアテンション / 英:Grouped Query Attention(GQA)

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

Grouped Query Attention(GQA)は、TransformerAttentionKey・Value(KV)のヘッドを束ねる効率化手法です。標準のマルチヘッド注意は精度が高い一方、推論時にKVの保存コストが重い——GQAは「全部共有(MQA)」と「全部独立(MHA)」の間」に立つ——本記事はヘッド数の暗記より、なぜKVを減らすのかに焦点を当てます。

推論でKVが重い理由

G-295のAttentionは、Query・Key・Valueから注意重みを計算します。学習時も推論時もコストがかかりますが、トークンを1つずつ生成する推論では、過去トークンのKとVをKVキャッシュとして保持し再利用します。

ヘッドが多く、系列が長いほどキャッシュが膨らむ——G-180が示すメモリ制約と直結します。GQAはこのKV側の肥大を抑える設計です。

共有度の三段階

方式KVの持ち方トレードオフ
MHA(標準マルチヘッド)各Queryヘッドが独自のKV表現力◎、推論コスト大
GQA複数QueryがグループでKVを共有速度と精度の中間
MQA全Queryが1組のKVを共有最速・最軽、表現力△

試験では「GQA=MQA」と答えず、共有の度合いで並べるのが安全です。どちらもLLMのデプロイ(推論)課題への応答であり、学習アルゴリズムそのものの名前ではありません。

GQAの直感

たとえばQueryヘッドが8本あるとき、KVヘッドを2本に減らし、4本ずつのQueryグループが同じKVを見る——といった割り当てです。

  1. Queryは複数 — 多様な「注目の視点」を維持
  2. KVは少数 — キャッシュとメモリ帯域を削減
  3. グループ割当 — MQAほど粗く共有せず、精度劣化を抑える

G-304のScaled Dot-Product Attentionの流れは同じです。変えるのはKVテンソルの本数——部品の取り付け方であり、BERTGPTの系列そのものを置き換えるものではありません。

FlashAttention等との関係

名前何を最適化するか
GQAKVヘッド数・キャッシュ量注意の設計(ヘッド構成)
FlashAttentionGPUメモリIO注意の実装
ALiBi位置情報の与え方長文への外挿設計

組み合わせて使われることもありますが、同じ問題への別アプローチです。

試験で押さえるポイント

  • 定義 — KVヘッドをグループ化・共有して注意を効率化
  • 目的 — 推論時のメモリ・速度改善(学習の損失関数ではない)
  • 位置づけ — MHAとMQAの中間案
  • すり替え回避 — Transformer名・課金方式(TF-0110)ではない

演習で確認する

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

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

すり替えに注意

誤った説明正しい理解
GQA=MQAグループ共有 vs 全ヘッドで1組KV
GQA=FlashAttentionヘッド設計 vs IO実装
GQA=Transformer注意の効率化部品 vs 全体
GQA=Queryだけ減らす共有するのは主にKV側
GQA=GAT系列LLMの注意 vs グラフGNN

よくある質問

GQA(Grouped Query Attention)とは何ですか?

Transformerの注意機構を効率化する手法の一つで、Queryヘッドは複数保ちつつ、KeyとValueのヘッドをグループ化して共有します。推論時のKVキャッシュのメモリと帯域を抑えつつ、Multi-Query Attentionより表現力を保ちやすい中間案として知られます。

GQAとMulti-Query Attention(MQA)は同じですか?

同じではありません。MQAはすべてのQueryヘッドが1組のKVを共有する最も攻めた効率化です。GQAは複数のKVヘッドを残し、Queryヘッドをグループごとに割り当てるため、MQAより共有度が低く、標準的なマルチヘッド注意に近い精度を保ちやすいと整理されます。

GQAは新しいTransformerですか?

いいえ。GQAはTransformerやLLMの注意層の内部設計を効率化する技法であり、別のアーキテクチャ名ではありません。Attentionの数学的枠組みは保ちつつ、KVの持ち方を変えて推論を速く・軽くする部品です。