⚡ LLaMA Factory:71k Stars 的开源微调框架,一行命令微调 100+ 大模型
项目地址:hiyouga/LLaMA-Factory | ⭐ 71k | 🛠 Python | 作者 hiyouga
老实说,模型微调这个事,圈子里一直挺分裂的。想微调 LLaMA 的得折腾一套脚本,想微调 Qwen 的又得换一套,DeepSeek、Gemma、GLM 各搞各的,配环境都能配一上午。
LLaMA Factory 就是冲着这个痛点来的——一个框架搞定 100+ 模型的微调,从 LLaMA 3、Qwen 3、DeepSeek R1 到 Gemma 3、GLM-4,全兼容。还支持 LoRA、QLoRA、全参微调、DPO、PPO 等各种训练方法。而且被 Amazon、NVIDIA、阿里云拿去生产用,不是玩具。
⚡ 安装:两条命令
git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git
cd LlamaFactory
pip install -e .
想要监控指标的话再加个依赖:
pip install -r requirements/metrics.txt
或者直接用官方 Docker 镜像,一行搞定:
docker run -it --rm --gpus=all --ipc=host hiyouga/llamafactory:latest
🚀 微调 + 推理 + 导出:各一行命令
LLaMA Factory 的用法简洁到离谱。用 3 条命令跑通 LoRA 微调的完整流程,以 Qwen3-4B-Instruct 为例:
微调:
llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml
推理聊天:
llamafactory-cli chat examples/inference/qwen3_lora_sft.yaml
合并 LoRA 权重:
llamafactory-cli export examples/merge_lora/qwen3_lora_sft.yaml
每个配置项都在 YAML 文件里,不用记一堆命令行参数,改个文件就行。LoRA、QLoRA、全参微调,换配置文件就能切。
🖥 Web UI 训练界面
不想写 YAML?LLaMA Factory 自带 Gradio Web UI:
llamafactory-cli webui
浏览器打开就能可视化选模型、调参数、点按钮开始训练,训练过程还实时显示 loss 曲线。适合刚入门微调的同学。
🔧 部署成 API
微调完的模型一行命令启动 OpenAI 兼容 API:
API_PORT=8000 llamafactory-cli api examples/inference/qwen3.yaml
启动后直接用 curl 调:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-4b",
"messages": [{"role": "user", "content": "Hello"}]
}'
还能切到 vLLM 后端,推理速度拉满:
API_PORT=8000 llamafactory-cli api examples/inference/qwen3.yaml \
infer_backend=vllm vllm_enforce_eager=true
🎯 支持的训练方法
LLaMA Factory 不是只能简单微调。它支持的训练方法覆盖了当前主流需求:
量化方面,LoRA + 4bit QLoRA 可以在单张 24GB 显卡上微调 70B 模型,原理是 FSDP+QLoRA 组合拳,官方博客有详细说明。
💡 实用技巧
训练时加几个 flag 能明显提升效果:
# 启用 FlashAttention-2(需要 A100/H100 或 RTX4090)
flash_attn: fa2
# 用 Unsloth 加速 LoRA(训练速度提升 170%)
use_unsloth: true
# NEFTune 噪声增强(提升泛化)
neftune_noise_alpha: 5
# 用 Liger Kernel 省显存
enable_liger_kernel: true