外观
LLaMA-Factory: 微调大模型可以像这样轻松
此镜像 LLaMA-Factory 版本:0.9.2.dev0 同步时间 2024.12.25
**(通过 **ParzHe/LLaMA-Factory 仓库定期与 hiyouga/LLaMA-Factory 同步)
1. LLaMA-Factory 简介
1.1 特色
- 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。
- 集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。
- 多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
- 先进算法:GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。
- 实用技巧:FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA。
- 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等等。
- 极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。
1.2 训练方法
方法 | 全参数训练 | 部分参数训练 | LoRA | QLoRA |
---|---|---|---|---|
预训练 | ✅ | ✅ | ✅ | ✅ |
指令监督微调 | ✅ | ✅ | ✅ | ✅ |
奖励模型训练 | ✅ | ✅ | ✅ | ✅ |
PPO 训练 | ✅ | ✅ | ✅ | ✅ |
DPO 训练 | ✅ | ✅ | ✅ | ✅ |
KTO 训练 | ✅ | ✅ | ✅ | ✅ |
ORPO 训练 | ✅ | ✅ | ✅ | ✅ |
SimPO 训练 | ✅ | ✅ | ✅ | ✅ |
1.3 硬件依赖
*** **估算值
方法 | 精度 | 7B | 13B | 30B | 70B | 110B | 8x7B | 8x22B |
---|---|---|---|---|---|---|---|---|
Full | AMP | 120GB | 240GB | 600GB | 1200GB | 2000GB | 900GB | 2400GB |
Full | 16 | 60GB | 120GB | 300GB | 600GB | 900GB | 400GB | 1200GB |
Freeze | 16 | 20GB | 40GB | 80GB | 200GB | 360GB | 160GB | 400GB |
LoRA/GaLore/BAdam | 16 | 16GB | 32GB | 64GB | 160GB | 240GB | 120GB | 320GB |
QLoRA | 8 | 10GB | 20GB | 40GB | 80GB | 140GB | 60GB | 160GB |
QLoRA | 4 | 6GB | 12GB | 24GB | 48GB | 72GB | 30GB | 96GB |
QLoRA | 2 | 4GB | 8GB | 16GB | 24GB | 48GB | 18GB | 48GB |
2. 部署镜像和启动服务
2.1. 镜像部署
点击页面右侧的目录下方的“创建应用”按钮。进入容器创建页面。参考上文1.3 硬件依赖选择适合自己的GPU和显卡数量(LLaMA-Factory支持多卡)。对于创建容器的其他问题,建议参考 Casdao 智算空间文档中心。
2.2 启动LLaMA Board 服务
启动方式如下:
- 点击本 Jupyter Notebook 启动器顶部的"►►重启内核并运行所有单元格"按钮启动
- 通过 Jupyter 或 VS Code 的终端输入指令启动
有条件的用户推荐使用 VS Code 配置 SSH 连接进行启动,可以参考Caddao GPU 容器云-VS CODE 配置远程开发环境文档进行配置。LLaMA Factory 对VS Code 的 Server 有着很好的适配,以上两种方式在 VS Code server 中通过端口转发都会实现自动用电脑浏览器打开 LLaMA Board。
2.2.1 通过 Jupyter Notebook 启动器启动
Casdao/AIvinla 的 Jupyter:在根目录(/home/tom/)找到启动器.ipynb
, 打开后点击 Jupyter Notebook 启动器顶部的"►►重启内核并运行所有单元格"按钮启动。
或 VS Code 的 Jupyter(通过 SSH 连接):点击"全部运行(Run All)"
2.2.2 通过终端启动
以下是操作步骤:
- 打开 VS Code 或 Casdao 平台 Jupyter 的终端(Terminal)
- 确保在根目录(即处于 /home/tom/ 目录)。输入
pwd
可知当前所在目录。如果不在根目录输入cd /home/tom
即可切换到根目录。 - 输入
bash LLaMA-Factory/webui_start.sh
指令,即可启动 LLaMA Board(默认通过 Hugging Face 下载模型。如果sh后面跟着 1 即bash LLaMA-Factory/start.sh 1
会通过魔塔社区 ModelScope** 下载模型)
2.3 启动 API服务
以下是操作步骤:
打开 VS Code 的终端(Terminal)或 Casdao/AIvinla 平台 Jupyter 的终端(Terminal)
确保在根目录(即处于 /home/tom/ 目录)。输入
pwd
可知当前所在目录。如果不在根目录输入cd /home/tom
即可切换到根目录。然后输入类似的以下指令:
API_PORT=7860 llamafactory-cli api inference_examples/llava_next.yaml
API_PORT
需要需要与 Casdao/AIvinla 应用服务端口对应, 如下图的7860
,此为服务器内部的监听端口号。- "inference_examples/llava_next.yaml" 为启动模型推理的设定文件的地址。"inference_examples"文件夹内有使用其他模型的设定模板,便于调用
! 选择部分模型进行部署需要下载模型,会耗费一定的时间
3. 打开和使用 LLaMA Board 和 API
3.1 LLaMA Board
没有通过 VS Code 或 VS Code 的 server 不能正常运行则需要通过 Casdao 应用服务打开。具体操作如下:
- 当 Jupyter Notebook 或终端中的输出如下,则可以通过Casdoa 算力互联/智算空间应用服务打开 LLaMA Board
- ,点击框选处,即可打开应用服务。
打开成功后,便可使用 LLaMA-Factory 进行大模型微调了。
不使用本地模型的情况下,模型会下载到 fssd 数据盘的 Hugging Face 或 ModelScope 文件夹中。
注意: 使用本启动器中的shell指令在启动时会进入 LLaMA-Factory 文件夹中。使用本地模型建议在输入时使用绝对位置,或将
../
加在复制得到的相对位置前。
**微调好的模型会存入 **fssd/saves/
下的对应文件夹。
3.2 API
平台应用服务页面提示“应用服务已启动” 后,需要与转发的OpenAI-Style API 服务建立连接。建立连接需要近似如下的请求体:
from openai import OpenAI
client = OpenAI(
api_key="your_api_key_here",
base_url="https://calm-blaze-4397-7860.east4.casdao.com/v1"
)
base_url
需要替换为实际的应用服务链接。如上的 "https://calm-blaze-4397-7860.east4.casdao.com"
我们可以按照下图方式获取链接:1.点击端口管理
2.点击“复制链接”即可
4. 联系镜像维护者
镜像的 LLaMA-Factory 仓库:ParzHe/LLaMA-Factory
如果有重要更新但暂时没有同步,欢迎联系镜像维护者。
微信号;ParzLuck