高效利用:一价多用的多精调LLM解决方案

2023年11月03日 由 daydream 发表 418 0

预训练的大型语言模型(LLM)如Llama 2是多功能工具,可以直接执行各种任务。然而,通过使用自定义数据对其进行精调,可以提高其在定制任务上的性能。对于不同的用例拥有多个经过精调的LLM版本的想法非常吸引人。但运行它们需要大量的内存和计算资源开销。


微信截图_20231103110913

解决方案是低秩适应(LoRA),一种显著减少精调模型占用内存的精调技术。为了进一步简化这个过程,开发人员可以利用LoRAX,这是一个自动化管理和操作多个LoRA模型的框架,最大限度地减少技术开销,提高效率。


将深度神经网络进行特定任务的精调的传统方法涉及在新示例上训练模型。根据原始训练数据和精调训练数据之间的相似性,该过程中会修改模型的一部分或全部层,而其余部分保持冻结状态。


然而,这种经典精调方法的一个重要缺点是模型会经历不可逆转的修改,可能降低其在原始任务上的性能。


在这方面,LoRA提供了两个关键优势。首先,LoRA不修改原始模型的整个参数空间,而是确定并调整仅对学习新任务至关重要的原始模型参数子集。这种针对性的方法确保了高效且低成本的精调。


其次,LoRA充当适配器。它作为独立模型进行训练,并在推理期间插入到原始模型中。这个特性使开发人员能够针对不同的下游任务训练多个LoRA模型,并在运行时选择要附加到主LLM的模型。


微信截图_20231103110938

例如,您可以有一个针对客户支持进行LoRA精调的模型,另一个针对写作辅助,以及针对语义搜索的模型。这些模型都可以在同一基础模型上使用,具体取决于用户启用的应用程序功能。


训练完成后,每个LoRA模型对原始模型的运行增加的成本很小。这意味着您可以在几乎不增加额外成本的情况下利用多个经过精调的模型的能力。


尽管低秩适应提供了令人信服的功能,但管理一系列LoRA模型可能引入技术复杂性和成本。这就是Predibase开发的框架LoRAX发挥作用的地方。LoRAX建立在Uber AI设计的用于创建深度学习模型流水线的低代码框架Ludwig之上,简化了管理多个LoRA模型的过程。


LoRAX可以加载一个基础LLM和一个或多个LoRA适配器。根据用户的请求,LoRAX无缝地将基础LLM与适当的LoRA适配器组合起来生成响应。


微信截图_20231103111005

此外,LoRAX动态管理LoRA堆栈,即使适配器的数量超过服务器的GPU内存容量,也可以确保流畅运行。它通过多层缓存系统实现这一点,该系统可以在GPU、RAM和磁盘内存之间交换不同的LoRA适配器,确保所有请求都能得到服务而不会对用户造成延迟。


Predibase提供在线运行模型的云服务,以及一个Python SDK,可以用几行代码创建LoRA适配器,轻松集成到应用程序中。该平台支持几种流行的开源模型,包括Llama 2、Mistral和Falcon,为希望利用经过精调的LLM的强大功能的开发人员提供了一个多功能解决方案。

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