当前位置: 首页 > news >正文

unsloth - LLM超级轻量级微调框架

1 功能特色

unsloth将大模型微调速度提升 2 倍,同时将显存(VRAM)占用降低 70% 以上。

1)手写Triton 内核和高效内存管理,单张12GB-24GB显存GPU上高效地进行Lora实验。

2)适合预算有限的小团队,普通硬件上快速迭代 LoRA 实验的研究者。

3)支持Deepseek、Qwen等大部分的流行的LLM

2 支持模型

unsloth支持模型,包括qwen3、kimi K1、deepseek v3、deepseek r1等。

https://docs.unsloth.ai/get-started/all-our-models

3 微调示例

unsloth微调示例

from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 2048 # Supports RoPE Scaling internally, so choose any!
# Get LAION dataset
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")# 4bit pre quantized models we support for 4x faster downloading + no OOMs.
fourbit_models = ["unsloth/Meta-Llama-3.1-8B-bnb-4bit",      # Llama-3.1 2x faster"unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit","unsloth/Meta-Llama-3.1-70B-bnb-4bit","unsloth/Meta-Llama-3.1-405B-bnb-4bit",    # 4bit for 405b!"unsloth/Mistral-Small-Instruct-2409",     # Mistral 22b 2x faster!"unsloth/mistral-7b-instruct-v0.3-bnb-4bit","unsloth/Phi-3.5-mini-instruct",           # Phi-3.5 2x faster!"unsloth/Phi-3-medium-4k-instruct","unsloth/gemma-2-9b-bnb-4bit","unsloth/gemma-2-27b-bnb-4bit",            # Gemma 2x faster!"unsloth/Llama-3.2-1B-bnb-4bit",           # NEW! Llama 3.2 models"unsloth/Llama-3.2-1B-Instruct-bnb-4bit","unsloth/Llama-3.2-3B-bnb-4bit","unsloth/Llama-3.2-3B-Instruct-bnb-4bit","unsloth/Llama-3.3-70B-Instruct-bnb-4bit" # NEW! Llama 3.3 70B!
] # More models at https://huggingface.co/unslothmodel, tokenizer = FastModel.from_pretrained(model_name = "unsloth/gemma-3-4B-it",max_seq_length = 2048, # Choose any for long context!load_in_4bit = True,  # 4 bit quantization to reduce memoryload_in_8bit = False, # [NEW!] A bit more accurate, uses 2x memoryfull_finetuning = False, # [NEW!] We have full finetuning now!# token = "hf_...", # use one if using gated models
)# Do model patching and add fast LoRA weights
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, # Supports any, but = 0 is optimizedbias = "none",    # Supports any, but = "none" is optimized# [NEW] "unsloth" uses 30% less VRAM, fits 2x larger batch sizes!use_gradient_checkpointing = "unsloth", # True or "unsloth" for very long contextrandom_state = 3407,max_seq_length = max_seq_length,use_rslora = False,  # We support rank stabilized LoRAloftq_config = None, # And LoftQ
)trainer = SFTTrainer(model = model,train_dataset = dataset,tokenizer = tokenizer,args = SFTConfig(max_seq_length = max_seq_length,per_device_train_batch_size = 2,gradient_accumulation_steps = 4,warmup_steps = 10,max_steps = 60,logging_steps = 1,output_dir = "outputs",optim = "adamw_8bit",seed = 3407,),
)
trainer.train()# Go to https://github.com/unslothai/unsloth/wiki for advanced tips like
# (1) Saving to GGUF / merging to 16bit for vLLM
# (2) Continued training from a saved LoRA adapter
# (3) Adding an evaluation loop / OOMs
# (4) Customized chat templates

unsloth colab示例

https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama3.1_(8B)-Alpaca.ipynb

reference

---

unsloth

https://github.com/unslothai/unsloth

unsloth doc

https://docs.unsloth.ai/

http://www.dtcms.com/a/311949.html

相关文章:

  • ollama 多实例部署
  • 语音识别数据集
  • 【ROS2】ROS2节点Node机制与常用命令行
  • Autosar Nm-网管报文PNC停发后无法休眠问题排查
  • 决策树算法:三大核心流程解析
  • Agents-SDK智能体开发[4]之集成MCP入门
  • Qt 槽函数被执行多次,并且使用Qt::UniqueConnection无效【已解决】
  • Python编程基础与实践:Python文件处理入门
  • 智能手表:MPU6050和水平仪,动态表情包
  • 第14届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2023年1月15日真题
  • Qemu-NUC980(二):时钟clock代码添加
  • 驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
  • 如何修复非json数据
  • 兰空图床部署教程
  • 从C++0基础到C++入门(第十五节:switch语句)
  • 工具包:位图格式一键生成可无限放大的矢量图SVG/EPS及CAD文件DXF
  • 我的世界模组开发教程——物品item(1)
  • 建筑施工场景安全帽识别误报率↓79%:陌讯动态融合算法实战解析
  • 深入 Vue v-model
  • SpringBoot启动项目详解
  • MC0351区间询问和
  • MybatisPlus-自动生成代码
  • 【走遍美国精讲笔记】第 1 课:林登大街 46 号
  • 深入 Go 底层原理(四):GMP 模型深度解析
  • 编译器与解释器:核心原理与工程实践
  • Linux I/O 系统调用完整对比分析
  • linux source命令使用详细介绍
  • [qt]QTreeWidget使用
  • JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
  • 【设计模式】 原则