子玥酱掘金 / 知乎 / CSDN / 简书 同名大家好我是子玥酱一名长期深耕在一线的前端程序媛 。曾就职于多家知名互联网大厂目前在某国企负责前端软件研发相关工作主要聚焦于业务型系统的工程化建设与长期维护。我持续输出和沉淀前端领域的实战经验日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。技术方向前端 / 跨端 / 小程序 / 移动端工程化内容平台掘金、知乎、CSDN、简书创作特点实战导向、源码拆解、少空谈多落地文章状态长期稳定更新大量原创输出我的内容主要围绕前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读展开。文章不会停留在“API 怎么用”而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍希望能帮你在实际工作中少走弯路。子玥酱 · 前端成长记录官 ✨ 如果你正在做前端或准备长期走前端这条路 关注我第一时间获取前端行业趋势与实践总结 可领取11 类前端进阶学习资源工程化 / 框架 / 跨端 / 面试 / 架构 一起把技术学“明白”也用“到位”持续写作持续进阶。愿我们都能在代码和生活里走得更稳一点 文章目录引言一、为什么大模型推理会变慢二、问题出在哪里三、什么是 Key 和 Value四、为什么会产生大量重复计算五、KV Cache 的核心思想六、KV Cache 工作流程对比七、KV Cache 长什么样数据结构八、KV Cache 为什么这么占显存举个例子九、为什么 vLLM 会火vLLM 的解决方案十、Prefix Cache十一、为什么 Agent 时代更依赖 KV Cache十二、下一代 KV Cache 技术十三、真正的本质总结引言如果你研究过大模型推理系统大概率会频繁看到一个词KV Cache几乎所有推理框架都在谈它vLLM 在讲 KV Cache TensorRT-LLM 在讲 KV Cache SGLang 在讲 KV Cache LMDeploy 在讲 KV Cache甚至很多推理优化方案本质上都是围绕 KV Cache 展开的PagedAttention Prefix Cache Chunked Prefill KV Cache Offloading于是很多人开始产生一种错觉KV Cache 是一种高级优化技巧。实际上并不是从某种意义上说没有 KV Cache就没有今天的大模型推理系统。甚至可以说Transformer 决定模型能力 KV Cache 决定推理速度而真正理解 KV Cache需要先回答一个问题为什么大模型推理这么慢一、为什么大模型推理会变慢先看一个简单例子用户输入你好模型生成你好请问有什么可以帮助你然后继续生成你好请问有什么可以帮助你 今天接着你好请问有什么可以帮助你 今天天气再接着你好请问有什么可以帮助你 今天天气不错很多人以为每次只计算新Token实际上不是Transformer 的原始计算方式是第1个Token 计算1次 第2个Token 计算2次 第3个Token 计算3次 第N个Token 计算N次随着序列增长计算量持续增长最终推理越来越慢二、问题出在哪里问题来自 Transformer 的 AttentionAttention 的本质是当前 Token 需要关注历史所有 Token。例如我 爱 北 京 天 安 门生成门时。模型需要关注我 爱 北 京 天 安所有历史内容计算过程Q × K得到相关性然后Attention × V得到最终结果这里出现三个核心概念Query (Q) Key (K) Value (V)三、什么是 Key 和 ValueTransformer 每一层都会生成Q K V三个向量例如Token: 北京经过线性变换Q_beijing K_beijing V_beijing其中Q 我想找谁 K 我是哪个信息 V 我携带什么内容可以理解成Q 查询条件 K 索引 V 数据类似数据库Key → Value结构这也是KV名称的来源。四、为什么会产生大量重复计算假设当前上下文我爱北京天安门生成第一个 Token 时Q1 K1 V1完成计算。生成第二个 Token 时很多人以为只算新的Token实际上Q1 K1 V1 Q2 K2 V2又重新计算一次第三个 TokenQ1 K1 V1 Q2 K2 V2 Q3 K3 V3再次重算也就是说历史Token 不断重复计算这是巨大的浪费。五、KV Cache 的核心思想解决方案非常简单已经计算过的 K 和 V不要重复计算。第一次计算Token1 ↓ 生成K1 生成V1保存下来。Cache K1 V1第二次推理直接复用 K1 V1不再重新计算只需要计算K2 V2即可形成历史Token ↓ KV Cache 新Token ↓ 实时计算六、KV Cache 工作流程没有 CacheToken1 Token1 Token2 Token1 Token2 Token3 Token1 Token2 Token3 Token4全部重算。有 CacheToken1 ↓ Cache KV Token2 ↓ Cache KV Token3 ↓ Cache KV下一轮直接读取Cache即可。对比无 Cache1 2 3 4 ... N总计算量O(N²)有 Cache每次只算新增Token变成O(N)推理速度大幅提升。七、KV Cache 长什么样以一个 Attention Layer 为例假设Sequence Length 4 Hidden Size 4096 Heads 32那么缓存内容Layer1 ├── K Cache └── V Cache Layer2 ├── K Cache └── V Cache Layer3 ├── K Cache └── V Cache一直到Layer32每层都有独立 Cache。数据结构通常类似kv_cache{layer_id:{k:Tensor,v:Tensor}}推理时直接读取历史KV参与计算。八、KV Cache 为什么这么占显存这是所有推理系统最头疼的问题。很多人发现模型加载完成 显存正常开始对话后显存疯狂上涨原因就在 KV Cache。举个例子Llama 70B80层 64 Heads 8192 Hidden Size如果上下文32K TokenKV Cache 可能占用几十GB甚至超过模型权重所以推理系统里经常出现模型没撑爆GPU KV Cache撑爆GPU的情况。九、为什么 vLLM 会火因为传统 KV Cache 有严重问题。例如用户A占用10MB用户B占用20MB用户C占用5MB随着会话增多显存碎片越来越多形成Memory Fragmentation问题。vLLM 的解决方案借鉴操作系统分页内存思想。即PagedAttention把 KV Cache 拆成Block1 Block2 Block3像虚拟内存一样管理。这样显存利用率提升 吞吐提升这也是 vLLM 爆火的重要原因。十、Prefix Cache企业场景还有一个问题例如你是一个专业助手 请遵守公司规范 请使用中文回答 ...每个请求都一样这部分 Prompt重复计算非常浪费于是出现Prefix Cache首次计算System Prompt ↓ 生成KV ↓ 缓存后续请求直接复用无需再次 Prefill因此首Token延迟下降非常明显。十一、为什么 Agent 时代更依赖 KV Cache过去 ChatBot几轮对话结束现在 Agent长上下文 长任务 多轮决策例如100K Context甚至1M Context已经开始出现此时KV Cache变成推理系统核心资源很多时候GPU不是算力瓶颈 KV Cache才是瓶颈十二、下一代 KV Cache 技术随着上下文越来越长行业正在研究KV Compression压缩例如量化KV INT8 KV FP8 KV降低显存还有KV Eviction淘汰机制类似LRU Cache策略长期不用的数据自动删除甚至KV Cache Offloading把 KV 放到CPU Memory SSD Remote Memory中。进一步突破 GPU 限制。十三、真正的本质很多人认为Transformer是大模型推理的核心实际上到了推理系统阶段会发现Attention ↓ KV Cache ↓ Memory Management才是真正决定性能的关键因为训练阶段 算力决定效率而推理阶段 显存决定效率KV Cache 恰好连接了Attention Memory两大核心问题。总结如果用一句话解释 KV CacheKV Cache 本质上是 Transformer Attention 的结果缓存机制用空间换时间避免历史 Token 的重复计算。它解决的是重复计算问题核心思想可以概括为已经算过的 K 和 V 不要再算第二次从架构角度来看Transformer 决定模型能力而KV Cache 决定推理效率过去很多人认为GPU 是推理系统的核心但随着长上下文和 Agent 时代到来越来越多工程师开始发现未来推理系统竞争的核心可能不是谁拥有更多 GPU而是谁拥有更高效的 KV Cache 管理能力。
KV Cache 到底是什么?一文讲透大模型推理加速原理
发布时间:2026/6/17 0:03:51
子玥酱掘金 / 知乎 / CSDN / 简书 同名大家好我是子玥酱一名长期深耕在一线的前端程序媛 。曾就职于多家知名互联网大厂目前在某国企负责前端软件研发相关工作主要聚焦于业务型系统的工程化建设与长期维护。我持续输出和沉淀前端领域的实战经验日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。技术方向前端 / 跨端 / 小程序 / 移动端工程化内容平台掘金、知乎、CSDN、简书创作特点实战导向、源码拆解、少空谈多落地文章状态长期稳定更新大量原创输出我的内容主要围绕前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读展开。文章不会停留在“API 怎么用”而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍希望能帮你在实际工作中少走弯路。子玥酱 · 前端成长记录官 ✨ 如果你正在做前端或准备长期走前端这条路 关注我第一时间获取前端行业趋势与实践总结 可领取11 类前端进阶学习资源工程化 / 框架 / 跨端 / 面试 / 架构 一起把技术学“明白”也用“到位”持续写作持续进阶。愿我们都能在代码和生活里走得更稳一点 文章目录引言一、为什么大模型推理会变慢二、问题出在哪里三、什么是 Key 和 Value四、为什么会产生大量重复计算五、KV Cache 的核心思想六、KV Cache 工作流程对比七、KV Cache 长什么样数据结构八、KV Cache 为什么这么占显存举个例子九、为什么 vLLM 会火vLLM 的解决方案十、Prefix Cache十一、为什么 Agent 时代更依赖 KV Cache十二、下一代 KV Cache 技术十三、真正的本质总结引言如果你研究过大模型推理系统大概率会频繁看到一个词KV Cache几乎所有推理框架都在谈它vLLM 在讲 KV Cache TensorRT-LLM 在讲 KV Cache SGLang 在讲 KV Cache LMDeploy 在讲 KV Cache甚至很多推理优化方案本质上都是围绕 KV Cache 展开的PagedAttention Prefix Cache Chunked Prefill KV Cache Offloading于是很多人开始产生一种错觉KV Cache 是一种高级优化技巧。实际上并不是从某种意义上说没有 KV Cache就没有今天的大模型推理系统。甚至可以说Transformer 决定模型能力 KV Cache 决定推理速度而真正理解 KV Cache需要先回答一个问题为什么大模型推理这么慢一、为什么大模型推理会变慢先看一个简单例子用户输入你好模型生成你好请问有什么可以帮助你然后继续生成你好请问有什么可以帮助你 今天接着你好请问有什么可以帮助你 今天天气再接着你好请问有什么可以帮助你 今天天气不错很多人以为每次只计算新Token实际上不是Transformer 的原始计算方式是第1个Token 计算1次 第2个Token 计算2次 第3个Token 计算3次 第N个Token 计算N次随着序列增长计算量持续增长最终推理越来越慢二、问题出在哪里问题来自 Transformer 的 AttentionAttention 的本质是当前 Token 需要关注历史所有 Token。例如我 爱 北 京 天 安 门生成门时。模型需要关注我 爱 北 京 天 安所有历史内容计算过程Q × K得到相关性然后Attention × V得到最终结果这里出现三个核心概念Query (Q) Key (K) Value (V)三、什么是 Key 和 ValueTransformer 每一层都会生成Q K V三个向量例如Token: 北京经过线性变换Q_beijing K_beijing V_beijing其中Q 我想找谁 K 我是哪个信息 V 我携带什么内容可以理解成Q 查询条件 K 索引 V 数据类似数据库Key → Value结构这也是KV名称的来源。四、为什么会产生大量重复计算假设当前上下文我爱北京天安门生成第一个 Token 时Q1 K1 V1完成计算。生成第二个 Token 时很多人以为只算新的Token实际上Q1 K1 V1 Q2 K2 V2又重新计算一次第三个 TokenQ1 K1 V1 Q2 K2 V2 Q3 K3 V3再次重算也就是说历史Token 不断重复计算这是巨大的浪费。五、KV Cache 的核心思想解决方案非常简单已经计算过的 K 和 V不要重复计算。第一次计算Token1 ↓ 生成K1 生成V1保存下来。Cache K1 V1第二次推理直接复用 K1 V1不再重新计算只需要计算K2 V2即可形成历史Token ↓ KV Cache 新Token ↓ 实时计算六、KV Cache 工作流程没有 CacheToken1 Token1 Token2 Token1 Token2 Token3 Token1 Token2 Token3 Token4全部重算。有 CacheToken1 ↓ Cache KV Token2 ↓ Cache KV Token3 ↓ Cache KV下一轮直接读取Cache即可。对比无 Cache1 2 3 4 ... N总计算量O(N²)有 Cache每次只算新增Token变成O(N)推理速度大幅提升。七、KV Cache 长什么样以一个 Attention Layer 为例假设Sequence Length 4 Hidden Size 4096 Heads 32那么缓存内容Layer1 ├── K Cache └── V Cache Layer2 ├── K Cache └── V Cache Layer3 ├── K Cache └── V Cache一直到Layer32每层都有独立 Cache。数据结构通常类似kv_cache{layer_id:{k:Tensor,v:Tensor}}推理时直接读取历史KV参与计算。八、KV Cache 为什么这么占显存这是所有推理系统最头疼的问题。很多人发现模型加载完成 显存正常开始对话后显存疯狂上涨原因就在 KV Cache。举个例子Llama 70B80层 64 Heads 8192 Hidden Size如果上下文32K TokenKV Cache 可能占用几十GB甚至超过模型权重所以推理系统里经常出现模型没撑爆GPU KV Cache撑爆GPU的情况。九、为什么 vLLM 会火因为传统 KV Cache 有严重问题。例如用户A占用10MB用户B占用20MB用户C占用5MB随着会话增多显存碎片越来越多形成Memory Fragmentation问题。vLLM 的解决方案借鉴操作系统分页内存思想。即PagedAttention把 KV Cache 拆成Block1 Block2 Block3像虚拟内存一样管理。这样显存利用率提升 吞吐提升这也是 vLLM 爆火的重要原因。十、Prefix Cache企业场景还有一个问题例如你是一个专业助手 请遵守公司规范 请使用中文回答 ...每个请求都一样这部分 Prompt重复计算非常浪费于是出现Prefix Cache首次计算System Prompt ↓ 生成KV ↓ 缓存后续请求直接复用无需再次 Prefill因此首Token延迟下降非常明显。十一、为什么 Agent 时代更依赖 KV Cache过去 ChatBot几轮对话结束现在 Agent长上下文 长任务 多轮决策例如100K Context甚至1M Context已经开始出现此时KV Cache变成推理系统核心资源很多时候GPU不是算力瓶颈 KV Cache才是瓶颈十二、下一代 KV Cache 技术随着上下文越来越长行业正在研究KV Compression压缩例如量化KV INT8 KV FP8 KV降低显存还有KV Eviction淘汰机制类似LRU Cache策略长期不用的数据自动删除甚至KV Cache Offloading把 KV 放到CPU Memory SSD Remote Memory中。进一步突破 GPU 限制。十三、真正的本质很多人认为Transformer是大模型推理的核心实际上到了推理系统阶段会发现Attention ↓ KV Cache ↓ Memory Management才是真正决定性能的关键因为训练阶段 算力决定效率而推理阶段 显存决定效率KV Cache 恰好连接了Attention Memory两大核心问题。总结如果用一句话解释 KV CacheKV Cache 本质上是 Transformer Attention 的结果缓存机制用空间换时间避免历史 Token 的重复计算。它解决的是重复计算问题核心思想可以概括为已经算过的 K 和 V 不要再算第二次从架构角度来看Transformer 决定模型能力而KV Cache 决定推理效率过去很多人认为GPU 是推理系统的核心但随着长上下文和 Agent 时代到来越来越多工程师开始发现未来推理系统竞争的核心可能不是谁拥有更多 GPU而是谁拥有更高效的 KV Cache 管理能力。