专用硬件神经网络优化
随着神经网络规模不断扩大,在设备上部署网络越来越需要能够并行化常见操作的专用硬件。但要实现最高效率,仅优化硬件以适应网络是不够的;网络也应该针对硬件进行优化。
神经网络架构搜索的挑战
标准神经网络优化方法是通过神经网络架构搜索(NAS),目标是同时最小化网络规模和浮点运算次数(FLOPS)。但这种方法在神经芯片上效果不佳,因为神经芯片通常能够更快速地执行易于并行化但FLOPS较高的任务,而不是难以并行化但FLOPS较低的任务。
最小化延迟是比最小化FLOPS更复杂的优化目标。为此,开发了多种策略来使NAS适应优化某中心新神经引擎加速器系列的网络架构问题。这些策略涉及精心设计架构搜索空间,例如减少陷入局部最优的可能性。
神经网络架构搜索方法分类
NAS需要三个要素:定义搜索空间、成本函数和优化算法。使用性能估计器来测量延迟和内存占用,但要测量准确性,必须训练网络。这是一个主要瓶颈,因为训练单个网络可能需要数天时间。
NAS算法分为三类,需要不同次数的网络训练:
- 多轮方法:每次迭代采样一组架构,每个网络都经过训练并评估准确性和性能
- 单轮方法:从称为超网的大型网络开始,具有多个可能的子图
- 零轮方法:与多轮方法类似,关键区别是网络从不训练
搜索空间优化
包含加速器感知约束会破坏成本函数的单调性,导致更复杂的地形。为解决这个问题,减少了搜索空间中的选项数量。
在卷积架构中,不再以一为增量探索通道大小,而是只考虑少数几个通道大小。将通道大小的选项限制为对神经引擎并行因子有利的特定值。在某些情况下,甚至向搜索空间添加了可用于在整个模型中缩放通道数的"深度乘数"比率。
专家参与的NAS产品化
虽然优化搜索空间提高了收敛速度、稳定性和可靠性,但向新用例的转移并不简单。在这些情况下,发现结合NAS结果和人类专业知识是最快的方法。
在不同数据集上执行NAS时,观察到常见模式,例如将卷积层与先前的卷积层融合,减少通道数,并将它们与硬件并行因子对齐。特别是,在倒置瓶颈块中融合卷积层对提高效率贡献最大。
应用成果
1. 在智能显示设备上减少一半检测延迟
运行模型来检测人员存在并定位检测到的人员。原始模型使用倒置瓶颈块。使用加速器感知NAS将该模型的延迟降低了53%。
2. 在安防摄像头中适应严格内存预算
使用分类模型进行安全辅助。目标是将模型参数和峰值激活内存适应严格的内存预算。在这种情况下,将NAS技术与专家参与相结合以提供微调。
3. 机器人快速语义分割
在机器人技术中,语义分割用于理解机器人正在交互的对象和场景。起始点是优化在CPU上运行的语义分割模型。最佳候选模型能够将延迟减少一半。
4. 通过设备端推理保护用户隐私
神经引擎支持设备端的大模型推理,因此可以在不将数据发送到云的情况下处理麦克风和视频源。设备端处理还提供了更好的用户体验,因为推理管道不受间歇性连接问题的影响。
边缘AI的可持续性
多轮NAS完整训练可能需要多达2,000个GPU天。然而,通过本文描述的一些技术,能够在明显更短的时间内创建高效的架构,使NAS更具可扩展性和可持续性。
由于其并行性和混合精度特性,神经引擎比通用CPU更节能。对于百万平均用户,差异约为每年数百万千瓦时,相当于200辆汽油动力乘用车或一百个美国家庭的平均能源消耗。
未来工作
已经确定优化需要深入了解硬件设计的专家。这可能无法扩展到未来更复杂的硬件。还发现在时间紧张的情况下,有专家参与仍然比从头开始运行NAS更快。因此,继续研究具有加速器感知的NAS算法如何处理大搜索空间。还通过探索如何组合三类算法来提高搜索算法的效率和有效性。还计划通过剪枝和聚类引入稀疏性来探索模型优化。