跳转至

NAS 自动化边缘模型设计:让机器设计机器

难度:🟡 进阶 | 领域:神经架构搜索、边缘模型设计 | 阅读时间:约 26 分钟

日常类比

给手机挑相机镜头:焦距、光圈、镜片层数、镀膜组合构成天文数字的方案。人工设计师凭经验试几套;神经架构搜索(Neural Architecture Search, NAS)像自动试镜台——在给定重量与成本(延迟、内存、功耗)下,系统化试出更合适的镜头组合。边缘场景还要求同一套方法能适配手机、开发板与微控制器(Microcontroller Unit, MCU)等碎片化硬件。

摘要

本文梳理边缘友好手工模型(MobileNet / EfficientNet)如何演化为搜索原语,再对比强化学习、可微分与单次训练(Once-for-All)等 NAS 路线,以及 MCUNet 等极端约束实践。文中 ImageNet 精度、延迟与 GPU-天等数字来自公开论文量级,跨硬件差异大,部署须在目标板上实测[1][4][6][7]。

1 从手工设计到自动搜索

设计边缘模型要回答:层数、通道、卷积核、是否残差、激活函数等。约 20 层、每层约 10 种配置时,组合空间可达 \(10^{20}\) 量级——人类只能覆盖极小子集。更关键的是:最优架构依赖硬件。浮点运算次数(Floating Point Operations, FLOPs)低的深度卷积,在部分图形处理器(Graphics Processing Unit, GPU)上可能因并行度不足反而更慢[5]。

NAS 的目标:在给定硬件约束下,用算法搜索可部署架构,而非只优化 FLOPs 代理指标。

2 手工设计里程碑

2.1 MobileNet 家族

MobileNetV1:深度可分离卷积(Depthwise Separable Convolution)将标准卷积拆为深度卷积 + 逐点卷积,公开报告称 3×3、百通道量级下计算量可降到约 1/8–1/9,精度损失通常为数个百分点量级[1]。

MobileNetV2:倒残差块(Inverted Residual Block)采用「窄-宽-窄」:1×1 扩展 → 深度卷积 → 1×1 压缩;线性瓶颈(Linear Bottleneck)在低维处不加 ReLU,减轻信息丢失[2]。

MobileNetV3:用 MnasNet 搜索基础结构,再经 NetAdapt 微调;引入 h-swish 与 Squeeze-and-Excitation(SE)通道注意力[3]。

2.2 EfficientNet 家族

EfficientNet 用复合缩放(Compound Scaling)同时调深度、宽度与分辨率;公开给出 \(\alpha\approx1.2,\beta\approx1.1,\gamma\approx1.15\)\(\alpha\cdot\beta^{2}\cdot\gamma^{2}\approx2\) 的网格搜索结果。B0 由 NAS 得到基础结构;B0 在 ImageNet 上约 77.1% Top-1,参数量与 FLOPs 相对 ResNet-50 约为约 1/5 与约 1/11[4]。EfficientNetV2 在浅层用 Fused-MBConv,并采用渐进分辨率训练,公开称训练速度可提升数倍至约一个数量级[11]。

2.3 演进对比(公开基准量级)

模型 年份 参数量(约) FLOPs(约) ImageNet Top-1(约) 关键创新
VGG-16 2014 138M 15.5G 71.5% 大而慢基准
ResNet-50 2015 25.6M 4.1G 76.1% 残差连接
MobileNetV1 2017 4.2M 569M 70.6% 深度可分离
MobileNetV2 2018 3.4M 300M 72.0% 倒残差
MobileNetV3-L 2019 5.4M 219M 75.2% NAS + h-swish
EfficientNet-B0 2019 5.3M 390M 77.1% 复合缩放
EfficientNetV2-S 2021 21.5M 8.4G 83.9% Fused-MBConv

数值摘自各论文报告,训练配方与评估协议不完全一致,不宜直接当排行榜[1][2][3][4][11]。

3 NAS 三要素与搜索策略

要素 含义 常见选择
搜索空间 合法架构集合 卷积类型、通道、连接方式
搜索策略 如何探索 强化学习、进化、梯度、随机
评估策略 如何打分 完整训练、权重共享、预测器
策略 代表 搜索成本量级 质量倾向
强化学习 NASNet 约数千 GPU-天 高但极贵[10]
进化算法 AmoebaNet 约数千 GPU-天 高但极贵
可微分 DARTS 约数 GPU-天 中–高[9]
单路径 Single-Path NAS 约 1 GPU-天量级
预测器引导 BANANAS 等 约 1 GPU-天量级 中–高

早期 NASNet 类成本使中小团队难以负担;DARTS(Differentiable Architecture Search)将离散选择松弛为连续架构参数 \(\alpha\),用梯度同时优化权重与架构,公开称成本可降约两个数量级[9][10]。

DARTS 流程:构建含多候选操作的超网络 → softmax 加权各操作 → 联合训练权重 \(w\)\(\alpha\) → 每条边保留最大 \(\alpha\) 的操作。偏差与离散化落差仍是已知问题,见局限节。

4 硬件感知 NAS

FLOPs 不能可靠代理真实延迟:深度卷积 FLOPs 低但部分 GPU 上更慢;5×5 相对 3×3 的实测延迟比常高于 FLOPs 比[5]。硬件感知 NAS 以目标设备延迟/能耗为约束。

MnasNet:在 Pixel 上实测延迟,奖励形如 \(\mathrm{ACC}(a)\times[\mathrm{LAT}(a)/T]^{w}\)\(w\) 为负指数权重),分层搜索空间允许不同层不同算子。公开报告约 75.2% Top-1、约 78 ms(Pixel),相对同精度手工模型约 1.8× 加速;该结构亦成为 EfficientNet-B0 基础[5]。

延迟评估方式 准确度倾向 速度 适用
每次实测 最高 慢,需目标硬件 小空间
查找表(LUT) 通常很高 规则空间
神经网络预测器 中–高 最快 大空间
FLOPs 代理 常偏低相关 最快 粗筛

5 Once-for-All:一次训练,多端部署

Once-for-All(OFA)训练一个弹性超网络,部署时按硬件约束抽取子网,避免「每种硬件重训一遍」[6]。弹性维度包括深度、宽度、核大小与输入分辨率,组合空间可达约 \(10^{19}\) 量级。训练用渐进式收缩(Progressive Shrinking):先训最大网,再逐步支持更小子配置并共享权重。

公开流程量级:超网络训练约数十 GPU-小时;目标机测延迟表后,进化搜索约数小时(可在中央处理器上);抽出子网即可部署,无需再训[6]。

目标硬件(论文设定) 延迟约束(约) Top-1(约) vs MobileNetV3(约)
Samsung S7 Edge 20 ms 76.9% +1.7%
Google Pixel 1 29 ms 77.5% +2.3%
Samsung Note 10 15 ms 76.3% +1.1%
Jetson TX2 GPU 8 ms 78.1% +2.9%

子网均来自同一超网络;换芯片代际后须重测 LUT,不可直接复用旧延迟表。

6 MCUNet:微控制器级联合搜索

MCUNet 面向约 256 KB SRAM、约 1 MB Flash 的 MCU:MobileNetV2 峰值激活可达约 MB 级,远超 SRAM[7]。方法把搜索扩展到「架构 + 推理引擎」:

  • TinyNAS:在更极端配置(更小扩展比、更少通道等)下搜索,并约束峰值 SRAM。
  • TinyEngine:算子融合、张量生命周期规划、生成专用 C 代码,削减框架开销。
平台(论文) SRAM Flash 任务 精度(约) vs TFLite Micro(约)
STM32F412 256KB 1MB Visual Wake Words 88.1% +16.5%
STM32F746 320KB 1MB ImageNet 子集 70.7% +13.2%
STM32H743 512KB 2MB ImageNet 子集 74.6% +8.7%

MCUNetV2 用基于图像块(patch)的推理降低峰值内存,代价是多次前向、延迟上升[8]。MCUNetV3 / TinyEngine 2.0 进一步探索 MCU 上迁移学习,与设备端训练交叉[见 on-device-training]。

7 前沿方向(公开进展)

方向 思路 注意
LLM 辅助 NAS 用大模型生成/迭代候选架构描述 可复现性与成本依赖 API;增益需对照实验
Zero-Shot / 零成本代理 用拓扑或梯度流指标不训网打分(如 Zen-Score)[12] 代理与真实精度相关不稳定
NPU/FPGA 联合 把数据流、算子映射纳入搜索 工具链碎片化,迁移成本高

8 局限、挑战与可改进方向

1. 搜索空间偏见

局限:空间多由 MobileNet 式 MBConv 等人工原语构成,难发现真正「出圈」结构;空间过大则评估噪声淹没信号。 改进:先用零成本代理或随机采样做空间裁剪;为新加速器单独扩充算子原语;报告空间定义与采样覆盖率。

2. 超网络排序与真实精度落差

局限:权重共享使子网排序与独立重训后的排序不一致;DARTS 离散化后性能常掉点[9]。 改进:对 Pareto 前沿候选做短训或完整重训验证;用渐进收缩/三明治规则减轻干扰;部署前强制目标硬件实测。

3. 硬件迁移与 LUT 过时

局限:延迟表绑定具体 SoC、驱动与运行时;换代或换框架后「最优子网」可能不再最优。 改进:抽象「操作×分辨率×通道」测量流水线;CI 中定期重测 LUT;多目标同时记录延迟、能耗与峰值内存。

4. 成本与可复现

局限:即便 One-Shot,超网络训练仍需可观 GPU;论文数字依赖特定数据集与种子。 改进:优先复用公开 OFA/MCUNet 权重再在自有约束下搜索;固定种子与评估协议;小团队可从预训练超网络 + 进化搜索起步,而非从零 RL-NAS。

参考文献

[1] A. G. Howard et al., "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications," arXiv:1704.04861, 2017. [2] M. Sandler et al., "MobileNetV2: Inverted Residuals and Linear Bottlenecks," CVPR, 2018. [3] A. Howard et al., "Searching for MobileNetV3," ICCV, 2019. [4] M. Tan and Q. V. Le, "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks," ICML, 2019. [5] M. Tan et al., "MnasNet: Platform-Aware Neural Architecture Search for Mobile," CVPR, 2019. [6] H. Cai et al., "Once-for-All: Train One Network and Specialize it for Efficient Deployment," ICLR, 2020. [7] J. Lin et al., "MCUNet: Tiny Deep Learning on IoT Devices," NeurIPS, 2020. [8] J. Lin et al., "MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning," NeurIPS, 2021. [9] H. Liu, K. Simonyan, and Y. Yang, "DARTS: Differentiable Architecture Search," ICLR, 2019. [10] B. Zoph et al., "Learning Transferable Architectures for Scalable Image Recognition," CVPR, 2018. [11] M. Tan and Q. V. Le, "EfficientNetV2: Smaller Models and Faster Training," ICML, 2021. [12] M. Lin et al., "Zen-NAS: A Zero-Shot NAS for High-Performance Image Recognition," ICCV, 2021.