mLoRA 项目介绍
mLoRA,全称为 Multi-LoRA Fine-Tune,是一个开源框架,专为通过 LoRA 和其变体对多个大型语言模型(LLMs)进行高效微调而设计。它就像一个高效的“工厂”,能够同时构建多个 LoRA 适配器。这篇文章将介绍 mLoRA 的功能特点、使用方法和一些技术细节。
项目背景和功能
mLoRA 的设计初衷是为了提高微调过程的效率,尤其是在同时处理多个 LoRA 适配器时。它有以下几个核心功能:
- 多LoRA适配器的并行微调:能够同时对多个 LoRA 适配器进行训练,提高效率。
- 共享基础模型:多个 LoRA 适配器可以共享一个基础模型,减少计算冗余。
- 高效的管道并行算法:通过先进的并行算法来提高操作效率。
- 支持多种LoRA变体算法和基模型:灵活支持不同的算法和模型,提高适应性。
- 支持多种强化学习偏好对齐算法:可以结合多种算法进行偏好对齐,以提升训练效果。
快速开始
要使用 mLoRA,用户需要首先克隆代码库并安装所需的依赖。以下是简单的安装步骤:
# 克隆项目代码
git clone https://github.com/TUDB-Labs/mLoRA
cd mLoRA
# 安装依赖,需 Python 版本 >= 3.12
pip install .
初次使用可以通过执行 mlora_train.py
来开始批量微调 LoRA 适配器:
python mlora_train.py \
--base_model TinyLlama/TinyLlama-1.1B-Chat-v0.4 \
--config demo/lora/lora_case_1.yaml
配置文件的范例可以在 demo 文件夹中找到,用户可以根据需求调整 LoRA 变体和偏好对齐算法。
使用 Docker 部署
mLoRA 还提供了官方的 Docker 镜像,用户可以通过 Docker 快速启动和开发。以下是使用 Docker 的步骤:
-
获取最新的 Docker 镜像:
docker pull yezhengmaolove/mlora:latest
-
部署并进入容器运行 mLoRA:
docker run -itd --runtime nvidia --gpus all \ -v ~/your_dataset_dir:/dataset \ -v ~/your_model_dir:/model \ -p <host_port>:22 \ --name mlora \ yezhengmaolove/mlora:latest
mLoRA 的优势
使用 mLoRA 最主要的优势在于其计算效率和内存节省,特别是在需要同时训练多个适配器的情况下。
-
高性能:即使在消费者级别的硬件上,如 A6000 图形卡,mLoRA 依然能够以高精度(fp32)运行,并且无需检查点和量化技术即可达成出色的性能。
-
支持的模型和变体:
- 支持 LLaMA 模型及其变种。
- 支持多种 LoRA 变体(如 QLoRA、LoRA+等)和偏好对齐算法(如 DPO、CPO等)。
文件和开发文档
欢迎对 mLoRA 进行贡献,详情请参阅贡献指南。项目以 Apache 2.0 许可证发布,您可以根据许可证的条款自由使用代码。
总之,mLoRA 是一个功能强大的工具,适用于需要高效地微调多个语言模型的研究人员和开发者。通过提供多种算法支持和高效的并行功能,它帮助用户大幅提高训练效率。