peft: 它是什么,解决了什么问题以及为什么它正受到关注

peft: 它是什么,解决了什么问题以及为什么它正受到关注

它解决了什么问题

由于大规模预训练模型的规模巨大,对其进行微调通常在计算和存储方面过于昂贵。PEFT 提供了一种方法,可以在不需要更新模型中每一个参数的情况下,将这些模型适配到特定任务中。

它是如何工作的

PEFT 并不进行全量微调,而是实现了一些仅更新少量额外参数(适配器)的方法,同时保持基础模型冻结。这极大地降低了内存和存储需求。它可以与量化技术结合使用,以进一步降低模型数据的精度,从而使得在消费级硬件上训练大型模型成为可能。

适合谁使用

希望在有限的硬件资源下微调大型语言模型 (LLMs) 或扩散模型 (如 Stable Diffusion),或者需要高效管理多个特定任务适配器的开发人员和研究人员。

亮点

  • 海量资源节省: 减少 GPU 显存使用量和存储需求(例如,一个 12B 参数的模型可以在 80GB GPU 上进行训练,而全量微调则会失败)。
  • 生态系统集成: 与 Hugging Face Transformers, Diffusers, Accelerate, 和 TRL 无缝协作。
  • 小型检查点: 仅保存训练好的适配器权重,从而使检查点的大小仅为几 MB 而不是 GB。
  • 广泛的支持: 支持各种 PEFT 方法,包括 LoRA, IA3, 和 soft prompts。

Sources