事情的起点很简单:我想在自己的显卡上微调一个开源大模型,结果模型还没训起来,先被一行
CUDA out of memory劝退了。
先解释下微调(fine-tuning):拿一个已经训练好的开源大模型,用你自己的数据再训练一小会儿,让它学会干你的活——比如按你们公司的格式写周报、回答你产品的问题。打个比方,这就像招了个有十年经验的老司机(预训练模型),不用从科目一教起,只需要带他认认你们公司的路(微调)。
想法很美好,现实是第一道坎不在技术,在硬件。7B 的模型(70 亿参数,在开源模型里算"小个子")全参数训练,显存起步就要几十 GB,而大多数人的显卡是 8GB、12GB 的消费级卡。
后来我在 GitHub 上刷到了Unsloth,README 第一句话就写着:
Train gpt-oss, DeepSeek, Gemma, Qwen & Llama 2x faster with 70% less VRAM!
翻译过来:训练快 2 倍,显存省 70%。第一反应是吹牛,但把它的文档和社区讨论翻了一遍之后,我发现这组数据它已经挂了很久,从社区反馈来看也没人翻过车。这篇文章就把这个项目讲清楚:它是什么、凭什么、怎么用、适合谁。
一分钟了解 Unsloth
Unsloth 是一个开源的大模型微调与强化学习库。它自己不造模型,干的事只有一件:把"训练大模型"这件事变得更省、更快。
再打个比方:训练模型就像搬家,家当(模型参数)是固定的。普通训练方式是把所有东西摊开来一件件搬,桌面(显存)不够大就摆不下;Unsloth 做的是把打包方式和搬运路线全部优化了一遍——活还是那些活,结果一样,但占的台面小了、速度也快了。
关键信息我整理成一张表(数据来自 GitHub,截至 2026 年 10 月):
| 项目 | 信息 |
|---|---|
| 定位 | 大模型微调 + 强化学习库 |
| 核心数据 | 训练约 2 倍快、显存省约 70%、官方称精度零损失 |
| 开源协议 | Apache-2.0 |
| GitHub | github.com/unslothai/unsloth(77k+ Star、7k+ Fork) |
| 官网 / 文档 | unsloth.ai / unsloth.ai/docs |
| 硬件支持 | NVIDIA / AMD / Intel GPU,Linux、WSL、Windows |
图源:Unsloth 官方仓库。对,吉祥物就是树懒——一个把"快"当卖点的项目用树懒当吉祥物,多少有点行为艺术。
凭什么快?先说结论:不靠"近似"
很多人第一反应:省 70% 显存、快 2 倍,是不是偷偷把精度砍了?
官方的说法是:不依赖任何近似方法,所有计算都是精确计算,只是把底层算子(可以理解为训练时的"基础动作")重写了。它把核心算子用Triton(OpenAI 开源的 GPU 编程语言,用来手写高性能计算内核)重新实现,还带一套手动推导的反向传播引擎(反向传播就是训练时"根据错误调整参数"的那一步,也是最吃显存的环节之一)。
几个我印象比较深的数字,均来自官方 README 和文档:
- RoPE & MLP 内核优化 + Padding Free + Packing:训练约 3 倍加速、显存再省 30%(RoPE 是大模型处理文字位置信息的机制,MLP 是模型里的基础网络层,看不懂没关系,知道是"底层提速"就行)
- MoE 模型(Mixture of Experts,模型里有一堆"专家"网络,每次只用其中几个,DeepSeek 就是这类)训练约12 倍加速、省 35% 显存
- 强化学习场景显存省约 80%,上下文长度最高能做到其他方案的 7 倍
跟常见方案的对比(数据为官方基准):
| 对比项 | Unsloth | Hugging Face + FA2* |
|---|---|---|
| 训练速度 | 约 2x | 1x(基准) |
| 显存占用 | 省约 70% | 基准 |
| 强化学习显存 | 省约 80% | 基准 |
| 长上下文 | Llama 3.1 8B 可到 342K(80GB 卡) | 约 28K |
| 精度 | 官方称 0% 损失 | 0% 损失 |
*FA2 = FlashAttention 2,Hugging Face 生态里常用的省显存注意力实现,这里当对照组。
当然,官方基准多少会挑自己好看的角度,但"同样的模型、同样的配置,Unsloth 更快更省"这个大方向,从社区反馈来看争议不大。
支持哪些模型
覆盖得挺全,主流开源模型基本都有:
- 文本 LLM:Llama 3.x/4、Qwen 系列、DeepSeek、Gemma、gpt-oss、Mistral、Phi 等
- 多模态(能看图的模型):Llama 3.2 Vision、Qwen2.5-VL、Gemma 3 Vision、Pixtral 等
- TTS(文字转语音):Orpheus、sesame/csm-1b 等
- Embedding(把文字变成向量、做检索/RAG 用的模型):EmbeddingGemma 等
- 最近还加了对扩散模型(文生图那类)的运行和训练支持
训练范式上,全参数微调、预训练、LoRA(只训练插在模型上的少量"外挂"参数,不动模型本体)、QLoRA(把模型压到 4-bit 再做 LoRA,显存进一步打折)、4-bit / 16-bit / FP8 都支持。
怎么上手:三种姿势
姿势一:pip 安装(有显卡的看这里)
官方现在推荐用 uv(一个更快的 Python 包管理器)来装:
curl -LsSf https://astral.sh/uv/install.sh | sh uv venv unsloth_env --python 3.13 source unsloth_env/bin/activate uv pip install unsloth --torch-backend=auto懒得装 uv 的话,直接pip install unsloth也可以。Windows 用户建议先装好 PyTorch 再装它,官方文档里有专门的 Windows 指南。
姿势二:Docker(不想折腾环境)
官方提供现成镜像,一条命令起来,自带 JupyterLab(浏览器里的交互式编程环境):
docker run -d --name unsloth --gpus all --ipc=host \ -p 8000:8000 -p 8888:8888 \ -v "$PWD":/workspace/host \ unsloth/unsloth然后浏览器打开http://localhost:8888就能用。AMD 显卡有单独的镜像unsloth/unsloth-rocm。
姿势三:Colab 白嫖(没显卡的看这里)
这是我觉得最贴心的部分:官方在 unslothai/notebooks 放了整套免费 Notebook(可以理解为"写好的训练脚本,点开就能跑"),覆盖 gpt-oss、Qwen、Llama、Gemma 等,每个都标了加速比和显存节省幅度。Google Colab 免费版就能跑,不用写代码,跟着 notebook 一步步点运行就行。
训练代码长什么样
一个最小的 LoRA 微调示例(来自官方文档,我加了注释):
from unsloth import FastLanguageModel import torch # 加载模型:4-bit 量化加载,8B 模型大约只占 6GB 显存 model, tokenizer = FastLanguageModel.from_pretrained( model_name="unsloth/llama-3.1-8b-instruct", max_seq_length=2048, load_in_4bit=True, ) # 给模型挂上 LoRA "外挂" 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", # Unsloth 的显存优化开关 ) # 后面接 Hugging Face 的 SFTTrainer 就能开始训练两个小细节:模型名用unsloth/xxx开头的版本(他们针对自己的内核做过优化)效果最好;训练完可以导出成GGUF(llama.cpp 生态的模型格式,方便在本地跑),也可以直接推到 Hugging Face。
强化学习也能跑
如果你的目标是做推理链(让模型先"想"再答)、对齐(让模型输出更符合人类偏好)这类训练,Unsloth 支持 GRPO、GSPO、DrGRPO、DAPO、DPO、PPO 这些主流强化学习方法。
一句话解释GRPO:让模型对同一个问题生成多个答案,好的加分、差的减分,靠"奖励"迭代着学——DeepSeek R1 用的是这个思路。
官方给的数字是 RL 场景显存省约 80%,而且消费级显卡上就能跑 FP8 和视觉类的强化学习。
现在还有图形界面了
这次翻仓库我还注意到一件事:Unsloth 已经不只是个 Python 库了——它出了个叫Unsloth Studio的本地界面,能跑模型也能训模型,支持 GGUF、MLX 等格式,等于把"装环境、写脚本"这一步也替你省了。
图源:Unsloth 官方仓库。训练完的模型可以一键导出,直接用 ollama 之类的工具在本地跑起来。
适合谁 / 不适合谁
适合:
- 想在消费级显卡(8G/12G/24G)上微调 7B~70B 模型的个人开发者和小团队
- 做强化学习、推理链训练,但被显存卡住的团队
- 有长上下文微调需求的
- 完全没显卡、想先用 Colab 免费体验一把的学习者
不适合 / 注意:
- 想从零预训练一个基座模型——那是另一个量级的事
- 需要极致自定义训练流程的团队:它封装得很深,想改底层细节不如自己写
- 训练逻辑里依赖大量自定义 CUDA 算子的场景,动手前先确认兼容性
名词速查表
| 名词 | 一句话解释 |
|---|---|
| 微调(fine-tuning) | 拿现成大模型用自己的数据再训练,让它干你的活 |
| 显存(VRAM) | 显卡的"内存",训练时放模型和数据的地方,不够就报错 |
| LoRA | 只训练插在模型上的少量"外挂"参数,不动模型本体,省显存 |
| QLoRA | 把模型压到 4-bit 再做 LoRA,显存再砍一截 |
| 量化(4-bit / FP8) | 用更低的数字精度存模型参数,体积和显存占用都变小 |
| GRPO / GSPO | 强化学习方法,靠"奖励"让模型自己迭代变好 |
| MoE | 模型里有一堆"专家"网络,每次只用其中几个,省算力 |
| GGUF | llama.cpp 生态的模型文件格式,方便本地部署 |
| Triton | OpenAI 开源的 GPU 编程语言,用来手写高性能算子 |
| FA2 | FlashAttention 2,一种省显存的注意力实现 |
| Colab | Google 的免费云端 Python 环境,白嫖 GPU 用的 |
相关链接
- GitHub:https://github.com/unslothai/unsloth
- 官网:https://unsloth.ai
- 文档:https://unsloth.ai/docs
- 免费 Notebook:https://github.com/unslothai/notebooks
- Docker 镜像:https://hub.docker.com/r/unsloth/unsloth
- 社区:reddit.com/r/unsloth