ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

轻量级模型微调技术:Adapter(适配器)

轻量级模型微调技术:Adapter(适配器) 目录一、Adapter基本概念一Adapter的工作原理二Adapter的优势二、几种常见的Adapter一Houlsby Adapter二Parallel Adapter三Compacter三、Adapter vs LoRA四、T2I-Adapter和IP-Adapter一T2I-Adapter二IP-Adapter三T2I-Adapter 与 IP-Adapter 对比四LLM Adapter、T2I-Adapter与IP-Adapter大模型中的Adapter是一种轻量级模型微调技术旨在在大规模预训练模型的基础上通过插入少量可训练的参数来实现特定任务的微调而无需重新训练整个模型。Adapter方法有效地降低了微调大模型的计算和存储成本同时保留了预训练模型的能力和知识。一、Adapter基本概念一Adapter的工作原理Adapter通常是在Transformer架构中的每个层之间插入的一些可训练层。一个典型的Adapter模块设计如下输入降维通过一个小型的全连接层将输入的特征维度从原始的高维度降低到一个更小的维度非线性激活通常使用ReLU或GELU等激活函数对降维后的特征进行非线性变换输出升维通过另一个全连接层将降维后的特征重新映射回原始的高维空间。具体数学表示为给定输入特征h ∈ R d h\in \mathbb{R}^dh∈RdAdapter模块的操作可以表示为z ReLU ( h W 1 ) h h o u t z W 2 z\text{ReLU}(hW_1)h \\ h_{out}zW_2zReLU(hW1​)hhout​zW2​其中W 1 ∈ R d × r W_1\in R^{d\times r}W1​∈Rd×r和W 2 ∈ R r × d W_2\in R^{r\times d}W2​∈Rr×d是Adapter中可训练的参数r rr是降维后的中间维度通常取值远小于d dd因此引入的参数量非常少。classAdapter(nn.Module):def__init__(self,d_model,bottleneck64):super().__init__()self.downnn.Linear(d_model,bottleneck)self.upnn.Linear(bottleneck,d_model)self.actnn.ReLU()# 初始化 up 为 0保证初始时 adapter 输出为 0nn.init.zeros_(self.up.weight)nn.init.zeros_(self.up.bias)defforward(self,x):returnself.up(self.act(self.down(x)))# 注意没有残差 x 因为残差在层级别做二Adapter的优势参数效率高Adapter只微调少量新引入的参数避免了对整个大模型的微调。比如BERT-base有1.1亿参数而典型的Adapter模块可能只有几百万参数微调时显著减少了需要调整的参数量。任务间参数共享Adapter使得不同任务的参数模块可以独立微调但基础的预训练模型参数仍然保持共享。这种方法允许多个任务共享相同的大模型只需存储各个任务的Adapter参数。训练稳定性由于Adapter只更新小部分参数相比全参数微调训练过程更为稳定并且对较小的数据集也更加友好避免了过拟合。二、几种常见的Adapter一Houlsby AdapterHoulsby Adapter是最早的Adapter之一它的实现方式是在Transformer的每一层的自注意力块和前馈网络之间插入一个Adapter模块。这种设计没有直接修改原始权重矩阵而是通过增加新的可训练层来实现微调。Adapter模块产生的输出与原始特征进行残差连接类似于残差网络的设计。h out Adapter ( h ) h h_{\text{out}}\text{Adapter}(h)hhout​Adapter(h)h二Parallel AdapterParallel Adapter与Houlsby Adapter不同它与Transformer的层是平行的工作方式。它的输出与原始Transformer层的输出进行融合有点类似于残差网络。具体来说特征融合Parallel Adapter 不会直接修改Transformer的层输出而是将Adapter模块的输出与Transformer层的输出相加或进行其他融合操作结构差异不同于将Adapter插入到主网络中平行结构的Adapter与Transformer层并行工作类似残差结构可以在主干网络和Adapter之间进行特征融合。三CompacterCompacter是一种在减少参数量的基础上进一步优化的Adapter变体使用了低秩参数分解技术来减少Adapter中的参数量。具体来说是将Adapter模块的权重矩阵表示为几个低秩矩阵的乘积来实现参数压缩低秩分解类似于LoRA的思想Compactor对Adapter模块内部的权重矩阵进行低秩分解即将一个大的矩阵拆分为两个或多个小的矩阵这样可以减少训练参数量‘参数更新方式虽然使用了低秩分解但它仅限于Adapter模块内部的权重更新并不会直接去修改Transformer原始的权重矩阵。也就是说Compacter对原有的大模型参数是保持冻结的只对插入的低秩结构进行训练。三、Adapter vs LoRAAdapter和LoRA都是PEFT方法但是思路不同维度AdapterLoRA改动方式插入新模块旁路低秩分解是否改变原结构是增加层否并联分支推理延迟有串行增加计算无可合并回原权重参数量稍多更少多任务切换换 adapter 模块换 LoRA 权重核心差异Adapter串行插入推理时增加延迟必须经过adapterLoRA并联分支推理时可以W B A WBAWBA合并零额外延迟四、T2I-Adapter和IP-Adapter一T2I-AdapterT2I-Adapter学习适配器为文本到图像扩散模型挖掘更多可控能力T2I-Adapter 的核心目标是为文生图模型增加结构性控制能力比如让你用一张草图、深度图或语义分割图来精确控制画面的构图。核心架构一个独立于UNet的轻量级网络由4个特征提取块和3个下采样块组成工作原理采用轻量的卷积和残差块将外部的“结构图”与 UNet 模型中间层的特征在空间维度上对齐局限有分析认为T2I-Adapter 的特征交互方式不够充分图像参考网络通过 CNN 直接与 UNet 连接对特征的引导可能不够精细T2I-Adapter 的工作流程输入处理输入的 512x512 结构条件图首先通过 pixel unshuffle 操作被下采样到 64x64 的尺寸特征提取在4个不同的尺度上每个尺度包含1个卷积层和2个残差块逐步提取多尺度的条件特征特征注入提取出的多尺度特征被直接加到UNet 编码器对应尺度的中间特征图上从而在生成过程中“注入”结构引导信息。二IP-AdapterIP-Adapter用于文本到图像扩散模型的文本兼容图像提示适配器IP-Adapter 的目标是让文生图模型具备图像提示Image Prompt能力即你给一张参考图模型就能生成风格或内容相似的图像。核心设计解耦交叉注意力。它在原有的文本交叉注意力旁新增一个独立的、针对图像特征的交叉注意力分支。这意味着文本和图像特征各走各的通道互不干扰但最终效果会叠加在一起共同引导生成。IP-Adapter 的工作流程特征提取使用一个冻结的 CLIP Vision 模型对输入的参考图像进行编码提取图像特征维度对齐通过一个线性层Linear和层归一化LN将图像特征调整到与文本特征相匹配的维度解耦注意力计算在 UNet 原有的文本交叉注意力层旁新增一个并行的图像交叉注意力层。文本特征和图像特征分别独立地作为 Key 和 Value 参与注意力计算互不干扰最后将文本交叉注意力的输出和图像交叉注意力的输出相加共同引导 UNet 的去噪过程。三T2I-Adapter 与 IP-Adapter 对比特性T2I-AdapterIP-Adapter核心功能结构控制草图、深度、姿势图像参考风格、内容、身份输入类型结构化条件图如 Canny、Depth任意参考图像核心机制卷积/残差块空间维度对齐解耦交叉注意力特征维度对齐插入位置UNet 外部与 UNet 特征相加UNet 内部在交叉注意力层旁新增分支参数效率轻量极轻量约 22M典型用途精确控制画面构图、姿态风格迁移、角色一致性、多模态生成四LLM Adapter、T2I-Adapter与IP-Adapter思想上类似三者都属于 PEFT都冻结基座、只训小模块、即插即用。架构上不同LLM Adapter 注入 hidden state适配 NLP 任务T2I-Adapter 注入 UNet 特征图控制图像结构IP-Adapter 注入 交叉注意力提供图像风格参考。维度LLM AdapterT2I-AdapterIP-Adapter作用模态文本图像 → 图像图像 → 图像注入位置Transformer 层间UNet 编码器特征图UNet 交叉注意力层注入方式串行/并行瓶颈层特征相加空间对齐解耦交叉注意力并行分支输入来源文本 hidden state结构条件图参考图像是否改注意力否否是新增图像注意力分支是否可合并否否否参数量1~5%77M22M
返回列表