unsloth

Unsloth 高效微调

补充说明

Unsloth 通过手写 Triton 内核和显存优化,让 LoRA/QLoRA 微调速度提升、显存占用下降。适合单卡微调 7B–70B 模型,兼容 Transformers 生态。

它主打易用性:FastLanguageModel 加载模型,几行代码完成 LoRA 配置和训练。

常用示例

安装:

pip install unsloth

加载模型并配置 LoRA:

from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="Qwen/Qwen2.5-7B-Instruct",
    max_seq_length=2048,
    load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)

训练:

from trl import SFTTrainer
trainer = SFTTrainer(
    model=model,
    tokenizer=tokenizer,
    train_dataset=dataset,
    max_seq_length=2048,
)
trainer.train()

保存:

model.save_pretrained("./unsloth-lora")
tokenizer.save_pretrained("./unsloth-lora")

易错点与排错