结合 Attention 重新思考移动端小模型中的基本模块

本文介绍了一种结合IRB和Transformer的设计思路的新型移动端小模型EMO。该模型不仅在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。

本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。

本文目录

1 EMO:结合 Attention 重新思考移动端小模型中的基本模块
(来自腾讯优图,浙大,北大,武大)
1.1 EMO 论文解读
1.1.1 背景和动机
1.1.2 Meta Mobile Block
1.1.3 倒残差模块
1.1.4 高效模型应该满足的标准
1.1.5 实验结果

1 EMO:结合 Attention 重新思考移动端小模型中的基本模块

论文名称:Rethinking Mobile Block for Efficient Neural Models

论文地址:

https://arxiv.org/pdf/2301.01146.pdf

1.1.1 背景和动机

近年来,由于存储和计算资源的限制,移动应用的需求不断增加,因此,本文的研究对象是端侧轻量级小模型 (参数量一般在 10M 以下) 。在众多小模型的设计中,值得注意的是 MobileNetv2[1] 提出了一种基于 Depth-wise Convolution 的高效的倒残差模块 (Inverted Residual Block, IRB) ,已成标准的高效轻量级模型的基本模块。此后,很少有设计基于CNN 的端侧轻量级小模型的新思想被引入,也很少有新的轻量级模块跳出 IRB 范式并部分取代它。

近年来,视觉 Transformer 由于其动态建模和对于超大数据集的泛化能力,已经成功地应用在了各种计算机视觉任务中。但是,Transformer 中的 Multi-Head Self-Attention (MHSA) 模块,受限于参数和计算量的对于输入分辨率的平方复杂度,往往会消耗大量的资源,不适合移动端侧的应用。所以说研究人员最近开始结合 Transformer 与 CNN 模型设计高效的混合模型,并在精度,参数量和 FLOPs 方面获得了比基于 CNN 的模型更好的性能,代表性的工作有:MobileViT[2],MobileViT V2[3],和 MobileViT V3[4]。但是,这些方案往往引入复杂的结构或者混合模块,这对具体应用的优化非常不利。

所以本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。如下图1所示是本文模型 Efficient MOdel (EMO) 与其他端侧轻量级小模型的精度,FLOPs 和 Params 对比。EMO 实现了新的 SoTA,超越了 MViT,EdgeViT 等模型。

图1:EMO 与其他端侧轻量级小模型的精度,FLOPs 和 Params 对比

1.1.2 Meta Mobile Block

如下图2所示,作者首先结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。

图2:抽象的 Meta Mobile Block

给定输入图片 ,Meta Mobile Block 首先通过 MLP 进行升维操作:

然后,中间算子 进一步增强图像特征:

这里的中间算子 比较灵活,有很多种选择,比如作者换成 Identity mapping,卷积,MHSA。

最后,通过 MLP 进行降维操作,减小通道数:

并且和 Transformer 一样头尾加了残差连接。

1.1.3 倒移动残差模块 (Inverted Residual Mobile Block)

在 Meta Mobile Block 的基础上,作者进一步设计了一种高效的倒残差模块,就是既有 CNN 的局部建模,也依赖 Transformer 的全局建模能力 (级联的 MHSA 和 Convolution 操作)

为了节约计算开销 (MHSA 的参数和计算量的对于输入分辨率的平方复杂度),作者使用 DW-Conv 来实现卷积,借助 Window-Based MHSA (W-MHSA) 使得计算复杂度变为线性。

图3:不同模块的计算复杂度和 Maximum Path Length (MPL) 对比

对于注意力矩阵, 为了节约计算复杂度, 使用 , 。

作者称这样实现的 MHSA 为 Expanded Window MHSA (EW-MHSA),所以最后倒移动残差模块的表达式可以写成:

结构如下图5所示。

1.1.4 高效模型应该满足的标准

作者在本文中定义了高效模型应该满足以下标准:

  1. 可用性: 实现简单,不使用复杂的操作符,优化方案比较容易。

  1. 一致性: 尽量少的核心模块,以降低模型的复杂度。

  1. 有效性: 具有良好的分类和密集预测性能。

  1. 高效性: 参数计算量,与精度的权衡。

作者按照自己定的4条标准,对以往的高效边缘侧模型进行了对比,结果如下图4所示。作者认为 MobileNet 系列的精度目前看来略低,参数量也较大。MobileViT 系列,EdgeNeXt 和 EdgeViT 取得了显著的性能,但它们的 FLOPs 较高,且有复杂的模块。

图4:以往的高效边缘侧模型的对比

基于上述标准,作者基于倒移动残差模块设计了一个类似 ResNet 的四阶段高效模型 (EMO),如下图5所示。

图5:EMO 模型

  1. 在整体框架上,EMO 仅由 iRMB 组成,没有其他复杂的操作符。

  1. iRMB 仅由标准卷积和 MHSA 组成,没有其他复杂的操作符。此外,得益于 DW-Conv, iRMB 可以通过 stride 来完成下采样操作。

  1. EMO 模型的详细架构配置如下图5所示。由于 MHSA 更适合为更深层次的语义特征建模,所以作者只在 Stage3 和 Stage4 使用 MHSA。为了进一步提高 EMO 的稳定性和效率,在 Stage1 和 Stage2 使用 BN + SiLU,在 Stage3 和 Stage4 使用 LN + ReLU。

1.1.5 实验结果

ImageNet-1K 实验结果

每个模型在 224×224 上从头开始300个 Epochs,优化器使用 AdamW,权重衰减设为 5e−2,学习率设为 6e−3,Batch Size 大小设置为2048。不使用 LayerScale,Dropout,MixUp,CutMix,Random Erasing,位置编码,Token Labeling 和多尺度训练。EMO 基于 PyTorch 实现,基于 timm 库,使用 8×V100 GPU 进行训练。

实验结果如下图6所示,EMO 在没有使用复杂模块和 MobileViT V2 类强训练方法的情况下获得了更好的结果。比如,最小的 EMO-1M 获得了 71.5% Top1 精度,超过了基于 CNN 的 MobileNetv3-L-0.50,和基于 Transformer 的 MobileViTv2-0.5。更大的 EMO-1M 达到了 75.1% 的 Top-1 精度。在将 EMO-5M Stage4 的通道从288增加到320后,新的 EMO-6M 达到 79.0% Top1 精度,且只有 961M FLOPs。

图6:ImageNet-1K 实验结果

目标检测实验结果

实验设置: ImageNet-1K 预训练的 EMO 模型,检测模型使用 SSDLite 和 RetinaNet,数据集使用 MS-COCO 2017,结果如下图6和图7所示。EMO 优于同类方法,而且优势明显。比如,配备 EMO-1M 的 SSDLite 实现了 22.0的 mAP,且只有 0.6G FLOPs 和 2.3M 的参数。EMO-5M 获得了最高的 27.9 mAP,且 FLOPs 更少 (少于 MobileViT-S 的 3.4G 和 EdgeNeXt-S 的 0.3G)。

图7:SSDLite 目标检测实验结果

图8:RetinaNet 目标检测实验结果

语义分割实验结果

实验设置: ImageNet-1K 预训练的 EMO 模型,语义分割模型使用 DeepLabv3 和 PSPNet,数据集使用 ADE20K。实验结果如图9所示,EMO 在整合到分割框架时,在各个尺度上都明显优于基于 Ttransformer 的MobileViT V2。将 EMO 作为 PSPNet 的骨干网络模型,可以得到一致的结论。

图9:语义分割实验结果

消融实验结果

如下图10所示,作者给出了与 SoTA EdgeNeXt 相比的吞吐量评估结果。测试平台为 AMD EPYC 7K62 CPU 和 V100 GPU,Batch Size 的大小为256。结果表明,EMO 模型在两个平台上都有明显更快的速度,尽管两种方法的 FLOPs 是相似的。例如,EMO-1M 与 EdgeNeXt-XXS 相比,在相同的 FLOPs 下,GPU 速度提升 +20%↑,CPU 速度提升 +116%↑。这是因为 EMO 只使用了一个简单的 iRMB,没有其他复杂的结构。

图10

总结

本文作者简单地结合了 IRB 和 Transformer 的设计思路,希望结合 Attention 重新思考移动端小模型中的基本模块。具体而言,作者结合 Transformer 中的多头注意力机制 (MHSA) 和 FFN 模块以及 MobileNet-v2中的倒残差模块 (Inverted Residual Block, IRB),引入了一种 Meta Mobile Block。不但在多个视觉任务中超越了以往的边缘设备轻量级小模型,同时具有更高的吞吐量。

<think>嗯,用户这次想了解移动端自然语言理解(NLU)模型推理框架的相关信息。结合之前的系统指令和对话历史,用户明显是AI或移动开发领域的技术人员,需求非常具体专业。 从用户引用的文献来看,特别是引用[1]提到“场景适配的压缩策略”,引用[4]强调“高效与绿色”,说明用户关注的核心矛盾是:如何在移动端有限资源下实现NLU模型高效推理。这需要从模型压缩和推理框架两个维度展开。 用户上次提问时我详细解释了模型压缩技术,这次应该聚焦推理框架的工程实现。移动端NLU推理有三大核心挑战:算力限制(手机CPU/GPU远弱于服务器)、内存瓶颈(模型加载)、延迟敏感(需实时响应)。 值得推荐的框架有三个层级:首先是通用推理引擎如TensorFlow Lite和PyTorch Mobile,它们提供硬件加速接口;其次是专用优化框架如MediaPipe,针对NLU任务优化流水线;最后是新兴的编译工具如Apache TVM,能自动优化计算图。 特别要注意引用[3]提到的T5模型统一框架思想——移动端同样需要标准化设计。比如MediaPipe的NLU解决方案就把语音识别、语义理解、响应生成封装成统一模块,这种架构能减少20%内存占用。 最后必须提及安全伦理问题(引用[2][4]都强调过)。移动端可能涉及用户隐私数据,框架需提供端侧加密计算能力,比如TensorFlow Lite的Secure Aggregation模块就支持联邦学习场景。 用户应该需要具体部署案例。可以补充说明:某头部手机厂商的语音助手,通过TVM编译器优化BERT模型,使唤醒词检测延迟从800ms降至200ms,同时采用知识蒸馏将模型体积压缩到原版的1/5——这个案例完美体现了“存储-计算-精度”三元平衡(引用[1]的核心观点)。 </think>基于移动端资源受限的特性,NLU模型推理框架需深度融合模型压缩技术与硬件加速能力,以下为系统性技术方案及主流框架解析: --- ### **一、移动端NLU推理的核心挑战** 1. **算力瓶颈** 移动芯片(CPU/GPU/NPU)算力有限,需优化计算图结构,如算子融合减少内存访问开销。 2. **内存约束** 模型参数需压缩至数十MB内,例如BERT-base原始模型>400MB,移动端需降至<50MB[^1]。 3. **低延迟要求** 用户交互场景要求响应时间<100ms,需硬件加速与量化计算支持。 --- ### **二、关键技术实现路径** #### **1. 模型压缩技术适配** - **量化(Quantization)** 将FP32权重转换为INT8/FP16,减少75%存储占用,通过TensorRT、TFLite转换器实现: ```python # TensorFlow Lite量化示例 converter = tf.lite.TFLiteConverter.from_saved_model(model_path) converter.optimizations = [tf.lite.Optimize.DEFAULT] # 启用动态范围量化 tflite_quant_model = converter.convert() ``` - **结构化剪枝(Pruning)** 移除冗余权重(如将BERT注意力头数从12减至6),模型体积缩小40%[^1]。 - **知识蒸馏(Knowledge Distillation)** 用轻量学生模型(如MobileBERT)学习教师模型(BERT)的输出分布,精度损失<2%[^1]。 #### **2. 推理框架选型** | **框架** | **核心优势** | **适用场景** | |-------------------|---------------------------------------|---------------------------| | **TensorFlow Lite** | 支持GPU/NNAPI加速,量化工具链完善 | Android/iOS跨平台部署 | | **PyTorch Mobile** | 动态图优化,调试便捷 | 需频繁更新模型的场景 | | **MediaPipe** | 预制NLU任务管线(如语音识别+意图分类)| 多模态交互应用 | | **Apache TVM** | 自动编译优化计算图,提升硬件利用率 | 异构芯片(麒麟/骁龙)部署 | #### **3. 硬件加速优化** - **GPU/NPU异构计算** 利用高通Hexagon DSP或苹果Neural Engine执行矩阵乘加运算,速度提升5-10倍。 - **内存复用策略** 运行时预分配张量内存池,避免动态分配开销(如TFLite ArenaPlanner)。 --- ### **三、典型部署架构设计** ```mermaid graph LR A[输入文本] --> B(Tokenizer) B --> C[压缩模型推理<br>(MobileBERT/TinyBERT)] C --> D{硬件调度} D -->|CPU| E[轻量操作:Softmax/Argmax] D -->|NPU| F[密集计算:Attention/FC] E & F --> G[输出:意图分类/实体识别] ``` --- ### **四、性能优化指标参考** | **模型** | **压缩方法** | **体积(MB)** | **延时(ms)** | **精度(Acc)** | |----------------|-------------------|-------------|-------------|--------------| | BERT-base | 原始模型 | 438 | 1200 | 90.5% | | TinyBERT-6L | 蒸馏+量化 | 43 | 85 | 88.7% | | MobileBERT | 瓶颈结构+INT8量化 | 17 | 62 | 86.3% | --- ### **五、前沿演进方向** 1. **端云协同推理** 敏感任务分发给云端(如情绪分析),基础意图识别在端侧执行[^4]。 2. **稀疏化计算** 利用权重稀疏特性(如华为MindSpore的稀疏内核),跳过零值计算。 3. **自适应压缩** 根据设备性能动态切换模型分支(如低端机用4层Transformer,旗舰机用6层)[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值