加速ViT模型新思路!Meta推出Token Merging,不靠剪枝靠合并

简介: 加速ViT模型新思路!Meta推出Token Merging,不靠剪枝靠合并



 新智元报道  

编辑:昕朋

【新智元导读】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.)希望合并的变化是渐进的,因为聚类对多少个标记可以合并到一个组中没有限制(这可能会对网络产生不利影响),而匹配则使大多数标记没有被合并。

  1. 将所有token分为相同大小的2个集合A与B。
  2. 把从集合A中的每个token到B中与其最相似的token画一条边。
  3. 只留下最相似的r条边, 其余删掉。
  4. 融合仍然相连的边(特征取均值)。
  5. 把这两个集合拼在一起, 得到最终的合并结果。

通过这项独特的技术,可以提高ViT模型的吞吐量和实际训练速度。使用Token Merging可以将训练速度提高一倍。它可以用于图像、视频和音频任务,并且仍然可以达到最先进的准确性。

参考资料:https://www.marktechpost.com/2022/11/10/meta-ai-researchers-propose-token-merging-tome-to-make-vision-transformers-run-faster/

相关文章
|
开发工具 Android开发
Appium之获取app的package和activity以及UI界面定位方法
一、获取APP的package(包名)和activity 在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法: 1.
3124 0
|
5月前
|
存储 机器学习/深度学习 缓存
阿里云AirCache技术实现多模态大模型高效推理加速,入选国际顶会ICCV2025
阿里云研发的AirCache技术被计算机视觉顶会ICCV2025收录,该技术通过激活跨模态关联、优化KV缓存压缩策略,显著提升视觉语言模型(VLMs)的推理效率与存储性能。实验表明,在保留仅10%视觉缓存的情况下,模型性能下降小于1%,解码延迟最高降低66%,吞吐量提升达192%。AirCache无需修改模型结构,兼容主流VLMs,已在教育、医疗、政务等多个行业落地应用,助力多模态大模型高效赋能产业智能化升级。
463 1
|
JSON 搜索推荐 C++
vscode如何更改背景颜色主题,黑色或白色?
【11月更文挑战第16天】在 VS Code 中更改背景颜色主题,可通过三种方式实现:1) 使用快捷键 Ctrl+K 和 Ctrl+T(Mac 上为 Command+K 和 Command+T)选择主题;2) 通过菜单中的“管理”->“颜色主题”选项选择;3) 修改 settings.json 文件中的 "workbench.colorTheme" 属性。此外,用户还可从扩展市场安装更多主题以满足个性化需求。
25239 6
|
5月前
|
存储 缓存 安全
电脑更换更大硬盘,系统迁移怎么做?
电脑使用多年后,常因硬盘空间不足导致系统卡顿、游戏无法安装。升级更大容量固态硬盘并迁移系统,无需重装系统和软件,普通用户也能轻松在家完成。本文详解操作步骤,手把手教你提升电脑性能与存储空间。
|
8月前
|
测试技术 AI芯片
服务化参数调优实战
本文介绍了服务化性能调优的全流程,以Llama3-8B模型为例。首先需完成MindIE环境安装、下载模型权重与测试数据集。接着通过计算npuMemSize和maxBatchSize,maxPrefillBatchSize(272)与maxPrefillTokens,并更新配置进行性能测试。结果显示,参数调优后吞吐量提升18%。此方法为大模型性能优化提供了实用指导。
|
机器学习/深度学习 人工智能 机器人
何恺明新作出炉!异构预训练Transformer颠覆本体视觉学习范式,AI性能暴涨超20%
【10月更文挑战第29天】在机器人学习领域,训练通用模型面临数据异构性的挑战。近期研究“Scaling Proprioceptive-Visual Learning with Heterogeneous Pre-trained Transformers”提出异构预训练Transformer(HPT),通过大规模预训练学习跨不同本体和任务的共享表示,显著提升了性能。实验结果显示,HPT在未见过的任务上表现优异,性能提升超过20%。
337 6
|
SQL 安全 关系型数据库
MySQL数据库中的增删查改(MySQL最核心,工作中最常用的部分)
MySQL数据库中的增删查改(MySQL最核心,工作中最常用的部分)
1406 0
|
机器学习/深度学习 缓存 数据可视化
[Linformer]论文实现:Linformer: Self-Attention with Linear Complexity
[Linformer]论文实现:Linformer: Self-Attention with Linear Complexity
588 1
[Linformer]论文实现:Linformer: Self-Attention with Linear Complexity
|
人工智能 对象存储 异构计算
AI模型推理服务在Knative中最佳配置实践
Knative和AI结合提供了快速部署、高弹性和低成本的技术优势,对于一些需要频繁变动计算资源的AI应用,如模型推理等尤其明显。那么在Knative上部署AI模型推理时可以遵循这些最佳实践,以提升AI推理服务能力和GPU资源利用率。
|
机器学习/深度学习 人工智能 数据可视化
Jupyter Notebook的10个常用扩展介绍
Jupyter Notebook(前身为IPython Notebook)是一种开源的交互式计算和数据可视化的工具,广泛用于数据科学、机器学习、科学研究和教育等领域。它提供了一个基于Web的界面,允许用户创建和共享文档,这些文档包含实时代码、方程、可视化和文本。
439 6