Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: Unsloth 是一款开源的大语言模型微调工具,支持 Llama-3、Mistral、Phi-4 等主流 LLM,通过优化计算步骤和手写 GPU 内核,显著提升训练速度并减少内存使用。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


💥 「你的3090还在吃灰?开源核弹让AI训练提速32倍:5小时任务缩至9分钟,Windows照样起飞!」

大家好,我是蚝油菜花。你是否也经历过——

  • 🖥️ 盯着屏幕看loss曲线3小时,结果OOM报错一切归零
  • 💸 为微调模型租8卡A100,一周工资全喂了云平台
  • 📉 用传统工具训练Llama3,显存占用直接爆掉16G显卡...

今天要炸场的 Unsloth ,正是开发者们对抗算力霸凌的终极武器!这个开源训练加速器,通过手写GPU内核+动态4bit量化,在3090上就能跑70B模型的长上下文训练。实测显示:

  • ✅ 单卡训练速度提升10倍(HuggingFace对比)
  • ✅ 多卡并行效率暴涨32倍
  • ✅ 内存占用直降70% (支持Windows WSL!)

更疯狂的是,它刚刚宣布支持Llama-3全系列——接下来我将带大家体验如何用免费资源微调属于你的AI大模型!

🚀 快速阅读

Unsloth 是一款用于大语言模型(LLM)微调的开源工具,旨在通过优化计算步骤和 GPU 内核,大幅提升模型训练速度并减少内存使用。

  1. 核心功能:支持多种主流 LLM,如 Llama-3、Mistral、Phi-4 等;在单 GPU 上实现最高 10 倍、多 GPU 上最高 32 倍的加速效果,同时内存使用减少 70% 以上。
  2. 技术原理:通过手动优化计算步骤、手写 GPU 内核和动态量化技术,显著提升训练和推理的速度和性能。

Unsloth 是什么

Unsloth

Unsloth 是一款开源的大语言模型(LLM)微调工具,基于优化计算步骤和 GPU 内核,显著提升模型训练速度并减少内存使用。它支持多种流行的大型语言模型(LLM),如 Llama-3、Mistral、Phi-4 等,在单 GPU 上实现最高 10 倍、多 GPU 上最高 32 倍的加速效果,同时内存使用减少 70% 以上。用户可以在 Google Colab 或 Kaggle Notebooks 上快速体验。

Unsloth 的主要功能

  • 高效微调:加速训练,基于优化计算步骤和手写 GPU 内核,在单 GPU 上可实现比传统方法快 10 倍的训练速度,在多 GPU 系统上速度提升可达 32 倍。
  • 内存优化:在微调过程中,将内存使用量减少 70% 甚至更多,在有限的硬件资源下训练更大的模型。
  • 支持多种模型:支持多种流行的大型语言模型(LLM),如 Llama-3、Mistral、Phi-4、Qwen 2.5 和 Gemma 等。
  • 动态量化:引入动态 4 位量化技术,在不显著增加显存使用的情况下,提高模型的准确性和性能。
  • 长上下文支持:支持长上下文训练,例如在 Llama 3.3(70B)模型上,在 80GB 的 GPU 上实现长达 89K 的上下文长度,远超传统方法。
  • 多平台兼容:支持 Linux 和 Windows(通过 WSL)操作系统,且与 Hugging Face 的 TRL、Trainer 等工具无缝集成。

Unsloth 的技术原理

  • 手动优化计算步骤:手动推导和优化计算密集型的数学步骤,减少不必要的计算开销。例如,在神经网络的反向传播过程中,基于自定义的高效实现,避免传统框架中存在的冗余计算。
  • 手写 GPU 内核:用 OpenAI 的 Triton 语言编写专门的 GPU 内核,内核针对特定的计算任务进行高度优化。基于这种方式,充分用 GPU 的并行计算能力,显著提升训练和推理的速度。
  • 动态量化:引入动态量化技术,特别是在 4 位量化方面进行优化。动态量化根据模型的实际需求,动态地选择是否对某些参数进行量化,在不显著增加显存使用的情况下,提高模型的准确性和性能。

如何运行 Unsloth

1. 安装环境

Conda 安装
conda create --name unsloth_env \
    python=3.11 \
    pytorch-cuda=12.1 \
    pytorch cudatoolkit xformers -c pytorch -c nvidia -c xformers \
    -y
conda activate unsloth_env

pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
pip install --no-deps trl peft accelerate bitsandbytes
Pip 安装
pip install --upgrade pip
pip install "unsloth[cu121-torch240] @ git+https://github.com/unslothai/unsloth.git"

2. 使用示例

以下是一个简单的代码示例,展示了如何使用 Unsloth 微调一个 Llama 模型:

from unsloth import FastLanguageModel 
from trl import SFTTrainer
from transformers import TrainingArguments
from datasets import load_dataset

# 加载数据集
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files={
   "train": url}, split="train")

# 初始化模型和分词器
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/llama-3-8b-bnb-4bit",
    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",
    random_state=3407,
    max_seq_length=2048,
)

# 初始化训练器
trainer = SFTTrainer(
    model=model,
    train_dataset=dataset,
    dataset_text_field="text",
    max_seq_length=2048,
    tokenizer=tokenizer,
    args=TrainingArguments(
        per_device_train_batch_size=2,
        gradient_accumulation_steps=4,
        warmup_steps=10,
        max_steps=60,
        fp16=not is_bfloat16_supported(),
        bf16=is_bfloat16_supported(),
        logging_steps=1,
        output_dir="outputs",
        optim="adamw_8bit",
        seed=3407,
    ),
)

# 开始训练
trainer.train()

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
16天前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
113 2
|
2月前
|
人工智能 算法 开发者
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
236 10
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
|
1月前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
320 2
|
2月前
|
负载均衡 并行计算 异构计算
大模型训练推理优化(5): FlexLink —— NVLink 带宽无损提升27%
本期我们将介绍蚂蚁集团ASystem团队在大模型通信优化上的新工作FlexLink,旨在通过动态聚合多路通信(NVLink,PCIe,RDMA),在H800等典型硬件上将典型通信算子如(AllReduce, All Gather)吞吐提升最高达27%,尤其适合大模型长序列推理(Prefill阶段),及训练等通信密集的带宽bound场景。方案对精度无影响。
|
27天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1724 89
|
28天前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
783 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
23天前
|
机器学习/深度学习 算法 数据可视化
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
推理型大语言模型兴起,通过先思考再作答提升性能。本文介绍GRPO等强化学习算法,详解其原理并动手用Qwen2.5-3B训练推理模型,展示训练前后效果对比,揭示思维链生成的实现路径。
188 1
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
|
1月前
|
机器学习/深度学习 算法
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
本文介绍了一种改进的监督微调方法——Proximal Supervised Fine-Tuning (PSFT),旨在解决传统SFT易过拟合、泛化能力差及导致“熵坍塌”的问题。受PPO强化学习算法启发,PSFT通过引入参数更新的稳定性机制,防止模型在训练中变得过于确定,从而提升探索能力与后续强化学习阶段的表现。实验表明,PSFT在数学推理、模型对齐及泛化能力方面均优于传统SFT。
131 3
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
|
2月前
|
编解码 自然语言处理
通义万相开源14B数字人Wan2.2-S2V!影视级音频驱动视频生成,助力专业内容创作
今天,通义万相的视频生成模型又开源了!本次开源Wan2.2-S2V-14B,是一款音频驱动的视频生成模型,可生成影视级质感的高质量视频。
563 29

热门文章

最新文章