为了解决这个问题,KV-Cache(Key Value-Cache)应运而生,它是提升 LLM 推理性能的关键技术之一。 KV-Cache 的核心思想是缓存中间计算结果。 速度与内存的权衡 KV-Cache 的引入显著提升了大型语言模型(LLM)的推理速度。 KV-Cache 实践 KV-Cache 是现代大型语言模型(LLM)推理引擎中至关重要的一项优化技术。 该文通过实验展示了启用 KV-Cache 带来的显著加速效果:在 T4 GPU 上对模型 HuggingFaceTB/SmoLLM2-1.7B 进行测试,使用 KV-Cache 相比不使用时,推理速度提升了 小结 KV-cache作为一种极为强大的性能优化手段,能够显著提升语言模型(LLM)生成文本的速度。
在应用战场,动态记忆网络让销售AI学会千人千面沟通,询价转化率飙升;KV-Cache缓存技术将推理速度提升5倍,也为显存占用埋下伏笔。 *点击图片查看全文 技术原理类 《大模型的性能提升:KV-Cache》 大模型生成文字时,每步都要算前一句的关联,重复计算特费时间。 KV-Cache 就像给模型备个记忆小本本,,把算过的关键数据存起来,下次直接翻本子不用重算,能让生成速度快 5 倍。本文将从理论到代码实践讲解KV-Cache,助你实现LLM的性能飞速提升。
问题多半出在 KV-cache 上。本文整理了 10 个实际可用的优化方向,都是能直接上生产环境的那种。 1、给 cache 足够的内存空间 vLLM 启动时会预分配一大块 VRAM 给 KV-cache 用。如果分配得太保守,批处理规模会急剧下降,吞吐量也跟着崩。 (需要硬件得支持) 注意这里量化的是 KV-cache 本身,不是模型权重。 新版 vLLM 的 混合 KV-cache 管理器 能协调 SW 层和全注意力层,让缓存命中逻辑在不同层之间保持一致。结果就是 KV 工作集更小、访问更热,长对话场景下的持续吞吐会稳定很多。 6、ROPE 缩放要算清楚成本 ROPE scaling(线性或动态缩放)能把上下文窗口拉长,但每个被 attend 的 token 还是要占 KV-cache 空间的。
传统Transformer用KV-Cache来存储上下文信息。当上下文长度从128K增长到1M,KV-Cache的体积会线性膨胀,全部塞进GPU显存根本不现实。 在很多实际场景中,瓶颈是内存带宽——更具体地说,是KV-Cache的IO操作。 对于MoE模型来说,情况更复杂:不同token可能被路由到不同的专家,KV-Cache的访问模式是不规则的。 传统的推理框架通常把KV-Cache全部放在GPU显存中,但万亿参数模型的KV-Cache体积巨大,一张GPU根本装不下。于是就有了"分布式推理"——把模型拆到多张GPU上,每张GPU只负责一部分。 没有条件记忆机制,100万token的KV-Cache在当前硬件条件下根本跑不起来。第三,原生多模态的加入。
考虑到多模态大模型输入的视觉 token 远多于文本 token,带来了巨大的显存压力,我们对 KV-Cache 资源进行差异化分配。 此外,在极端缓存预算下,性能下降幅度更小,充分验证了基于视觉头的 KV-Cache 分配策略在效率-性能权衡上的优越性。 基于视觉头的 KV-Cache 压缩策略 在完成视觉头的定位之后,我们进一步提出了一种基于视觉头的 KV-Cache 分配与压缩策略。 这种差异化的缓存压缩策略在不显著牺牲模型性能的情况下,显著减少了整体 KV-Cache 的内存使用。 总结 我们提出了 SparseMM,这是一种基于视觉头的 KV-Cache 缓存压缩方法。
Mini-vLLM是一个从零开始写的推理引擎,包含动态批处理、KV-cache 优化、完整的 Prometheus/Grafana 可观测性栈、gRPC 支持,以及分布式多 worker 架构,全部通过 KV-Cache:预填充一次,快速解码 对于已经处理过的 token,其注意力 key 和 value 不会改变,只需计算一次并缓存下来,后续每个解码步骤只处理最新的那个 token。
极致推理引擎优化,通过KV-Cache等技术提升吞吐量并降低成本。 “Serverless GPU架构+底层KV-Cache极致推理优化,大幅降低单TOKEN成本,实现商业模式闭环。”
图1 Static Batching 图2 Continuous Batching Paged Attention 大模型推理计算性能优化一个常用的方式是KV-Cache技术。 KV-Cache通过存储之前token序列的Key和Value的值,避免后续计算中,重复计算Key和Value值,提高整体计算性能,是一种以空间换时间的优化策略。 传统的KV-Cache实现机制是在显存中提前预留一块连续的存储空间来存储Key和Value值。但是,随着存储资源的分配和释放,显存中会存在很多“碎片”。 某些情况下,虽然剩余的显存总量大于KV-Cache所需,但是由于不存在一块连续的存储空间可以满足KV-Cache,计算也无法进行。 Paged Attention是一种新的KV-Cache实现方式,它从传统操作系统的概念中获得灵感,例如分页和虚拟内存,允许KV-Cache通过分配固定大小的“页”或“块”在物理非连续内存上实现逻辑连续
其主要特点如下: 优化内存访问并减少冗余:FlashInfer 通过采用块稀疏格式(block-sparse format)与可组合格式(composable formats)解决键值缓存(KV-cache 1、优化的 KV-Cache 存储结构 近年来,为提升内存效率,KV-Cache 存储机制(如 PageAttention、RadixAttention)开始采用非连续内存布局,以块或 token 为最小存储单元 FlashInfer 证明,这些不同的非连续 KV-Cache 数据结构都可以统一抽象建模为块稀疏矩阵格式(如图 2 所示)。 FlashInfer 的 KV-Cache 具体实现采用块稀疏行格式(Block-Sparse Row, BSR),其块大小 (Br,Bc) 可根据应用动态配置,内核支持对任意配置的高效处理。 该实现兼容 NVIDIA Turing 到 Hopper 全系架构(即 sm75 至 sm90a),能够原生处理稠密和块稀疏的矩阵运算,与上层统一的 KV-Cache 存储格式紧密结合。
全面的注意力内核:提供覆盖所有 LLM 服务常见用例的注意力内核,包括 Prefill、Decode 和 Append 内核的单请求和批处理版本,支持不同格式的 KV-Cache(填充张量、不规则张量和页表 加速压缩/量化 KV-Cache 的注意力:现代 LLM 通常通过量化/压缩的 KV-Cache 部署以减少内存流量。
对实际部署意味着什么:省一半到83%的KV-cache混合架构的真正价值在推理时兑现。 以1.8B参数模型(24层、32K上下文)为例:配置Softmax层数KV-cache内存相比纯Transformer节省纯Transformer24~6.0GB0%CubeAttn-X(交替)12~3.0GB50% 线性注意力层用O(D)状态,相对Softmax的O(LD)KV-cache可忽略不计。所以每减少一层Softmax,推理内存就实打实降一截,而检索能力靠交替排列保住。
模型规模:参数规模达 30 亿,KV-Cache,为对话推理提供核心的语言理解与生成能力。3. 对话管家(Dialogue Manager)基于纯 C++实现,采用单线程事件循环机制,承担着对话流程的统筹调度工作,具体职责包括:多轮对话的 KV-Cache 维护与手动清除;Prompt 模板的动态渲染 官方案例中也有输入序号,可以快速提问),同时支持用户自定义输入,核心交互逻辑通过以下机制实现:上下文记忆通过设置rkllm_infer_params.keep_history = 1,开启上下文记忆功能,KV-Cache 即模型应记住前序对话中的关键信息,如 “女孩眼睛颜色”“背景颜色”,而 “记不住” 是记忆功能未生效的表现,原因可能除了超过历史上下文预设的阈值,有时还有可能是因为上下文长度超限(max_context_len=512),或者KV-Cache 从技术内核看,它通过 “视觉编码器 + LLM + 对话管家” 的模块化设计,平衡了推理性能与开发灵活性:W4A16 量化方案让 30 亿参数模型适配 6 TOPS 算力,KV-Cache 动态维护实现多轮对话效率跃升
随着应用的发展,高效处理更长输入的需求也随之增长 [1][2],这带来了计算代价的挑战:注意力高昂的计算成本和不断增长的键值缓存(KV-Cache)代价。 在运行效率上,MoA 的稀疏注意力使得生成过程中 KV-Cache 长度不扩大便于内存管理,减少了注意力计算量,降低了存储量从而可增大批大小。 这些矩阵与之前序列的键值缓存(KV-Cache)相结合,共同计算出注意力矩阵(A)。为了保持自回归特性,这一计算过程会通过因果掩膜(M)进行调整,最终得到输出(O)。 这种局部注意模式通过丢弃当前注意跨度之外的 KV-Cache,显著降低了长序列场景下的内存需求 [4][5]。 这些吞吐量的提升来源于四个主要因素:生成过程中的静态 KV-Cache(约 3.0 倍);由于稀疏性减少了注意力计算(约 1.5 倍);较小的 KV-Cache 内存支持了更大的批大小(约 1.4 倍)
单个MMA指令可以指定可以块稀疏矩阵中的不同块作为Tensor core的输入,下图展示了FlashInfer如何将tiles加载到共享内存中: 对于稀疏的KV-Cache,地址使用BSR矩阵的indices 数组计算;而密集的KV-Cache地址使用row index仿射变换。 KV-Cache的最后一个维度保持连续(也就是head_size),以适应GPU缓存行大小的合并内存访问。这里使用宽度为128B的异步复制指令LDGSTS来最大化内存带宽。
通过底层 KV-Cache 与算子极效推理优化,KV-Cache 命中率大幅提升,降低 60%+ 的重复计算成本。
极致模型推理引擎优化: 通过底层 KV-Cache 优化,推理速度提升 3-5×,成本降低 60%+。 实效: 通过 Serverless GPU 架构 + 底层 KV-Cache 极致推理优化,实现 成本降低 60%+,达成商业模式闭环。 2.
3. kv-cache机制 效率问题,与kv-cache机制有关:decoder架构与kv-cache键值对缓存机制的⾼度契合,显著提升了其推理效率。 在decoder的⾃回归⽣成过程中,kv-cache能够⾼效存储并重⽤已计算的键值对,避免重 复计算,从⽽加快了⽣成速度。
这一架构有效降低了传统Transformer结构的计算复杂度,减少了KV-Cache的内存占用,从而显著降低了训练和推理成本,同时使混元T1在超长文本推理领域展现出独特优势。
部署成本大幅下降 有效降低了传统Transformer结构的计算复杂度,减少了KV-Cache缓存占用,实现训练和推理成本的下降。
架构方面,创新采用 Hybrid-Mamba-Transformer 融合模式,混元Turbo S有效降低了传统 Transformer 结构的计算复杂度,减少了KV-Cache缓存占用,实现训练和推理成本的下降