Loading...

文章背景图

LLaMA-Factory:一站式大模型微调 WebUI 安装与使用指南

2026-10-27
0
- 字
- 分钟
|

LLaMA-Factory:一站式大模型微调 WebUI 安装与使用指南

一、官方信息

项目名称LLaMA-Factory
仓库地址https://github.com/hiyouga/LLaMA-Factory
官方文档https://llamafactory.readthedocs.io
最新更新持续高频迭代(2026-10-27)
Star 数40k+
项目定位清华王育弘开发的低代码大模型微调框架,支持全参数、LoRA、QLoRA、DPO/PPO/RLHF,自带 Gradio WebUI

二、项目背景

LLaMA-Factory 由清华大学王育弘(hiyouga)发起,是目前国内最火的大模型微调开源项目。它把 LoRA、QLoRA、全参数微调、Prefix Tuning、DPO、PPO、KTO 等训练方法统一成一套配置,用户只需在 WebUI 上点选模型、数据集、学习率,一键开始训练,无需写一行 PyTorch 代码。

它支持 LLaMA、Qwen、ChatGLM、Baichuan、DeepSeek、Yi、Gemma、Phi 等几乎所有主流开源模型,内置 Alpaca、ShareGPT、Identity 等常见数据集格式,并且支持断点续训、多机多卡、DeepSpeed ZeRO、FlashAttention-2、Unsloth 加速。无论是学生毕设还是企业微调业务模型,LLaMA-Factory 都是入门首选。

三、核心特性

  • WebUI 可视化:浏览器点点点即可完成数据处理→训练→合并→量化全流程。
  • 全方法支持:LoRA / QLoRA / 全参数 / Freeze / P-Tuning / Prefix。
  • 对齐算法:DPO / PPO / KTO / ORPO,开箱即用 RLHF。
  • Unsloth 加速:开启后训练速度 2 倍、显存省 50%。
  • 数据集丰富:内置 100+ 中英文数据集,一键加载;支持自定义 Alpaca/ShareGPT 格式。
  • 多卡 DeepSpeed:ZeRO-2/3 配置一键切换。
  • 导出 GGUF:训练完直接导出 GGUF 量化模型给 llama.cpp/Ollama 用。

四、环境要求

  • Python:3.9 ~ 3.11
  • GPU:NVIDIA 显卡 ≥ 8GB(QLoRA 7B);全参数 7B 需 ≥ 4×24GB
  • CUDA:11.8 / 12.1
  • 磁盘:模型 + 训练中间产物 ≥ 100GB

五、详细部署步骤

方式一:pip 安装(推荐)

conda create -n llafactory python=3.10 -y
conda activate llafactory

# 安装 PyTorch(CUDA 12.1)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# 安装 LLaMA-Factory
pip install llamafactory

# 验证
llamafactory-cli version

方式二:源码安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

# 验证
llamafactory-cli version

方式三:Docker

docker pull hiyouga/llama-factory:latest

docker run -d \
  --name llama-factory \
  --gpus all \
  -p 7860:7860 \
  -v ~/models:/models \
  -v ~/llafactory/output:/app/output \
  hiyouga/llama-factory:latest

启动 WebUI

llamafactory-cli webui

# 浏览器访问 http://服务器IP:7860
# 界面分四个标签:Chat / Train / Evaluate / Export

命令行 LoRA 微调(以 Qwen2.5-7B 为例)

# 1. 创建配置文件 qwen_lora_sft.yaml
cat > qwen_lora_sft.yaml << 'EOF'
### 模型
model_name_or_path: /models/Qwen2.5-7B-Instruct

### 方法
stage: sft
do_train: true
finetuning_type: lora
lora_target: all

### 数据集
dataset: identity,alpaca_zh_demo
template: qwen
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### 输出
output_dir: ./saves/qwen25-7b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### 训练参数
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000

### Unsloth 加速(可选)
use_unsloth: true
EOF

# 2. 开始训练
llamafactory-cli train qwen_lora_sft.yaml

# 3. 训练完成后 LoRA 权重在 ./saves/qwen25-7b/lora/sft

合并 LoRA 权重为完整模型

# 创建 merge 配置
cat > merge.yaml << 'EOF'
model_name_or_path: /models/Qwen2.5-7B-Instruct
adapter_name_or_path: ./saves/qwen25-7b/lora/sft
template: qwen
finetuning_type: lora
export_dir: ./saves/qwen25-7b/full
export_size: 2
export_legacy_format: false
export_device: cpu
EOF

llamafactory-cli export merge.yaml

# 导出后得到完整 HF 格式模型,可直接用 vLLM / Ollama / llama.cpp 部署

用 Unsloth 2 倍速训练

# 安装 unsloth
pip install unsloth

# 在 yaml 中加一行
use_unsloth: true
# 即可享受 2x 训练速度 + 50% 显存节省

六、常见问题(FAQ)

Q1:显存不够跑 7B LoRA?
A:开启 QLoRA(在 yaml 加 quantization_bit: 4)+ Unsloth,8GB 显存即可。

Q2:自定义数据集怎么写?
A:Alpaca 格式 JSON:{"instruction":"...","input":"...","output":"..."},放到 data/ 目录,在 dataset_info.json 注册后即可在 WebUI 选择。

Q3:训练 loss 不下降?
A:检查模板 template 是否与模型匹配(Qwen 用 qwen、Llama3 用 llama3),学习率是否过大(LoRA 通常 1e-4)。

Q4:如何多卡训练?
A:llamafactory-cli train my_config.yaml 默认单卡;多卡用 FORCE_TORCHRUN=1 llamafactory-cli train my_config.yaml,自动用 torchrun。

Q5:训练完如何转 GGUF?
A:Export 页面选 GGBF 量化格式,或用 llama.cpp 的 convert-hf-to-gguf.py + quantize 工具。

七、跳转链接

评论交流

文章目录