Unsloth本地模型训练教程:单卡微调70亿参数LLM

发布时间:2026-08-02 | 标签:AI工具、模型训练、微调、LLM

什么是Unsloth

Unsloth是GitHub上备受关注的开源模型训练框架,核心优势是能在单张消费级GPU上高效微调70亿参数的大语言模型。相比HuggingFace原生训练,Unsloth速度提升2倍,内存减少60%,让普通开发者也能进行模型微调。

核心功能

1. 极速训练

通过手写Triton kernel、梯度检查点优化、Flash Attention等技术,训练速度提升2-5倍。

2. 低显存占用

7B模型LoRA微调仅需8GB显存(RTX 3090/4090即可),13B模型仅需16GB。

3. 多模型支持

支持Llama、Mistral、Qwen、DeepSeek、Gemma等主流开源模型。

4. 多种微调方式

支持LoRA、QLoRA、全参数微调、DPO(直接偏好优化)等。

安装

# 安装Unsloth
pip install unsloth

# 验证安装
python -c "import unsloth; print(unsloth.__version__)"

LoRA微调Llama 3(7B)

from unsloth import FastLanguageModel
import torch

# 加载模型
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/llama-3-8b-bnb-4bit",
    max_seq_length = 2048,
    dtype = None,
    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,
    lora_dropout = 0,
)

# 准备数据
from datasets import load_dataset
dataset = load_dataset("yamlab/alpaca", split="train")

# 训练
from trl import SFTTrainer
trainer = SFTTrainer(
    model = model,
    tokenizer = tokenizer,
    train_dataset = dataset,
    dataset_text_field = "text",
    max_seq_length = 2048,
    args = {
        "per_device_train_batch_size": 2,
        "gradient_accumulation_steps": 4,
        "warmup_steps": 5,
        "max_steps": 60,
        "learning_rate": 2e-4,
        "fp16": not torch.cuda.is_bf16_supported(),
        "bf16": torch.cuda.is_bf16_supported(),
        "logging_steps": 1,
        "output_dir": "outputs",
    },
)
trainer.train()

导出模型

# 导出为GGUF格式(用于Ollama部署)
model.save_pretrained_gguf("model_gguf", tokenizer, quantization_method="q4_k_m")

# 导出为HuggingFace格式
model.save_pretrained("model_hf")
tokenizer.save_pretrained("model_hf")

显存需求对比

模型HuggingFaceUnsloth (4bit)
7B20GB8GB
13B40GB16GB
70B160GB48GB

与Ollama配合使用

微调完成后,可以导出GGUF格式,配合Ollama本地大模型部署在本地运行。也可以用vLLM进行高性能推理部署。

适用场景

相关阅读

📚 常见问题

Unsloth本地模型训练是什么?

Unsloth是GitHub上备受关注的开源模型训练框架,核心优势是能在单张消费级GPU上高效微调70亿参数的大语言模型。相比HuggingFace原生训练,Unsloth速度提升2倍,内存减少60%,让普通开发者也能进行模型微调。

如何上手Unsloth本地模型训练?

定制化AI助手(用自有数据微调)