EfficientFormer | 苹果手机实时推理的Transformer模型,登顶轻量化Backbone之巅苹果手机驱动「EfficientFormer | 苹果手机实时推理的Transformer模型,登顶轻量化Backbone之巅」
点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达
作者丨ChaucerG
来源丨集智书童
() 在计算机视觉任务中取得了快速进展,在各种基准测试中取得了可喜的成果。然而,由于大量的参数和模型设计,例如注意力机制,基于 的模型通常比轻量级卷积网络慢几倍。因此,应用部署 具有很大的挑战性,尤其是在移动设备等资源受限的硬件上。
最近的很多工作都试图通过网络架构搜索或与 的混合设计来降低 的计算复杂度,但推理速度仍然不能令人满意。这就引出了一个重要的问题: 能否在获得高性能的同时运行得像 一样快?
为了回答这个问题,首先重新审视基于 的模型中使用的网络架构和 算子,并确定其低效的设计。然后引入了一个维度一致的纯 (没有 )作为设计范式。最后,执行延迟驱动的瘦身以获得一系列最终模型,称为 。
大量实验表明 在移动设备上的性能和速度方面具有优势。 在 上实现了 79.2% 的 Top-1 准确率,在 (使用 编译)上只有 1.6 ms 的推理延迟,这甚至比 (1.7 ms,71.8% Top-1), 获得了 83.3% 的准确率,延迟仅为 7.0 ms。证明,正确设计的 可以在移动设备上达到极低的延迟,同时保持高性能。
最初为自然语言处理 (NLP) 任务设计的 架构引入了多头自注意力 () 机制,该机制允许网络对长期依赖关系进行建模并且易于并行化。在这种情况下,Dosovitskiy 等人将注意力机制应用于 2D 图像并提出了 ():将输入图像划分为不重叠的块,通过 MHSA 学习块间表示,缺失了归纳偏差。
与计算机视觉任务上的卷积神经网络 (CNN) 相比, 展示了可喜的结果。在此成功之后,通过改进训练策略、引入架构更改、重新设计注意力机制以及提升各种视觉任务(如分类、分割和检测)的性能来探索 的潜力。
不利的一面是, 模型通常比 慢几倍。有许多因素限制了 的推理速度,包括大量参数、关于长度的二次增加的计算复杂度、不可融合的归一化层以及缺乏编译器级别的优化(例如, 的 )。高延迟使得 对于资源受限硬件上的实际应用程序不切实际,例如移动设备和可穿戴设备上的增强或虚拟现实应用程序。因此,轻量级 仍然是实时推理的默认选择。
为了缓解 的延迟瓶颈,已经提出了许多方法。例如,一些努力考虑通过改变线性层与卷积层(Conv)来设计新的架构或算子,将自注意力与 相结合,或引入稀疏注意力以降低计算成本,而其他努力则利用网络搜索算法或修剪以提高效率。尽管现有工作已经改善了计算性能权衡,但与 模型的适用性相关的基本问题仍未得到解答:强大的 能否以 速度运行并成为边缘应用程序的默认选项?这项工作通过以下贡献对答案进行了研究:
首先,通过延迟分析重新审视 及其变体的设计原则。在现有工作之后,使用 iPhone12 作为测试平台,并使用 作为编译器;
其次,根据分析,确定了 中低效的设计和操作符,并为提出了一种新的尺寸一致设计范式;
最后,从具有新设计范式的开始,提出了一种简单而有效的方法,以获得一个新的模型族,即 。直接优化推理速度,而不是 MAC 或参数数量。

在 分类任务上实现了 79.2% 的 top-1 准确率,推理时间仅为 1.6 ms,与 相比,延迟降低了 6%,top-1 准确率提高了 7.4%。有希望的结果表明,延迟不再是广泛采用的障碍。
实现了 83.3% 的准确率,延迟仅为 7.0 ms,大大优于 混合设计(,74.8%,7.2ms)。
此外,通过使用 作为图像检测和分割基准的,观察到了卓越的性能。对上述问题提供了初步答案, 可以实现超快的推理速度和强大的性能。
大多数现有方法通过从服务器 GPU 获得的计算复杂度 (MAC) 或吞吐量(图像/秒)来优化的推理速度。虽然这些指标并不能反映真实的设备延迟。为了清楚地了解哪些操作和设计选择会减慢边缘设备上的 推理,作者对许多模型和操作进行了全面的延迟分析,如图 2 所示,由此得出以下观察结果。

观察1:具有大 和 的是移动设备的速度瓶颈。
通常使用具有较大和的非重叠卷积层来实现。一个普遍的看法是, 网络中的计算成本不显着或可以忽略不计。然而,在图 2 中比较了具有大和的模型,即 和 ,以及没有它的模型,即 和 ,表明反而是移动设备上的速度瓶颈。
大多数编译器都不能很好地支持大内核卷积,并且无法通过 等现有算法进行加速。或者,非重叠可以由具有快速下采样的代替,该卷积干由几个硬件高效的 3×3 卷积组成。
观察2:一致的特征维度对于 的选择很重要。 不一定是速度瓶颈。
最近的工作将基于 的模型扩展到由 块和未指定的 组成的 架构。在构建基于 的模型时,选择 是必不可少的设计选择。选项很多——具有全局感受野的传统 MHSA、更复杂的移位窗口注意力或非参数运算符(如池化)。
这里将比较范围缩小到和 这两个 ,选择前者是因为它的简单性和效率,而后者是为了更好的性能。大多数公共移动编译器目前不支持更复杂的 ,如移位窗口,因此将它们排除。此外,不使用深度卷积来代替池化,因为模型更专注于在没有轻量级卷积帮助的情况下构建架构。
为了了解这2个 的延迟,进行了以下两个比较:
首先,通过比较 和 ,观察到 操作是 的瓶颈。 的大部分是在 4D 张量上使用 Conv 实现的,在将特征转发到 时需要频繁的 操作,因为必须在修补后的 3D 张量上执行注意力(丢弃注意力头的额外维度)。 的广泛使用限制了 在移动设备上的速度(图 2)。另一方面,当网络主要由基于 Conv 的实现组成时,池化自然适合 4D 张量,例如,作为 MLP 实现的 Conv 1×1 和用于下采样的 Conv stem。因此, 表现出更快的推理速度。
其次,通过比较 和 发现如果特征尺寸一致且不需要 , 不会给手机带来显著的计算开销。尽管计算量更大,但具有一致 3D 特征的 可以实现与新的 变体(即 )相当的速度。
因此在本文的工作中,提出了一个具有 4D 特征实现和 3D MHSA 的维度一致网络,但消除了低效的频繁 操作。
: 比 更利于延迟,并且精度降低通常是可以接受的。
选择 MLP 实现是另一个重要的设计选择。通常,选择以下2个选项之一:使用 线性投影的 ()和使用 () 的 。 对延迟更有利,因为 可以融合到前面的卷积中以加快推理速度,而 仍然在推理阶段收集运行统计信息,从而导致延迟。根据实验结果和之前的工作, 引入的延迟占整个网络延迟的 10%-20% 左右。
根据消融研究,与 相比, 仅略微降低了性能。在这项工作中,尽可能多地应用 以获得可忽略不计的性能下降的延迟增益,同时将 用于 3D 特征,这与 中的原始 设计一致并且产生更好准确性。
观察4:非线性的延迟取决于硬件和编译器
最后,研究非线性,包括 、 和 。以前的工作表明 在硬件上效率不高,并且会减慢推理速度。但是,作者观察到 得到 iPhone 12 的良好支持,并且几乎不比其对应的 慢。相反,在实验中, 的速度出奇地慢,编译器可能无法很好地支持( 的 延迟为 44.5 毫秒,而 为 11.9 毫秒)。得出的结论是,非线性应该根据特定硬件和编译器的具体情况逐个确定。在这项工作中,使用了 激活。
基于延迟分析,提出了 的设计,如图 3 所示。该网络由 () 和堆栈组成,表示为 :

其中 是输入图像,批大小为 B,空间大小为 [H,W],Y是所需的输出,m是的总数(深度)。由未指定的和一个组成,可以表示如下:

其中 是转发到第 i 个 MB 的中间特征。进一步将 Stage 定义为处理具有相同空间大小的特征的几个 的堆栈,例如图 3 中的 表示 S1 具有 个 。

该网络包括 4 个阶段。在每个阶段中,都有一个嵌入操作来投影嵌入维度和下采样长度,在图 3 中表示为嵌入。在上述架构下, 是一个完全基于的模型,没有集成 结构。
3.1 维度一致的设计
本文提出了一种维度一致的设计,将网络分成一个 分区,其中算子以 样式 () 实现,以及一个 分区,其中线性投影和注意力在 张量上执行,以利用 的全局建模能力,而无需牺牲效率(),如图3所示。具体来说,网络从分区开始,而分区在最后阶段应用。请注意,图 3 只是一个实例, 和 分区的实际长度是稍后通过架构搜索指定的。
首先,使用由具有2个 为3×3, 为 2的卷积组成的 处理后的图像作为 ,

其中 是第 j 个阶段的通道数(宽度)。然后网络从 开始,使用简单的来提取特征,

其中是指卷积后是否分别跟和。注意这里没有在之前使用 或 (),因为 分区是基于 的设计,因此每个前面都有一个 。
在处理完所有 块后,执行一次以变换特征大小并进入 分区。 遵循传统的 结构,如图 3 所示。形式上,

其中 表示线性后跟 ,并且

其中 Q、K、V 表示通过线性投影学习的、和,b 是作为位置编码的参数化注意力偏差。
3.2 延迟驱动Slimming
1、SuperNet的设计
基于维度一致的设计,构建了一个,用于搜索图 3 所示网络架构的高效模型(图 3 显示了搜索到的最终网络的示例)。为了表示这样一个,定义了 (),它是可能块的:

其中 I 表示,j 表示第 j 个阶段,i 表示第 i 个块。可以通过用 MP 代替图 3 中的 MB。
在的第1阶段和第2阶段中,每个可以选择 或 I,而在第3阶段和第4阶段中,可以是 、 或 I。
本文只在最后两个阶段启用 ,原因有2个:首先,由于 MHSA 的计算相对于长度呈二次增长,因此在早期集成它会大大增加计算成本。其次,将全局 MHSA 应用于最后阶段符合直觉,即网络的早期阶段捕获低级特征,而后期层则学习长期依赖关系。
2、搜索空间
搜索空间包括 (每个 Stage 的宽度)、(每个 Stage 中的块数,即深度)和最后 N 个要应用 MB3D 的块。
3、搜索算法
以前的硬件感知网络搜索方法通常依赖于每个候选者在搜索空间中的硬件部署来获得延迟,这是非常耗时的。在这项工作中,提出了一种简单、快速但有效的基于梯度的搜索算法,以获得只需要训练一次的候选网络。

3.3 模型架构

4.1 分类实验

4.2 目标检测与语义分割

[1].EfficientFormer: Vision Transformers at MobileNet Speed
本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
计算机视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
14.ROS2从入门到精通:理论与实战
15.国内首个3D缺陷检测教程:理论、源码与实战
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题
图木舒克版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com