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")
max_seq_length 设置过大,显存不足。