大模型 活跃维护

LlamaFactory

hiyouga/LlamaFactory

100 个大型语言模型与视觉语言模型的统一高效微调(ACL 2024)

74958
Stars 标星
9178
Forks 分支
348
Watchers 关注
1155
Open Issues
Python
主要语言
Apache-2.0
开源协议
13.7 MB
仓库大小
8 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:hiyouga/LlamaFactory
git clone https://github.com/hiyouga/LlamaFactory.git
git clone git@github.com:hiyouga/LlamaFactory.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

获得亚马逊英伟达阿里云等的应用。


欢迎关注我们全新的开源项目——
🐧 PenguinHarness:本地优先的多 Agent 应用开发平台——全自动创建、微调、部署 AI 应用!

关注并点 Star 收藏我们的项目:https://github.com/Prism-Shadow/penguin-harness

https://github.com/user-attachments/assets/604eb626-0a5d-4a62-87e3-14ebade1cd5f


使用零代码命令行Web UI 轻松微调百余种大模型

👋 加入我们的微信群NPU 用户群

[ English | 中文 ]

微调大模型可以像这样轻松…

https://github.com/user-attachments/assets/43b700c6-a178-41db-b1f8-8190a5d3fcfc

开始本地训练:

开始云端训练:

阅读技术文档:

注意

除上述链接以外的其他网站均为未经许可的第三方网站,请小心甄别。

项目特色

  • 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen3、Qwen3-VL、DeepSeek、Gemma、GLM、Phi 等等。
  • 集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。
  • 多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
  • 先进算法GaLoreBAdamAPOLLOAdam-miniMuonOFT、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
  • 实用技巧FlashAttention-2UnslothLiger KernelKTransformers、RoPE scaling、NEFTune 和 rsLoRA。
  • 广泛任务:多轮对话、工具调用、图像理解、视觉定位、视频识别和语音理解等等。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。
  • 极速推理:基于 vLLMSGLang 的 OpenAI 风格 API、浏览器界面和命令行接口。

最新模型的 Day-N 微调适配

适配时间 模型名称
第0天 Qwen3 / Qwen2.5-VL / Gemma 3 / GLM-4.1V / InternLM 3 / MiniCPM-o-2.6
第1天 Llama 3 / GLM-4 / Mistral Small / PaliGemma2 / Llama 4

官方博客

提示

我们现在拥有了 LlamaFactory 的专属博客!

网站地址:https://blog.llamafactory.net/

全部博客

更新日志

[25/10/26] 我们支持了Megatron-core作为训练后端和适配了mcore_adapter。查看PR #9237以使用。

[25/08/22] 我们支持了 OFTOFTv2 模型的微调。查看 examples 以使用。

[25/08/20] 我们支持了 Intern-S1-mini 模型的微调。查看 PR #8976 以使用。

[25/08/06] 我们支持了 GPT-OSS 模型的微调。查看 PR #8826 以使用。

展开日志

[25/07/02] 我们支持了 GLM-4.1V-9B-Thinking 模型的微调。

[25/04/28] 我们支持了 Qwen3 系列模型的微调。

[25/04/21] 我们支持了 Muon 优化器。详细用法请参照 examples。感谢 @tianshijing 的 PR。

[25/04/16] 我们支持了 InternVL3 模型的微调。查看 PR #7258 以使用。

[25/04/14] 我们支持了 GLM-Z1Kimi-VL 模型的微调。

[25/04/06] 我们支持了 Llama 4 模型的微调。查看 PR #7611 以使用。

[25/03/31] 我们支持了 Qwen2.5 Omni 模型的微调。查看 PR #7537 以使用。

[25/03/15] 我们支持了 SGLang 推理后端,请使用 infer_backend: sglang 启用。

[25/03/12] 我们支持了 Gemma 3 模型的微调。

[25/02/24] 我们宣布开源 EasyR1,一个高效可扩展的多模态强化学习框架,支持高效的 GRPO 训练。

[25/02/11] 我们支持了在导出模型时保存 Ollama 配置文件。详细用法请参照 examples

[25/02/05] 我们支持了在语音理解任务上微调 Qwen2-AudioMiniCPM-o-2.6 模型。

[25/01/31] 我们支持了 DeepSeek-R1Qwen2.5-VL 模型的微调。

[25/01/15] 我们支持了 APOLLO 优化器。详细用法请参照 examples

[25/01/14] 我们支持了 MiniCPM-o-2.6MiniCPM-V-2.6 模型的微调。 感谢 @BUAADreamer 的 PR.

[25/01/14] 我们支持了 InternLM 3 模型的微调。感谢 @hhaAndroid 的 PR。

[25/01/10] 我们支持了 Phi-4 模型的微调。

[24/12/21] 我们支持了使用 SwanLab 跟踪与可视化实验。详细用法请参考 此部分

[24/11/27] 我们支持了 Skywork-o1 模型的微调和 OpenO1 数据集。

[24/10/09] 我们支持了从 魔乐社区 下载预训练模型和数据集。详细用法请参照 此教程

[24/09/19] 我们支持了 Qwen2.5 模型的微调。

[24/08/30] 我们支持了 Qwen2-VL 模型的微调。感谢 @simonJJJ 的 PR。

[24/08/27] 我们支持了 Liger Kernel。请使用 enable_liger_kernel: true 来加速训练。

[24/08/09] 我们支持了 Adam-mini 优化器。详细用法请参照 examples。感谢 @relic-yuexi 的 PR。

[24/07/04] 我们支持了无污染打包训练。请使用 neat_packing: true 参数。感谢 @chuan298 的 PR。

[24/06/16] 我们支持了 PiSSA 算法。详细用法请参照 examples

[24/06/07] 我们支持了 Qwen2GLM-4 模型的微调。

[24/05/26] 我们支持了 SimPO 偏好对齐算法。详细用法请参照 examples

[24/05/20] 我们支持了 PaliGemma 系列模型的微调。注意 PaliGemma 是预训练模型,你需要使用 paligemma 模板进行微调使其获得对话能力。

[24/05/18] 我们支持了 KTO 偏好对齐算法。详细用法请参照 examples

[24/05/14] 我们支持了昇腾 NPU 设备的训练和推理。详情请查阅安装部分。

[24/04/26] 我们支持了多模态模型 LLaVA-1.5 的微调。详细用法请参照 examples

[24/04/22] 我们提供了在免费 T4 GPU 上微调 Llama-3 模型的 Colab 笔记本。Hugging Face 社区公开了两个利用 LlamaFactory 微调的 Llama-3 模型,详情请见 Llama3-8B-Chinese-ChatLlama3-Chinese

[24/04/21] 我们基于 AstraMindAI 的仓库支持了 混合深度训练。详细用法请参照 examples

[24/04/16] 我们支持了 BAdam 优化器。详细用法请参照 examples

[24/04/16] 我们支持了 unsloth 的长序列训练(24GB 可训练 Llama-2-7B-56k)。该方法相比 FlashAttention-2 提供了 117% 的训练速度和 50% 的显存节约。更多数据请见此页面

[24/03/31] 我们支持了 ORPO。详细用法请参照 examples

[24/03/21] 我们的论文 "LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models" 可在 arXiv 上查看!

[24/03/20] 我们支持了能在 2x24GB GPU 上微调 70B 模型的 FSDP+QLoRA。详细用法请参照 examples

[24/03/13] 我们支持了 LoRA+。详细用法请参照 examples

[24/03/07] 我们支持了 GaLore 优化器。详细用法请参照 examples

[24/03/07] 我们集成了 vLLM 以实现极速并发推理。请使用 infer_backend: vllm 来获得 270% 的推理速度。

[24/02/28] 我们支持了 DoRA 微调。请使用 use_dora: true 参数进行 DoRA 微调。

[24/02/15] 我们支持了 LLaMA Pro 提出的块扩展方法。详细用法请参照 examples

[24/02/05] Qwen1.5(Qwen2 测试版)系列模型已在 LlamaFactory 中实现微调支持。详情请查阅该博客页面

[24/01/18] 我们针对绝大多数模型实现了 Agent 微调,微调时指定 dataset: glaive_toolcall_zh 即可使模型获得工具调用能力。

[23/12/23] 我们针对 LLaMA, Mistral 和 Yi 模型支持了 unsloth 的 LoRA 训练加速。请使用 use_unsloth: true 参数启用 unsloth 优化。该方法可提供 170% 的训练速度,详情请查阅此页面

[23/12/12] 我们支持了微调最新的混合专家模型 Mixtral 8x7B。硬件需求请查阅此处

[23/12/01] 我们支持了从 魔搭社区 下载预训练模型和数据集。详细用法请参照 此教程

[23/10/21] 我们支持了 NEFTune 训练技巧。请使用 neftune_noise_alpha: 5 参数启用 NEFTune。

[23/09/27] 我们针对 LLaMA 模型支持了 LongLoRA 提出的 $S^2$-Attn。请使用 shift_attn: true 参数以启用该功能。

[23/09/23] 我们在项目中集成了 MMLU、C-Eval 和 CMMLU 评估集。详细用法请参照 examples

[23/09/10] 我们支持了 FlashAttention-2。如果您使用的是 RTX4090、A100 或 H100 GPU,请使用 flash_attn: fa2 参数以启用 FlashAttention-2。

[23/08/12] 我们支持了 RoPE 插值来扩展 LLaMA 模型的上下文长度。请使用 rope_scaling: linear 参数训练模型或使用 rope_scaling: dynamic 参数评估模型。

[23/08/11] 我们支持了指令模型的 DPO 训练。详细用法请参照 examples

[23/07/31] 我们支持了数据流式加载。请使用 streaming: truemax_steps: 10000 参数来流式加载数据集。

[23/07/29] 我们在 Hugging Face 发布了两个 13B 指令微调模型。详细内容请查阅我们的 Hugging Face 项目(LLaMA-2 / Baichuan)。

[23/07/18] 我们开发了支持训练和测试的浏览器一体化界面。请使用 train_web.py 在您的浏览器中微调模型。感谢 @KanadeSiina@codemayq 在该功能开发中付出的努力。

[23/07/09] 我们开源了 FastEdit ⚡🩹,一个简单易用的、能迅速编辑大模型事实记忆的工具包。如果您感兴趣请关注我们的 FastEdit 项目。

[23/06/29] 我们提供了一个可复现的指令模型微调示例,详细内容请查阅 Baichuan-7B-sft

[23/06/22] 我们对齐了示例 APIOpenAI API 的格式,您可以将微调模型接入任意基于 ChatGPT 的应用中。

[23/06/03] 我们实现了 4 比特的 LoRA 训练(也称 QLoRA)。详细用法请参照 examples

提示

如果您无法使用最新的功能,请尝试重新拉取代码并再次安装 LlamaFactory。

模型

模型名 参数量 Template
BLOOM/BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B -
DeepSeek (LLM/Code/MoE) 7B/16B/67B/236B deepseek
DeepSeek 3-3.2 236B/671B deepseek3
DeepSeek R1 (Distill) 1.5B/7B/8B/14B/32B/70B/671B deepseekr1
ERNIE-4.5 0.3B/21B/300B ernie_nothink
Falcon/Falcon H1 0.5B/1.5B/3B/7B/11B/34B/40B/180B falcon/falcon_h1
Gemma/Gemma 2/CodeGemma 2B/7B/9B/27B gemma/gemma2
Gemma 3/Gemma 3n 270M/1B/4B/6B/8B/12B/27B gemma3/gemma3n
GLM-4/GLM-4-0414/GLM-Z1 9B/32B glm4/glmz1
GLM-4.5/GLM-4.5(6)V 9B/106B/355B glm4_moe/glm4_5v
GPT-2 0.1B/0.4B/0.8B/1.5B -
GPT-OSS 20B/120B gpt_oss
Granite 3-4 1B/2B/3B/7B/8B granite3/granite4
混元/混元1.5 (MT) 0.5B/1.8B/4B/7B/13B hunyuan/hunyuan_small
InternLM 2-3 7B/8B/20B intern2
InternVL 2.5-3.5 1B/2B/4B/8B/14B/30B/38B/78B/241B intern_vl
Intern-S1-mini 8B intern_s1
Kimi-VL 16B kimi_vl
Ling 2.0 (mini/flash) 16B/100B bailing_v2
LFM 2.5 (VL) 1.2B/1.6B lfm2/lfm2_vl
Llama 7B/13B/33B/65B -
Llama 2 7B/13B/70B llama2
Llama 3-3.3 1B/3B/8B/70B llama3
Llama 4 109B/402B llama4
Llama 3.2 Vision 11B/90B mllama
LLaVA-1.5 7B/13B llava
LLaVA-NeXT 7B/8B/13B/34B/72B/110B llava_next
LLaVA-NeXT-视频 7B/34B llava_next_video
MiMo 7B/309B mimo/mimo_v2
MiniCPM 4/5 0.5B/1B/8B cpm4/minicpm5
MiniCPM-o/MiniCPM-V 4.5 8B/9B minicpm_o/minicpm_v
MiniCPM-V 4.6 3B/8B minicpm_v_4_6
MiniMax-M1/MiniMax-M2 229B/456B minimax1/minimax2
Ministral 3 3B/8B/14B ministral3
Mistral/Mixtral 7B/8x7B/8x22B mistral
PaliGemma/PaliGemma2 3B/10B/28B paligemma
Phi-3/Phi-3.5 4B/14B phi
Phi-3-small 7B phi_small
Phi-4-mini/Phi-4 3.8B/14B phi4_mini/phi4
Pixtral 12B pixtral
Qwen2 (Code/Math/MoE/QwQ) 0.5B/1.5B/3B/7B/14B/32B/72B/110B qwen
Qwen3 (MoE/指令/思考/下一步) 0.6B/1.7B/4B/8B/14B/32B/80B/235B qwen3/qwen3_nothink
Qwen3.5 0.8B/2B/4B/9B/27B/35B/122B/397B qwen3_5/qwen3_5_nothink
Qwen3.6 27B/35B qwen3_6
Qwen2-Audio 7B qwen2_audio
Qwen2.5-Omni 3B/7B qwen2_omni
Qwen3-Omni 30B qwen3_omni
Qwen2-VL/Qwen2.5-VL/QVQ 2B/3B/7B/32B/72B qwen2_vl
Qwen3-VL 2B/4B/8B/30B/32B/235B qwen3_vl
Seed (开源/程序员) 8B/36B seed_oss/seed_coder
StarCoder 2 3B/7B/15B -
TeleChat 2-2.5 3B/7B/35B/115B telechat2
Yuan 2 2B/51B/102B yuan
注意

对于所有“基座”(Base)模型,template 参数可以是 default, alpaca, vicuna 等任意值。但“对话”(Instruct/Chat)模型请务必使用对应的模板

如果模型有推理 / 非推理两个版本,请使用 _nothink 后缀来区分不同的模板。例如 qwen3qwen3_nothink

请务必在训练和推理时采用完全一致的模板。

*:您需要从 main 分支安装 transformers 并使用 DISABLE_VERSION_CHECK=1 来跳过版本检查。

**:您需要安装特定版本的 transformers 以使用该模型。

项目所支持模型的完整列表请参阅 constants.py

您也可以在 template.py 中添加自己的对话模板。

训练方法

方法 全参数训练 部分参数训练 LoRA QLoRA
预训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
指令监督微调 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
奖励模型训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
PPO 训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
DPO 训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
KTO 训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
ORPO 训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
SimPO 训练 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
提示

有关 PPO 的实现细节,请参考此博客

数据集

预训练数据集
指令微调数据集
偏好数据集

部分数据集的使用需要确认,我们推荐使用下述命令登录您的 Hugging Face 账户。

pip install --upgrade huggingface_hub
huggingface-cli login

软硬件依赖

必需项 至少 推荐
python 3.11 >=3.11
torch 2.0.0 2.6.0
torchvision 0.15.0 0.21.0
transformers 4.49.0 4.50.0
datasets 2.16.0 3.2.0
accelerate 0.34.0 1.2.1
peft 0.14.0 0.15.1
trl 0.8.6 0.9.6
可选项 至少 推荐
CUDA 11.6 12.2
deepspeed 0.10.0 0.16.4
bitsandbytes 0.39.0 0.43.1
vllm 0.4.3 0.8.2
flash-attn 2.5.6 2.7.2

硬件依赖

* 估算值

方法 精度 7B 14B 30B 70B xB
Full (bf16 or fp16) 32 120GB 240GB 600GB 1200GB 18xGB
Full (pure_bf16) 16 60GB 120GB 300GB 600GB 8xGB
Freeze/LoRA/GaLore/APOLLO/BAdam 16 16GB 32GB 64GB 160GB 2xGB
QLoRA 8 10GB 20GB 40GB 80GB xGB
QLoRA 4 6GB 12GB 24GB 48GB x/2GB
QLoRA 2 4GB 8GB 16GB 24GB x/4GB

如何使用

安装 LlamaFactory

重要

此步骤为必需。

从源码安装

git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git
cd LlamaFactory
pip install -e .
pip install -r requirements/metrics.txt

可选的额外依赖项:metricsdeepspeed。使用 pip install -e . && pip install -r requirements/metrics.txt -r requirements/deepspeed.txt 安装。

其他可选依赖项请参考 examples/requirements/ 目录下的文件。

从镜像安装

docker run -it --rm --gpus=all --ipc=host hiyouga/llamafactory:latest

该镜像基于 Ubuntu 22.04(x86_64)、CUDA 12.4、Python 3.11、PyTorch 2.6.0 和 Flash-attn 2.7.4 构建。

查看全部镜像:https://hub.docker.com/r/hiyouga/llamafactory/tags

请参阅构建 Docker 来重新构建镜像。

使用 uv 构建虚拟环境

使用 uv 创建隔离的 Python 环境:

uv run llamafactory-cli webui
Windows 用户指南

安装 PyTorch

Windows 平台需要额外手动安装 GPU 版本的 PyTorch 依赖包,您可以参考官方网站和以下命令安装并测试 PyTorch 是否正确安装。

pip uninstall torch torchvision torchaudio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
python -c "import torch; print(torch.cuda.is_available())"

如果看到 True 则说明安装成功。

若遇到类似 Can't pickle local object 的报错,请设置 dataloader_num_workers: 0

安装 BitsAndBytes

如果要在 Windows 平台上开启量化 LoRA(QLoRA),需要安装 bitsandbytes。

对于大多数用户,建议优先使用官方发布的最新版本:

pip install bitsandbytes

如果使用 uv 管理虚拟环境,建议在安装好 GPU 版本 PyTorch 之后,再执行:

uv pip install bitsandbytes --no-deps
重要

安装 bitsandbytes 时,请注意 CUDA Toolkit 版本。bitsandbytes 的官方发布包是按不同 CUDA 版本分别构建的,Windows x86-64 目前提供了面向 CUDA 11.8–12.6 和 CUDA 12.8–12.9 的不同构建;其中支持 RTX 50 系列(如 RTX 5060 Ti,sm_120)的构建对应 CUDA 12.8–12.9。

若当前环境的 CUDA 版本较旧,或者需要兼容较老的 Windows / PyTorch 组合,可以使用第三方预编译版本:

pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl

安装 Flash Attention-2

如果要在 Windows 平台上开启 FlashAttention-2,请使用 flash-attention-windows-wheel 中的脚本自行编译与安装。

昇腾 NPU 用户指南

在昇腾 NPU 设备上安装 LlamaFactory 时,请使用 Python 3.12,并使用 pip install -r requirements/npu.txt 命令安装额外依赖项。此外,还需要安装 Ascend CANN Toolkit 与 Kernels,安装方法请参考安装教程

您可以直接下载预安装的最新docker镜像:

# Docker Hub
docker pull hiyouga/llamafactory:latest-910b-ubuntu
docker pull hiyouga/llamafactory:latest-a3-ubuntu
docker pull hiyouga/llamafactory:latest-910b-openeuler
docker pull hiyouga/llamafactory:latest-a3-openeuler

# quay.io
docker pull quay.io/ascend/llamafactory:latest-910b-ubuntu
docker pull quay.io/ascend/llamafactory:latest-a3-ubuntu
docker pull quay.io/ascend/llamafactory:latest-910b-openeuler
docker pull quay.io/ascend/llamafactory:latest-a3-openeuler

安装 BitsAndBytes

如果要在 Ascend NPU 上进行基于 bitsandbytes 的 QLoRA 量化微调,请执行如下步骤:

  1. 手动编译 bitsandbytes:请参考安装文档完成 NPU 版的 bitsandbytes 安装,编译要求环境 cmake 版本不低于 3.22.1,g++ 版本不低于 12.x。
# 从源码安装 bitsandbytes

# 克隆 bitsandbytes 仓库, Ascend NPU 目前在 multi-backend-refactor 中支持
git clone -b multi-backend-refactor https://github.com/bitsandbytes-foundation/bitsandbytes.git
cd bitsandbytes/

# 安装依赖
pip 安装 -r requirements-dev.txt

# 安装编译工具依赖,该步骤在不同系统上命令有所不同,供参考
apt-get install -y build-essential cmake

# 编译 & 安装
cmake -DCOMPUTE_BACKEND=npu -S .
运行 pip install .
  1. 安装 transformers 的 main 分支版本。
git clone -b main https://github.com/huggingface/transformers.git
cd transformers
pip install .
  1. 在训练参数中设置 double_quantization: false,可参考示例

数据准备

关于数据集文件的格式,请参考 data/README_zh.md 的内容。你可以使用 HuggingFace / ModelScope / Modelers 上的数据集或加载本地数据集。

[!注意]
使用自定义数据集时,请更新 data/dataset_info.json 文件。

您也可以使用 Easy DatasetDataFlowGraphGen 构建用于微调的合成数据。

快速开始

下面三行命令分别对 Qwen3-4B-Instruct 模型进行 LoRA 微调推理合并

llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml
llamafactory-cli chat examples/inference/qwen3_lora_sft.yaml
llamafactory-cli export examples/merge_lora/qwen3_lora_sft.yaml

高级用法请参考 examples/README_zh.md(包括多 GPU 微调)。

[!提示]
使用 llamafactory-cli help 显示帮助信息。

遇到报错请先看常见问题

LLaMA Board 可视化微调(由 Gradio 驱动)

llamafactory-cli webui

Build Docker

CUDA 用户:

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

昇腾 NPU 用户:

cd docker/docker-npu/

# A2 + Ubuntu
docker compose --profile a2-ubuntu up -d
docker compose --profile a2-ubuntu exec llamafactory-a2-ubuntu bash

# A3 + Ubuntu
docker compose --profile a3-ubuntu up -d
docker compose --profile a3-ubuntu exec llamafactory-a3-ubuntu bash

# A2 + openEuler
docker compose --profile a2-openeuler up -d
docker compose --profile a2-openeuler exec llamafactory-a2-openeuler bash

# A3 + openEuler
docker compose --profile a3-openeuler up -d
docker compose --profile a3-openeuler exec llamafactory-a3-openeuler bash

AMD ROCm 用户:

cd docker/docker-rocm/
docker compose up -d
docker compose exec llamafactory bash
不使用 Docker Compose 构建

CUDA 用户:

docker build -f ./docker/docker-cuda/Dockerfile \
    --build-arg PIP_INDEX=https://pypi.org/simple \
    --build-arg EXTRAS=metrics \
    -t llamafactory:latest .

docker run -dit --ipc=host --gpus=all \
    -p 7860:7860 \
    -p 8000:8000 \
    --name llamafactory \
    llamafactory:latest

docker exec -it llamafactory bash

昇腾 NPU 用户:

docker build -f ./docker/docker-npu/Dockerfile \
    --build-arg PIP_INDEX=https://pypi.org/simple \
    -t llamafactory:latest .

docker run -dit --ipc=host \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -p 7860:7860 \
    -p 8000:8000 \
    --device /dev/davinci0 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    --name llamafactory \
    llamafactory:latest

docker exec -it llamafactory bash

AMD ROCm 用户:

docker build -f ./docker/docker-rocm/Dockerfile \
    --build-arg PIP_INDEX=https://pypi.org/simple \
    --build-arg EXTRAS=metrics \
    -t llamafactory:latest .

docker run -dit --ipc=host \
    -p 7860:7860 \
    -p 8000:8000 \
    --device /dev/kfd \
    --device /dev/dri \
    --name llamafactory \
    llamafactory:latest

docker exec -it llamafactory bash
使用数据卷

您可以通过移除 Dockerfile 中 VOLUME [ "/root/.cache/huggingface", "/app/shared_data", "/app/output" ] 的注释来使用数据卷。

在构建 Docker 时使用参数 -v ./hf_cache:/root/.cache/huggingface 来挂载数据卷。各个数据卷的含义表示如下。

  • hf_cache:使用宿主机的 Hugging Face 缓存文件夹。
  • shared_data:宿主机中存放数据集的文件夹路径。
  • output:将导出目录设置为该路径后,即可在宿主机中访问导出后的模型。

利用 vLLM 部署 OpenAI API

API_PORT=8000 llamafactory-cli api examples/inference/qwen3.yaml infer_backend=vllm vllm_enforce_eager=true

[!提示]
API 文档请查阅这里

示例:图像理解 | 工具调用

从魔搭社区下载

如果您在 Hugging Face 模型和数据集的下载中遇到了问题,可以通过下述方法使用魔搭社区。

export USE_MODELSCOPE_HUB=1 # Windows 使用 `set USE_MODELSCOPE_HUB=1`

model_name_or_path 设置为模型 ID 来加载对应的模型。在魔搭社区查看所有可用的模型,例如 LLM-Research/Meta-Llama-3-8B-Instruct

从魔乐社区下载

您也可以通过下述方法,使用魔乐社区下载数据集和模型。

export USE_OPENMIND_HUB=1 # Windows 使用 `set USE_OPENMIND_HUB=1`

model_name_or_path 设置为模型 ID 来加载对应的模型。在魔乐社区查看所有可用的模型,例如 TeleAI/TeleChat-7B-pt

使用 W&B 面板

若要使用 Weights & Biases 记录实验数据,请在 yaml 文件中添加下面的参数。

report_to: wandb
run_name: test_run # 可选

在启动训练任务时,将 WANDB_API_KEY 设置为密钥来登录 W&B 账户。

使用 SwanLab 面板

若要使用 SwanLab 记录实验数据,请在 yaml 文件中添加下面的参数。

use_swanlab: true
swanlab_run_name: test_run # 可选

在启动训练任务时,登录SwanLab账户有以下三种方式:

方式一:在 yaml 文件中添加 swanlab_api_key=<your_api_key> ,并设置为你的 API 密钥。 方式二:将环境变量 SWANLAB_API_KEY 设置为你的 API 密钥。 方式三:启动前使用 swanlab login 命令完成登录。

使用了 LlamaFactory 的项目

如果您有项目希望添加至下述列表,请通过邮件联系或者创建一个 PR。

点击显示
  1. Wang 等. ESRL: 基于高效采样的序列生成强化学习. 2023. [arxiv]
  2. Yu 等人. 文本分类中使用开放式、封闭式还是小型语言模型?2023. [arxiv]
  3. Wang 等. UbiPhysio:通过动作理解和自然语言反馈支持日常功能、健身和康复. 2023. [arxiv]
  4. Luceri 等人。利用大型语言模型检测社交媒体中的影响力活动。2023。[arxiv]
  5. 张等人. 通过诱导幻觉缓解大型语言模型的幻觉. 2023. [arxiv]
  6. Wang 等人. 更好地了解你的需求:面向使用类比推理增强大型语言模型的营销需求结构化理解. KDD 2024. [arxiv]
  7. 王等. CANDLE: 从大型语言模型中进行迭代概念化和实例化蒸馏以进行常识推理. ACL 2024. [arxiv]
  8. Choi 等. FACT-GPT: 通过与大型语言模型匹配声明的事实核查增强. 2024. [arxiv]
  9. 张等人. AutoMathText: 使用语言模型进行数学文本的自主数据选择. 2024. [arxiv]
  10. Lyu 等人. KnowTuning:面向大语言模型的知识感知微调. 2024. [arxiv]
  11. Yang 等人. LaCo:通过层坍塌进行大型语言模型剪枝. 2024. [arxiv]
  12. Bhardwaj 等人. 语言模型就是荷马·辛普森!通过任务算术对微调语言模型进行安全重新对齐. 2024. [arxiv]
  13. Yang 等人。通过用小规模共情模型增强大语言模型以提升共情回应生成。2024。[arxiv]
  14. Yi 等人。《生成遇上验证:通过智能并行自动校正解码加速大型语言模型推理》。ACL 2024 研究成果。[arxiv]
  15. Cao 等. 面向大型语言模型的按头可共享注意力机制. 2024. [arxiv]
  16. Zhang 等人。通过从资源丰富的语言进行自我蒸馏增强大语言模型的多语言能力。2024。[arxiv]
  17. Kim 等人. 面向多语言大型语言模型的高效词汇扩展. 2024. [arxiv]
  18. Yu 等. KIEval: 一个面向大语言模型的知识驱动交互评估框架. ACL 2024. [arxiv]
  19. Huang 等. 基于关键点驱动的数据合成及其对数学推理的增强. 2024. [arxiv]
  20. Duan 等. 否定否定:通过分布性不偏好优化实现无需人工正样本的对齐. 2024. [arxiv]
  21. Xie 和 Schwertfeger。利用大型语言模型赋能机器人:使用 LLMs 的 osmAG 地图理解。2024。[arxiv]
  22. Wu 等人。大型语言模型是并行多语言学习者。2024。[arxiv]
  23. 张等人 EDT:通过基于熵的动态温度采样改进大型语言模型的生成。2024。[arxiv]
  24. Weller 等人. FollowIR: 评估和教授信息检索模型以遵循指令. 2024. [arxiv]
  25. 那洪斌. CBT-LLM:一种基于认知行为疗法的中文大型语言模型,用于心理健康问答. COLING 2024. [arxiv]
  26. Zan 等人. CodeS: 通过多层草图实现自然语言到代码仓库的转换. 2024. [arxiv]
  27. Liu 等. 广泛自我对比实现无需反馈的语言模型对齐. 2024. [arxiv]
  28. 罗等人. BAdam:一种用于大型语言模型的内存高效全参数训练方法. 2024. [arxiv]
  29. Du 等. Chinese Tiny LLM: 预训练面向中文的大型语言模型. 2024. [arxiv]
  30. Ma 等. 通过 Givens 旋转的参数高效准正交微调. ICML 2024. [arxiv]
  31. Liu 等人。使用大型语言模型动态生成个性。2024。[arxiv]
  32. Shang 等. 使用大语言模型在精简二进制代码理解方面我们已经走了多远. 2024. [arxiv]
  33. Huang 等. LLMTune: 使用大型语言模型加速数据库参数调优. 2024. [arxiv]
  34. Deng 等人. Text-Tuple-Table:通过全局元组提取实现文本到表格生成中的信息整合. 2024. [arxiv]
  35. Acikgoz 等。Hippocrates:用于推动医疗保健中大型语言模型的开源框架。2024。[arxiv]
  36. 张等人. 小型语言模型需要强大的验证器来自我纠正推理. ACL 2024 研究结果. [arxiv]
  37. Zhou 等. FREB-TQA:用于表格问答的细粒度鲁棒性评估基准。NAACL 2024. [arxiv]
  38. Xu 等. 网络安全的大型语言模型:系统文献综述. 2024. [arxiv]
  39. Dammu 等人。 " 他们没有文化 " :揭示大型语言模型生成对话中的隐性伤害和社会威胁。2024。 [arxiv]
  40. Yi 等人。通过子空间导向模型融合实现大语言模型的安全重对齐框架。2024。[arxiv]
  41. Lou 等人. SPO: 带有隐式奖励建模的多维偏好序列对齐。2024. [arxiv]
  42. 张等. 从更少中获取更多:大型语言模型是优秀的自发多语言学习者. 2024. [arxiv]
  43. 张等人 TS-Align:一种用于大语言模型可扩展迭代微调的师生协作框架。2024。[arxiv]
  44. 陈子红. 基于 XunziALLM 的句子分割与句子标点. 2024. [论文]
  45. Gao 等. 《兼得两全:走向诚实且有帮助的大型语言模型》. 2024. [arxiv]
  46. 王和宋. MARS: 使用多任务评估数据集对语言模型的形而上推理能力进行基准测试. 2024. [arxiv]
  47. 胡等人. 基于Transformer模型的低秩适应(LoRA)计算限制. 2024. [arxiv]
  48. Ge 等. 通过高效微调进行时效性知识编辑. ACL 2024. [arxiv]
  49. Tan 等. 《同行评审作为具有基于角色交互的多轮长上下文对话》. 2024. [arxiv]
  50. Song 等. Turbo Sparse: 以最少激活参数实现 LLM 的 SOTA 性能. 2024. [arxiv]
  51. Gu 等人. RWKV-CLIP: 一个强健的视觉-语言表示学习器. 2024. [arxiv]
  52. 陈等. 推进工具增强的大型语言模型:整合推理树中错误的见解. 2024. [arxiv]
  53. Zhu 等人。《大型语言模型是优秀的统计学家吗?》。2024。[arxiv]
  54. Li 等人. 认识未知:一种面向不确定性的 LLM 指令调优方法. 2024. [arxiv]
  55. Ding 等人. IntentionQA:用于评估语言模型在电子商务中理解购买意图能力的基准。2024. [arxiv]
  56. He 等人. COMMUNITY-CROSS-INSTRUCT: 无监督指令生成用于将大型语言模型与在线社区对齐. 2024. [arxiv]
  57. Lin 等. FVEL:通过定理证明结合大型语言模型的交互式形式验证环境. 2024. [arxiv]
  58. Treutlein 等人. 连接点:大型语言模型可以从不同的训练数据中推断并表达潜在结构. 2024. [arxiv]
  59. Feng 等人 SS-Bench:社会故事生成与评估基准。2024。[arxiv]
  60. Feng 等. 自构建上下文反编译与细粒度对齐增强. 2024. [arxiv]
  61. 刘等人. 用于从可穿戴生物信号无袖带血压测量的大型语言模型. 2024. [arxiv]
  62. Iyer 等人. 探索使用大型语言模型进行极低资源翻译:爱丁堡大学提交至 AmericasNLP 2024 翻译任务. AmericasNLP 2024. [论文]
  63. Li 等人。通过在思维树上进行偏好优化校准大型语言模型,以生成科学问题评分中的推理。2024。[arxiv]
  64. 杨等人. 金融知识大型语言模型. 2024. [arxiv]
  65. Lin 等. DogeRM:通过模型融合为奖励模型配备领域知识. 2024. [arxiv]
  66. Bako 等人。评估大型语言模型在数据可视化中对自然语言表达的语义分析能力。2024。[arxiv]
  67. Huang 等. RoLoRA:用于有效权重-激活量化的旋转无异常 LLM 微调. 2024. [arxiv]
  68. Jiang 等人. 面向普通受众的自动科学新闻的 LLM 协作. 2024. [arxiv]
  69. Inouye 等人。对 LoRA 超参数应用自动调优。2024。[论文]
  70. 齐等人. 基于大型语言模型的西藏旅游观点信息生成系统研究. 2024. [arxiv]
  71. Xu 等人. 课程修正:使用合成偏好进行安全对齐. 2024. [arxiv]
  72. Sun 等人. LAMBDA:一个基于大模型的数据代理. 2024. [arxiv]
  73. 朱等. CollectiveSFT: 使用医疗领域集体指令扩展中文医学基准的大型语言模型. 2024. [arxiv]
  74. Yu 等。通过负注意力分数对齐纠正大型语言模型中的负面偏差。2024。[arxiv]
  75. 谢等人。《个性化数据集的力量:通过针对性模型微调推动小学中文作文写作发展》。IALP 2024。[论文]
  76. Liu 等人。Instruct-Code-Llama:通过在线评测反馈提升语言模型在竞赛级代码生成中的能力。ICIC 2024。[论文]
  77. 王等人. 《控制哨兵:揭示在监督微调中安全数据选择对模型安全性的影响》. ICIC 2024. [论文]
  78. Xia 等. 理解大语言模型微调的性能并估算其成本. 2024. [arxiv]
  79. Zeng 等人。感知、反思与计划:为无指令的目标导向城市导航设计大型语言模型代理。2024。[arxiv]
  80. Xia 等人。使用预训练语言模型进行准确的 ESG 预测。FinNLP 2024。[论文]
  81. Liang 等人. I-SHEEP:通过迭代自我增强范式从零开始对大语言模型进行自我对齐. 2024. [arxiv]
  82. Bai 等。将大型语言模型与直接多偏好优化对齐以进行推荐。CIKM 2024。[论文]
  83. StarWhisper: 天文大模型 StarWhisper,基于 ChatGLM2-6B 和 Qwen-14B 在天文数据上微调而得。
  84. DISC-LawLLM: 中文法律领域大模型 DISC-LawLLM,基于 Baichuan-13B 微调而得,具有法律推理和知识检索能力。
  85. Sunsimiao: 孙思邈中文医疗大模型 Sumsimiao,基于 Baichuan-7B 和 ChatGLM-6B 在中文医疗数据上微调而得。
  86. CareGPT: 医疗大模型项目 CareGPT,基于 LLaMA2-7B 和 Baichuan-13B 在中文医疗数据上微调而得。
  87. MachineMindset:MBTI性格大模型项目,根据数据集与训练方式让任意 LLM 拥有 16 个不同的性格类型。
  88. Luminia-13B-v3:一个用于生成 Stable Diffusion 提示词的大型语言模型。[demo]
  89. Chinese-LLaVA-Med:中文多模态医学大模型,基于 LLaVA-1.5-7B 在中文多模态医疗数据上微调而得。
  90. AutoRE:基于大语言模型的文档级关系抽取系统。
  91. NVIDIA RTX AI Toolkit:在 Windows 主机上利用英伟达 RTX 设备进行大型语言模型微调的开发包。
  92. LazyLLM:一个低代码构建多 Agent 大模型应用的开发工具,支持基于 LlamaFactory 的模型微调.
  93. RAG-Retrieval:一个全链路 RAG 检索模型微调、推理和蒸馏代码库。[blog]
  94. 360-LLaMA-Factory:一个魔改后的代码库,通过 Ring Attention 支持长序列的 SFT 和 DPO 训练。
  95. Sky-T1:由 NovaSky AI 微调的低成本类 o1 长推理模型。
  96. WeClone:从聊天记录创造数字分身的一站式解决方案。

协议

本仓库的代码依照 Apache-2.0 协议开源。

使用模型权重时,请遵循对应的模型协议:BLOOM/ DeepSeek / Falcon / Gemma / GLM-4 / GPT-2 / Granite / InternLM / Llama / Llama 2 / Llama 3 / Llama 4 / MiniCPM / Mistral/Mixtral/Pixtral / Phi-3/Phi-4 / Qwen / StarCoder 2 / TeleChat2 / Yuan 2

引用

如果您觉得此项目有帮助,请考虑以下列格式引用

@inproceedings{zheng2024llamafactory,
  title={LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models},
  author={Yaowei Zheng and Richong Zhang and Junhao Zhang and Yanhan Ye and Zheyan Luo and Zhangchi Feng and Yongqiang Ma},
  booktitle={Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations)},
  address={Bangkok, Thailand},
  publisher={Association for Computational Linguistics},
  year={2024},
  url={http://arxiv.org/abs/2403.13372}
}

致谢

本项目受益于 PEFTTRLQLoRAFastChat,感谢以上诸位作者的付出。

本站来源与版权声明
  • 本文标题:LlamaFactory - 100 个大型语言模型与视觉语言模型的统一高效微调(
  • 本文链接:https://cn121.com/llm/hiyouga-llamafactory.html
  • 原项目:hiyouga/LlamaFactory 版权归原作者 hiyouga 及贡献者所有
  • 收录信息:本站于 2026-09-22 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 hiyouga/LlamaFactory。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。