一文全览 | 全览iPhone 12就可以实时推理的移动端ViT

简介: 一文全览 | 全览iPhone 12就可以实时推理的移动端ViT

视觉Transformer(ViTs)已经在许多计算机视觉任务中展示了最先进的性能。不幸的是,部署这些大规模的ViT是消耗资源的,并且对于许多移动设备来说是不可能的。虽然社区中的大多数人都在为越来越大的ViT进行构建,但作者提出了一个完全相反的问题:在准确性和推理延迟的权衡范围内,ViT能有多小,才能适合移动部署?

作者研究了一些专门为移动应用程序设计的ViT,并观察到它们修改了Transformer的架构,或者是围绕CNN和Transformer的组合构建的。最近的工作还试图创建稀疏的ViT网络,并提出了注意力力模块的替代方案。

在本文中,作者研究了这些架构,确定了挑战,并分析了真正使视觉Transformer适合移动应用程序的原因。作者的目标是作为未来研究方向的基准,并有望为在移动设备上运行的应用程序选择示例性的视觉Transformer架构奠定基础。

1、简介

受Transformer模型在自然语言处理(NLP)应用中的成功启发,A.Dosovitskiy、Dosovitski等人介绍了用于计算机视觉(CV)应用的视觉Transformer(ViT)。视觉Transformer模型在ImageNet数据集上显示出77.9%至81.3%的Top-1准确率,并已用于许多下游图像识别任务,如分类、目标检测和分割。

尽管这些方法的Top-1准确度得分令人印象深刻,但它们通常太大、太慢,无法部署在移动设备上。这些模型的大量参数是移动应用程序的计算、存储、内存和推理延迟的负担。Transformer模块中的多头自注意力(MHSA)操作本质上是二次的。ViT中的MLP模块将嵌入空间投影为4倍,应用非线性,然后将其投影回其原始形状。因此,ViT的延迟通常不适用于iPhone、Google edge TPU、NVIDIA Jetson Nano、Intel edge设备(如Movious、FPGA和高通公司的Hexagon DSP)等边缘设备。

这项工作的动机来自于作者在移动设备上使用各种计算机视觉应用程序的经验,在这些设备上,神经网络仍然很普遍。虽然这些领域中的应用程序可以受益于基于ViT的Backbone的改进性能,但与CNN相比,ViT的推理延迟为1.5-4倍。因此,神经网络是这些应用中首选的主流架构。

最近,已经提出了专门针对移动设备中的CV任务的各种架构,这些架构将Transformer与神经网络相结合。此外,量化、修剪、蒸馏等技术被应用于现有模型,以将其应用于移动设备。Kuznedelev展示了一种训练感知修剪框架来稀疏化ViT,该框架以50%的稀疏性实现了几乎SOTA的准确性。

作者的目标是探索为移动设备优化的视觉Transformer架构。作者特别感兴趣的是它们的推理效率与准确性/延迟的权衡。作者确定了设计选择中的一些常见模式和构建移动优化ViT的挑战,并为边缘优化视觉Transformer的研究提供了指导。

2、移动应用程序中的Vision Transformers

适合移动的视觉Transformer可以大致分为两类。首先,在训练后改变模型——应用量化、修剪和混合模型稀疏化技术等技术。第二,模型架构发生变化。这可以是Transformer+CNN模型、基于MLP的模型或稀疏模型的混合。这项工作的重点是使视觉Transformer适用于移动应用程序的架构变化。

2.1、探索架构

1、Receptive Field Increase

CV任务中的一个常见挑战是在没有额外计算成本的情况下处理更高分辨率的图像以获得更好的精度。Efficient ViT和EdgeNeXt都提出了解决这一问题的设计变更。Efficient ViT由MobileNetV2深度卷积(DWConv)层和取代Softmax注意力的线性注意力模块组成。随后是具有可变形CNN的前馈网络(FFN)。类似地,EdgeNeXt提出了一种分深度转置注意力(SDTA)编码器,而不是普通的MHSA模块。SDTA编码器将输入张量分成多个通道组。然后,它利用DWConv和跨通道维度的自注意力来有效地增加模型操作的感受野。

2、Pooling Layers

一组混合CNN+Transformer架构在注意力模块之后使用池化层来减少推理延迟。NextViT由交替的卷积块和Transformer块组成。卷积块使用由分组的3X3卷积运算和MLP形成的多头卷积注意力(MHCA)。Transformer块使用由Key和Value向量的池化层组成的MHSA。

此外,为了提高推理速度,还采用了通道缩减方法。PoolFormer提出了一种替代的Token混合模块-MetaFormer,其中使用池化层修改Token混合,与ViT相比,使用更少的参数获得类似的精度。

3、Principles of CNN

LeViT将CNN网络的原理引入Transformer,特别是通过降低分辨率的激活图。它将输入通过3x3卷积,然后对注意力模块进行收缩。LeViT不是位置嵌入,而是通过注意力偏差项将位置信息编码到注意力图。LeViT的训练过程类似于DeiT,后者在最后阶段之后使用蒸馏Token头。MobileViT引入了MobileViT模块,该模块负责捕捉图像的局部和全局特征的交互。使用具有1x1逐点卷积的NxN卷积来捕获局部表示,其输出特征图用作全局特征捕获模块的输入。

4、Consistent Tensor Dimension

EfficientFormer为Token混合带来了一致的特征维度。整个网络是按照张量维度划分的;首先,基于4D张量。称为MB4D的卷积层应用于4维张量,其次,基于由MHSA组成的3D张量,作为Transformer模块的Token混合器。在阶段之间使用嵌入层来将Token长度投影到较低的维度,从而缓解维度失配,进而提高推理速度。

图1显示了迄今为止所描述的这些体系结构的高级视图。

5、Parallel Layers

作者发现了一类并行执行特定层以提高时间复杂性的模型。Mobile Former的两个并行分支分别提取局部和全局表示,并通过桥接架构进行连接。MixFormer的两个平行分支通过通道交互和空间交互,为两个分支中更好的表征学习提供了互补的线索。

6、Token Reduction

Transformer中的内存和推理延迟与Token的数量密切相关。但是这些Token中的许多对于手头的任务来说是多余的。最近的工作已经证明了通过修剪Token、组合Token来减少Token。所有这些方法都需要对模型进行训练,而ToMe提出了一种基于相似性合并Token的技术,而无需任何进一步的模型训练。

7、Integer Quantization

量化用于减少边缘设备的推理延迟。然而,在视觉Transformer上仅进行整数运算是一个公开的挑战。I-ViT通过应用二值算术流水线对线性运算使用纯整数算术来解决这一差距。对于非线性运算,I-ViT引入了3种新颖的运算——Shiftmax、ShiftGelu和I-LayerNorm。Shiftmax可替代softmax。它使用从MatMul运算获得的量化的比例因子和量化的整数权重来获得仅整数的值。类似地,ShiftGelu是Gelu激活函数和I-LayerNorm的替代方案,用于仅限整数的层规范化操作,以提高Top-1的准确性和延迟。

2.2、Sparse Vision Transformers

构建优化视觉Transformer的一种方法是构建密集模型的稀疏神经网络(SNN)版本。SNN通常指的是权重稀疏性,即将权重设置为零。对于给定的任务,当模型被过度参数化时,这可能会很有帮助。SNN也可以基于激活稀疏性,该激活稀疏性测量非线性之后的零的数量,即激活函数。

稀疏性可以是结构化的,其中权重矩阵块可以是密集的,也可以是稀疏的。在非结构化稀疏性中,没有可遵循的模式。非结构化稀疏性去除了最不重要的权重,无论它们在哪里——这导致了不规则的稀疏模式。Han等人提出了神经网络中流行的权重修剪方法——训练、修剪和再训练。这种方法通常需要多次迭代重新训练来恢复丢失的准确性。这对视觉Transformer来说尤其具有挑战性,因为它们已经很难训练和稳定。

虽然神经网络允许大于80%的非结构化稀疏性和高达40%的结构化稀疏性,但在精度显著下降之前,ViT稀疏性更难实现。Kuznedelav等人表明,ViT模型在每个修剪步骤中都会损失大量的准确性。对于ViT来说,恢复失去的准确性比CNN更难。

为了缓解这个问题,Frankle等人在DenseNet中可以找到一个稀疏子网络,作者可以对其进行隔离训练,以获得完全的准确性。然而,找到稀疏子网络是一个NP难题,因此,需要一个迭代修剪过程才能找到有用的子网络。Chen等人Chen等人演示了使用端到端动态稀疏网络来解决LTH的挑战。

作者将ImageNet与DeiT Tiny/Small/Base结合使用。他们用DeiT Small展示了50%的模型稀疏性,节省了49.32%的FLOP和4.40%的运行时间,同时获得了0.28%的准确率的惊人提高。Kuznedelev等人提出了oViT框架,该框架在微调的同时迭代地修剪模型。使用oViT,具有50%稀疏性的EfficientFormer-L1实现了78%的Top-1精度,而密集型Former-L1的精度为78.9%。

2.3、注意力力的替代品

最近关于寻找注意力模块替代品的工作显示出了有希望的结果。翟等人提出了一种无需注意力的Transformer架构。作者建议用门控和Softmax或门控和显式卷积来代替注意力。Michael、Poli等人试图找到一种次二次算子,该算子可以在尺度上匹配注意力网络的质量。他们表明,无注意力力网络达到了Transformer的性能,语言建模任务的计算量减少了20%。

在WIKITEXT103和THE PILE数据集上测试,他们提出的次二次Hyena算子在序列长度8K时的速度是高度优化注意力的两倍,在序列长度64K时快100倍。使用这些次二次算子作为注意力模块的替代品可能是未来研究的一个方向。

2.4、Comparing Results

图2显示了几种适用于边缘设备的Vision Transformer模型的Top-1精度与延迟。这些模型在ImageNet-1K上使用AdamW优化器以224x224的图像分辨率训练300个Epoch。在iPhone 12上使用CoreML框架来测量延迟。表1列出了一些基于CNN、Hybrid和纯Transformer架构的最先进模型及其参数数量。

这些结果表明,在准确性和延迟的权衡中,作者有一些有趣的移动视觉Transformer选择。例如,EfficientFormer-L3具有82.4%的准确率和3ms的相当低的延迟。相比之下,NextViT-S在分类任务上的准确率为82.5%,在CoreML上的延迟为3.5ms。

在作者的观察中,sub-20M参数模型是一种混合的CNN Transformer架构,主要是因为注意力算子的 sub-quadratic替代方案在ViTs中仍然不普遍。

3、参考

[1].VISION TRANSFORMERS FOR MOBILE APPLICATIONS: A SHORT SURVEY.

相关文章
|
11月前
|
iOS开发
移动端iPhone系列适配问题的一些坑
移动端iPhone系列适配问题的一些坑
87 0
|
存储 机器学习/深度学习 Android开发
iPhone两秒出图,目前已知的最快移动端Stable Diffusion模型来了
iPhone两秒出图,目前已知的最快移动端Stable Diffusion模型来了
297 0
|
机器学习/深度学习 存储 编解码
不到1ms在iPhone12上完成推理,苹果提出移动端高效主干网络MobileOne
不到1ms在iPhone12上完成推理,苹果提出移动端高效主干网络MobileOne
150 0
|
2月前
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现
|
Shell iOS开发
iOS逆向:tweak开发教程(iPhone/tool)
iOS逆向:tweak开发教程(iPhone/tool)
1018 0
iOS逆向:tweak开发教程(iPhone/tool)
|
编解码 iOS开发
iphone 开发的基本入门知识
iphone 开发的基本入门知识
207 0
「镁客早报」iPhone或将在今年采用三摄;传Facebook致力于开发语音助力服务与亚马逊、苹果竞争
亚马逊向美国Alexa设备推免费音乐服务;视频会议软件开发商Zoom纳斯达克上市。
258 0
|
Web App开发 缓存 开发工具
下一篇
无影云桌面