[论文解读] NPAS: A Compiler-aware Framework of Unified Network Pruning and Architecture Search for Beyond Real-Time Mobile Acceleration
NPAS 提出了一种编译器感知的框架,统一了结构化神经网络剪枝与神经架构搜索(NAS),以实现实时移动推理。通过将细粒度、与层无关的剪枝与编译器优化的代码生成流水线,以及基于强化学习与贝叶斯优化的搜索相结合,NPAS 在移动设备上实现了 3.9ms 的 ImageNet 推理延迟与 71% 的 Top-1 准确率,优于以往工作在速度与准确率方面的表现。
With the increasing demand to efficiently deploy DNNs on mobile edge devices, it becomes much more important to reduce unnecessary computation and increase the execution speed. Prior methods towards this goal, including model compression and network architecture search (NAS), are largely performed independently and do not fully consider compiler-level optimizations which is a must-do for mobile acceleration. In this work, we first propose (i) a general category of fine-grained structured pruning applicable to various DNN layers, and (ii) a comprehensive, compiler automatic code generation framework supporting different DNNs and different pruning schemes, which bridge the gap of model compression and NAS. We further propose NPAS, a compiler-aware unified network pruning, and architecture search. To deal with large search space, we propose a meta-modeling procedure based on reinforcement learning with fast evaluation and Bayesian optimization, ensuring the total number of training epochs comparable with representative NAS frameworks. Our framework achieves 6.7ms, 5.9ms, 3.9ms ImageNet inference times with 78.2%, 75% (MobileNet-V3 level), and 71% (MobileNet-V2 level) Top-1 accuracy respectively on an off-the-shelf mobile phone, consistently outperforming prior work.
研究动机与目标
- 通过实现 DNN 的统一、编译器感知优化,弥合模型压缩与 NAS 之间的差距,以实现移动加速。
- 开发一种可泛化的细粒度结构化剪枝方案,适用于多种 DNN 层(如 CONV、FC),而不仅限于 3×3 卷积。
- 在移动设备的严格延迟约束下,加速对最优剪枝方案与网络架构的联合搜索。
- 通过结合编译器级别的代码生成与硬件感知的模型压缩,实现端到端的移动推理加速。
- 在真实移动硬件上实现模型准确率与推理延迟之间的帕累托最优权衡。
提出的方法
- 为不同卷积核大小的 CONV 层提出块穿孔剪枝,为 FC 层提出基于块的剪枝,实现在多种 DNN 层上的细粒度、结构化稀疏性。
- 开发了一个统一的、基于编译器的自动代码生成框架,支持多种 DNN 架构与剪枝方案,实现在移动 CPU 和 GPU 上的高效推理。
- 提出三阶段 NPAS 框架:(1) 替换移动设备不高效的运算,(2) 基于元建模的强化学习搜索,结合快速评估与贝叶斯优化,以降低搜索成本,(3) 使用重要性、ADMM 与几何中位数方法进行剪枝算法搜索。
- 采用快速一次性剪枝模型微调(2 个周期)与在目标移动设备(三星 Galaxy S10)上进行端到端延迟测量,以在真实延迟约束下引导搜索。
- 在第三阶段利用预训练模型与知识蒸馏,在剪枝过程中保持准确率,剪枝阶段使用 100 个周期,微调阶段也使用 100 个周期。
- 使用快速自动调优编译器测量移动硬件上的实际推理延迟,确保在搜索过程中进行真实性能评估。
实验结果
研究问题
- RQ1一个统一的框架能否有效结合结构化剪枝与 NAS,同时感知编译器级别的优化以实现移动加速?
- RQ2细粒度、与层无关的结构化剪枝能否在现有粗粒度或仅限 3×3 卷积的方法之外,同时提升模型准确率与硬件效率?
- RQ3在严格的移动延迟约束下,如何高效地导航联合剪枝与架构搜索的空间?
- RQ4编译器感知优化在不牺牲模型准确率的前提下,能在多大程度上降低推理延迟?
- RQ5结合强化学习与贝叶斯优化的元建模方法,能否在保持高准确率的同时,实现与标准 NAS 相当的搜索效率?
主要发现
- NPAS 在三星 Galaxy S10 移动设备上实现了 3.9ms 的 ImageNet 推理延迟与 71% 的 Top-1 准确率,优于以往的 NAS 与剪枝方法。
- 在移动 GPU 上,NPAS 实现了 5.9ms 的延迟与 75% 的 Top-1 准确率(达到 MobileNet-V3 水平),在 3.9ms 延迟下实现了 71% 的 Top-1 准确率(达到 MobileNet-V2 水平)。
- 仅编译器优化便使移动 GPU 上的推理速度相比 MNN 提高最多达 141%,凸显了代码生成的影响。
- NPAS 在保持或提升准确率的同时,将模型计算量(MACs)最多减少 50%,且在延迟约束下表现优异。
- 由于快速评估与贝叶斯优化,整体搜索时间被缩短至 15 个 GPU 天(针对 EfficientNet-B0),其中第一阶段仅需 5 个周期,第三阶段仅需 1.5 天。
- NPAS 在准确率-延迟权衡上实现了帕累托最优,无论在 CPU 还是 GPU 上,均持续优于 MNN、PyTorch Mobile 与 TFLite。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。