Skip to content

# LLaMA Factory

LLaMA-Factory: 微调大模型可以像这样轻松

无阶未来GitHub Repo stars GitHub Code License GitHub last commit PyPI Citation GitHub pull request Twitter Open in DSW Spaces Studios

此镜像 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 微调。
  • 先进算法GaLoreBAdamAdam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。
  • 实用技巧FlashAttention-2UnslothLiger Kernel、RoPE scaling、NEFTune 和 rsLoRA。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等等。
  • 极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

1.2 训练方法

方法全参数训练部分参数训练LoRAQLoRA
预训练
指令监督微调
奖励模型训练
PPO 训练
DPO 训练
KTO 训练
ORPO 训练
SimPO 训练

1.3 硬件依赖

*** **估算值

方法精度7B13B30B70B110B8x7B8x22B
FullAMP120GB240GB600GB1200GB2000GB900GB2400GB
Full1660GB120GB300GB600GB900GB400GB1200GB
Freeze1620GB40GB80GB200GB360GB160GB400GB
LoRA/GaLore/BAdam1616GB32GB64GB160GB240GB120GB320GB
QLoRA810GB20GB40GB80GB140GB60GB160GB
QLoRA46GB12GB24GB48GB72GB30GB96GB
QLoRA24GB8GB16GB24GB48GB18GB48GB

2. 部署镜像和启动服务

2.1. 镜像部署

点击页面右侧的目录下方的“创建应用”按钮。进入容器创建页面。参考上文1.3 硬件依赖选择适合自己的GPU和显卡数量(LLaMA-Factory支持多卡)。对于创建容器的其他问题,建议参考 Casdao 智算空间文档中心

2.2 启动LLaMA Board 服务

启动方式如下:

  1. 点击本 Jupyter Notebook 启动器顶部的"►►重启内核并运行所有单元格"按钮启动
  2. 通过 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 通过终端启动

以下是操作步骤:

  1. 打开 VS Code 或 Casdao 平台 Jupyter 的终端(Terminal)
  2. 确保在根目录(即处于 /home/tom/ 目录)。输入pwd 可知当前所在目录。如果不在根目录输入 cd /home/tom 即可切换到根目录。
  3. 输入 bash LLaMA-Factory/webui_start.sh 指令,即可启动 LLaMA Board(默认通过 Hugging Face 下载模型。如果sh后面跟着 1 即 bash LLaMA-Factory/start.sh 1 会通过魔塔社区 ModelScope** 下载模型)

2.3 启动 API服务

以下是操作步骤:

  1. 打开 VS Code 的终端(Terminal)或 Casdao/AIvinla 平台 Jupyter 的终端(Terminal)

  2. 确保在根目录(即处于 /home/tom/ 目录)。输入pwd 可知当前所在目录。如果不在根目录输入 cd /home/tom 即可切换到根目录。

  3. 然后输入类似的以下指令:

    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 应用服务打开。具体操作如下:

  1. 当 Jupyter Notebook 或终端中的输出如下,则可以通过Casdoa 算力互联/智算空间应用服务打开 LLaMA Board 输出
  2. ,点击框选处,即可打开应用服务。应用服务已启动 打开成功后,便可使用 LLaMA-Factory 进行大模型微调了。

LLaMA-Board

不使用本地模型的情况下,模型会下载到 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.点击端口管理

img

2.点击“复制链接”即可

img

4. 联系镜像维护者

镜像的 LLaMA-Factory 仓库:ParzHe/LLaMA-Factory

如果有重要更新但暂时没有同步,欢迎联系镜像维护者。

微信号;ParzLuck

WeChat ID: ParzLuck

苏州算网智能科技有限公司版权所有