什么是 适配器(Adapter)?
适配器(Adapter)是依赖基座的可训练状态,用于在冻结大部分基座参数时改变预训练模型行为。该词既可能指插入式瓶颈模块,也可能泛指 LoRA 等 PEFT 组件或保存学习结果的 Checkpoint 制品;这些含义不能混为一谈。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
区分模块、方法与制品三种含义
在原始[瓶颈 Adapter 论文](https://arxiv.org/html/1902.00751)中,Adapter 是插入冻结 Transformer 的小型残差网络;当前 Library 也会用该词表示一种可配置 PEFT 方法或其保存状态。比较 LoRA、Soft Prompt 或选择性微调前,必须先说明具体机制,因为它们更新的张量、前向计算、组合方式和可合并性并不相同。
追踪瓶颈残差计算路径
经典模块把宽度为 d 的隐藏向量降维到瓶颈宽度 m,经过非线性变换后升回 d,再与残差流相加。忽略 Bias 与任务 Head 时,其权重数为 2dm,但参数量不能单独决定 Activation Memory 或延迟。论文中的 BERT 与 GLUE 效率只属于对应架构和评测协议,不能外推到任意模型或负载。
分别验证组合与服务形态
每个 Adapter 都要绑定不可变基座权重、架构、Tokenizer 或 Processor、Template、配置、Framework 与评测 Revision。当前 [AdapterHub 组合指南](https://docs.adapterhub.ml/adapter_composition.html)提供 Stack、Fuse、Split、Parallel 和 Average 等方法专属组合,并列出模型例外。应测试实际激活组合,只允许授权目录名称,测量新增延迟和内存,并保留兼容回滚版本。
主要特点
- 使用附加到冻结或基本冻结基座、并与其组合的学习状态
- 可以是瓶颈模块、低秩更新、可学习提示、缩放向量或框架专用 PEFT 组件
- 推理开销与可合并性取决于方法;经典瓶颈模块不等同于可合并 LoRA
- 要求基座权重、架构、Tokenizer 或 Processor、模板和实现完全兼容
- 属于独立版本的行为变更,需要任务、回归、安全、延迟与一致性评测
- 只有明确服务上限、缓存策略、授权、可观测性和回滚时,才能安全维护共享基座变体
常见用途
- 在保留不可变共享基座时增加任务或领域专用行为
- 使用相同数据与评测协议比较多种适配机制
- 发布带有显式基座依赖、可独立版本化的紧凑模型变体
- 在兼容基础设施上服务受控的租户、语言或工作流 Adapter 目录
- 回滚适配行为,同时避免误认基座、Tokenizer 或模板身份
示例
Loading code...常见问题
LoRA 是适配器方法吗?
许多库把 Adapter 作为包含 LoRA 的总称,因为 LoRA 会为冻结基座添加可独立训练的状态。但从机制看,LoRA 的低秩权重更新不同于插入前向路径的经典瓶颈适配器。讨论架构、延迟或合并时,应明确 Adapter 使用的是哪一种含义。
Adapter 和 PEFT 有什么区别?
PEFT 是参数高效适配方法的上位概念。Adapter 可能专指插入式瓶颈模块,也可能泛指 PEFT 组件或保存适配状态的 Checkpoint。LoRA、软提示、选择性参数更新和瓶颈模块都可以属于 PEFT,但它们的计算路径与制品格式不同。
所有 Adapter 都能合并进基座模型吗?
不能。LoRA 类增量权重在框架、数据类型、量化方式和配置兼容时通常可以合并;瓶颈模块与软提示会改变前向路径,一般保持独立。即使框架支持合并,也会产生新的完整模型制品,需要重新进行有限值、一致性、留出集、安全和服务验证。
Adapter Checkpoint 可以脱离基座运行吗?
通常不能。Checkpoint 保存学习到的适配状态与配置,而不是全部基座权重。加载时需要兼容的基座 Revision 与架构,通常还依赖相同 Tokenizer 或 Processor、输入模板、框架行为和目标模块名称。应记录不可变 Revision 与哈希,不能只依赖仓库名称。
动态切换 Adapter 天然安全吗?
不安全。服务系统必须验证兼容性,只允许授权目录中的制品,限制已加载和并发激活数量,管理 CPU 与加速器缓存,隔离租户,观测延迟与质量并提供回滚。允许用户指定任意本地路径或远程仓库还会引入供应链风险,应只暴露审批后的公开名称。