本文为华为诺亚的NAS工作,针对DARTS搜索出网络结构往往对硬件不友好的问题,本文在优化中加入可微分的时延损失项,使搜索过程可以在精度和时延之间进行平衡系数的权衡。
可微分的神经架构搜索方法在自动机器学习中盛行,主要是由于其搜索成本低,设计搜索空间灵活。然而,这些方法在优化网络方面存在困难,因此搜索到的网络往往对硬件不友好。本文针对这一问题,在优化中加入可微分的时延损失项,使搜索过程可以在精度和时延之间进行平衡系数的权衡。延迟预测模块(LPM)是对每个网络架构进行编码,并将其输入到一个多层回归器中,通过随机抽样收集训练数据,并在硬件上对其进行评估。本文在NVIDIA Tesla-P100 GPU上评估了该方法。在100K采样架构(需要几个小时)的情况下,延迟预测模块的相对误差低于10%。嵌入延迟预测模块,搜索方法可以减少20%的延迟,同时保留了精度。本文的方法还能简洁的移植到广泛的硬件平台上,或用于优化其他不可微的因素,如功耗。
本文从神经网络架构延迟的角度出发,对DARTS的搜索进行了优化。DARTS工作对网络延时的对等指标定义为FLOPs,但是FLOPs仅仅是对模型的计算复杂度实现了量化,并不能完全对等网络的推理延迟。从硬件部署角度考虑,网络模型的推理速度受硬件加速设备,部署框架的优化效果,输入输出数据的延迟等多方面的影响。如下图所示:
根据上图的实测结果,我们可以清晰的发现,在相同的 FLOPs 下,不同的网络结构对应的实际网络延迟也有明显的差异。比如,在 400M FLOPs 的网络架构中,高延迟能达到 25ms ,而低延迟仅需要 17.1ms。那么,如何在保证模型精度,FLOPs 的前提下尽量的做到低延迟呢?
Latency-DARTS架构示意图
这里本文使用测试集上预测与 ground-truth 之间的绝对误差和相对误差来评估 LPM 。如下表所示:
延时预测结果
随着训练数据量的增加,测试误差也相应下降。另一方面,当训练数据量大于40K时,精度的提高变得微乎其微。在训练数据量为80K的情况下,延迟预测结果令人满意,绝对误差小于2ms,相对误差小于10%。在根据搜索实验,这样的精度足以找到高效的架构。
CIFAR10实验结果
ImageNet实验结果
本文提出了一种在复杂搜索空间中预测架构延迟的可微分方法,并将该模块融入到可微分架构搜索中。这使得我们可以控制识别精度和推理速度的平衡。本文将延迟预测模块设计成一个多层回归网络,并通过从预设的搜索空间中抽取一些架构进行训练。该流水线可以很容易地移植到广泛的硬件/软件配置中,并有助于设计机器友好的架构。
但是,对于不同的硬件架构和软件部署平台,需要构造不同的数据集才能得到准确的预测结果,因此,本文提出的推理延迟预测模块严重依赖数据集的构建。