【导读】由meta ai的研究人员推出token merging(tome),无需训练即可加速 vit 模型。更重要的是,这个模型不需对token进行剪枝。
视觉变换器(vit)在两年前进入大众视野,并成为计算机视觉研究的核心组成部分。 它成功将一个在自然语言处理领域的transformer模型迁移到计算机视觉领域。从那时起,计算机视觉领域的进步已经加速。
尽管在成本与性能方面被超越,vanilla vit仍有许多优点。
它们是由简单的矩阵乘法组成的,这使得它们的速度比它们的原始运算量所显示的要快。
此外,它们支持强大的自监督预训练技术,如mae(掩码自动编码器),可以产生最先进的结果,同时可以进行快速训练。
而且由于它们不对数据进行假设,它们可以几乎不加改变地应用在图片、音频、文本等诸多模式中。
当然,理想很丰满,现实很骨感。vit模型的规模大,有较大延时。在资源有限的设备上,运行这个复杂模型会产生很大问题。
token剪枝:变好了,但没完全好 针对运算慢的问题,研究人员给出了多个解决方案。其中一种常见的加速视觉 transformer模型的方法是对进行token剪枝。 在运行时修剪标记,通过修剪不太重要的token产生高效的transformer。如dynamicvit分层修剪冗余token,从而在分类任务中实现flops减少。
然而,token剪枝有几个问题,其中最主要的,是由于修剪token会产生信息损失,因此,人们对vit模型token的剪枝数量是有限的,为了减少信息损失,只能对不重要的token进行修剪。
而且,为了使修剪过的token有效,人们需要再次训练模型。这就造成额外的资源消耗。
更重要的是,token剪枝是动态的过程,需要根据不同的图像或句子确定token剪枝的不同数量。虽然这有利于提高准确性,但却不够实用实用性,因为这种情况下,数据不能再进行批处理。
为了解决这个问题,人们需要在剪枝过程中添加掩码,而这会进一步影响效率的提升。
简单来说,token剪枝确实让vit跑得更快,但这是在信息损耗的代价上实现的。
tokenmerging:换个想法
怎样才能使vit的速度类似于剪枝,但保持比剪枝更高的准确度呢?meta ai研究团队给出了新的解题思路:token merging(tome)。
论文链接:https://arxiv.org/pdf/2210.09461.pdf
token merging选择将token结合,而非进行剪枝。由于其定制的匹配算法,它和剪枝一样快,同时更准确。另外,它的工作不需要任何额外的训练,所以你可以在巨大的模型上使用它来加快它们的速度,而不会牺牲很多准确性。
meta的目标是在现有的vit中插入一个token merging的模块,通过合并冗余的token,在不需要额外训练的前提下提高训练和推理的吞吐量。
基本思路是:在transformer模型中,通过合并,使每层减少r个token。假设一个transformer模型有l层,那么通过合并就可以减少rl个token。变量r的大小决定了速度和精度的关系,因为更少的标记意味着更低的准确度但更高的吞吐量。
值得注意的是,在token merging中,无论图像的内容如何,都会减少rl标记。这完美解决了token剪枝中无法进行批处理的问题。
通过tome,类似的token批在每个transformer块中被合并:例如,狗的皮毛被合并成一个token。
token merging被插入每个attention块和每个transformer块。这也与token剪枝的工作流程形成对比。后者倾向于将剪枝步骤放在每个transformer块的开头。
通过token merging,需要被合并的token的信息可以得到传播,vit也能够借助attention块中的特征来决定需要合并哪些token。
具体做法
合并的第一步是确定相似的token。在transformer中的qkv(query, key, value)已被提取的条件下,通过消融实验,研究团队发现使用key可以最好衡量token之间的相似度(下图紫色部分)。
因为key已经总结了每个token中包含的信息,以便用于attention中的dot-product来衡量token间的相似度。
除了研究哪个指标更好衡量token相似度外,还需要知道什么距离衡量相似度。通过实验研究团队发现,使用使用余弦距离来衡量toke之间的相似度可以获得最好的精度和速度的关系。
确定了token的相似性,接下来需要一个快速的方法来确定哪些token需要匹配,以减少总数的r。
meta团队没有使用kmeans聚类算法或图分割算法,而是使用匹配算法,因为后者不仅可以精准匹配每一层token的数量,还能快速执行上千次匹配。这些都是迭代聚类算法无法完成的。
因此,meta团队提出了一个更有效的解决方案。
设计目标如下。1.)避免任何无法并行化的迭代,2.)希望合并的变化是渐进的,因为聚类对多少个标记可以合并到一个组中没有限制(这可能会对网络产生不利影响),而匹配则使大多数标记没有被合并。
将所有token分为相同大小的2个集合a与b。
把从集合a中的每个token到b中与其最相似的token画一条边。
只留下最相似的r条边, 其余删掉。
融合仍然相连的边(特征取均值)。
把这两个集合拼在一起, 得到最终的合并结果。
通过这项独特的技术,可以提高vit模型的吞吐量和实际训练速度。使用token merging可以将训练速度提高一倍。它可以用于图像、视频和音频任务,并且仍然可以达到最先进的准确性。
专访福特自动驾驶汽车公司CEO Sherif Marakby
第三代区块链平台Color特点介绍
探究CC2640 CC1310高低温测试
康捷登给你带来高品质的现代化居家环境
远离爆炸危险!手机电池的正确使用和保养
加速ViT模型新思路!Meta推出Token Merging
连城凯克斯半导体高端装备研发制造项目开工 投资达30亿元
华为升级鸿蒙公测申请入口 公测与内侧有什么区别
锂离子电池的热失控的原因及应对策略介绍
国潮品牌猫王音响携手胡海泉,推出震撼之声猫王·Mate系列
电脑开关电源维修图解
韶华科技将新增集成电路年封装测试能力270亿只
华为手环3珊瑚橙版本正式开售 售价269元
开关电源调试最常见的问题有哪些
如何制作水族馆管理系统
金立S10c怎么样?四摄拍照更美
cpu有多少个晶体管
继电保护的作用和结构图
尘埃落定,思立微的下一步?
双十一想要如何选购无线蓝牙耳机?200以内最强耳机!