大模型微调工具实战: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 安装(最简单)

bash 复制代码
pip install llamafactory

方式二:源码安装

bash 复制代码
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

方式三:Docker 部署(GPU 版本)

yaml 复制代码
# 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]

启动服务:

bash 复制代码
docker-compose up -d

访问 http://localhost:7860 即可看到 WebUI 界面。

2.2 Unsloth Studio 安装

方式一:一键脚本安装(macOS / Linux / WSL)

bash 复制代码
curl -fsSL https://unsloth.ai/install.sh | sh

方式二:Windows PowerShell

powershell 复制代码
irm https://unsloth.ai/install.ps1 | iex

安装完成后启动:

bash 复制代码
unsloth studio -H 0.0.0.0 -p 8888

浏览器打开 http://localhost:8888,首次登录需设置密码。

方式三:Unsloth Desktop 桌面应用

Unsloth 提供原生桌面应用,可直接从官网下载安装。

三、数据准备

3.1 LLaMA-Factory 数据格式

LLaMA-Factory 支持两种主流数据格式:

Alpaca 格式(单轮指令):

json 复制代码
[
  {
    "instruction": "请把以下技术术语翻译成商务用简洁中文。",
    "input": "Database Connection Pool",
    "output": "数据库连接池"
  }
]

ShareGPT 格式(多轮对话):

json 复制代码
[
  {
    "conversations": [
      {"from": "human", "value": "订单 MT20250101-001 到哪了?"},
      {"from": "gpt", "value": "您好,您的订单目前状态为已发货。"}
    ]
  }
]

数据文件放入 data/ 目录后,需要在 data/dataset_info.json 中注册自定义数据集。

3.2 Unsloth 数据格式

Unsloth 支持多种数据格式,推荐使用标准的 ChatML 格式(messages 格式):

json 复制代码
{"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 命令行训练

bash 复制代码
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 的操作流程更加简单:

  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 格式):

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 服务:

bash 复制代码
API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml

启动后,Java 应用可以通过标准 OpenAI SDK 调用:

java 复制代码
@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 等本地推理工具:

bash 复制代码
# 导出为 GGUF(在 Unsloth Studio 界面中操作,或使用代码)
model.save_pretrained_gguf(
    "./output",
    tokenizer,
    quantization_method="q4_k_m"  # 4-bit 量化
)

导出后的 GGUF 文件可直接导入 Ollama:

bash 复制代码
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 应用中。

相关推荐
程序猿编码3 小时前
扔掉 Python!纯 C++ 本地跑扩散 TTS,GGML 加持,支持 RK3588 NPU 加速
c++·计算机视觉·大模型·transformer·rk3588·推理·ggml
是枚小菜鸡儿吖3 小时前
Windows 和 iPhone 怎么互传文件?用 PairDrop 搭一个自己的浏览器传输入口
服务器·人工智能·大模型
程序猿编码20 小时前
两张 3090 扛 27B:Qwen3.8-27B 大模型 DFlash2 加速版生产级落地
开发语言·gpt·深度学习·神经网络·大模型·qwen
来两个炸鸡腿21 小时前
【Datawhale2609】算子开发实战 task01-熟悉沐曦GPU
人工智能·学习·大模型
小锋学长生活大爆炸1 天前
【工具】4GB 显存也能跑 70B 大模型 | AirLLM
大模型·部署·教程
VIP_CQCRE1 天前
在 Visual Studio 里接入 Ace Data Cloud:用 LMLocal 打通 OpenAI 兼容 AI 编程体验
大模型·openai·ai编程·visual studio·ace data cloud
thesky1234561 天前
评测驱动开发(EDD):让 AI 应用“说得清好坏“的方法论
人工智能·ai·大模型
️公子1 天前
DeepSeek V4.1 Flash 今日接管 Pro 流量:552B MoE + 非对称架构,Agent 推理成本怎么砍?
架构·开源·大模型·api·agent·deepseek
Web3&Basketball1 天前
ChatGPT 路由自证:跨客户端实测对照
python·大模型·agent·推理·推理优化