PEFT (Parameter-Efficient Fine-Tuning) — 参数高效微调

From Systems analysis wiki
Jump to navigation Jump to search

参数高效微调(英语:Parameter-Efficient Fine-Tuning, PEFT)是一套用于调整大型预训练模型(如大型语言模型 (LLM))以适应特定任务的方法,其特点是计算和资源成本极低。与传统的需要更新模型所有参数的全量微调full fine-tuning)不同,PEFT方法仅修改一小部分权重(不到总数的1-5%),而模型的大部分参数保持不变(即“冻结”状态)[1]

这种方法可以显著减少对内存、存储空间和训练时间的需求,使得强大的基础模型的适配过程更易于实现,并且能有效缓解灾难性遗忘问题[2]

全量微调的问题

传统的全量微调方法会更新模型的所有参数,但这面临一系列关键问题,这些问题也催生了PEFT技术的发展:

  • 高昂的计算成本: 更新数千亿个参数需要巨大的计算能力(高性能GPU/TPU)和大量的显存(VRAM),这使得该过程成本高昂,许多研究人员无法承担。
  • 低效的存储: 每当适配一个新任务,就需要存储一个完整的、数GB大小的模型副本,导致对磁盘空间的需求呈指数级增长。
  • 灾难性遗忘(Catastrophic Forgetting): 模型在适应新数据时,会“忘记”在预训练阶段学到的通用知识,从而降低其在其他任务上的表现。
  • 过拟合风险(Overfitting): 在小型微调数据集上,拥有数十亿参数的模型倾向于“记住”训练样本,而不是学习通用的模式[2]

PEFT 方法分类

PEFT方法可以根据其修改模型参数的方式进行分类。主要有三类:添加式(additive)、选择式(selective)和重参数化(reparameterization)方法[3]

添加式方法

这类方法会冻结模型的所有原始权重,并添加新的、小型的可训练模块。

  • 适配器(Adapters): 最早的添加式方法。将具有“瓶颈”架构的小型神经网络模块插入Transformer的层与层之间。训练时只更新这些适配器的权重[4]
  • 基于“软提示”的方法(Soft Prompts): 这类方法不改变模型权重,而是在输入数据中添加可训练的向量(即“虚拟令牌”),以引导模型的行为。主要变体包括:
    • Prompt Tuning: 仅在输入嵌入(input embeddings)中添加可训练的向量。
    • Prefix-Tuning: 在注意力机制的每一层中,为隐藏状态添加可训练的向量前缀,从而实现更精细的控制[5]
    • P-Tuning v2: Prefix-Tuning思想的推广,它将可训练的提示应用于模型的所有层,实现了与全量微调相当的性能[6]

选择式方法

这类方法不添加新参数,而是选择并微调模型现有参数的一个小子集。

  • BitFit: 一种极为节省资源的方法,仅微调偏置向量(bias terms)和归一化层的参数,更新的参数数量不到总数的0.1%。
  • 差分剪枝(Diff Pruning): 使用一个可训练的掩码(mask)来动态确定在训练过程中应更新哪些权重[3]

重参数化方法

这类方法基于一个假设:模型适配所需的权重更新具有较低的“内在秩”(intrinsic rank)。因此,它们不直接更新完整的权重矩阵,而是更新其低秩表示。

  • LoRA (Low-Rank Adaptation): 目前最流行的PEFT方法。它假设权重更新矩阵 `ΔW` 可以通过两个低秩矩阵的乘积来近似:`ΔW = BA`。在微调过程中,原始权重矩阵 `W` 被冻结,只训练 `A` 和 `B` 两个矩阵。[7]
  • QLoRA: 将LoRA与量化技术相结合,进一步降低了内存需求,使得在单个消费级GPU上微调650亿参数的模型成为可能[8]

性能与资源对比

PEFT方法能够在大幅降低成本的同时,实现与全量微调相当的性能。

PEFT方法的性能与效率对比
模型 方法 可训练参数 (%) 基准测试结果 (平均准确率) 来源
BERT-Large 全量微调 100% 80.4 (GLUE) [4]
BERT-Large Adapters 3.6% 80.0 (GLUE) [4]
LLaMA-7B LoRA 0.83% 74.7% [9]
LLaMA-7B DoRA (LoRA变体) 0.84% 78.1% [9]

PEFT在资源节省方面的关键优势:

  • GPU显存(VRAM): 对于LLaMA 65B模型,全量微调理论上需要超过780 GB的VRAM,而QLoRA方法使其能够在显存小于48 GB的GPU上进行微调[8]
  • 存储空间: PEFT训练后保存的检查点(checkpoint)大小为MB级别,而非GB级别。这意味着,存储数百个针对不同任务的“适配器”所占用的空间,仅相当于一个全量微调模型的存储量。

应用领域

PEFT方法最初为自然语言处理(NLP)设计,现已成功应用于多种任务:

  • 计算机视觉(CV)与多模态模型(VLM): 调整Vision Transformer (ViT)和Segment Anything Model (SAM)等模型,用于图像分割任务,包括在生物医学领域的应用。
  • 代码生成与分析: 根据特定软件项目、内部API或代码库的特点对LLM进行定制。
  • 生成模型: 利用LoRA适配器对Stable Diffusion等图像生成模型进行“风格化”(例如Dreambooth技术)。
  • 语音合成: 调整模型以生成具有特定声音、语调或情感色彩的语音。

外部链接

参考文献

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. ICML 2019.
  • Li, X.L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, X. et al. (2022). P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks. arXiv:2110.07602.
  • Ben Zaken, E.; Ravfogel, S.; Goldberg, Y. (2021). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-Based Masked Language Models. arXiv:2106.10199.
  • Guo, D.; Rush, A.M.; Kim, Y. (2020). Parameter-Efficient Transfer Learning with Diff Pruning. arXiv:2012.07463.
  • Jiang, Z. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Chen, S. et al. (2024). Parameter-Efficient Fine Tuning: A Comprehensive Analysis Across Applications. arXiv:2404.13506.
  • Zhang, J. et al. (2025). Parameter-Efficient Fine-Tuning for Foundation Models. arXiv:2501.13787.

注释

  1. “Parameter-Efficient Fine-Tuning for Foundation Models”. arXiv:2501.13787. [1]
  2. 2.0 2.1 “5 Problems Encountered Fine-Tuning LLMs with Solutions”. Machine Learning Mastery. [2]
  3. 3.0 3.1 “PEFT: Parameter-Efficient Fine-Tuning Methods for LLMs”. Hugging Face Blog. [3]
  4. 4.0 4.1 4.2 Houlsby, N., et al. «Parameter-Efficient Transfer Learning for NLP». Proceedings of the 36th International Conference on Machine Learning. [4]
  5. Li, X.L., Liang, P. «Prefix-Tuning: Optimizing Continuous Prompts for Generation». arXiv:2101.00190. [5]
  6. Liu, X., et al. «P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks». arXiv:2110.07602. [6]
  7. Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [7]
  8. 8.0 8.1 Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [8]
  9. 9.0 9.1 «Parameter Efficient Fine Tuning: A Comprehensive Analysis Across Applications». arXiv:2404.13506. [9]