@akshay_pachaar: 你在Anthropic参加机器学习工程师面试。面试官问:"我们的模型在42秒内生成100个token。H…
摘要
解释了KV缓存如何通过消除注意力键和值的冗余重计算来加速LLM推理,在速度与内存之间进行权衡,并介绍了生产级缓存管理挑战。
查看缓存全文
缓存时间: 2026/07/07 19:36
你在Anthropic参加机器学习工程师面试。
面试官问:
“我们的模型生成100个token需要42秒。如何让它快5倍?”
你:“我会优化模型架构,用更好的GPU。”
面试结束。
以下是你遗漏的关键:
真正的瓶颈不是计算,而是重复计算。
没有KV缓存,你的模型在每次生成token时都会重新计算相同的注意力键和值。
这就是为什么9秒的推理变成了42秒。你浪费了80%的时间在重复计算上。
根本问题:
(阅读时参考下图)
LLM token生成是自回归的:
- 从提示词生成token 1
- 从提示词 + token 1 生成token 2
- 从提示词 + token 1 + token 2 生成token 3
每一步,你都在重新处理所有之前的token,通过注意力机制。
生成第50个token时,你为token 1计算了50次注意力。
注意力的现实情况:
对于每个token,Transformer计算:
- 当前token的查询(Q)
- 所有先前token的键(K)
- 所有先前token的值(V)
然后:Attention(Q, K, V) = softmax(QK^T)V
问题:先前token的K和V永远不会改变。你每一步都在重新计算相同的矩阵。
KV缓存如何解决:
不再重新计算K和V矩阵:
- 第一次计算后缓存它们
- 后续token重用缓存的值
- 只计算新token的K和V
没有KV缓存(第50个token):
- 为所有50个token计算Q、K、V → O(n²)
有KV缓存(第50个token):
- 加载token 1-49的缓存K、V
- 只为token 50计算Q、K、V → O(n)
你消除了二次冗余。
那么代价是什么:
KV缓存虽然使推理更快,但也会占用大量内存,所以速度和内存之间总是需要权衡。
为什么第一个token总是更慢:
KV缓存通过在生成token之前计算提示词的KV缓存来加速推理。
这正是ChatGPT生成第一个token比其余token慢的原因。
第一个token:为整个提示词计算KV缓存
剩余token:只加载缓存的KV + 计算新token
以上是KV缓存在单个请求内部的工作方式。
在生产环境中运行是另一个问题。文档重新排序时缓存会失效,单个GPU每天大约丢弃15TB可重用缓存。
我写了一篇文章,正是接着这篇文章结束的地方开始:一种新的开源架构如何在生产规模下管理KV缓存,实现14倍更快的首个token生成时间。
文章内容引用如下。
相似文章
@akshay_pachaar: https://x.com/akshay_pachaar/status/2074502882812952666
一份关于KV缓存管理的实践指南,介绍开源LMCache架构,该架构通过消除代理工作流中的冗余上下文处理,将输入令牌成本降低90%,并将LLM推理速度提升高达14倍。
@_avichawla: 一个棘手的LLM面试题:你在vLLM上部署推理模型,长序列时GPU内存总是不够用。于是你加入KV缓存压缩,驱逐了90%的缓存token。显存占用依旧,GPU仍然内存不足。为什么?
解释了为什么在vLLM上部署推理模型时,驱逐90%的KV缓存token无法释放GPU内存,原因是分页注意力碎片化。同时介绍了NVIDIA的TriAttention解决方案,可实现2.5倍加速和10.7倍内存缩减。
@TheTuringPost: 为什么 KV cache 是 LLM 速度快的主要原因之一?KV cache 将注意力机制与生成阶段连接起来……
KV cache 在自回归生成过程中存储先前计算的键向量和值向量,使模型能够避免在每一步重新计算整个序列,从而显著加速推理,但代价是内存使用增加。
解释提示缓存如何在大型语言模型(LLM)中工作,以Claude为案例,详细说明Transformer的KV缓存机制以及在代理工作流中缓存静态前缀的成本效益。
解释提示缓存如何在大型语言模型(LLM)中工作,以Claude为案例,详细说明Transformer的KV缓存机制以及在代理工作流中缓存静态前缀的成本效益。
@pallavishekhar_: 大语言模型中的 KV Cache,阅读链接:https://outcomeschool.com/blog/kv-cache-in-llms…
本文解释了大语言模型中 KV Cache 的概念,详细阐述了其通过存储和复用键值对以避免推理过程中的冗余计算,从而优化文本生成的原理。