一、软件介绍

文末提供程序和源码下载

       LLaMA-Factory开源程序使用零代码 CLI 和 Web UI 轻松微调 100+ 大型语言模型。此存储库根据 Apache-2.0 许可证获得许可。请按照模型许可证使用相应的模型权重:百川 2 / BLOOM / ChatGLM3 / Command R / DeepSeek / Falcon / Gemma / GLM-4 / GPT-2 / Granite / Index / InternLM / Llama / Llama 2 (LLaVA-1.5) / Llama 3 / MiniCPM / Mistral/Mixtral/Pixtral / OLMo / Phi-1.5/Phi-2 / Phi-3/Phi-4 / Qwen / Skywork / StarCoder 2 / TeleChat2 / XVERSE / Yi / Yi / Yi-1.5 / Yuan 2

二、特征

  • 多种型号:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、DeepSeek、Yi、Gemma、ChatGLM、Phi 等。
  • 集成方法:(连续)预训练、(多模态)监督微调、奖励建模、PPO、DPO、KTO、ORPO 等。
  • 可扩展资源:通过 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 实现 16 位全调优、冻结调优、LoRA 和 2/3/4/5/6/8 位 QLoRA。
  • 高级算法:GaLore、BAdam、APOLLO、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
  • 实用技巧:FlashAttention-2、Unsloth、Liger Kernel、RoPE 缩放、NEFTune 和 rsLoRA。
  • 广任务:多回合对话、工具使用、图像理解、视觉接地、视频识别、音频理解等。
  • 实验监视器:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等。
  • 更快的推理:OpenAI 风格的 API、Gradio UI 和 CLI,带有 vLLM 工作程序或 SGLang 工作程序。

Day-N 支持微调尖端模型

  型号名称
 Qwen2.5 / Qwen2.5-VL / Gemma 3 / InternLM 3 / MiniCPM-o-2.6
  羊驼 3 / GLM-4 / Mistral Small / PaliGemma2

基准

      与 ChatGLM 的 P-tuning 相比,LLaMA Factory 的 LoRA 调优提供了高达 3.7 倍的训练速度,并且在广告文本生成任务上具有更好的 Rouge 分数。通过利用 4 位量化技术,LLaMA Factory 的 QLoRA 进一步提高了 GPU 内存的效率。

三、Supported Models 支持的型号

对于 “base” 模型,可以从 default 、 alpaca vicuna 等中选择 template 参数。但请确保为 “instruct/chat” 模型使用相应的模板。

请记住在训练和推理中使用 SAME 模板。

请参阅 constants.py 获取我们支持的模型的完整列表。

您还可以将自定义聊天模板添加到 template.py。

四、开始

 安装
 重要

安装是强制性的。

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
提供额外依赖项:torch、torch-npu、metrics、deepspeed、liger-kernel、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、sglang、galore、apollo、badam、adam-mini、qwen、minicpm_v、modelscope、openmind、swanlab、quality

 提示

用于 pip install --no-deps -e . 解决包冲突。

使用 uv 设置虚拟环境
 对于 Windows 用户
对于 Ascend NPU 用户
 数据准备
请参考 data/README.md 查看数据集文件格式的详细信息。您可以在 HuggingFace / ModelScope / Modelers Hub 上使用数据集,也可以在本地磁盘中加载数据集。

 注意

请更新 data/dataset_info.json 以使用您的自定义数据集。

 快速入门
使用以下 3 个命令分别运行 Llama3-8B-Instruct 模型的 LoRA 微调、推理和合并。

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml
llamafactory-cli chat examples/inference/llama3_lora_sft.yaml
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml
有关高级用法(包括分布式训练),请参阅 examples/README.md。

 提示

用于 llamafactory-cli help 显示帮助信息。

如果您遇到任何问题,请先阅读常见问题解答。

使用 LLaMA 板 GUI 进行微调(由 Gradio 提供支持)
llamafactory-cli webui
 构建 Docker
 对于 CUDA 用户:

cd docker/docker-cuda/
docker compose up -d
docker compose exec llamafactory bash
对于 Ascend NPU 用户:

cd docker/docker-npu/
docker compose up -d
docker compose exec llamafactory bash
对于 AMD ROCm 用户:

cd docker/docker-rocm/
docker compose up -d
docker compose exec llamafactory bash
 

五、使用 OpenAI 风格的 API 和 vLLM 进行部署


API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml
 提示

访问此页面以获取 API 文档。

示例:图像理解 |函数调用

从 ModelScope Hub 下载
如果您在从 Hugging Face 下载模型和数据集时遇到问题,可以使用 ModelScope。

export USE_MODELSCOPE_HUB=1 # `set USE_MODELSCOPE_HUB=1` for Windows
通过将 ModelScope Hub 的模型 ID 指定为 model_name_or_path .您可以在 ModelScope Hub 上找到模型 ID 的完整列表,例如 LLM-Research/Meta-Llama-3-8B-Instruct .

从 Modelers Hub 下载
您还可以使用 Modelers Hub 下载模型和数据集。

export USE_OPENMIND_HUB=1 # `set USE_OPENMIND_HUB=1` for Windows
通过将 Modelers Hub 的模型 ID 指定为 model_name_or_path .您可以在 Modelers Hub 上找到模型 ID 的完整列表,例如 TeleAI/TeleChat-7B-pt .

 使用W&B记录器
要使用权重和偏差来记录实验结果,您需要将以下参数添加到yaml文件中。

report_to: wandb
run_name: test_run # optional
在启动训练任务时设置为 WANDB_API_KEY 您的密钥,以使用您的 W&B 帐户登录。

 使用 SwanLab Logger
要使用 SwanLab 记录实验结果,您需要将以下参数添加到 yaml 文件中。

use_swanlab: true
swanlab_run_name: test_run # optional
在启动训练任务时,您可以通过三种方式登录 SwanLab:

添加到 swanlab_api_key=<your_api_key> yaml 文件,并将其设置为您的 API 密钥。
将环境变量 SWANLAB_API_KEY 设置为您的 API 密钥。
使用命令 swanlab login 完成登录。

六、软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:GitHub - hiyouga/LLaMA-Factory: Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐