当前位置:首页 > 科技/电子
 

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


时间:2022-07-11  来源:  作者:  点击次数:


选自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格式。这项研究使用了

Core ML Tools 将每个模型转换成 coreml 包,然后开发了一个 iOS 应用程序来测量 iPhone12 上的模型延迟。

如下图 2 所示,该研究绘制了延迟与 FLOPs 和延迟与参数计数的关系图。研究者观察发现许多具有较高参数计数的模型延迟较低。在类似的 FLOPs 和参数计数下,MobileNets 等卷积模型对于比相应的 Transformer 模型延迟更低。

研究者还估计了下表 1 (a) 中的 Spearman 排名相关性,并发现延迟与 FLOPs 适度相关,而与移动设备上高效架构的参数计数弱相关,在台式机 CPU 上相关性会更低。

激活函数的关键瓶颈

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

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

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

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

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

由于新模型在推理时没有多分支架构,因此它不会产生数据移动成本。与多分支架构(如 MobileNet-V2、EfficientNets 等)相比,苹果的新模型能够积极地扩展模型参数,而不会产生很高的延迟成本。

增加参数数量能够让该模型很好地泛化到其他计算机视觉任务上,如目标检测和语义分割。表 4 将新模型与最近的训练时间过参数化工作进行了比较,结果表明 MobileOne-S1 变体的性能优于 RepVGG-B0,约比后者高 3 倍。

实验及结果

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

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

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

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

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


本文来自华纳娱乐 转载请注明

上一篇 下一篇


  • 用户名:
  • 密码:
  • 验证码:
  • 匿名发表