大模型微调工具实战: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-FactoryUnsloth Studio
定位大而全,全场景覆盖快而省,极致优化
零代码界面✅ WebUI (LLaMA Board)✅ 浏览器 GUI
训练速度标准最高 2x 提升
显存占用标准最高 70% 节省
模型支持100+500+
微调方法SFT / DPO / PPO / KTO / ORPO / SimPOSFT / LoRA / QLoRA / FFT
部署方式vLLM / API / DockerGGUF / 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_rankLoRA rank16(默认)
--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 的操作流程更加简单:

  1. 选模型:在搜索框输入 qwen3.5,选择 0.8B / 2B / 4B / 9B / 27B 等规格
  2. 选数据集:上传准备好的数据文件,或使用 Data Recipes 自动生成
  3. 调参数:在界面中调整学习率、batch size、训练轮数
  4. 开始训练:点击“开始训练”,实时监控 Loss 曲线
  5. 导出模型:支持导出为 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 操作步骤

  1. 启动 Studio:unsloth studio -H 0.0.0.0 -p 8888
  2. 搜索并选择 Qwen3.5-4B
  3. 上传上述 JSONL 数据文件
  4. 配置参数:LoRA rank=16,learning_rate=2e-4,epochs=3
  5. 点击“开始训练”,等待约 30-60 分钟
  6. 在 Chat 页面测试微调效果
  7. 导出为 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 应用中。

Logo

一站式 AI 云服务平台

更多推荐