

现在越来越多的团队选择租用云GPU实例自托管大语言模型服务,既能灵活管控数据,也能根据业务需求调整资源配置。为了提升推理效率,多数主流服务都会采用预填充、解码阶段拆分的部署架构,利用两个阶段不同的计算特性分配资源,最大化整体吞吐量。
但不少开发者会发现,这种架构下用户经常遇到回复第一个字符后卡顿很久的问题,核心瓶颈就在于跨节点传输KV缓存会占用大量有限的云实例网络带宽,拖慢整个推理流程。

论文标题:SMARTGEN: Seamless Disaggregated LLM Inference with Selective KV Cache Transfer
论文链接:https://arxiv.org/pdf/2607.28150
研究背景
大语言模型的生成式推理分为两个阶段:预填充阶段处理用户输入的prompt,计算生成第一个输出词元,属于计算密集型任务;解码阶段每次基于最新生成的词元预测下一个,属于内存密集型任务。两个阶段的资源需求差异较大,放在同一GPU上运行会出现资源争抢的问题,因此行业普遍采用P/D解耦架构,将两个阶段拆分到不同的集群节点部署,单独做资源调度,大幅提升整体吞吐能力。
但这种架构也带来了新的问题:预填充阶段生成的KV缓存需要全部传到解码节点,才能支撑后续的解码计算。而KV缓存的大小和序列长度、批次大小、模型大小正相关,云GPU实例的网络带宽普遍有限,比如主流的L4、A100云实例带宽大多在10到35Gbps之间,很容易被KV缓存传输占满。测试数据显示,在搭载25Gbps RDMA网络的L20实例上,处理48K词元的长prompt时,KV传输的耗时是预填充计算耗时的6.5倍,占整个任务完成时间的42.2%,直接导致第二个词元返回时间大幅拉长,也就是阶段转换停滞问题。

现有优化方案要么采用全量KV传输,完全受限于带宽瓶颈;要么采用量化方案压缩KV缓存,但会损失模型精度,在长上下文理解等对精度要求高的场景下表现受限。而KV缓存本身存在动态稀疏性的特性给了新的优化方向:已有研究证实,解码阶段只需要用到少部分关键KV条目就能保持和全量缓存相当的精度,如果只在预填充阶段传输这部分关键KV,就能大幅降低网络开销。
但这个思路落地有两个核心挑战:第一,预填充阶段还没有启动解码,无法获取解码阶段用来判断KV重要性的查询、隐状态等信息,很难精准筛选出需要优先传输的KV条目;第二,解码阶段如果缺少需要的KV条目,需要向预填充节点请求,额外的网络往返会增加解码阶段的词元间隔,影响后续的生成速度。
SMARTGEN的核心设计
针对上述挑战,来自复旦大学和昆山杜克大学的团队提出了SMARTGEN,这是一个感知KV重要性的缓存传输引擎,通过三条传输路径配合,实现了解耦架构下的平滑推理过渡。

首先是基于profiling的主动传输路径,负责预填充阶段优先推送通用重要的KV条目。研究团队发现,不同输入下,重要的KV条目往往出现在相似的位置,比如多数模型的前两层注意力的KV是解码必须的,输入序列尾部的KV被选中的概率远高于中间部分,这种位置相似性在不同数据集、不同prompt长度下都保持稳定。基于这个特性,团队先通过离线profiling计算每个KV块的重要性得分,在线运行时,预填充节点每生成一层的KV缓存,就按照离线得到的优先级,优先把重要性最高的KV块通过RDMA推送到解码节点,推送的数量根据预填充耗时和传输耗时的比例计算,保证传输过程完全被预填充计算覆盖,不额外增加延迟。


其次是并行按需传输路径,负责解码阶段高效获取上下文相关的KV条目。解码阶段生成KV索引后,SMARTGEN会根据维护的KV掩码,把索引拆分为本地和远程两个部分,本地KV加载和远程KV请求并行执行,远程请求通过GPU直连RDMA传输,不需要经过CPU中转。为了降低离散KV条目的传输开销,团队还利用注意力计算不依赖KV顺序的特性,对索引进行重排序,让远程KV条目在每一行内连续排列,大幅降低RDMA的I/O次数。这种设计把原本在关键路径上的网络往返开销和本地加载过程重叠,几乎不会增加额外的解码延迟。

最后是投机传输路径,负责在不影响前台任务的前提下传递剩余的低优先级KV条目。解码阶段GPU执行注意力计算时,CPU和RDMA网卡处于空闲状态,SMARTGEN会利用这段空闲时间,按照重要性从高到低的顺序,后台传输剩下的KV块,每次传输的数量控制在总KV块的10%左右,既不会和前台的按需传输争抢带宽,也能在10轮解码迭代内完成所有KV的传输,后续的解码过程就和全量KV本地存储的表现完全一致。

除此之外,SMARTGEN的设计具备很高的通用性,既可以兼容InfiniGen、HATA等不同的KV选择算法,也能适配不同的模型架构和动态变化的工作负载,还支持在没有GPU直连RDMA的低配置云实例上运行,只需要做少量适配调整即可。
性能测试与效果验证
团队在阿里云的L20 GPU实例上搭建了测试环境,使用Llama-3.1、Qwen3、Gemma-3、Phi-4四款主流开源大语言模型,在LongBench的长上下文任务数据集上进行测试,对比了全量传输、普通顺序部分传输、HACK量化方案三个基线的表现。
测试结果显示,SMARTGEN的首二词元延迟 (TTST)相比全量传输方案最高降低4.3倍,后续的平均词元间隔 (TBT)和全量传输的理想表现基本持平,没有明显的额外开销。而普通顺序部分传输虽然也能降低首二词元延迟,但因为按需传输效率低,后续的词元间隔比SMARTGEN高1.5倍;HACK量化方案虽然也能降低传输开销,但因为2bit量化带来的精度损失,在长上下文任务上的相对精度最低只有77%,远低于SMARTGEN和全量缓存基线接近100%的精度表现。

在不同网络带宽的场景下,SMARTGEN的优势更加明显:当网络带宽从32Gbps降低到15Gbps时,SMARTGEN相比全量传输的首二词元延迟提升从2.5倍升高到3.3倍,相比普通部分传输的词元间隔提升从1.4倍升高到1.6倍,证明其在低带宽的低成本云实例上也能有很好的表现。
团队还做了模块消融测试,验证了三条传输路径各自的作用:基于profiling的主动传输相比随机、顺序选择KV的方案,能降低最高51%的按需请求比例;并行按需传输能降低1.1到1.2倍的词元间隔;投机传输则能在10轮迭代后让词元间隔完全对齐全量传输的理想表现。
适用场景与价值
SMARTGEN的设计非常适合中小团队在云环境下自托管大语言模型服务的场景,尤其是长上下文请求占比高、预算有限无法采购高带宽GPU实例的团队。它不需要修改底层模型架构,也不需要额外的硬件投入,只需要在现有解耦推理系统中集成这套传输引擎,就能大幅降低首二词元延迟,提升用户的使用体验,同时保持模型的原有精度。
除此之外,SMARTGEN的优化思路和现有的KV量化、前缀缓存等优化方案是正交的,可以叠加使用,进一步提升推理效率,降低部署成本。
> 本文由 Intern-S2 等 AI 生成,机智流编辑部校对
-- 完 --
机智流推荐阅读:
1.
2.
3.
4.
cc | 大模型技术交流群 hf | HuggingFace 高赞论文分享群 lc|LangChain 技术交流群 code | AI Coding 交流群 具身 | 具身智能交流群 硬件 | AI 硬件交流群 推理 | AI 推理框架交流群 智能体 | Agent 技术交流群