什么是 适配器(Adapter)?
适配器(Adapter)是依赖基座的可训练状态,用于在冻结大部分基座参数时改变预训练模型行为。该词既可能指插入式瓶颈模块,也可能泛指 LoRA 等 PEFT 组件或保存学习结果的 Checkpoint 制品;这些含义不能混为一谈。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
经典瓶颈适配器会在冻结网络中插入残差模块。对隐藏状态 x,一种常见形式是 x + W_up σ(W_down x):W_down 将隐藏维度 d 投影到瓶颈维度 m,W_up 再映射回 d。这会增加串行前向计算,与用低秩因子表示权重更新、且在部分配置下可合并的 LoRA 不同。框架也常用 Adapter 泛指 LoRA、IA3、软提示等 PEFT 状态,或称呼其保存的 Checkpoint。Adapter 制品不是独立模型,它依赖准确的基座权重、架构、Tokenizer 或 Processor、输入模板、方法配置和运行时实现。多个已批准 Adapter 可以共享一个基座,但激活、组合、Batch、缓存、授权和回滚属于服务系统约束,不会因为 Checkpoint 较小就自动成立。
主要特点
- 使用附加到冻结或基本冻结基座、并与其组合的学习状态
- 可以是瓶颈模块、低秩更新、可学习提示、缩放向量或框架专用 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 与加速器缓存,隔离租户,观测延迟与质量并提供回滚。允许用户指定任意本地路径或远程仓库还会引入供应链风险,应只暴露审批后的公开名称。