标准回答
为什么需要 PEFT(独占一行)
全量微调要更新所有权重,显存与存储开销巨大,每个任务都要存一份完整模型,且小数据上易过拟合和灾难性遗忘。PEFT 冻结基座、只训练少量参数来缓解这些问题。
主流方法
- LoRA / QLoRA:在权重旁注入低秩矩阵 A/B,只训练它们;QLoRA 再叠加 4-bit 量化基座,单卡可微调大模型。当前最主流。
- Adapter:在 Transformer 层间插入小型瓶颈模块,只训练这些模块。
- Prefix-Tuning / P-Tuning:冻结模型,只学习一段可训练的「软提示」向量前缀。
- (IA)³:对注意力与 FFN 的激活做逐元素缩放,引入的参数比 LoRA 还少。
取舍
LoRA 系列效果接近全量、可把适配器合并回基座因而推理零额外开销,且一个基座可挂多套适配器服务不同任务,是工程首选;Prefix/P-Tuning 参数更省但调优更敏感。
常见误区
⚠️ 常见踩坑
PEFT 改不了模型的「知识与能力上限」,它做的是任务/风格适配;想注入大量新知识,靠 RAG 或继续预训练更合适,而非堆 LoRA。
追问
追问 1:LoRA 的秩 r 怎么选?
r 控制可训练参数量与表达能力:任务简单或数据少用较小 r(8–16)防过拟合;任务复杂可增大 r。通常配合 alpha 缩放,实践中从 r=8/16 起调,再按验证效果增减。
追问 2:PEFT 和全量微调精度差距大吗?
在多数下游任务上 LoRA/QLoRA 已能逼近全量微调;差距主要出现在需要大幅改变模型行为或注入大量新知识的场景,此时全量微调或继续预训练更有优势。
追问 3:一个基座如何同时服务多个 LoRA 任务?
基座只加载一份,按请求动态切换/批处理不同 LoRA 适配器(如 vLLM 的多 LoRA 服务),既省显存又能快速上线新任务,无需为每个任务部署完整模型。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具