LoRAvsPEFT
AI领域术语对比 — 快速理解两者的核心差异
LoRA
Low-Rank Adaptation
低秩适配 · 用极少参数撬动大模型微调
PEFT
Parameter-Efficient Fine-Tuning
参数高效微调 · 用 1% 的参数换 90% 的效果
概览对比
LoRA
LoRA 在预训练模型的线性层旁边插入两个低秩矩阵(降维 + 升维),只训练这部分新增参数,原始权重完全冻结。一个 7B 模型全量微调需要 60GB+ 显存,LoRA 可以把可训练参数压缩到不足 1%,在单张消费级 GPU 上完成同等质量的微调。
PEFT
PEFT 是一类微调策略的统称:冻结预训练模型的绝大部分参数,只训练少量新增或选定的参数来适配下游任务。Hugging Face 的 PEFT 库将 LoRA、Prefix Tuning、Prompt Tuning、IA³ 等方法统一封装,已成为开源社区微调大模型的标准工具链。
核心要点
LoRA
- 可训练参数不足全量的 1%,显存占用降低 3-5 倍
- 训练完成后适配器可合并回原模型,推理零开销
- 2024 年衍生出 DoRA、PiSSA、LoRA-XS 等变体,生态持续扩展
PEFT
- 涵盖 LoRA、Prefix Tuning、Prompt Tuning、AdaLoRA、IA³ 等十余种方法
- Hugging Face PEFT 库与 Transformers 深度集成,几行代码即可切换微调策略
- 训练产物通常只有几十 MB 的适配器文件,便于版本管理和多任务切换
正式定义
LoRA
一种参数高效微调方法,通过在冻结的预训练权重旁注入可训练的低秩矩阵对来实现模型适配。
PEFT
一类通过仅训练模型中少量额外或选定参数来实现下游任务适配的微调方法,显著降低计算和存储成本。
应用场景
LoRA
- 用特定领域数据微调开源 LLM
- 在消费级 GPU 上定制聊天机器人风格
- 为同一基座模型训练多个任务适配器并按需切换
PEFT
- 为同一基座模型训练多个领域适配器并按需加载
- 在有限 GPU 资源下快速迭代模型实验
- 将微调产物(适配器文件)纳入 Git 版本管理
详细解读
LoRA
LoRA 的核心思想来自微软 2021 年的论文:大模型微调时的权重更新矩阵本质上是低秩的,不需要更新全部参数。它将权重更新分解为 W = BA(B 降维、A 升维),秩 r 通常取 8-64。训练时只更新 A 和 B,推理时将 BA 合并回原权重,不增加延迟。这一方法已成为 Hugging Face PEFT 库的默认微调策略,广泛应用于 LLaMA、Mistral、Qwen 等开源模型的领域适配。局限在于对秩 r 的选择敏感,且在需要大幅改变模型行为的场景下效果可能不如全量微调。
PEFT
全量微调一个 7B 模型需要存储完整的优化器状态和梯度,显存轻松超过 60GB。PEFT 方法通过不同策略绕过这个瓶颈:LoRA 注入低秩矩阵、Prefix Tuning 在注意力层前拼接可学习向量、Prompt Tuning 在输入嵌入层添加软提示、IA³ 用学习到的向量缩放激活值。Hugging Face 的 PEFT 库(GitHub 星标 17k+)将这些方法标准化,支持与 Transformers、Accelerate、bitsandbytes 无缝配合。实践中 LoRA 因效果稳定、实现简单成为默认选择,但在特定场景下 Prefix Tuning 或 IA³ 可能更优。
快速对比
| 维度 | LoRA | PEFT |
|---|---|---|
| 类型 | 专业术语 | 专业术语 |
| 标签 | 模型训练、LLM、PEFT | 模型训练、LLM、PEFT |
| 热度 | 92 | 85 |