Multi-Query Attention(MQA)MQA
MQA は、すべての Query ヘッドが単一の Key・Value ヘッドを共有する Attention 変種です。KV キャッシュを劇的に削減して推論を高速化しますが、品質劣化が課題で GQA に置き換わる流れです。
詳細解説
MQA(Multi-Query Attention、マルチクエリアテンション)は、Noam Shazeer(Google Brain)が2019年に発表した Attention の変種で、Multi-Head Attention のすべての Query ヘッド(典型的には数十個)が単一の Key ヘッドと単一の Value ヘッドを共有するという、極端な KV 共有設計を取ります。これにより、KV キャッシュのサイズが MHA 比でヘッド数分の1(例: 32ヘッドなら32分の1)に縮小し、推論時のメモリ帯域が劇的に減るため、特に長コンテキスト・大バッチ推論でスループットが5-10倍に向上します。提案当初はあまり注目されませんでしたが、Google PaLM(540B)、Falcon 7B/40B(TII)、StarCoder(BigCode)、ChatGLM など、2022-23年の大規模モデルの推論コスト最適化のために広く採用されました。一方で、MHA からの完全な MQA 化は ppl(perplexity)・下流タスクで品質低下が観測されることが多く、対症療法として「中間設計」である GQA(Grouped Query Attention)が2023年に提案され、ほぼ MHA と同等の品質を保ちつつ MQA 並みの推論効率を実現したため、Llama 2 以降の主要新規モデルは GQA に移行しました。MQA 自体は GQA の特殊ケース(group 数=1)と見なせます。歴史的に重要な発明であり、KV Cache 最適化の発端となる概念として知っておくべき用語です。
実装例 / 使い方
- 01Falcon 7B/40B、PaLM、StarCoder などが MQA を採用しました
- 02長コンテキスト推論で MHA 比で5-10倍のスループット向上を実現しました
- 03近年は GQA への移行が進み新規モデルでの採用は減少しています
関連する用語
Grouped Query Attention(GQA)
GQAGQA は、複数の Query ヘッドが Key・Value ヘッドのグループを共有する Attention 変種です。MHA の品質と MQA のメモリ効率の...
Multi-Head Attention(マルチヘッド注意)
MHAMulti-Head Attention は、Self-Attention を複数の「ヘッド」に分割して並列計算し結果を結合する仕組みです。各ヘッドが異なる文法...
KV Cache(KVキャッシュ)
KV CacheKV Cache は、自己回帰生成中に過去トークンの Key・Value を保存して再利用する仕組みです。1トークン生成あたりの計算量が O(N^2) から O...
Self-Attention(自己注意機構)
SASelf-Attention は、入力系列の各トークンが同じ系列内の他のトークンとの関連度を計算する仕組みです。Query・Key・Value の3行列に射影し...
Flash Attention(高速アテンション)
FAFlash Attention は、GPU の SRAM とタイリングを活用してアテンション行列をメモリに具体化せず計算する I/O 最適化アルゴリズムです。メ...
Multi-Query Attention(MQA)を、実際に活用する
用語の意味は分かった。次は実装。EXBANK の無料診断で、貴社で具体的にどう活用できるかをご提案します。
営業時間 平日10-18時 / 通常24時間以内に返信
