AI学习者 · 2022年05月05日

GPUNet | 英伟达打造最强轻量化模型,让你享受高精度、高速度的同时简单部署

29910ca65d31ad2e8df2f22a3dfdd385.png

本文旨在利用神经结构搜索(NAS)来优化模型的推理延迟。为了实现这一目标,建立了一个分布式NAS系统来在一个新的搜索空间上进行搜索,将NAS优化模型命名为GPUNet,它在推断延迟和准确性方面建立了一个新的SOTA Pareto前沿。

在1ms内,GPUNetEfficientNet-XFBNetV3快2倍,而且精度更高。GPUNet在COCO检测任务上在延迟和准确性上始终优于EfficientNet-XFBNetV3。所有这些数据都验证了NAS系统在处理不同的设计任务方面是有效且通用的。通过这个NAS系统,作者扩展了GPUNet,以覆盖广泛的延迟目标,这样DL从业者就可以在不同的场景中直接部署模型。

1简介

长期以来,神经网络的进展已经与实际部署脱离。深度学习的研究人员致力于发明新的构建块,而DL工程师在现实任务中部署这些构建块,煞费苦心地重新组合它们,以找到满足设计要求的架构。

大多数情况下可以简化这些需求,以在特定的延迟预算内找到目标设备(例如,gpu)上性能最好的架构。虽然在神经网络设计方面有许多令人兴奋的进展,如残差连接、倒置残差块(IRB)和注意力,但部署这些网络设计仍然具有挑战性;这也是本文需要解决的问题。

为了缓解DL研究和实际部署之间的差距,本文提出了一套优化的卷积神经网络,根据每种图形处理器的优化推理延迟(例如,TensorRT或OpenVINO的后处理)分级。具体来说提供了一个模型表,其中的一个条目是模型优化的结果,从最大化精度到GPU推断延迟的限制。该表格使DL工程师能够根据设计要求直接查询优化的神经体系结构,以加快昂贵模型的定制过程。

作者使用神经结构搜索(NAS)来设计这个表中的模型。最近,NAS在许多任务中自动化网络架构设计方面显示出了良好的结果。因此,NAS可以是一个方便的工具,因为需要为不同的GPU的许多延迟限制设计许多模型。当模型准备好进行建模时,测量后处理的张量延迟,即,包括量化、层/张量融合、kerenl挖掘和其他系统侧模型优化。最后,为NVIDIA GPU产品设计了模型,以供社区广泛采用。

作者构建了一个新的分布式NAS系统来实现目标。本文的NAS由3个模块组成:

  • 搜索空间:按照预定义的模式提供网络
  • 评估模块:基于先验信息提出期望的网络
  • 搜索方法:通过训练或SuperNet的评估来返回被提议网络的性能

本文的搜索空间通过将卷积层IRBsEfficientNet中使用的Fused-IRBs叠加在一起构建网络。本文的搜索空间也是迄今为止最全面的,包括filter numbers(#filters),kernel sizes层数(#layers)或IRBs(#IRBs)以及输入分辨率

IRBsFused-IRBs中还研究了有或没有Squeeze-Excitation (SE)expansion ratio以及activation type。所有这些因素都被认为是影响延迟和准确性的主要因素。

因此,这个搜索空间能够更好地利用准确性和延迟,例如,在NASNet中固定的filter模式和在FBNetV3中固定的激活函数以及SE;通过搜索还可以在EfficientNet中找到比固定expansion ratio更好的策略。

为了支持如此复杂的搜索空间,选择通过训练来评估网络候选。尽管这种方法比SuperNet方法昂贵得多,但这种评估在对架构进行排名时更加准确。

在为搜索空间构建SuperNet时可以避免许多尚未解决的问题,例如,支持多种类型的激活、激活/停用SE和可变 filter sizes。作者构建了一个client-server-style的分布式系统来应对计算挑战,在实验中,它已经健壮地扩展到300 A100 GPU(40个DGX-A100节点)。最后,采用LA-MCTS指导下的贝叶斯优化(BO)作为搜索方法。

86abd10721f55d52dad55eb77e6c2dd3.png

图1

将经过NAS优化的CNN命名为GPUNet, GPUNet在延迟和准确性方面建立了一个新的SOTA Pareto前沿,如图1所示。使用TensorRT测量GPUNet的延迟,所以GPUNet对DL实践者是直接可重用的。特别是,GPUNet-1FBNetV3-BEfficientNet-X-B2-GPU快近2倍,精度比FBNetV3-BEfficientNet-X-B2-GPU分别高出0.5%。

作者还在COCO检测任务上验证了GPUNet, GPUNet的性能始终优于EffecentNet-xFBNetV3。所有这些数据验证了NAS系统在设计各种任务时是有效的和通用的。

2GPUNet

首先,搜索算法从搜索空间中选择网络,并使用评价方法评价其性能。然后,搜索算法通过利用所有被评估的网络精度对,在下一次迭代中改进其决策。

25405d8472cd6c465d3b23a6c54a19d7.png

图2

NAS由2个阶段组成:

  1. 通过推理延迟对网络进行分类;
  2. 在延迟组内的网络上执行NAS以优化准确性。

在第一阶段(图2.A),使用Sobol采样,均匀地从高维搜索空间中提取网络候选,使用延迟查找表近似网络延迟,然后将网络分类为子搜索空间,如网络<0.5ms。通过从延迟查找表中总结每一层的延迟来近似推断延迟。延迟表使用输入数据形状和图层配置作为确定图层延迟的关键。

在第二阶段(图2.B),贝叶斯优化使用一个子空间,在子空间的延迟范围内寻找性能最好的网络。作者构建了一个client-server-style分布式框架来执行NAS。该搜索算法在服务器上运行,为client提供网络服务。经过训练后,client将返回准确性和网络。

2.1 搜索空间

搜索空间规定了候选网络的一般结构,本文的搜索空间受到EffecentNet的启发。请注意,本文的搜索框架是通用的,可以支持各种搜索空间,例如,为视觉任务设计ViTMLP。尽管ViT最近彰显出了出色的性能,但这里关注的是ConvNet,因为它是当前TensorRT支持最好的,它对gpu上的快速推理执行关键的性能优化。

79033456c7667691f4927b11188ddab8.png

表1

表1展示了本文中使用的搜索空间的详细信息。搜索空间由8个阶段组成。在这里,搜索每个阶段的配置,阶段中的层共享相同的配置。

  • 前两个阶段是利用卷积搜索Head结构。
  • EffecentNet v2的启发,2和3阶段使用了Fused-IRBs。但观察到用Fused-IRBs替代其余的IRBs后,延迟增加。
  • 从第4阶段到第7阶段,使用IRBs作为基本层。
Layers显示了阶段#Layers的范围,例如,在阶段4的[3,10]意味着阶段可以有3到10个IRBs。#Filters显示了阶段中各层的Filters范围。搜索空间还调整了Squeeze-Excitation (SE)expansion ratio以及activation type等。最后,在步长为32时,输入图像的尺寸由224增加到512。

9ca9551671be430fc1f5c04394a6a8c3.png

图3

搜索空间的合理性

与之前的工作不同,本文的搜索是由准确性和TensorRT优化推理延迟指导的。在一个好的实验设计中,应该找出与设计目标最相关的因素,即快速准确的网络。表1展示了发现的几个影响延迟和准确性的突出因素。这里提供实证数据:

Layers and Filters:

从已发表的结果中获得的大量证据表明,深度或广度的网络比浅层或狭窄的网络性能更好,而添加#Layers或增加Filters会拖慢推理。#Layer和Filters是准确性和延迟的必要设计选择。

Activation

过去的许多研究表明,良好的激活函数设计可以显著提高ImageNet上的最终精度,而图3.A显示使用ReLU的网络可以比使用PReLU快4倍。通常,激活函数是内存绑定操作。而TensorRT在层融合中支持ReLUSigmoidTanh,这就解释了速度差距。因此,激活函数的选择是延迟和准确性权衡的一个重要因素。

Expansion

IRBFusion-IRB使用1x1卷积在内部扩展通道大小,Expansion控制内部通道的大小。MobileNet的论文声称,更大的通道扩张将有助于提高网络的容量和表现力。

作者的演示结果也与MobileNet相一致。例如,将Expansion从6减少到2后,网络的精度在ImageNet top-1上下降了4个点,而增加Expansion会带来不可忽视的成本(图3.C)。这些数据表明,Expansion是搜索的一个重要因素。

Kernel

大卷积核可以增大感受野,提高精度。尽管如此,它也增加了延迟(图3.D),这在搜索空间中验证了kernel大小的选择。

SE

Squeeze-Excitation是由2017年ILSVRC获奖作品引入的,比前一年提高了25%。添加SE后,图3显示延迟明显增加。这证明SE是搜索空间中的一个因素。

Image Resolution

EffecentNet清楚地展示了通过增加分辨率来提高精度的方法,如图3所示。B显示延迟也显著增加。因此,寻找输入图像的分辨率,以获得更好的准确性和延迟折衷。

网络和搜索空间表示

现在有了搜索空间的大致情况;接下来是找到体现设计的适当表现形式。使用一个整数向量对从表1中描述的搜索空间采样的网络进行编码。向量的长度为41,表2详细描述了每个数字表示的超参数。

e76173c66f63eb2ebd6c3f2205b3d83b.png

阶段1和阶段0有相同的滤波器数,我们只搜索前3x3卷积(阶段0)的滤波器大小。因为在一个共享配置阶段,我们使用6的整数表示filter sizekernel sizeexpansion ratio是否使用SE,激活的类型,以及2-7阶段的IRB数量。因此,网络是表2中描述的向量的一个实例,每个数字的范围共同定义了表1中的搜索空间。

3.2 通过推理延迟分层网络

29198d9814ab971944922d8bd8a9a863.png

图5

为了设计由推理延迟划分的网络,选择直接度量搜索空间中网络的延迟。因为搜索空间的大小呈指数级大,通过从它中采样数百万个网络来近似搜索空间。采样技术对于捕获搜索空间的真实分布至关重要,这里使用Sobol序列,其优点在图5中很简单。采样是一种低成本的操作,可以在一分钟内获得数百万个样本。

具有挑战是测量采样网络的延迟。由于TensorRT已经主导了MLPerf推理基准,而又希望度量由TensorRT优化的推理延迟。然而,TensorRT需要几分钟来构建测量的推理引擎,这使得测量所有采样网络不可行。

作者通过增加每一层的延迟来近似一个网络的延迟。虽然搜索空间呈现了1030个网络,但这些层的配置却很有限,例如,在例子中是104个网络。因此,可以通过构建一个以输入数据形状和Layer配置作为关键的延迟表来显著加快延迟测量的速度。

给定一个网络,通过Layer的迭代来查找延迟。如果表中不存在一个Layer,则只对它进行基准测试,并在表中记录它的延迟。最后,网络延迟是所有Layer的延迟之和。

936e4b97e7cdfad1606d3e89c7f19638.png

图4

从图4可以看出,表估计延迟接近网络的实际延迟,表估计平均高于实际端到端测量值75µs。因为整个网络比单层有更多的层融合机会。对∼104层进行基准测试仍然是一项昂贵的任务,在多gpu上并行管理延迟表,以加快从几周到几天的进程。

3.3 GPUNet的整体架构

bc5bd7c3172c67a9a8643e5785c15818.png

3.4 为什么GPUNet这么快?

(1)、Mixed types of activation

图6显示,GPUNetRELUSwish之间切换,但EfficientNetFBNet在所有层中都使用了Swish。图3.A表明,Swish大大增加了延迟。GPUNet的一些层使用RELU来减少其他机会以提高精度的延迟,例如,更大的滤波器。

(2)、Fewer expansions in IRB

图3.C显示,通过将所有IRB的expansions从1增加到6,网络延迟几乎增加了一倍。expansions是搜索空间的一部分,所以一些GPUNet层往往有较小的expansions来节省延迟。

(3)、Wider and Deeper

在一个阶段中的过滤器(宽)和层数(深)是搜索空间的一部分。由于混合激活的延迟节省和较少的expansions,GPUNet趋向于比FBNetEfficientNet更宽更深。

在同一精度组,FBNetV3-B遵循16→24→40→72→120→183→224,EfficientNet-B2遵循32→16→24→48→88→120→208→352,但GPUNet-1FBNetV3-BEfficientNet-B2的模式24→64→96→160→288→448。

此外,GPUNet-2有33层,比FBNetV3-F多2层,比EfficientNet-B3多5层。众所周知,更深网络和更宽的网络具有更好的准确性;因此,GPUNet的准确性在每一组内都优于Baseline。

(4)、Larger Resolution

GPUNet-(1和2)的分辨率分别比EfficientNet-B2EfficientNet-B3大32和64,比FBNetV3-BFBNetV3-F分别大72和120。使用大分辨率通常可以提高精度;因此,GPUNet显示出比Baseline更好的精度和更高的FLOPS

3实验

分类任务

207b904676f6f23cc93717d9bda777a5.png

检测任务

57e2e09ff4f1f370eed40024cf7417b9.png

原文:GiantPandaCV

推荐阅读

更多嵌入式AI技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入嵌入式AI技术交流群,请备注研究方向。
推荐阅读
关注数
18808
内容数
1352
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息