FlexLLM: A System for Co-Serving Large Language Model Inference and Parameter-Efficient Finetuning
这篇论文是CMU Zhihao Jia课题组在2024年发表于archive,对于研究inference和finetuning的协同调度非常有参考意义。但是该论文是建立在OSDI’22 Unity这篇论文基础上的,需要很强的前置知识,很多地方还没有看懂,在此先记录一下。
摘要
PEFT是一种被广泛应用于不同任务的LLM技术。云服务提供商通常给用户创建分离的系统运行PEFT模型的finetuning和inference任务。这是因为现有的系统不能很好地处理finetuning和inference请求混合的负载。因此,共享的GPU资源通常利用率低下。为了解决这个问题,作者提出了FlexLLM,这是第一个在同一个iteration中服务inference和finetuning请求的系统。我们的系统利用这两个任务的互补性,并利用共享的GPU资源共同运行它们,使用一种称为co-serving的方法。为了实现这一点,FlexLLM引入了一种新的token级 finetuning机制,它将sequence的微调计算分解为更小的token级计算,并使用依赖并行化和图剪枝,这两种静态编译优化,以最小化co-serving的内存开销和延迟。与现有系统相比,FlexLLM的co-serving方法将激活GPU内存开销减少了高达8倍,并将finetuning的端到端GPU显存需求降低了高达36%,同时保持低推理延迟并提高finetuning吞吐量。例如,在重推理工作负载下,FlexLLM仍然可以保持超过80%的峰值finetuning吞吐量,而现有系统则无法在finetuning上取得任何进展。FlexLLM源代码 https://github.com/flexflow/FlexFlow/。
2.背景与挑战
2.1 PEFT
PEFT可以用于训练特定的LLM,但是它也需要很大的计算开销。现有的方法集中解决减少训练参数量的同时优化模型的性能,但是,减少训练参数量并不能减少相应的显存占用。
2.2 PEFT-based LLM inference
现有的大型语言模型(LLM)推理系统中的一个关键挑战是内存密集型的自回归解码机制,因为生成每个词符都需要访问模型的所有参数。这导致了对计算资源的高需求,尤其是在需要快速生成大量文本时,这种机制可能会成为性能瓶颈。为了克服内存带宽限制,已经提出了几种技术,包括量化、并行化、批处理和内核优化。但是,显存贷款的问题仍然存在,特别是当latency和response质量需要同时保证的时候。
近期的研究工作引入了多种系统,用于同时服务多个基于PEFT的大型语言模型(LLM)。PetS是第一个统一的多任务参数高效变换器(PETs)服务框架,它将计算图中的线性层解耦为任务无关的共享操作和任务特定的PET操作,然后使用一个高性能的推理引擎和创新的操作调度策略来提高并发性和吞吐量。虽然PetS仅支持编码器模型,但近期的工作也集中在对生成性推理模型的优化上。PUNICA 是一个在共享GPU集群中服务多租户LoRA的系统。它提出了一个新的CUDA内核,称为分段收集矩阵-向量乘法,它允许批处理GPU操作以并发执行多个不同的LoRA模型。S-LoRA在PUNICA引入的内核基础上进行了优化。它提出了统一分页、异构批处理和一种新颖的张量并行算法,以在单台机器上服务数千个LoRA组件。然而,所有这些系统也像传统的LLM服务系统一样受到内存访问的限制。
3. Co-serving LLM inference and PEFT
已经有很多研究提出不同的方法来调度异构的任务(in this case, inference and PEFT)来共享GPU。这些方法可以被分为三类:资源隔离,时分共享,和空分共享。该章节主要讨论这些方法应用到inference和PEFT上时的limitations,以及重点突出FlexLLM与现有工作的差异。Fig3 描述了不同调度方法在执行inference 和finetuning时的GPU执行时间线。

1736

被折叠的 条评论
为什么被折叠?



