您的位置 首页 芯闻

赛灵思器材上的 INT4 优化卷积神经网络(1)

 对于 AI 推断,在提供与浮点相媲美的精度的同时,INT8 的性能优于浮点。然而在资源有限的前提下,INT8 却不能满足性能要求,INT4 优化则是解决之道。通过 INT4 优化,与现有的 INT8

 关于 AI 揣度,在供给与浮点比较美的精度的一起,INT8 的功用优于浮点。但是在资源有限的前提下,INT8 却不能满意功用要求,INT4 优化则是解决之道。经过 INT4 优化,与现有的 INT8 解决计划比较,赛灵思在实践硬件上可完结高达 77% 的功用进步。

概要
赛灵思在其硬件渠道上供给 INT8 AI 揣度加速器 — 深度学习处理器单元 (XDPU)。但是,在某些资源受限,要求高功用、低时延的场景(例如对资源、功耗灵敏的边际侧场景和低时延 ADAS 场景)中,为了完结比 INT8 更低的功耗和更高的功用,需求对神经网络进行低比特量化。但是,极低比特量化(如二进制或三进制)却会导致精度劣化。
因而,4 位激活参数和 4 位权重参数 (4A4W) 全流程硬件友爱型量化解决计划可完结更优异的精度/资源权衡取舍。本白皮书介绍了在 Zynq® UltraScale+™ MPSoC 和 Zynq-7000 SoC 系列(16nm 和 28nm)上面向 CNN 4 位 XDPU 完结的低精度加速器。这种加速器经过高效地映射卷积核算,充分发挥其 DSP 功用。这种解决计划可供给优于 XDPU 两倍的解决计划级功用。在 ADAS 体系中履行 2D 检测使命时,这种完结计划可以在 Zynq UltraScale+ MPSoC ZCU102 板上完结 230fps 的揣度速度,与 8 位 XDPU 比较功用进步 1.52 倍。此外,在用于 ADAS 体系中的不同使命时,该解决计划可完结比美全精度模型的成果。

介绍
企业日益注重依据 AI 的体系在数据中心、轿车、工业和医疗等范畴中的产品化。这带来了两大应战:
•    AI 揣度需求完结的核算量成数量级添加,一起还要坚持价格、功耗、时延和尺度巨细不变。
•    AI 科学家继续日复一日地在算法和模型上展开立异,需求各种不同的硬件架构供给最佳功用。

对继续立异的激烈需求则需求运用灵活应变的范畴专用架构 (DSA)。优化 AI 揣度功用和下降功耗的首要趋势之一是运用较低精度和混合精度。为下降硬件规划复杂性,模型量化被当作关键技术运用于各类硬件渠道。很多作业被投入用于最大极限地下降 CNN 运算量和存储本钱。这项研讨充分地证明,关于大多数核算机视觉使命,在不严峻献身精度的情况下,权重参数和激活参数可以用 INT8 表达。但是关于某些边际运用而言,硬件资源依然缺乏。在对边际运用运用较低的位宽(如 1 位、2 位)时,一些常见的硬件规划解决计划运用简化的乘法器。虽然这些解决计划时延低、吞吐量大,但它们与全精度模型比较,依然存在较大的精度距离。因而,在模型精度和硬件功用之间寻求平衡变得至关重要。

赛灵思运用几种常见的网络结构((ResNet50V1[参考资料 2]、ResNet50V2[参考资料 3] 、MobilenetV1[参考资料 4]和MobilenetV2[参考资料 5]),在 ImageNet 分类[参考资料 1]使命上经过运用几种不同的量化算法进行了试验。成果显现精度跟着位宽削减而下降。尤其是在位宽低于 4 时精度下降明显。此外,赛灵思也运用 Williams 等介绍的 Roofline 模型[参考资料 6],剖析不同位宽下的硬件功用,如图 1 所示。以赛灵思 ZCU102 评价板为例,跟着 MAC 的精度下降,硬件本钱下降,功用得到进步。此外,试验成果还显现,低比特量化可经过下降存储器需求进步功用。这在 ResNet-50 神经网络的卷积运算强度上得到证明。该网络分别用 8 位精度和 4 位精度进行了运算。因而,INT4 在模型精度和硬件功用之间完结了最佳权衡。
1600173389189391.png
图 1:在 ZCU102 上以不同位宽运转 Roofline 模型
 

怎么量化全流程硬件友爱型 CNN
为完结整个量化进程的硬件友爱化,INT4 量化法可分为三个部分:量化机制、硬件友爱型量化规划、量化感知练习。

量化机制
赛灵思运用经练习的量化阈值 (TQT) [参考资料 7]将 DNN 从单精度浮点 (FP32) 转换为 INT4。关于权重和激活参数,量化函数可正式地写作:
1600173510396627.png
方程 1 体现出输入值 x 的量化值取决于阈值 t、位宽 b 和量化份额系数s。阈值 t 一般初始化为
待量化的张量的绝对值的最大值。随后在练习进程顶用 log2t 的办法进行优化。量化系数s是 2 的幂,具有硬件友爱性。上下切断运算去除部分离群数据,加大权重参数和激活参数的散布紧密度,更有利于量化。
如上文所述,log2t 是一种在练习进程中可学习的参数。优化它就能确认适宜的量化规模。与之相反,log2t 的梯度可经过链式法则确认。此外,输入值 x 的梯度也可经过下式核算:
1600173616281479.png

TQT 证明对数表达能保证阈值和输入值的标度不变性。选用对数办法练习阈值更简单办理,而且被证明是十分高效的。

硬件友爱型量化规划
要进行量化练习,有必要从全精度网络中构建低比特网络。以全流程硬件友爱型量化为根底,下文介绍部分常用网络结构并对几种粗粒度模块的量化解决计划进行总结。关于这些量化模块,INT4 量化办法可用于多种类型的网络结构。部分常用模块的量化解决计划如图 2 所示。图 2中的虚线标明能依据实践网络结构增加或许删去。
 
1600173676507535.png


模块 1:CBR(Conv+BN+ReLU)
作为 CNN 中的通用结构,BN 层被兼并以削减练习和揣度进程中的触发器数。但是,BN 层存在不一致性;批量运算在练习进程中运用当时批次的平均值和方差,但在揣度进程中移动平均值和方差。假如量化的是从当时批次的平均值和方差取得的兼并参数,在揣度时就会导致误差。为消除这种不匹配,应运用下列最佳实践[参考资料 8]、[参考资料 9]来量化这种结构。在将 BN 折叠到 ConV 后,就对折叠到 INT4 的参数进行量化。该模块的量化如图 2 (b) 所示。

模块 2:BRC(BN+ReLU+Conv)
如图 2 (c) 所示,在紧随卷积层的 BN 层被兼并后,依然存在独立的 BN 层。但是,在现有的 INT4 量化办法中,BN 层根本不受注重。为有效地布置这个独立的 BN 层,一种量化神经网络[参考资料 10]的简化办法被用于在练习进程中坚持全精度,并在揣度进程中吸收浮点标度和阈值误差。这种办法可延伸用于一切线性运算(包含揣度中的卷积),一起有助于坚持精度。该模块的量化详见图 2 (d)。

模块 3:加法
关于加法模块,同享的量化层被用于量化一切输入和输出。依据经历,加法运算对精度灵敏,但
占用硬件资源较少。因而该层一般量化为 8 位。此外,为了量化一切输入和输出,还将运用标度同享规矩。同享规矩的效果是让硬件绕过标度核算,消除了浮点乘法的需求。如图 2 (b) 所示,“ShareQuantize”指这些量化层同享相同标度。
 

其他:
为保证卷积运算的输入是 4 位,加法运算的 8 位输出需求再次被量化为 4 位,如图 2 中的“再量化”所示。关于第一层和最终一层,依然进行 INT4 量化。整个网络的输出被量化成 8 位。内积层
与卷积层坚持一致。

量化感知练习
量化感知练习通常被用作一项关键技术,用来下下降比特模型与全精度模型之间的精度差。在本白皮书描绘的 INT4 量化办法中,它仍起着不可或缺的效果。量化感知练习进程都运用算法 1(如下所示)。

算法 1:逐层量化感知练习输入:
全精度输入、权重和误差:X、W、Bias

针对输入和权重的可学习对数域阈值:ax、aw、abias
位宽:针对输入和权重,b=4;针对误差,b=8

输出:

输出:Y

1.    初始化 ax = log2 max (|x|),aw = log2 max (|w|),abias = log2 max (|bias|)
2.    依据方程 1 核算 q(x)、q(w)和 q(bias)

3.    Y = Forward(q(x), q(w), q(bias))

4.    核算分类损耗:Loss。对一切可学习参数运用正则化办法。

5.     参看方程 3
图片.png

6.    运用 Adam 更新全精度参数

(未完待续)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/114373.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部