参数高效微调(PEFT)描述了机器学习(ML)中使用的一系列技术,用于调整大型预训练模型(如基础模型)以适应特定的下游任务,而无需更新模型的所有参数。相反,PEFT 方法只专注于修改一小部分参数或添加少量新参数。这种方法大大降低了与微调大型模型(如大型语言模型(LLM)或计算机视觉(CV)中使用的大型视觉模型)相关的计算和存储成本,使定制变得更加方便和高效。
相关性和益处
超大型预训练模型(通常包含数十亿个参数)的兴起使得传统的微调方法成为资源密集型方法。对此类模型进行全面微调需要强大的计算能力(通常需要多个高端GPU)、大量内存以及每个调整后模型的可观存储空间。PEFT 通过提供几个关键优势来应对这些挑战:
- 降低计算成本:只对一小部分参数进行训练,可大大降低对昂贵硬件的需求,并缩短训练时间。Ultralytics HUB 云培训等平台可以进一步简化这一过程。
- 更低的存储要求:由于原始的大型模型保持不变,因此每次任务只需存储一小部分修改或添加的参数,从而大大节省了存储空间。
- 减轻灾难性遗忘:通过冻结大部分预训练模型的权重,PEFT 可防止模型在学习新任务时丢失预训练期间获得的常识。了解有关克服灾难性遗忘的更多信息。
- 提高低数据量情况下的泛化能力:有时,对较少的参数进行微调可以在数据有限的任务中取得更好的性能,因为这样可以降低对小数据集过度拟合的风险。
- 更易于部署:较小的特定任务参数集简化了模型部署,尤其是在边缘人工智能设备等资源受限的环境中。
关键概念和技术
PEFT 建立在迁移学习概念的基础上,即把基础模型中的知识应用到新任务中。标准微调会调整许多(或所有)层,而 PEFT 则采用专门的方法。一些流行的 PEFT 技术包括
- 适配器:插入预训练模型现有层之间的小型神经网络模块。只训练这些新适配器层的参数。详情请查看原始适配器研究论文。
- LoRA(低秩自适应):将可训练的低秩矩阵注入变换器架构的各层,近似权重更新,同时大幅减少可训练参数的数量。
- 前缀调整在转换层的输入中添加一小组可训练的前缀向量,在不修改原始权重的情况下影响模型的注意机制。阅读前缀调谐论文。
- 提示调整:学习预置在输入序列中的软提示(连续向量嵌入),针对特定任务指导冻结模型的行为。
像Hugging Face PEFT 库这样的库提供了各种 PEFT 方法的实现。
与相关概念的区别
必须将 PEFT 与其他模型适应和优化技术区分开来:
- 全面微调:更新预训练模型的全部或大部分参数。这种方法计算成本较高,但如果有足够的数据和资源,可以实现较高的性能。
- 模型剪枝:旨在通过从训练好的模型中删除多余或不重要的参数(权重或连接)来减少模型大小和推理延迟。与 PEFT 不同,剪枝侧重于压缩而非任务适应。
- 知识蒸馏:包括训练一个较小的 "学生 "模型来模仿一个较大的 "教师 "模型的输出或行为。其目的是在较小的模型中传授知识以获得更好的性能,而 PEFT 则是直接调整大型模型本身,只做最小的改动。
- 超参数调整:侧重于为训练过程寻找最佳配置设置(如学习率或批量大小),而不是直接修改模型参数以适应任务。