论文阅读笔记——Adapter,AdapterFusion,AdapterDrop

Adapter

Adapter 论文

Adapter 是一组轻量级的参数,被添加到模型的中间层,以保护原有预训练模型的参数。

Adapter:少量参数近似恒等初始化 。注意:仍然增加了网络深度!!!

Adapter模块由两个前馈子层构成。第一个子层接收 Transformer 块的输出,并将原始输入维度 d 映射到较小的维度 m(通常m远小于d),以此限制模块的参数量。第二个子层则负责将维度m重新映射回d,作为模块的最终输出。这种设计使得 Adapter 模块能够在不调整整个模型参数的情况下,灵活适应新的下游任务,有效避免了全模型微调带来的计算负担和灾难性遗忘问题。通过引入少量任务特定的参数,Adapter 方法能够高效存储任务相关知识,显著降低模型微调所需的计算资源。

AdapterFusion

AdapterFusion 论文

将 Adapter 扩展到了多任务


AdapterFusion 将学习过程划分为两个阶段:

  1. 知识提取阶段:在此阶段,训练Adapter模块以捕捉下游任务的特定知识,并将这些知识编码到 Adapter 模块的参数中。
  2. 知识组合阶段:在此阶段,固定预训练模型参数和特定任务的 Adapter 参数,同时引入新的参数 Ψ,用于学习如何融合多个 Adapter 模块中的知识,从而提升模型在目标任务上的性能。

具体而言,首先针对 N 个不同的下游任务 分别训练 N 个独立的 Adapter 模块。随后,AdapterFusion 通过固定预训练参数 Θ 和所有 Adapter 参数 Φ,并引入新参数 Ψ,利用 N 个下游任务的数据集进行训练,学习如何组合这些 Adapter 模块以解决特定任务 。参数Ψ在每一层中包含 Key、Value和Query(如右侧架构所示)。在 Transformer 的每一层中,前馈网络子层的输出作为 Query,而各个 Adapter 模块的输出分别作为 Key 和 Value。通过计算 Query 与 Key 的点积并输入 SoftMax 函数,AdapterFusion 能够根据上下文动态加权不同的 Adapter 模块。在给定上下文中,AdapterFusion 学习如何混合已训练 Adapter 模块的参数,并根据输入激活最相关的 Adapter 模块。

优势与挑战

  • 通过将Adapter的训练分为知识提取和知识组合两个阶段,AdapterFusion 有效解决了灾难性遗忘、任务间干扰和训练不稳定的问题。
  • 然而,Adapter模块的引入增加了模型的整体参数量,可能会对推理性能产生一定影响。

AdapterDrop

AdapterDrop 论文

Adapter 和 AdapterFusion 推理加速版

为了提升推理效率,可以在推理时对某些层的 Adapter 进行剪枝。作者提出了一种策略,即在推理时剪掉最靠近输入的前 n 层 Adapter。为了尽可能减少性能损失,作者设计了两种训练方案:

  1. Specialized AdapterDrop:在训练时固定剪枝层数 n,推理时也固定剪掉前 n 层 Adapter。
  2. AdapterDrop(Robust AdapterDrop :在训练时,每个 batch 随机选择不同的 n 值进行训练,使得训练后的模型能够适应多种剪枝配置。
    由于模型的其他参数在训练过程中是固定的,梯度只需回传到保留的最早一层 Adapter 即可。这种设计不仅减少了计算量,还能在推理时灵活调整 Adapter 的使用,从而在加速推理的同时尽可能保持模型性能。

对于 AdapterFusion 进行剪枝:

  • 去除前几层 AdapterFusion(AF)层对模型性能的影响因任务而异。例如,在 RTE 任务中,去除 AF 层对性能影响较小,而在 CoLA 任务中,模型对去除 AF 层非常敏感。这表明,直接去除 AF 层并不是一种通用的优化方法。
  • 为了更有效地提升推理速度,作者提出了一种基于贡献度的剪枝策略:通过测量每个 Adapter 在训练集上的平均激活水平(即加权后的输出),识别出每层中对输出贡献较小的 Adapter。具体实现中,每层仅保留两个贡献最高的 Adapter,其余 Adapter 被剪枝。实验表明,这种方法在几乎不损失模型性能的情况下,可以将推理速度提升 68%。这种策略不仅显著加速了推理过程,还保持了模型的整体性能,是一种更为精细和高效的优化方法。*
相关推荐
算法打盹中11 小时前
基于树莓派与Jetson Nano集群的实验边缘设备上视觉语言模型(VLMs)的性能评估与实践探索
人工智能·计算机视觉·语言模型·自然语言处理·树莓派·多模态·jetson nano
守.护11 小时前
云计算学习笔记——HTTP服务、NFS服务篇
笔记·学习·云计算
卿·静11 小时前
Node.js对接即梦AI实现“千军万马”视频
前端·javascript·人工智能·后端·node.js
YangYang9YangYan11 小时前
2025年金融专业人士职业认证发展路径分析
大数据·人工智能·金融
AIbase202411 小时前
GEO优化服务:技术演进如何重塑搜索优化行业新范式
大数据·人工智能
摆烂z11 小时前
ollama笔记
人工智能
连合机器人11 小时前
城市脉搏中的“绿色卫士”:当智能科技邂逅城市清洁
人工智能·ai·设备租赁·连合直租·智能清洁专家·有鹿巡扫机器人
wdfk_prog11 小时前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
贾全12 小时前
准备篇:搭建你的AI“炼丹炉“
人工智能·ai·vlm·多模态ai·vlm环境配置