Chapter 09

多 GPU:Unsloth Pro / 社区方案

📌 commit 1cf145c070ea OSS 单卡 + Pro 多卡的取舍

Unsloth 开源版只支持单 GPU,这是它最大的限制,也是它商业化的根基。本章讲清楚单卡的能力边界、 Unsloth Pro 的多卡方案、以及社区的"民间多卡 patch"分别能做什么。

9.1单卡能做到什么程度

把前面几章的优化全开后,单卡 24G 4090 能训:

任务模型方法
SFT Llama-3-70B QLoRA r=16, seq=2K
SFT Llama-3-13B QLoRA r=64, seq=8K
SFT Llama-3-8B QLoRA r=64, seq=32K
DPO Llama-3-8B QLoRA r=16
GRPO (v2026) Qwen3-4B QLoRA + vLLM
VLM SFT Llama-3.2-11B-VisionQLoRA

对于个人 / 小团队,单卡训练 70B 是近年来最革命性的能力。这就是 Unsloth 在 Reddit 火爆的原因。

9.2为什么开源版只支持单卡

不是技术问题,是商业决策。Unsloth 团队的逻辑:

  1. 单卡场景覆盖 80% 的个人 / 学生 / 小公司用户;
  2. 对企业用户(多卡 / 多机),收费版才能维持团队运转;
  3. 多卡 LoRA 需要的 patch 工作量比单卡大,团队精力有限。

这种"OSS 单卡 + 商业版多卡"模式在工具类开源项目里很常见(类似 PostgresPro / Redis Stack 等)。

9.3Unsloth Pro:多卡 / 多机

能力OSSPro
单 GPU
多 GPU 单节点(DDP)
多机训练
DeepSpeed ZeRO 集成
FSDP 集成
全参微调(大模型) 极限 ✅ 顺畅
支持服务(SLA) 社区 Discord付费支持
价格 免费 按企业谈

Pro 不是公开下载,需要通过 unsloth.ai/contact 联系。 官方有 case study:某团队在 Pro 上 8 × H100 训 Llama-3-70B 全参,吞吐比纯 HF + DeepSpeed 快 3×。

9.4社区"民间多卡 patch"

开源社区一直有"想白嫖多卡加速"的需求。常见做法:

方案 A:DDP + Unsloth(不官方但能跑)

# 假设有 2 张卡
torchrun --nproc_per_node=2 train.py

# train.py 里
from unsloth import FastLanguageModel
import os

# 在 Unsloth 之前设这些环境变量
os.environ["UNSLOTH_DISABLE_AUTO_GPU_INIT"] = "1"

model, tokenizer = FastLanguageModel.from_pretrained(...)
# ... 正常训练

问题:

方案 B:FSDP + Unsloth(社区 fork)

Issue 区有不少社区 fork 加上 FSDP 支持,质量参差。用之前看 issue 反馈

方案 C:LLaMA-Factory + DeepSpeed + Unsloth

LLaMA-Factory 已经支持 DeepSpeed,把 model 用 Unsloth 加载后再走 DeepSpeed:

# LLaMA-Factory YAML
use_unsloth: true
deepspeed: examples/deepspeed/ds_z3_config.json

这条路在 LLaMA-Factory issue 区被验证可用,但有偶发的 ZeRO-3 + Unsloth kernel 冲突,需要时刻关注上游版本。

9.5"何时单卡够用、何时该换 Pro"

诉求建议
个人 / 学生 / Colab 单卡 + Unsloth OSS
初创团队 1-2 卡 单卡 + OSS;够用
小公司 8 卡服务器 OSS 单卡用其中一张;或 LLaMA-Factory + DeepSpeed
企业级 16+ 卡训练 Unsloth Pro 或换 Megatron / verl
千亿模型从零预训练 Megatron-LM;Unsloth 不是这种 scale 的工具
R1 风格大规模 RLHF verl / OpenRLHF

9.6多卡 LoRA 的另一条路:accelerate

不用 Unsloth、但又想保留 LoRA 的"省显存",可以用纯 HuggingFace stack:

accelerate launch --multi_gpu --num_processes=2 train.py

+ train.py 内用 HF + PEFT + bitsandbytes:

所以单卡 vs 多卡 LoRA 是真实 tradeoff,看你的瓶颈是显存还是吞吐。

9.7多卡推理(也很重要)

Unsloth 训完的模型用 vLLM 多卡 serve:

# 训完导出 merged 模型
model.save_pretrained_merged("merged", tokenizer, save_method="merged_16bit")

# vLLM 多卡 serve
vllm serve ./merged --tensor-parallel-size 4 --port 8000

这一条线没有任何限制——Unsloth 训出的模型是标准 HF 格式,任何推理引擎都能用。

9.8Unsloth Studio:本地 GUI

v2026 推出 Unsloth Studio(仓库 studio/ 目录):

对 GUI 用户友好,但仍然单卡限制

9.9这章带走的