什么是 PEFT?
PEFT(Parameter-Efficient Fine-Tuning,参数高效微调)是一类模型适配方法:它只训练选定的既有参数或相对较少的新增参数,同时冻结大部分基座权重。参数高效本身不保证显存按固定比例下降,也不保证达到全参数微调质量。
快速了解
| 全称 | 参数高效微调 |
|---|---|
| 创建时间 | 各种技术源自 2019-2023 年,由 Hugging Face 统一 |
| 规范文档 | 官方规范 |
工作原理
PEFT 是方法家族,不是单一算法,也不等同于 Hugging Face PEFT 库。新增参数方法会插入瓶颈模块或可学习软提示;选择性方法只更新部分既有参数;LoRA 等重参数化方法用更小的可训练因子表示权重更新;混合方法还可能组合多种机制或量化冻结基座。它们对可训练状态、激活显存、优化器状态、上下文占用、推理计算、可合并性和后端支持的影响并不相同。较少的可训练参数通常能减少梯度、优化器和 Checkpoint 状态,但训练峰值显存仍包含基座权重、激活、临时缓冲区、运行时状态与安全余量。质量必须对照未修改基座,并在需要时加入全参数微调候选。PEFT Checkpoint 通常依赖基座而不能独立运行,因此发布身份应绑定不可变基座、Tokenizer、对话模板、方法配置、数据版本、评测报告、服务组合方式与回滚目标。
主要特点
- 覆盖新增参数、选择性更新、重参数化和混合适配方法,而不是一种固定架构
- 冻结大部分基座参数,只训练方法指定的参数子集或新增状态
- 减少可训练状态与 Checkpoint 大小,但峰值显存仍取决于权重、激活、序列形状、精度、优化器和运行时
- 产生的新行为必须按任务切片、回归切片、安全策略和重复 Seed 进行评测
- 通常生成依赖基座的 Checkpoint,其兼容身份包括模型、Tokenizer、模板、框架与方法配置
- 服务行为因方法而异:部分更新可合并,模块和软提示则可能需要运行时组合
常见用途
- 在固定工作负载、设备包络和评测协议下比较不同高效适配方法
- 在不可变共享基座上维护独立版本的领域或任务变体
- 无需为每个候选保存完整模型副本即可开展受控适配实验
- 在框架支持相应方法时适配语言、视觉、语音或扩散模型
- 通过显式兼容检查、授权、可观测性和回滚机制服务已批准模型变体
示例
Loading code...常见问题
PEFT 和全参数微调有什么区别?
全参数微调会更新全部或大部分基座权重;PEFT 只训练选定的既有参数或新增状态,并冻结大部分基座。它通常能减少梯度、优化器和 Checkpoint 状态,但质量、耗时与峰值显存差异仍取决于模型、方法、精度、序列形状、优化器、运行时和设备拓扑。
如何选择 PEFT 方法?
先定义工作负载契约:目标行为、基座架构、可用训练与服务后端、设备包络、延迟、存储和发布约束。随后用相同数据切分与评测协议比较可行方法。LoRA 生态支持较广;瓶颈模块增加串行计算;软提示改变注意力输入。不存在对所有任务都最好的方法。
可训练参数更少,峰值显存会按相同比例下降吗?
不会。可训练参数只决定训练显存的一部分。基座权重、量化元数据、激活、梯度、优化器状态、临时算子、通信缓冲区、运行时分配、碎片与安全余量都会占用内存。必须在目标序列长度、Batch 形状、精度、梯度检查点策略和硬件上测量设备与主机峰值。
PEFT 一定能达到全参数微调质量吗?
不能。论文结果受模型、任务、数据、方法配置和评测协议约束。PEFT 候选可能优于、接近或弱于全参数微调,也可能改善一个切片却损害另一个切片。应使用重复 Seed、留出任务切片、通用能力回归、安全检查和服务制品测试进行比较。
PEFT Checkpoint 能独立运行吗?
通常不能。PEFT Checkpoint 一般只保存方法专用参数与配置,仍需兼容基座。应把基座 Revision 与哈希、Tokenizer、对话模板、框架版本、方法配置、Adapter Revision、评测报告和服务组合方式视为同一身份。合并能力取决于方法与配置,并会产生需要重新验证的新制品。