参数高效微调 (Parameter efficient fine-tuning, PEFT)

黎 浩然/ 12 9 月, 2023/ 大语言模型/LARGELANGUAGEMODEL/LLM, 机器学习/MACHINELEARNING/ 0 comments

参数高效微调(Parameter Efficient Fine-Tuning,简称PEFT)是一种相对于全量微调更为节省资源的大型语言模型(LLM)训练方法。以下是对PEFT的详细解释和总结:

训练LLM的挑战

  • 训练LLM需要大量计算资源。
  • 全量微调不仅需要存储模型权重,还需为优化器状态、梯度、前向激活和整个训练过程中的临时内存分配空间。
  • 这些额外组件的内存需求可能远大于模型本身,超出消费级硬件的处理能力。

PEFT的基本原理

  • 与全量微调(更新所有模型权重)不同,PEFT仅更新模型的一小部分参数。

  • 某些PEFT技术冻结大部分模型权重,专注于微调模型的特定层或组件。

  • 其他方法不修改原始模型权重,而是添加少量新参数或层,并仅微调这些新组件。

  • PEFT通常保持LLM的大部分或全部权重不变,因此受训参数远少于原始LLM。

PEFT的优点

  • 训练时的内存需求更小,有时只占原始LLM权重的15-20%。
  • PEFT通常可以在单个GPU上进行,使得训练成本更加可控。
  • LLM只是轻微修改或保持不变,因此PEFT不太容易出现全量微调中的灾难性遗忘问题.
  • 对于多任务微调,PEFT产生的存储问题更小,因为只需训练少量权重。

PEFT的主要类别

  • 选择性方法:只微调原始LLM的一部分参数。可以选择训练模型的特定组件、特定层或特定类型的参数。
  • 重参数化方法:通过创建原始网络权重的新低秩变换来减少训练参数的数量。常用技术包括LoRA(Low-Rank Adaptation)。
  • 附加方法:通过保持所有原始LLM权重固定,并引入新的可训练组件来进行微调。主要有两种方法:
    • 适配器方法:在模型架构中添加新的可训练层,通常位于编码器或解码器的注意力层或前馈层之后。
    • 软提示方法:保持模型架构固定和冻结,通过操纵输入来提高性能。这可以通过向提示嵌入添加可训练参数来实现,或者保持输入固定并重新训练嵌入权重。

PEFT的实践应用

  • PEFT在多任务微调中更为有效,允许灵活地适应原始模型以适应多种任务。
  • 由于PEFT所需的资源较少,它在有限硬件条件下尤其有用。

PEFT为大型语言模型提供了一种资源高效的微调方法,允许模型在保持原始结构的同时,通过少量参数的调整来适应不同的任务。这种方法解决传统全量微调过程中的资源消耗和存储问题,使得大型模型的微调更加实用和可达。

Share this Post

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

*
*