大模型微调工具实战:LLaMA-Factory 与 Unsloth Studio 完全指南
大模型微调工具实战:LLaMA-Factory 与 Unsloth Studio 完全指南
一、工具简介
1.1 LLaMA-Factory:全栈统一微调框架
LLaMA-Factory 是一个开源的大模型微调框架,支持 100+ 种 LLM 的微调训练。它的核心特点是“大而全”——从模型支持、微调方法到部署流程,一站式覆盖。
主要特点:
| 特点 | 说明 |
|---|---|
| 模型支持广泛 | LLaMA、Qwen、ChatGLM、Mistral、Baichuan、DeepSeek、Gemma 等 100+ 模型 |
| 微调方法丰富 | Full(全参)、LoRA、QLoRA、Freeze 等 |
| 零代码操作 | 提供 WebUI 界面(LLaMA Board),无需编写代码 |
| 一站式流程 | 训练、评估、对话、导出一体化 |
| 多加速集成 | FlashAttention-2、Unsloth、Liger Kernel、DeepSpeed、FSDP |
核心数据:GitHub Star 71.3k,Apache-2.0 许可,ACL 2024 论文项目,已被 Amazon、NVIDIA、Aliyun 等采用。
1.2 Unsloth Studio:速度与显存优化王者
Unsloth Studio 是一个本地、基于浏览器的 GUI,可在无需编写任何代码的情况下微调 LLM。它将训练流程封装在一个简洁的界面中,负责模型加载、数据集格式化、超参数配置以及实时训练监控。
核心优势:
| 特点 | 说明 |
|---|---|
| 极致速度 | 训练速度提升最高 2 倍 |
| 显存优化 | 显存节省最高 70%,无精度损失 |
| 平台支持 | Windows、Linux、WSL、macOS 全平台 |
| 多模态支持 | 支持文本、视觉、TTS 音频、Embedding 模型 |
| 模型规模 | 支持 500+ 模型,包括 Qwen3.5、Gemma 4、DeepSeek、gpt-oss 等 |
核心数据:GitHub Star 64.3k,MoE 模型训练加速 12 倍,显存减少 35%。
1.3 两者对比与选型建议
| 维度 | LLaMA-Factory | Unsloth Studio |
|---|---|---|
| 定位 | 大而全,全场景覆盖 | 快而省,极致优化 |
| 零代码界面 | ✅ WebUI (LLaMA Board) | ✅ 浏览器 GUI |
| 训练速度 | 标准 | 最高 2x 提升 |
| 显存占用 | 标准 | 最高 70% 节省 |
| 模型支持 | 100+ | 500+ |
| 微调方法 | SFT / DPO / PPO / KTO / ORPO / SimPO | SFT / LoRA / QLoRA / FFT |
| 部署方式 | vLLM / API / Docker | GGUF / Ollama / vLLM / API |
| 适合场景 | 企业级一站式微调 | 个人开发者/单卡快速迭代 |
选型建议:
- 硬件导向:单卡/消费级 GPU 选 Unsloth,企业级集群选 LLaMA-Factory
- 模型规模:32B 以下模型两者均可,67B+ 优先 LLaMA-Factory
- 新手入门:Unsloth Studio 更简单,安装后即可用
- 企业部署:LLaMA-Factory 的 vLLM 集成和 API 部署更成熟
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
二、安装指南
2.1 LLaMA-Factory 安装
方式一:pip 安装(最简单)
pip install llamafactory
方式二:源码安装
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
方式三:Docker 部署(GPU 版本)
# docker-compose.yml
version: "3.9"
services:
llamafactory:
image: hiyouga/llamafactory:latest
container_name: llamafactory
ports:
- "7860:7860" # WebUI 端口
- "8000:8000" # API 端口
volumes:
- ./data:/app/data
- ./output:/app/output
- ./cache:/root/.cache
environment:
- GRADIO_SERVER_NAME=0.0.0.0
- GRADIO_SERVER_PORT=7860
- USE_MODELSCOPE_HUB=1 # 使用 ModelScope 下载模型(国内更快)
command: llamafactory-cli webui
restart: unless-stopped
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
启动服务:
docker-compose up -d
访问 http://localhost:7860 即可看到 WebUI 界面。
2.2 Unsloth Studio 安装
方式一:一键脚本安装(macOS / Linux / WSL)
curl -fsSL https://unsloth.ai/install.sh | sh
方式二:Windows PowerShell
irm https://unsloth.ai/install.ps1 | iex
安装完成后启动:
unsloth studio -H 0.0.0.0 -p 8888
浏览器打开 http://localhost:8888,首次登录需设置密码。
方式三:Unsloth Desktop 桌面应用
Unsloth 提供原生桌面应用,可直接从官网下载安装。
三、数据准备
3.1 LLaMA-Factory 数据格式
LLaMA-Factory 支持两种主流数据格式:
Alpaca 格式(单轮指令):
[
{
"instruction": "请把以下技术术语翻译成商务用简洁中文。",
"input": "Database Connection Pool",
"output": "数据库连接池"
}
]
ShareGPT 格式(多轮对话):
[
{
"conversations": [
{"from": "human", "value": "订单 MT20250101-001 到哪了?"},
{"from": "gpt", "value": "您好,您的订单目前状态为已发货。"}
]
}
]
数据文件放入 data/ 目录后,需要在 data/dataset_info.json 中注册自定义数据集。
3.2 Unsloth 数据格式
Unsloth 支持多种数据格式,推荐使用标准的 ChatML 格式(messages 格式):
{"messages": [
{"role": "system", "content": "你是一个电商客服助手"},
{"role": "user", "content": "订单 MT20250101-001 到哪了?"},
{"role": "assistant", "content": "您好,您的订单目前状态为已发货。"}
]}
Unsloth Studio 还提供 Data Recipes 功能,可以直接上传 PDF、CSV、JSON、DOCX、TXT 文件,自动转换为训练数据集。
四、实战操作
4.1 LLaMA-Factory 命令行训练
llamafactory-cli train \
--stage sft \
--model_name_or_path Qwen/Qwen3-7B \
--dataset alpaca_zh \
--finetuning_type lora \
--lora_target all \
--output_dir ./output
核心参数说明:
| 参数 | 说明 | 推荐值 |
|---|---|---|
--stage | 训练阶段 | sft / dpo / ppo |
--finetuning_type | 微调方法 | lora / qlora / full |
--lora_rank | LoRA rank | 16(默认) |
--learning_rate | 学习率 | 2e-4 ~ 5e-5 |
--num_train_epochs | 训练轮数 | 3-5 |
4.2 LLaMA-Factory WebUI 操作
启动 WebUI 后,界面分为四个标签页:
| 标签页 | 功能 |
|---|---|
| Train | 选择模型、数据集、微调方法,配置参数后开始训练 |
| Evaluate & Predict | 评估模型在测试集上的表现 |
| Chat | 与训练好的模型对话验证 |
| Export | 导出合并后的完整模型 |
4.3 Unsloth Studio 操作
Unsloth Studio 的操作流程更加简单:
- 选模型:在搜索框输入
qwen3.5,选择 0.8B / 2B / 4B / 9B / 27B 等规格 - 选数据集:上传准备好的数据文件,或使用 Data Recipes 自动生成
- 调参数:在界面中调整学习率、batch size、训练轮数
- 开始训练:点击“开始训练”,实时监控 Loss 曲线
- 导出模型:支持导出为 GGUF、Safetensors、LoRA 等格式
4.4 完整实战示例:电商客服微调
场景:用 Qwen3.5-4B 微调一个电商客服助手。
数据准备(50 条客服对话,JSONL 格式):
{"messages": [{"role": "system", "content": "你是电商客服助手"}, {"role": "user", "content": "我的订单到哪了"}, {"role": "assistant", "content": "请提供订单号,我帮您查询物流状态。"}]}
{"messages": [{"role": "system", "content": "你是电商客服助手"}, {"role": "user", "content": "我要退货"}, {"role": "assistant", "content": "好的,请问您的订单号是多少?我帮您创建退换货工单。"}]}
Unsloth Studio 操作步骤:
- 启动 Studio:
unsloth studio -H 0.0.0.0 -p 8888 - 搜索并选择
Qwen3.5-4B - 上传上述 JSONL 数据文件
- 配置参数:LoRA rank=16,learning_rate=2e-4,epochs=3
- 点击“开始训练”,等待约 30-60 分钟
- 在 Chat 页面测试微调效果
- 导出为 GGUF 格式,用于 Ollama 本地部署
五、部署与集成
5.1 LLaMA-Factory + vLLM 部署 API
LLaMA-Factory 内置对 vLLM 的支持,可以一行命令启动 OpenAI 风格的 API 服务:
API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml
启动后,Java 应用可以通过标准 OpenAI SDK 调用:
@Service
public class FinetunedModelService {
private final WebClient webClient = WebClient.builder()
.baseUrl("http://localhost:8000/v1")
.build();
public String chat(String userInput) {
var resp = webClient.post()
.uri("/chat/completions")
.bodyValue(Map.of(
"model", "qwen3-7b-ft",
"messages", List.of(
Map.of("role", "user", "content", userInput))))
.retrieve()
.bodyToMono(ChatResponse.class)
.block();
return resp.getChoices().get(0).getMessage().getContent();
}
}
5.2 Unsloth Studio 导出 GGUF 部署
Unsloth Studio 支持将模型导出为 GGUF 格式,用于 Ollama、llama.cpp 等本地推理工具:
# 导出为 GGUF(在 Unsloth Studio 界面中操作,或使用代码)
model.save_pretrained_gguf(
"./output",
tokenizer,
quantization_method="q4_k_m" # 4-bit 量化
)
导出后的 GGUF 文件可直接导入 Ollama:
ollama create my-model -f Modelfile
ollama run my-model
六、应用场景
6.1 LLaMA-Factory 适用场景
| 场景 | 说明 |
|---|---|
| 企业级一站式微调 | 从数据准备到部署的完整流程 |
| 多模型对比实验 | 同时测试多个基座模型的效果 |
| DPO/PPO 偏好对齐 | 安全对齐、风格调整 |
| 大规模分布式训练 | 搭配 DeepSpeed/FSDP 训练 67B+ 模型 |
| 多模态微调 | 支持 Qwen-VL、LLaVA 等视觉模型 |
6.2 Unsloth Studio 适用场景
| 场景 | 说明 |
|---|---|
| 个人开发者快速实验 | 单卡 RTX 4090 即可微调 7B 模型 |
| 消费级 GPU 微调 | 显存优化让 16GB 显卡也能跑 |
| 快速原型验证 | 零代码,30 分钟跑通第一次微调 |
| 本地部署 | 导出 GGUF 后 Ollama 本地运行 |
| 多模态探索 | 支持视觉、音频、Embedding 模型微调 |
6.3 典型案例:电商客服微调
背景:用 Qwen2.5-0.5B 构建电商场景智能问答系统,通过 LLaMA-Factory + LoRA 微调。
效果:从零构建一个可落地的电商客服助手,训练数据仅需 50-200 条高质量对话,训练时间约 1 小时。
七、常见问题
Q1:我应该选 LLaMA-Factory 还是 Unsloth?
A:如果是个人开发者、单卡 GPU、追求速度和简单,选 Unsloth;如果是企业团队、多卡集群、需要完整的训练-评估-部署流程,选 LLaMA-Factory。
Q2:微调 7B 模型需要多少显存?
A:QLoRA 方案下,Unsloth 可以让 7B 模型在 16GB 显存的显卡上训练;LLaMA-Factory 的 4-bit QLoRA 仅需 6GB 显存。
Q3:微调后的模型如何集成到 Java 项目?
A:用 vLLM 部署为 OpenAI 兼容 API,Java 端通过 HTTP 调用,与调用普通 Chat API 完全一致。
Q4:数据需要多少条?
A:首次实验 50-200 条即可跑通。正式微调建议至少 500 条,理想 1K 条以上。
Q5:Qwen3.5 微调有什么特别注意事项?
A:Qwen3.5 推荐使用 bf16 LoRA,不建议 QLoRA;需要 transformers v5 以上版本。
八、总结
| 工具 | 一句话定位 | 核心优势 | 适合谁 |
|---|---|---|---|
| LLaMA-Factory | 全栈统一微调框架 | 100+ 模型、全流程覆盖、企业级部署 | 企业团队、多卡场景 |
| Unsloth Studio | 速度与显存优化王者 | 2x 速度、70% 显存节省、零代码 | 个人开发者、单卡场景 |
对于 Java 工程师来说,两个工具都能帮你完成微调训练,产出 LoRA adapter 或 GGUF 模型。选择哪个取决于你的硬件条件和场景需求——单卡快速实验选 Unsloth,企业级全流程选 LLaMA-Factory。微调完成后,通过 vLLM 部署为 API 服务,即可无缝集成到你的 Spring 应用中。
更多推荐



所有评论(0)