
LLaMA-Factory开源程序使用零代码 CLI 和 Web UI 轻松微调 100+ 大型语言模型,如deep seek等模型
LLaMA-Factory开源程序使用零代码 CLI 和 Web UI 轻松微调 100+ 大型语言模型。
一、软件介绍
文末提供程序和源码下载
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)
更多推荐
所有评论(0)