用于量化神经网络参数的方法及装置与流程

文档序号:37514699发布日期:2024-04-01 14:24阅读:10来源:国知局
用于量化神经网络参数的方法及装置与流程

本公开的实施例涉及一种用于量化神经网络参数的方法和装置,并且具体地,涉及用于一种基于激活或批量归一化参数去除神经网络的一些参数并且使用尚存参数执行量化的方法和装置。


背景技术:

1、在本部分中描述的内容简单地提供了关于本公开的背景信息,并且不构成现有技术。

2、随着人工智能(ai)技术的发展,利用ai的许多服务正在被发布。使用ai提供服务的提供商训练ai模型,并使用训练的模型提供服务。以下,将基于ai模型中的神经网络进行描述。

3、为了执行使用神经网络的服务所需的任务,需要处理大量的计算,因此使用能够并行计算的图形处理单元(gpu)。然而,尽管图形处理单元在处理神经网络操作方面是高效的,但是它们具有高功耗和昂贵设备的缺点。具体地,为了增加神经网络的精度,图形处理单元使用32位浮点(fp32)。此时,由于使用fp32的计算消耗高功率,因此使用图形处理单元的计算也消耗高功率。

4、作为用于补偿这种图形处理单元的缺点的设备,对硬件加速器或ai加速器的研究正在积极进行中。通过使用8位整数(int8)而不是fp32,与图形处理单元相比,ai加速器不仅可以降低功耗,而且可以降低计算复杂度。

5、作为一种同时使用图形处理单元和ai加速器的方法,图形处理单元在fp32中训练神经网络,ai加速器将在fp32中经训练的神经网络转换为int8,然后使用该神经网络进行推断。以这种方式,可以实现神经网络的精度和计算速度。

6、这里,将在fp32表示系统中经训练的神经网络转换为int8表示系统的过程是必要的。以这种方式将高精度值转换成低精度值的处理被称为量化。在训练过程中学习为fp32值的参数被映射到int8值,这些值是在训练完成之后通过量化的离散值,并且可以用于神经网络推断。

7、同时,量化可以被分类为应用于作为神经网络的参数的权重的量化和应用于作为层的输出的激活的量化。

8、具体地,在fp32中经训练的神经网络的权重具有fp32精度。在完成神经网络的训练之后,将高精度权权重化为低精度值。这被称为应用于神经网络的权重的量化。

9、另一方面,由于未量化的权重具有fp32精度,因此使用未量化的权重计算的激活也具有fp32精度。因此,为了在int8中执行神经网络操作,不仅权重而且激活都需要被量化。这被称为应用于神经网络的激活的量化。

10、图1是示出神经网络的量化的图。

11、参考图1,计算设备120通过多个步骤根据数据100和权重110生成校准表130和量化的权重140。在图5a中将详细描述多个步骤。

12、这里,校准表130是量化包括在神经网络中的层的激活所必需的信息,并且意味着记录包括在神经网络中的每一层的激活的量化范围。

13、具体地,计算设备120不量化所有激活并且量化预定范围内的激活。此时,确定量化范围被称为校准,并且记录量化范围被称为校准表130。量化范围也适用于权重的量化。

14、同时,量化的权重140是通过分析计算设备120所接收的权重110的分布并基于权重分布量化权重110而获得的。

15、如图1所示,量化的权重140通常基于输入权重110的分布而生成。以这种方式,在仅基于权重110的分布执行量化的情况下,量化的权重140可以包括由于量化而引起的失真。

16、图2是示出基于权重分布的量化结果的图。

17、参考图2,左图200示出了未量化的权重的权重分布。左图200的权重值具有高精度。

18、在量化之前,权重主要分布在值0.0周围。然而,如在左图200中,在权重分布中可能存在具有比其它权重大得多的值的权重。计算设备(未示出)可以从左图200执行基于最大值的量化或基于裁剪的量化。右图210和212的权重具有低精度。

19、右上图210是来自左图200的基于最大值的量化的结果。具体地,计算设备基于权重中具有最大尺寸的-10.0和10.0的值对左图200中的权重执行量化。在量化之前位于最大值或最小值的权重被映射到低精度表示范围中的最小值-127或最大值127。另一方面,位于量化前的值0.0附近的所有权重被量化为0。

20、右下图表212是来自左图表200的基于裁剪的量化的结果。具体地,计算设备基于左图200中的权重分布获得均方误差,并且基于均方误差计算裁剪边界值。计算设备基于裁剪边界值对权重执行量化。在量化之前位于裁剪边界值的权重被映射到低精度表示范围的边界值。另一方面,位于量化前的值0.0附近的权重被映射到0或0附近的值,由于根据裁剪边界值的范围比根据量化前的权重的最大值和最小值的范围窄,所以在基于裁剪的量化中,权重并不都被映射到0。换句话说,基于裁剪量化的权重具有比基于最大值量化的权重更高的分辨率。

21、然而,通过基于最大值的量化和基于裁剪的量化而量化的权重大部分被映射到值0。这成为降低神经网络的精度的因素。以这种方式,如果存在与权重中的大多数值具有大的差异的异常值权重,则当应用量化时神经网络的性能劣化。

22、因此,在对包括在神经网络中的权重进行量化时,需要对在去除与异常值相对应的权重之后执行量化的方法进行研究。

23、本公开

24、技术问题

25、本公开的实施例的目的是提供一种用于量化神经网络参数的方法和装置,用于通过在量化之前基于层的输出而不是神经网络的参数分布去除一些参数来防止量化的参数的值失真并且减少由于量化引起的神经网络的性能劣化。

26、本公开的其他实施例的目的是提供一种用于量化神经网络参数的方法和装置,用于通过基于批量归一化参数而不是量化之前神经网络的参数分布去除一些参数来防止量化的参数的值失真并且减少由于量化引起的神经网络的性能劣化。

27、技术方案

28、根据本公开的一个方面,提供了一种用于量化包括批量归一化参数的神经网络的参数的计算机实现的方法,该方法包括获得连接到第一层的第二层中的参数;基于以下中的任一者来去除所述参数中的至少一个参数:所述第一层的输出值或被应用于所述参数的批量归一化参数;以及基于在去除之后尚存的参数来量化第二层中的参数。

29、根据本公开的另一方面,提供了一种计算设备,该计算设备包括其中存储指令的存储器;以及至少一个处理器,其中所述至少一个处理器被配置为通过执行所述指令来获得连接到第一层的第二层中的参数;基于所述第一层的输出值或应用于所述参数的批量归一化参数中的任一个来去除所述参数中的至少一个参数;以及基于在去除之后尚存的参数来量化第二层中的参数。

30、有益效果

31、根据上述本公开的实施例,通过在量化之前基于层的输出而不是神经网络的参数分布去除一些参数,可以防止量化的参数的值失真并且减少由于量化引起的神经网络的性能劣化。

32、根据本公开的另一实施例,通过在量化之前基于批量归一化参数而不是神经网络的参数分布去除一些参数,可以防止量化的参数的值失真并且减少由于量化引起的神经网络的性能劣化。


技术实现思路

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1