EfficientFormer学习笔记

EfficientFormer学习笔记

EfficientFormer: Vision Transformers at MobileNet Speed

Abstract

视觉变换器(ViT)在计算机视觉任务方面取得了快速进展,在各种基准上取得了有希望的结果。然而,由于大量的参数和模型设计,例如注意机制,基于ViT的模型通常比轻量级卷积网络慢数倍。因此,为实时应用部署ViT尤其具有挑战性,尤其是在资源受限的硬件上,如移动设备上。最近的研究试图通过网络架构搜索或与MobileNet块的混合设计来降低ViT的计算复杂度,但推理速度仍然不令人满意。这就引出了一个重要的问题:变压器能否像MobileNet一样快速运行,同时获得高性能?为了回答这个问题,我们首先回顾了基于ViT的模型中使用的网络架构和运营商,并确定了低效的设计。然后,我们引入了一个维度一致的纯变压器(没有MobileNet块)作为设计范例

代码和型号将在https://github.com/snap-research/EfficientFormer

1 Introduction

transformer架构[1]最初是为自然语言处理(NLP)任务设计的,它引入了多头自注意力(MHSA)机制,允许网络建模长期依赖关系,并且易于并行化。在这种情况下,Dosovitskiy等人[2]将注意力机制适应于2D图像,并提出了视觉变换(ViT):将输入图像划分为非重叠的Patch,并通过MHSA学习Patch间表示,而不存在诱导偏差。与卷积神经网络(CNN)相比,ViTs在计算机视觉任务上显示出了有希望的结果。在这一成功之后,通过改进训练策略[3,4,5],引入架构变化[6,7],重新设计注意力机制[8,9],以及提高各种视觉任务的性能,例如分类[10,11,12],分割[13,14]和检测[15,16],几项努力探索了ViT的潜力。

缺点是,transformer模型通常比竞争CNN慢几倍[17,18]。限制ViT推理速度的因素有很多,包括大量参数、相对于令牌长度二次增加的计算复杂度、不可折叠性规范化层,以及缺乏编译器级优化(例如,CNN的Winograd[19])。高延迟使得transformers不适用于资源受限硬件上的真实应用,例如移动设备和可穿戴设备上的增强或虚拟现实应用。因此,轻量级CNN[20、21、22]仍然是实时推理的默认选择。

为了缓解转换器的延迟瓶颈,人们提出了许多方法。例如,一些工作考虑通过将线性层更改为卷积层(CONV)[23],将自注意力与MobileNet块相结合[24],或引入稀疏注意力[25,26,27]来设计新的架构或操作,以降低计算成本,而其他工作则利用网络搜索算法[28]或剪枝[29]来提高效率。虽然现有工作改善了计算性能权衡,但与transformer模型适用性相关的根本问题仍未解决:强大的视觉转换器能否以MobileNet速度运行,并成为边缘应用的默认选项?这项工作通过以下贡献对答案进行了研究:

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

2)其次,基于我们的分析,我们确定了ViT中的低效设计和算子,并提出了一种新的维度一致的视觉转换器设计范式(第4.1节)。

3)第三,从具有新设计范式的超网开始,我们提出了一种简单但有效的延迟驱动瘦身方法,以获得一个新的模型家族,即高效formers(第4.2节)。我们直接优化推理速度,而不是MAC或参数数量[31、32、33]

我们最快的模型EfficientFormer-L1在ImageNet-1K[34]分类任务上实现了79.2%的top-1精度,推理时间仅为1.6毫秒(平均超过1000次运行),其运行速度与MobileNet V2×1.4相当,top-2精度提高了4.5%(更多结果见图1和表1)。有希望的结果表明,延迟不再是广泛采用视觉转换器的障碍。我们最大的模型EfficientFormer-L7在只有7.0毫秒延迟的情况下实现了83.3%的准确性,大大优于ViT×MobileNet混合设计(MobileViT XS,74.8%,7.2ms)。此外,我们通过使用EfficientFormer作为图像检测和分割基准的主干,观察到了优越的性能(表2)。我们对上述问题提供了初步的2个答案,ViTs可以实现超快的推理速度,同时具有强大的性能。我们希望我们的EfficientFormer可以作为一个强大的基线,并激发边缘部署的后续工作

image-20220802101113771

image-20220802101152003

2 Related Work

Transformer最初被提议用于处理非线性规划任务中长序列的学习[1]。Dosovitskiy等人[2]和Carion等人[15]分别使transformer架构适应分类和检测,并通过更强的训练技术和更大规模的数据集实现与CNN对应的竞争性能。DeiT[3]借助蒸馏进一步改进了训练管道,消除了大规模预训练的需要[35]。受transformer模型的竞争性能和全局感受野的启发,我们提出了后续工作,以改进架构[36,37],探索CONV网络和ViT之间的关系[38,39,40],并使ViT适应不同的计算机视觉任务[13,41,42,43,44,45,46]。其他研究工作探索了注意力机制的本质,并提出了令牌混合器的深刻变体,例如局部注意力[8]、空间MLP[47、48]和池混合器[6]。

尽管在大多数视觉任务中取得了成功,但当推理速度是主要问题[50、51、52]时,基于ViT的模型无法与经过充分研究的轻型CNN竞争,尤其是在资源受限的边缘设备上[17]。为了加速ViT,引入了许多不同方法的方法,例如提出新的架构或模块[53、54、55、56、57、58],重新思考自我注意力和稀疏注意力机制[59、60、61、62、63、64、65],以及利用CNN中广泛探索的搜索算法来寻找更小更快的ViT[66、28、29、67]。最近,LeViT[23]提出了一种CONV-clothing设计,以加速视觉转换。然而,为了执行MHSA,需要经常将4D特征重新塑造为平面Patch,这仍然需要在边缘资源上进行昂贵的计算(图2)。同样,MobileViT[18]引入了一种混合架构,该架构结合了轻量级MobileNet块(具有点态和深度态CONV)和MHSA块;前者放置在网络管道的早期以提取低层特征,而后者放置在后期以享受全局感受野。一些研究[24,28]探索了类似的方法,作为减少计算的直接策略。

image-20220802101549293

与现有工作不同,我们的目标是推动纯视觉转换器的延迟性能边界,而不是依赖于混合设计,并直接优化移动延迟。通过我们的详细分析(第3节),我们提出了一种新的设计范式(第4.1节),可以通过架构搜索进一步提升该范式(第四.2节)。

3 On-Device Latency Analysis of Vision Transformers

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

观察结果1:大内核和步长的补丁嵌入是移动设备上的速度瓶颈。

Patch嵌入通常使用具有较大内核大小和步长的非重叠卷积层来实现[3,55]。人们普遍认为,变压器网络中Patch嵌入层的计算成本不显著或可以忽略[2,6]。然而,我们在图2中比较了具有大内核和步长的补丁嵌入模型,即DeiT-S[3]和PoolFormer-S24[6],以及没有它的模型,即LeViT-256[23]和EfficientFormer,结果表明,补丁嵌入反而是移动设备上的速度瓶颈。

大多数编译器都不支持大型内核卷积,无法通过Winograd等现有算法进行加速[19]。或者,非重叠贴片嵌入可以由具有快速下采样的卷积干[68,69,23]代替,该卷积干由几个硬件高效的3×3卷积组成(图3)。

image-20220802102029273

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

最近的工作将基于ViT的模型扩展到MetaFormer架构[6],该架构由MLP块和未指定的令牌混合器组成。在构建基于ViT的模型时,选择令牌混频器是一个基本的设计选择。这些选项包括许多传统的MHSA混频器,具有全局感受野、更复杂的移位窗口注意力[8],或非参数算子,如pooling[6]。

我们将比较范围缩小到两种令牌混合器,pooling和MHSA,其中我们选择前者是为了简单和高效,而后者是为了更好的性能。大多数公共移动编译器目前不支持更复杂的令牌混合器,如移位窗口[8],我们将其排除在我们的范围之外。此外,我们不使用深度卷积来代替池[70],因为我们专注于在没有轻量级卷积帮助的情况下构建架构

为了了解两个令牌混合器的延迟,我们进行了以下两个比较:

1)首先,通过比较PoolFormer-s24[6]和LeViT-256[23],我们观察到整形操作是LeViT-256的瓶颈。大多数LeViT-256使用4D张量上的CONV实现,在将特征转发到MHSA时需要频繁的reshape操作,因为注意力必须在修补的3D张量上执行(丢弃注意力头的额外维度)。reshape的广泛使用限制了LeViT在移动设备上的速度(图2)。另一方面,当网络主要由基于CONV的实现组成时,池自然适合4D张量,例如,作为MLP实现的CONV 1×1和用于下采样的CONV stem。因此,PoolFormer具有更快的推理速度。

2)其次,通过比较DeiT Small[3]和LeViT-256[23],我们发现,如果特征尺寸一致且不需要重塑,MHSA不会给手机带来显著的开销。尽管计算量大得多,但具有一致3D特征的DeiT Small可以实现与新ViT变体(即LeViT-256)相当的速度。

在这项工作中,我们提出了一种维度一致性网络(第4.1节),同时具有4D特征实现和3D MHSA,但消除了效率低下的频繁整形操作。

观察结果3:CONV-BN比LN(GN)-线性更适合延迟,准确性缺陷通常可以接受

选择MLP实现是另一个重要的设计选择。通常,选择两个选项之一:带三维线性投影的层归一化(LN)和批量归一化(BN)。CONV-BN更适合延迟,因为BN可以折叠到前面的卷积中以加快推理速度,而动态规范化(如LN和GN)仍然在推理阶段收集运行统计信息,从而导致延迟。从图2和之前工作[17]中对DeiT Small和PoolFormer-S24的分析来看,LN引入的延迟约占10%− 整个网络延迟的20%

根据我们在附录表3中的消融研究,与GN相比,CONV-BN仅略微降低了性能,并取得了与通道性LN相当的结果。在这项工作中,我们尽可能多地(在所有潜在4D特征中)应用CONV-BN来获得延迟增益,而性能下降可以忽略不计,同时使用LN来获得3D特征,这与ViT中的原始MHSA设计一致,并产生更好的精度。

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

最后,我们研究了非线性,包括GeLU、ReLU和HardSwish。之前的工作[17]表明GeLU在硬件上效率不高,并且会减慢推理速度。然而,我们观察到,GeLU得到了iPhone 12的良好支持,几乎不比它的对应产品ReLU慢。相反,在我们的实验中,HardSwish的速度惊人地慢,编译器可能无法很好地支持它(使用HardSwish的LeViT-256延迟为44.5毫秒,而使用GeLU的则为11.9毫秒)。我们得出的结论是,考虑到手头的特定硬件和编译器,应根据具体情况确定非线性。我们相信,大多数激活将在未来得到支持。在这项工作中,我们采用了GeLU激活。

4 Design of EfficientFormer

基于延迟分析,我们提出了高效变压器的设计,如图3所示。网络由补丁嵌入(PatchEmbed)和元变换器块堆栈组成,表示为MB:

image-20220802111842988

image-20220802112255006

其中 X 0 X_0 X0是输入图像,批量大小为B,空间大小为[H,W],Y是期望输出,m是块总数(深度)。MB由未指定的令牌混合器(令牌混合器)和MLP块组成,可以表示为:

image-20220802112354068

X i ∣ i > 0 X_{i∣i> 0} Xii>0在哪里是转发到第i个MB的中间功能。我们进一步将阶段(或S)定义为处理具有相同空间大小的特征的多个元块的堆栈,例如图3中的N1×表示S1具有N1个元块。该网络包括4个阶段。在每个阶段中,都有一个嵌入操作来投影嵌入维度和下采样令牌长度,如图3所示。在上述架构中,EfficientFormer是一个完全基于transformer的模型,不集成MobileNet结构。接下来,我们深入研究了网络设计的细节,具体来说是架构细节和搜索算法

4.1 Dimension-consistent Design

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

首先,输入图像由一个具有两个3×3卷积的转换系统处理,步长2作为面片嵌入,

image-20220802112927414

其中 C j C_j Cj是第j级的通道号(宽度)。然后网络从MB4D开始,使用一个简单的池混合器来提取低级特征,

image-20220802113026536

其中, C o n v B , G Conv_{B,G} ConvBG表示卷积后面是否分别是BN和GeLU。注意,在这里,我们没有像[6]中那样在池混合器之前使用组或层归一化(LN),因为4D分区是基于CONV-BN的设计,因此每个池混合器前面都存在一个BN。

在处理所有MB4D块后,我们执行一次性整形以转换特征大小并进入3D分区。MB3D遵循传统ViT结构,如图3所示。形式上,

image-20220802113222862

其中, L i n e a r G Linear_G LinearG表示线性,后跟GeLU,以及

image-20220802113326621

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

4.2 Latency Driven Slimming

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

image-20220802113432046

其中I表示identity路径,j表示第j级,I表示第I个块。可以通过将图3中的MB替换为MP来说明超级网。

如等式7.所示。在超网的S1和S2中,每个块可以从MB4D或I中选择,而在 S 3 和 S 4 S_3和S_4 S3S4中,块可以是 M B 3 D MB^{3D} MB3D M B 4 D MB^{4D} MB4D和I。我们仅在最后两个阶段启用 M B 3 D MB^{3D} MB3D,原因有两个。首先,由于MHSA的计算相对于令牌长度呈二次增长,因此在早期阶段对其进行集成将大大增加计算成本。其次,将全局MHSA应用于最后阶段符合这样一种直觉,即网络的早期阶段捕捉低级特征,而后期层学习长期依赖性。

Searching Space

5 Experiments and Discussion

image-20220802113916495

5.3 Discussion

Relationship to MetaFormer

高效变换器的设计部分受元变换器概念的启发[6]。与PoolFormer相比,EfficientFormer解决了维数不匹配问题,这是边缘推断效率低下的根本原因,因此能够在不牺牲速度的情况下利用全局MHSA。因此,与PoolFormer相比,EfficientFormer具有优越的精度性能。尽管PoolFormer采用了全4D设计,但它采用了低效的补丁嵌入和组规范化(图2),导致延迟增加。相反,我们重新设计的EfficientFormer 4D分区(图3)对硬件更友好,在多个任务中表现出更好的性能。

Limitations.

(i) 虽然EfficientFormer中的大多数设计都是通用的,例如尺寸一致性设计和具有CONV-BN融合的4D块,但EFFICINTFORMER的实际速度可能在其他平台上有所不同。例如,如果GeLU没有得到很好的支持,而HardSwish在特定的硬件和编译器上得到了有效的实现,那么可能需要相应地修改运算符。(ii)提出的延迟驱动瘦身方法简单快速。然而,如果不考虑搜索成本,并且执行基于枚举的暴力搜索,则可以获得更好的结果。

6 Conclusion

在这项工作中,我们证明了视觉转换器可以在移动设备上以MobileNet速度运行。从全面的延迟分析开始,我们在一系列基于VIT的架构中识别低效的运算符,由此我们得出重要的观察结果,指导我们的新设计范式。拟议的高效变换器符合尺寸一致的设计,该设计平滑地利用了硬件友好的4D元块和强大的3D MHSA块。我们进一步提出了一种快速的latencydriven瘦身方法,以基于我们的设计空间得出优化配置。在图像分类、目标检测和分割任务上的大量实验表明,高效的变压器模型优于现有的变压器模型,同时比最具竞争力的CNN更快。延迟驱动的ViT架构分析和实验结果验证了我们的说法:强大的视觉转换器可以在边缘实现超快的推理速度。未来的研究将进一步探索

附录细节

Latency-Driven Slimming Algorithm

我们提供了在Alg中提出的延迟驱动快速瘦身的详细信息。1.算法公式见第4.2节。拟议的延迟驱动瘦身是面向速度的,不需要对每个子网络进行重新训练。根据可训练的架构参数α估计每个设计选择的重要性分数。

image-20220802114715647

Ablation Analysis

image-20220802114800843

image-20220802114808914

image-20220802114841421

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值