核心要点
自回归重复计算问题
KV Cache 内存开销
PagedAttention 等优化
简要回答
生成每个新 token 时,历史 token 的 K/V 不变,缓存它们可避免 O(n²) 重复计算,使每步增量成本接近 O(n);代价是显存随序列长度线性增长。
标准回答
一、先把结论讲清楚
自回归生成第 t 个 token 时,Attention 需要所有 1..t-1 位置的 K、V。无缓存则每步重算全部历史,浪费算力。KV Cache 存储每层已算过的 K/V 张量,新 token 只算自己的 Q 并与缓存做 Attention。
二、拆开机制和判断点
代价:显存 ≈ 2 × layers × heads × seq_len × head_dim。优化:Multi-Query Attention 共享 K/V 头;
三、补上例子、边界和取舍
PagedAttention 分页管理 KV 显存;量化 KV 降低带宽。
面试里可以补一句:KV Cache 在大模型场景下通常要同时权衡效果、延迟、成本和安全边界。回答时最好带一个例子,比如上下文过长、幻觉、缓存命中或工具调用失败时,系统应该如何降级和观测。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只背概念不会举例;混淆相似术语;忽略工程落地约束(成本、延迟、数据质量)。
追问
追问 1:Prefill 和 Decode 阶段有何不同?
题库专题:LLM 推理的 Prefill 与 Decode 两阶段有什么区别?Prefill 并行处理整段 prompt,算力密集、可吃满 GPU;Decode 自回归逐 token 生成,内存带宽与 KV Cache 读写成为瓶颈,batch 小、延迟敏感。
题库延伸:与本追问相关的专题题 → LLM 推理的 Prefill 与 Decode 两阶段有什么区别?
追问 2:长上下文下 KV Cache 瓶颈如何解决?
题库专题:KV Cache 量化如何进一步降低显存占用?PagedAttention 分页管理 KV;MQA/GQA 减少 KV 头数;KV 量化;Prefix caching 复用相同前缀;滑动窗口/稀疏注意力;Prefill-Decode 分离部署。
题库延伸:与本追问相关的专题题 → KV Cache 量化如何进一步降低显存占用?
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
