引言
"Train gpt-oss, DeepSeek, Gemma, Qwen & Llama 2x faster with 70% less VRAM!"
这是「一天一个开源项目」系列的第 57 篇文章。今天介绍的项目是 Unsloth (GitHub)。
想在自己的 GPU 上微调大模型,却苦于显存不足、训练太慢?Unsloth 是开源的 LLM 微调与强化学习库 :训练速度约 2x 、显存节省约 70% 、0% 精度损失。支持 gpt-oss、DeepSeek、Qwen、Llama、Gemma、TTS 等,提供 Colab 免费 Notebook、Docker 镜像,兼容 Hugging Face transformers 与 TRL。
你将学到什么
- Unsloth 的核心能力与定位
- 微调与强化学习(GRPO、GSPO 等)支持
- 支持的模型与训练范式
- 快速开始:pip、Docker、Colab
- 与 Hugging Face + FA2 的对比
前置知识
- 对 LLM 微调有基本了解
- 了解 LoRA、QLoRA 等概念更佳(可选)
项目背景
项目简介
Unsloth 是开源的 大语言模型微调与强化学习库,基于 PyTorch 与 Triton 内核,通过内存优化与高效算子实现:训练速度约 2x、显存节省约 70%。支持全参数微调、预训练、4-bit、16-bit、FP8,支持 TTS、多模态、Embedding 等各类模型,强化学习(GRPO、GSPO、DAPO 等)显存节省约 80%。
团队
- 团队 :Unsloth AI(unsloth.ai)
- 理念:高效、易用、0% 精度损失、支持所有主流模型
项目数据
- ⭐ GitHub Stars: 54.1k+
- 🍴 Forks: 4.5k+
- 📄 License: Apache-2.0 / AGPL-3.0
- 🌐 官网 : unsloth.ai
- 📚 文档 : unsloth.ai/docs
- 💬 社区 : r/unsloth、Twitter
主要功能
核心能力
| 能力 | 说明 |
|---|---|
| 高效微调 | 2x 速度、70% 显存节省,0% 精度损失 |
| 全范式支持 | 全参数微调、预训练、4-bit、16-bit、FP8 |
| 模型覆盖 | LLM、TTS、多模态、Embedding,兼容 transformers |
| 强化学习 | GRPO、GSPO、DrGRPO、DAPO、PPO 等,80% 显存节省 |
| 导出部署 | GGUF、vLLM、SGLang、Hugging Face |
| 硬件支持 | NVIDIA、AMD、Intel GPU,Linux/WSL/Windows |
使用场景
- 个人/小团队微调:在消费级 GPU 上微调 7B、8B 模型
- 强化学习:GRPO、GSPO 等推理链/对齐训练
- 长上下文:支持更长上下文微调(如 Llama 3.1 8B 在 80GB 上可达 342K)
- 免费 Colab:无 GPU 用户可用 Colab Notebook 免费训练
快速开始
Linux / WSL:
bash
pip install unsloth
Windows :需先安装 PyTorch,详见 Windows 指南。
Docker:
bash
docker run -d -e JUPYTER_PASSWORD="mypassword" \
-p 8888:8888 -p 2222:22 \
-v $(pwd)/work:/workspace/work \
--gpus all \
unsloth/unsloth
访问 http://localhost:8888 使用 Jupyter Lab。
Colab 免费训练 :在 Unsloth Notebooks 中按模型选择对应 Notebook,如 Qwen3.5、gpt-oss、Llama 3.1 等,一键运行。
最小示例:
python
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/llama-3.1-8b-instruct",
max_seq_length=2048,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj"],
lora_alpha=16,
lora_dropout=0,
bias="none",
use_gradient_checkpointing="unsloth",
)
# 使用 SFTTrainer 训练...
支持的模型
LLM :Llama 3.1/3.2/3.3/4、Qwen2.5/Qwen3/Qwen3.5、DeepSeek、Gemma 2/3、gpt-oss、Mistral、Phi 等
多模态 :Llama 3.2 Vision、Qwen2.5-VL、Pixtral、Gemma 3 Vision 等
TTS :Orpheus、sesame/csm-1b 等
Embedding:EmbeddingGemma 等
项目优势
| 对比项 | Unsloth | Hugging Face + FA2 |
|---|---|---|
| 训练速度 | 约 2x | 1x |
| 显存占用 | 约 70% 更少 | 基准 |
| 长上下文 | 如 Llama 3.1 8B 342K(80GB) | 28K |
| 精度 | 0% 损失 | 0% 损失 |
| RL 显存 | 约 80% 更少 | 基准 |
项目详细剖析
技术要点
- Triton 内核:核心算子用 OpenAI Triton 编写,手动反向传播引擎
- 无近似:不依赖近似方法,全部精确计算
- RoPE & MLP:Triton 内核 + Padding Free + Packing,约 3x 训练加速、30% 显存节省
- MoE 支持:MoE 模型训练约 12x 加速、35% 显存节省
性能基准(示例)
| 模型 | GPU | Unsloth 速度 | Unsloth 显存 | Unsloth 上下文 | HF+FA2 上下文 |
|---|---|---|---|---|---|
| Llama 3.3 (70B) | 80GB | 2x | >75% 减少 | 13x 更长 | 1x |
| Llama 3.1 (8B) | 80GB | 2x | >70% 减少 | 12x 更长 | 1x |
目录结构
bash
unsloth/
├── unsloth/ # 核心库
├── cli/ # CLI 工具
├── studio/ # Studio 相关
├── scripts/ # 脚本
├── tests/ # 测试
└── cli.py # 入口
项目地址与资源
官方资源
- 🌟 GitHub : github.com/unslothai/u...
- 🌐 官网 : unsloth.ai
- 📚 文档 : unsloth.ai/docs
- 📓 Notebooks : unslothai/notebooks
- 🐳 Docker : unsloth/unsloth
- 💬 Reddit : r/unsloth
- 🐛 Issues : GitHub Issues
适用人群
- 需要在有限 GPU 上微调 LLM 的开发者
- 做强化学习、对齐、推理链训练的团队
- 想用 Colab 免费体验微调的学习者
- 使用 Llama、Qwen、DeepSeek、Gemma 等开源模型的用户
欢迎来我中的个人主页找到更多有用的知识和有趣的产品