【论文专辑】2024年大模型推理优化论文精选第六期

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 本文整理了 OSDI 2024 和 SOSP 2024 中与大语言模型(LLM)推理优化相关的10篇论文,涵盖 Parrot、ServerlessLLM、dLoRA 等系统,提出的技术如 Chunked Prefill、Prefix-Caching、P/D分离等已被 vLLM 和 TensorRT-LLM 等主流推理引擎采用。这些研究解决了 LLM 推理中的冷启动延迟、资源分配、KV 缓存管理等问题,提升了推理性能和资源利用率。CodeFuse推理优化项目地址https://github.com/codefuse-ai/EasyDeploy

引言

OSDI (USENIX Symposium on Operating Systems Design and Implementation) 和SOSP (ACM Symposium on Operating Systems Principles) 是计算机操作系统领域最重要的两大国际会议,在国际上享有极高的学术声誉,也是 CCF 推荐的 A 类会议。本文整理了 OSDI 2024 和 SOSP 2024 所有与大语言模型 (LLM) 推理优化相关的论文共10篇,这些论文中提出的技术,比如 Chunked Prefill、Prefix-Caching、P/D分离 等已经被当前主流的推理引擎 vLLM 和 TensorRT-LLM 等所采用。


OSDI 2024

1. Parrot: Efficient Serving of LLM-based Applications with Semantic Variable

       随着 LLM 的兴起,基于 LLM 的应用程序日益增多,然而公共 LLM 服务的 API 以请求为中心,无法获取应用级信息,如请求所属应用、请求间依赖关系及相似性等,只能优化单个请求性能,导致应用端到端性能不佳。具体地,LLM 应用程序往往需要多次调用 LLM 完成任务,现有的LLM推理服务因不了解请求间依赖关系,使客户端与服务端交互频繁,产生大量网络和排队延迟,增加了连续请求的开销。此外,LLM 请求在同一应用内也有不同调度偏好,如文档摘要应用中 Map 请求和 Reduce 请求需求不同,Map 请求更关注吞吐量的优化,而Reduce 请求更关注时延的优化,但公共 LLM 服务无法区分,影响端到端体验。本文设计了Parrot 系统,并且提出语义变量(Semantic Variable)这一统一抽象,用于向公共 LLM 服务暴露应用的请求依赖信息,通过对语义变量的分析,实现对 LLM 请求的依赖关系分析和优化。

       具体地,Parrot 检测多个LLM请求之间的共同提示前缀,并考虑前缀共享的收益来进行请求调度,减少了冗余的Key-Value存储和前缀的重复Prefill计算。除此之外,一次性提交整个DAG任务,并且使用消息队列来缓存这些请求,从而避免频繁的客户端和服务器之间的交互。最后,Parrot 根据不同的应用性能目标(延迟,吞吐等)进行性能推导,将所有性能目标相同的任务节点一起调度,通过降低性能目标为延迟的请求的 Batch Size,降低其推理延迟,通过增加性能目标为吞吐量的请求的 Batch Size,提高其推理吞吐量。

DAG 型推理任务示例1.png

论文链接:https://www.usenix.org/conference/osdi24/presentation/lin-chaofan

开源仓库:https://github.com/microsoft/ParrotServe

研究机构:上海交通大学,微软研究院

2. ServerlessLLM: Low-Latency Serverless Inference for Large Language Models

       LLM 在无服务器推理场景下,由于模型的加载时间长,导致冷启动延迟显著,影响了用户体验。这篇论文介绍了一种名为 ServerlessLLM 的分布式系统,通过利用推理服务器层次化的硬盘和内存资源,实现高效的本地检查点存储和加载,并且优化模型加载调度,从而解决 LLM 无服务器推理中的模型加载延迟问题。

       具体地,ServerlessLLM 利用层次化的存储带宽来加速大模型 LLM Chekpoint 的加载,并且提出了一种新的 Checkpoint 加载方法,这种方法支持序列化的,基于块的读取和高效的存内 Tensor 寻址,从而能够加速从硬盘到GPU的LLM参数读取。除此之外,ServerlessLLM提出了高效的在线请求迁移算法,不迁移请求的 KV Cache,只迁移请求和已经生成的结果,并且在新的实例上重新计算 KV Cache,从而可以将正在处理的请求快速迁移到新的实例。此外,ServerlessLLM 还支持模型加载调度算法,当新请求到达时,做出在GPU服务器集群中迁移已加载模型和加载新模型的决策。

2.png

论文链接:https://www.usenix.org/conference/osdi24/presentation/fu

开源仓库:https://github.com/ServerlessLLM/ServerlessLLM

研究机构:爱丁堡大学,南洋理工大学

3. dLoRA: Dynamically Orchestrating Requests and Adapters for LoRA LLM Serving

       在使用现有 LLM 推理系统,比如 PEFT 推理 LoRA 适配的 LLM 时,存在两个主要挑战。一是对于每个模型实例,单个基础模型搭配多个 LoRA 适配器处理不同类型请求时,PEFT 仅支持相同适配器请求的批处理,导致低频率地请求需逐个处理,造成 GPU 利用率低,请求处理延迟高。二是在集群中管理多个LLM副本时,由于 GPU 内存限制和请求输入输出长度的可变性,副本间存在负载不平衡。因此,这篇论文提出 dLoRA,为多 LoRA 的LLM推理场景在GPU服务器集群级别和单个模型实例内部都进行了优化。

       具体地,对于单个模型实例,dLoRA 采用动态批处理技术,根据请求到达模式和当前系统状态,在多 LoRA 推理和单 LoRA 合并推理之间动态切换,以降低端到端延迟。在集群层面,dLoRA 结合主动和被动机制来解决副本间的负载不平衡问题。主动机制根据工作负载模式预测性地将请求分配到副本,并预加载 LoRA 适配器,被动机制则通过请求和适配器协同迁移算法,在检测到负载不平衡时迁移请求和适配器,以实现集群内的负载均衡。

3.png

论文链接:https://www.usenix.org/conference/osdi24/presentation/wu-bingyang

研究机构:北京大学,上海人工智能实验室

4. Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve

       LLM 在推理过程中面临着吞吐量和延迟之间的权衡挑战,当前的 LLM 推理调度器在处理请求时,预填充优先策略(比如 vLLM)会导致生成停滞,增加解码阶段的 TPOT 延迟;解码优先策略的请求级批处理(比如 Faster Transformer)虽能保证低 TPOT 延迟,但系统吞吐量较低。Sarathi-Serve 通过分块预填充 (Chunked-Prefill) 实现了无停滞批处理 (Stall-Free Batching),在保证高吞吐量的同时实现低延迟。

       具体地,Chunked-Prefill 技术通过将长 Prompt 拆分为较短的块在多个迭代中和 Decoding 的请求 Batch 一起进行计算,有效利用了Decoding 中未充分利用的计算资源,解决了预填充优先策略导致的解码停顿问题,从而实现了无停滞批处理技术。在持续批处理中,Sarathi-Serve 将新请求的 Prefill 块与正在进行的 Decoding 操作合并执行,通过限制批次中可执行的最大 Token 数预算来确保 Decoding 阶段不受 Prefill 阶段的干扰,从而满足 TPOT 的服务级别目标 (Service-Level Objective, SLO)。

11.png

Sarathi-Serve 与现有工作的区别:使用 chunked-prefill 技术实现了 stall-free batching,能够连续处理每个 iteration 而不会造成用户感知的停顿


论文链接:https://www.usenix.org/conference/osdi24/presentation/agrawal

开源仓库:https://github.com/microsoft/sarathi-serve

研究机构:微软印度研究院,佐治亚理工学院

5. DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving

       现有 LLM 推理系统将 Prefill 和 Decoding 阶段在同一个LLM实例上处理,以最大化整体系统吞吐量,但在面临SLO 的严格 TPOT 延迟要求时,面临以下问题。1. 大模型的预填充和解码计算特性差异大,预填充处理长序列且计算密集,解码每次处理一个新生成的Token且受 GPU 内存带宽限制,两者共置导致严重的相互干扰。2. 将Prefill 和 Decoding 在同一个LLM实例上处理耦合了两个阶段的资源分配和并行策略,难以根据各自的延迟要求进行优化,导致为满足 SLO 需过度配置计算资源,增加成本。因此,本文提出 DistServe,它将预填充和解码计算分配到不同的 GPU 上,并且将 Prefill 实例计算出的 Key-Value Cache 传输给 Decoding 实例,消除两者之间在计算上的干扰,使每个阶段能独立优化其性能目标。

       具体地,DistServe 根据应用对 TTFT 和 TPOT 的 SLO,为 Prefill 和 Decoding 阶段的实例分别设置资源分配和并行策略,并且在实例的计算过程中,根据 SLO 来确定 Prefill 实例和 Decoding 实例的 Batch Size。除此之外,DistServe 还根据集群带宽合理放置两个阶段的实例,以最小化由 KV Cache 传输导致的通信开销,从而在满足 SLO 的前提下,最大化每个 GPU 的请求吞吐量。

DistServe 系统架构-1.png

DistServe 系统架构

论文链接:https://www.usenix.org/conference/osdi24/presentation/zhong-yinmin

开源仓库:https://github.com/LLMServe/DistServe

研究机构:北京大学,阶跃星辰,加州大学圣迭戈分校

6. Llumnix: Dynamic Scheduling for Large Language Model Serving

       LLM 在众多领域广泛应用,来自于各种应用的LLM推理请求在输入长度、输出长度和预期延迟等方面存在差异。由于LLM 推理需要多次迭代生成输出 Token,并且显存占用也随着生成的 Token 数量不断增加,由于LLM推理请求的输出长度往往被认为是不可预测的,因此推理时间和显存资源需求也难以预估,从而可能导致请求抢占,进而引起推理请求之间的性能干扰。现有 LLM 推理系统多专注于单实例吞吐量最大化,在跨实例请求调度方面存在不足,难以提供性能隔离并且无法解决内存碎片化问题,并且还无法区分请求优先级以满足不同延迟目标。因此本文提出 Llumnix 系统,通过在多个模型实例间进行运行时重新调度来应对异构和不可预测的请求,采用高效且可扩展的实时迁移机制来一边生成一边迁移,从而实现请求无缝迁移。除此之外,Llumnix 还使用动态调度策略统一多种重新调度场景,以提高负载均衡、减少资源碎片、并且区分请求优先级。

       具体地,Llumnix 的无缝迁移机制首先在迁移目标实例上预留显存资源,然后将源实例上的 KV Cache 逐渐迁移到目的实例,在迁移的过程中,源实例仍然在对请求进行处理,不断生成 Token,由于迁移单个 Token 的时间开销往往远远小于计算生成单个 Token 的开销,因此在少量迭代内 KV Cache 就可以被迁移完成,之后请求将在目的实例上继续处理,从而达到无缝迁移。除此之外,Lluminx 通过虚拟资源占用,为高优先级的请求,队首的请求设置更高的虚拟资源占用,通过在多个实例之间通过无缝请求迁移实现虚拟资源占用的负载均衡,从而达到请求优先调度的目的并且解决多实例的显存碎片的问题。

6.png

论文链接:https://www.usenix.org/conference/osdi24/presentation/sun-biao

开源仓库:https://github.com/AlibabaPAI/llumnix

研究机构:阿里巴巴

7. Fairness in Serving Large Language Models

       当前 LLM 推理服通过为每个客户端限流来确保多个客户端之间的公平性,然而这会引起资源利用不足的问题,即使是在资源空闲的情况下,单个客户端也会因为限流而无法充分利用所有的计算资源,从而导致用户体验差。为了解决这个问题,本文提出基于成本函数的 LLM 服务公平性定义,并设计虚拟Token计数器(VTC)算法实现公平服务,该算法能有效应对未知请求长度和动态变化的客户端数量,确保不同客户端间公平性并提高资源利用率。

       具体地,本文基于成本函数定义 LLM 服务公平性,考虑处理的输入和输出Token数量,以加权组合方式衡量每个客户端的服务情况。本文的成本函数还可扩展到其他表示方式,如加权 FLOPs 或更复杂的函数。除此之外,本文设计虚拟Token计数器(VTC)算法,跟踪每个客户端的服务情况,优先处理服务最少的客户端。算法在客户端新入队时提升计数器以保证公平,通过实时更新计数器反映客户端的即时服务情况,可以与连续批处理机制无缝集成。

VTC 算法核心流程-1.png

VTC 算法核心流程


论文链接:https://www.usenix.org/conference/osdi24/presentation/sheng

开源仓库:https://github.com/Ying1123/VTC-artifact

研究机构:加州大学伯克利分校,斯坦福大学,杜克大学

8. InfiniGen: Efficient Generative Inference of Large Language Models with Dynamic KV Cache Management

       在 LLM 推理系统中,KV 缓存用于避免 Decoding 阶段对 Key 和 Value 张量的冗余计算,其大小随序列长度和 batch size 线性增长,在处理长序列请求或者将多个请求一起批处理时,KV 缓存甚至可能超过模型权重大小,对 GPU 内存造成非常大的压力。现有 KV 缓存管理方法通过在运行时逐出 Key 和 Value Tensor 来降低 KV 缓存大小,但存在挑战,如注意力模式在多次迭代间动态变化,固定的 KV 缓存预算无法有效管理不同层的 Query Tensor 对 KV 缓存的需求。因此,本文基于提出 InfiniGen,利用 CPU 内存,通过之前层的推理结果预测之后重要的 KV Cache,并且将它们预先加载,从而减少从 CPU 内存到 GPU 的数据传输开销并且保持模型输出结果的准确性。InfiniGen 的重要性预测的核心思想是根据前一层的部分查询权重、键缓存和注意力输入,推测下一层的注意力模式,并且根据阈值选择关键 Key 和 Value 提前进行加载。

8.png

论文链接:https://www.usenix.org/conference/osdi24/presentation/lee

研究机构:首尔国立大学



SOSP 2024

1. LoongServe: Efficiently Serving Long-Context Large Language Models with Elastic Sequence Parallelism  

       随着 LLM 上下文的不断增长,在不同请求以及同一请求的不同阶段之间,资源使用情况存在巨大差异。现有 LLM 服务系统受静态并行策略的限制,无法有效利用底层硬件资源来处理不同长度的请求。为解决此问题,本文提出了弹性序列并行(ESP)这一新范式,以灵活适应不同请求和阶段的变化。

       具体地,本文基于 ESP设计并构建了 LoongServe 系统。它由一组弹性实例和一个全局管理器组成。弹性实例可动态组织成 ESP 组,并行处理请求,支持高效弹性缩放。GPU 内存形成统一分布式键值缓存池,减少显存碎片化。全局管理器负责管理请求、弹性实例和显存缓存池,通过调度算法在每次迭代中动态调整请求调度,弹性实例分配,批处理和扩缩容策略,以提高吞吐量并降低延迟。

9.png

论文链接:https://dl.acm.org/doi/10.1145/3694715.3695948

开源仓库:https://github.com/LoongServe/LoongServe

研究机构:北京大学,上海人工智能实验室

2. PowerInfer: Fast Large Language Model Serving with a Consumer-grade 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 系统架构和工作流程.png

PowerInfer 系统架构和工作流程

论文链接:https://dl.acm.org/doi/10.1145/3694715.3695964

开源仓库:https://github.com/SJTU-IPADS/PowerInfer

研究机构:上海交通大学

联系我们

我们团队的多项工作,包括综述、模型、数据集,都在陆续开源中。如果您喜欢我们的工作,欢迎试用、指正错误和贡献代码,也可以给我们的项目增加 Star、引用我们的论文以支持我们。

如果您想更快地获取到最新信息,欢迎加入我们的微信群

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
7月前
|
数据采集 人工智能 算法
视觉语言模型导论:这篇论文能成为你进军VLM的第一步
【6月更文挑战第20天】探索AI如何理解与生成图像和文本,VLM结合图像与文本映射,涉及图像描述、问答等任务。论文由多所名校和机构研究人员共创,介绍VLM历史、类型(对比学习、掩码、生成、预训练)及应用,如图像生成和问答。同时,讨论数据质量、计算资源和模型可解释性的挑战。[阅读更多](https://arxiv.org/pdf/2405.17247)
239 2
|
机器学习/深度学习 人工智能 自然语言处理
500篇论文!最全代码大模型综述来袭
11月14日,蚂蚁集团联合上海交通大学发布55页代码大模型综述,覆盖超过50个模型、30个下游任务、500篇参考文献,全方位总结大语言模型在代码相关应用中的最新进展与挑战。
1415 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
LLM性能最高60%提升!谷歌ICLR 2024力作:让大语言模型学会“图的语言”
【5月更文挑战第1天】谷歌在ICLR 2024提出新方法,使大语言模型(LLM)性能提升高达60%,通过结合图神经网络(GNN),LLM学会理解与生成“图的语言”,打破处理复杂任务的局限。此创新模型适用于社交网络分析等领域,但面临计算资源需求大和模型解释性问题。研究强调需确保LLM在道德和法律框架内使用。论文链接:https://openreview.net/pdf?id=IuXR1CCrSi
263 3
|
机器学习/深度学习 人工智能 测试技术
三篇论文:速览GPT在网络安全最新论文中的应用案例
三篇论文:速览GPT在网络安全最新论文中的应用案例
209 0
|
机器学习/深度学习 人工智能 自然语言处理
NTU、上海AI Lab整理300+论文:基于Transformer的视觉分割最新综述出炉
NTU、上海AI Lab整理300+论文:基于Transformer的视觉分割最新综述出炉
167 0
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
307 0
|
机器学习/深度学习 自然语言处理 算法
扩散模型爆火,这是首篇综述与Github论文分类汇总(1)
扩散模型爆火,这是首篇综述与Github论文分类汇总
907 0
|
机器学习/深度学习 自然语言处理 计算机视觉
扩散模型爆火,这是首篇综述与Github论文分类汇总(2)
扩散模型爆火,这是首篇综述与Github论文分类汇总
342 0
|
机器学习/深度学习 缓存 搜索推荐
GAN、扩散模型应有尽有,CMU出品的生成模型专属搜索引擎Modelverse来了
GAN、扩散模型应有尽有,CMU出品的生成模型专属搜索引擎Modelverse来了
142 0
|
文字识别 自然语言处理 算法
CVPR 2022 | 关注文本阅读顺序,蚂蚁集团、上海交通大学提出多模态文档理解模型XYLayoutLM
CVPR 2022 | 关注文本阅读顺序,蚂蚁集团、上海交通大学提出多模态文档理解模型XYLayoutLM
286 0

热门文章

最新文章

下一篇
开通oss服务