点击下方卡片,关注「集智书童」公众号
导读
SAM展现出卓越的零样本分割能力;然而,其高昂的计算成本使得边缘部署变得困难。尽管PTQ提供了一种有前景的压缩解决方案,但现有方法在应用于SAM时,由于其专业的模型组件和可 Prompt 的工作流程,效果并不令人满意:
-
- Mask 解码器的注意力表现出极端异常值,作者发现,通过进行激进的裁剪,甚至降至
,而不是平滑或隔离,可以有效抑制异常值,同时保持语义能力。不幸的是,传统的指标(例如,均方误差MSE)无法提供如此大规模的裁剪。 2. 2. 现有的重建方法可能忽略了 Prompt 的意图,导致在 Prompt 交互过程中出现扭曲的视觉编码。
为了解决上述问题,本文提出了SAQ-SAM,通过语义对齐提升SAM的PTQ。具体来说,作者提出了感知一致性裁剪(Perceptual-Consistency Clipping),利用注意力焦点重叠作为裁剪指标,以显著抑制异常值。此外,作者提出了 Prompt 感知重建(Prompt-Aware Reconstruction),通过利用 Mask 解码器中的交叉注意力响应,结合视觉 Prompt 交互,从而在分布和语义上促进对齐。为确保交互效率,作者还引入了视觉 Token 的层跳过策略。
在多种分割任务和不同大小的SAM上进行了大量实验,结果表明,所提出的SAQ-SAM在性能上始终优于 Baseline 。例如,当将SAM-B量化为4位时,SAQ-SAM在实例分割任务中比 Baseline 实现了
更高的mAP。
- 引言
分段任何模型 [10](SAM)作为可 Prompt 分割的基础模型展现出有前景的应用。得益于充分的预训练和 Prompt 引导的微调,SAM展现出强大的零样本或少量样本泛化能力,能够与用户交互式地分割感兴趣的区域。然而,SAM强大的表示能力伴随着大量的参数和高计算成本,限制了其在资源受限设备上的潜在应用 [2, 38]。
模型量化可以通过将权重和激活值转换为低比特整数来降低计算开销和模型大小[4, 5, 7],而训练后量化(PTQ)[11, 26],它通过使用一小部分 未标注 数据高效地校准量化参数,是一种很有前景的方法。不幸的是,SAM具有独特的激活分布和网络架构,这对PTQ提出了新的挑战,使得传统方法显得不足。为此,一些研究尝试针对SAM的特性提出特定的解决方案。例如,PQ-SAM[21]通过分层聚类相似通道来学习统一的转换因子。然而,它仅限于具有经典Transformer结构的图像编码器,并且缺乏对具有更复杂连接路径的 Mask 解码器的适应性。
在实际应用中,尽管SAM的参数主要集中在图像编码器中,但 Mask 解码器也可能引入显著的计算开销。例如,在全景语义分割任务中,对于单张图像, Mask 解码器必须对多个 Prompt 进行多次大批量的推理,而图像编码器只需要单次正向传播[1]。因此,PTQ4SAM [21] 提出了一种针对 Mask 解码器量化 Bottleneck 的改进方法,该方法通过QK等价变换在后键线性激活中合并双模态分布。然而,这些方法旨在更好地在分布 Level 对全精度模型(FP)进行对齐,其性能仍然远未令人满意,尤其是在低比特量化方面。
本文通过实证观察发现,SAM的 Mask 解码器的QK激活分布存在极端异常值,这成为了量化性能的 Bottleneck 。为了处理这些异常值,传统方法通常采用平滑或隔离方案。然而,由于 Mask 解码器复杂的连接路径,它难以适应这些方法。幸运的是,作者发现了一个有趣的现象:直接用较大的幅度截断这些异常值对最终分割性能的影响非常小。例如,SAM-B的 Query 输入范围跨越[-178,182],将其激进地截断到[-5, 5]并不会损害任何准确性。这是因为,尽管修改了原始分布,但它保持了语义对齐,如图3所示。
众所周知,量化通常从更紧凑的截断范围中受益,例如,使用[-5, 5]的截断范围可以使6位SAM-B的mAP从17.4%提升到29.2%,提高11.8%。然而,旨在对齐分布的传统距离度量(例如,MSE)无法提供如此大规模的截断。例如,如图1所示,MSE给出的截断范围为[-167,177],这导致FP的准确率从37.0%严重下降到17.4%。因此,作者旨在建立语义 Level 的度量标准,通过确保语义对齐来促进有效的异常值截断。此外,之前的量化重建方法主要关注FP响应的局部重建,而忽略了 Prompt 的语义意图。这种疏忽导致在校准图像上过度拟合,从而在视觉 Prompt 交互中造成特征扭曲,最终损害分割精度。为此,作者也受到启发,探索将 Prompt 交互集成到重建过程中,以促进语义对齐。
基于上述见解,作者提出了SAQ-SAM,该算法通过促进与FP模型的语义级对齐,显著提升了SAM的PTQ性能。具体而言,作者提出了感知一致性裁剪,以极大地抑制QK激活中的异常值,而不进行平滑或隔离操作。通过主动测量量化引起的注意力焦点偏差,裁剪范围确定时不受异常值幅度的干扰。
如图3所示,SAQ-SAM明显缓解了在分布级对齐方法(例如MSE)中明显的注意力功能退化问题,从而保持语义一致性。此外,作者还提出了 Prompt 感知重建,该算法在 Prompt 的指导下学习量化参数。通过利用 Mask 解码器促进 Prompt 与图像 Token 之间的交互,作者重建了由FP模型监督的交互响应。这保留了视觉特征与 Prompt 之间的对应关系,同时缓解了局部响应重建方法的过拟合问题。
主要贡献总结如下:
- • 作者观察到在SAM中激进地剪枝异常值对分割性能的影响最小。基于这一洞察,作者提出了感知一致性剪枝,该技术利用注意力焦点偏差作为度量标准来引导大范围剪枝,从而抑制异常值同时保持语义对齐。
- • 作者提出了Prompt-Aware Reconstruction方法,该方法将 Mask 解码器内的 Prompt 图像交互整合到局部重建中。这使得量化模型能够在视觉特征和 Prompt 意图上与FP模型对齐,从而促进在分布和语义层面的双重对齐。
- • 作者在多种尺寸的SAMs上进行了广泛的实验,涵盖了 Prompt 分割和全景语义分割任务,证明了SAQ-SAM相对于 Baseline 方法的持续优越性。例如,在实例分割任务中,作者的4位SAQ-SAM在SAM-B上实现了平均14%的mAP提升,并在SAM-L上保持了近乎无损的准确率。
- 相关工作
2.1 段落任何内容
Segment Anything [10, 27](SAM)已成为一种通用且可 Prompt 的图像分割模型。该模型在包含超过1100万张图像和10亿个 Mask 的庞大数据集上训练,展现出在各种下游应用中的出色泛化能力,包括边缘检测、目标 Proposal 和实例分割。其能力还扩展到关键领域,如医学图像标注 [3, 24],在该领域,SAM显示出作为强大诊断支持工具的巨大潜力。然而,SAM强大的能力伴随着庞大的内存和计算成本。尽管一些研究提出了各种轻量级变体以加速推理 [35, 36, 39],但这些方法的模型参数仍保持浮点类型。这阻止了它们从高效的低精度整数运算单元中获益,导致效率不佳。
2.2. 训练后量化
模型量化[7, 14, 15]通过将浮点值转换为整数来降低内存和计算成本。为了减轻性能下降,提出了各种方法,大致可以分为两类:量化感知训练(QAT)和PTQ。QAT以高成本使用带标签的数据微调量化模型[8, 13],而PTQ则高效地使用少量 未标注 样本来设置量化参数[18, 25]。
SAM同时利用Transformer结构对其图像编码器和 Mask 解码器进行设计。众多研究致力于为Transformer结构开发PTQ方法。SmoothQuant [33]通过等效变换来平滑激活分布,减轻有害异常值的影响。OmniQuant [30]通过使等效变换因子和裁剪范围可学习,提高了平滑方法的适用性。RepQViT [16]和RepQuant [17]通过尺度重新参数化将量化与推理解耦,以实现高效的硬件友好量化。除了这些分布调整方法外,一些方法利用了注意力机制的特点。例如,PTQ-ViT [22]通过保持注意力排名一致性和使用模块响应的核范数搜索混合精度方案来确定量化裁剪。其他方法,如BRECQ [11]、QDrop [32]和PD-Quant [20],旨在学习最优量化参数。它们在FP模型的监督下重建量化模型的内部响应。
尽管上述方法在处理Transformer结构方面取得了显著性能,但SAM独特的激活分布提出了新的挑战,导致其性能不尽如人意。为此,一些研究尝试进行改进。为了解决激活中的通道分布不平衡问题,PQSAM [21]通过将具有相似分布的通道进行分层聚类,并为每个组学习共享的变换因子,从而降低优化复杂性。PTQ4SAM [23]识别并整合了SAM Mask 解码器后键线性激活中的双峰分布,同时实施自适应粒度量化器以适应不同的注意力模块。然而,这些在分布层面的改进在实际应用中表现不佳。
- 方法
3.1. 前言
SAM中的Transformer层:在SAM的图像编码器中,Transformer层交替使用窗口注意力和全局注意力[12],前者将图像划分为非重叠窗口,并在每个窗口内计算自注意力而不进行位移。在 Mask 解码器中,使用轻量级的双向Transformer来通过交叉注意力更新图像嵌入和 Prompt Token ,促进 Prompt 和图像之间的信息交互。具体来说, Token 到图像的交叉注意力使用 Prompt Token 作为 Query ,并使用图像 Token 作为 Key和Value ,而图像到 Token 的交叉注意力则采用相反的配置以确保全面的特征交互。
量化校准:均匀量化器是最常用且部署友好的量化器,其定义如下:
量
化
和
分别为浮点值和量化值。去量化值
近似于
。
表示四舍五入到最接近的整数操作。clip 函数截断超出 b 位范围的值。量化尺度
和零点
是需要搜索的 PTQ 参数,由截断边界
和
确定如下:
确定截断边界的过程对于提高PTQ中的量化性能至关重要,这也被称为校准。
3.2. 感知一致性裁剪
洞见。观察到在QK激活中激进地裁剪极端异常值,虽然会显著修改分布,但并不会损害分割性能,作者的目标是突破分布对齐的限制,并转向利用注意力机制的语义性质以寻求潜在的突破。如[31]中所述,在Transformer架构中,注意力机制捕捉模型感知到的语义信息。它将更多的关注分配给感兴趣的区域,从而强化与任务最相关的特征。在此基础上,作者寻求利用注意力机制建模的潜在关系,在量化和非量化之间保持语义 Level 的连续性。
注意力焦点重叠指标。受此启发,作者定义高注意力 Token 为感知焦点,并最大化量化前后注意力图中焦点区域的重叠,从而保持注意力感知的一致性。该指标公式的制定过程描述如下。
定义注意力模块的输入为
,
,其中
和
分别是 Query Token 和键 Token 的数量。注意,为了简化,省略了批量和头维度。注意力得分矩阵的计算如下:
是QK线性层的权重矩阵,
是每个头的维度。通过Softmax函数将注意力分数归一化成注意力权重矩阵,如下所示:
注意力权重向量
表示第 i 个 Query 向量
与所有键向量
的相似度。较大的权重
表明
与
的匹配度更高,模型认为相应的值向量
对于当前任务更为重要。
基于上述注意力分数,作者旨在区分显著区域,并将它们定义为注意力焦点。为实现此目标,使用阈值因子
对显著值进行过滤,从而得到以下二值化的注意力焦点 Mask :
𝟙
𝟙
表示一个指示函数,当条件为真时返回 1,否则返回 0。
注意力焦点 Mask 暗示了由该注意力模块建模的关键感知信息。在此基础上,作者可以保持与FP模型中焦点模式的连续性,从而实现语义层面的对齐。具体来说,作者定义了注意力焦点重叠度指标,该指标计算量化前后注意力焦点 Mask 的重叠情况,如下所示:
其中,带有帽形上标的变量
表示量化模型的得分/ Mask 。此指标的范围在 (O,1) 之间,感知一致性裁剪的距离函数定义为:
然后,作者利用定义的注意力焦点重叠指标来确定QK激活的最佳裁剪边界(即
和
)。与受分布限制的传统方法不同,作者提出的裁剪指标在语义层面上运行,使得裁剪决策更加有效。如图3所示,基于MSE的校准会导致严重的注意力退化,而作者的裁剪方法实现了与FP模型更接近的结果,有效地保留了量化注意力模块的感知能力。
请注意,所提出的度量标准专门应用于QK激活,而其他激活则继续使用MSE度量标准进行校准。这种策略实现了模型在分布对齐和语义保真度之间的平衡权衡。通过保持这种平衡,作者避免了过度强调语义对齐的风险,否则可能会导致分布崩溃并降低整体模型性能。
3.3. Prompt 感知重建
洞察。量化重建方法通常在FP模型的监督下,通过局部最小化块响应误差来学习量化参数
,如下所示:
其中,
分别代表来自 FP 模型和量化模型的第
个块的输出。
是自适应舍入因子,由 AdaRound [26] 引入的一个额外的权重量化参数。虽然这种方法有效地提高了传统模型的 PTQ 性能,但在 SAM 模型中却遇到了困难,尤其是由于对纯图像信息的严重过拟合。在 SAM 模型中,为了达到预期的结果,图像编码器产生的图像嵌入被用来与 Mask 解码器中的 Prompt Token 进行交互。然而,仅仅考虑局部视觉响应忽略了 Prompt 的意图,可能会添加冗余信息,从而干扰 Prompt 与图像特征之间的交互,导致分割结果失真。
交互响应重建。为了解决上述问题,作者将 Prompt 符和图像 Token 之间的交互纳入重建过程,在FP模型的监督下实现更有效的匹配。具体来说,作者不是对局部视觉响应进行对齐,而是通过利用 Mask 解码器中的交互,重建融合了 Prompt 信息的混合图像 Token 。
如图2所示,作者利用SAM的 Mask 解码器中的现成交互模块,在不添加额外组件或进行额外训练的情况下,为图像 Token 引入 Prompt 信息。通过这种方式,混合图像 Token 可以按以下方式获得:
其中,
表示由 Prompt 编码器编码的 Prompt Token ,
表示从第
阶段输出中派生的图像 Token 。MaskDecoderModule 指的是双向Transformer,它是 Mask 解码器中的主要交互模块。随后,这些 Token 被重建以学习量化参数,即最小化混合图像 Token 与FP模型中相应响应之间的L2距离,如下所示:
最
小
化
,
其
中
为
变
量
。
Tk 和 Tk 分别来自FP模型和量化模型中的 Token 。
请注意,为确保 Prompt 图像交互的效率,定义的图像 Token
跳过后续层,并通过 Neck 直接进行降维。这种方法避免了与完整前向传递和梯度反向传播相关的过高计算成本,因此相较于传统的局部响应重建,仅引入了轻微的额外开销。此外,除了提高效率外,层跳过策略在性能保持方面也具有优势。通过缩短优化路径,它更好地保留了局部分布特性,并减少了由于传播过程过长可能发生的交互信息损失。
为了验证利用这些跳层 Token 进行交互的有效性,作者进行了验证实验,其中这些 Token 被用作最终的视觉嵌入以参与 Mask 解码推理。如图4所示的分割结果表明,每个阶段的输出都能够产生合理的分割结果,无需后续层的进一步处理。这为隐式地证明所SAQ-SAM能够实现有效的交互提供了证据,其中每个阶段的输出作为不同粒度 Level 的图像嵌入发挥作用。
为进一步提高参数学习效率和整体性能,作者将Transformer层划分为多个阶段,并采用分阶段学习的方法对量化参数进行优化,其中每个阶段的参数进行联合优化。先前的研究[29]已经证明了在重建中联合优化多个量化块的优势,因为它有效地捕捉了块间权重相关性。基于这一洞察,作者直观地定义全局注意力层作为阶段划分的边界。例如,在SAM-B中,层
和
使用全局注意力,而其余层使用窗口注意力。因此,层
构成阶段O,后续阶段以此类推。
- 实验
4.1 实验设置
Union (mIoU) 作为性能指标。
在语义分割实验中,SAM被用于提升传统语义分割器生成的分割 Mask 的质量。大量均匀分布在图像中的点作为 Prompt 信息。这些 Prompt 信息被分批次输入到SAM中,生成大量的 Mask 。通过一系列后处理步骤,这些 Mask 与语义分割器的输出进行匹配,从而形成最终的全景分割结果[1]。评估数据集为ADE20K[40],平均交并比(mIoU)作为性能指标。
实现细节。作者以PTQ4SAM [23]作为 Baseline 方法,同时保持实验设置的大致一致性以确保公平比较。具体来说,量化方案采用对激活的逐张量非对称量化和对权重的逐通道非对称量化,第一层和最后一层除外,它们保持未量化。校准集包含从训练数据集中随机抽取的32张图像。对于感知一致性裁剪(PCC)方法,作者将阈值因子
设置为0.5。所有QK激活(即 Query 线性层和键线性层的输入和输出)基于注意力焦点重叠度指标,使用第一个样本进行校准,而其他激活则基于所有样本的均方误差(MSE)进行校准。权重使用MSE进行校准。对于 Prompt 感知重建(PAR),图像编码器采用分阶段学习,而 Mask 解码器采用分层学习,迭代次数为2000次。特别地,由于损失较大, Mask 解码器末尾配备的额外交叉注意力块学习10000次。总的来说,与PTQ4SAM设置中的块状学习(迭代次数为20000次)相比,SAQ-SAM所需的时间成本要低得多。
Baseline 方法。作者采用先进的PTQ4SAM作为 Baseline [23]。为了进行比较分析,作者根据是否存在学习过程将方法分为两组。对于第一组基于统计的PTQ方法,作者将PCC方法整合到PTQ4SAM-S[23]中,称之为SAQ-PCC。至于第二组基于学习的PTQ方法,作者在PTQ4SAM-L[23]的基础上,用作者的PAR方法替换了QDrop[32],简称SAQ-PAR。当PCC方法进一步作为预处理步骤被整合时,作者建立了一个完整的方法,记为SAQSAM。
4.2 实例分割结果
在实例分割任务中,作者详细比较了在不同尺寸的SAM(包括SAM-B、SAM-L和SAM-H)与不同检测器(包括Faster R-CNN [28]、YOLOX [6]、H-Deformable-DETR [9]和DINO [37])结合使用时的性能。在COCO数据集上的结果列于表1中。SAQ-SAM在性能上始终表现出优越性。与 Baseline PTQ4SAM-S [23]相比,SAQPCC在6位SAM-B上的mAP实现了近两倍的提升(例如,使用DINO从20.4%提升到39.4%),并将崩溃的精度恢复到平均2.7% mAP。
4bit。对于SAM-L和SAM-H,在低比特设置中的优势尤为明显。例如,使用DINO时,SAQ-PCC将4位SAM-L的mAP从23.1%提升至27.8%,使用YOLOX时,将4位SAM-H的mAP从26.7%提升至28.4%。在重建方法方面,与使用简单QDrop的PTQ4SAM-L[23]相比,SAQ-SAM在计算成本更低的情况下实现了显著的提升。例如,SAQ-PAR将6位SAM-B的mAP从30.3%提升至31.9%,将4位SAM-B的mAP从16.0%提升至23.2%,两者均使用Faster R-CNN。对于更大的模型,它将4位SAM-L的mAP从36.6%提升至46.1%,使用DINO。此外,如果用作预处理步骤,PCC可以为PAR优化提供更有利的初始值,从而进一步增强低比特量化的性能。例如,SAQ-SAM将4位SAM-B的mAP从17.3%提升至31.8%,使用H-Deformable-DETR,并且对于4位SAM-L和SAM-H实现了接近无损的精度(例如,使用YOLOX时SAM-L仅下降1.4%,使用Faster R-CNN时SAM-H下降1.3%)。
4.3 语义分割结果
在语义分割任务中,作者采用了SegFormer [34] 作为语义分支,为SAM的 Mask 提供类别标签。在ADE20K数据集上的测试结果如表2所示。由于SAM生成的 Mask 经过了一系列后处理步骤,量化对最终性能的影响并不明显。尽管如此,SAQ-SAM全面提升了量化SAM-B的准确性。例如,SAQ-PCC将6位量化精度提高了1.74%的mIoU,从31.16%提升到32.9%,甚至超过了基于学习的PTQ4SAM-L(mIoU为32.65%)。此外,SAQ-SAM将性能提升至接近FP的水平,仅在6位时损失了0.13%的mIoU,在4位时损失了0.64%。
4.4. 消融研究
4.4.1. 注意力聚焦阈值设置
在提出的PCC模块中,作者使用阈值因子
来定义注意力的焦点区域。为了通用性,作者通常将
设置为0.5。为了探索这个超参数对SAQ-SAM性能的影响,作者在实例分割任务上进行了比较实验。将
设置为从0.3到0.9的值,6位SAM-B和4位SAM-L的结果如图5所示。作者的分析表明两个关键点:首先,随着
的变化,作者剪裁方法的表现略有波动,但始终优于 Baseline 方法,其中0.5是一个适中的选择。其次,SAQ-SAM对
的设置表现出异常的鲁棒性,在0.4到0.7的范围内实现了令人满意的表现。
4.4.2. 重建方法比较
受[29]的启发,作者将多个层根据全局注意力层划分为一个阶段,并将这些阶段视为优化单元。该方案不仅降低了计算成本,还捕捉了块之间的依赖关系,从而实现了更优的性能。为了研究作者提出的PAR方法在不同重建粒度(每层和每阶段)下的有效性,作者进行了详细的消融实验,比较了使用QDrop重建、作者的PromptAware重建以及使用PCC作为先验处理的案例的性能。作者使用YOLOX作为检测器对SAM-B进行了实例分割的量化。实验结果如表3所示。请注意,为了进行公平比较,所有实验中的学习设置保持一致,包括学习迭代次数、学习率、优化器和丢弃概率。结果表明,与每层学习相比,在各种方法中均表现出优势,表明每阶段粒度是一个更有效的选择。此外,SAQ-SAM在两种重建粒度下都表现出优异的性能,突出了将交互引入重建过程的重要性。
- 结论
本文提出了一种针对SAM模型的训练后量化框架SAQ-SAM。为了解决 Mask 解码器QK激活中的极端异常值问题,作者引入了一种语义保留的异常值裁剪方法,该方法能够有效抑制显著异常值,而不需要进行平滑或隔离处理。具体来说,作者通过最小化量化引起的注意力焦点偏差来确定最优裁剪边界,克服了基于分布方法的局限性。此外,作者将 Prompt 图像交互引入到重建过程中,学习视觉特征与 Prompt 意图之间的相关性,从而在语义和分布层面上实现对齐。
为了提高交互效率,作者还引入了一种层跳过策略和阶段划分方法。大量实验表明,SAQ-SAM在低比特场景下显著优于 Baseline 方法。未来,可以将这种方法扩展到加速SAM2,这是一种用于视频分割加速的有前景的方法。
参考
[1]. SAQ-SAM: Semantically-Aligned Quantization for Segment Anything Model
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)