本文目录导读:

这是一个很好的问题,它触及了当前大模型微调的核心实践。
简短的回答是:是的,在当前(2025年)的实践中,微调LLM几乎默认使用PEFT(Parameter Efficient Fine-Tuning,参数高效微调)。
但这背后有更深层的逻辑,下面我来详细解释为什么PEFT成了主流,以及它和全参数微调(Full Fine-tuning)的区别。
核心结论:为什么PEFT是事实上的标准?
对于绝大多数个人开发者、中小企业和绝大多数应用场景,PEFT是更优、甚至唯一可行的选择,原因如下:
-
巨大的资源消耗:
- 全参数微调:需要更新模型的所有参数,一个70B参数的LLaMA模型,仅加载到GPU显存就需要约140GB(半精度),加上优化器状态(AdamW需要约2倍额外显存)和梯度,显存需求轻易超过300-400GB,需要多张A100/H100等高端显卡,训练时间也非常漫长。
- PEFT:只更新极少量(通常占总参数的1%-5%)的额外参数,显存需求可降低至原模型的1.5-2倍,同样70B的模型,使用LoRA(Low-Rank Adaptation,低秩适配)可能只需要1-2张A100,训练速度也快得多。
-
灾难性遗忘:
- 全参数微调:模型在特定任务上学习时,可能会“忘记”它在海量通用数据上学到的广泛知识,这被称为“灾难性遗忘”,微调后的模型可能在原本擅长的通用问题上表现下降。
- PEFT:由于原始模型的绝大部分参数被完全冻结,其通用知识被完整保留,PEFT只是在原有模型基础上“接入”或“轻推”了一下,让模型学会新任务,但不会破坏其原有的能力。
-
多任务能力:
- 全参数微调:每微调一个任务,就需要保留一个完整的模型副本(例如一个70B的模型文件)。
- PEFT:你只需要保留一个基础模型,然后为每个新任务保存一个非常小的“适配器”文件(例如几十MB),在推理时,只需将基础模型加载到内存中,再加载对应的适配器,这使得同时为几十上百个垂直领域服务成为可能。
PEFT是怎么做到的?
PEFT的核心思想是:冻结预训练模型的绝大多数参数,仅在模型的关键位置(如Transformer的注意力层)插入或附加少量可训练的参数。 训练时,只优化这些新增的参数。
主流的PEFT方法包括:
- LoRA(Low-Rank Adaptation):目前最流行的方法,它在原始权重矩阵旁边插入两个低秩矩阵,训练时,只更新这两个小矩阵,通过设置秩(rank)的大小,可以精确控制增加的参数量。
- Adapter(适配器):在Transformer的层与层之间(例如注意力层之后)插入一个小的、包含瓶颈层的前馈神经网络。
- Prefix/Prompt Tuning(前缀/提示调优):在输入序列前面添加一组可训练的“虚拟token”(即前缀或软提示),只更新这些虚拟token的嵌入向量。
何时才考虑全参数微调(不用PEFT)?
尽管PEFT非常强大,但在极少数情况下,全参数微调仍然有不可替代的价值:
- 训练数据极其庞大且独特:如果你拥有数亿甚至数十亿条高质量、与原始预训练数据分布差异极大的领域数据,全参数微调可以让模型更彻底地学习这个新领域的知识,PEFT的能力上限可能被其有限的参数量所限制。
- 追求极限性能:理论上,在一项非常具体、数据充足的任务上,全参数微调可以达到比PEFT更高的峰值性能,但实践中,这个差异通常非常小(1-2%),而成本却相差百倍。
- 公司拥有海量计算资源:例如大型科技公司,拥有数千张GPU的集群,他们可以为每一个关键业务场景做全参数微调。
总结与建议
| 特性 | 全参数微调 | PEFT |
|---|---|---|
| 显存需求 | 极高(数十倍于模型大小) | 低(2倍于模型大小左右) |
| 训练时间 | 漫长(数天到数周) | 快速(数小时到数天) |
| 参数量 | 更新全部参数 | 更新<1%-5%的参数 |
| 灾难性遗忘 | 风险较高 | 风险极低 |
| 多任务部署 | 困难,需要多个完整模型 | 简单,一个基础模型+N个适配器 |
| 适用场景 | 资源无限、数据量极大、追求极限 | 绝大多数实际应用 |
给您的最终建议:
- 如果你是在做实验、研究、或为特定业务训练模型,请直接使用PEFT(首选LoRA)。 这是当前最经济、高效且效果优秀的最佳实践。
- 只有在你的团队拥有海量GPU资源、海量独特数据,并且有专门的研究人员评估过全参数微调能带来显著优势时,才考虑全参数微调。
回到你的问题:“Fine-tuning LLM用PEFT吗?” —— 几乎可以确定地回答:是的,一定要用PEFT。 它已经成为了现代LLM微调的默认选择。