MobileNetV4:移动设备生态系统的通用模型学习笔记
MobileNetV4:移动设备生态系统的通用模型学习笔记
MobileNetV4是最新一代针对移动设备优化的卷积神经网络,通过引入Universal Inverted Bottleneck(UIB)和Mobile MQA等创新组件,以及改进的神经架构搜索(NAS)方法,在多种移动硬件平台上实现了高性能和低延迟的平衡。本文将详细介绍MobileNetV4的关键技术特点和优化策略。
MobileNetV4的主要贡献
MobileNetV4(MNv4)的主要贡献包括:
Universal Inverted Bottleneck(UIB)搜索块:这是一种统一灵活的结构,合并了Inverted Bottleneck(IB)、ConvNext、前馈网络(FFN)和一种新的额外深度卷积(Extra Depthwise)变体。
移动版多头注意力(Mobile MQA):相比传统多头自注意力(MHSA)提供39%的推理加速。
优化的神经架构搜索(NAS)方法:提高了MNv4搜索的有效性。
知识蒸馏技术:通过数据集混合和增加平衡类内数据来增强泛化能力,实现了87%的ImageNet-1K分类精度。
硬件无关的Pareto效率
MobileNetV4在不同硬件平台上的性能表现如图所示:
通过分析不同Ridge Point下的延迟与精度权衡,发现MobileNetV4在Ridge Point从0到500时大多数情况下都是Pareto Optimal的。在低Ridge Point硬件(如CPU)上,减少MAC数量有利于降低延迟;而在高Ridge Point硬件(如加速器)上,增加MAC数量可提高模型容量而不显著影响延迟。
Universal Inverted Bottlenecks
UIB是在传统的Inverted Bottleneck块的基础上,通过引入两个可选的深度卷积层进行扩展和改进。虽然改动简单,但UIB成功地统一了几种流行的架构,包括Inverted Bottleneck、ConvNext和ViT中的前馈网络(FFN)。此外,UIB还引入了一种新的变体-Extra Depthwise Inverted Bottleneck, ExtraDW。
UIB具有四种可能的实例化形式,提供了不同的空间和通道混合权衡,扩大感受野的选择,以及最大化计算利用率的能力。四种实例包括:标准Inverted Bottleneck(IB)、ConvNext、ExtraDW和FFN。
Mobile MQA
Mobile MQA是一种针对移动加速器优化的新型注意力块设计,相比传统多头自注意力(MHSA)提供39%的推理加速。MQA通过在所有head共享keys和values的方式大幅减少内存访问开销。实验表明,相比MHSA,MQA在EdgeTPU和三星S23 GPU上实现了超过39%的推理加速,同时参数量和MACs也减少了25%以上,而精度只下降0.03%。
在MQA的基础上,作者进一步融入了Spatial Reduction Attention (SRA)的思想,对keys和values进行非对称的空间下采样,从而进一步提升效率。具体做法是在MQA中用3x3深度可分离卷积代替平均池化,对keys和values的空间分辨率进行2倍下采样。实验表明,加入空间下采样后,相比不使用下采样,Samsung S23 GPU上的推理时间减少了25%,CPU时间减少了23%,而精度仅下降0.06%。
MobileNetV4模型设计
MobileNetV4系列模型的设计理念是"Simplicity Meets Efficiency"。通过广泛的相关性分析,作者总结出一些确保高相关性和接近Pareto前沿性能的关键组件和参数。总结了一些重要发现:
- 多路径设计如组卷积可能因内存访问复杂性而降低效率。
- 硬件支持很关键,一些高级模块如Squeeze and Excite(SE)、GELU等在DSP上表现不佳。
- 传统组件如深度可分离卷积、ReLU、BatchNorm和简单注意力具有良好的效率和硬件兼容性。
基于上述发现,提出了一系列设计原则:
- 优先使用标准广泛支持的组件,确保无缝部署和硬件高效。
- 采用灵活的UIB构建块,允许在空间/通道混合、感受野调整和计算利用率之间权衡。
- 使用直接简单的Mobile MQA注意力机制,追求最佳性能。
总结
MobileNetV4通过创新的架构设计和优化策略,在保持高性能的同时实现了低延迟,非常适合在移动设备上部署。其通用性和灵活性使其能够在多种硬件平台上实现Pareto最优性能,为移动设备上的AI应用提供了强大的技术支持。