LlamaFactory翻译站点

3周前发布 12 0 0

北航开源零代码大模型微调框架,统一100+模型全流程训练。

所在地:
美国
语言:
英文
收录时间:
2026-08-20
LlamaFactoryLlamaFactory

LlamaFactory(原名 LLaMA-Factory)是由北京航空航天大学郑耀威(hiyouga)团队发起的统一高效大模型微调框架,以 ACL 2024 论文为学术背书。框架通过”算法-模型-数据”解耦设计,用同一套流水线覆盖 PT→SFT→RM→PPO→DPO→KTO→ORPO 全生命周期,支持 100+ 主流模型(Llama、Qwen、DeepSeek、ChatGLM、Mistral、Gemma、Phi 等),提供 WebUI(LlamaBoard)+ CLI 双操作模式,集成 FlashAttention-2、Unsloth、DeepSpeed、FSDP 等加速方案,Apache-2.0 许可(以仓库 LICENSE 文件为准)。

 

项目概述

LlamaFactory 由北京航空航天大学郑耀威(hiyouga)团队于 2023 年发起,核心贡献者 hiyouga 占总提交 72%,相关学术论文《LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models》发表于 ACL 2024 System Demonstrations 。

 

核心设计哲学:算法-模型-数据”解耦”

郑耀威将其比喻为”标准化的高速公路”——不同模型像在高速公路上行驶的不同车辆,数据像是装在车上的货物。只要模型推理能在这条高速公路上跑通,微调只需调节参数即可完成 。这种解耦设计让 LlamaFactory 能用同一套入口微调 100+ 模型,彻底解决”不同模型微调流程各异、切换成本高”的痛点。

 

双架构并行

  • v0(默认稳定版)api/webui → chat/eval/train → data/model → hparams → extras,功能完整、文档齐全,是当前主力
  • v1(实验版)trainers → core → accelerator/plugins/config → utils,更模块化的分层设计,处于实验阶段

 

支持的模型系列(60+ 系列,100+ 变体)

  • 海外:Llama 3(1B-402B)、Mistral/Mixtral(7B-8x22B MoE)、Gemma 3(270M-27B)、Phi-3/4(3.8B-14B)、Falcon
  • 国产:Qwen 2-3.6(0.5B-397B)、DeepSeek R1(1.5B-671B 蒸馏版)、ChatGLM/GLM-4/4.5(9B-355B)、Baichuan、Yi、InternLM
  • 多模态:LLaVA、CogVLM、Qwen-VL 2-3(2B-235B)、InternVL 2.5-3.5(1B-241B)、MiniCPM(0.5B-9B)、PaliGemma

 

支持的训练范式 × 微调方法(8 × 6 = 48 种组合)

训练范式 Full Freeze LoRA QLoRA OFTQ OFT
预训练(PT)
监督微调(SFT)
奖励建模(RM)
PPO 训练
DPO 训练
KTO 训练
ORPO 训练
SimPO 训练

 

高级算法支持

FlashAttention-2、Unsloth(170% 加速 + 50% 显存节省)、DoRA、GaLore、BAdam、APOLLO、LoRA+、PiSSA、LongLoRA、LLaMA-Pro、Mixture-of-Depths、Agent Tuning、Liger Kernel、FP8 训练、RoPE scaling、NEFTune、rsLoRA

 

分布式训练引擎

  • NativeDDP:PyTorch 原生分布式数据并行
  • DeepSpeed:ZeRO-1/2/3、ZeRO-Offload、Sparse Attention
  • FSDP / FSDP2:PyTorch 原生全分片数据并行,FSDP2 基于 DTensor 实现逐参数分片
  • Ray:多机多卡调度

 

量化支持

PTQ(GPTQ、AWQ、AQLM、OFTQ、bitsandbytes、HQQ、EETQ)、QAT、2/3/4/5/6/8-bit QLoRA

 

推理与导出(训练框架附带的测试/部署能力):

  • 推理引擎:HuggingFace Transformers、vLLM(270% 加速)、SGLang
  • 实验监控:LlamaBoard、TensorBoard、WandB、MLflow、SwanLab
  • 导出格式:合并 LoRA 权重、GPTQ/AWQ 量化导出、HuggingFace 格式

 

许可策略

项目以 Apache-2.0​ 许可开源(以 GitHub 仓库 LICENSE 文件为准),允许商用、修改、再分发、微调,无营收门槛、无月活限制。

💡 LlamaFactory 的独特定位:它是”训练&微调”子分类的综合型标杆——单个项目即可覆盖从数据预处理、预训练、SFT、RLHF/DPO/KTO/ORPO 对齐、奖励建模、LoRA 合并、量化导出到 vLLM/SGLang 推理测试的完整链路。虽然框架附带 OpenAI 风格 API、Gradio WebUI、vLLM 推理等能力,但其核心职责是”训练与微调”,推理/API/前端能力仅作为训练后的测试与验证工具,不应将其归入”推理引擎”、”API 封装”或”交互前端”子分类。

 

核心能力

  • 100+ 模型统一微调入口:同一套 YAML/WebUI 配置微调 Llama、Qwen、DeepSeek、ChatGLM、Mistral、Gemma、Phi 等全系列模型,自动匹配对话模板、LoRA 目标层、RoPE 缩放
  • 全生命周期训练:PT → SFT → RM → PPO → DPO → KTO → ORPO → SimPO 完整对齐链路
  • 参数高效微调(PEFT):LoRA、QLoRA(2/3/4/5/6/8-bit)、DoRA、LoRA+、PiSSA、rsLoRA、GaLore、BAdam、APOLLO、OFT/OFTQ
  • 全参数微调:FP16/BF16 全参微调、Freeze 微调、纯 BF16 微调
  • 零代码 WebUI(LlamaBoard):浏览器可视化配置、启动训练、实时监控 loss 曲线、对话测试、导出模型
  • CLI + YAML 配置:适合批量任务、服务器、CI/CD 自动化脚本
  • 多模态训练:LLaVA、CogVLM、Qwen-VL、InternVL 等图文模型统一流程训练
  • 分布式训练:NativeDDP / DeepSpeed / FSDP / FSDP2 / Ray,支持单机多卡与多机多卡
  • 量化训练与导出:bitsandbytes 8-bit、GPTQ、AWQ、AQLM、HQQ、EETQ、OFTQ
  • 加速算子集成:FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune
  • 50+ 内置数据集:alpaca_en/zh、identity、oaast_sft_en、dpo_en_demo、math_en 等,支持自定义数据集(dataset_info.json 配置)
  • 实验监控全平台:LlamaBoard、TensorBoard、WandB、MLflow、SwanLab
  • NPU 支持:华为昇腾芯片训练与推理(vLLM-Ascend)
  • 一键导出部署:合并 LoRA 权重、量化导出、HuggingFace 格式、OpenAI 风格 API、vLLM/SGLang 高性能推理

 

优势亮点

  • 零代码/低代码门槛:WebUI 让新手浏览器点选即可训练;CLI+YAML 让工程师批量自动化——兼顾新手与专业
  • 消费级显卡可用:QLoRA 4-bit 下 7B 模型仅需 6GB VRAM,70B 模型仅需 48GB VRAM;FSDP+QLoRA 可在 2×24GB GPU 上微调 70B 模型
  • 100+ 模型 Day-0 支持:新模型(如 Qwen3、Gemma 4、Llama 4)发布后 LlamaFactory 通常第一时间支持,国产模型(Qwen、DeepSeek、ChatGLM、GLM-4)适配极佳
  • Apache-2.0 最干净许可:商用、修改、再分发均无门槛,与 MS-SWIFT、Axolotl 并列”最干净许可”阵营
  • 训练速度业界领先:相比 ChatGLM P-Tuning,LoRA 微调训练速度提升 3.7 倍且 Rougel 分数更高;集成 Unsloth 后 LoRA 训练再获 170% 加速与 50% 显存节省
  • RLHF 全流程闭环:从 SFT → RM → PPO/DPO/KTO/ORPO 全链路打通,是国内为数不多可完整跑通 RLHF 的开源框架
  • 多模态统一流程:LLaVA、CogVLM、Qwen-VL、InternVL 等图文模型使用同一套训练流水线,多模态微调零额外学习成本
  • 分布式训练完备:NativeDDP / DeepSpeed / FSDP / FSDP2 / Ray 五种引擎任意切换,FSDP+QLoRA 让 70B 模型微调门槛降至 2×24GB GPU
  • ACL 2024 学术背书:论文《LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models》提供学术严谨性保证
  • 北航团队主导,社区活跃:GitHub 7.2万+ Stars,最新版本 v0.9.5(2026-05-30),总提交 3000+ commits
  • 昇腾 NPU 原生支持:vLLM-Ascend 集成,国产算力适配佳

 

局限

  • 超大规模预训练非强项:LlamaFactory 定位是”微调框架”而非”预训练引擎”,千亿参数从零预训练建议使用 Megatron-Core 或 NeMo
  • RLHF PPO 训练资源消耗大:PPO 需要同时加载策略模型、参考模型、奖励模型、价值模型四个模型副本,70B PPO 全参微调需约 1200GB GPU 显存
  • vLLM/SGLang 推理仅为附属功能:虽然框架集成 vLLM 推理(270% 加速),但其核心是训练而非推理服务,生产环境推理建议独立部署 vLLM/SGLang 集群
  • WebUI 不适合超大规模集群:LlamaBoard 适合单机/小规模调试,大规模多机训练建议直接用 CLI+YAML+Ray/DeepSpeed
  • 全参微调硬件门槛高:70B 模型 BF16 全参微调需 600GB 显存(约 8×A100 80GB),生产级全参微调仍需高昂硬件投入
  • Windows 支持较弱:需手动安装 CUDA 版本 PyTorch,官方推荐 Linux 环境
  • 某些前沿算法滞后:相比 TRL、veRL 等专职对齐库,最新的 RL 算法(如 DAPO、GRPO 变种)可能滞后 1-2 个月
  • YAML 配置学习曲线:虽然 WebUI 零代码,但要充分发挥框架能力(自定义数据集、分布式训练、量化策略),仍需理解 YAML 配置的各项参数

 

适用人群

  • 大模型应用开发者:需要基于 Qwen、DeepSeek、ChatGLM 等开源模型做领域适配,LlamaFactory 是国产模型微调的首选
  • 企业与行业定制化:金融、医疗、法律、教育等领域需要将通用模型微调为行业专家模型,WebUI 让业务人员也能参与
  • 学术研究团队:ACL 2024 论文背书 + 100+ 模型统一入口,是多模态训练、对齐算法研究的理想平台
  • 消费级硬件玩家:单张 RTX 4090(24GB)通过 QLoRA 4-bit 可微调 7B 模型,是个人开发者入门 LLM 微调的最佳选择
  • 多模态模型微调:LLaVA、CogVLM、Qwen-VL、InternVL 统一流程训练,视觉语言模型定制零额外成本
  • RLHF/DPO 对齐实验:需要完整跑通 SFT→RM→PPO/DPO 全流程的研究团队
  • 国产算力用户:昇腾 NPU 原生支持,vLLM-Ascend 集成,国产硬件适配佳
  • 自动化训练流水线:CLI+YAML 模式完美适配 CI/CD、Airflow、Ray 等自动化调度系统

 

安装与部署

 

1. 硬件需求参考

训练方法 位数 7B 14B 70B
全参(BF16) 32 120GB 240GB 1200GB
全参(pure BF16) 16 60GB 120GB 600GB
LoRA/Freeze 16 16GB 32GB 160GB
QLoRA 8 10GB 20GB 80GB
QLoRA 4 6GB 12GB 48GB
QLoRA 2 4GB 8GB 24GB

💡 消费级推荐:RTX 4090 24GB 通过 QLoRA 4-bit 可微调 7B 模型;2×RTX 4090 24GB 通过 FSDP+QLoRA 可微调 70B 模型

 

2. 源码安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

# 创建虚拟环境(推荐 Python 3.10)
conda create -n llamafactory python=3.10 -y
conda activate llamafactory

# 安装(包含 torch 与 metrics 依赖)
pip install -e ".[torch,metrics]" --no-build-isolation

# 可选:安装额外依赖
pip install deepspeed==0.16.4  # 分布式训练
pip install flash-attn==2.7.2  # FlashAttention-2 加速
pip install vllm==0.8.2         # vLLM 推理加速

# 验证 GPU 可用
python -c "import torch; print(torch.cuda.get_device_name(0))"

 

3. 通过 Docker 部署(推荐)

# 拉取官方镜像
docker pull hiyouga/llamafactory:latest

# 启动 WebUI(端口 7860)
docker run -d --name llamafactory --gpus all \
  -p 7860:7860 \
  -v /root/llamafactory/data:/app/LLaMA-Factory/data \
  -v /root/llamafactory/models:/root/.cache/huggingface \
  -v /root/llamafactory/output:/app/LLaMA-Factory/output \
  -v /root/llamafactory/saves:/app/LLaMA-Factory/saves \
  -e HF_TOKEN=hf_your_token_here \
  hiyouga/llamafactory:latest \
  llamafactory-cli webui

# 访问 http://localhost:7860 打开 LlamaBoard

 

4. WebUI 零代码微调(LlamaBoard)

# 启动 WebUI
llamafactory-cli webui

# 浏览器打开 http://localhost:7860
# 配置步骤:
# 1. 选择模型名称与路径(如 meta-llama/Meta-Llama-3-8B-Instruct)
# 2. 选择训练阶段(Supervised Fine-Tuning)
# 3. 选择微调方法(LoRA / QLoRA / Full)
# 4. 选择数据集(alpaca_en / alpaca_zh / 自定义)
# 5. 配置超参数(learning_rate=1e-4, lora_rank=8, epochs=3)
# 6. 点击 "Start" 开始训练,实时查看 loss 曲线

 

5. CLI + YAML 配置 LoRA SFT

# 例子:微调 Llama-3-8B-Instruct(LoRA SFT)
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

# YAML 配置示例(llama3_lora_sft.yaml)
# model
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct

# method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all
lora_rank: 8
lora_alpha: 16
lora_dropout: 0.1

# dataset
dataset: alpaca_en
template: llama3
cutoff_len: 2048
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

# output
output_dir: saves/llama3-8b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

# train
per_device_train_batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000

 

6. QLoRA 4-bit 微调(消费级硬件)

# 例子:QLoRA 4-bit 微调 Mistral-7B(单卡 RTX 4090 可运行)
cat > configs/qlora_mistral.yaml << 'EOF'
model:
  model_name_or_path: mistralai/Mistral-7B-Instruct-v0.3

method:
  stage: sft
  do_train: true
  finetuning_type: lora
  lora_target: all
  lora_rank: 16
  lora_alpha: 32
  lora_dropout: 0.05

dataset:
  dataset: alpaca_en
  template: mistral
  cutoff_len: 2048
  max_samples: 1000

quantization:
  quantization_method: bitsandbytes
  quantization_bit: 4

output:
  output_dir: saves/mistral-qlora
  logging_steps: 10
  save_steps: 500
  plot_loss: true

train:
  per_device_train_batch_size: 2
  gradient_accumulation_steps: 8
  learning_rate: 0.0001
  num_train_epochs: 3.0
  lr_scheduler_type: cosine
  warmup_ratio: 0.1
  fp16: true
EOF

llamafactory-cli train configs/qlora_mistral.yaml

 

7. DPO 偏好优化

# 第一步:基础模型 SFT
llamafactory-cli train \
  --model_name_or_path meta-llama/Meta-Llama-3-8B \
  --method lora \
  --stage sft \
  --dataset alpaca_en \
  --template llama3 \
  --output_dir ./sft-checkpoint

# 第二步:DPO 对齐
llamafactory-cli train \
  --model_name_or_path meta-llama/Meta-Llama-3-8B \
  --adapter_name_or_path ./sft-checkpoint \
  --method lora \
  --stage dpo \
  --dataset dpo_en_demo \
  --dpo_beta 0.1 \
  --pref_loss sigmoid \
  --template llama3 \
  --output_dir ./dpo-checkpoint

 

8. 多卡分布式训练(DeepSpeed ZeRO-3)

# 4 卡 DeepSpeed ZeRO-3 微调
FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=0,1,2,3 \
  llamafactory-cli train examples/train_lora/qwen3_lora_sft_ds3.yaml

# 或在 YAML 中启用 DeepSpeed
# deepspeed: examples/deepspeed/ds_z3_config.json

 

9. FSDP2 多机多卡训练

# 2 机 16 卡 FSDP2 训练
FORCE_TORCHRUN=1 NNODES=2 NODE_RANK=0 MASTER_ADDR=192.168.0.1 MASTER_PORT=29500 \
  llamafactory-cli train examples/train_lora/qwen3_lora_sft_fsdp2.yaml

FORCE_TORCHRUN=1 NNODES=2 NODE_RANK=1 MASTER_ADDR=192.168.0.1 MASTER_PORT=29500 \
  llamafactory-cli train examples/train_lora/qwen3_lora_sft_fsdp2.yaml

 

10. 训练后推理测试

# 交互式对话测试
llamafactory-cli chat \
  --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \
  --adapter_name_or_path ./saves/llama3-8b/lora/sft \
  --template llama3 \
  --finetuning_type lora

# 使用 vLLM 加速推理
llamafactory-cli chat \
  --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \
  --adapter_name_or_path ./saves/llama3-8b/lora/sft \
  --template llama3 \
  --finetuning_type lora \
  --infer_backend vllm

 

11. LoRA 合并与导出

# 合并 LoRA 权重到基座模型并导出
llamafactory-cli export \
  --model_name_or_path meta-llama/Meta-Llama-3-8B-Instruct \
  --adapter_name_or_path ./saves/llama3-8b/lora/sft \
  --template llama3 \
  --finetuning_type lora \
  --export_dir ./output/llama3-merged \
  --export_size 4 \
  --export_legacy_format false

# 导出为 GPTQ 4-bit 量化模型
llamafactory-cli export \
  --model_name_or_path ./output/llama3-merged \
  --template llama3 \
  --export_dir ./output/llama3-gptq-4bit \
  --quantization_method gptq \
  --quantization_bit 4

 

12. 部署为 OpenAI 兼容 API

# 启动 OpenAI 风格 API 服务(使用 vLLM 后端)
API_PORT=8000 llamafactory-cli api \
  examples/inference/llama3.yaml \
  infer_backend=vllm

 

13. 自定义数据集

// data/my_dataset.json
[
  {
    "instruction": "You are a customer service agent for a tech company. Answer helpfully.",
    "input": "My laptop won't turn on after the update. What should I do?",
    "output": "I understand how frustrating that can be. Let's troubleshoot step by step:\n\n1."
  }
]
// data/dataset_info.json 中添加条目
{
  "my_dataset": {
    "file_name": "my_dataset.json",
    "columns": {
      "instruction": "instruction",
      "input": "input",
      "output": "output"
    }
  }
}

 

14. 部署前必检清单

  • 确认仓库位于 github.com/hiyouga/LLaMA-Factory(官方仓库),许可以 LICENSE 文件为准(Apache-2.0)
  • 商用部署:Apache-2.0 允许商用,无营收门槛、无月活限制
  • 硬件选型参考上表:消费级建议 QLoRA 4-bit;70B 模型微调建议 FSDP+QLoRA 或 DeepSpeed ZeRO-3
  • WebUI 适合调试与小规模训练;大规模分布式训练建议 CLI+YAML
  • 国产模型(Qwen、DeepSeek、ChatGLM)Day-0 支持,是国产模型微调首选
  • 昇腾 NPU 用户参考官方 NPU 安装文档
  • 框架附带的 vLLM/SGLang 推理、OpenAI API、Gradio WebUI 仅作为训练后的测试与验证工具;生产环境推理服务建议独立部署 vLLM/SGLang 集群

 

相关导航