📚 模块2:PEFT — 高效微调范式

2.1 PEFT简介

PEFT(参数高效微调)是一组技术,允许通过仅更新模型参数的一小部分来适应大型模型,同时保持其余参数冻结。这大大减少了内存需求,加速了训练,并降低了灾难性遗忘的风险。

PEFT的基本原理很简单:并非所有模型参数都需要更新以使模型学习新任务。在许多情况下,引入小的结构化修改——如低秩矩阵、适配器层或激活偏移——就足以引导模型朝着期望的行为发展。

PEFT不是单一方法,而是一系列技术,包括:

  • LoRA(低秩适配)
  • 适配器层
  • 前缀调优/提示调优
  • QLoRA(量化LoRA)

其中,LoRA和QLoRA目前在社区中最受欢迎和广泛采用,这得益于它们的简单性、有效性和在Hugging Face PEFT等库中的出色支持。

2.2 PEFT相对于完整微调的优势

特征 完整微调 PEFT(LoRA/QLoRA)
可训练参数 100% ~0.1% - 1%
显存需求 非常高(数十GB) 低到中等(可在16GB上运行)
训练时间 短到中等
灾难性遗忘风险
模型可移植性 必须保存整个模型 仅保存PEFT参数(小文件)
基础模型可重用性 不能直接实现 是:可以将多个适配器加载到同一基础模型上

2.3 何时使用PEFT

PEFT在以下场景中是理想的:

  • 可用硬件有限(16GB或更少的GPU)。
  • 微调数据集较小(<10,000个样本)。
  • 想要保留基础模型的通用知识。
  • 计划将同一基础模型适应于多个任务(多任务学习)。
  • 旨在降低训练和存储成本。
  • 正在快速原型设计或进行迭代实验。

不推荐使用PEFT的情况:

  • 微调数据集极其庞大和多样化(在这种情况下,完整微调可能产生更好的结果)。
  • 需要模型输出分布的根本性改变(例如,完全改变词汇表或语言领域)。
  • 可以无限制地访问高端硬件且时间不是限制因素。

Course Info

Course: AI-course3

Language: ZH

Lesson: Module2