news 2026/4/16 7:26:32

【必学收藏】vLLM/SGLang中混合模型KV cache管理全解析:从理论到实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【必学收藏】vLLM/SGLang中混合模型KV cache管理全解析:从理论到实践

本文详细探讨了在vLLM/SGLang推理框架上适配混合模型时KV cache的管理问题,重点关注QwenNext和KimiLinear模型中的GDN/KDA线性注意力模块。文章分析了线性模块与标准注意力模块的混合使用策略,深入研究了S&Conv(状态值和短卷积输入数据)的存储管理方法,包括块的分配结构、参数大小计算以及与KV cache的对比。同时,文章还探讨了cache传输、prefix cache和并行策略等关键特性的调整方法,为开发者提供了实用的技术指导。

1 、模块架构简介

目前效果较好的混合模型中,线性注意力(Linear Attention)模块与标准注意力(Standard Attention)模块会按照一定比例(如3:1)混合。标准注意力模块一般采用GQA/MLA;线性模块像QwenNext模型使用的是GDN(GatedDeltaNetworks),KimiLinear用的是KDA(Kimi Delta Attention),两个模块基本结构类似,都是基于Delta规则(Delta Rule)的线性注意力的改进。GDN和KDA主要的差异点:

  • 算式上S的衰减项的处理不一样;
  • 两个模块映射计算、激活函数处理有区别。

模块架构如上图所示,主要运算包括线性映射、Conv、L2、alpha、beta、注意力算式等。进一步了解GDN/KDA模块中各个参数的含义,推荐阅读:Qwen/Kimi带火的LinearAttention:原理与细节解析(上)

2、 KV cache的管理

一般来说KV cache仅用于Attention,在vLLM或者SGLang里面增加新模块不必修改KV cache的管理。在GDN和KDA的线性模块中也没有KV cache,但这类模块中却引入了跟请求相关的需要被cache的内容:

  • 递推式的**状态值:**用S(SSM)表示;
  • 短卷积的输入数据:用Conv表示.

与KV cache不同的是,S&Conv不会随序列的变长而递增,对单个请求而言是固定大小。但是对于整个推理框架而言,S&Conv会随请求的数量变化而变化,所以必须考虑多请求S&Conv的管理。

在原基础上适配新类型的cache,涉及的问题包括:

  1. KV cache的逻辑管理是保持不变,还是新增类型?
  2. 预留多少空间存储S&Conv,数据排列如何设计?
  3. PD分离中数据传递时,如果开启了TP并行,数据该如何打包?
2.1 当前逻辑

以vLLM框架为例,先简要看一下标准attention的KV cache管理方案。

vLLM基于paged attention原理的KV cache管理分为两层:物理层和逻辑层。

逻辑层中,由Scheduler通过KV Manager管理着KV Pool逻辑块,通过页表(block table)完成逻辑与物理层映射。

物理层中,KV Cache按照layer来创建的,所有请求共用页(page)。常见的模块是MQA和MLA,虽然其页的分配存在差异,但block使用方式相同。

2.2 线性注意力cache管理

设计原则上,线性注意力的cache管理尽量与框架现有逻辑保持统一,避免设计一套新的管理逻辑增加维护成本。

块的分配结构:S&Conv不需要像KV cache一样得构建链表(block list)来管理块,主要是数据排布,考虑的实现方式:

a) 层与层之间独立,对于单个请求对应的每一层分配一个固定的块;

b) 请求与请求之间独立,单个请求所有线性注意力层的块在一起,占用一个连续片段。

参数的大小计算,当获取到整体可用显存(available memory)后,标准attention的每一层能创建多少的blocks计算方式:

blocks = available_memory // page_size // num_layers

page_size = block_size * heads * head_dim * dtype

block中包含的tokens为固定值。当使用混合注意力后,标准attention的available_memory 值要先减去线性attention层的显存开销。这个值可以根据用户设置的max_num_seqs以及层参数算得。

如果仅考虑数值计算,最后线性attention和标准attention的page_size可能会大小不一致。为了便于内存管理/提升计算效率,统一page_size的大小,要增加对显存的动作:

step1:调整KV blocks数量,让其与S&Conv基本相等;

step2:在较小值的尾部增加pad对齐大小;

2.3 cache的存储大小对比

当序列多长时,线性层的cache才有访存/传输优势? 可以通过计算来寻找答案。

GDN/KDA的cache计算。单层S&Conv的存储大小与模型的配置参数相关,FP16/BF16数据,计算方式:

S:= 2 * num_v_heads / TP * head_k_dim * head_v_dim

Conv:= 2 * (head_k_dim * num_k_heads * 2 + head_v_dim * num_v_heads)/TP * (conv_kernel_size - 1)

注意:S&Conv计算没有考虑投机(speculative)推理,若开启投机推理,还要加上对应的长度。

MLA/GQA的cache计算。在MLA/GQA中 kv cache的存储大小与序列长度相关,计算方式:

MLA:= 2 * seq_len * (kv_lora_rank + qk_rope_head_dim)

GQA:= 2 * 2 * seq_len * num_key_value_heads * head_dim / TP

通过上述的计算方式,结合模型的参数。可以计算出分界点序列长度,举两个例子(假设TP=1):

例1:Qwen3-Next-80B-A3B-Instruct,模型相关参数:

# GDN: "linear_num_key_heads": 16, "linear_num_value_heads": 32, "linear_value_head_dim": 128, "linear_key_head_dim": 128, "linear_conv_kernel_dim": 4, # GQA: "num_key_value_heads": 2, "head_dim": 256,

通过逐步增加序列长度,得到曲线如下,交点处的tokens=536。

例2:Kimi-Linear-48B-A3B-Instruct,

# KDA: "head_dim": 128, "num_heads": 32, "short_conv_kernel_size": 4 # MLA: "qk_rope_head_dim": 64, "kv_lora_rank": 512

通过逐步增加序列长度,得到曲线如下,交点处的tokens=975。

结论:当序列长度超过一个交汇位置tokens数量时,线性注意力层才有cache的优势。

这个计算主要是考虑对访存、以及cache传输的影响,总的显存对比的考虑模型整体情况。

2.4 相关特性的调整

cache的传输:线性注意力层传输与KV cache的传输方式保持一致。考虑的关键点是:线性attention有多头且开启了TP功能时,TP域内不同设备存储的S&Conv不一样,而MLA的KV cache是冗余存储,在传输的时候需要分情况处理。

Prefix cache:由于线性注意力层保留的是最后的状态,所以一般而言prefix cache匹配只能匹配最长序列。如果要匹配中间的结果,得让线性注意力层保存对应的S&Conv的中间状态数据。考虑的实现方案:

离散保存:按照block为单位进行状态保存,例如128个tokens保存一次S&Conv。这种方式下存储cache呈现分段增长。

以算换存:存储GDD/KDA的输入值hidden states,或者映射后的输入值(k/v/alpha/beta),通过重算的方式恢复S;

与Prefix cache有着类似问题的特性还有投机推理。

并行策略:GDN和KDA模块投影层可用列切+行切的方式开启TP并行,如下图所示。结合chunkwise运算基本满足长序列运算需求。由于是按照head切分,所以cache的管理逻辑不需要调整。

TP并行

线性层一般不必开启SP/CP并行,若序列在GDN/KDA计算前被切分,将其数据聚合(gather)即可。由于没有softmax计算,如果要支持CP并行,实现上并不复杂。采用GDN/KDA的并行式计算,主要的问题是cache管理中每个设备上的S&Conv存储是否需要冗余。

目前在vLLM和SGLang中的S&Conv管理都是沿用的Mamba模型的逻辑。最近社区都有在完善在优化这块的功能,比如vLLM中将Attention的page size进行大小对齐,如下图所示,MambaSpec(S&Conv存储)和AttentionSpec(KV cache存储)page size大小相等(适配模型Nemotron-Nano-12B-v2)。

在Tensor的读取方面,调整了Mamba的排布方式保证两种cache做到兼容,更加方便加速算子(FlashAttention)的处理。目前方案适配到了vLLM的V1版本,至于V0版本中Mamba cache已被弃用。

3、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2025 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》下方扫码获取~

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

以上资料如何领取?

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

以上全套大模型资料如何领取?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 19:13:27

【收藏】从入门到精通:AI大模型应用开发学习指南(小白程序员必看)

回望人工智能的发展脉络,2018年Open AI推出的GPT-1堪称行业里程碑。它就像一剂强力催化剂,成功打破了AI技术此前“深藏后台”的沉寂状态,将其推向科技领域的核心聚光灯下,让更多人开始正视并关注这一颠覆性新兴技术。时间的指针拨…

作者头像 李华
网站建设 2026/4/10 17:01:34

TranslucentTB中文界面配置方案:从系统语言到界面显示的完整解析

TranslucentTB中文界面配置方案:从系统语言到界面显示的完整解析 【免费下载链接】TranslucentTB 项目地址: https://gitcode.com/gh_mirrors/tra/TranslucentTB 当你满怀期待地安装TranslucentTB,却发现界面依然显示英文时,这种体验…

作者头像 李华
网站建设 2026/4/4 1:09:52

工业级 Agentic RL 训练对比选型指南

作者:乞力马扎罗不说话 https://zhuanlan.zhihu.com/p/1978600046514685178这篇博客想法诞生于上半年基于 trl / verl 魔改 agentic rl 时期,但拖延一直搁置。眼看相关技术栈演进速度惊人,再不发出来就要过气了,于是决定抛砖引玉分…

作者头像 李华
网站建设 2026/4/14 17:03:47

强力解放双手:纪念币预约自动化工具全攻略

还在为每次纪念币预约时的手忙脚乱而烦恼吗?纪念币预约自动化工具正是为你量身打造的智能助手。这款基于Python开发的工具通过智能填表、验证码自动识别等核心技术,让你轻松实现纪念币预约零失败的目标,彻底告别预约难的时代。 【免费下载链接…

作者头像 李华