微信扫码
添加专属顾问
我要投稿
什么是KV Cache
KV cache,即键值对缓存(Key-Value Cache),是一种存储结构,用于快速访问数据。在计算机科学中,键值对是一种数据结构,其中每个键(Key)映射到一个值(Value)。缓存是一种临时存储数据的方法,以便快速访问,减少对原始数据源的访问次数,提高系统性能。
在大模型领域,KV Cache是一种推理优化手段。
在大模型推理的时候,我们最看重的是两个指标:
一个是吞吐量:吞出量是针对后端系统而言的。吞吐量代表了大模型单位时间内处理Tokens的数量,这里的Tokens一般指输入和输出Tokens数量的总和,在Infra条件一样的情况下,吞吐量越大,大模型推理系统的资源利用效率更高,推理的成本也就是更低(毕竟推理主要就是看成本)
Transformer模型的显著特性在于,每次推理过程仅生成一个token作为输出。该token随后与之前生成的所有tokens结合,形成下一轮推理的输入。这个过程不断重复,直至生成完整的输出序列。然而,由于每轮的输入仅比上一轮多出一个token,导致了大量的冗余计算。KV Cache技术的出现正是为了解决这一问题,它通过存储可复用的键值向量,有效避免了这些不必要的重复计算,显著提高了推理的效率。
如果没有KV缓存,每次生成新token时,都需要重新计算所有token的键和值,这会导致计算复杂度呈平方增长。而KV缓存通过存储之前生成的token的键和值,使得新token的生成只需要与这些缓存的数据进行交互,从而将复杂度降低到线性。
推理的两个阶段
KV Cache技术的引入,将推理过程分为两个阶段,为进一步优化提供了新的可能。
在生成第一个输出token的过程中,该阶段启动。在此阶段,系统会为每个Transformer层精确计算并存储key cache和value cache。此时的浮点运算次数(FLOPs)与未使用KV Cache时保持一致,涉及大量的通用矩阵乘法(GEMM)操作,属于计算密集型任务,需要FP16或者Int8算力值更大的GPU芯片。
当生成第二个输出token开始,直至生成最后一个token,该阶段便启动。此时,由于KV Cache已经存储了之前所有轮次的键值结果,每轮推理只需从Cache中读取数据,并将新计算出的Key和Value添加到Cache中。这导致每轮的FLOPs降低,推理速度比预填充阶段快得多,此时的计算转变为内存密集型,因为需要存储更多的数据,需要显存更大的GPU芯片。
KV Cache不是完美银弹
虽然KV缓存可以显著提高模型的运行效率,但它也带来了内存占用的问题。KV缓存的大小随着序列长度的增加而线性增长,有时甚至可以达到模型大小的数倍。这种内存占用在推理场景中尤为常见,尤其是在显存受限的情况下,KV缓存的大小可能成为制约模型性能的瓶颈。
KV Cache的优化策略:为了解决KV缓存带来的内存问题,研究人员提出了多种优化策略。例如,通过量化技术减少模型权重和KV缓存的内存占用,或者采用模型并行技术将模型分片到多个GPU上。此外,还有研究专注于KV缓存的压缩和内存管理,如FastGen方法,它通过自适应压缩技术,减少了KV缓存的内存需求,同时保持了模型的效率。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-04
Skills使用体验
2026-02-04
AgentScope 正式发布 Skills 支持 - 实现渐进式披露
2026-02-04
从“回答者”进化为“研究员”:全面解析 Deep Research
2026-02-04
刚刚,Xcode 史诗级更新:原生集成 Claude Agent SDK,苹果开发直接起飞!
2026-02-04
国产 Cowork 它来了!MCP、Skills和Expert Agents都支持,全部免费体验!
2026-02-04
混元研究博客上线姚顺雨团队最新成果:从 Context 探索语言模型的范式转变
2026-02-04
通俗讲解大模型短期记忆 vs 长期记忆
2026-02-04
谁动了我的电脑?谁应该抱怨?
2026-01-24
2026-01-10
2025-11-19
2025-11-13
2026-01-26
2026-01-01
2025-12-09
2025-11-12
2026-01-09
2025-12-21
2026-02-04
2026-02-03
2026-02-03
2026-02-02
2026-02-02
2026-02-02
2026-01-31
2026-01-30