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