核心要点

简要回答

生成每个新 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 降低带宽。

常见误区

⚠️ 常见踩坑

只背概念不会举例;混淆相似术语;忽略工程落地约束(成本、延迟、数据质量)。

追问

追问 1Prefill 和 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 量化如何进一步降低显存占用?

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习