Skip to content

Adapter Tuning 和 Prefix Tuning 是什么?它们和 LoRA 有什么区别? ​

  • 标签:

🏛 业务架构师 ​

Adapter Tuning 和 Prefix Tuning 是 LoRA 之前的两代 PEFT 方法:

Adapter Tuning:在 Transformer 每层的注意力/FFN 后插入小型瓶颈网络(降维→非线性→升维+残差),冻结原模型只训 Adapter。优点:效果稳定、每任务只存小模块;缺点:推理时多了串行计算层,延迟增加约 5%~20%——在线服务不可接受,这是它被 LoRA 取代的主因。

Prefix Tuning:在输入前拼接一段可学习的连续向量前缀(virtual tokens),只训这些向量。可以理解为"可训练的软提示",按层注入可增强引导力。优点:参数量极小、不动模型结构;缺点:占用上下文窗口(前缀本身消耗 token)、对生成任务的引导力不如 LoRA、优化不稳定(需要重参数化技巧)。

与 LoRA 的区别:LoRA 在权重空间加低秩旁路,训练完可合并回原权重——推理零额外延迟、零上下文占用,效果通常也最好。三者对比一句话:Adapter 改结构(慢)、Prefix 占输入(挤)、LoRA 调权重(无感)。

业务视角的历史脉络:PEFT 演进的方向是"对推理链路的侵入越来越小"——因为生产环境里延迟和上下文就是钱。2026 年新项目直接 LoRA 起步即可,了解 Adapter/Prefix 的价值在于理解设计权衡的来龙去脉,以及阅读老论文和老代码时不迷路。

🏗 系统架构师 ​

两个都是"PEFT 冻结主干"家族的早期方法,我按机制讲再对比 LoRA:

  • Adapter Tuning(2019):在 Transformer 层的 FFN/注意力后串联插入小模块(down-proj → 非线性 → up-proj 瓶颈结构,瓶颈维度 32~256),只训这些模块。特点:效果稳;致命伤是推理时多了串行计算层,延迟增加——线上服务不可接受,这是它被 LoRA 取代的根本原因;
  • Prefix Tuning(2021):在输入(P-tuning v1 在输入层;Prefix Tuning 在每层注意力)前拼接可学习的软提示向量(连续 token embedding,几十~几百个),只训这些向量。特点:参数极少;缺点:占上下文长度(软提示挤占有效窗口)、对深任务效果逊于 LoRA、优化不稳定(需重参数化技巧)。

与 LoRA 的本质区别:

  • 参数位置:Adapter 加在层间串行路径(改计算图,推理有代价);Prefix 加在输入序列(占窗口预算);LoRA 加在权重旁路(ΔW=BA,推理时可合并,零延迟零窗口占用);
  • 表达能力:LoRA 直接修改权重等价行为,容量随秩可调,对复杂任务适配力最强;
  • 工程结论:LoRA 在"效果 + 推理零开销"上双杀,成为默认;Adapter 只在必须保留即插即用模块形态时可见;Prefix/Prompt Tuning 保留在超轻量适配和提示向量研究场景。

💻 全栈开发专家 ​

三个都是 PEFT 家族,区别在「可训练参数挂在哪」:

Adapter Tuning(2020):在 Transformer 每层(注意力/FFN 后)插入瓶颈 MLP 模块(down-project → 非线性 → up-project),冻结原模型只训 Adapter。

  • 优点:效果稳;缺点:推理时多网络层,延迟永久增加,层越深越明显——这是它被 LoRA 干掉的主因。

Prefix Tuning(2021):在每层输入前拼接 k 个可训练的连续虚拟 token(soft prompt),冻结全部模型参数。

  • 优点:参数极少(k×d×层数);缺点:占上下文长度(有效输入变短)、优化难(初始化敏感,要用 P-Tuning v2 式的重参数化才稳)、效果上限低于 LoRA。适合超小数据任务。

LoRA(2021):权重旁挂低秩矩阵 ΔW=BA 训练,推理前可合并回原权重,零额外延迟。

  • 优点:效果最好、可合并、可热插拔(多任务共享基座);
  • 缺点:target_modules 和 r 要选对。
AdapterPrefixLoRA
参数位置层间模块输入前缀权重旁路
推理开销有(多算几层)有(占上下文)无(可合并)
效果上限中低高
代表场景早期 NLP小数据轻适配事实标准

工程结论:现在闭眼选 LoRA/QLoRA;Prompt Tuning 只在「千级样本、超多任务共享部署」时考虑;Adapter 基本只剩历史意义。