← 课程库
适配与对齐模块五 · 综合项目项目20 分钟

动手:用 LoRA 微调一个开源小模型

把 PEFT 真正跑起来

学完这节你能:
  • 用 peft 库给模型加 LoRA
  • 在自建指令数据上微调
  • 对比微调前后的指令遵循

模块五收尾:选一个开源小模型(如 1~3B),用 Hugging Face peft 库加 LoRA,在你自己造的几百条指令数据上微调,亲眼看它从「不太听话」变「听话」。

  1. 数据:造/找几百条指令-回答对,转成对话模板,做 loss mask。
  2. 加 LoRA:用 peft 的 LoraConfig 指定 r、target_modules(通常是注意力的 q/v 投影)。
  3. 训练:AdamW + 小学习率,冻结主体只训 LoRA,观察显存明显低于全参。
  4. 评估:拿几条没训过的指令,对比 base 与微调后的回答质量。
  5. 保存:只存 LoRA 适配器(几 MB),推理时加载底座 + 适配器。
加 LoRA(peft)
from peft import LoraConfig, get_peft_model
cfg = LoraConfig(r=8, lora_alpha=16, target_modules=['q_proj','v_proj'],
                 lora_dropout=0.05, task_type='CAUSAL_LM')
model = get_peft_model(base_model, cfg)
model.print_trainable_parameters()   # 可训练参数只占极小比例

💡 验收标准:可训练参数 <1%、显存显著下降、微调后对新指令的遵循明显变好、适配器文件只有几 MB。做到就掌握了工业界最常用的微调方式。

自测LoRA 微调跑通后,一个合格的信号是:
// 带走一句话

用 peft 给注意力投影加 LoRA、在小指令集上微调:可训练参数<1%、显存低、产出几 MB 适配器可热插拔。

独立练习

做到这些,才算完成本节

  1. 把任务拆成可运行的最小步骤,每一步都保留输出证据。
  2. 提交 README、结果、失败分析和下一次改进计划。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
Adapter、前缀微调、提示微调
下一课 →
人类对齐背景与 3H 标准

学完不要急着赶进度:去练习自测,或完成对应的阶段实验