清华/南大 提出 V-LORA: 一个高效且灵活的系统通过LORA LMM促进视觉应用 !

大模型向量数据库数据中台

备注好友: 方向-学校/公司-姓名/昵称

【AIGC 先锋科技】交流群

picture.image

picture.image

大型多模态模型(LMMs)在各种复杂视觉任务中取得了显著进展,这得益于它们从大型语言模型(LMMs)中继承的坚实的语言和推理能力。低秩适应(LoRA)提供了一种有前景的方法,将外部知识集成到LMMs中,以弥补其在特定领域任务上的局限性。然而,现有的LoRA模型服务过于计算昂贵且延迟极高。在本文中,作者提出了一种端到端的解决方案,使各种视觉任务受益于LoRA LMMs,丰富了视觉应用。

作者的系统V-LoRA实现了准确的、高效的视觉任务,通过以下三个方面:

1)一种感知准确的LoRA Adapter 生成方法,该方法生成富含特定领域知识的LoRA Adapter ,以满足应用特定的准确度要求;

2)一种自适应分块的LoRA Adapter 批处理操作符,它有效地计算并行异构LoRA Adapter ;

3)一种灵活的LoRA Adapter 编排机制,它管理应用请求和LoRA Adapter ,以实现最低的平均响应延迟。作者在三种LMMs上的五个流行视觉任务上进行了V-LoRA的原型。

实验结果表明,与原始LMMs相比,V-LoRA提高了24-62%的准确性,并降低了20-89%的延迟,与最先进的LoRA模型服务系统相比。

  1. Introduction

受到自然语言处理应用中预训练语言模型的成功(如LLMs)的鼓舞,大型多模态模型(LMMs)吸引了学术界和工业界的广泛关注。它们通过感知和解释多模态信号(例如,视觉输入)来增强LLM,并出色地完成了许多复杂的跨模态任务,这些任务是先前的模型无法实现的。例如,GPT-4o(Goodfellow等人,2016年)在许多多模态任务 上实现了领先的精度。然而,当应用于需要特定领域知识的实际应用时,LMMs通常表现出次优的性能,类似于早期LLM所经历的现象(Wang等人,2019年)。

低秩自适应(LoRA)提供了一种有前景的方法,将外部知识整合到LMM中。它在特定领域的专业数据集上微调一小部分模型参数,称为LoRA Adapter ,以学习目标知识,并冻结基础模型以保留其原始能力(更多信息见SS2)。这些LLM通常利用检索增强生成(RAG)(Wang 等人,2019)来实现这一目标。与LoRA不同,RAG在请求(即输入数据)上附加检索到的知识(例如,文档),而LoRA则将微调的 Adapter 在运行时合并到LMM中,并高效地生成高质量和一致的特定领域特定响应,而无需增加额外的开销。

尽管LoRA具有这些优势,但它引入了复杂的系统挑战。最近的研究关注使用LoRA LLM进行语言应用的系统优化,已经取得了明显的进展。Punica 和S-LoRA(Wang等人,2019年)提出了非合并推理_来克服_合并推理_的局限性,该局限性只能一次合并一个 Adapter 。它同时计算多个LoRA Adapter ,并在不同的请求上分批共享基础模型计算,以提高系统效率。dLoRA(Wang等人,2019年)进一步通过合并和未合并推理模式切换(更多在SS2)来平衡吞吐量和延迟。然而,这些努力未能满足视觉应用(更多在SS3.2)的高效和多样化要求。

在本文中,作者回答以下研究问题:作者是否能够利用LoRA LMMs来丰富视觉应用,同时满足其性能要求?作者认为可以,但需要解决以下挑战。

首先,许多现有的小型模型,在特定的领域数据集上训练并在当前视觉应用中使用,在目标任务上超过了LMMs。为了保持准确性,它们的知识必须与LMM结合,使用LoRA Adapter 进行集成。然而,简单地为每个任务训练一个LoRA Adapter 是不经济的,而将过多的外部知识(例如,多个小型模型)融合到一个 Adapter 中会导致不可避免的准确性降低。

第二,AI视觉应用通常涉及多种外部知识。在为多个视觉应用服务时,尤其是LoRA LMM可能需要同时执行多个LoRA Adapter 。尽管未合并推理可以并行计算异构 Adapter ,但它们引入了过多的延迟。因此,作者的LoRA LMM推理系统必须能够高效地计算并行异构 Adapter ,同时具有低的延迟。

最后,不同的视觉应用对性能有不同的要求。实时视频分析应用[90, 91]需要低延迟,而视觉检索[45]则喜欢高吞吐量。为了满足这些需求,需要仔细管理LoRa Adapter 并灵活地安排应用程序请求。典型的LoRa Adapter 管理器(例如dLoRa)并不适合视觉应用,这导致过多的开销。仅其推理模式切换就占据了LMM推理时间的过半。

这篇论文提出了V-LoRA,这是一个端到端的LoRa LMM服务系统,包括LoRa Adapter 准备(SS4.2)和推理运行时(SS4.3,SS4.4),以赋能视觉应用。V-LoRA通过以下技术解决上述挑战:

作者提出了一种LoRA生成器(SS4.2),该生成器准备特定领域的LoRA Adapter ,以在具有外部知识的特定任务上生成准确的结果。考虑到知识融合(SS3.2)的复杂准确性变化,LoRA Adapter 生成可以被表述为一个受约束的箱子摆放问题,即给定外部知识,即小模型和特定领域的数据集,以生成最少的LoRA Adapter ,确保由视觉应用指定的准确性。作者设计了一个具有感知准确性的知识融合算法,采用贪心启发式来解决它。此外,作者引入了视觉任务头,作为LoRA Adapter 的一部分,以实现视觉任务的低延迟响应。

适应性分隔LoRa Adapter 批处理。作者提出了一种并发LoRa Adapter 批处理方法(SS 4.3),包括自适应分隔矩阵乘法(ATMM)运算符及其最优分隔搜索算法,用于高效异构LoRa Adapter 计算。离线搜索算法确定每个可能输入矩阵形状的最优分隔配置,构建一个存储这些输入最优分隔对数的散列表,并为其编写备用代码实现。在运行时,ATMM根据并发请求和调用的LoRa Adapter 输入形状自适应选择最优分隔配置,然后以极端高效执行相应的代码实现。

灵活的LoRa Adapter 编排 为满足视觉应用的多样化需求,作者提出了一种编排器(SS4.4),在运行时高效灵活地编排LoRa Adapter 。开发了两个工具来提高效率。切换器利用ATMM和统一内存管理来实现快速推理模式切换和LoRa Adapter 交换,而混合推理模式,deLoRA,可以缓解饥饿问题。利用上述工具,作者设计了一种算法,可以在运行时动态地在三种推理模式之间切换,调度请求,并管理LoRa Adapter 以满足每个应用程序的性能要求。

作者总结了作者的主要贡献如下:

截止目前,作者是最先识别并解决通过LoRa LMM赋能视觉应用的关键问题的团队。

作者提出了V-LoRA,它支持准确的、高效的和灵活的LoRa LMM服务,适用于视觉应用场景,这包括准确度感知的LoRa Adapter 生成、自适应分块LoRa Adapter 批处理和高效灵活的LoRa Adapter 编排。

作者实现了V-LoRA,并对三种实际LMMs进行了五个流行的分析任务评估。实验结果显示,与原始LMMs相比,V-LoRA的准确率达到了24-62%,与最先进的方法的延迟相比为20-89%。

  1. Background

今天,许多视觉应用利用人工智能技术在RGB空间处理图像或视频 [49, 67, 93]。例如,在视频分析中,多个针对特定域的数据集进行良好训练的DNN各自负责一个目标任务,共同为应用提供良好的服务 [46, 47, 89]。然而,小型模型的有限能力阻碍了视觉应用的开发。目前应用仍局限于简单的视觉任务,如图像分类 [90],车辆计数 [57],和目标检测 [31]。借助LLM继承的自然语言接口,LMM可以丰富未来的视觉应用。例如,通过LMM,警察可以在只给出一个文本描述的 Query ,如“一个穿红毛衣的男孩在拐角丢失”时找到正确的目标。因此,本文试图通过将LoRA LMM赋予视觉任务,丰富未来的视觉应用。

大型多模态模型(LMMs) 旨在通过将视觉输入与语言模型(LLMs)相结合,实现更强的通用智能。由于人类超过80%的感知和活动都通过视觉进行中介[63],因此,从为LLMs配备“眼睛”开始进行探索是自然而然的。通过引入一个视觉受体,包括一个 _视觉编码器_(例如,ViT [65])和一个 _视觉语言项目器_(例如,Q-former [53]),LMMs可以为LLMs赋予视觉能力。图1展示了LMMs的推理过程。给定一个图像输入及其 Prompt ,视觉编码器将图像分割成小patch(例如,14x14像素块),并提取每个patch的视觉特征。然后,视觉语言项目器将patch的视觉特征转换为视觉tokens,并输入到LLM [17, 28, 42, 76],与 Prompt 中的嵌入文本tokens一起,生成答案。LLM将输入映射到高级特征,并使用自动回归模式预测下一个tokens的概率分布。图1中的虚线箭头所示,每次迭代生成输入tokens和前一次输出tokens中的tokens,直到发出句末 Token ()tokens。

picture.image低秩自适应(LoRA)(周等人,2018年;王等人,2019年;王等人,2019年)是一种广泛使用的参数高效的微调方法(王等人,2019年),用于将外部知识集成到大模型中。LoRA Adapter 是小数量的可训练参数,用于学习这些知识,通常放在注意力层(王等人,2019年)。LoRA的核心,如图2(a)所示,是将每个权重更新表示为两个矩阵和的乘积,其中和的维度分别为和,而的维度为。它们的秩远小于基本模型权重,为。这是有道理的,因为大型模型权重更新(王等人,2019年)具有低内秩现象。在微调时,LoRA Adapter 只更新和,而将冻结。在推理时,所有LoRA Adapter 的计算可以绕过,如图2(a)所示,并将结果附加到输出上。或者将一个乘法矩阵(即)合并到基本模型中,保持计算开销与基本模型在图2(b)中的开销相同。

picture.imageLoRA模型服务系统 旨在提高LoRA模型的推理效率。在未合并推理中,核心特点是计算 Adapter 下的两个小矩阵利用率不高,导致不必要的延迟和资源浪费。为解决这个问题,Punica(Punica,2018)和S-LoRA(王等人,2019)批处理多个异构 Adapter ,如图2(a)所示的级联LoRA Adapter ,并在一个单独的CUDA Kernel 中进行计算。这种方法确实提高了系统的吞吐量,但导致了显著的额外开销(在SS3.2中更多)。dLoRA(王等人,2019)将最常访问的LoRA Adapter 合并到基本模型中,如果需要,则切换到未合并模式。然而,模式切换导致了无法接受的时间成本(在SS3.2中更多)。此外,与Punica和S-LoRA类似,dLoRA的未合并推理未能解决大量额外的计算开销问题。

  1. Motivation and Challenges

这一部分探讨了两个问题:(1)LoRA LMM能为视觉应用(SS3.1)带来哪些好处?(2)在为视觉应用赋能LoRA LMM(SS3.2)时,必须解决哪些挑战?

Potential Benefits from LoRA LMM

LMMs在许多复杂视觉任务上实现了最先进的表现。为了证明这一点,作者以零样本定位和视觉问答为例,在Aircraft(Brocker等人,2017年)和VQAv2(Wang等人,2018年)数据集(使用Qwen-VL-7B(Wang等人,2019年)(作为LMM),YOLO(Redmon等人,2016年)和OSCAR(Shi等人,2017年)(作为 Baseline 小模型))上进行了实验。Aircraft包含103张未在Qwen-VL和YOLO上预训练的遥感图像,作为零样本测试;VQAv2是最受欢迎的视觉问答数据集,包括文本和视觉模态,以测试多模态能力。图3显示,凭借LLMs继承的牢固语言和推理能力,Qwen-VL在零样本定位方面大大超越了小模型。它在零样本地面场景的F1得分比YOLO高48.9%。图3(a)显示了Qwen-VL在第38数据集上的结果,Qwen-VL比YOLO更准确地划分了更精确的边界。对于多模态任务,Qwen-VL达到了78.8%的准确率,比OSCAR高7.5%。图3(b)举例说明了视频分析应用中的典型车辆计数任务,只有Qwen-VL生成了正确答案。

picture.image借助来自LoRA Adapter 的额外知识,LMM在特定领域任务上实现了显著的准确率提升。 为调查外部知识带来的准确率提升,作者在外部数据集上分别对三个LoRA Adapter 进行微调,用于图像分类、目标检测和视频分类,数据集分别为AID(Wang等人,2019年)、Aircraft(Brocker等人,2017年)和UCF101(Yuan等人,2018年)。图4显示了结果。经过微调的LoRA Adapter 使得Qwen-VL在三个特定领域任务上分别获得了45.2%、24.5%和62.2%的准确率提升。请注意,作者仅验证了潜在的性能提升,并未完全探索高级训练技术,如数据增强(Shi等人,2019年)。然而,根据当前的结果,作者认为这些技术在未来的工作中可能进一步提高准确率。**

picture.imageLoRA LMM 使得服务更加灵活。当今的视觉应用由许多领域特定的小型模型(Zhu等人,2017年;Wang等人,2018年)提供服务。当调用时,特定模型被加载到GPU并执行后(Shi等人,2019年;Wang等人,2018年)被换出到主内存。这种交换方法允许在大批量中执行模型,但必然会产生传输成本。LoRA Adapter 通常比小型模型具有更少的参数(在SS4.4.1中更多)。在保持GPU中的LMM的同时,交换它们可以提供更灵活的服务。在作者的测试中,交换一个 Adapter 比OSCAR节省97%的延迟,从15ms降至520ms,比YOLO的110ms节省了86%。

Challenges of Empowering Vision Applications with LoRA LMM

为了赋能多样化的视觉应用,LoRA LMM系统必须对涉及到的视觉任务提供准确、高效的响应,并满足特定应用的性能要求。为此,作者面临三个挑战。

C1: 限制的LoRa Adapter 容量。将现有小型模型或特定数据集的外部知识整合到LMM中以生成准确结果至关重要。参数高效的LoRa Adapter 微调具有前景。然而,由于LoRa Adapter 只有有限的容量且在视觉任务上有所不同,这具有挑战性。图5通过将不同任务上来自不同数量的小模型外部知识融合到一个单一的LoRa Adapter 中(实验设置详情见SS6.1)来证明这一点。为每个小型模型训练一个单独的 Adapter 可以始终实现高精度,但会导致 Adapter 容量的大量浪费,而将太多的小模型融合到一个 Adapter 中会导致显著的精度降低。例如,图5中融合了六个图像分类模型而保持95%以上的准确率的LoRa Adapter ,而融合了六个视频分类模型则显著降低了准确率。

picture.imageC2: 低效的并发请求批处理。一个视觉应用通常涉及多个小型模型。因此,使用LMM为多个视觉应用服务很可能会同时调用多个异构LoRA Adapter 。然而,当前的LoRA模型推理系统在处理它们时效率低下,尤其是在高并发情况下。为了证明这一点,作者测量了三个最先进系统。 Punica (Shi等人,2019年)和_S-LoRA_(Zhu等人,2017年)分别定制了CUDA操作符,以在非合并模式(更多信息见SS4.3.1)中批处理异构LoRA Adapter 计算,而_dLoRA_(Wang等人,2018年)则调用了PyTorch操作符Einsum(r)(Chen等人,2019年)。实验工作负载随机生成2-4个请求,每个请求的输入 Token 长度为128到1024个每秒,作者重复了1000次以测量延迟。为了公平起见,所有实验都在配备NVIDIA A100 GPU的服务器设备上运行(Chen等人,2019年)通过PEFT(Wang等人,2018年)框架,并使用Qwen-VL-7B(Wang等人,2018年)作为基础模型。

图6展示了结果。dLORA、S-LoRA和Punica的条形表示它们的额外延迟,例如,LaRoRA延迟-合并延迟。基础模型的条形表示在相同工作负载下的时间成本。未合并的推理在服务四个1024个 Token 请求时额外增加了140毫秒的延迟。这种不必要的浪费足够让基础模型在资源充足的情况下执行4x256推理!这种高昂成本的原因有两点。1)天生地,额外的开销源于每层增加两个矩阵乘法和一个矩阵加法,如图2(a)所示;同时,这些计算与基础模型计算并行运行,每个层都需要在每个层上增加额外的CUDA Kernel 上下文操作。2)在具体实现中,所有三个LoRA Adapter 批处理操作都无法充分利用GPU的计算单元,因为存在显著的填充或未考虑的矩阵布局(更多信息请参阅SS4.3.1)。

picture.imageC3: 刚性LoRa Adapter 编排。 为了应对视觉应用指定的不同性能要求,需要一种能够精心管理LoRa Adapter 并灵活调度应用请求的编排方式。作者认为像dLoRA这样的推理模式切换是具有前景的,但它在效率上明显不足。模式切换会导致不可接受的开销。图7说明了dLoRA连续推理槽的真实调度状态和模式切换延迟。在这种情况下,dLoRA为8个请求服务,每个请求的输入长度为256,采用先到先服务的方式。在第一个槽中,dLoRA使用相同的LoRa Adapter 以合并模式为1-3请求服务,而接下来的槽中异构请求4-7在非合并模式下处理。模式切换延迟超过53 ms使得最后一个请求(图7中虚线箭头所示)在下一个推理槽开始前需要等待165 ms。这种巨大的成本源于1)由于dLoRA的低效内存管理,不必要的LoRa矩阵复制,以及2)由于LoRa矩阵的计算开销巨大,通过矩阵乘法,然后将(合并或非合并)添加到或从基础模型上(每个层调用torch.addmm)。如果模式切换可以减少到小于10ms(如本文在SS4.4.1中实现的那样),则图7案例的平均响应时间可以节省45ms,最后一个请求只需等待小于80ms。

  1. V-LoRA Design

V-LoRA是一种端到端系统,可支持各种视觉任务,并通过LoRA LMM解决上述挑战,为视觉应用增添价值。作者首先概述V-LoRA的运作,然后描述它所依赖的三个核心技术。

System Overview

V-LoRA 包括两个阶段。在离线阶段,基于准确性的 LoRA Adapter 生成方法利用外部知识(来自现有的领域特定小型模型或数据集),以及由视觉应用(如图8 中虚线箭头所示)指定的准确性要求,生成最少数量的 LoRA Adapter (SS4.2)。生成的 LoRA Adapter 富含特定领域的知识,可以对涉及视觉应用的任务输出准确的响应。

picture.image在在线阶段,灵活的LoRA Adapter 编排从视觉应用(如图8中的实箭头所示)接收请求,将它们组织成批次,选择推理模式,并编排相应的LoRA Adapter ,以最小化平均响应延迟,同时保证每个视觉应用的延迟约束(SS4.4)。每个请求批次被传递给相应的 Adapter 和LMM,并在所选模式下进行推理。LoRA Adapter 批处理和推理模式切换通过ATMM实现,即自适应填充矩阵乘法运算符(SS4.3),实现了高效率。

Accuracy-aware LoRA Adapter Generation

为了在特定领域提供准确的结果,作者提出了一个名为准确度感知LoRA Adapter 生成的方法,包括准确度感知知识融合算法和视觉任务头。

Accuracy-aware knowledge-fusion algorithm.

为了在运行时便于管理,作者力求将外部知识集成到最少的LoRa Adapter 中,同时不违反任何视觉任务的准确性要求。为此,训练方法必须考虑LoRa Adapter 的有限容量以及知识融合引起的复杂准确性变化。

这个问题非常具有挑战性。假设作者有一个神谕者,他提前知道融合了任意知识组合的LoRa Adapter 的准确性。那么,这个问题可以表述为一个受约束的箱子装载问题[36],目标是将知识装载到最少的LoRa Adapter 箱子中,确保每个 Adapter 在满足要求之外,保持每个视觉任务的准确性。然而,这种宽松变体是NP困难的,不幸的是,这样一位神谕者并不存在。

为了解决原始问题,作者提出了一种简单且易于实现的启发式算法,即_准确性感知知识融合算法_,用于确定哪些知识融合到单个LoRA Adapter 中。该算法首先收集如图9所示的数据集,通过在每个现有领域特定小型模型上执行代表数据来实现;如果应用程序提供了数据集,则直接使用它们。然后,训练过程是一个标准的监督学习流水线,计算交叉熵损失,,以进行参数更新。知识融合采用贪心和准确性感知启发式。它从随机数据集开始,然后依次使用每个数据集训练LoRA Adapter ,直到其特定任务上的准确性低于所需阈值。如果发生这种情况,将 Adapter 的权重回滚,并初始化一个新的 Adapter 以从最近的数据集中学习。这种方法的最坏情况可能为每个数据集生成一个LoRA Adapter ,但在作者的实际实验中,每个LoRA Adapter 平均融合了4个领域的知识(数据集)。

图10展示了将六个目标检测模型(每个模型检测一个目标类别)的知识集成到LoRA Adapter 中的示例。在融合植被检测模型(步骤4)时,LoRA Adapter 1在车牌识别上的准确性低于80%,在交通标志检测上的准确性低于85%。因此,算法返回了之前状态下的LoRA Adapter 1,并初始化了LoRA Adapter 2(步骤5)。由于植被、自行车和行人数据集在融合到LoRA Adapter 2时没有违反准确性,作者得到了第二个LoRA Adapter (步骤6)。由于LMM具有强大的学习能力,在这个例子中,训练过程仅耗时25分钟。这部分内容留待未来探索。

picture.image#### 4.2.2. Vision task head

为了降低推理延迟,作者设计了视觉任务头。它作为LoRA Adapter 的一部分,如图11所示,是一个可训练的线性层,基于LMM的输出特征预测特定任务的结果。视觉任务头在LoRA Adapter 训练期间可以灵活地定制为各种视觉任务,例如图11中的动作识别头,只要融合的知识来自相同任务类型。图11比较了使用原始语言模型(LM)头和视觉任务头进行动作识别。用视觉任务头替换LM头,LMM节省了4次推理轮数,大约180ms的时间成本。这样做的原因是,许多视觉任务输出的结果是一个有限的离散选择集,例如车辆数量[57],动作识别类别[90],以及针对图像或视频上的特定目标进行二进制 Query [86]。

picture.image作者保留LM头用于需要自然语言界面的视觉应用。例如,当视频 Query 应用要求“一个穿红毛衣在拐角丢失的男孩”并指定行人检测时,V-LoRA将调用包含检测Head的相应LoRa Adapter 以实现高效响应++。通过在下一节中使用LoRa Adapter 批处理运算符ATMM,这些不同的视觉任务头可以同时执行,并与LM头并行处理。

Adaptive-tiling LoRA Adapters Batching

服务视觉应用的LMM很可能同时调用异构LoRa Adapter 。为了在高效性能下计算它们,作者提出一个自适应分块矩阵乘法运算符ATMM,实现高效未合并推理、推理模式切换(SS4.4.1)和混合推理模式(SS4.4.2)。

4.3.1. ATMM: Adaptive-tiling matrix multiplication operator

直接在标准 Kernel 上批量计算异构 Adapter 计算,就像dLoRA(Romanov等人,2017年)中的批量GEMM(通用矩阵乘法),是可行的,但会带来过高的延迟和硬件利用率低下。这源于应用请求长度和LoRA Adapter 等级的显著填充。因此,需要一个定制的 Kernel 。

为了激发作者的设计,作者首先分析了S-LoRA(Shi等人,2017年)和Punica(Punica,2018年)两个现有的自定义 Kernel 。S-LoRA的 Kernel 利用_tiling_技术来避免显著的填充。与批处理的GEMM不同,它将异质输入矩阵填充到统一的形状,而是将它们分割成细粒度的块,并在CUDA核心上并行计算每个块的输出。Punica的 Kernel 也采用了tiling技术,并通过利用成熟的CUTLASS库(Punica,2018年)和性能更高的Tensor核心(Punica,2018年)进一步提高了效率。然而,正如SS3.2中的动机研究所示,这两个 Kernel 都无法实现令人满意的效率。根本原因是它们的静态tiling配置不足以处理多样的输入形状,导致计算资源利用率低下。

作者的主要观察是,计算效率在不同分块配置中显著不同。作者进行了两个输入形状和三种分块配置的实验,并将结果呈现于表1中。在输入1和输入2下,三种分块配置产生了1.9倍的延迟差异。这源于不合适的分块与输入形状和硬件架构,以及分块 Level 的差异。图12比较了表1中的两个配置对。在图12(a)中,Punica的较小分块配置产生了更多的线程块和 Transformer 。与配置2相比,它导致了更频繁地访问全局和共享内存,因此Punica的1.9倍延迟。然而,更大的分块并不总是有益的。在图12(b)中,配置2的大分块导致了流多处理器(SM)的低利用率。在A100中,它只能利用108个SM中的64个,每个线程块 Transformer 只能获取一个SM,远少于配置1。总之,作者需要动态分块来实现效率。

picture.image作者提出了一种名为ATMM的适应性贴图矩阵乘法CUDA Kernel ,该 Kernel 充分利用计算资源,实现高效异构LoRA Adapter 批处理。该 Kernel 有两个关键设计选择。

(1)针对输入形状的适应性贴图。给定两个输入矩阵,ATMM从_哈希表_(在SS4.3.2中建立,并按照此配置将矩阵划分为_线程块贴图_,然后进一步划分为_战争贴图_3。

(2)流水线数据加载和计算。在贴图之后,ATMM将每个贴图的数据传输到相应的内存中,对应关系如图12(a)所示,并使用相应的可执行 Kernel (在SS4.3.2中预编译)在CUDA/Tensor核心上执行计算。为了隐藏数据加载延迟,ATMM为每个贴图在共享内存和寄存器文件中分配两倍的空间:一个用于当前贴图的计算,另一个用于预取下一个贴图的数据。这种双缓冲是可行的,因为每一级的均匀贴图形状,使得可以高效地定位下一个贴图(更多信息见Appx.A)。

4.3.2. Profile-based optimal tiling search

考虑到自适应分块的好处,作者的目标是针对每一个不同的输入找到最优的分块配置,并在运行时在它们之间切换。这可以在离线环境中完成,因为它只受输入形状的影响,而不是它们的数值值。然而,由于GPU的复杂线程并行机制和内存访问模式以及输入形状的大搜索空间,这仍然具有挑战性。

为解决此挑战,作者将其视为黑盒问题,并提出了基于配置的搜索算法。作者使用CUTLASS Profiler(Han等人,2017)对所有可能的ATMM输入矩阵形状的执行时间进行剖析,将最优的镶嵌配置记录在一个哈希表中,并编译相应的可执行 Kernel 。作者利用以下专家知识来减少搜索空间。(1) 从硬件角度来看,架构特性限制了可行的输入形状,例如每个层次的有限内存和镶嵌配置,例如每个瓷砖至少为16且必须是2的幂。(2) 从输入数据的角度来看,LMMs的模型尺寸限制了输入矩阵形状在大步长变化时的改变,例如在Qwen-VL中的4096。Appx. B显示了详细算法。使用作者的算法,在A100 GPU上搜索所有具有Qwen-VL的视觉任务的最优配置仅需<30分钟。

Flexible LoRA Adapters Orchestration

为了满足视觉应用的特定性能要求,作者提出了一种编排器,用于调度请求、管理LoRa Adapter 并切换推理模式,以实现高效灵活的LoRa LLM推理运行时。作者首先使用ATMM实现了两个工具:一个快速模式切换器和一个混合推理模式,以方便编排器。

4.4.1. Swift inference mode switch

正如SS3.2中所讨论的,先前的系统(例如,dLoRA(Zhu等人,2017年))在模式切换期间引入了过多的额外延迟。为了减少这些开销,一种常见的方法是预计算整个基础模型的LoRA矩阵(即,矩阵ΔW,),并将其存储在主内存中,然后在需要时交换到GPU。然而,如此大量数据(例如,每个LoRA的QWenVL-7B1约为3GB)在交换过程中会引入非常高的延迟(例如,每个约1秒)。相反,作者的快速模式切换器在运行时计算LoRA矩阵,并将 Adapter (即,A和B)分别存储在GPU上的43MB大小。它有两个核心设计。

(1)消除不必要的内存复制,通过连续内存分配。作者的切换器预分配连续内存用于权重矩阵,避免在张量 Reshape 中进行内存复制,实现高效的就地LoRA矩阵的合并和拆分。

(2)一次计算所有层LoRA矩阵并合并。使用ATMM,切换器可以高效地计算整个模型LoRA矩阵,并将所有它们一次性加减到/从基础模式权重。通过这样做,作者的模式切换成本仅需<10ms,比dLoRA提高了>5倍。

4.4.2. Mixture inference mode

与未合并模式相比,合并推理模式一次只能支持一个LoRa Adapter ,这导致其他视觉任务的需求被饿死。为了缓解饿死现象,作者提出了一种新颖的推理模式deLoRA,以实现合并和未合并推理的同时执行。如图13所示,LoRa1处理合并模式中的请求,而其他LoRa Adapter LoRa_x在未合并模式下处理他们的请求。为了保持LoRa_x请求的一致结果,作者引入deLoRA分枝以防止deLoRA_1的污染。deLoRA的权重与合并LoRa相同。根据矩阵乘法的分配性质,正确性可以如下验证。

picture.image 在其中,, , 且 分别表示基础模型、deLoRA 和 LoRA Adapter 的权重; 和 是 LoRAx 请求的输入和输出。

混合推理模式具有两个优点。1) 从合并模式切换到非合并模式不会产生模式切换成本。2) 当对合并LoRa Adapter 的请求比其他更多时,其额外计算成本比非合并推理少。

4.4.3. Scheduling policy

为了最小化平均响应延迟并满足每个请求的延迟约束,作者的编排者必须仔细编排请求、 Adapter 和推理模式。作者的策略遵循两个原则。首先,尽可能使用合并模式执行,因为它产生最快的响应且无需额外的开销。(1) 其次,当饥饿发生时,先切换到混合模式,然后切换到未合并模式,按照切换成本和额外计算的顺序。Alg.1展示了伪代码。为了减轻饥饿,它为每个请求分配一个信用,表示其等待时间增加了当前模式的执行时间以及模式切换延迟(第2行),并设置一个容差阈值θ作为混合模式条件。当请求工作负载满足切换到合并模式的标准时,算法将模式切换到合并(第5-8行)。当饥饿请求的数量超过θ时,Alg.1立即使用混合模式处理这些请求(第9-12行)。当其进一步超过一半的最大批处理量时,它切换到未合并模式(第13-15行)。

  1. Implementation

作者在包括PyTorch(v2.0.1)(Chen等人,2018年)、Triton(v2.0.1)(Xu等人,2019年)、CUTLASS(v3.5.1)(Xu等人,2019年)和vLLM(v0.3.0)(Xu等人,2019年)等工具上实现了V-LoRA,其代码量约为7.1K行。除了CUDA中的ATMM之外,其余大部分代码都是用Python(v3.9)编写的。作者使用vLLM,尤其是LightLLM(Brockman等人,2018年)版本,来构建V-LoRA,因为其具有诸如PagedAttention、迭代级调度和基于 Token 的内存管理等先进功能。V-LoRA的三个关键技术如下:

  1. 作者基于 Transformer (Xu等人,2019年)和PEFT(Xu等人,2019年)库,实现了一个对流行LLM(包括QwenVL(Zhu等人,2019年)和LLaVA(Xu等人,2019年)系列)进行精度感知LoRA Adapter 生成的方法。
  2. 作者使用基于CUDA C++的CUTLASS实现ATMM。其最优输入分页对映关系表采用128位无符号整数作为键进行映射。由于CUTLASS操作符不能动态编译,作者创建了一个Python接口,将最优分页配置代码与Pybind11(Xu等人,2019年)和setuptools(Brockman等人,2018年)进行绑定和封装。
  3. 作者将ATMM集成到vLLM中,以支持未合并推理、混合推理和快速推理模式切换。在未合并和混合模式下,为了管理复杂的 Adapter 和请求,作者将每个请求的LoRA类型转换为one-hot向量,并构建当前批次的请求类型映射矩阵。为了实现高效的内存管理,作者使用统一的内存管理(Xu等人,2019年)对KV缓存和 Adapter 进行管理。V-LoRA通过RPyC(Chen等人,2018年)异步地 Stream 传输文本和图像。在收到请求后,V-LoRA识别其LoRA Adapter ,将其发送到 Adapter ,然后生成响应并返回。

LoRA Adapter 交换。考虑到它可能生成一定数量的LoRA Adapter ,作者利用主内存。为了减少延迟,作者只存储和,不存储,异步地在GPU和主机内存之间交换它们,并在运行时使用ATMM计算。

KV Cache Reuse 。在某些应用中,相同的图像可能被多次访问,例如多轮视觉问答(许等,2019)。作者实现了一种基于前缀匹配的方法,基于CacheBlend(许等,2019)和SGLang(许等,2019),以重用相同图像的KV缓存,避免冗余存储。

  1. Evaluation

作者评估了V-LoRA在涉及三个LMMs上的五个视觉应用中的性能。主要结论如下:

V-LoRA 相较于最先进的托管系统降低了 20-89% 的端到端延迟,同时在特定域的小模型上实现了可比的准确性。(SS6.2) 准确度感知的 LoRA Adapter 生成带来了显著的准确度和吞吐量效益;自适应分块的 LoRA Adapter 批处理和灵活的 LoRA Adapter 编排提升了巨大的延迟和吞吐量。(SS6.3)

V-LoRA表现出对不同工作负载和LoRa Adapter 数量的强大稳定性,以及扩展到多个GPU资源的 scalability。(SS6.4)

Experimental Setup

视觉应用和数据集

作者选择两种不同的视觉应用:视觉检索和视频分析,来评估V-LoRA的性能。视觉检索旨在分析和响应 Query ,涉及视觉问答、图像描述和特定目标检测任务,当需要时。作者在SharedGPT-4V(Zhu等人,2019年)和RefCOCO(Xu等人,2019年;Xu等人,2019年)数据集上评估视觉检索。视频分析接收和分析每个RGB帧来自视频,然后输出固定视觉任务的成果,包括目标检测和视频理解,类似于先前的研究(Xu等人,2019年;Xu等人,2019年)。目标检测在YODA(Xu等人,2019年)和Cityscapes(Xu等人,2019年)上定位和识别每个视频帧上的物体。视频理解在连续的视频帧上识别动作,在UCF101(Xu等人,2019年)上。

测试平台和工作负载 作者在配备一个NVIDIA A100 80GB GPU和Intel Xeon Platinum 8358 CPU的服务器上评估了V-LoRA。主机内存为128 GB。视觉检索的工作负载来自2023年微软Azure LLM推理跟踪的生产痕迹(Dwork等人,2018年)。由于此工作负载跟踪中的请求数量超过了当前硬件能力(如先前的作品Kumar等人,2018年),作者在环形轮询方法中以不同的速率随机采样请求。与先前的作品Kumar等人,2018年; Wang等人,2018年一样,视频分析工作负载每秒摄入一个视频块,每个块包含30帧,每个流。

度量标准 准确性度量标准遵循标准指标。视觉检索通过vqa-score(Kumar等人,2018年)进行测量,目标检测通过平均F1-score评估,视频理解通过Top-1精度进行评估。对于系统度量,作者评估端到端的吞吐量,即每秒请求数,以及每个请求的端到端延迟的平均值,即每个请求的端到端延迟总和除以总的 Token 数。

模型 。作者选择了广泛使用的开源LMMs,包括Qwen-VL(Zhu等人,2018年)和LLaVA-1.5系列(Zhu等人,2018年)。作者使用了各种大小的LLaVA模型,包括LLaVA-v1.5-7B和LLaVA-v1.5-13B。这些模型的详细信息如表2所示。LoRA Adapter 的排名设置为64。作者还使用了五个小型模型,包括VisionMamba(Zhu等人,2018年),YOLO(Redmon等人,2016年),OS-CAR(Zhou等人,2018年)VideoMAE(Zhou等人,2018年)和UNINEXT(Zhu等人,2018年),这些模型在对应的数据集上实现了最先进的准确性能对比。

picture.image* Baseline。为了展示V-LoRA的优势,作者将与三个不同的 Baseline 进行比较:

S-LoRA (Zhu等人,2018年) 仅在非合并模式下运行,并使用其自定义的CUDA算子批量并发异构LoRA计算。

  • 琐马(周等人,2018年) 也仅在非合并模式下使用,类似于 S-LoRA,但其拥有自己的运算符。
  • Kumar等人(2018年)提出的dLoRA(动态低秩近似)根据工作负载在未合并模式和合并模式之间进行切换,并调用PyTorch运算符Einsum来实现未合并推理。

End-to-End Performance

这一部分报告了V-LoRA在多个LMMs上的端到端性能以及应用。

系统性能。V-LoRA在视觉应用和LMMs下都实现了比dLoRA、Punica和SLoRA显著降低的平均 Token 延迟。图14的第一行显示了它们在三个LMMs上的视觉检索性能。在三个LMMs上,V-LoRA分别将平均 Token 延迟降低了72%,50%和20%,与dLoRA、Punica和S-LoRA相比。对Punica和S-LoRA来说,这种加速是明显的。它们仅在非合并模式下工作,忽略了合并友好的工作负载模式,例如,60%的请求需要相同的LoRA Adapter 。尽管dLoRA考虑了推理模式两者之间的偏好,但其高模式切换成本和不合并推理中的低效Einsum运算符导致了20%的下降;相反,V-LoRA的ATMM运算符实现了快速切换和高效非合并和混合模式(更多实验见SS6.3)。此外,随着每秒请求的增加,大多数服务系统的折点出现在6,如果配备更多GPU(更多见SS6.4)可以消除这些折点。

picture.imageV-LoRA在视频分析服务方面优于其他系统,如图14的第二行所示。相较于dLoRA、Punica和S-LoRA,V-LoRA分别实现了89%、83%和71%的平均 Token 延迟减少。这一优势源于任务 Head 的视觉任务。V-LoRA在自回归的LLM(更多实验见SS6.3.1)中有效地消除了多轮推理。

对比图14中的每一列。V-LoRA在视频分析应用中比其他服务系统产生更多显著的优势。这种差异源于两种视觉应用中输入和输出 Token 长度的不同分布。与视觉检索不同,视频分析通常具有更少的输出 Token 和更多的输入 Token ,例如,每个视频理解请求具有6×256个输入 Token 和5-10个输出 Token ,而VQA具有256和200+个 Token 。由于输入 Token 可以在预填充阶段进行批处理计算,因此它们比解码阶段输出 Token (每个 Token 30-50ms)节省大量时间(每个 Token <1ms)。此外,未合并推理的额外延迟随着输入长度的增加而增加(参见图17);因此,具有较长输入的视频分析可以更充分利用V-LoRA进行模式切换。

准确性性能。 V-LoRA在各种任务上实现了接近或超过特定领域小型模型SOTA准确性的性能。作者报告了Qwen-VL在微调LoRA Adapter 后在不同视觉任务上的结果,如图15所示。作者在A100 80GB上对五个不同的任务进行训练,并将其与相应的SOTA小型模型进行测试。例如,V-LoRA在视觉问答和图像描述任务上的准确性提高了4.3-5%。此外,对于小型模型通常表现出色的一些任务,例如目标检测和视频理解,V-LoRA经过微调的LoRA Adapter 将Qwen-VL的准确性提高了24.5-62.2%,在这些领域实现了有竞争力的准确性。

picture.image### Comprehensive Component-wise Analysis

作者对单个系统组件进行了深入的性能分析。如果没有提到,所有结果都是在每秒10个请求的Qwen-VL模型上进行的测试。

6.3.1. Accuracy-aware LoRA Adapter Generation

V-LoRA在保持高准确率的同时实现了巨大的吞吐量改进。关于准确率提高的讨论已经在上文提到;作者只分析视觉任务头带来的吞吐量提高。对于视频分析任务,V-LoRA所采用的视觉任务头显著减少了自回归解码的轮数,从而极大地提高了系统性能。如图16所示,与原始语言建模头相比,V-LoRA实现了41-63%的延迟降低。这一增益归因于视频分析头的贡献,即最小化 Prompt 长度并仅需一次推理轮数。在视频理解任务中,V-LoRA配备视频分析头可以匹配某些小型模型,并实时处理3-4个视频流。

6.3.2. Adaptive-tiling LoRA Adapters Batching

ATMM在所有比较中实现了最有效和稳定的矩阵乘法。如图17所示,在大量多样化的输入下进行10次 Warm up 后,ATMM在不同的批处理大小下实现了最低的平均延迟。与S-LoRA,Punica和dLoRA相比,ATMM分别加速了2.7倍,2.3倍和3.4倍。在稳定性方面,图18中的统计结果表明,ATMM提供了最强的性能,与S-LoRA,Punica和dLoRA相比,降低了延迟波动的3倍,2倍和2倍。这些优势源于离线阶段基于特征的优化 tiles 搜索。例如,当批处理大小超过1024时,ATMM可以自适应地调整到更大的 tiles 形状,充分利用硬件资源,而其他操作员则受到静态 tiles 的困扰。

picture.image在解码阶段,当输入矩阵形状较小时,图17左部分,ATMM通过适应较小的瓷砖形状,保持了高效率。它与S-LoRA的延迟相当,优于dLoRA和Punica的4.5倍和2.6倍。dLoRA由于Einsum重复调用 Kernel ,导致较大的上下文切换开销。而Punica由于其不匹配的瓷砖形状,导致了较低的核心利用率。得益于自适应分块,ATMM仅需5ms计算和合并所有层LoRA矩阵。

6.3.3. Flexible LoRA Adapters Orchestration

动态选择和切换推理模式,使用作者快速的切换器及deLoRA操作,在比较中提供最佳服务。如图19所示,V-LoRA在不同的偏斜度下分别比仅合并、仅不合并和dLoRA快33%、59%和21%的延迟。偏斜度表示最需要的LoRA Adapter 比例。仅合并处理调用相同LoRA Adapter 的请求,导致未充分利用资源和小型批次,而仅不合并引入大量额外计算。dLoRA仅在高偏斜工作负载中显示优势,因为其未合并推理运算符Einsum的性能不佳。作者的调度策略性能最佳,因为它充分利用了低延迟合并模式,并发明了混合模式以消除一些模式切换。

德洛拉(deLora)相较于未合并的推理,在图21中明显降低了延迟。对于饥饿的请求,其尽早执行可以节省平均62%的计算开销,当饥饿请求的数量低于最大批处理量的50%时。另一方面,快速的推理模式切换也做出了很大贡献。在支持ATMM的情况下,与使用两个LoRa Adapter 的dLoRA和未合并(如图21所示)的推理相比,可以实现1.2倍和1.4倍的速度提升。

Stability and Scalability

不同请求偏斜度的影响。 V-LoRA在各种偏斜度下实现了与其他系统相比最佳的平均 Token 延迟。图22显示,在四种不同的偏斜度条件下,V-LoRA与dLoRA、Punica和S-LoRA相比,平均 Token 延迟分别降低了76-81%、72-83%和63-76%。这种优势源于V-LoRA的及时模式切换和适当的请求和 Adapter 编排。使用快速切换器和混合模式,它可以快速响应工作负载的变化。

不同数量LoRa Adapter 的影响。 V-LoRa在 Adapter 数量增加时保持最佳和最稳定的性能。如图23所示,它受到的最小影响得益于V-LoRa的高效内存管理。V-LoRa预分配的连续内存减少了不必要的内存复制或移动和内存碎片。此外,当数量增加到需要LoRa交换时,V-LoRa的策略交换 Adapter 和在运行时计算矩阵,异步交换有助于降低延迟。具有高度优化的ATMM Kernel ,LoRa矩阵交换与dLoRa通过批处理GEMM的矩阵乘法相比保持了较高的稳定性。

扩展到多GPU 。V-LoRA 表现出卓越的扩展性,通过多GPU可以显著提高整个系统吞吐量。如表3所示,配备1、2和4个A100 GPU的服务器,总系统吞吐量分别达到6.07、11.48和23.97个请求/秒。在未来的工作中,作者可以通过集成诸如dLoRA[(81)]和InternVL2-76B[(35)]等GPU间调度来进一步提高多GPU场景下的系统性能。

picture.image7. Related Works

大型模型服务系统最近利用系统优化技术提高了LLM的推理效率。通过分页思考,vLLM [(50)]提出了一种页-注意力运算符与基于块的KV缓存相结合的方法,以最小化GPU内存碎片化。从先进的批量机制来看,Orca [(87)]引入了迭代级调度,可以持续批量不同长度的请求,而DeepSpeed-FastGen [(39)]进一步通过动态拆分融合策略进行改进。采用分布式架构,FlexGen [(70)]通过卸载功能来提高LLM服务吞吐量,而Moonack [(64)]则采用KVCache为核心的架构,将预填充和解码集群分离。考虑到LLM推理特性,SpecInfer [(62)]利用推测解码来减少延迟,而SARATHI [(18)]则通过搭载解码和分块预填充来调度请求。

S-LoRA [(69)], Punica [(25)], dLoRA [(81)] 是唯一三种能够通过批处理为不同 Adapter 请求的 LoRA LLM 服务的系统。本文对这些系统的不足进行了深入分析。比它们更早的一项研究 PetS [(97)], 也考虑了为多个参数高效的 DNN 模型服务的场景,但它没有考虑为自回归 LLM 服务以及 LoRA Adapter 的独特系统特性。与它们相比,V-LoRA 提供了更高效的运行时,并且作为端到端系统,包括 LoRA Adapter 生成。

参数高效的微调(PEFT) [40, 54] 旨在将大型预训练模型适配到特定任务或领域。通过调整几层或参数,PEFT 可以在保留核心预训练知识的同时,有效地学习任务特定的细微差别[58]。作为一种验证系统,V-LoRA 的 LoRA Adapter 生成采用启发式算法。它可以很容易地被许多先进的 PEFT 技术[94] 替代,作者在未来的工作中留待解决。

增强检索式生成(RAG) [22, 44, 52] 通过将外部数据库的相关知识整合到语言模型(LLM)中,使得LLM的性能可以达到微调后的LLM水平 [24]。一些工作 [66, 77] 提出在生成过程中进行多次外部检索以获得更高的质量。V-LoRA的系统性能大大超过RAG,因为RAG的昂贵向量搜索[27]和长上下文 Prompt 。

8 Conclusion

在本文中,作者首先探讨了将LMMs作为视觉应用的基础模型,以实现高服务效率和易用性自然语言界面的利用。

为了实现这一目标,作者提出了V-LoRA,这是一个端到端的系统,它使用LoRA Adapter 将LMMs适应于特定视觉任务的领域,并在运行时有效地管理它们,以丰富视觉应用。

在两个典型的视觉应用中,作者证明了V-LoRA能使单个LMM在多个视觉任务中实现优越的性能和泛化。

虽然V-LoRA并非最终答案,但作者希望它能为未来视觉应用的多基础设计提供一条通往之路,并展示了将LMM适应于视觉任务的潜力。

参考文献

[0]. V-LoRA: An Efficient and Flexible System Boosts Vision Applications with LoRA LMM.

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论