PEFT (Parameter-Efficient Fine-Tuning) — 参数高效微调
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): 这类方法不改变模型权重,而是在输入数据中添加可训练的向量(即“虚拟令牌”),以引导模型的行为。主要变体包括:
选择式方法
这类方法不添加新参数,而是选择并微调模型现有参数的一个小子集。
- 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方法能够在大幅降低成本的同时,实现与全量微调相当的性能。
| 模型 | 方法 | 可训练参数 (%) | 基准测试结果 (平均准确率) | 来源 |
|---|---|---|---|---|
| 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.
注释
- ↑ “Parameter-Efficient Fine-Tuning for Foundation Models”. arXiv:2501.13787. [1]
- ↑ 2.0 2.1 “5 Problems Encountered Fine-Tuning LLMs with Solutions”. Machine Learning Mastery. [2]
- ↑ 3.0 3.1 “PEFT: Parameter-Efficient Fine-Tuning Methods for LLMs”. Hugging Face Blog. [3]
- ↑ 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]
- ↑ Li, X.L., Liang, P. «Prefix-Tuning: Optimizing Continuous Prompts for Generation». arXiv:2101.00190. [5]
- ↑ Liu, X., et al. «P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks». arXiv:2110.07602. [6]
- ↑ Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [7]
- ↑ 8.0 8.1 Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [8]
- ↑ 9.0 9.1 «Parameter Efficient Fine Tuning: A Comprehensive Analysis Across Applications». arXiv:2404.13506. [9]