PEFT(Parameter-Efficient Fine-Tuning,参数高效微调)是一种在深度学习中微调预训练模型的方法,旨在减少需要调整的参数数量,从而降低计算和存储成本,同时保持模型性能的提升。该方法特别适用于大规模预训练模型(如 BERT、GPT 等),因为这些模型通常包含数亿甚至数十亿的参数,完全微调的代价非常高。
核心思想
PEFT 方法的核心思想是:
- 冻结预训练模型的大部分参数,仅微调一小部分参数或引入额外的可训练参数。
- 通过这种方式,既能利用预训练模型的强大能力,又能节省资源。
PEFT 方法的常见应用包括自然语言处理(NLP)、计算机视觉(CV)等领域,尤其是在任务多样但资源有限的情况下。
常见的 PEFT 方法
以下是几种常见的 PEFT 方法及其特点:
-
Adapter 方法
在预训练模型的某些层之间插入小型可训练模块(Adapter),并只训练这些模块的参数,冻结其余部分。- 优点:显著减少了需要调整的参数数量。
- 示例:
Houlsby Adapter
和Pfeiffer Adapter
。
-
LoRA(Low-Rank Adaptation)
通过低秩矩阵分解来高效微调权重变化。具体来说,仅训练一个低秩矩阵,使得原始模型的权重可以通过训练的低秩矩阵进行调整。- 优点:微调参数数量非常少,适合低资源场景。
-
Prompt Tuning
在输入数据中添加可学习的提示(Prompt),仅优化提示的表示,而不改变预训练模型本身的权重。- 优点:参数效率极高。
- 示例:Prefix Tuning、P-Tuning。
-
BitFit
仅优化预训练模型中的偏置(Bias)参数,而冻结所有其他参数。- 优点:实现简单,参数量极少。
-
Prefix Tuning
为每个任务添加一组可训练的前缀向量,并在生成序列时结合这些向量进行推理。- 优点:适用于生成任务,微调参数数量低。
PEFT 的优势
- 高效性:相较于全模型微调,PEFT 方法需要调整的参数非常少,因此训练和存储成本显著降低。
- 迁移性:微调的参数可以轻松迁移到不同任务中,尤其在多任务场景下表现良好。
- 适应性:在资源有限或算力有限的情况下,PEFT 方法为模型优化提供了可行的解决方案。
使用场景
- 低资源任务:如某些小规模数据集的领域适配。
- 多任务学习:在一个基础模型上适配多个下游任务。
- 边缘设备部署:通过减少训练参数,使得模型更容易部署到低算力设备上。