简要回答
生成每个新 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 缓存的是 K 和 V,不缓存 Q——每步新 token 的 Q 仍要现算。另一个常见误解是「KV Cache 省显存」,恰恰相反:它是用显存换算力,长序列下 KV Cache 反而是显存主要占用,才需要 MQA/GQA、分页、量化来压。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📚 知识库
📰 AI 资讯
🛠️ AI 工具
- vLLM
高吞吐 LLM 推理引擎,77,418+ stars。采用 PagedAttention 显存优化技术,吞吐量比 HuggingFace Transformers 高 24 倍,是生产环境部署大模型推理的首选方案,支持 OpenAI 兼容 API
- LangChain
最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施
- Ollama
本地运行开源大语言模型的最简方案,支持 Llama、Qwen、DeepSeek 等主流模型,一键安装、自动下载模型、提供 OpenAI 兼容 API,是 AI 开发者本地部署的首选工具