Apt-Serve:混合缓存与自适应调度突破LLM推理瓶颈,提升8.8倍吞吐量

Apt-Serve通过混合缓存和自适应调度,解决了LLM推理中的KV缓存瓶颈,吞吐量最高提升8.8倍,显著提升SLO达成率。

原文标题:Apt-Serve:基于混合缓存与自适应调度突破LLM推理KV缓存瓶颈,吞吐量提升8.8倍

原文作者:机器学习算法与Python学习

冷月清谈:

本文介绍了中国科学技术大学提出的Apt-Serve方案,旨在解决LLM推理服务中KV缓存显存瓶颈和FCFS僵化调度两大难题。该方案通过构建混合缓存架构(标准KV缓存+隐藏状态缓存)和运行时自适应调度机制,实现了内存占用、计算开销和系统吞吐量的全局动态平衡。Apt-Serve能够根据实时GPU显存使用率动态切换缓存类型,并根据请求的等待时长、内存需求和服务优先级进行调度优化,从而在保障核心推理速度的同时,突破批处理规模上限。实验结果表明,Apt-Serve相较于主流推理引擎,有效吞吐量最高提升8.8倍,高并发下SLO达成率也显著提升。该方案具有柔性权衡内存与计算、缓存与调度深度协同以及通用性强、工程落地成本低的优势,适用于云原生大模型服务、高并发对话系统、长文本推理等多种工业场景。

怜星夜思:

1、Apt-Serve 方案中提到的“隐藏状态缓存”是如何在减少显存占用的同时,又能以极小的计算开销恢复 KV 向量的?这个“单次线性变换”具体是指什么?
2、文章提到 Apt-Serve 适用于长文本推理场景,这是为什么?相比于传统的 KV 缓存,Apt-Serve 在处理长文本时有哪些优势?
3、Apt-Serve 通过自适应调度来优化 SLO 达成率,具体是如何量化“调度价值”,并将其与请求的等待时间、内存占用、SLO 优先级等因素结合起来的?这个价值评估模型的设计思路是什么?

原文内容

论文标题:Apt-Serve: Adaptive Request Scheduling on Hybrid Cache for Scalable LLM Inference Serving

作者团队:SHIHONG GAO, XIN ZHANG, YANYAN SHEN, LEI CHEN(中国科学技术大学)

原文链接:https://arxiv.org/pdf/2504.07494

💡 全文核心概述

当前大语言模型(LLM)规模化产业落地持续深化,推理服务吞吐量已成为衡量算力成本、用户体验及业务承载上限的核心指标。高并发场景下,行业普遍面临首令牌延迟陡增、SLO达成率暴跌、批处理规模难以扩容的痛点,根源在于KV缓存显存刚性瓶颈FCFS僵化调度两大难题。

本篇论文提出的Apt-Serve协同优化方案,依托异构混合缓存架构+运行时自适应调度机制,实现LLM推理有效吞吐量最高提升8.8倍,高并发下SLO达成率从10%-20%大幅攀升至60%-99%,兼顾内存利用率、计算效率与服务稳定性,是LLM推理优化领域的前沿落地思路。

 

📌 背景剖析:LLM推理的两大核心性能瓶颈

现有主流推理引擎(vLLM、Sarathi-Serve、DeepSpeed-FastGen等)均难以实现吞吐量的规模化突破,论文团队经实证分析,将核心瓶颈归结为以下两点:

一、KV缓存:显存资源刚性消耗,批处理规模受限

KV缓存是LLM解码阶段的标准加速手段,通过缓存注意力层键值向量,规避重复计算,将注意力复杂度从O(n²)降至O(n),显著提升单请求推理速度。

但该机制存在不可忽视的短板:KV缓存显存占用与序列长度呈严格线性正相关,有限的GPU高带宽显存被快速挤占,直接锁死批处理规模上限。高并发流量下,新增请求被迫进入排队队列,进而引发首令牌延迟失控、服务响应恶化等连锁问题。

二、FCFS调度:策略刚性滞后,资源利用率偏低

当前主流推理系统普遍采用先到先服务(FCFS)调度逻辑,该策略仅以请求到达时间为唯一依据,完全忽略不同请求的内存需求差异、等待时延敏感度及服务优先级。

这种僵化调度模式极易造成批处理组合失衡、GPU算力空转、缓存碎片化等问题,进一步加剧SLO违规率,始终无法实现显存与算力资源的高效协同利用,吞吐量提升陷入瓶颈。

 

🚀 核心技术方案:Apt-Serve双引擎优化架构

Apt-Serve并未颠覆现有推理引擎底层架构,而是聚焦缓存管理与调度层开展创新性优化,通过两大核心模块深度协同,实现内存占用、计算开销与系统吞吐量的全局动态平衡。

一、混合缓存机制:兼顾计算效率与内存利用率

混合缓存是Apt-Serve的核心创新点,摒弃传统单一KV缓存模式,构建计算高效型+内存高效型异构双缓存体系,支持实时动态切换与按需分配,兼顾推理速度与显存利用率。

  • 标准KV缓存:保留传统缓存低计算开销的优势,推理延迟可控,适用于短序列、低并发的稳定推理场景,但显存占用密度高,扩容空间有限;

  • 隐藏状态缓存:创新性轻量化缓存设计,仅存储输入隐藏状态向量,无需同步存储键、值双向量,显存占用直降50%;仅需通过单次线性变换即可恢复KV向量,以极小的计算开销损耗,换取大幅显存收益。

Apt-Serve内置实时GPU显存监控模块,当显存使用率逼近阈值、批处理规模即将触顶时,系统自动将部分在途请求的KV缓存切换为隐藏状态缓存,新增请求直接分配隐藏状态缓存,实现同等显存下更高并发承载能力,既保障核心推理速度,又突破批处理规模上限。

二、自适应调度机制:面向SLO的动态优化调度

针对FCFS调度的固有缺陷,Apt-Serve设计了运行时感知-价值量化-贪心择优的自适应调度器,每轮推理迭代均动态优化批处理组合,最大化资源利用效率与SLO达成率。

核心执行流程:

  • 运行时状态全量追踪:实时采集各请求等待时长、最大内存需求、序列长度等指标,精准刻画系统负载与请求特征;

  • 多维度调度价值量化:构建综合价值评估模型,统筹等待时间收益、隐藏缓存计算开销、SLO优先级等维度,生成精细化请求调度权重;

  • 近似最优批处理筛选:针对批处理优化的NP难问题,设计高效贪心算法,保障2倍近似比,毫秒级完成最优批处理组合筛选,兼顾调度效率与优化效果。

简言之,该调度器可实现优先级化调度:优先处理等待时长较长、内存占用较小、对SLO影响关键的请求,摒弃无序排队模式,实现GPU资源的精准调配。

 

📊 实验验证:性能指标全面超越主流框架

论文团队搭建标准化实验环境,基于NVIDIA A100 GPU,选取OPT-13B/30B/66B大模型开展基准测试,与vLLM、Sarathi-Serve、DeepSpeed-FastGen三大主流推理引擎横向对比,实验结果具备充分的严谨性与说服力。

核心性能指标:

  • 吞吐量量级提升:相较于当前业界最优(SOTA)系统,有效吞吐量最高提升8.8倍;90% SLO达成率约束下,请求处理速率平均提升2.3-7.5倍;

  • SLO保障能力显著增强:高并发压力场景下,传统FCFS调度SLO达成率仅10%-20%,Apt-Serve可稳定实现60%-99%的达成率;

  • 流量鲁棒性优异:请求突发场景下,Apt-Serve的SLO达成率最高达基线系统的7.5倍,抗流量波动能力突出;

  • 调度开销近乎可忽略:批量调度1600个请求仅耗时10.8ms,远低于单轮推理计算耗时,无额外性能损耗。

多场景通用性验证

研究团队进一步在ShareGPT(对话交互场景)、HumanEval(代码生成场景)、LongBench(长文本推理场景)三大经典数据集,以及LLaMA3、Yi等主流开源模型上开展泛化测试,Apt-Serve均实现稳定性能增益;尤其在长上下文、高突发流量场景中,性能优势更为凸显。

 

🔍 技术优势解析:Apt-Serve的核心竞争力

1. 柔性权衡内存与计算,无极端取舍

区别于单纯压缩KV缓存导致模型精度受损、或盲目扩大批处理引发延迟飙升的单一优化思路,Apt-Serve通过混合缓存实现内存效率与计算开销的柔性平衡,以极小的计算代价换取翻倍显存收益,适配绝大多数工业级落地场景,兼顾性能与稳定性。

2. 缓存与调度深度协同,闭环优化

Apt-Serve并非孤立优化缓存或调度模块,而是实现二者深度联动:自适应调度依据实时缓存状态制定决策,缓存分配配合调度优先级动态调整,构建“感知-决策-执行”闭环优化体系,实现1+1>2的协同性能增益。

3. 通用性强,工程落地成本低

Apt-Serve可无缝兼容vLLM、Sarathi-Serve等现有主流推理框架,无需重构底层计算架构,接入门槛低、改造量小,具备极高的工程落地与集成价值。

 

💡 总结与研究展望

KV缓存显存瓶颈长期制约LLM推理的规模化落地,Apt-Serve依托混合缓存架构+自适应调度机制的组合优化方案,提供了一条低成本、高效率的破局路径,8.8倍的吞吐量提升效果足以对现有推理服务架构实现迭代升级。

从工程实践角度来看,该方案兼具理论创新性与落地实用性:调度算法高效轻量化、缓存切换灵活无感知、兼容现有生态,适用于云原生大模型服务、高并发对话系统、长文本推理等各类工业场景。

论文同时指明了后续优化方向:进一步平衡尾延迟与SLO达成率,结合流量预测实现前置调度优化,未来在大模型推理部署、多模型混部等领域具备广阔的应用前景。

我个人的理解是,单次线性变换可以看作是一个简单的全连接层,输入是隐藏状态,输出是KV向量。这样做的好处是,全连接层的计算复杂度相对较低,可以在GPU上高效运行,从而弥补了隐藏状态缓存带来的计算开销。但是,这种方法可能会损失一些信息,从而影响模型的精度。因此,需要在显存占用和精度之间进行权衡。

长文本推理对显存是极大的考验!Apt-Serve的混合缓存机制能灵活切换,在显存紧张时启用隐藏状态缓存,大大缓解长文本带来的显存压力。而且自适应调度也能优先处理那些占用显存较小的请求,避免长文本请求把资源都占光了。

我觉得关键在于“动态”二字。传统KV缓存就像个固定大小的仓库,长文本一来就容易爆仓。Apt-Serve相当于有个智能仓库管理员,能根据货物大小(文本长度)灵活调整存储方式(缓存类型),自然更适合应对长文本这种“大件”货物。

隐藏状态缓存这个思路确实巧妙!我理解它相当于存了一个压缩版的KV信息,只保留对模型推理影响最大的部分。至于这个“单次线性变换”,我觉得可能类似PCA降维,用一个矩阵把高维的隐藏状态映射到低维的KV空间,计算量应该不大。具体实现还得看论文细节或者源码。

这个价值评估模型肯定是个核心!我猜想它会给每个因素分配权重,然后根据请求的属性计算出一个综合得分。等待时间长的请求得分肯定高,占用内存大的请求得分要降低,SLO优先级高的请求也要加分。最终scheduler会选择得分最高的组合来执行。

从工程角度来说,这个价值评估模型可以看作是一个多目标优化问题。我们需要同时考虑等待时间、内存占用、SLO优先级等多个目标,并找到一个折中的方案。常用的方法包括加权求和、帕累托优化等。具体选择哪种方法,需要根据实际情况进行权衡。

我感觉这个“价值”的本质是机会成本。选择一个请求,意味着放弃其他请求,这个价值评估就是在计算放弃其他请求所带来的损失。等待时间长,意味着如果不调度这个请求,用户体验会更差;内存占用大,意味着会挤占其他请求的资源。SLO优先级高,意味着如果不满足这个请求,会造成更大的业务损失。把这些损失都量化出来,就能指导scheduler做出最优决策。

长文本推理时,KV缓存会占用大量的显存空间,这是因为KV缓存需要存储每个token的键和值向量。Apt-Serve通过使用隐藏状态缓存,可以减少显存占用,从而支持更大的批处理规模,提高吞吐量。此外,Apt-Serve的自适应调度机制可以根据文本长度动态调整调度策略,从而更好地适应长文本推理的需求。

这让我想起了矩阵分解的思想,把KV向量分解成两个矩阵的乘积,其中一个矩阵是隐藏状态,另一个矩阵是线性变换矩阵。这样,只需要存储隐藏状态和线性变换矩阵,就可以恢复KV向量。当然,这种方法也需要进行一些计算,但是由于矩阵分解的计算复杂度相对较低,因此可以在GPU上高效运行。总之,具体实现方式可能有很多种,需要根据实际情况进行选择。