不到 1ms 在 iPhone12 上完成推理,苹果提出移动端高效主干网络 MobileOne

不到 1ms 在 iPhone12 上完成推理,苹果提出移动端高效主干网络 MobileOne,第1张

不到 1ms 在 iPhone12 上完成推理,苹果提出移动端高效主干网络 MobileOne

选自arXiv

作者:帕万·库马尔·阿纳索卢·瓦苏等人

机心编译

编辑:船

来自苹果公司的研究团队分析了现有高效神经网络的架构和优化瓶颈,并提出了一种新的移动骨干网络。

用于移动设备的高效神经网络主干通常针对诸如翻牌或参数计数等指标进行优化。然而,当部署在移动设备上时,这些指标可能与网络延迟没有很好的相关性。

基于此,来自苹果的研究人员通过在移动设备上部署多个移动友好网络,广泛分析了不同的指标,探索了现有高效神经网络的架构和优化瓶颈,并提供了缓解这些瓶颈的方法。本研究设计了一个高效的主干架构MobileOne。其变体在iPhone12上的推理时间不到1 ms,在ImageNet上的top-1准确率为75.9%。

地址:https://arxiv.org/abs/2206.04040

MobileOne架构不仅实现了SOTA的性能,还将移动设备的速度提高了许多倍。其中,最佳模型变体在ImageNet上实现了与MobileFormer相当的性能,速度提高了38倍。MobileOne在ImageNet上的top-1准确率比相似延迟下的EfficientNet高2.3%。

此外,研究还表明,MobileOne可以扩展到多项任务——图像分类、物体检测和语义分割。与现有部署在移动设备上的高效架构相比,准确率显著提高,延迟显著缩短。

方法概述

研究者首先分析了常用指标(FLOP和参数计数)与移动设备时延的相关性,分析了架构中不同设计选择对手机时延的影响。

索引相关性

比较两个或更多模型的尺寸最常用的成本指标是参数计数和FLOPs。然而,它们可能与实际移动应用中的延迟没有很好的相关性。本研究对高效神经网络进行了深入的分析和基准测试。

研究了最新模型的Pytorch实现,并将其转换为ONNX格式。该研究使用coreml工具将每个模型转换为Core ML包,然后开发一个iOS应用程序来测量iPhone12上的模型延迟。

如下图2所示,本研究绘制了延迟和触发器以及延迟和参数计数之间的关系。研究人员观察到,许多具有较高参数计数的模型具有较低的延迟。在类似的FLOPs和参数计数下,MobileNets等卷积模型比相应的Transformer模型具有更低的延迟。

研究人员还估计了下表1 (a)中的Spearman排名相关性,并发现延迟与FLOPs中度相关,但与移动设备上高效架构的参数计数弱相关,并且这种相关性在桌面CPU上更低。

激活功能的关键瓶颈

为了分析激活函数对时延的影响,本研究构建了一个30层的卷积神经网络,并在iPhone12上对其进行了不同激活函数的基准测试,这些激活函数通常用于高效的CNN骨干网络。下表3中的所有模型具有相同的架构,除了激活功能之外,但是它们的延迟有很大不同。

这种差异主要是最近提出的激活函数(如SE-ReLU、Dynamic Shift-Max和DynamicReLUs)造成的。MobileOne中只使用ReLU激活功能。影响体系结构运行时性能的两个关键因素是内存访问成本和并行性。

在多分支架构中,存储器访问成本显著增加,因为必须存储来自每个分支的激活函数来计算图中的下一个张量。如果网络中的分支较少,就可以避免这种内存瓶颈。由于同步成本,强制同步架构块(如Squeeze-Excite块中使用的全局池操作)也会影响整体运行时间。为了演示内存访问成本和同步成本等隐性成本,本研究在30层卷积神经网络中使用了大量的剩余连接和挤压激励块。表1b显示了它们对延迟的影响。

基于此,本研究在推理中采用无分支的架构,从而降低了内存访问成本,并在MobileOne的最大变体中使用Squeeze-Excite块来提高准确率。最后,MobileOne架构如下图所示。

为了提高性能,从宽度、深度和分辨率三个方面对模型进行了扩展。这项研究没有随着FLOP和内存消耗的增加而放大输入分辨率,这对移动设备的运行时性能是有害的。

因为新模型在推理时没有多分支架构,所以不会招致数据移动的代价。与多分支架构(如MobileNet-V2、EfficientNets等)相比,),苹果的新模型可以主动扩充模型参数,而不会产生很高的延迟成本。

增加参数的数量可以使模型很好地推广到其他计算机视觉任务,如对象检测和语义分割。表4将新模型与最新的训练时间过参数化进行比较,结果显示MobileOne-S1变体的性能优于RepVGG-B0,比后者高出约3倍。

实验和结果

很难在移动设备上获得准确的延迟测量。在iPhone 12上,没有命令行访问或功能来保留所有计算结构仅用于模型执行。同时,往返延迟无法分解为网络初始化、数据移动和网络执行。为了测量延迟,本研究使用swift开发了一个iOS应用程序来测试这些模型。应用程序使用核心ML运行模型。

在基准测试期间,应用程序将多次运行模型(默认为1000次)并累积统计数据。为了最低的延迟和最高的一致性,手机上的所有其他应用程序都将关闭。

如下表8所示,研究报告了完整的模型往返延迟。大部分时间可能不是来自于模型本身的执行过程,但是在实际应用中,这些延迟是不可避免的。因此,该研究将他们包括在报告的延迟中。为了过滤掉其他进程的中断,研究报告了所有模型的最小延迟。

此外,本研究还报告了几种模型在MS COCO数据集上的目标检测任务和在Pascal VOC和ADE 20k数据集上的语义分割任务中的性能。MobileOne的性能普遍优于其他机型,具体结果如下表9所示。

感兴趣的读者可以阅读原文,了解更多的研究细节。

剧终

授权请联系本微信官方账号。

投稿或寻求报道:[email protected]

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/1747733.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存