随着神经网络规模扩大,在设备端部署越来越需要能并行化常见操作的专用硬件。但为了获得最高效率,仅优化硬件适配网络是不够的,网络本身也需要针对硬件进行优化。
标准神经网络优化方法是通过神经网络架构搜索(NAS),目标是同时最小化网络规模和浮点运算量(FLOPS)。但这种方法不适用于神经芯片,后者往往能更快执行易并行化但高FLOPS的任务,而非难以并行化但低FLOPS的任务。
在某中心设备硬件团队,开发了多种策略使NAS适配新型神经加速器家族的架构优化问题。这些策略包括精心设计架构搜索空间以减少陷入局部最优的可能性。同时还发现,将少量人类直觉与特定任务的NAS结果结合,能更可靠高效地泛化到新任务。在多项机器学习任务的实验中,这些NAS策略可实现高达55%的延迟降低。
NAS算法分类
NAS需要三个要素:定义搜索空间(指定网络构建模块)、成本模型(关于网络精度、延迟和内存的函数)以及优化算法。NAS算法可分为三类:
- 多轮次方法:每轮采样一组架构,分别训练评估,基于成本采样下一组架构
- 单轮次方法:从包含多个子图的大型超网开始,训练中逐渐收敛到单个小网络
- 零轮次方法:以网络可训练性分数作为精度代理,无需实际训练
搜索空间优化
包含加速器感知约束会使成本函数呈现更复杂的"多峰"特性。通过以下方式优化搜索空间:
- 将通道尺寸选项限制为符合神经引擎并行因子的特定值
- 在搜索空间中添加可缩放整个模型通道数的"深度乘数"
- 使用机器学习回归模型构建性能估算器,避免实际硬件部署
专家介入的产品化实践
在将NAS应用于多个产品线时发现:
- 在某智能显示设备上,通过融合倒置瓶颈块(IBN)和深度乘数搜索,将人体检测延迟降低53%
- 在某安防摄像头中,结合专家建议将深度卷积替换为标准卷积,使模型内存占用减少47%
- 在机器人语义分割任务中,通过多轮次进化搜索找到延迟降低51%的最优架构
边缘AI的可持续性发展
通过所述技术大幅缩短NAS所需时间(从2000GPU天显著减少)。神经引擎凭借并行化和混合精度特性,相比通用CPU可节省大量能耗——对百万用户而言相当于200辆汽油车或百户美国家庭的年耗电量。通过NAS优化模型还能减少硬件需求,进一步降低碳足迹。
未来工作将探索:复杂硬件的自动化搜索空间优化、结合三类NAS算法的混合方法,以及通过剪枝和聚类引入稀疏性的模型优化。