PEFT,全称是 参数高效微调 (Parameter-Efficient Fine-Tuning),是一套用于调整大型预训练模型(如大语言模型LLM)以适应特定下游任务的方法论,其核心思想是在 极小化计算和存储资源 的前提下,实现与全量微调(Full Fine-tuning)相媲美的模型性能。
为了让你更直观地理解,我继续沿用“ 驾校学车 ”的比喻:
如果把一个强大的基础模型比作一个已经熟练掌握通用驾驶技术的“老司机”,那么让他去开一辆特定的出租车(下游任务),通常有两种方式:
- 全量微调 :让他重新回炉,把整个驾驶技术体系都调整一遍,以适应这辆出租车,这无疑耗时耗力,成本极高。
- PEFT :只给他一套针对这辆出租车的“微调秘籍”——比如调整座椅和后视镜(对应 选择式方法 ),或者在旁边加装一个专用的导航仪(对应 添加式方法 ),老司机原有的核心驾驶能力被完整保留,他只需极小的适应成本,就能完美驾驭新车。
1
核心原理
PEFT的底层逻辑基于一个重要的观察和假设: 大模型适应新任务所需的参数变化,其“内在维度”其实很低 。换句话说,模型为了完成特定任务,并不需要把数千亿个参数都翻新一遍,而只需要在几个关键的方向上进行微调即可。
基于这个原理,PEFT方法通过以下方式实现高效微调:
- 冻结绝大部分参数 :将预训练模型的绝大多数参数固定住,使其不参与训练。
- 仅微调极小部分 :只引入并更新一小部分额外的参数(通常少于模型总参数的1%),或者直接选择模型中已有的一个极小子集进行更新。
- 达到同等效果 :尽管更新的参数极少,但其在目标任务上的表现却能逼近全量微调。
2
主要方法分类与技术详解
目前主流的PEFT方法可以根据其修改模型的方式分为三大类:
| | | |
|---|
| | Adapters, Prompt Tuning, Prefix Tuning | |
| 不添加新参数,而是从模型现有的参数中挑选一个极小子集(如偏置项)进行微调 | | 只让老司机调整座椅和后视镜,以适应这辆特定的出租车 |
| 不直接更新原始权重,而是学习原始权重更新的低秩分解形式,最后再合并回去 | LoRA (Low-Rank Adaptation) 及其变体(如 QLoRA) | 老司机写下一份极简的“驾驶心得便签”(低秩矩阵),贴在方向盘上,用最小的改动指导自己驾驶 |
添加式方法
这类方法在冻结的预训练模型基础上,引入新的、可训练的参数或结构。
- Adapter Tuning :在Transformer的层与层之间插入小型“适配器”模块(通常是一个 bottleneck 结构的全连接网络)。训练时只更新这些适配器。
- Prompt Tuning :不在模型结构上动手,而是在输入文本的embedding前,拼接上一段可训练的“软提示”(soft prompt)向量。通过调整这些虚拟的token来引导模型生成特定任务的答案。
- Prefix Tuning :Prompt Tuning的升级版,不是在输入层加,而是在每一层Transformer的注意力机制(Key和Value)前,都加上可训练的前缀向量,实现更精细的控制。
选择式方法
这类方法最为直接,它们认为模型中的某些参数(如偏置项)本身就蕴含着重要的任务适应性信息。
- BitFit :一种极致简单且高效的方法。它 仅微调模型中的偏置项(bias terms) ,而冻结所有其他权重。尽管更新的参数不到总数的0.1%,但在很多任务上能取得不错的效果。
重参数化方法
这类方法在训练时学习低秩矩阵,在推理时可以合并回原始权重,因此 不增加任何推理延迟 。
- LoRA :这是目前最流行、应用最广泛的PEFT方法,核心是假设权重更新矩阵ΔW是低秩的,通过两个小矩阵A和B的乘积来模拟。
- QLoRA :LoRA的进化版, 结合了4-bit量化技术 ,进一步将模型的基本权重压缩,使得在单张消费级GPU(如24GB显存)上微调650亿参数的大模型成为可能。
3
PEFT的主要作用与优势
PEFT之所以成为大模型应用的关键技术,是因为它解决了全量微调的几大痛点:
- 极大降低硬件门槛 :由于需要计算和存储梯度的参数极少,对GPU显存的需求大幅下降。例如,训练一个30亿参数的T0模型,全量微调需要47GB显存,而使用LoRA仅需14GB。结合QLoRA,甚至可以在24GB的卡上微调650亿参数的模型。
- 显著节约存储成本 :每个下游任务训练完后,只需要保存一个极小的“适配器”文件(通常只有几MB到几十MB),而不是整个庞大的模型副本(可能几百GB)。这意味着你可以轻松存储和管理成百上千个针对不同任务的模型变体。
- 训练速度更快 :需要更新的参数少,反向传播的计算量自然更小,训练周期大大缩短。
- 缓解灾难性遗忘 :由于原始模型的绝大部分权重被冻结,模型在预训练阶段学到的通用知识得以完整保留,有效避免了在学习新任务时“忘记”旧知识的问题。
- 性能媲美全量微调 :大量研究表明,精心设计的PEFT方法(如LoRA)在众多下游任务上的表现,已经可以 与全量微调相媲美甚至更优 。
4
应用领域
PEFT的应用早已不限于大语言模型(NLP),它已扩展到AI的各个前沿领域:
- 多模态模型 :用于微调图像生成模型(如Stable Diffusion)进行风格化训练(如DreamBooth),或调整视觉-语言模型(如CLIP)以适应特定的图像识别任务。
- 语音处理 :微调语音合成模型,以生成具有特定情感或音色的声音。
- 代码生成 :针对特定代码库或编程规范,对代码生成大模型进行定制化调整。
总的来说,PEFT不是单一的算法,而是一套 让大模型“飞入寻常百姓家”的方法论 。它通过巧妙的设计,让我们能以极低的成本,将通用的基础模型塑造成解决特定问题的专家,极大地推动了大模型在学术界和工业界的普及与应用。如果说基础模型是“毛坯房”,那么PEFT就是一套“精装工具包”,让你可以快速、经济地为每个房间(任务)打造出最合适的风格。