Press "Enter" to skip to content

在IPhone12的推理延迟仅为1.6 ms!Snap等详析Transformer结构延迟,并用NAS搜出移动设备的高效网络…

本文分享论文『EfficientFormer: Vision Transformers at MobileNet Speed』,在IPhone12的推理延迟仅为1.6 ms!Snap&(美国)东北大学详细分析了Transformer结构的延迟,并用NAS搜出了移动设备上的高效网络结构!代码已开源!

 

详细信息如下:

 

 

论文链接:https://arxiv.org/abs/2206.01191

 

项目链接:https://github.com/snap-research/EfficientFormer

 

01

 

摘要

 

视觉Transformer(ViT)在计算机视觉任务方面取得了快速进展,在各种基准上取得了有希望的结果。然而,由于大量的参数和模型设计,例如注意力机制,基于ViT的模型通常比轻量级卷积网络慢数倍。因此,为实时应用程序部署ViT尤其具有挑战性,尤其是在资源受限的硬件(如移动设备)上。近年来,人们试图通过网络架构搜索或与MobileNet块的混合设计来降低ViT的计算复杂度,但推理速度仍不令人满意。

 

这就引出了一个重要的问题: Transformer能否像MobileNet一样快速运行,同时获得高性能 ?

 

为了回答这个问题,作者首先回顾了基于ViT的模型中使用的网络和操作,并确定了低效的设计。然后,作者引入了一个维度一致的纯transformer(无MobileNet块)作为设计范例。最后,执行延迟驱动的瘦身,以获得一系列称为EfficientFormer的最终模型。

 

在移动设备上进行的大量实验表明,EfficientFormer在性能和速度上都具有优越性。本文的型号EfficientFormer-L1在ImageNet-1K上实现了79.2%的top-1精度,而iPhone 12(使用CoreML编译)上的推理延迟仅为1.6 ms,甚至比MobileNetV2(1.7 ms,71.8%top-1)快一点;本文最大的型号EfficientFormer-L7在延迟仅为7.0 ms的情况下获得了83.3%的精度。本文的工作证明,设计得当的Transformer可以在移动设备上达到极低的延迟,同时保持高性能。

 

02

 

Motivation

 

Transformer结构最初是为自然语言处理(NLP)任务而设计的,它引入了多头自注意力(MHSA)机制,允许网络对长期依赖性进行建模,并且易于并行化。在这种情况下,ViT将注意机制适应于2D图像:将输入图像划分为非重叠的patch,并通过MHSA学习patch间表示,无归纳偏置。与卷积神经网络(CNN)相比,ViTs在计算机视觉任务中显示出了有希望的结果。在这一成功之后,通过改进训练策略、引入架构变化、重新设计注意机制以提高了各种视觉任务(如分类、分割和检测)的性能。

 

但缺点是,Transformer通常比CNN慢数倍。限制ViT推理速度的因素很多,包括大量的参数、计算复杂度相对于token长度的二次增长、不可折叠的归一化操作以及缺乏编译器级别的优化。高延迟使得transformers不适用于资源受限硬件上的真实世界应用程序,例如移动设备和可穿戴设备上的增强或虚拟现实应用程序。因此,轻量级CNN仍然是实时推理的默认选择。

 

为了缓解Transformer的延迟瓶颈,目前提出了许多方法。例如,一些工作考虑通过将线性层更改为卷积层(CONV),将自我注意与MobileNet块相结合,或引入稀疏注意力,来设计新的架构或操作,以降低计算成本,而其他工作则利用网络搜索算法或修剪来提高效率。虽然现有工作改善了计算性能权衡,但与Transformer模型适用性相关的根本问题仍未解决: 强大的视觉Transformer能否以MobileNet速度运行并成为边缘应用的默认选项 ?

 

这项工作通过以下贡献对答案进行了研究:

 

 

首先,作者通过延迟分析重新探讨ViT及其变体的设计原则。在现有工作的基础上,作者使用iPhone 12作为测试平台,使用公开的CoreML作为编译器,因为移动设备被广泛使用,结果可以很容易地复现。

 

其次,基于本文的分析,作者确定了ViT中的低效设计和操作,并为视觉Transformer提出了一种新的维度一致性设计范式。

 

第三,从一个具有新设计范式的超网开始,作者提出了一种简单而有效的延迟驱动瘦身方法,以获得一个新的模型家族,即EfficientFormer。作者直接优化推理速度,而不是MAC或参数数量。

 

 

 

本文最快的模型EfficientFormer-L1在ImageNet-1K分类任务上实现了79.2%的top-1准确率,推理时间仅为1.6 ms,与MobileNetV2相比,延迟降低了6%,top-1准确率提高了7.4%(结果如上图所示)。结果表明,延迟不再是广泛采用视觉Transformer的障碍。本文最大的型号EfficientFormer-L7在只有7.0毫秒延迟的情况下实现了83.3%的准确率,大大优于ViT×MobileNet混合设计(如,MobileViT-XS,74.8%,7.2ms)。此外,作者在图像检测和分割基准测试中使用EfficientFormer作为主干,从而观察到了优异的性能。因此, ViTs可以实现超快的推理速度,同时拥有强大的性能 。

 

03

 

视觉Transformer的设备延迟分析

 

大多数现有方法通过从服务器GPU获得的计算复杂性(MAC)或吞吐量(图像/秒)来优化Transformer的推理速度。但是这些指标不能反映实际的设备延迟。为了清楚地了解哪些操作和设计选择会减慢边缘设备上VIT的推断,作者对许多模型和操作进行了全面的延迟分析,如上图所示,由此得出以下观察结果。

 

 

观察1:在移动设备上,具有大核和步长的patch嵌入是一个速度瓶颈。

 

patch嵌入通常使用一个不重叠的卷积层来实现,该层具有较大的内核大小和步长。一种普遍的看法是,Transformer网络中patch嵌入层的计算成本不显着或可以忽略不计。然而,在图2中比较了具有大核和大步长的patch嵌入模型,即DeiT-S和PoolFormer-s24,以及没有它的模型,即LeViT-256和EfficientFormer,结果表明,patch嵌入反而是移动设备上的速度瓶颈。

 

大多数编译器都不支持大型内核卷积,并且无法通过Winograd等现有算法来加速。或者,非重叠patch嵌入可以由一个具有快速下采样的卷积stem代替,该卷积stem由几个硬件效率高的3×3卷积组成。

 

观察2:一致的特征维度对于选择token混合器很重要。MHSA不一定是速度瓶颈。

 

最近的工作将基于ViT的模型扩展到MetaFormer,该架构由MLP块和未指定的token混合器组成。在构建基于ViT的模型时,选择token混合器是一个重要的设计选择。token混合器的选择有很多:传统的MHSA混合器,它们具有全局感受野;更复杂的移位窗口注意;或者像池化这样的非参数化操作符。

 

作者将比较范围缩小到两种token混合器,池化和MHSA,其中选择前者是为了简单和高效,而后者是为了更好的性能。大多数公开的移动编译器目前不支持更复杂的token混合器,如移位窗口,因此作者将其排除在范围之外。此外,由于本文专注于在没有轻量级卷积帮助的情况下构建体系结构,因此没有使用深度卷积来取代池化。

 

为了解两个token混合器的延迟,作者执行以下两个比较:

 

 

首先,通过比较PoolFormer-s24和LeViT-256,作者发现reshape操作是LeViT-256的一个瓶颈。LeViT-256的大部分是用CONV on 4D tensor实现的,在特征转发到MHSA时需要频繁的reshape操作,因为MHSA必须在3D tensor上进行注意(丢弃注意力头的额外尺寸)。reshape的广泛使用限制了LeViT在移动设备上的速度。另一方面,当网络主要由基于CONV的实现组成时,池化自然适合4D张量,例如,CONV 1×1作为MLP实现,CONV stem用于下采样。因此,PoolFormer具有更快的推理速度。

 

其次,通过比较DeiT-S和LeViT-256,作者发现,如果特征尺寸一致且不需要reshape,MHSA不会给手机带来显着的开销。虽然计算量更大,但具有一致3D特征的DeiT-S可以达到与新ViT变体(即LeViT-256)相当的速度。

 

 

观察3:CONV-BN比LN-Linear更适合延迟,准确性缺陷通常是可以接受的。

 

选择MLP实现是另一个重要的设计选择。通常,会选择两个选项之一:带3D线性投影(proj)的LayerNorm(LN)和带BatchNorm(BN)的CONV 1×1。CONV-BN更适合低延迟,因为BN可以折叠到之前的卷积用于推理加速,而LN仍在推理阶段收集运行统计信息,从而导致延迟。根据本文的实验结果和之前的工作,LN引入的延迟约占整个网络延迟的10%-20%。

 

观察4:非线性延迟取决于硬件和编译器。

 

最后,作者研究了非线性,包括GeLU、ReLU和HardSwish。之前的工作表明GeLU在硬件上效率不高,会减慢推理速度。然而,作者观察到,GeLU受到iPhone 12的良好支持,几乎不比它的对手ReLU慢。

 

相反,在本文的实验中,HardSwish的速度惊人地慢,编译器可能无法很好地支持它(LeViT-256使用HardSwish的延迟为44.5 ms,而使用GeLU的延迟为11.9 ms)。作者的结论是,考虑到手头的特定硬件和编译器,非线性应该根据具体情况来确定。

 

04

 

方法

 

 

基于延迟分析,作者提出了EfficientFormer的设计,如上图所示。该网络由patch嵌入(PatchEmbed)和meta transformer块堆栈组成,表示为MB:

 

 

其中是Batch大小为B、空间大小为[H,W]的输入图像,是所需输出,m是块的总数(深度)。MB由未指定的token混合器(TokenMixer)和一个MLP块组成,可以表示为:

 

 

其中,是输入到第i个MB的中间特征。作者进一步将Stage(或S)定义为多个MetaBlocks的堆栈,这些MetaBlocks处理具有相同空间大小的特征,如上图中的N1×表示S1具有N1个MetaBlocks。该网络包括4个阶段。在每个阶段中,都有一个嵌入操作来投影嵌入维度和下采样token长度,如上图所示。在上述架构中,EfficientFormer是一个完全基于Transformer的模型,无需集成MobileNet结构。接下来,作者深入研究了网络设计的细节。

 

4.1 Dimension-consistent Design

 

基于第3节的分析,作者提出了一种维度一致性设计,该设计将网络分割为4D分区,其中操作符以CONV net样式实现(MB4D),以及一个3D分区,其中线性投影和注意力在3D张量上执行,以在不牺牲效率的情况下享受MHSA的全局建模能力(MB3D),如上图所示。具体来说,网络从4D分区开始,而3D分区应用于最后阶段。注意,上图只是一个实例,4D和3D分区的实际长度稍后通过架构搜索指定。

 

首先,输入图像由一个具有两个步长为2,感受野为3×3卷积的Conv stem处理:

 

 

其中,是第j级的通道数量。然后,网络从MB4D开始,使用一个简单的池化混合器来提取低级特征:

 

 

其中,表示卷积后分别接BN和GeLU。注意,这里作者没有在池化混合器之前使用LN,因为4D分区是基于CONV-BN的设计,因此每个池化混合器前面都有一个BN。

 

在处理完所有MB4D块后,作者执行一次reshape以变换特征大小并进入3D分区。MB3D遵循传统ViT结构,如上图所示:

 

 

其中,表示线性,后跟GeLU。

 

 

其中Q、K、V表示通过线性投影学习的查询、键和值,b表示作为位置编码的参数化注意力bias。

 

4.2 Latency Driven Slimming

 

Design of Supernet

 

基于维度一致性设计,作者构建了一个超网,用于搜索上图所示网络架构的有效模型(上图显示了搜索的最终网络的示例)。为了表示这样的超网,作者定义了元路径(MetaPath,MP),它是可能的块的集合:

 

 

其中I表示identity path,j表示第j阶段,i表示第i个块。

 

在超网的和中,每个块可以从MB4D或I中选择,而在和中,块可以是MB3D、MB4D或I。出于两个原因,作者仅在最后两个阶段启用MB3D:首先,由于MHSA的计算相对于token长度呈二次增长,因此在早期阶段对其进行集成将大大增加计算成本。其次,将全局MHSA应用于最后阶段符合这样一种直觉,即网络的早期阶段捕获低级特征,而后期阶段学习长期依赖性。

 

Searching Space

 

本文的搜索空间包括(每个阶段的宽度)、(每个阶段的块数,即深度)和最后个应用MB3D的块。

 

Searching Algorithm

 

以前的硬件感知网络搜索方法通常依赖于在搜索空间中部署每个候选对象的硬件来获得延迟,这非常耗时。在这项工作中,作者提出了一种简单、快速但有效的基于梯度的搜索算法,以获得只需训练一次超网的候选网络。该算法有三个主要步骤。

 

首先,作者使用Gumble Softmax采样对超网进行训练,以获得每个MP内块的重要性得分,可以表示为:

 

 

其中,α评估MP中每个块的重要性,因为它表示选择块的概率;;τ是温度;n代表MP中的块体类型,即对于和,;对于和,。通过训练之后,以获得经过训练的权重和结构参数α。

 

其次,作者通过收集不同宽度(16的倍数)的MB4D和MB3D的设备上延迟来构建延迟查找表。

 

最后,作者使用查找表在第一步通过延迟评估获得的超网上执行网络瘦身。典型的基于梯度的搜索算法仅选择α最大的块,这不符合本文的范围,因为它无法搜索宽度。事实上,构造一个多宽度的超网需要消耗显存,甚至是不现实的,因为在本文的设计中,每个MP都有几个分支。作者不在复杂的搜索空间上直接搜索,而是在单宽度超网上执行逐步瘦身,如下所示。

 

作者首先将和的重要性得分分别定义为和。同样,每个阶段的重要性得分可以通过将该阶段内所有MP的得分相加得到。根据重要性得分,作者定义了包含三个选项的动作空间:1)选择I作为最小导入MP,2)删除第一个MB3D,3)减少最不重要阶段的宽度(乘以16)。然后,通过查找表计算每个动作的延迟,并评估每个动作的准确度下降。最后,根据每延迟准确度下降来选择操作。此过程将迭代执行,直到达到目标延迟。

 

05

 

实验

 

 

上表展示了本文模型不同参数量和计算量的模型变体细节。

 

 

 

上表和上图展示了ImageNet1K上的实验结果,与广泛使用的基于CNN的模型相比,EfficientFormer在准确性和延迟之间实现了更好的权衡。例如,EfficientFormer-L1以MobileNetV2的速度运行,同时达到7.4%的top-1精度相对提升。此外,EfficientFormer-L3以与EfficientNet-B0相似的速度运行,同时实现5.3%的top-1精度相对提升。对于高性能(>83%top-1)的模型,EfficientFormer-L7的运行速度比EfficientNet-B5快3倍以上,这表明了本文模型的优越性能。

 

传统的VIT在延迟方面仍低于CNN。例如,DeiT-Tiny的精确度与EfficientNet-B0相当,但运行速度慢了3.4倍。然而,EfficientFormer的性能与其他Transformer一样,但运行速度更快。例如,EfficientFormer-L3实现了比DeiT Small更高的精度(82.4%对81.2%),同时速度快了4倍。

 

现有的混合设计,如LeViT-256和MobileViT,仍在与ViTs的延迟瓶颈作斗争,很难超越轻量级CNN。例如,LeViT-256的运行速度比DeiT Small慢,而top-1的精度则低1%。对于MobileViT,这是一个包含MHSA和MobileNet块的混合模型,它明显慢于CNN对应的模块,例如MobileNet v2和EfficientNet-B0,而精度也不令人满意(比EfficientNet-B0低2.3%)。

 

相比之下,EfficientFormer作为基于纯Transformer的模型,可以在保持高性能的同时实现超快的推理速度。在类似的推断时间内,EfficientFormer-L7在ImageNet上比MobileViT XS高出8.5%的top-1精度,这表明了本文设计的优越性。

 

 

目标检测、实例分割和语义分割的结果显示在上表中。高效Transformer始终优于CNN(ResNet)和Transformer(PoolFormer)主干网。在计算成本相似的情况下,EfficientFormer-L3的性能比ResNet50主干高出3.4个box AP和3.7个mask AP,比PoolFormer-S24主干高出1.3个box AP和1.1个mask AP,证明EfficientFormer在视觉任务中具有很好的通用性和强大的主干。

 

在语义分割任务中,在计算预算相似的情况下,EfficientFormer始终优于基于CNN和transformer的主干网。例如,EfficientFormer-L3的性能比PoolFormer-S24高3.2 mIoU。在全局注意力下,EfficientFormer可以更好地学习长期依赖关系,这对于高分辨率密集预测任务是有益的。

 

06

 

总结

 

在这项工作中,作者展示了Vision Transformer可以在移动设备上以MobileNet的速度运行。从全面的延迟分析开始,作者在一系列基于ViT的结构中识别出低效的操作,从而得出重要的观察结果,指导本文的新设计范式。

 

本文提出的EfficientFormer符合尺寸一致的设计,能够顺利利用硬件友好的4D MetaBlocks和强大的3D MHSA块。作者进一步提出了一种快速的延迟驱动瘦身方法,以基于本文的设计空间得出优化配置。

 

对图像分类、目标检测和分割任务的大量实验表明,EfficientFormer模型优于现有Transformer模型,同时比最具竞争力的CNN更快。ViT结构的延迟驱动分析和实验结果验证了作者的说法:强大的视觉Transformer可以在边缘实现超快的推理速度。

 

参考资料

 

[1]https://arxiv.org/abs/2206.01191

 

[2]https://github.com/snap-research/EfficientFormer

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注