点击下方卡片,关注「集智书童」公众号
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」
AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
部署视觉 Transformer 的成本日益成为广泛工业应用的障碍。现有的压缩方法需要额外的端到端微调,或者在运行时产生重大缺点,因此不适合在线推理。
作者引入了视觉词 Token 器 (VWT),这是一种无需训练的方法,可以降低能耗,同时保留性能和运行时间。
VWT 将经常使用的视觉子词(视觉词)分组到视觉词中,而罕见的视觉子词保持不变。为此,利用图像内或图像间的统计信息来识别相似的视觉概念以进行压缩。
实验表明,在最多20%的运行时间增加的情况下,功耗可以减少19%。
与8位量化和 Token 合并的比较方法达到了较低或相似的能量效率,但运行时间(最多为2倍或更多)的代价更高。
作者的结果表明,VWT非常适合在线推理,性能损失可以接受。
1 Introduction
近年来,深度学习已在世界各地的多种系统中得到持续整合。从编码到游戏,神经网络在在线场景中越来越广泛地应用,实时处理异步请求。然而,由于现代架构的大小和复杂性,这些模型在实际运行中成本高昂。为提高模型效率,已经提出了各种方法,如知识蒸馏[22]、剪枝[21,38]和量化[11]。然而,许多这些方法要么需要端到端的精细调整以恢复性能,要么会显著降低运行时间。
在自然语言处理(NLP)领域,提高效率的趋势是通过对分词进行改进。较新的大型语言模型(LLMs)[14, 53]具有明显比其早期对应物更大的词汇量[12, 42],从而在各种分布下产生较短的序列。对于计算机视觉,越来越关注减少部署视觉 Transformer (ViT)[13]的成本。作为大型视觉语言系统的图像编码器,ViTs被用作处理固定的一组 Token 。类似于卷积神经网络中的下采样,大多数研究集中在合并和/或剪枝中间层 Token 以降低计算开销。鉴于图像和文本模式中的 Transformer 具有相似的架构,作者的工作则着眼于通过将图像分成可变 Token 集来实现效率的 Token 化。
为引入变异性,作者借鉴了自然语言处理(NLP)中使用的子词分词算法,该算法遵循的原则是常见词应保持不变,而罕用词应分解为有意义的子词单元。作者不同于采用自上而下的方法 - 将词分解为子词,而是采用自下而上的方法,将图像子词(图像块)分组为视觉词。作者还扭曲了底层原理:经常使用的图像块应分组,因为它们更有可能描述常见特征或背景,而不常用的图像块保持不变,因为它们可能携带与任务相关的信息。作者提出两种方法来捕捉这一原则。第一种是内图像方法,其中每个图像中像素方差最低的块被分组,因为它们更有可能代表均匀区域(例如背景)。第二种是跨图像方法,其中多个图像的基本特征(如颜色或边缘)被发现为视觉词。然后,根据这些基本特征的相似性,将图像块分组。重要的是,具有独特特征(即与任何视觉词具有高相似度)的图像块保持不变,并形成视觉子词。
2 Related Work
高效的ViTs。大多数提高ViTs效率的工作都集中在利用重要性分数来减少中间层的 Token 。在[4, 25, 30, 60]中,冗余性通过 Token 融合得到解决。在[45]和[50]中,这些冗余 Token 被选择性剪裁。最近的努力[6, 7, 8, 24]试图结合合并和剪裁的优势。在[54]中,引入了一个额外的度量指标,称为能量得分,以更好地识别冗余性。独特地,[16]使用逆变换采样选择重要 Token 。对作者工作最相关的是[37]和[5]。前者通过聚类将 Token 分配给质心,而后者在训练过程中逐步合并 Token 。
专用分词器。作者的方法也受到了NLP领域高效推理工作的启发。越来越多的分词器词汇专业化以减少给定分布的 Token 长度。在[18]中,通过_快速词汇迁移_(FVT)对分词器进行域适应,确保产生的子词或字符 Token 更少。接着,[19]引入了在词级边界之外进行 Token 分词的n-gram。词汇专业化与FVT相结合,也被证明可以加速现代LLM的代码生成[9]。同时,[61]分析了各种词汇适应技术的有效性,用于高效跨语言推理。最近,[40]利用超网络实现了新领域适应词汇的零样本 Token 器迁移。
向量量化。将连续分布离散化的想法在许多工作中得到了探索,最近在图像生成中。 [62]利用聚类学习一个编码器,将关键点描述符映射到离散视觉词。在 [3, 58]中,离散化被应用于ViTs的建模中。 [55]通过引入_向量量化变分自动编码器_(VQ-VAE)方法,学习离散图像表示。 [15]和[65]通过结合 Transformer 的表达力和对抗框架,进一步改进了VQ-VAE。越来越多的视觉语言模型与编码器进行图像合成,采用自回归方式。最后,[63]通过将图像分解为视觉概念来解决解耦表示学习和场景分解问题。
3 Visual Word Tokenizer
在ViTs中,分词是将图像划分为一系列patch(分词)的过程,然后将这些分词映射到一系列的嵌入。分词的数量通常固定(例如,197个),基于架构和超参数的选择。作者寻求将图像划分为可变长度的输入(例如,某些图像将使用80个分词,而其他图像将使用100个分词)。这种可变性是由常规文本分词器[17, 26, 48, 59]引入的,以提高模型效率。作者通过基于图像空间中某种共同性的视觉词来实现这一目标(即视觉子词)。这些视觉词捕捉常用的分词,同时保留不常用的分词。可以使用只看一个图像的统计(即内图像方法)或看多个图像的统计(即跨图像方法)来实现简单的有效分组。图2总结了视觉词分词器 (VWT)。
An intra-image approach
图2中,这种方法仅利用部署步骤将具有最低像素方差的前k个 Patch 分组,而将其余部分保持单独。为了压缩分组 Token ,作者选择将其舍弃,因为它们往往表现出过度的同质性。这里不包括[CLS] Token 进行舍弃。这种方法受到[39]的启发,该文献旨在降低OWLv2的开词汇目标检测器的训练成本。舍弃具有最低像素方差的 Patch 可以消除原始图像的填充区域和均匀背景,从而提高训练效率。
An inter-image approach
受到文本分词器和图像生成的代码书启发,作者提出了一种可变长度的分词器,该分词器通过统计许多图像中的视觉词来发现视觉词。分词器包含两个步骤:预处理和部署预处理。词袋视觉词(BoVW)是一种通过离散表示来建模图像的流行方法。在[62]中,k均值聚类被应用于SIFT[34]的关键点描述符,以学习一组固定的质心。这些质心代表了一个称为“向量量化”(VQ)的过程,其中多个描述符被映射到词汇表。在作者的方法中,作者通过构建使用图像空间中的 Patch 的BoVW来实现这一框架。作者的设计选择主要受到两个因素的驱动。首先,作者发现关键点描述符对于推理来说成本高昂。在每个前向传播中,计算每个图像的关键点将显著增加运行时间。其次,在作者的早期实验中,作者观察到嵌入空间中的 Patch 之间的相似性很小。这些问题也被[5]描述,因此导致它们使用注意力分数而不是 Patch 。关于利用图像空间进一步的合理性,请参见附录B.1。
给定一个数据集,作者首先使用与图像编码器(如ViT-B/16)相同的patch大小进行patchify。然后通过k-means聚类对patch进行聚类,形成一个给定词汇大小的BoVW,其中每个质心表示一个视觉词。Patchify通过基本张量运算完成,而不是使用ViT的预训练卷积层进行向量投影以避免。作者还将此过程批处理,使用MiniBatchNormas2算法,因为存在内存约束。请注意,MiniBatchNormas的设计采用欧几里得距离。由于聚类在图像空间中完成,因此即使模型类型不同,具有相同patch大小的其他ViTs也可以重用BoVW。
一旦BoVW形成,作者转向序列压缩过程。利用BoVW的一种方式是在将相似的图像块合并到嵌入空间之前将它们投影到嵌入。然而,这种简单的方法会显著降低性能,因为它需要为投影初始化一个新的线性层。为了避免这种情况,作者首先进行块化并计算块与BoVW之间的pairwise余弦距离。对于每个块,作者只保留最小距离。与文本不同,作者无法与图像获得完全匹配。因此,大于给定阈值的距离将被屏蔽,以确保不合并相似的块。这使作者能够确保不常用的图像块保持完整。
在这个阶段,作者通过块与相同视觉词的连接确定了相似块的组。然后,作者将原始图像上的预训练卷积层应用到块化并将其投影为一系列嵌入。在合并之前,作者确保将位置信息添加到嵌入,因为作者发现这比稍后添加位置信息更有效。最后,作者根据之前定义的组对嵌入进行元素平均,不包括用于合并的[CLS] Token 。
对于图像间方法,如果希望采用批量而不是在线推理,张量的一致性需求就成为挑战。为了保持并行性,任何减少都必须在各样本之间相等。由于分词的非均匀性,在填充到相同长度之前,序列必须依次压缩。作者选择在批次内添加额外的[PAD] Token ,直到达到最长的长度。类似于文本 Transformer [56],在softmax之前将注意力分数设置为负无穷,以消除填充的影响。作者没有向[PAD] Token 添加位置信息,因为将此类信息外推到非均匀序列将显著降低模型效率。
4 Experiments
考虑一个预训练的图像编码器 ,其参数为 ,它将输入 转换为编码 。编码器可以将编码映射到给定任务(分类或生成)的标签 。具体而言,ViT 首先将输入 转换为 Token ,然后通过注意力层进行进一步处理。令 为常数,定义为 ,其中 和 分别表示图像和块的大小。令 为与词汇集 相关的视觉词表(VWT),其中 是一个从某个数据集 中学习的视觉词。令 是输入 转换为的 Token ,其中 。在作者的实验中,作者通过零样本分类任务(分类)的性能保留、群鲁棒性和视觉描述生成(生成)的性能来分析 对在线推理效率的影响。
为了研究分词对零样本分类任务中性能保留的影响,作者进行了两组评估:1) 使用一个数据集进行大规模评估;2) 使用三个数据集进行稳健性分析(详细内容如下)。作者关注零样本设置,即避免对 进行任何端到端微调。对于大规模评估,作者使用 OpenImages v6 数据集 [27]。遵循 [23] 的方法,测试集被划分为 common 和 rare 子集,分别包含 57,224 和 21,991 张图像。前者有 214 个类别,后者有 200 个。为了进行分类,作者计算图像嵌入和编码文本标签之间的余弦相似度。
为了研究图像分类中的性能保留和(ii)群体鲁棒性,作者利用了三个公开可用的数据集:Waterbirds [57],CelebA [33],和 MetaShift [29],它们被用作鲁棒性和公平性研究 [32, 47, 64] 的基准。为了进行(零样本)分类,作者分别计算了图像嵌入和以下编码文本标签之间的余弦相似度:{'landbird', 'waterbird'},{'non-blond', 'blond'},{'dog', 'cat'} 对于 Waterbirds,CelebA 和 MetaShift 分别进行计算。与 [32] 和 [64] 中的数据划分和伪属性相同,前两个数据集和后一个数据集分别使用了相同的数据划分和伪属性。具体而言,研究的伪属性如下:对于 Waterbirds, habitation {'water', 'land'};对于 CelebA, gender {'female','male'};对于 MetaShift, context {'indoor', 'outdoor'}。关于子组的更多详细信息,请参见附录 A.1。作者还通过在数据划分之间随机打乱样本,同时保持子组比例来计算方差。作者不仅利用属性标注来分析平均和鲁棒性能,还利用属性标注来评估分词的公平性(见附录 B.4)。
为了分析对图像描述生成任务的(iii)的影响,作者使用了COCO数据集的Karpathy测试划分[31]和NoCaps数据集的验证集[1],按照先前的研究[28]中的设置。
最后,为了研究推理效率,作者利用上述下游视觉任务(i)至(iii)的所有数据集。作者关注的是在线设置,其中批量大小为1。
对于图像分类,作者从HuggingFace4中加载预训练的CLIP模型。每个文本类别前都添加了"一张..."的prefix。使用CLIP的图像大小为224 224,使用双线性插值。对于图像描述,作者从HuggingFace5中加载预训练的BLIP模型。为了实现零样本描述,作者使用3个beam大小,最大长度为20,最小长度为5。与[28]不同,作者没有包括"一张..."的prefix,因为作者发现它效果更好。图像大小为384 384,使用双立方插值。除非另有说明,否则CLIP和BLIP都使用ViT-B/16图像编码器。
除了作者预训练的模型外,作者还考虑了8位量化[11]和分词合并[5]作为额外的 Baseline 。作者将前者表示为,后者表示为。遵循[5],作者在CLIP和BLIP上对使用每层降维,因为它们各自的输入图像大小不同。对于VWTs,作者将内图像方法的最小值k设置为总块数(作者表示为)的50%。对于跨图像方法,除非另有说明,作者将阈值设置为0.1,并将其表示为,其中是词汇表的大小。最后,作者的实验是在一个NVIDIA A100 GPU上进行的。
推理效率。首先,作者分析VWTs对 Token 长度的影响。作者试图了解预处理数据选择和词汇量大小如何影响压缩程度。表1显示了在不同数据集上每个样本的 Token 长度(包括[CLS])。与不同,生成的序列长度不相等。首先,作者将在域内数据集和ImageNet-1K [10]上预处理进行比较。域内数据集由可用训练划分表示。在文本数据上,域内 Token 器[9, 40, 61]已证明通过专门针对给定分布的词汇产生较短的序列。有趣的是,作者在图像数据上并未观察到类似的效果,即In-Domain和ImageNet-1K之间的 Token 长度相似。只有在CelebA上,作者才看到在ImageNet-1K上预处理和时 Token 长度有更大的减少。其次,与文本 Token 器不同,随着词汇量的增加,压缩趋势逐渐降低。在文本中,更大的词汇量确保更多的 Token 被保留为词而不是子词。在作者的情况下,作者认为越来越多的 Patch 被匹配以分离视觉词,从而降低了整体压缩。作者将除外的剩余分析限制在预处理在ImageNet-1K上进行。
在分析了 Token 长度的影响后,作者转向关注瓦特和运行时间的实际指标。对于在线推理,瓦特节省不应对运行时间产生显著成本。在表2中,作者将令分词的效率与、和在数据集上的效率进行比较。首先,作者在各个数据集上发现VWTs的瓦特数都低于。在CelebA数据集上,这一减少甚至达到19%()。自然地,由于压缩较小,效率会随着词汇量增加而降低。尽管和的瓦特数比VWTs低,但作者注意到运行时间的问题。特别是,导致的运行时间显著延长,因为需要重复量化和张量。与此同时,在Waterbirds、CelebA和MetaShift上的运行时间最多可增加2倍。在上述数据集上,最多可增加20%。在各个数据集上都显示出比低的运行时间,而在COCO和NoCaps上也是如此。作者通过在瓦特节省和运行时间成本之间找到平衡,证明了VWTs在在线推理方面的优势。
性能保留、鲁棒性和字幕生成。压缩中的另一个重要因素是模型性能的影响。在表3中,作者分别列出了使用CLIP[43]和BLIP[28]对图像分类和字幕生成的性能。对于分类和组鲁棒性,作者分析了平均和最差组(鲁棒)性能,正如[46,47]所做的那样。首先,作者发现对于和,平均准确度的降低很小。在MetaShift上,前者的最大降幅为2%。同样,和在各个数据集上保持了较高的平均准确度。其次,作者观察到VWTs可能对鲁棒性有所改善。在Waterbirds和CelebA上,使用时,最差组准确度分别提高了29%和8%。只有在MetaShift上,相对于Base,鲁棒性低于或。正如[20]所示,压缩并不总是对组鲁棒性有害。
作者对大规模的OpenImages v6数据集进行了更多的零样本分类评估。作者报告平均精确度(mAP),如[23]中所述。从表2和表3中,作者发现VWTs在大规模设置中比Q8或ToME更适合在线推理,同时保持了与Base模型相当的性能。
在使用BLIP进行图像描述时,作者根据[28]中的设置评估作者的模型,使用BLEU、CIDEr和SPICE指标与真实描述进行比较。在COCO数据集上,VWTs的性能高于,并与具有竞争力。在NoCaps数据集上,作者观察到在上的外域样本具有最大的退化。然而,总体性能仍高于。只有在上显示出微小的改进。与类似,VWTs表明不需要额外的端到端微调即可保持性能。
图1中展示了的块匹配情况。作者用相同的颜色突出显示了相互匹配的块。首先,作者发现表示背景的块比表示前景的块更频繁地被分组。在Waterbirds上,背景块的合并可能解释了表3中提高的鲁棒性,通过减轻与背景的伪相关性。在CelebA上,倾向于避免匹配个体的眼睛或嘴巴。其次,作者观察到块匹配能够将相似但不相邻的视觉概念分组。在某些MetaShift和NoCaps的示例中,多个猫和食物似乎被分别匹配在一起。作者的分析表明,块匹配是图像分割的一种基本形式。
在图3中,作者可视化了的词汇,以分析视觉词的形成。作者展示了与每个视觉词(即预处理数据)匹配的ImageNet-1K(即)的 Patch ,使用欧几里得距离。由于视觉词是质心,与同一视觉词匹配的 Patch 属于同一簇。作者观察到视觉词描绘了颜色或边缘等基本特征。这些特征也作为每个簇中 Patch 的平均表示而形成。通过表示基本特征,视觉词充当了有效的 Anchor 点, Patch 可以匹配到。关于跨图像方法中词汇稀疏性的分析,请参见附录B.5。
长期字幕生成。BLIP生成的字幕[28]可以作为其他模型的进一步训练的先验。因此,比互联网数据相关的典型简短字幕更长的描述性字幕可能更可取。在图4中,作者在COCO上可视化了长期字幕。为了实现更长的生成,作者将长度惩罚设为2.0,并将最大长度加倍至40。其他生成设置保持不变。较长的字幕可能导致在某些样本上出现不必要的重复。有趣的是,与相比,或在描述性和连贯性方面提高了更多。附录C.1中提供了由、ToME和生成的额外长期字幕。
批处理。作者之前提到VWTs对于在线推理工作最优。在图5中,作者试图更好地理解它在批处理(batch sizes大于1)下的离线推理有效性。作者使用典型的批处理,将和与Base和ToME进行比较。首先,作者发现,随着批处理大小的增加,与Base相比,和ToME的低瓦特数比率出现。特别是在较低的批处理大小下。VWTs和ToME最终在大批量(例如32)下达到与Base的瓦特数相等,而达到这一点的时间更早。其次,作者观察到VWTs和ToME之间不同的运行时间趋势。随着批处理的增长,继续显示出与Base相似的运行时间。与此同时,和ToME除了批量大小为4之外,显示出较低的运行时间。因此,在批处理期间,图像间方法并未带来相同程度的效率提升。
当使用内图像或外图像方法时?关于在内外图像方法之间选择,作者认为,当需要全局信息时,通过移除视觉输入中的冗余噪声,删除 Token 可能更具优势。另一方面,当任务需要局部信息(例如长篇描述、目标检测等)时,合并 Token 可能更好地保留视觉概念。例如,图7第一行的图像显示,内 消除了山丘背景,从而导致图4的长篇描述中没有“山”这一信息。可能地,结合两种方法可以在保留信息的同时最大化压缩,通过合并山丘并删除图像中的灌木。
5 Conclusion
在这项工作中,作者致力于为ViTs定义一种无需训练的 Token 化方法,以降低功耗,同时平衡运行时和性能的成本。
在在线场景中,作者通过实证表明,作者的图像内部和图像间方法在图像分类和描述性生成方面与8位量化、 Token 合并具有竞争力。
从定性观察来看,作者发现图像间方法通过代表基本特征的视觉词将类似的可视觉概念分组。大规模分类的分析进一步验证了作者的方法的可行性,而长篇描述性生成则展示了其在提高描述性和连贯性方面的潜力。
最后,由于图像间方法在批处理中存在非并行性限制,因此可以作为未来工作的一个方向,进一步研究结合两种方法。
[0]. Efficient Online Inference of Vision Transformers by Training-Free Tokenization.
扫码加入👉「集智书童」交流群
(备注: 方向+学校/公司+昵称 )
点击下方“ 阅读原文 ”,
了解更多AI学习路上的 「武功秘籍」