本地部署LLaMA-Factory:一站式大模型微调与推理

在如今大语言模型(LLM)技术飞速演进的背景下,越来越多开发者和研究者不再满足于“开箱即用”的通用模型。无论是构建垂直领域的智能客服、企业知识问答系统,还是优化特定任务的表现,如何低成本、高效率地对预训练模型进行定制化微调,已成为实际落地中的核心挑战。

这时候,一个真正能打通“数据 → 训练 → 部署”全链路的工具就显得尤为关键。而 LLaMA-Factory 正是为此诞生的一站式解决方案——它不只是一套代码库,更像是一个专为大模型量身打造的“自动化生产线”。从支持上百种主流架构,到提供可视化操作界面,再到一键导出可部署模型,它的设计理念就是:让微调这件事变得像搭积木一样简单。


硬件准备:你的GPU够用吗?

任何深度学习项目的起点,都是确认硬件是否在线。对于 LLaMA-Factory 来说,虽然它支持多种量化与低资源训练方式(比如 QLoRA),但基础门槛依然是一块具备 CUDA 加速能力的 NVIDIA 显卡

我们先运行下面这条命令检查显卡状态:

nvidia-smi

如果一切正常,你会看到类似这样的输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.05    Driver Version: 535.86.05    CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA RTX 4090     On   | 00000000:01:00.0 Off |                  Off |
| 30%   45C    P8    20W / 450W |   1024MiB / 24576MiB |      5%      Default |
+-------------------------------+----------------------+----------------------+

重点关注三个点:
- 是否识别出 GPU;
- CUDA 版本是否 ≥ 11.8(PyTorch 对此有要求);
- 显存容量能否支撑目标模型:例如 Qwen-7B 推荐至少 16GB 显存,若低于此值,建议使用 LoRA 或 QLoRA 技术降低内存占用。

⚠️ 如果 nvidia-smi 找不到设备或提示驱动未安装,请前往 NVIDIA 官网 下载对应驱动,并根据 PyTorch 官方文档安装匹配版本的 cudatoolkit


获取项目源码:国内用户推荐 Gitee 镜像

接下来创建工作目录并克隆项目:

mkdir ~/llm-training && cd ~/llm-training

由于 GitHub 在国内访问较慢,推荐使用 Gitee 的镜像仓库加快下载速度:

# 国内推荐
git clone https://gitee.com/qzl9999/LLaMA-Factory.git

# 或国际网络
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

进入项目根目录:

cd LLaMA-Factory

这里使用 --depth 1 是为了只拉取最新提交记录,节省时间和磁盘空间。毕竟我们不是要参与开发,而是快速上手使用。


构建独立环境:避免依赖冲突的黄金法则

Python 项目最怕的就是“包冲突”。为了避免影响其他项目,强烈建议使用 Conda 创建专用虚拟环境。LLaMA-Factory 官方推荐 Python 3.10

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

激活成功后,终端前会显示 (llama_factory) 标识,说明你现在处于隔离环境中。


安装依赖:一次搞定所有组件

项目依赖项较多,包括 PyTorch、Transformers、Peft、Gradio 等。好在 LLaMA-Factory 提供了便捷的安装指令:

pip install -e ".[torch,metrics]"

这个命令做了两件事:
- -e 表示“可编辑模式”,相当于把当前项目当作已安装包,后续修改代码无需重新安装;
- .[torch,metrics] 是 setuptools 中的“可选依赖”语法,自动安装主依赖 + 深度学习框架(torch)+ 评估库(rouge、bleu 等)。

安装过程可能需要几分钟,取决于网络状况。完成后可通过以下命令验证是否成功:

llamafactory-cli version

若返回版本号(如 v0.8.0),说明安装无误。


验证 CUDA 环境:别让训练跑在 CPU 上!

即使你有高端显卡,也有可能因为环境配置问题导致 PyTorch 无法调用 GPU。为了避免“看着进度条走了一天结果发现是在 CPU 上训练”的悲剧,务必做一次简单的验证:

import torch

print("CUDA Available:", torch.cuda.is_available())
print("CUDA Device Count:", torch.cuda.device_count())
print("Current Device:", torch.cuda.current_device())
print("Device Name:", torch.cuda.get_device_name(0))
print("PyTorch Version:", torch.__version__)

理想输出如下:

CUDA Available: True
CUDA Device Count: 1
Current Device: 0
Device Name: NVIDIA GeForce RTX 4090
PyTorch Version: 2.3.0+cu121

如果 CUDA Available 返回 False,请排查:
- 当前 conda 环境是否正确激活;
- 安装的 pytorch 是否带有 CUDA 支持(应为 torch==2.3.0+cu121 形式);
- 显卡驱动是否过旧或损坏。

确认无误后输入 exit() 退出 Python 解释器。


启动 WebUI:告别命令行恐惧症

LLaMA-Factory 最吸引人的地方之一,就是它内置了一个基于 Gradio 的图形化界面。这意味着你可以完全不用记复杂的参数名,通过点击完成整个训练流程。

启动命令非常简洁:

llamafactory-cli webui

首次运行时会自动下载 Gradio 并启动服务,默认地址为:

Running on local URL:  http://127.0.0.1:7860

打开浏览器访问该地址,即可进入可视化操作面板。界面包含多个标签页:“模型”、“训练”、“推理”、“导出”、“API”等,覆盖了从加载模型到上线服务的全流程。

相比传统命令行操作,WebUI 的优势在于:
- 实时查看训练日志和 loss 曲线;
- 参数设置所见即所得;
- 支持上传自定义数据集;
- 可视化测试生成效果。

尤其适合刚接触大模型微调的新手,也能极大提升高级用户的调试效率。


下载预训练模型:HF vs ModelScope 怎么选?

LLaMA-Factory 本身不包含模型权重,你需要自行从 Hugging Face 或 ModelScope 下载所需的基础模型。

推荐平台对比:
平台 优点 缺点
Hugging Face 全球最大开源模型社区,更新快 国内访问慢,需科学上网
魔搭 ModelScope 阿里出品,中文友好,下载速度快 部分小众模型缺失

对于中文用户,尤其是网络条件一般的情况下,强烈推荐优先使用 ModelScope

以通义千问系列为例,假设你想微调 Qwen2.5-3B-Instruct 模型,在 ModelScope 搜索该名称,进入详情页后复制 Git 命令即可:

git lfs install
git clone https://www.modelscope.cn/qwen/Qwen2___5-3B-Instruct.git

建议将模型放在 LLaMA-Factory 同级目录下,例如:

~/llm-training/Qwen2___5-3B-Instruct

⚠️ 注意路径中不要包含空格、括号或特殊字符(如 /),否则可能导致加载失败。可以用下划线 _ 替代。


使用 WebUI 进行 LoRA 微调:新手友好实战指南

现在正式开始微调之旅。打开 WebUI 页面后,建议先切换语言为 中文(zh),更便于理解各项配置含义。

1. 设置模型信息

切换至“模型”标签页,填写以下内容:

字段 填写示例
模型名称 qwen2.5-3b-instruct(系统会自动识别别名)
模型路径 /home/username/llm-training/Qwen2___5-3B-Instruct
量化方式 none(初学者建议不启用量化)
设备类型 cuda

勾选“加载适配器权重”可用于继续训练已有 LoRA 模型,初次训练保持关闭即可。

2. 数据集选择与格式说明

LLaMA-Factory 内置多个常用数据集模板,如:
- alpaca_zh:中文指令微调数据;
- dolly-15k:英文多任务指令集;
- self_cognition:自我认知训练;

也可以上传自己的 JSON 文件,结构如下:

[
  {
    "instruction": "解释什么是机器学习",
    "input": "",
    "output": "机器学习是……"
  }
]

每条样本由 instruction(任务描述)、input(输入上下文)、output(期望输出)组成,符合标准 Alpaca 格式。

3. 关键训练参数配置

切换到“训练”标签页,重点设置以下参数:

参数 推荐值 说明
微调方法 lora 初学者首选,仅训练少量参数,节省显存
学习率 2e-4 LoRA 通常使用较高学习率
训练轮数 3 防止过拟合
单卡批量大小 4 视显存调整(RTX 3090/4090 可设为 8)
梯度累积步数 8 等效 batch size = 4×8=32
序列长度 512 平衡性能与内存

💡 进阶技巧:若显存紧张,可将“微调方法”改为 qlora,并启用 fp16bf16 精度,可在 24GB 显存下微调 7B 模型。

4. LoRA 高级参数调优
参数 建议值 说明
target_modules q_proj,v_proj 不同模型略有差异(如 LLaMA 系列为 q/v 投影层)
lora_rank 64 秩越大表达能力越强,但也更耗资源
lora_alpha 16 控制缩放系数,一般为 rank 的 0.25~0.5 倍
lora_dropout 0.05 防止过拟合

这些参数直接影响微调效果。经验法则是:lora_rank=64lora_alpha=16 是一个不错的起点,后续可根据验证集表现微调。


开始训练 & 实时监控

所有配置完成后,点击“预览命令”按钮,系统会生成对应的 CLI 指令,例如:

llamafactory-cli train \
    --model_name_or_path /home/username/llm-training/Qwen2___5-3B-Instruct \
    --do_train \
    --dataset alpaca_zh \
    --finetuning_type lora \
    --lora_target q_proj,v_proj \
    --output_dir ./outputs/lora_train \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 8 \
    --learning_rate 2e-4 \
    --num_train_epochs 3.0 \
    --max_seq_length 512 \
    --logging_steps 10 \
    --save_steps 100 \
    --evaluation_strategy steps \
    --eval_steps 100

确认无误后点击“开始”,训练进程正式启动。

页面下方会实时滚动输出日志,包括:
- 当前 step 和 loss 值;
- 学习率变化趋势;
- 显存占用情况;
- 评估指标(accuracy、rouge 等);

同时,每个 checkpoint 都会被保存到 output_dir 目录中,支持中断后恢复训练。


推理测试:看看模型学会了什么

训练结束后,可以直接在“推理”标签页中加载原始模型 + LoRA 权重进行测试:

  • 模型路径:指向基础模型目录;
  • 适配器路径:选择训练输出的 lora_train/checkpoint-xxx
  • 输入 prompt,点击“生成”。

系统采用动态加载机制,无需提前合并权重即可实现增强推理,非常适合快速验证效果。


导出融合模型:迈向生产部署的关键一步

如果你希望将微调后的模型独立部署(如接入 vLLM 或 TGI),就需要将 LoRA 权重永久合并进原模型。

在 WebUI 中切换到“导出”标签页,填写:
- 基础模型路径;
- 适配器路径;
- 输出路径(如 ./merged_models/qwen-lora-merged);

点击“导出”按钮,系统会执行权重合并操作。最终输出的是标准 Hugging Face 格式的模型文件夹,包含 config.jsontokenizer.modelpytorch_model.bin 等,可直接用于 Transformers 推理或其他服务框架。


启动 API 服务:让模型真正“活”起来

为了让模型服务于前端应用或业务系统,LLaMA-Factory 提供了轻量级 API 服务功能:

llamafactory-cli api \
    --model_name_or_path ./merged_models/qwen-lora-merged \
    --port 8080

启动后可通过 POST 请求调用:

curl -X POST "http://127.0.0.1:8080/generate" \
     -H "Content-Type: application/json" \
     -d '{"prompt": "请解释量子计算的基本原理"}'

返回生成文本结果,轻松集成到网页、App 或自动化流程中。

此外,你还可以结合 Nginx 做反向代理、添加身份认证、启用 HTTPS,进一步提升安全性与可用性。


写在最后:为什么你应该试试 LLaMA-Factory?

LLaMA-Factory 的出现,本质上是在尝试解决一个现实痛点:大模型技术越来越强,但使用门槛并没有同步下降。很多团队明明有能力获取数据、也有硬件资源,却卡在“怎么训”“怎么部署”这种工程细节上。

而 LLaMA-Factory 的价值就在于:
- 统一接口:无论你是用 LLaMA、Qwen 还是 Mistral,操作流程几乎一致;
- 零代码入门:WebUI 让非专业人员也能参与模型定制;
- 端到端闭环:从训练到导出再到 API,一气呵成;
- 持续活跃更新:GitHub 上每周都有新 PR 和 issue 互动,社区生态健康。

哪怕你现在只是想做个简单的行业问答机器人,或者给公司内部系统加个 AI 助手,LLaMA-Factory 都能让你在几小时内跑通完整流程。

未来你可以尝试的方向还有很多:
- 用 QLoRA 在单张消费级显卡上微调 7B 模型;
- 构建专属法律、医疗、金融知识库问答系统;
- 结合 RAG 实现动态检索增强生成;
- 将训练流程封装为自动化脚本,接入 CI/CD 流水线;

随着开源社区不断迭代,这类“平民化”的工具正在成为推动 AI 普惠的重要力量。而你所需要的,或许只是一个晚上,加上一块还能打的游戏显卡。

🔗 项目地址:https://github.com/hiyouga/LLaMA-Factory
📚 官方文档:https://llamafactory.readthedocs.io

别再观望了——动手才是通往 AI 自由的第一步。

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐