Skip to content

LoRA 微调

🎯 学习目标

  • 对比各类 PEFT 方法训练的参数量与显存
  • 使用 HuggingFace PEFT 加载 LoRA adapter
  • 了解 QLoRA 在单卡微调的可行性

引言

PEFT 只训练少量参数,基座模型冻结,适合应用团队「轻量定制」。

章节正文

第 1 步:方法对比

方法思路参数量
Prompt Tuning只训 soft prompt极少
P-Tuning可学习 prompt embedding
Prefix Tuning每层 prefix 向量
LoRA低秩分解 ΔW
QLoRA4bit 量化基座 + LoRA中,显存低

第 2 步:LoRA 配置示例

python
from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    task_type="CAUSAL_LM",
)
model = get_peft_model(base_model, config)
model.print_trainable_parameters()  # ~0.1% 可训

第 3 步:选型建议

  • 单卡 24GB:QLoRA 7B
  • 多卡:LoRA 13B+
  • 快速试验:LoRA r=8
  • 上线:adapter 文件独立版本管理,与基座分离部署

动手练习

  1. 阅读 print_trainable_parameters 输出,计算可训参数占比
  2. 调研 axolotl / LLaMA-Factory 一键 QLoRA 流程

本节小结

PEFT 以 LoRA/QLoRA 最实用;消费级 GPU 用 QLoRA;adapter 与基座分离部署。