华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件

编辑:好困
近日 , 由加州大学河滨分校主导、乔治梅森和圣母大学共同合作的团队提出 , 可以利用延迟的单调性来从根本上促进硬件适配NAS——即不同设备上的神经架构延迟排名通常是相关的 。
当强延迟单调性存在时 , 可以复用代理硬件上NAS所得到的架构给任意新目标硬件 , 而不会损失Pareto最优性 。 通过这种方法 , 结合现有的SOTANAS技术 , 硬件适配NAS的代价可以降到常数O(1) 。
目前 , 论文已经被国际性能建模和分析顶会ACMSIGMETRICS2022接收 。
华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件
文章图片
论文地址:
项目地址:
神经网络是层状结构 , 每一层可能是卷积层、激活层或全连接层等 。
NAS的过程就像搭积木 , 积木的每一层都有多种选择 , 比如当前层是卷积层时 , 使用多大的卷积核就是一种选择 。 在把各层的选择组合起来之后 , 便构成了一个完整的神经架构 。
通过NAS , 一般会得到多个「最优」架构 , 比如高精度同时高延迟和低精度同时低延迟的架构 。 而NAS的最终目标就是找出这样一系列在精度VS延迟的权衡中最优的架构(称为Pareto最优架构) 。 相应地 , 硬件适配NAS就是对给定目标设备进行NAS , 从而找到当前设备上的一系列Pareto最优架构 。
由此可见 , NAS就是一个「选择-组合」的过程 , 所以过程中必定会得到非常多个可供选择的架构 。 从中挑出Pareto最优架构的方法是对这些架构的延迟和精度进行排名而择其优 。
对此 , 本文将使用精度和推理延迟两个指标来衡量一个神经架构的性能 。
卷积神经网络(CNN)已被部署在越来越多样化的硬件设备和平台上 。 而神经网络架构极大地影响着最终的模型性能 , 比如推理精度和延迟 。 因此 , 在NAS的过程中综合目标硬件的影响至关重要 , 即硬件适配的NAS 。
高效进行硬件适配NAS的关键是快速在目标设备上评估各个神经架构的延推理延迟 。 如果简单地直接测量每个架构的延迟 , 会导致一次NAS就需要数周甚至数月 。 所以SOTA硬件适配的NAS主要依赖于为每个设备建立延迟查找表或预测器 。
华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件
文章图片
然而构建延迟预测器非常耗时以及需要大量的工程工作 。 例如 , MIT的ProxylessNAS在移动设备上测量了5000个DNN的平均推理延迟 , 以此为基础构建延迟查找表 。
假设每次测量的理想耗时是20秒(根据TensorFlow官方指南) , 即使不间断地测量 , 在一个设备上构建延迟预测器也需要27个多小时 。 类似地 , Meta提出的ChamNet收集了35万条延迟记录 , 仅仅用于在一个设备上构建延迟预测器 。
今年ICLR的spotlight工作HW-NAS-Bench也花了一个月在NAS-Bench-201和FBNet模型空间上搜集延迟数据 , 并为六个设备构建延迟预测器 。 在Microsoft的最新工作nn-meter中 , 单是收集一个边缘设备上的延迟测量值就需要4.4天 。
这些事实证明了SOTA的硬件适配NAS——为每个目标设备构建延迟预测器——成本非常高昂 。
华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件
文章图片
更复杂的是 , CNN部署的目标设备极其多样化 , 包括移动CPU、ASIC、边缘设备、和GPU等 。 例如 , 光是移动设备 , 市面上就有两千多个SoC , 排名前30的SoC才勉强各有超过1%的份额 。 所以 , 如何在极其多样化的目标设备上有效地进行硬件适配NAS已成为一项挑战 。
华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件
文章图片