概要
LLMの推論効率化に不可欠なKVキャッシュにおいて、なぜQueryを保存せずKeyとValueのみをキャッシュするのかを、数式とAttentionの仕組みから本質的に解説した技術記事。
詳細内容
LLMの推論高速化に寄与する「KV cache」について、その仕組みを「なぜQueryはキャッシュ不要なのか」という問いを軸に解説した記事です。
### 主な解説内容
- **推論フェーズの数式解剖**: Transformerの自己注意機構(Self-Attention)において、位置 $m+1$ の出力を計算する際、過去のQuery ($Q_{1:m}$) は一切参照されない一方で、過去のKey ($K_{1:m}$) とValue ($V_{1:m}$) は現在のQueryとの演算に必須であることを数式で示しています。
- **Causal Maskの役割**: 因果関係マスク(Causal Mask)により、過去のトークンが未来のトークンを参照すること(=過去のQueryが新しいKeyと演算すること)が禁じられているため、過去のQueryを保持する価値がないことを明確化しています。
- **KeyとValueの必要性**: Keyは現在のQueryがどの過去トークンを参照すべきかの計算に、Valueは決定された重みに基づく情報抽出にそれぞれ繰り返し使用されるため、キャッシュによる効率化の恩恵が非常に大きいと説明しています。
MHA、GQA、MQAの違いにも触れつつ、実装レベルで混同しやすいテンソルの形状や計算フローが図解されています。