- RoPEのアテンション計算が「周波数ブロックの総和」に分解できる数学的性質を活かし、エネルギーの高いブロックへ多くのビットを動的に割り当てるKVキャッシュ量子化手法「Block-GTQ」を提案
- 10モデル・367層すべての比較で既存の均一量子化手法を上回り、MAE(平均絶対誤差)を32〜80%削減。Llama-3.1-8BのNIAHスコアは70.6から97.4へ大幅に改善
- H800 GPU 1枚でKVキャッシュをfp16比3.24倍に圧縮しながら推論速度1.34倍を達成し、コードはGitHubで公開済み
研究の背景
LLM(大規模言語モデル)を長い文書の処理や複雑なタスクに活用する際、KVキャッシュ(Key-Valueキャッシュ)のメモリ消費がボトルネックになります。KVキャッシュとは、Transformerの注意機構が過去のトークン情報を再利用するために保持するデータで、コンテキスト長が伸びるほど急速にメモリを使います。
この問題への対策として研究が進むのが「KVキャッシュ量子化」です。fp16(16ビット浮動小数点)で保存していたデータを2〜4ビット程度の整数に変換してデータ量を圧縮する技術で、精度の低い量子化はキャッシュに誤差を蓄積させ、LLMのハルシネーション(事実と異なる内容を出力する現象)の一因にもなりえます。
従来の手法はキャッシュされたキーベクトルを「フラットな1本のベクトル」として扱い、全次元に同じビット幅を割り当てていました。しかし近年のLLMの多くが使うRoPE(Rotary Position Embedding:回転行列を使って位置情報を埋め込む仕組み)には、アテンション計算が2次元周波数ブロックの和に分解できるという数学的性質があります。この性質を量子化に活かせないかというのが本研究の出発点です。
Block-GTQの仕組み
香港中文大学などの研究チームが提案するBlock-GTQは、RoPEのアテンション計算が「周波数ブロックの総和」として分解できることを利用します。各ブロックは独立して注意スコアに寄与するため、ブロックごとに異なるビット幅を割り当てることが理論的に正当化されます。

具体的には、まず各周波数ブロックの「エネルギースコア」を計算します。このスコアはクエリとキーの各ブロック内での二乗平均(二次モーメント)を合計した値で、ラベルなしの校正データだけで求められます。エネルギーが高いブロックはわずかな誤差でもアテンションスコアへの影響が大きくなるため、より多くのビットを割り当てるべき対象です。
ビット幅の割り当てにはAM-GM不等式(算術平均が幾何平均以上であることを示す数学的性質)を使って各ブロックのエネルギー上界を導出し、貪欲アルゴリズム(最適な選択をその都度繰り返す探索手法)で整数ビット幅を決定します。「次の1ビットを追加したとき、どのブロックが最も誤差を減らせるか」を繰り返し選ぶシンプルな仕組みで、論文ではこの貪欲割り当てが整数制約のもとで最適解を与えることが数学的に証明されています。
効率的なカーネル実装
Block-GTQは精度改善だけでなく、実推論での速度・メモリ効率も追求しています。採用するのが「パックドキャッシュ」方式です。

従来の実装では量子化データをいったんfp16に展開してからアテンション計算を行うため、余分なメモリ転送が発生していました。Block-GTQでは融合アテンションカーネルがHBM(GPU内の高速メモリ)から読み込んだ圧縮データをGPUのレジスタで直接展開し、そのまま計算に使います。K3V3(キーとバリューをともに3bit量子化)では1トークンあたりのメモリ転送量がfp16の512バイトから約157バイトへと削減されます。
実験結果
評価は10種類のモデルで実施されました。既存の均一量子化手法であるTurboQuant-MSE(TQ-MSE)と比較したところ、Block-GTQはすべての367層でTQ-MSEを上回り、2〜3 bit/dimのK量子化でMAE(平均絶対誤差)を32〜80%削減しました。
「長い文書の中に埋め込まれた情報を正確に取り出せるか」を試すNIAH(Needle in a Haystack)テストでは、より顕著な差がつきました。

Llama-3.1-8B-Instructの128KコンテキストでNIAHの平均パスレートが70.6%から97.4%へと改善しました。数学的推論を試すAIME 2024/2025では、TQ-MSEがバッファなし設定で0点に崩壊する状況でBlock-GTQは51.7/37.5と実用水準を維持しています。
速度とメモリの実測では、Qwen2.5-3B-Instruct(H800 GPU 1枚)を使って128Kトークンの推論を計測しました。

fp16 FlashAttention-2と比べて1.34倍の高速化と3.24倍のKVキャッシュ圧縮を同時達成し、ピークメモリ消費も56.31GBから19.85GBへと削減されました。256K以上のコンテキストではfp16がメモリ不足で動作しなくなる一方、Block-GTQは安定して動作し続けています。
まとめと今後の展望
Block-GTQは、広く使われているRoPEの数学的構造を掘り下げることで、KVキャッシュ量子化の精度・速度・メモリ効率を同時に高めた研究です。ビット割り当てをブロック単位で動的に行うアイデアは理論的な裏付けも明確で、特に2〜3bitという低ビット域での品質維持に大きな効果を発揮します。
コードはGitHubで公開されており、多様なモデルで再現確認が可能です。今後の課題としてはバリューキャッシュへの同様の分析の拡張や、RoPE以外の位置エンコーディングへの応用が考えられます。超長文コンテキスト(256K以上)での大規模な実証も、今後の研究の広がりとして期待されます。
