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

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
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
AI 代码解读
Pip 安装
pip install --upgrade pip
pip install "unsloth[cu121-torch240] @ git+https://github.com/unslothai/unsloth.git"
AI 代码解读

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 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
3
3
0
341
分享
相关文章
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
Omnitool 是一款开源的 AI 桌面环境,支持本地运行,提供统一交互界面,快速接入 OpenAI、Stable Diffusion、Hugging Face 等主流 AI 平台,具备高度扩展性。
391 94
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
Gemma 3 是谷歌最新推出的开源多模态AI模型,支持超过35种语言,具备文本、图像及短视频处理能力,提供四种模型尺寸,优化单GPU性能,适用于多种AI应用场景。
224 8
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
Proxy Lite 是一款开源的轻量级视觉语言模型,支持自动化网页任务,能够像人类一样操作浏览器,完成网页交互、数据抓取、表单填写等重复性工作,显著降低自动化成本。
249 11
Proxy Lite:仅3B参数的开源视觉模型!快速实现网页自动化,支持在消费级GPU上运行
MiniMind:2小时训练出你的专属AI!开源轻量级语言模型,个人GPU轻松搞定
MiniMind 是一个开源的超小型语言模型项目,帮助开发者以极低成本从零开始训练自己的语言模型,最小版本仅需25.8M参数,适合在普通个人GPU上快速训练。
222 10
MiniMind:2小时训练出你的专属AI!开源轻量级语言模型,个人GPU轻松搞定
COMET:字节跳动开源MoE训练加速神器,单层1.96倍性能提升,节省百万GPU小时
COMET是字节跳动推出的针对Mixture-of-Experts(MoE)模型的优化系统,通过细粒度的计算-通信重叠技术,显著提升分布式训练效率,支持多种并行策略和大规模集群部署。
55 9
阿里万相重磅开源,人工智能平台PAI一键部署教程来啦
阿里云视频生成大模型万相2.1(Wan)重磅开源!Wan2.1 在处理复杂运动、还原真实物理规律、提升影视质感以及优化指令遵循方面具有显著的优势,轻松实现高质量的视频生成。同时,万相还支持业内领先的中英文文字特效生成,满足广告、短视频等领域的创意需求。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署阿里万相重磅开源的4个模型,可获得您的专属阿里万相服务。
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
NVIDIA-Ingest 是英伟达开源的智能文档提取工具,支持 PDF、Word、PPT 等多种格式,提供并行处理和 GPU 加速,适用于企业内容管理和生成式应用。
147 18
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
AutoTrain:Hugging Face 开源的无代码模型训练平台
AutoTrain 是 Hugging Face 推出的开源无代码模型训练平台,旨在简化最先进模型的训练过程。用户无需编写代码,只需上传数据即可创建、微调和部署自己的 AI 模型。AutoTrain 支持多种机器学习任务,并提供自动化最佳实践,包括超参数调整、模型验证和分布式训练。
423 4
AutoTrain:Hugging Face 开源的无代码模型训练平台
仅用4块GPU、不到3天训练出开源版GPT-4o,这是国内团队最新研究
【10月更文挑战第19天】中国科学院计算技术研究所提出了一种名为LLaMA-Omni的新型模型架构,实现与大型语言模型(LLMs)的低延迟、高质量语音交互。该模型集成了预训练的语音编码器、语音适配器、LLM和流式语音解码器,能够在不进行语音转录的情况下直接生成文本和语音响应,显著提升了用户体验。实验结果显示,LLaMA-Omni的响应延迟低至226ms,具有创新性和实用性。
203 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等