13
什么是KV Cache?为什么能显著提升推理速度?有什么局限性?
大模型基础理论中等
📋 面试问题
什么是KV Cache?为什么能显著提升推理速度?有什么局限性?
✅ 期望回答
KV Cache是在自回归生成时,缓存已生成的token对应的Key和Value向量,避免重复计算
工作原理:- 生成第t个token时,只需要计算新token的Q/K/V,之前t-1个token的K和V直接从缓存读取
- 将计算复杂度从\(O(n^2)\)降为\(O(n)\)(每个生成步骤只需要一次向量-矩阵运算)
- 避免了对历史token K/V的重复计算(每个解码步骤原需重新计算所有历史的Attention)
- 节省的计算量约等于 N x d_model x n_layers(N为总生成长度)
- 显存占用大:BatchSize x SeqLen x n_layers x d_model x 2 的连续显存占用,长文本下成为瓶颈
- Prefill阶段仍全量计算:首个token需要计算全部输入,无法利用KV Cache
- 动态Batching受限:不同序列长度导致KV Cache形状不一,Continuous Batching需额外管理
- 优化方向:Multi-Query Attention(MQA)、Grouped-Query Attention(GQA)、PagedAttention(vLLM)、KV量化
#KV Cache#推理优化#Attention