Home
Login
unslothai/unsloth

Unsloth:大语言模型高效微调与强化学习工具 - 训练速度提升2倍,内存使用减少70%

Apache-2.0Python 40.5kunslothai Last Updated: 2025-06-12
https://github.com/unslothai/unsloth

Unsloth 项目详细介绍

项目概述

Unsloth 是一个专注于大语言模型(LLM)微调和强化学习的开源工具,能够让 Qwen3、Llama 4、DeepSeek-R1、Gemma 3、TTS 等模型的训练速度提升2倍,同时减少70%的显存使用。该项目旨在让AI技术更加普及和易于使用,为研究人员和开发者提供高效的模型训练解决方案。

主要特点

  • 高性能优化:训练速度提升2倍,显存使用减少70%
  • 零精度损失:不使用近似方法,保证训练精度
  • 广泛兼容性:支持多种主流LLM模型和训练方法
  • 用户友好:提供初学者友好的笔记本和详细文档

核心功能与特性

1. 模型支持

Unsloth 支持众多主流的大语言模型,包括:

  • Llama 系列:Llama 4、Llama 3.3 (70B)、Llama 3.2、Llama 3.1
  • Qwen 系列:Qwen 3 (14B)、Qwen 2.5 (包括 Coder 模型)
  • Gemma 系列:Gemma 3、Gemma 2 (9B/27B)
  • 其他模型:Phi-4 (14B)、Mistral Small (22B)、DeepSeek-R1 等

2. 训练方法

微调(Fine-tuning)

  • 支持全参数微调、预训练
  • 4bit、8bit、16bit 量化训练
  • QLoRA 和 LoRA 微调
  • 动态4bit量化技术

强化学习

  • DPO(Direct Preference Optimization)
  • GRPO(长上下文推理)
  • PPO(Proximal Policy Optimization)
  • 奖励模型训练
  • 在线DPO

3. 技术优势

性能优化

  • 所有内核使用 OpenAI 的 Triton 语言编写,手动反向传播引擎
  • 0% 精度损失 - 无近似方法 - 全部精确计算
  • 支持长上下文训练(最长支持342K上下文)

内存优化

  • 动态4bit量化技术,精度提升同时仅增加<10%显存使用
  • 梯度检查点优化,进一步减少30%内存使用
  • 支持4倍更长的上下文窗口

4. 硬件兼容性

  • GPU要求:支持2018年以来的NVIDIA GPU,最低CUDA能力7.0
  • 支持型号:V100、T4、Titan V、RTX 20/30/40系列、A100、H100、L40等
  • 操作系统:Linux 和 Windows
  • 特殊支持:GTX 1070、1080可运行但速度较慢

5. 集成与生态

框架集成

  • 🤗 Hugging Face TRL库官方支持
  • 支持 Trainer、Seq2SeqTrainer
  • 兼容 PyTorch 原生代码

部署选项

  • 导出为 GGUF 格式
  • 支持 Ollama、vLLM 部署
  • Hugging Face 模型中心集成

安装使用

快速安装

Linux 设备推荐使用 pip 安装:

pip install unsloth

基本使用示例

from unsloth import FastLanguageModel
import torch
from trl import SFTTrainer, SFTConfig

# 加载模型
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-4B-it",
    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"],
    lora_alpha = 16,
    use_gradient_checkpointing = "unsloth",
)

# 开始训练
trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    # 其他训练参数
)
trainer.train()

性能基准测试

训练效率对比

模型 显存 Unsloth速度 显存减少 上下文长度 Hugging Face + FA2
Llama 3.3 (70B) 80GB 2倍 >75% 13倍更长 1倍
Llama 3.1 (8B) 80GB 2倍 >70% 12倍更长 1倍

长上下文支持

在相同硬件条件下,Unsloth 支持的上下文长度远超传统方法:

  • 8GB GPU:Unsloth 支持2,972 tokens,传统方法OOM
  • 24GB GPU:Unsloth 支持78,475 tokens,传统方法仅5,789 tokens
  • 80GB GPU:Unsloth 支持342,733 tokens,传统方法仅28,454 tokens

最新功能更新

近期重要更新

  1. Llama 4 支持:Meta最新的Scout和Maverick模型
  2. 全面支持:FFT、所有模型(Mixtral、MOE、Cohere、Mamba)和所有训练算法
  3. 视觉模型:支持Llama 3.2 Vision、Qwen 2.5 VL、Pixtral等
  4. 推理优化:2倍更快的推理速度

特色功能

  • Chat界面:提供交互式聊天界面
  • 梯度累积修复:发现并修复了梯度累积bug
  • Cut Cross Entropy:与Apple合作添加的优化技术
  • 多语言持续预训练:支持韩语等其他语言

社区与生态

文档与支持

  • 官方文档docs.unsloth.ai
  • GitHub仓库:活跃的开源社区
  • 社交媒体:Twitter/X 官方账号
  • 社区论坛:Reddit页面交流

学习资源

  • 初学者友好的Colab笔记本
  • 详细的安装和使用指南
  • Kaggle竞赛专用笔记本
  • 完整的API文档

总结

Unsloth 是当前最优秀的开源LLM微调工具之一,它通过创新的优化技术实现了训练速度和内存效率的显著提升。无论是研究人员还是工业界开发者,都能从Unsloth的高效训练能力中受益。项目的持续更新和活跃的社区支持,使其成为LLM微调领域的重要选择。