
Unsloth是Unsloth AI(YC S24)开源的大模型微调与RL库,Apache-2.0核心许可。通过手写Triton/CUDA内核与动态4-bit量化,单GPU训练2倍加速、显存降60-70%,支持LoRA/QLoRA/FFT/SFT/DPO/GRPO/KTO/RL,覆盖文本、视觉、音频、嵌入模型。
项目概述
Unsloth由Unsloth AI(旧金山,Y Combinator S24批次)于2023年11月开源 ,是一款通过对PyTorch/Hugging Face训练流水线瓶颈层重写来实现极致加速的开源微调框架。截至2026年8月,GitHub Star数达73.7K+ ,是大模型LoRA/QLoRA微调领域的主导库 。
核心加速原理:
Unsloth通过三个关键技术实现加速 :
- 手写Triton内核:为attention、RoPE、RMSNorm、MLP、matmul等热路径手工编写Triton与CUDA内核
- 手动反向传播:绕过PyTorch autograd开销,精确计算梯度
- 激进显存优化:4-bit基础模型量化 + 梯度检查点 + 分页优化器状态 + 融合内核,避免中间激活物化
性能数据(官网基准) :
- 单GPU最高 10倍 于FlashAttention 2的速度
- 多GPU系统最高 30倍 于FlashAttention 2的速度
- 显存占用减少 最高90%
- 与标准Hugging Face基线相比,端到端wall-clock约 2倍 加速、显存降 70%
支持的模型家族:
Llama 4/3.x、Qwen 3/2.5、Mistral、Gemma 3/2、DeepSeek-R1、Phi-4、Mixtral MoE、Cohere、Mamba等 ,以及视觉语言模型(Llama 3.2 Vision、Qwen 2.5 VL、Pixtral)、文本转语音(TTS)、嵌入(Embedding)模型。
支持的训练方法 :
- LoRA:16-bit精度,冻结基础模型,仅训练低秩适配器
- QLoRA:4-bit量化基础模型 + LoRA适配器,资源极低
- 全量微调(FFT):所有参数训练
- 继续预训练:CPT
- 强化学习:RL、GRPO(7倍更长上下文GRPO )、DPO、Online DPO、KTO、ORPO、PPO、Reward Model、PRM
- 动态4-bit量化:Unsloth自研的动态4-bit量化方法,相比标准QLoRA大幅恢复精度损失
硬件支持 :
- NVIDIA GPU:Tesla T4 到 H100 全系列
- AMD GPU:通过ROCm(Windows/WSL/Linux)
- Apple Silicon:通过MLX
- Intel GPU与CPU/Vulkan GGUF推理
许可策略(双轨制) :
- Unsloth Core(核心Python库与CLI):Apache-2.0,允许商用、修改、再分发,无营收门槛
- Unsloth Studio UI:AGPL-3.0,可选无代码Web界面,具有copyleft特性
- 付费层:多GPU分布式训练、全参数训练、30倍加速等高级特性需Pro/Enterprise许可
💡 Unsloth的独特定位:它是”训练&微调”子分类中单卡加速的标杆。与LlamaFactory、MS-SWIFT、Axolotl(综合型框架,面向终端用户)形成差异化:Unsloth是Python库优先的加速引擎,通常通过TRL的SFTTrainer/DPOTrainer等接口调用,为上层框架提供底层加速。虽然Unsloth生态包含Unsloth Studio(Web UI)、Unsloth Desktop(桌面应用)、OpenAI兼容本地API等能力,但其核心职责是”训练加速”,Studio/Desktop的推理与界面能力仅作为附加组件——不应将Unsloth整体归入”推理引擎”、”API封装”或”交互前端”子分类。Unsloth Core作为Apache-2.0的微调加速库,严格属于”训练&微调”范畴。
核心能力
- 手写Triton内核加速:attention、RoPE、RMSNorm、MLP等热路径手工优化,单GPU 2倍、多GPU 30倍于FA2
- 激进显存优化:4-bit量化 + 梯度检查点 + 分页优化器 + 融合内核,显存降60-90%
- LoRA/QLoRA训练:标准LoRA(16-bit)与QLoRA(4-bit)参数高效微调
- 全量微调与继续预训练:FFT与CPT支持,动态4-bit量化恢复精度
- 完整RL训练:RL、GRPO(7倍更长上下文)、DPO、Online DPO、KTO、ORPO、PPO、Reward Model、PRM
- 多模态微调:视觉语言模型(VLM)、TTS、Embedding模型的微调
- 长上下文训练:80GB GPU上支持342K上下文(传统方法仅28K)
- 动态4-bit量化:Unsloth自研动态量化,QLoRA精度损失大幅恢复
- TRL深度集成:与Hugging Face TRL无缝配合,SFTTrainer/DPOTrainer等即插即用
- 消费级硬件友好:8B模型QLoRA仅需6GB VRAM,RTX 3060即可训练;70B模型QLoRA单卡H100可训练
- 多硬件后端:NVIDIA/AMD/Intel GPU、Apple Silicon MLX、CPU/Vulkan GGUF推理
- 导出格式多样:GGUF、NVFP4、FP8、标准PyTorch格式
优势亮点
- 单卡微调主导库:73.7K GitHub Stars,是LoRA/QLoRA微调领域的事实标准
- Apache-2.0核心许可:核心库商用无门槛,与LlamaFactory、MS-SWIFT、Axolotl并列”最干净许可”阵营
- 极致加速:单GPU 2倍、多GPU 30倍于FA2,端到端wall-clock加速
- 显存革命:70B模型QLoRA单卡H100可训练,消费级硬件训练门槛降至6GB
- 零精度损失:所有内核为精确计算,无近似方法,训练精度与标准HF基线匹配
- 动态4-bit量化:相比标准QLoRA大幅恢复精度损失,使QLoRA成为”最易接近且有效”的训练方法
- TRL无缝集成:作为底层加速引擎,上层通过TRL的SFTTrainer/DPOTrainer调用,对现有HF生态零侵入
- 多模态全覆盖:文本、视觉、音频、嵌入模型统一微调入口
- 长上下文突破:80GB GPU支持342K上下文训练,是传统方法的12倍
- YC S24背书:Unsloth AI是Y Combinator S24批次,商业可持续性有保障
- 社区活跃:Rapid development cycle,频繁的内核与模型兼容性更新
局限
- 免费版单GPU上限:Apache-2.0核心库仅覆盖单GPU LoRA/QLoRA工作负载;多GPU分布式训练、全参数训练、30倍加速需Pro/Enterprise付费层
- Studio UI是AGPL-3.0:无代码Web界面具有copyleft特性,嵌入托管产品前需仔细审查
- 加速收益因架构而异:1.6-2倍加速与70%显存节省是上限基准(Llama 3、Mistral、Qwen 2/3、Gemma),自定义或老旧架构收益可能更小甚至无
- 非综合型框架:Unsloth是加速库而非端到端框架,数据预处理、评估、部署需配合TRL/LlamaFactory/MS-SWIFT等
- Beta版本迭代快:v0.1.800-beta(2026-08-14)等版本号为beta,四天5个release,行为可能不稳定
- Windows支持较晚成熟:v0.1.701-beta修复了Windows下载限速等问题
- 生产推理非核心:Unsloth Desktop/Studio的推理能力基于llama.cpp包装,推理速度并非其强项(10% GGUF加速为厂商数据),生产推理建议使用vLLM、SGLang
- 微调后模型许可依赖基座:Apache-2.0仅覆盖Unsloth本身,产出模型许可取决于基座模型(如Llama 3需遵守Meta社区许可)
适用人群
- 消费级硬件玩家:RTX 3060/4090用户,6GB显存即可QLoRA微调8B模型
- 单卡微调场景:单张A100/H100需要训练70B QLoRA模型的团队
- Google Colab/Kaggle免费用户:T4 GPU上8B QLoRA微调仅需6GB显存,免费额度即可运行
- 长上下文训练需求:需要342K上下文训练的团队,Unsloth显存优化是唯一可行方案之一
- TRL生态用户:已使用Hugging Face TRL进行SFT/DPO/GRPO训练的工程师,Unsloth是即插即用的加速后端
- 多模态微调:VLM、TTS、Embedding模型的统一微调加速
- 监管行业敏感数据训练:金融、医疗等数据不可出域场景,本地单卡训练的经济性最佳
- GRPO推理模型训练:7倍更长上下文GRPO支持,是DeepSeek-R1风格训练的高效选择
- 快速实验迭代:单卡2倍加速让实验反馈周期大幅缩短,从”谨慎规划”转向”短平快迭代”
安装与部署
1. 硬件需求参考
| 模型规模 | QLoRA 4-bit 显存 | LoRA 16-bit 显存 | 最低显卡 |
|---|---|---|---|
| 3B | 3.5 GB | 8 GB | 任意8GB卡 |
| 8B | 6 GB | 22 GB | RTX 3060 8GB(QLoRA) |
| 14B | 8.5 GB | 33 GB | RTX 4090 24GB(QLoRA) |
| 27B | 22 GB | 64 GB | A100 80GB(QLoRA) |
| 70B | 41 GB | 164 GB | H100 80GB(QLoRA) |
💡 消费级推荐:RTX 4090 24GB通过QLoRA可微调14B模型;8B模型QLoRA仅需6GB,GTX 1060等老卡亦可
2. 安装Unsloth Core
# pip安装 pip install unsloth # 最新特性安装 pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth_zoo # 源码安装 git clone https://github.com/unslothai/unsloth.git cd unsloth pip install -e .
3. 安装Unsloth Desktop(桌面应用)
# macOS/Linux curl -fsSL https://unsloth.ai/install.sh | sh # Windows PowerShell irm https://unsloth.ai/install.ps1 | iex
4. 启动Unsloth Studio(Web UI)
unsloth studio -H 0.0.0.0 -p 8888 # 浏览器打开 http://127.0.0.1:8888
5. QLoRA微调Llama-3.1-8B(经典25行)
from unsloth import FastLanguageModel
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
import torch
# 1. 加载4-bit量化模型(6GB显存)
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Meta-Llama-3.1-8B-Instruct",
max_seq_length = 2048,
load_in_4bit = True, # QLoRA
)
# 2. 配置LoRA适配器
model = FastLanguageModel.get_peft_model(
model,
r = 16, # LoRA rank
lora_alpha = 16,
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
use_gradient_checkpointing = "unsloth", # 长上下文+低显存
)
# 3. 加载数据集
dataset = load_dataset("yahma/alpaca-cleaned", split="train[:2000]")
dataset = dataset.map(lambda r: {"text": f"### Instruction:\n{r['instruction']}\n\n### Response:\n{r['output']}"})
# 4. TRL SFTTrainer训练
trainer = SFTTrainer(
model = model,
train_dataset = dataset,
args = SFTConfig(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
warmup_steps = 10,
max_steps = 60,
learning_rate = 2e-4,
fp16 = not torch.cuda.is_bf16_supported(),
bf16 = torch.cuda.is_bf16_supported(),
logging_steps = 1,
output_dir = "outputs",
optim = "adamw_8bit",
seed = 3407,
),
)
trainer.train()
# 5. 保存LoRA适配器
model.save_lora("lora_model")
6. DPO偏好对齐(通过TRL集成)
from unsloth import FastLanguageModel
from trl import DPOTrainer, DPOConfig
from datasets import load_dataset
# 加载模型(同QLoRA配置)
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Qwen3-0.6B",
load_in_4bit = True,
)
model = FastLanguageModel.get_peft_model(
model, r=16, lora_alpha=16,
target_modules=["q_proj","k_proj","v_proj","o_proj"],
)
# DPO训练
dpo_dataset = load_dataset("trl-lib/ultrafeedback_binarized", split="train")
trainer = DPOTrainer(
model = model,
train_dataset = dpo_dataset,
args = DPOConfig(
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
learning_rate = 1e-4,
bf16 = True,
),
)
trainer.train()
7. GRPO训练(7倍更长上下文)
from unsloth import FastLanguageModel
from trl import GRPOTrainer, GRPOConfig
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "unsloth/Qwen2.5-7B-Instruct",
load_in_4bit = True,
max_seq_length = 8192, # 长上下文
)
model = FastLanguageModel.get_peft_model(
model, r=32, lora_alpha=64,
target_modules=["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"],
)
# GRPO配置
grpo_config = GRPOConfig(
per_device_train_batch_size = 1,
gradient_accumulation_steps = 8,
learning_rate = 1e-6,
bf16 = True,
)
trainer = GRPOTrainer(
model = model,
args = grpo_config,
train_dataset = grpo_dataset,
)
trainer.train()
8. 启用样本打包(3-5倍加速)
from trl import SFTConfig
training_args = SFTConfig(
per_device_train_batch_size = 1,
max_length = 4096,
packing = True, # 启用无填充打包,最高5倍加速
)
9. 导出模型
# 合并LoRA到基础模型
model.save_pretrained_merged("merged_model", tokenizer, save_method="merged_16bit")
# 导出GGUF格式(供llama.cpp/Ollama使用)
model.save_pretrained_gguf("qwen-7b-unsloth", tokenizer, quantization_method="q4_k_m")
# 导出NVFP4格式
model.save_pretrained_merged_nvfp4("model_nvfp4")
10. 部署前必检清单
- 确认仓库位于
github.com/unslothai/unsloth(官方) - 许可:Core库Apache-2.0(商用友好);Studio UI AGPL-3.0(具copyleft特性)
- 免费Apache-2.0核心库仅覆盖单GPU LoRA/QLoRA;多GPU/全参训练/30倍加速需Pro/Enterprise付费层
- 消费级硬件推荐QLoRA 4-bit;8B模型仅需6GB显存
- 与TRL深度集成,通过SFTTrainer/DPOTrainer/GRPOTrainer调用
- 生产环境推理部署需配合vLLM、SGLang、llama.cpp等独立工具——Unsloth Desktop/Studio的推理基于llama.cpp包装,非其强项
- 最新beta版本(v0.1.800-beta,2026-08-14)迭代快,生产环境建议锁定稳定版本
相关导航


TorchTune

Colossal-AI

LlamaFactory

TRL

PEFT

veRL

