一种模型量化方法及其装置与流程

文档序号:34265678发布日期:2023-05-25 06:57阅读:142来源:国知局
一种模型量化方法及其装置与流程

本技术涉及人工智能领域,尤其涉及一种模型量化方法及其装置。


背景技术:

1、神经网络模型(尤其是实现视觉相关任务的模型)在实际运行的时候需要大量的内存空间和计算资源,这使得将它们部署到移动设备上非常困难。

2、为了提升运行效率,通过各种不同的方法用于压缩模型的尺寸,如网络剪枝、模型量化、轻量级架构设计和知识蒸馏。在这些方法中,模型量化是对现有人工智能加速芯片相对更优的技术,因为这些芯片通常专注于低精度的计算,从而可以显著降低模型推理的时延、内存占用以及功耗。然而,现有技术中通过模型量化方法得到的压缩后的模型的精度较低。


技术实现思路

1、本技术提供了一种模型量化方法以及相关装置,可以提高网络的精度。

2、第一方面,本技术实施例提供了一种模型量化方法,方法包括:获取神经网络的第一参数;第一参数包括神经网络中中间层的权重矩阵或者中间层输出的特征图;根据第一参数的数值分布,确定量化截断区间,量化截断区间包括上界阈值和下界阈值,其中,第一参数中数值小于下界阈值的参数数量、第一参数中数值大于下界阈值且小于上界阈值的参数数量、以及第一参数中数值大于上界阈值的参数数量三者之间的差异小于阈值;根据量化截断区间,对第一参数进行三值量化,得到量化后的神经网络。

3、通过上述方式,在根据第一参数的数值分布,确定截断区间时,可以使得截断区间满足:使得第一参数中分别属于上述三个量化区间内的参数数量相同或近似相同,进而增加了三值神经网络的表达能力,从而提升量化模型的精度。

4、在一种可能的实现中,第一参数满足高斯分布,数值分布包括第一参数的均值和方差,上界阈值为均值和第一数值的加和结果,第一数值为方差与预设比例的乘积,下界阈值为均值和第一数值的差值结果。可选的,预设比例为0.43。

5、由高斯分布的性质可知,处于[-0.43σ,0.43σ]之间的参数数量占整体的约1/3(σ为方差),因此落入三个量化区间的浮点数的数量是相等的。

6、在一种可能的实现中,根据量化截断区间,对第一参数进行三值量化之后,方法还包括:对量化后的神经网络进行训练,并更新上界阈值和下界阈值,以得到更新后的上界阈值和更新后的下界阈值。

7、在一种可能的实现中,根据量化截断区间,对第一参数进行三值量化,包括:根据量化截断区间,通过第一预设方式,对第一参数进行三值量化;其中,第一预设方式包括:数值小于下界阈值的参数被量化为第一量化系数,数值大于上界阈值的参数被量化为第二量化系数;方法还包括:对量化后的神经网络进行训练,并更新第一量化系数和第二量化系数,以得到更新后的第一量化系数和更新后的第二量化系数。本技术实施例中,使用可学习的量化系数(第一量化系数和第二量化系数)可以进一步增加三值神经网络的表达能力。

8、在一种可能的实现中,第一量化系数和第二量化系数为相反数,对硬件实现更为友好。

9、在一种可能的实现中,第一参数包括神经网络中中间层的权重矩阵以及中间层输出的特征图;对量化后的神经网络进行训练,包括:以神经网络为老师模型,对量化后的神经网络进行训练,并更新量化后的神经网络中中间层的权重矩阵,得到第一神经网络;以神经网络为老师模型,对第一神经网络进行训练,并更新第一神经网络中中间层的权重矩阵以及中间层输出的特征图进行更新,得到第二神经网络。

10、本技术实施例中,通过渐进式的三值量化方法和知识蒸馏可以进一步提升三值神经网络的性能。

11、在一种可能的实现中,更新上界阈值和下界阈值,包括:根据量化后的神经网络在前向传播的处理结果确定目标损失;根据目标损失以及第二预设方式,确定上界阈值和下界阈值对应的更新梯度;其中,第二预设方式为通过将第一预设方式调整为可导的变换得到的。

12、在一种可能的实现中,更新第一量化系数和第二量化系数,包括:根据量化后的神经网络在前向传播的处理结果确定目标损失;根据目标损失以及第二预设方式,确定第一量化系数和第二量化系数对应的更新梯度;其中,第二预设方式为通过将第一预设方式调整为可导的变换得到的。

13、在一种可能的实现中,第二预设方式为随机量化。

14、由于基于截断区间对全精度模型进行量化的过程是不可导的,因此,在确定量化模型以及量化参数的梯度时,往往采用全精度模型对应的梯度对量化模型进行更新,这样会降低量化模型的更新效率,进而降低量化模型的精度。本技术实施例中,在确定梯度时将量化过程转换为可导,进而可以使用量化模型前馈过程确定的损失来计算得到梯度,从而提高量化模型的精度。

15、第二方面,本技术提供了一种模型量化装置,装置包括:

16、获取模块,用于获取神经网络的第一参数;第一参数包括神经网络中中间层的权重矩阵或者中间层输出的特征图;

17、处理模块,用于根据第一参数的数值分布,确定量化截断区间,量化截断区间包括上界阈值和下界阈值,其中,第一参数中数值小于下界阈值的参数数量、第一参数中数值大于下界阈值且小于上界阈值的参数数量、以及第一参数中数值大于上界阈值的参数数量三者之间的差异小于阈值;

18、根据量化截断区间,对第一参数进行三值量化,得到量化后的神经网络。

19、在一种可能的实现中,第一参数满足高斯分布,数值分布包括第一参数的均值和方差,上界阈值为均值和第一数值的加和结果,第一数值为方差与预设比例的乘积,下界阈值为均值和第一数值的差值结果。

20、在一种可能的实现中,预设比例为0.43。

21、在一种可能的实现中,处理模块,还用于:在根据量化截断区间,对第一参数进行三值量化之后,对量化后的神经网络进行训练,并更新上界阈值和下界阈值,以得到更新后的上界阈值和更新后的下界阈值。

22、在一种可能的实现中,处理模块,具体用于:

23、根据量化截断区间,通过第一预设方式,对第一参数进行三值量化;其中,第一预设方式包括:数值小于下界阈值的参数被量化为第一量化系数,数值大于上界阈值的参数被量化为第二量化系数;

24、处理模块,还用于:对量化后的神经网络进行训练,并更新第一量化系数和第二量化系数,以得到更新后的第一量化系数和更新后的第二量化系数。

25、在一种可能的实现中,第一量化系数和第二量化系数为相反数。

26、在一种可能的实现中,第一参数包括神经网络中中间层的权重矩阵以及中间层输出的特征图;

27、处理模块,具体用于:

28、以神经网络为老师模型,对量化后的神经网络进行训练,并更新量化后的神经网络中中间层的权重矩阵,得到第一神经网络;

29、以神经网络为老师模型,对第一神经网络进行训练,并更新第一神经网络中中间层的权重矩阵以及中间层输出的特征图进行更新,得到第二神经网络。

30、在一种可能的实现中,处理模块,具体用于:

31、根据量化后的神经网络在前向传播的处理结果确定目标损失;

32、根据目标损失以及第二预设方式,确定上界阈值和下界阈值对应的更新梯度;其中,第二预设方式为通过将第一预设方式调整为可导的变换得到的。

33、在一种可能的实现中,处理模块,具体用于:

34、根据量化后的神经网络在前向传播的处理结果确定目标损失;

35、根据目标损失以及第二预设方式,确定第一量化系数和第二量化系数对应的更新梯度;其中,第二预设方式为通过将第一预设方式调整为可导的变换得到的。

36、在一种可能的实现中,第二预设方式为随机量化。

37、第三方面,本技术实施例提供了一种数据处理装置,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及其任一可选的方法。

38、第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

39、第五方面,本技术实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

40、第六方面,本技术提供了一种芯片系统,该芯片系统包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

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