华盛顿大学和杜克大学的研究人员推出 Punica:一个人工智能系统,用于在共享GPU集群中为多个LoRA模型提供服务
华盛顿大学和杜克大学的研究人员推出 Punica:一个用于共享GPU集群为多个LoRA模型提供服务的人工智能系统


为了专门针对特定领域的任务进行预训练的大型语言模型(LLMs),最小训练数据的低秩适配或LoRA正在流行起来。租户可以以最低成本训练各种LoRA模型,因为LoRA通过保留预训练模型的权重并在Transformer架构的每个层中添加可训练的秩分解矩阵来大大减少可训练参数的数量。LoRA现在已成为几种广泛使用的微调框架的一部分。因此,为满足其租户的需求,机器学习提供商必须同时提供许多特定的LoRA模型。仅仅将LoRA模型视为单独训练的方式会浪费GPU资源。
如果每个LoRA模型都需要k个GPU,那么k × n个GPU似乎是支援n个独立的LoRA模型所需的。这种简单的方法忽略了这些LoRA模型之间可能存在权重相关性的可能性,因为它们来自相同的预训练模型。他们认为,一个有效的支持多个不同LoRA模型的系统必须遵循三个设计原则。由于(G1)GPU价格昂贵且供应短缺,多租户的LoRA服务工作负载必须集中在少数GPU上,以最大限度地利用GPU。批处理是组合机器学习工作负载以提高性能和GPU利用率的最佳方法之一,正如以前的研究所指出的那样。但只有在请求相同模型时才进行批处理。因此,他们必须允许对各种LoRA模型进行批处理。大部分模型服务成本归因于解码阶段。因此,他们只需专注于惊人的阶段性能。对于模型服务的其他不太重要的组件,他们可以使用简单的方法,例如按需加载LoRA模型权重。基于这三个准则,华盛顿大学和杜克大学的研究人员开发并构建了Punica,这是一个用于在共享GPU集群上提供LoRA模型的多租户服务框架。分段收集矩阵-向量乘法(SGMV)是其中的一个主要创新。
通过SGMV,可以批处理同时执行多个不同的LoRA模型。通过减少GPU必须在内存中保留的预训练模型副本数量,SGMV大大增加了GPU在存储和计算方面的效率。他们结合了几种尖端的系统优化方法与这个新的CUDA核心一起使用。令人惊讶的是,当批处理相同的LoRA模型与批处理不同的LoRA模型时,几乎没有性能差异。SGMV允许对几个LoRA模型的请求进行批处理。同时,LoRA模型按需加载的延迟只有几毫秒。
- 中国上海交通大学的研究人员介绍了TransLO:一种基于窗口的点云遮蔽变换器框架,用于大规模LiDAR里程计
- “山姆·奥尔特曼被开除,不再担任OpenAI的首席执行官”
- LastMile AI发布了AiConfig:一个开源的基于配置驱动、源代码控制友好的AI应用开发框架
现在,Punica可以将用户请求压缩到较小的一组GPU,而不会受到当前正在GPU上执行的LoRA模型的限制。Punica使用以下两种方法为多个租户安排任务。Punica将一个新请求指向当前正在使用的一组选择GPU,确保这些GPU得到充分利用。只有当当前的GPU完全被使用时,Punica才会再分配更多的GPU资源。Punica定期移动活动请求以进行整合。这样可以释放Punica已分配的GPU资源。他们评估了基于Llama2 7B、13B和70B模型的NVIDIA A100 GPU集群中的LoRA模型。
Punica每个令牌增加了2毫秒的延迟,并且使用相同的GPU资源提供了12倍的吞吐量,比最先进的LLM服务解决方案更高。本文的贡献如下:
• 他们认识到了批处理来自不同LoRA模型的请求的潜力。
• 他们创建并实施了一种对同时运行多个LoRA模型有效的CUDA核心。
• 他们提供了创新的调度技术,以将来自多个租户的任务组合在LoRA中。




