AI,

KV Cache:你用 ChatGPT 第一个字特别慢,原因就在这里

May 13, 2026 · 1 分钟阅读
KV Cache:你用 ChatGPT 第一个字特别慢,原因就在这里
Share
可引用摘要
1文章标题:KV Cache:你用 ChatGPT 第一个字特别慢,原因就在这里
2发布时间:2026-05-13
3分类:AI
4关键词:featured, AI, Transformer, KV Cache, 推理优化, LLM, Prefill, Attention
5核心摘要:用 ChatGPT 或 Claude 的时候,第一个字出来特别慢,后面噼里啪啦全出来了——背后的原因是 KV Caching。这篇文章从第一性原理出发,六个部分讲清楚 Transformer 推理中最核心的加速机制:LLM 怎么生成 token、Attention 在算什么、冗余在哪、KV Cache 怎么解决、...

常见问题

什么是 KV Cache?

KV Cache 是大语言模型推理中的缓存机制。在自回归生成过程中,把已计算过的 Key 和 Value 向量存起来,避免每生成一个新 token 都重新计算所有历史 token 的 K/V,从而将 O(n²) 的重复计算降为 O(n)。

为什么用 ChatGPT 第一个字出来特别慢?

因为模型需要一次性处理整个输入 prompt,计算所有 token 的 K/V 并缓存——这叫 Prefill 阶段,是最吃算力的。缓存建好后,后续每个 token 只需一次单 token 前向传播,所以后面输出飞快。

KV Cache 的代价是什么?

代价是显存。以 Qwen 2.5 72B 为例,单请求的 KV Cache 可以吃掉好几 GB 显存。并发量一大,KV Cache 比模型权重本身还大。这就是为什么需要 GQA/MQA 和 Paged Attention 等优化技术。

你一定有过这种体验:打开 ChatGPT 或 Claude,输入一段话,回车——然后等,等了好几秒,第一个字才蹦出来。但一旦开始,后面的文字就像开了闸一样,噼里啪啦全涌出来。

这不是网络延迟,也不是服务器卡了。这是 Transformer 架构的固有特性。

今天看到 Avi Chawla 在 X 上发了一篇 KV Caching in LLMs 的文章,从第一性原理出发,配动图对比,把这个机制讲得非常清晰。我把核心内容拆开,用更深入的视角重新组织一遍。

KV Cache:大模型推理加速的第一课


一、LLM 怎么生成 token:只有最后一个 token 说了算

先搞清楚一件事:大语言模型不是一次性把整句话吐出来的,而是一个字一个字地「猜」。

Transformer 处理一段输入时,每个 token 都会经过多层注意力计算,产生一个隐藏状态(hidden state)。但关键来了——只有最后一个 token 的隐藏状态,才被用来预测下一个词。

Transformer 自回归生成 token 流程

打个比方:你让 10 个人排队传话,但最终只有队尾那个人有权开口说下一句话。前面 9 个人虽然都参与了信息传递,但他们的「发言」只是中间产物。

这就是自回归生成(autoregressive generation)的本质:生成第 N+1 个 token,需要把前 N 个 token 全部喂进模型,跑一遍前向传播,但只取最后一个位置的输出做预测。

问题来了:每生成一个新 token,前面所有 token 都要重新跑一遍吗?


二、Attention 在算什么:Q、K、V 三兄弟

要回答上面的问题,得先理解 Attention 机制里最核心的三个向量:Query(Q)、Key(K)、Value(V)。

在每一层 Transformer 中,每个 token 都会被投影成 Q、K、V 三个向量。计算某个 token 的注意力输出时,需要用它的 Q 去和所有 token 的 K 做点积,得到注意力权重,再用权重对所有 token 的 V 加权求和。

用人话说:Q 是「我想问什么」,K 是「我有什么信息可以回答你」,V 是「我具体能给你的内容」。

当我们要生成第 50 个 token 时,模型用第 50 个 token 的 Q,和前 1~49 个 token 的 K、V 做计算。生成第 51 个 token 时,又要用第 51 个的 Q,和前 1~50 个的 K、V 做计算。

注意到了吗?1~49 的 K 和 V,在生成第 50 个和第 51 个 token 时,是完全一样的。但模型每次都从头重算了一遍。

这就是冗余——O(n²) 级别的计算浪费。


三、解决办法:把 K、V 存起来

思路其实很朴素:既然之前算过的 K、V 不会变,那就别重算了,存起来就好。

KV Cache 缓存机制对比:无缓存 vs 有缓存

具体做法:

  1. 生成第一个 token 时,正常计算所有输入 token 的 Q、K、V
  2. 把所有 K、V 存进缓存
  3. 生成第二个 token 时,只算新 token 的 Q、K、V
  4. 把新的 K、V 追加到缓存里
  5. 用新 token 的 Q 对完整缓存(历史 K、V + 新 K、V)跑 Attention

这就是 KV Caching。 一行代码的思路改变,把 O(n²) 的重复计算压成了 O(n)。

你可能觉得这个优化太简单了。但正是这个「太简单了」的思路,成为了今天所有主流推理框架(vLLM、TGI、TensorRT-LLM)的底座。越是基础的优化,影响面越大。


四、为什么第一个字慢:Prefill 阶段的算力暴击

理解了 KV Cache,就能回答文章开头的问题了。

LLM 推理 Prefill 与 Decode 两阶段

LLM 推理分成两个阶段:

Prefill 阶段(预填充):你发送 prompt 的那一刻,模型要一次性处理整个输入,计算所有 token 的 K、V 并存入缓存。如果你的 prompt 有 2000 个 token,模型就要一口气跑 2000 个 token 的完整前向传播。这是最吃算力的阶段——GPU 满载运算,你在屏幕前干等。

Decode 阶段(解码):KV 缓存建好之后,每生成一个新 token,只需要跑一次单 token 的前向传播。新 token 的 Q 对着缓存跑一遍 Attention,预测出下一个词,追加 K、V 到缓存,循环往复。速度快了一个数量级。

所以体感是:第一个字慢——那是在 Prefill;后面噼里啪啦——那是在 Decode。 你的 prompt 越长,Prefill 越久,第一个字等得越痛苦。

这也解释了为什么有些推理服务会给你一个 TTFT(Time To First Token)指标——它直接衡量 Prefill 阶段的耗时。做私有化部署的同学,优化 TTFT 是最直接提升用户体验的抓手。


五、代价:KV Cache 是显存杀手

天下没有免费的午餐。KV Cache 用计算换内存,代价是显存。

KV Cache 显存开销与优化方案

以 Qwen 2.5 72B 为例,粗略估算:模型有 80 层,每层 64 个注意力头,每个头的维度 128。一个 token 在一层中产生的 K、V 各需要 64×128×2(FP16)= 16384 字节。80 层下来,单个 token 的 KV Cache 约 2.5 MB。如果上下文窗口是 4096 个 token,单个请求的 KV Cache 就接近 10 GB

10 个并发?100 GB 显存光给 KV Cache。模型权重本身才多大?

并发量一大,KV Cache 比模型权重还大。 这就是推理部署中最现实的瓶颈——不是算力不够,是显存不够。

业界为此发明了一系列优化技术:

  • GQA(Grouped Query Attention)/ MQA(Multi Query Attention):让多个 Q head 共享 K/V head,大幅减少 KV Cache 的存储量。Llama 3 用的就是 GQA
  • Paged Attention:vLLM 的核心创新,把 KV Cache 像操作系统管理内存页一样分块管理,避免碎片化浪费。非连续存储,按需分配
  • KV Cache 量化:把 KV 从 FP16 压缩到 INT8 甚至 INT4,牺牲极少精度换更大上下文和更多并发

理解了 KV Cache 的原理和代价,你就理解了整个 LLM 推理优化的底层逻辑。所有主流推理框架——vLLM、TGI、TensorRT-LLM——都是围绕「怎么更高效地管理 KV Cache」做文章。


写在最后

很多人天天用 ChatGPT、用 Claude,但从来没想过「第一个字为什么慢」这个问题。这篇文章推荐给所有正在或即将接触大模型推理的朋友——不需要你会写 CUDA,但你至少应该知道你用的工具里面发生了什么。

KV Cache 看起来是一个很底层的技术细节,但它的影响面覆盖了从用户体验(TTFT)到成本控制(显存占用)到架构选型(GQA vs MHA)的方方面面。做 AI 落地的人,绕不开这个知识点。

原文来自 Avi Chawla 的 X 文章,从第一性原理出发讲得很清楚,配了动图对比,适合不太了解推理优化的同学入门。

我一个人打造的 Zaokit AI 产品 已融入企业工作流,2026 年 5 月 31 日前 1000 名用户赠送价值 150RMB 的 Pro 计划,助力大家高效完成图文创作和 PPT 生成。唯一官方网站:zaokit.app

最后,如果你认可 Zaokit AI 的产品理念,欢迎后台留言加入我们的社群。我们不卖课、不割韭菜,只聚焦 ToB 企业场景的 AI 落地实战。 希望在这里,能给你带来不一样的思维火花和真实的商业碰撞。


相关阅读

同分类推荐 · AI

查看更多 AI 文章
Enjoyed this article?

Stay updated with the latest insights on AI, DevOps, and cloud architecture. Subscribe to get notified when new articles are published.

关注微信公众号,获取更多AI前沿洞察
微信公众号:JustJason

扫码关注 JustJason

Found this helpful? Share it with others who might benefit!
Jason Zhang
Written by Jason Zhang Follow
企业级软件架构师,专注 AI 私有化部署、DevOps、云原生架构。曾主导多个知名企业的大模型落地项目。

标签相关推荐