MobileNetV4 - Universal Models for the Mobile Ecosystem
Abstract
-
我们展示了最新一代的MobileNets,称为MobileNetV4(MNv4),其特点是为移动设备提供通用高效的架构设计。在其核心,我们介绍了通用反向瓶颈(UIB)搜索块,这是一种统一而灵活的结构,融合了反向瓶颈(IB)、ConvNext、前馈网络(FFN)和一种新的超深度(ExtraDW)变体。除了UIB,我们还推出了Mobile MQA,这是一款专为移动加速器量身定制的注意力块,可显著提高39%的速度。还介绍了一种优化的神经结构搜索(NAS)配方,该配方提高了MNv4搜索的有效性。UIB、Mobile MQA和改进的NAS配方的集成产生了一套新的MNv4模型,这些模型在移动CPU、DSP、GPU以及Apple Neural Engine和Google Pixel EdgeTPU等专用加速器中大多是Pareto最优的,这是在任何其他测试模型中都没有的特性。最后,为了进一步提高精度,我们介绍了一种新的蒸馏技术。通过这项技术的增强,我们的MNv4混合大型模型提供了87%的ImageNet-1K准确率,Pixel 8 EdgeTPU运行时间仅为3.8ms。
-
论文地址:[2404.10518] MobileNetV4 – Universal Models for the Mobile Ecosystem (arxiv.org)
-
项目地址:models/official/vision/modeling/backbones/mobilenet.py at master · tensorflow/models (github.com)
-
MobileNet运用深度可分离卷积进行轻量级网络的构建,在准确率没有大幅下降的情况下,能把参数量和计算量降低大约8倍; MobileNetV2基于inverted residual with linear bottleneck进行轻量级网络构建,包括Inverted residuals以及expansion layer,linear Bottlenecks的分析也很有启发意义;MobileNetV3首先使用AutoML方法获取到最优的网络结构,再通过人工的部分修改来达到最终的精度,里面的improvement也值得学习。
-
MobileNet V4(MNv4)的核心在于通用倒置颈结构(Universal Inverted Bottleneck, UIB)和Mobile MQA两大模块,搭配优化后的神经网络架构搜索(NAS)配方。仍然基于MobileNet的经典组件如可分离的深度卷积(DW)和逐点(PW)扩展及投影倒置瓶颈块,引入了通用倒置颈结构(UIB)。这个结构相当简单,在倒置瓶颈块中引入了两个可选的深度卷积(DW),一个位于扩展层之前,另一个位于扩展层和投影层之间。这两个深度卷积的存在与否是神经架构搜索(NAS)优化过程的一部分,最终会生成新颖的网络架构。作者巧妙地统一了几个重要的模块,包括原始的倒置颈结构、ConvNext以及ViT中的FFN。此外,UIB还引入了一个新的变体:ExtraDW。与UIB相辅相成的是Mobile MQA,设计了一个专为加速器设计的开创性注意力块,实现高达39%的推理加速。此外,还引入一种优化的神经网络架构搜索(NAS)配方,提高了MNv4搜索的有效性
-
Universal Inverted Bottleneck (UIB) Block:这是一种新的模型结构,具有高度灵活性,可以适应不同平台的高效率优化需求。它能够实现在不牺牲性能的前提下,有效地减少计算。Mobile MQA:一种高度优化的注意力机制,能够在保持高性能的同时,显著提高模型的运行速度。它在尽可能少的精度损失的情况下,有效地减少了模型的参数量和计算量。Distillation Recipe:通过一种新的蒸馏方法,利用更强的模型来指导轻量级模型的训练,使其能够学习到更丰富的特征表示,从而在保持高效的同时,进一步提高性能。
- UIB块通过引入可选的深度卷积层,提高了模型的灵活性和适应性。它允许模型在不同的阶段选择合适的操作,以实现最佳的性能。通过这种灵活的设计,模型可以在不同的硬件平台上实现高效运行,同时保持了较高的性能。UIB块的核心思想是通过多路径结构来平衡模型的性能和效率。它允许模型在不同的阶段选择合适的操作,以实现最优的性能-效率权衡。例如,在模型的早期阶段,可以选择较大的卷积核来捕获更多的空间信息,而在后期阶段,则可以选择较小的卷积核来减少计算量。
- Mobile MQA通过共享键和值的头,显著减少了多头注意力机制的计算量。同时,通过引入局部注意力机制,进一步减少了计算量,同时保持了良好的性能。Mobile MQA的核心思想是通过减少注意力机制中的冗余计算来提高效率。它通过共享键和值的头,将多头注意力机制中的计算量从O(d^2)减少到O(d)。此外,通过引入局部注意力机制,进一步减少了计算量,同时保持了良好的性能。
- 使用一个强大的教师模型来指导轻量级模型的训练,使其能够学习到更丰富的特征表示。同时,通过使用混合数据集和不平衡的in-class数据,提高了模型的泛化能力。Distillation Recipe的核心思想是通过知识蒸馏来利用教师模型的知识。通过将教师模型的输出作为软标签,轻量级模型可以学习到更丰富的特征表示。此外,通过使用混合数据集和不平衡的in-class数据,提高了模型的泛化能力,使其能够在不同的场景下取得更好的性能。
-
消融实验的结果表明,UIB块、Mobile MQA和Distillation Recipe的结合是MobileNetV4性能提升的关键。例如,当去除Mobile MQA时,模型的精度会显著下降。同样,当使用传统的训练方法而不是Distillation Recipe时,模型的性能也会受到影响。此外,UIB块的设计也对模型的性能和效率产生了重要影响。
Introduction
- 高效的设备上神经网络不仅可以实现快速、实时和交互式体验,还可以避免通过公共互联网传输私人数据。然而,移动设备的计算约束对平衡准确性和效率提出了重大挑战。为此,我们引入了UIB和Mobile MQA这两个创新的构建块,通过改进的NAS配方进行集成,以创建一系列普遍的、主要是Pareto最优的移动模型。此外,我们还提出了一种蒸馏技术,可以进一步提高精度。
- 我们的通用反向瓶颈(UIB)块通过结合两个可选的深度卷积改进了反向瓶颈块。尽管UIB很简单,但它统一了突出的微架构——反向瓶颈(IB)、ConvNext和FFN——并引入了超深度(ExtraDW)IB块。UIB在空间和通道混合方面提供了灵活性,可以选择扩展感受野,并提高了计算效率。相对于多头注意力,我们优化的移动MQA块在移动加速器上实现了超过39%的推理加速[Attention is all you need]。
- 我们的两阶段NAS方法,将粗略搜索和细粒度搜索分离,显著提高了搜索效率,并有助于创建比以前最先进的模型大得多的模型[Efficientnet]。此外,结合离线蒸馏数据集可以减少NAS奖励测量中的噪声,从而提高模型质量。
- 通过集成UIB、MQA和改进的NAS配方,我们提出了MNv4模型套件,在包括CPU、DSP、GPU和专用加速器在内的各种硬件平台上实现了大部分Pareto最优性能。我们的模型系列涵盖了一系列计算范围,从具有3.8M参数和0.2G MAC的极其紧凑的MNv4-Conv-S设计,在Pixel 6 CPU上在2.4毫秒内实现73.8%的顶级ImageNet-1K精度,到在Pixel 8 EdgeTPU上以3.8毫秒运行的为移动模型精度建立新参考的MNv4-Hybrid-L高端变体。我们的新蒸馏配方混合了具有不同增强的数据集,并添加了平衡的类内数据,增强了泛化能力,进一步提高了准确性。有了这项技术,MNv4-Hybrid-L在ImageNet-1K上实现了令人印象深刻的87%的前1级准确率:尽管MAC减少了39倍,但与老师相比仅下降了0.5%。
- 在输入模型之前,图像会经过一些预处理步骤,这通常包括:缩放:将图像调整到指定的输入大小(如224x224)。对图像像素值进行归一化处理,使其值在特定范围内(如0到1或-1到1)。图像首先通过一个标准卷积层,该层具有较大的卷积核(如3x3或5x5),用于捕捉低级别的特征,例如边缘和纹理。这一层通常是计算密集型的,以便在早期捕获更多的信息。
- 在MobileNetV4中,倒瓶颈块(IB块)是核心组件之一。每个倒瓶颈块包含以下子步骤:
- 扩展卷积:首先使用1x1卷积扩展特征图的通道数。
- 深度可分离卷积:然后使用深度可分离卷积(Depthwise Separable Convolution)在空间维度上进行卷积操作。
- 压缩卷积:最后通过1x1卷积将通道数压缩回去。
- MobileNetV4引入了UIB,这种块可以灵活地调整,以适应不同的计算需求:标准倒瓶颈:与传统倒瓶颈类似,但增加了更多的灵活性。ConvNext变体:结合了现代卷积架构的优点。前馈网络(FFN):适用于需要更多非线性变换的场景。额外深度可分离卷积(ExtraDW):用于提高计算效率和特征提取能力。
- Mobile MQA注意力块,这个模块是优化后的注意力机制,专门设计用于移动设备:注意力计算:对特征图进行加权操作,以增强重要特征并抑制不重要的部分。该模块在硬件加速器上实现了快速的推理速度,提高了整体的处理效率。
Related Work
- 优化模型的准确性和效率是一个研究得很好的问题。Mobile Convolutional Networks: 关键工作包括具有深度可分离卷积的MobileNetV1以提高效率,MobileNetV2引入线性瓶颈和反向残差,MnasNet在瓶颈中集成轻量级注意力,以及MobileOne在推理时在反向瓶颈中添加和重新参数化线性分支。
- 高效混合网络:这一研究领域集成了卷积和注意力机制。MobileViT通过全球关注块将CNN的优势与ViT融合在一起。MobileFormer将MobileNet和Transformer并行化,并在两者之间使用双向桥接进行功能融合。FastViT将注意力添加到最后阶段,并在早期阶段使用大型卷积核作为自我注意力的替代品。
- 高效注意力:研究的重点是提高MHSA的效率。EfficientViT和MobileViTv2为线性复杂度引入了自注意近似,精度影响较小。EfficientFormerV2对Q、K、V进行效率下采样,而CMT和NextViT仅对K和V进行下采样。
- 硬件感知神经体系结构搜索(NAS):另一种常见的技术是使用硬件感知神经结构搜索(NA)来自动化模型设计过程。NetAdapt使用经验延迟表来优化目标延迟约束下模型的准确性。MnasNet也使用延迟表,但将强化学习应用于硬件感知NAS。FBNet通过可区分的NAS加速了多任务硬件感知搜索。MobileNetV3通过硬件感知NAS、NetAdapt算法和架构进步的组合,调整为移动电话CPU。MobileNet MultiHardware针对多个硬件目标优化单个模型。Once-for-all将训练和追求效率分开。
Hardware-Independent Pareto Efficiency
-
The Roofline Model: 为了使模型具有普遍的效率,它必须在具有极大不同瓶颈的硬件目标上表现良好,这些瓶颈限制了模型的性能。这些瓶颈在很大程度上由硬件的峰值计算吞吐量及其峰值内存带宽决定。为此,我们使用屋顶线模型[Roofline: an insightful visual performance model for multicore architectures]来估计给定工作负载的性能,并预测它是内存瓶颈还是计算瓶颈。简而言之,它抽象了特定的硬件细节,只考虑工作负载的操作强度(LayerMACsi/(WeightBytesi+ActivationBytesi))与硬件处理器和内存系统的理论极限。内存和计算操作大致并行进行,因此两者中较慢的一个大致决定了延迟瓶颈。为了将屋顶线模型应用于具有由 i 索引的层的神经网络,我们可以计算模型推理延迟ModelTime,如下所示:
- M o d e l T i m e = ∑ i m a x ( M A C T i m e i , M e m T i m e i ) M A C T i m e i = L a y e r M A C s i P e a k M A C s , M e m T i m e i = W e i g h t B y t e s i + A c t i v a t i o n B y t e s i P e a k M e m B W ModelTime = \sum_i max(MACTime_i, MemTime_i)\\ MACTime_i = \frac{LayerMAC_{s_i}}{PeakMAC_s} , \\ MemTime_i = \frac{WeightByte_{s_i} + ActivationByte_{s_i}}{PeakMemBW} ModelTime=i∑max(MACTimei,MemTimei)MACTimei=PeakMACsLayerMACsi,MemTimei=PeakMemBWWeightBytesi+ActivationBytesi
-
在屋顶线模型中,硬件行为由脊点(RP)决定,脊点是硬件的峰值MAC与峰值MemBW的比率。即,实现最大性能所需的最小操作强度(使用模型的总MAC来代理延迟的常见做法与以岭点(RP)=0的屋顶线模型为目标的做法相同。这相当于每个MAC的无限字节,因此, ∀ i , M e m T i m e i = 0 和 M o d e l T i m e = ∑ i M A C T i m e i ∀i,MemTime_i=0和ModelTime=\sum_i MACTime_i ∀i,MemTimei=0和ModelTime=∑iMACTimei)。为了优化具有广泛瓶颈的硬件,如下图所示,我们分析了算法的延迟,同时将RP从其最低期望值(0 MAC/字节)扫到其最高期望值(500 MACs/字节)——更多详细信息,请参阅附录F。
-
-
脊岭点和延迟/准确性权衡:脊点测量屋顶线性能模型中与MAC相关的内存带宽之间的关系。如果内存带宽是恒定的,那么高计算硬件(加速器)比低计算硬件(CPU)具有更高的脊点。MobileNetV4从0到500个MAC/字节的脊点来看大多是Pareto最优的。这些分析推导的(等式1)图表反映了下图中的真实硬件测量结果。
-
-
MNv4模型在大多数情况下都是帕累托最优的:与跨不同硬件的领先高效模型相比,MNv4表现强劲。所有模型仅在ImageNet-1k上进行训练。大多数模型针对一个设备进行了优化,但MNv4在大多数设备中都是Pareto最优的。混合模型和ConvNext是DSP不兼容的。由于PyTorch到TFLite导出工具的限制,EfficientViTs未在CPU和EdgeTPU上进行基准测试。由于缺乏移动MQA的PyTorch实现,MNv4混合模型被排除在CoreML评估之外。
-
-
屋顶线模型仅取决于数据传输与计算的比率,因此具有相同RP的所有硬件将按延迟对工作负载进行相同的排序(屋顶模型假设软件实现对工作负载性能没有影响。这意味着具有复杂内存访问(例如修剪)的技术在屋顶线模型上的性能比在真实设备上要好得多)。这意味着,如果新目标的RP包含在扫频范围内,则扫频RP屋顶线分析(见下一段)适用于未来的硬件和软件。
-
Ridge Point Sweep Analysis: 如下图所示,屋顶线模型揭示了MobileNetV4模型如何相对于其他卷积MobileNet实现与硬件无关的Pareto最优性能。在低RP硬件(例如CPU)上,模型更有可能是计算绑定的,而不是内存绑定的。因此,为了提高延迟,即使以增加内存复杂性为代价,也要最大限度地减少MAC的总数(MobileNetV3Large-1.5x)。数据移动是高RP硬件的瓶颈,因此MAC不会显著降低模型速度,但会增加模型容量(MobileNetV1-1.5x)。因此,为低RP优化的模型在高RP下运行缓慢,因为内存密集型和低MAC全连接(FC)层在内存带宽上受到限制,无法利用高可用的PeakMAC。
-
-
Op Cost vs Ridge Point: 每个子图表显示网络操作的屋顶线延迟(等式1)。网络从左边开始。大型Conv2D在低脊点(RP)硬件(上排)上是昂贵的,但在高RP硬件(下排)上增加了廉价的型号容量。FC层和DW-Conv2D在低RP下是便宜的,在高RP下是昂贵的。MobileNetV4平衡了MAC密集型Conv2D层和内存密集型FC层,它们分别对网络贡献最大。
-
-
MobileNetV4设计:MobileNetV4平衡了投资MAC和内存带宽,它们将提供最大的成本回报,特别注意网络的起点和终点。在网络的起点,MobileNetV4使用了大而昂贵的初始层,以大幅提高模型的容量和下游精度。这些初始层由大量的MAC控制,因此它们仅在低RP硬件上是昂贵的。在网络的末端,所有MobileNetV4变体都使用相同大小的最终FC层来最大限度地提高准确性,尽管这会导致较小的MNV4变体在高RP硬件上遭受更高的FC延迟。由于大型初始Conv层在低RP硬件上昂贵,但在高RP硬件上不昂贵,而最终FC层在高RP软件上昂贵,而在低RP软件上则不昂贵,因此MobileNetV4型号永远不会同时出现两种速度减慢的情况。换言之,MNv4模型能够使用昂贵的层,这些层不成比例地提高了精度,但不会同时承受层的组合成本,从而在所有脊点产生大部分Pareto最优性能。
Universal Inverted Bottlenecks
-
我们提出了通用反向瓶颈(UIB)块,这是一种用于高效网络设计的自适应构建块,具有适应各种优化目标的灵活性,而不会爆炸式地增加搜索复杂性。UIB扩展了MobileNetV2引入的反向瓶颈(IB)块,该块已成为高效网络的标准构建块[ViT,mobilenetv3,A convnet for the 2020s,Mnasnet]。
-
本文在最成功的MobileNet成分——可分离深度卷积(DW)和逐点(PW)扩展和投影反向瓶颈结构的基础上,引入了一种新的构建块——通用反向瓶颈(UIB)块,如下图所示。它的结构相当简单。我们在倒置瓶颈块中引入了两个可选的DW,一个在扩展层之前,一个位于扩展层和投影层之间。这些DW的存在与否是NAS优化过程的一部分,从而产生新的体系结构。尽管这种修改很简单,但我们的新构建块很好地统一了一些重要的现有块,包括ViT中的原始IB块、ConvNext块和FFN块。此外,UIB还引入了一个新的变体:Extradepthwise IB(ExtraDW)块。
-
-
通用反向瓶颈(UIB)块。
-
-
除了在NAS期间允许灵活的IB结构外,我们还避免了任何人为制定的缩放规则,如EfficientNet中使用的规则,而是针对每个模型大小单独优化结构。为了避免NAS SuperNet的规模爆炸,我们共享了通用组件(逐点扩展和投影),并简单地添加了DW作为额外的搜索选项。与基于SuperNet的网络架构搜索算法相结合,这种方法能够在不同的实例化中共享大多数参数(>95%),使NAS非常高效。
-
UIB实例化:UIB块中的两个可选深度卷积有四个可能的实例化(上图),导致不同的权衡。
- 倒置瓶颈(IB)-对扩展的功能激活进行空间混合,以增加成本提供更大的模型容量。
- ConvNext:通过在扩展之前执行空间混合,允许更大内核大小的更便宜的空间混合。
- ExtraDW是本文中引入的一种新变体,它可以廉价地增加网络深度和感受野。它提供ConvNext和IB的综合优势(它可以被视为两个标准卷积块的MobileNetV1式因子分解)。
- FFN是两个1x1逐点卷积(PW)的堆叠,其间具有激活层和归一化层。PW是对加速器最友好的操作之一,但与其他块一起使用时效果最好。
-
在每个网络阶段,UIB都提供了灵活性,以(1)实现自组织空间和信道混合折衷。(2) 根据需要扩大感受野。(3) 最大限度地提高计算利用率。
Mobile MQA
-
在本节中,我们将介绍Mobile MQA,这是一种专门为加速器优化的新型注意力块,可提供超过39%的推理速度。
-
Importance of Operational Intensity: 最近对视觉模型的研究主要集中在减少算术运算以提高效率上。然而,移动加速器性能的真正瓶颈往往不是计算,而是内存访问。这是因为加速器提供的计算能力远远大于内存带宽。因此,简单地最小化MAC可能不会带来更好的性能。相反,我们必须考虑运算强度,即算术运算与内存访问的比率。
-
MQA在混合模型中是有效的:MHSA将 queries, keys, and values 投影到多个空间中,以捕获信息的不同方面。多 Query 注意力(MQA)通过在所有头中使用共享 keys, and values 来简化这一过程。虽然多个查询头是必不可少的,但大型语言模型可以有效地共享键和值的单个头,而不会牺牲准确性。当批处理令牌的数量与特征尺寸相比相对较少时,key 和 value 的一个共享头大大减少了内存访问需求,从而显著提高了操作强度。这通常是用于移动应用的混合视觉模型的情况,其中注意力仅用于具有高特征维度的低分辨率后期阶段,并且批量大小通常是一个。我们的实验证实了MQA在混合模型中的优势。如下表所示,与MHSA相比,MQA在EdgeTPU和Samsung S23 GPU上实现了超过39%的加速,质量损失可忽略不计(-0.03%)。MQA还将MAC和模型参数减少了25%以上。据我们所知,我们是第一个将MQA用于移动视觉的工作。
-
-
MQA的效率提升。基本模型是MNv4-Conv-L。最后一个阶段添加了额外的注意力块。报告的百分比改善仅比较注意力块的延迟(基线MHSA)。
-
-
Incorporate asymmetric spatial down-sampling: 从MQA中汲取灵感,MQA利用查询、键和值之间的不对称计算,我们将空间缩减注意力(SRA)结合到优化的MQA块中,以降低键和值的分辨率,同时保留高分辨率查询。该策略的动机是在混合模型中观察到的空间相邻标记之间的相关性,这归因于早期层中的空间混合卷积滤波器。通过非对称空间下采样,我们在输入和输出之间保持相同的令牌计数,保持了注意力的高分辨率,并显著提高了效率。与[Pyramid vision transformer]不同,我们的方法用3x3深度卷积代替AvgPooling,使用2的步长进行空间缩减,提供了一种提高模型容量的经济高效的方法。移动MQA:在这里我们展示我们的移动MQA块:
-
M o b i l e _ M Q A ( X ) = C o n c a t ( a t t e n t i o n 1 , . . . , a t t e n t i o n n ) W O a t t e n t i o n j = s o f t m a x ( ( X W Q j ) ( S R ( X ) W K ) T d k ( S R ( X ) W V ) ) ( 2 ) Mobile\_MQA(X) = Concat(attention_1, . . . , attention_n)W^O\\ attention_j = softmax (\frac{(XW^{Q_j} )(SR(X)W^K)^T}{\sqrt {d_k}} (SR(X)W^V )) (2) Mobile_MQA(X)=Concat(attention1,...,attentionn)WOattentionj=softmax(dk(XWQj)(SR(X)WK)T(SR(X)WV))(2)
-
其中SR表示空间归约,在我们的设计中步长为2的DW,或者在不使用空间归约的情况下表示单位函数。如下表所示,结合不对称空间下采样产生超过20%的效率增益,同时具有最小的精度损失(-0.06%)。
-
-
通过移动MQA中的不对称空间下采样进行改进:使用MNv4-Hybrid-M作为基本模型,在三星S23上进行评估。在16x16像素的倒数第二阶段应用步长为2的下采样。
-
-
Mobile MQA的数学原理主要基于多头注意力机制的优化。通过共享键和值的头,Mobile MQA将计算量从O(d^2)减少到O(d),其中d是特征的维度。此外,通过引入局部注意力机制,进一步将计算量减少到O(1),从而大大提高了模型的运行速度。在模型中,多头注意力机制通常用于捕捉序列中的长距离依赖关系,而Mobile MQA通过共享键和值的头,减少了冗余的计算,同时保持了良好的性能。
Design of MNv4 Models
-
我们的设计理念:简洁与高效。在开发最新的移动网络时,我们的核心目标是在不同的移动平台上实现帕累托最优。为了实现这一点,我们首先对现有的模型和硬件进行了广泛的相关性分析。通过实证检验,我们发现了一组组件和参数,它们既确保了各种设备的成本模型(延迟成本的预测)之间的高度相关性,又在性能上接近帕累托前沿。我们的调查揭示了关键见解:
- 多路径效率问题:尽管FLOP计数较低,但由于存储器访问的复杂性,组卷积和类似的多路径设计的效率可能较低。
- 硬件支持很重要:高级模块,如挤压和激励(SE),GELU、LayerNorm在DSP上没有得到很好的支持,LayerNorm也落后于BatchNorm,SE在加速器上速度较慢。
- 简单性的力量:传统组件——深度和逐点卷积、ReLU、BatchNorm和简单注意力(例如,MHSA)——表现出卓越的效率和硬件兼容性。
-
基于这些发现,我们制定了一套设计原则:
- 标准组件:我们优先考虑广泛支持的元素,以实现无缝部署和硬件效率。
- 灵活的UIB块:我们新颖的可搜索UIB构建块允许自适应的空间和信道混合、感受野调整和最大化的计算利用率,通过网络架构搜索(NAS)促进效率和准确性之间的平衡折衷。
- Employ Straightforward Attention:我们的移动MQA机制优先考虑简单性以获得最佳性能。
-
这些原则允许MobileNetV4在所有评估的硬件上大多是帕累托最优的。在下文中,我们详细介绍了用于UIB模型搜索的改进NAS配方,概述了各种MNv4-Conv模型大小的特定搜索配置,并解释了混合模型的构建。
Refining NAS for Enhanced Architectures
-
为了有效地实例化UIB块,我们采用了具有定制增强功能的TuNAS,以提高性能。增强搜索策略:我们的方法通过实现两阶段搜索,减轻了TuNAS对较小滤波器和扩展因子的偏见,这归因于参数共享。该策略解决了UIB的深度层和其他搜索选项之间参数计数的差异。
- 粗粒度搜索:最初,我们专注于在保持固定参数的同时确定最佳滤波器大小:一个默认扩展因子为4的反向瓶颈块和一个3x3深度内核。
- 细粒度搜索:在初始搜索结果的基础上,我们搜索UIB的两个深度层的配置(包括它们的存在和3x3或5x5的内核大小),保持扩展因子恒定为4。
-
下表展示了与传统的一阶段搜索相比,通过我们的两阶段搜索获得的增强的效率和模型质量,在传统的一阶搜索中,统一的搜索空间是在单个TuNAS通道中探索的。
-
-
一阶段和两阶段搜索之间的比较,强调Pixel 6 EdgeTPU的准确性提高和延迟减少。
-
-
通过稳健训练增强TuNAS :TuNAS的成功取决于准确评估体系结构质量,这对奖励计算和策略学习至关重要。最初,TuNAS利用ImageNet-1k来训练SuperNet,但ImageNet上的模型性能明显受到数据扩充、正则化和超参数选择的影响。考虑到TuNAS不断发展的体系结构样本,找到一组稳定的超参数是一项挑战。我们通过离线蒸馏数据集来解决这一问题,消除了对额外增强的需求,并降低了对正则化和优化设置的敏感性。如第8节所述,JFT蒸馏数据集是TuNAS的训练集,在下表中显示了显著的改进。我们承认,深度尺度模型在扩展训练课程中超过了宽度尺度模型,我们将TuNAS训练扩展到750个时期,产生了更深、更高质量的模型。
-
-
JFT蒸馏的性能提升:ImageNet-1k上的NAS训练 VS JFT数据。突出显示效率的提高和轻微的准确性差异。
-
Optimization of MNv4 Models
- 我们从NAS优化的UIB块构建了MNv4-Conv模型,并针对特定的资源约束对其进行了裁剪。更多细节见附录A。与其他混合模型一样,我们发现将注意力集中在卷积模型的最后阶段是最有效的。在MNv4混合模型中,我们将移动MQA块与UIB块交错以增强性能。有关全面的型号规格,请参阅附录D。
Results
- 在本节中,我们展示了MobileNet V4(MNv4)模型在ImageNet-1K分类和COCO对象检测上的主要Pareto最优性能。
ImageNet classification
-
实验设置:为了评估模型架构性能,我们遵循标准协议,专门使用ImageNet-1k训练分割进行训练,并在其验证分割上测量Top-1的准确性。我们的延迟分析涵盖了多种具有代表性的移动硬件,包括ARM Cortex CPU(Pixel 6、Samsung S23)、高通Hexagon DSP(Pixel 4)、ARM Mali GPU(Pixel 7)、高通Snapdragon(S23 GPU)、苹果神经引擎和谷歌EdgeTPU。我们的完整培训设置详见附录C。
-
在基准测试中,我们将我们的模型与领先的高效模型进行比较,包括混合模型(MiT EfficientViT、FastViT、NextViT)和卷积模型(MobileOne、ConvNext和以前的MobileNet版本),基于它们报告的Top-1精度和我们的延迟评估。值得注意的是,我们使用现代训练配方增强了MobileNet系列(V1、V2、V3),从而大幅提高了准确性:MobileNet V1的准确率提高了3.4%,达到74.0%,V2的准确率增加了1.4%,达到73.4%,V3的准确率增加了0.3%,达到75.5%。这些增强的MobileNets基线在整个论文中都被用来隔离体系结构的进步。
-
我们的结果如下表所示,表明MNv4模型在一系列精度目标和移动硬件(包括CPU、DSP、GPU和专用加速器,如Apple Neural Engine和Google EdgeTPU)中大多是Pareto最优的。
-
-
ImageNet-1K上的分类结果,以及设备基准测试。报告了中位延迟。−表示由于缺少平台的相应模型文件,我们没有对模型进行基准测试。失败表示平台不支持该模型。
-
-
在CPU上,MNv4型号明显优于其他型号,速度大约是MobileNetV3的两倍,在同等精度目标方面比其他型号快几倍。在EdgeTPU上,MNv4型号的速度是MobileNet V3的两倍,且精度相同。具体而言,MNv4-Conv-M模型比MobileOne-S4和FastViT-S12都快50%以上,同时在相当的延迟下,也比MobileNet V2将Top-1的准确性提高了1.5%。在S23 GPU和iPhone 13 CoreML(ANE)上,MNv4型号大多处于Pareto前沿。MIT EfficientViT是S23 GPU上最接近的竞争对手,在相同的精度下,其延迟是CoreML上MNv4的两倍多。为苹果神经引擎优化的FastViT在CoreML上排名第二,但在S23 GPU上的延迟是MNv4的5倍多。与许多混合动力车型一样,MNv4混合动力车型与DSP不兼容。尽管如此,MNv4-Conv型号仍然是DSP上表现最好的型号,强调了它们在不同硬件平台上的领先兼容性和效率。MNv4-Conv型号提供卓越的硬件兼容性和效率。这一成功凸显了我们的UIB块、增强的NAS配方和精心设计的搜索空间的优势。MNv4 Hybrid在CPU和加速器上实现了卓越的性能,展示了我们移动MQA设计的跨平台效率。
-
通用性对移动模型至关重要,要求它们在不同的硬件平台上以最佳方式运行。我们的评估强调了现有模式在实现这一目标方面面临的挑战。MobileNetV3在CPU上表现出不错的性能,但在EdgeTPU、DSP和GPU上表现不佳。FastViT在Apple Neural Engine上表现良好,但在CPU和GPU上表现不佳。EfficientViT在GPU上有很好的性能,但在苹果神经引擎上没有那么好。相比之下,MNv4-Conv模型表现出非凡的兼容性,并在包括CPU、GPU、苹果神经引擎和谷歌EdgeTPU在内的各种硬件上实现了普遍的Pareto最优性能。这种多功能性确保了MNv4-Conv模型可以在移动生态系统中无缝部署,而无需任何特定平台的调整,为移动模型的通用性树立了新的基准。
COCO Object Detection
-
实验设置:我们在COCO 17数据集上评估了MNv4主干用于对象检测任务的有效性。我们将M大小的MNv4骨干与具有相似MAC数量的SOTA高效骨干进行比较。对于每个主干,我们使用RetinaNet框架构建一个对象检测器。我们将256-d FPN解码器连接到P3-P7端点,并将256-d预测头连接到4个卷积层。对于移动检测器,我们通常使用深度可分离卷积来降低FPN解码器和盒子预测头的计算复杂度。我们在COCO 17训练集上对所有模型进行600个时期的训练。所有图像的大小都调整为384px,并使用随机水平翻转、随机缩放以及Randaug进行增强。我们从Randaug中排除了剪切和旋转增强,因为这些变形会破坏小物体检测AP。使用2048批大小Adam和0.00003的L2权重衰减进行训练。我们使用具有24个时期预热的余弦学习速率计划,并分别调整每个模型的学习速率。对于所有基线,我们设置滤波器乘数,使MAC大致具有可比性。在分类实验之后,使用0.2的随机下降率来训练MobileNet V4骨干网。所有MobileNet基线都是使用官方Tensorflow Model Garden实现进行训练的。我们在Tensorflow中重新实现了EfficientFormer。
-
结果:实验结果见下表。参数、MAC和基准是使用整个检测器以384px的输入分辨率计算的。中等尺寸的仅卷积MNv4-Conv-M检测器实现了32.6%的AP,类似于MobileNet Multi-AVG和MobileNet v2。然而,该型号的Pixel 6 CPU延迟比MobileNet Multi-AVG低12%,比MobileNetv2低23%。随着Pixel 6 CPU延迟增加18%,添加移动MQA块使MNv4-Hybrid-M检测器的AP比MNv4-Conv-M增加+1.6%,证明了MNv4在混合形式下对对象检测等任务的有效性和效率。
-
-
COCO-17验证集的目标检测结果。宽度乘数报告在放大的MobileNet主干旁边。
-
Enhanced distillation recipe
-
作为架构创新的补充,蒸馏是提高机器学习效率的有力工具。它的优势在移动机型中尤为明显,在严格的部署限制下,可能会提供数倍的效率提升。在强大的Patient Teacher 蒸馏基线的基础上,我们引入了两种新技术来进一步提高绩效。
-
动态数据集混合:数据扩充对蒸馏性能至关重要。虽然先前的方法依赖于固定的扩增序列,但我们发现,将多个数据集与不同的扩增策略动态混合会导致优越的提取结果。我们对三个关键的蒸馏数据集进行了实验:
- D1:Inception Crop,然后RandAugment l2m9应用于500个ImageNet-1k复制品。
- D2:先进行初始裁剪,然后对1000个ImageNet1k复制品进行极端混合[51](反映Patient Teacher方法)。
- D1+D2:训练期间D1和D2的动态混合。
-
我们在表中的结果表明,D2在学生准确率方面优于D1(84.1%对83.8%)。然而,动态混合数据集(D1+D2)将准确率提高到84.4%(+0.3%)。这一发现表明,数据集混合扩展了增强图像空间,增加了难度和多样性,最终提高了学生的表现。
-
-
以MNv4-Conv-L为学生,提炼结果,突出SOTA的优势,并明确标记我们的贡献。
-
-
JFT数据增强:为了增加训练数据量,我们通过将JFT-300M数据集重新采样到每类130K个图像(总共130M个)来添加 indomain 类平衡数据。根据Noisy Student协议,并使用在ImageNet-1K上训练的EfficientNet-B0,我们选择相关性阈值高于0.3的图像。对于数据丰富的类,我们选择排名前130K的图像;对于稀有类,我们复制图像以保持平衡。此数据集被复制了10倍。由于JFT的复杂性,我们应用了较弱的增强(Inception Crop+RandAugment l2m5)。这形成了蒸馏数据集D3。上表显示单独使用JFT(D3)产生2%的准确度下降。然而,将JFT与ImageNet数据相结合,结果提高了0.6%,证明了额外数据的泛化价值。
-
我们的蒸馏配方:我们的组合蒸馏配方动态混合数据集D1、D2和D3,以实现不同的增强,并利用类平衡 JFT数据。如下表所示,与之前的SOTA[Knowledge distillation: A good teacher is patient and consistent]相比,我们的方法实现了超过0.8%的top-1精度的一致改进。对MNv4-Conv-L学生模型进行2000个时期的训练,可获得85.9%的前1级准确率。这证明了我们方法的有效性:学生的参数比老师EfficientNet-L2小15倍,MAC小48倍,但准确率仅下降1.6%。当将蒸馏与JFT上的预训练相结合时,MNv4-Conv Hybrid达到87.0%的前1级准确率。
-
Distillation Recipe的数学原理基于知识蒸馏的思想。教师模型的输出作为软标签,用于训练轻量级模型。损失函数由两部分组成:一部分是学生模型的输出与软标签之间的交叉熵损失,另一部分是学生模型的输出与真实标签之间的交叉熵损失。通过这种方式,轻量级模型可以学习到教师模型的丰富特征表示,从而提高其性能。重要参数包括教师模型的选择、软标签的温度参数、以及学生模型和教师模型之间的差异等。例如,温度参数控制了软标签的平滑程度,较高的温度可以产生更平滑的软标签,有助于学生模型的学习。同时,教师模型的选择也非常重要,一个性能强大的教师模型可以为学生模型提供更有价值的知识。
-
在模型训练过程中,需要选择合适的优化器和学习率调度策略。例如,使用AdamW优化器可以有效地减少权重衰减的影响,提高模型的性能。同时,使用cosine learning rate schedule with warm-up可以帮助模型在训练初期快速收敛,避免过拟合。
Conclusion
- 在本文中,我们介绍了MobileNetV4,这是一系列通用的、高效的模型,旨在高效地在移动生态系统中运行。我们利用多项进步,使MobileNetV4在所有移动CPU、GPU、DSP和专用加速器上都具有帕累托最优性能,这是在任何其他测试模型中都没有发现的特性。我们引入了新的通用倒置瓶颈和移动MQA层,并将它们与改进的NAS配方相结合。将这些与一种新颖的、最先进的提取方法相结合,我们在Pixel 8 EdgeTPU上以3.8ms的延迟实现了87%的ImageNet-1K准确率,推进了移动计算机视觉的最先进水平。此外,我们还介绍了一个理论框架和分析,以了解是什么使模型在异构设备上通用,为未来的设计指明了方向。我们希望新的贡献和分析框架能进一步推动移动计算机视觉的发展。
A Search space details
- 搜索空间构建:
- 固定初始层:我们在第一阶段从Conv2D层(3x3内核,步长2)开始快速降低分辨率,然后在第二阶段从NAS优化的FusedIB块(步长2)来平衡效率和准确性。
- NAS驱动的优化:NAS过程精确地确定了剩余四个阶段中UIB块和参数实例化的理想数量,确保了最佳的性能结构。
- 固定头层:我们使用与MobileNet V3相同的头层配置。
- 观察到UIB块内的逐点卷积在较高分辨率下往往表现出较低的运算强度,我们在初始层中优先考虑具有较高计算密度的运算,以平衡效率和精度。
- Our optimization targets:
- MNv4-Conv-S:双目标——285M MAC和0.2ms延迟(Pixel 6 EdgeTPU,224px输入)。
- MNv4-Conv-M:0.6ms延迟(Pixel 6 EdgeTPU,256px输入)。
- MNv4-Conv-L:双延迟目标为2.3ms(像素6 EdgeTPU)和2.0ms(像素7 EdgeTPU,384px输入)。
- 需要注意的是,通过将我们的搜索空间限制在设备之间具有良好相关成本模型的组件上,我们发现EdgeTPU延迟优化直接产生普遍有效的模型,如后面的部分所示。
B Benchmarking methodology
- 我们在各种移动平台上应用了一致的基准测试策略,但苹果神经引擎除外。为了提高效率,模型被转换为TensorFlow Lite格式,并量化为INT8用于移动CPU、Hexagon和EdgeTPU,而FP16用于移动GPU。我们将每个模型运行1000次,并取这些运行的平均延迟。然后,我们对每个模型重复该过程5次,并报告平均值的中位数。为了优化性能,我们将CPU相关性设置为最快的核心,并使用XNNPACK后端进行CPU评估。相比之下,对于苹果神经引擎上的基准测试(在iOS 16.6.1、CoreMLTools 7.1和Xcode 15.0.1的iPhone 13上进行评测),PyTorch模型被转换为CoreML的MLProgram格式,精度为Floa16,具有Float16 MultiArray输入,以最大限度地减少输入复制。
C Training setup for ImageNet-1k classification
- 为了提高模型性能,我们的训练方案结合了广泛采用的数据增强技术和正则化方法。对于数据扩充,我们使用Inception Crop、水平翻转、RandAugment、Mixup和CutMix。对于正则化,我们应用L2归一化和随机深度下降。增强和正则化的强度根据模型大小进行调整,如下表所示。
-
-
ImageNet-1k分类的超参数训练
-
D Model details
- 我们的MNv4模型的架构细节如下表所示。现在,让我们研究一下TuNAS优化的MNv4-Conv模型的细节。TuNAS优化的宏体系结构战略性地结合了四个UIB实例:Extra-DW、ConvNext、IB和FFN。这种组合证明了UIB的灵活性以及在网络的不同阶段使用不同实例化块的重要性。具体来说,在每个可搜索阶段的开始,空间分辨率显著下降,ExtraDW成为首选。ExtraDW中双深度层的设计有助于扩大感受野,增强空间混合,并有效缓解分辨率损失。同样,由于类似的原因,在MNv4Conv模型的早期阶段经常选择ExtraDW。对于之前的层已经进行了大量空间混合的最终层,选择FFN和ConvNext是因为信道混合提供了更大的增量增益。
-
-
MNv4-Conv-S的体系结构规范。
-
-
MNv4-Conv-M的体系结构规范。
-
ser-images%5Cimage-20240505205020807.png&pos_id=img-Ba8SkbvJ-1715048970642) -
MNv4-Hybrid-M的体系结构规范。
-
-
MNv4-Conv-L的体系结构规范。
-
-
MNv4-Hybrid-L的体系结构规范。
-
E Larger Pareto curve
-
-
MNv4模型是普遍的帕累托最优模型
F Additional Roofline Analysis
- 包括MobileNetV4 Conv Small、MobileNetV4Conv Medium和MobileNetv4Conv Large。这些数字还细分了从0.0 MACs/字节脊点(仅限MAC,无限内存带宽)到500.0 MACs/比特脊点(类似加速器,内存带宽瓶颈)的扫描中的每个数量级。还包括测量的潜伏期、经验拟合的屋顶线模型和计数MAC之间的相关性分析。
-
-
屋顶线模型和实际硬件之间的相关性:这些屋顶线模型的脊点(RP)根据经验拟合网络的测量性能。rs屋顶线是目标测量的潜伏期和屋顶线预测之间的Spearman秩相关系数。rs MAC是目标的测量延迟和网络的MAC计数之间的秩相关性。计数MAC对于低RP目标具有高秩相关性,但是对于高RP目标具有低得多的秩相关性。对于所有正在考虑的目标,rs的屋顶线都很高。这表明,在估计延迟时,除了MAC之外,还考虑了内存带宽,从而提高了准确性。所有脊点(RP)值都符合我们设计分析中考虑的0-500 MAC/B范围。这些结果如下图所示。
-
-
屋顶线模型和实际硬件之间的相关性:这些是上表中考虑的模型。屋顶线模型成功地捕捉了每个硬件目标上每个模型族相对于Pareto边界的相对顺序,但每个目标上还有屋顶线模型没有捕捉到的额外细微差别。
-
-
Roofline RP Sweep Analysis - Small Models
-
-
Roofline RP Sweep Analysis - Medium Models
-
-
屋顶线RP扫描分析-大型模型:以前的卷积MobileNets都没有MobileNetV4 Conv-Large那么大,所以这与ConvNextSmall和MobileOne-S4进行了对比。包含ConvNext Small是因为它与S23 GPU上的MobileNetV4 Conv Large具有相似的延迟。之所以包含MobileOne-S4,是因为它与Pixel 8 EdgeTPU上的MobileNetV4 Conv Large具有类似的延迟。
-