MobileNetV4

https://arxiv.org/pdf/2404.10518
https://github.com/jiaowoguanren0615/MobileNetV4/tree/main
https://github.com/tensorflow/models/blob/master/official/vision/modeling/backbones/mobilenet.py

MobileNetv4设计目的是提升在多种类型端侧设备上的通用性能,通过NAS搜索新增的UIB通用模块和Mobile MQA注意力模块实现通用高效的新模型结构。

论文总结

如图上所示,区别于针对不同设备侧重优化的网络,无论是在端侧高性能加速模块还是低性能cpu,MBNv4都展示全场景的低延迟-高精度的平衡。

性能瓶颈分析-如何降低推理延迟:

在低算理边缘设备如cpu,通常模型的计算资源比内存资源更加紧张,针对这种设备通常需要压缩MACs(乘加运算),如果有必要以增加内存来降低计算复杂度会是有效方法如 MobileNetV3Large (深有体会)。
相反的在高性能设备数据拷贝转移也就是上述内存资源才是瓶颈,增加模型计算复杂度提升模型表达力反而没有降低延迟比如 MobileNetV1-1.5。

MobileNetV4解决上述性能瓶颈:

对于低性能设备,在开始层MBNv4会使用更大的高开销初始层 增加表能力和下游任务准确性,相对的这部分耗时会最多。
对于高性能设备,在深层所有尺寸的MBNv4都使用同一种shape的FC层最大限度的提升准确度,对高性能设备FC的内存带宽资源是最大瓶颈。

中间层设计

UIB模块(Universal Interval BottleNeck)

一种新的通用模块设计,可以组合实现上图所有模块:

  1. Extra DW:相对低的开销增加网络深度和感受野
  2. IB:标准倒残差模块
  3. ConvNext:扩张通道前先空间混合降低计算量
  4. FFN:两个PW层组合,中间加入激活和BN,速度最快

Mobile MQA

一个专门为加速器优化的新型注意力块,它能提供超过 39%的推理速度提升。

MQA 在混合模型中是高效的:MHSA 将 Query、键和值投影到多个空间以捕捉信息的不同方面。多 Query 注意力(MQA)通过在所有头之间使用共享的键和值简化了这一点。尽管多个 Query 头是必要的,但大型语言模型可以有效共享单个键和值的头,而不会牺牲准确度。对于键和值使用一个共享的头,当批处理的 Token 数量相对于特征维度较小时,可以大大减少内存访问需求,从而显著提高操作强度。

这对于面向移动应用的混合视觉模型通常是这种情况,在这种情况下,仅在具有高特征维度的低分辨率后期阶段使用注意力,并且批大小通常为 1。作者的实验证实了 MQA 在混合模型中的优势。如下表所示,与 MHSA 相比,MQA 在 EdgeTPUs 和三星 S23GPU 上实现了超过 39%的加速,而质量损失可以忽略不计(-0.03%)。MQA 还将 MACs 和模型参数减少了 25%以上。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇