引言
OSDI(USENIX操作系统设计与实现研讨会)和SOSP(ACM操作系统原理研讨会)是计算机操作系统领域最重要的国际会议,在国际上享有极高的学术体系,也是CCF推荐的一类会议。论文整理了 OSDI 2024 和 SOSP 2024 所有与大语言模型 (LLM) 推理优化相关的论文共 10 篇,这些论文中提出的技术,比如 Chunked Prefill、Prefix-Caching、P/D分离等已经被当前主流的推理引擎 vLLM 和 TensorRT-LLM 等所采用。
OSDI 2024
1. Parrot:高效服务基于 LLM 的应用,提供语义变量
随着LLM的兴起,基于LLM的应用程序激增,然而公共LLM服务的API以请求为中心,无法获取应用级信息,如请求从应用、请求间依赖关系及相似性等,只能优化单个请求请求具体来说,LLM应用程序往往需要多次调用LLM完成任务,现有的LLM推理服务因不了解请求间依赖关系,使客户端与服务端交互频繁,产生大量网络和队列延迟,增加了连续请求的开销。此外,LLM请求在同一应用内也有不同调度中优先,如文档摘要应用Map请求和Reduce请求需求不同,Map请求更关注吞吐量的优化,而Reduce请求更关注时延的优化,但公共LLM服务无法区分,影响端到端体验。论文设计了鹦鹉系统,并提出了语义变量(Semantic Variable)这一统一抽象,用于向公共LLM服务引用的请求依赖信息,通过对语义变量的分析,实现对LLM请求的依赖关系分析和优化。
具体来说,Parrot 检测多个LLM请求之间的共同提示,并考虑相邻共享的收益来进行请求调度,减少了振动的Key-Value存储和相邻的重复预填充计算。除此之外,一次性提交整个DAG任务,并使用消息队列来存储这些请求,从而避免间隙的客户端和服务器之间的交互。最后,Parrot根据不同的应用性能目标(延迟、吞吐等)进行性能推导,将所有性能目标相同的任务节点一起调度,通过降低性能目标为延迟的请求Batch Size,降低其推理延迟,通过增加性能目标为吞吐量的请求的 Batch Size,提高其推理吞吐量。
论文链接:www.usenix.org/conference/…
研究机构:上海交通大学、微软研究院
2. ServerlessLLM:大型语言模型的低延迟无服务器推理
LLM在无服务器推理场景下,由于模型的加载时间长,导致冷启动延迟明显,影响了用户体验。本文介绍了一种名为ServerlessLLM的系统,利用推理服务器分层化的硬盘和高效的内存资源,实现本地的检查点存储和加载,并优化模型加载调度,从而解决LLM无服务器推理中的模型加载延迟问题。
具体来说,ServerlessLLM利用层次化的存储带宽来加速模型LLM Chekpoint的加载,并且提出了一种新的Checkpoint加载方法,这种方法支持序列化的、基于块的读取和高效存内张量搜索定位,从而能够加速从硬盘到GPU的LLM参数读取。除此之外,ServerlessLLM提出了高效的在线请求迁移算法,不迁移请求的KV缓存,只迁移请求和已经生成的结果,并且在新的实例上重新计算KV Cache,从而将正在处理的请求可以快速迁移到新的实例。另外,ServerlessLLM 还支持模型加载调度算法,当新请求到达时,实现在 GPU 服务器集群中迁移已加载模型和加载新模型的决策。
论文链接:www.usenix.org/conference/…
研究机构:爱丁堡大学,南洋理工大学
3. dLoRA:动态协调 LoRA LLM 服务的请求和适配器
在使用现有的 LLM 推理系统,如 PEFT 推理 LoRA 架构的 LLM 时,存在两个主要挑战。一是对于每个模型实例,单个基础模型配置多个 LoRA 支架处理不同类型请求时,PEFT 仅支持相同队列请求的批量处理,导致频率低地请求需要逐个处理,GPU 利用率低,请求处理延迟高。二是造成在集群中管理多个LLM副本时,由于 GPU内存限制和请求输入长度的可变性,副本间存在负载不平衡。因此,本文提出 dLoRA,为多 LoRA 的 LLM 推理场景在 GPU 服务器负载级别和单个模型实例内部都进行了优化。
具体来说,对于单个模型实例,dLoRA 采用动态批处理技术,根据请求到达模式和当前系统状态,在多 LoRA 推理和单 LoRA 合并推理之间动态切换,以降低队列延迟。在集群方面,dLoRA结合主动和被动机制来解决副本间的负载不平衡问题。主动机制根据工作负载模式预测性负载请求分配到副本,并预加载LoRA负载,负载机制则通过请求和负载协调迁移算法,在检测到负载不平衡时迁移请求和负载,以实现负载内的负载均衡。
论文链接:www.usenix.org/conference/…
研究机构:北京大学,上海人工智能实验室
4. 使用 Sarathi-Serve 解决 LLM 推理中的吞吐量-延迟权衡问题
LLM 在推理过程中面临着吞吐量和延迟之间的权衡挑战,当前的 LLM 推理调度器在处理请求时,预填充优先策略(比如 vLLM)会导致生成占用,增加解码阶段的 TPOT 延迟;解码优先级策略的请求级批处理(比如Faster Transformer)虽然能保证低TPOT延迟,但系统吞吐量较低。Sarathi-Serve通过分块预填充(Chunked-Prefill)实现了无队列批处理(Stall-Free)批量),在保证高吞吐量的同时实现低延迟。
具体来说,Chunked-Prefill 技术通过将长提示分割为加速的块在多个迭代中和解码的请求批量一起进行计算,有效利用了解码中未充分利用的计算资源,解决了预填充优先策略导致解码停顿问题,从而实现了无间歇批处理技术。在持续批处理中,Sarathi-Serve 将新请求的预填充块与解除的解码操作合并执行,通过限制间歇中执行的最大令牌数预算来确保解码阶段不受预填充阶段的干扰,从而满足TPOT的服务级别目标(Service-Level Objective, SLO)。
Sarathi-Serve 与现有工作的区别:使用 chunked-prefill 技术实现了无失速批处理,能够连续处理每个迭代而不会对用户造成负载的停顿
论文链接:www.usenix.org/conference/…
研究机构:微软印度研究院,佐治亚理工学院
5. DistServe:分解预填充和解码,以实现吞吐量优化的大型语言模型服务
现有LLM推理系统将预填充和解码阶段在同一个LLM实例上处理,以最大化整体系统吞吐量,但在面临SLO的严格TPOT延迟要求时,面临以下问题。1. 大模型的预填充和解码计算特性差异很大,预填充处理长序列且计算密集,解码每次处理一个新生成的Token且受GPU内存带宽限制,两者共置导致严重的相互干扰。 将预填充和解码在同一个LLM实例上处理连接了两个阶段的资源分配和任务策略,难以根据各自的延迟要求进行优化,导致为满足SLO需要过度配置计算资源,增加成本。因此,本文提出DistServe ,将会预填充和解码分配计算到不同的GPU上,并将预填充实例计算出的Key-Value Cache传输给解码实例,消除两者之间在计算上的干扰,使阶段能独立优化其性能目标。
具体来说,DistServe根据应用对TTFT和TPOT的SLO,为Prefill和Decoding阶段的实例分别设置资源分配和毛发策略,并且在实例的计算过程中,根据SLO来确定Prefill实例和Decoding实例的Batch Size。除此之外,DistServe还根据负载带宽合理放置两个阶段的实例,以最小化由KV Cache传输导致的通信开销,从而在满足SLO的前提下,最大化每个GPU的请求货物。
DistServe 系统架构
论文链接:www.usenix.org/conference/…
研究机构:北京大学,阶跃星辰,加州大学圣迭戈分校
6. Llumnix:大型语言模型服务的动态调度
LLM在大众领域广泛应用,来自于各种应用的LLM推理请求在输入长度、输出长度和预期延迟等方面存在差异。由于LLM推理需要多次迭代生成输出Token,并且随着生成的Token也显着存在占用数量不断增加,由于LLM推理请求的输出长度往往被认为是不可预测的,推理时间和显着的存资源需求也难以增加,从而可能导致请求抢占,进而引起推理请求之间的性能交互。推理系统多关注于单实例吞吐量最大化,在跨实例请求调度方面存在不足,无法提供性能隔离并且无法解决内存碎片化问题,并且还无法区分请求优先级来解决不同的延迟目标。因此本文提出Llumnix系统,通过在多个模型间实例进行运行时重新调度来指定和高效不可预测的请求,采用且可扩展的实时迁移机制来生成侧面迁移,从而实现无缝请求迁移。除此之外,卢姆尼克斯还采用动态调度策略统一多个重新调度场景,以提高负载均衡、减少资源碎片、并且区分请求优先级。
具体来说,Llumnix的迁移机制首先在迁移目标实例上初始化显存资源,然后将源实例上的KV Cache逐步迁移到目标实例,在迁移的过程中,源实例仍然在对请求进行处理,不断生成 Token,由于迁移单个 Token 的时间很快很快就小于计算生成单个 Token 的开销,因此在少量迭代内 KV 缓存就可以被迁移完成,之后请求将在实例目的上继续处理,从而达到无缝迁移。除此之外,Lluminx通过虚拟资源占用,为高优先级的请求,队首的请求设置更高的虚拟资源占用,通过在多个实例之间通过无缝请求迁移实现虚拟资源占用的负载均衡,从而达到请求优先调度的目的并解决多实例的显存碎片的问题。
论文链接:www.usenix.org/conference/…
研究院:阿里巴巴
7. 大型语言模型服务的公平性
目前LLM的推理服通过为每个客户端限制流来确保多个客户端之间的公平性,然而这会引起资源利用不足的问题,即使是在资源空闲的情况下,单个客户端也因为限制流而无法充分利用所有的计算资源,从而导致用户体验差。为了解决这个问题,本文提出了基于成本函数的LLM服务公平性定义,并设计虚拟代币积分(VTC)算法实现公平服务,该算法能够有效应对未知的请求长度和动态变化的客户端数量,确保不同客户端间的公平性并提高资源利用率。
具体来说,本文基于成本函数定义LLM服务公平性,考虑处理的输入和输出令牌数量,以加权组合方式减轻每个客户端的服务情况。本文的成本函数柬埔寨移民其他表示方式,如加权FLOPs除此以外,论文设计虚拟代币积分(VTC)算法,跟踪每个客户端的服务情况,优先处理服务最少的客户端。算法在客户端新加入队伍时提升积分以保证公平,通过实时更新集群反映客户端的即时服务情况,可以与连续集群处理机制无缝集成。
VTC 算法核心流程
论文链接:www.usenix.org/conference/…
研究机构: 加州大学伯克利分校,斯坦福大学,杜克大学
8. InfiniGen:通过动态 KV 缓存管理实现大型语言模型的高效生成推理
在LLM推理系统中,KV缓存用于避免解码阶段对Key和Value张量的语音计算,其大小随序列长度和batch size线性增长,在处理长序列请求或者将多个请求一起批处理时, KV 存储甚至可能超过模型权很大,对 GPU 内存的压力非常大。现有的 KV 存储管理方法通过在运行时逐出 Key 和 Value Tensor 来降低 KV存储大小,但存在挑战,如注意力模式在多次迭代间动态变化,固定的 KV 存储分配无法有效管理不同层的查询张量对 KV 存储的需求。因此,本文基于 InfiniGen,利用 CPU 内存,通过前面层的推理结果预测后面重要的KV Cache,并将它们预先加载,从而减少从CPU内存到GPU的数据传输开销并保持模型输出结果的准确性。InfiniGen重要性预测的核心思想是根据前一层的部分查询权重、按键存储和输入,推测下一层的注意力模式,并根据阈值选择关键Key和Value提前进行加载。
论文链接:www.usenix.org/conference/…
研究机构:首尔国立大学
SOSP 2024
1. LoongServe:通过弹性序列并行高效服务长上下文大型语言模型
随着LLM上下文的不断增长,在不同请求以及相同请求的不同级别之间,资源使用情况存在巨大差异。现有LLM服务系统受静态负载策略的影响,无法有效利用底层硬件资源来处理不同长度的为了解决这个问题,本文提出了弹性序列玩具(ESP)这种新的范式,以灵活适应不同的请求和阶段的变化。
具体来说,本文基于 ESP 设计并构建了 LoongServe 系统。它由一组弹性实例和一个全局管理器组成。实例弹性可动态组织组成 ESP 组,任务处理请求,支持高效弹性缩放。GPU 内存形成统一全局全局管理器负责管理请求、弹性实例和显存缓存池,通过调度算法在每次迭代中动态调整请求调度,弹性实例分配,批处理和扩缩容策略,以提高吞吐量并降低延迟。
研究机构:北京大学,上海人工智能实验室
2. PowerInfer:使用消费级 GPU 提供快速大型语言模型
LLM在自然语言任务处理中表现出色,但由于巨大的参数量,在消费级GPU上部署面临着明显存在不足的挑战。现有的方法,比基于卸载的方案,将模型参数卸载到CPU上并且动态地加载到GPU中进行计算,会导致很多模型参数传输的开销。而GPU-CPU混合推理(如llama.cpp),虽然在GPU和CPU上同时进行计算从而减少推理延迟,但仍然需要计算所有的模型参数,导致延迟不够理想。为了解决这些问题,论文提出PowerInfer,一个可以在单个消费级GPU上实现高速LLM推理的系统。
具体来说,PowerInfer利用LLM推理中神经元激活的幂律分配,即少数热神经元重叠激活,大部分冷神经元依输入而定,设计GPU-CPU混合推理引擎,预加载热神经元到GPU,冷神经元参与CPU计算,减少GPU的显着存占用。同时,PowerInfer使用器预测每个请求预测需要激活的神经元,并根据预测结果只选择有限源参与计算,进一步降低了计算的开销,另外,PowerInfer还设计了神经元认知的稀疏子计算,进一步加速了神经元的计算过程,高效实现在消费级显卡上的LLM推理。
PowerInfer系统架构和工作流程
研究机构:上海交通大学
联系我们
我们团队的演示工作,包括综述、模型、数据集,都在开源中。如果您喜欢我们的工作,欢迎开源、指正错误和贡献论文代码,也可以给我们的项目增加Star、引用我们的以支持我们。
- CodeFuse推理优化项目地址:github.com/codefuse-ai…
- GitHub 项目:github.com/codefuse-ai
- HuggingFace 主页:huggingface.co/codefuse-ai
- 魔搭社区主页:modelscope.cn/organizatio…
如果您想更快地获取最新信息,欢迎加入我们的微信群