S-LoRA新框架:在单GPU上高效扩展数千LLM适配器

2023年12月14日 由 daydream 发表 524 0

这篇文章是我们对最新人工智能研究的报道的一部分。


微信截图_20231214131011


对大型语言模型(LLM)进行微调已成为公司针对特定需求定制AI应用程序的关键资源。尽管它们潜力巨大,但微调和部署这些LLM的高昂成本阻碍了它们的广泛使用。


参数高效微调(PEFT)方法通过只修改模型参数的一小部分,显著降低了费用,帮助克服了这一障碍。其中,低阶适应(LoRA)因其成本效益和作为可从核心LLM中分离的可拆卸适配器的独特功能而脱颖而出。


斯坦福大学和加州大学伯克利分校的研究人员开发的S-LoRA是一个新框架,它扩大了LoRA的能力。S-LoRA的突破允许在单个GPU上同时运行数百甚至数千个LoRA适配器。这种可扩展性不仅削减了操作成本,而且也为更广泛地访问定制的LLM应用程序铺平了道路,有潜力实现每个用户都有一个微调模型,而成本微不足道。


LoRA工作原理


微信截图_20231214131029


传统上,针对新应用程序或“下游任务”对LLM进行微调涉及更新预训练模型中的许多层和参数。鉴于LLM通常具有数十亿参数,这种方法需要大量的计算能力。LoRA识别并调整与下游任务特别相关的LLM参数的最小子集。这种针对性方法显著降低了可训练参数的数量,从而降低了内存占用。


LoRA在保持与全参数微调相当的准确度水平的同时,将可训练参数减少了几个数量级。这种效率与效果的平衡促使AI社区广泛采用,为各种预训练的LLM和扩散模型开发了众多LoRA适配器。


最初的LoRA论文提出将微调后的低阶权重重新集成到基础LLM中。然而,一个日益流行的替代方法是将LoRA权重作为独立的适配器保持。这些适配器可以在推理过程中动态地插入基础模型。LoRA适配器和基础模型的权重是独立计算的,然后结合起来。由于LoRA适配器体积小,额外的计算开销最小。


这种模块化设计允许多个LoRA适配器共存,每个适配器都是使用不同数据集微调的,仅占用主模型内存的一小部分,并代表着模型的一个独特微调版本。


根据应用程序的需要,可以在运行时将LoRA适配器插入模型。


扩展LoRA的挑战


在一个完整参数LLM旁边运行多个LoRA模型带来了几个技术挑战。内存管理是一个主要关注点;GPU内存的有限容量限制了可以与主模型同时活动的LoRA适配器的数量。此外,LLM服务器通常采用缓存和批处理技术来集体处理众多请求,并提高吞吐量。但是,LoRA适配器的可变大小及其与基础模型分开的计算引入了内存和计算复杂性,可能会妨碍推理速度。


此外,对于需要跨多个GPU并行处理的更大LLM,LoRA适配器的集成变得更加复杂。来自LoRA适配器的额外权重和计算增加了已经复杂的跨多个GPU同步流程的任务,对于保持高效操作来说是一个重大挑战。


微信截图_20231214131047


S-LoRA,即“可扩展LoRA”,克服了同时运行多个适配器的障碍。它引入了三项关键创新,共同简化了过程。


第一个创新是其动态内存管理系统。该系统高效地将所有LoRA权重加载到主内存中,并在需要时动态地加载到GPU或从GPU中卸载它们,以处理传入的批处理请求微调模型。这种方法确保在正确的时间分配正确的资源,优化内存使用,避免响应请求的长时间延迟。


其次,S-LoRA整合了一个统一的分页系统。该系统管理查询缓存和适配器权重,使服务器能够处理数百甚至数千个批处理查询。它不会导致内存碎片化,这是一个常见的瓶颈,可能迫使模型重新计算计算密集的键值(KV)缓存值。


第三项创新是专为批处理LoRA推理设计的新型张量并行系统,使得在多GPU设置中使用大型变压器模型变得更加容易。该系统确保了LoRA适配器在GPU上的并行处理既高效又有效。


这些功能使S-LoRA能够在单个GPU上或跨多个GPU上服务众多LoRA适配器,而仅增加很小的开销。在测试中,S-LoRA用于在不同的GPU配置上提供开源的Llama LLM的各种版本。结果令人印象深刻:S-LoRA能够在单个GPU上顺畅地处理数千个LoRA适配器,只增加了很小的开销。


与Hugging Face PEFT库相比,这是一种最先进的参数高效微调工具,S-LoRA的吞吐量提高了多达30倍。与具有基本LoRA服务支持的高吞吐量服务系统vLLM相比,S-LoRA提高了多达4倍的吞吐量,并显著增加了服务适配器的数量。


S-LoRA可以与上下文学习或检索增强生成(RAG)配对使用,为用户提供个性化的适配器,并将他们的最近数据作为上下文纳入LLM的提示中。


S-LoRA的代码在GitHub上是公开的,计划与广泛使用的LLM服务框架集成。这种集成将使公司能够轻松将S-LoRA纳入他们的应用程序。


尽管S-LoRA是一个重大进步,但它并不是这个领域中的唯一框架。Predibase的LoRAX也是一个旨在大规模服务LoRA适配器的框架,提供了无需处理内存管理和模型切换复杂性的数百个LoRA模型的无缝操作。

文章来源:https://bdtechtalks.com/2023/12/13/s-lora-llm-fine-tuning/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消