使用 LoRA 部署降低大语言模型成本
如何把多个微调后的大模型合并部署以节省成本呢?本文将深入探讨如何利用 GenStudio 实现多 LoRA 合并部署,降低大模型使用成本。
背景
企业在大模型部署中面临的挑战,主要源于多个业务场景需要独立微调和部署大语言模型。尽管各场景的模型调用量低,但大模型部署成本高昂,导致资源浪费。多 LoRA 技术提供了一种解决方案,可用于合并部署多个场景的模型。
NOTE
本文不再赘述什么是 LoRA(Low-Rank Adaptation)和如何微调大模型。如果您对 LoRA 技术原理感兴趣,可以阅读这篇论文。
获取 LoRA 文件
虽然论文中 LoRA 的原理较为复杂,但许多框架都支持快速上手微调,整个过程相对简便。LoRA 微调完成后,将生成一个只包含部分参数(即 LoRA 参数)的文件,称为 LoRA Adapter,与整个大模型的所有参数相比,这个参数文件非常小。
LoRA 参数文件的目录结构示例,标注「必须」的为 GenStudio 部署时的必要文件:
# lora
├── adapter_config.json # 必须
├── adapter_model.safetensors # 必须
├── added_tokens.json # 可选
├── special_tokens_map.json # 可选
├── tokenizer_config.json # 可选
├── tokenizer.json # 可选
└── tokenizer.model # 可选
LoRA 参数合并
从 LoRA 原理来看,LoRA 参数实际上是将大模型原始参数冻结后训练低秩矩阵的参数,通常占比小于整体的 2%。如何利用这个 LoRA 文件来部署大模型呢?
一个经典的流程是将微调后的 LoRA参数与大模型的原始参数合并,生成一个新的微调大模型,直接部署这个新模型。
直接部署合并后的微调大模型,有什么问题吗?让我们回顾一下训练和部署流程。对于单个业务场景,我们首先通过微调训练生成一个 LoRA 参数文件,然后将 LoRA 参数文件与基础大模型合并,最后进行大模型的部署。
然而,如果业务场景众多,即使每个场景的流量较小,都需要部署多套大模型。以常见的 7B 大模型为例,至少需要一块 22G 显存的显卡才能运行,而 14B 模型需要两块 22G 显存的显卡,70B 的大模型则需要更高的成本。这种情况可能导致 GPU 资源的浪费。
什么是多 LoRA 部署
无问芯穹大模型服务平台(GenStudio)支持另一个部署方案。您可以不合并 LoRA 文件与模型原始参数,而是直接上传 LoRA 文件,并指定基础模型,即可部署为不同业务场景推理服务。
参考上面的部署架构图,我们的推理引擎可以分别使用大模型原始参数和微调参数进行计算,然后再将计算结果进行合并,最终效果与直接部署微调后的模型一致。
如果有多个 LoRA 文件,部署架构如下图所示。
在部署时,我们只需加载一份基础大模型参数,并在显存中同时加载多个 LoRA 文件。这样,便可以使用较少的显卡资源满足多个业务场景的需求,减少因重复部署带来的成本。
不同的 LoRA 对外仍体现为不同的 API 服务。在发出请求时,您只需要请求对应的服务接接口。
动手使用 GenStudio 部署 LoRA
在 GenStudio「模型管理」页面,点击创建我的模型,可开始创建模型信息。
在这一步中,我们需要先创建一条模型资产记录,并提供必要信息:
- 模型类型:选择大语言模型
- 模型文件类型:选择基础模型 或 LoRA 权重
- 模型系列:从平台当前支持的模型系列中选择
- 模型名称:填写自定义名称
确认后,将直接打开上传模型弹窗。您可以复制 scp/sftp 命令行,或通过 FileZilla 客户端上传模型资产。弹窗中已附有一次性的登录凭证。
如果模型较大,可能传输时间较长,请耐心等待。如需帮助,可参考文档上传模型。
WARNING
在本地上传结束后,必须点击弹窗中的已完成上传,开始导入,否则平台无法识别上传进度。
您可以在「模型管理」页面查看上传的模型资产。确认模型资产处于「已导入」状态后,使用「部署模型」按钮,即可将模型资产部署为推理服务。
如需帮助,可参考文档部署模型。
多 LoRA 适用于什么场景
多Lora适用于以下场景:
- 业务场景多样化:当你的业务场景较多,并且每个场景都需要根据其特定数据进行微调生成一份自己的大模型。
- 调用量较小:如果每个业务场景的调用量相对较少,那么单独为每个场景部署一份大模型的成本将显得很高。
TIP
GenStudio 目前支持已支持多 LoRA 部署,企业用户可免费试用。未来,我们针对使用 LoRA 部署方案的部署服务采用更优惠的计费方式和费率。
常见问题
多 LoRA 的性能怎么样?
多 LoRA 与合并后部署的方式相比,性能几乎可以忽略不计,但性价比更高。