模型量化方法、装置、电子设备和存储介质与流程

文档序号:37385234发布日期:2024-03-22 10:37阅读:14来源:国知局
模型量化方法、装置、电子设备和存储介质与流程

本技术实施例涉及机器学习,尤其涉及一种模型量化方法、装置、电子设备和存储介质。


背景技术:

1、随着神经网络模型的规模不断增大,使得在边缘设备部署神经网络模型的难度增大。全精度的神经网络模型基于浮点型操作运算,这导致模型在推理过程中的计算代价较大,边缘设备的存储资源和计算资源有限,使得神经网络模型在推理过程中的速度较慢,限制了神经网络模型的应用场景。

2、目前,对包括大量参数的神经网络模型进行量化处理,将神经网络模型的参数由浮点型量化到整型,比如从32位浮点型(fp32)量化到8位整型(int8),以此减小神经网络模型的参数量,降低计算复杂度,以扩大模型的部署场景。

3、然而,目前基于模型参数的数值对神经网络模型进行量化,使量化前后模型参数的数值分布相似,但量化后模型会出现性能下降的问题,为此需要通过训练数据对量化后模型进行网络微调,导致模型量化的效率较低。


技术实现思路

1、有鉴于此,本技术实施例提供一种模型量化方法、装置、电子设备和存储介质,以至少部分结束上述问题。

2、根据本技术实施例的第一方面,提供了一种模型量化方法,包括:获取量化前模型参数矩阵,所述量化前模型参数矩阵包括待量化模型的模型参数,所述量化前模型参数矩阵包括的模型参数为浮点型;获取所述量化前模型参数矩阵的梯度信息,所述梯度信息用于指示所述量化前模型参数矩阵中相邻模型参数的增量;对所述量化前模型参数矩阵进行量化,获得中间模型参数矩阵,所述中间模型参数矩阵包括的模型参数为浮点型;根据所述梯度信息对所述中间模型参数矩阵中的模型参数进行舍入,获得量化后模型参数矩阵,所述量化后模型参数矩阵包括的模型参数为整型。

3、在一种可能的实现方式中,所述获取所述量化前模型参数矩阵的梯度信息,包括:根据所述量化前模型参数矩阵中第1行第j个和第j-1个模型参数,计算所述量化前模型参数矩阵中第1行第j个模型参数对应的梯度值,j为大于1的正整数,所述量化前模型参数矩阵中第1行第1个模型参数的梯度值为0;根据所述量化前模型参数矩阵中第1列第i个和第i-1个模型参数,计算所述量化前模型参数矩阵中第1列第i个模型参数对应的梯度值,i为大于1的正整数;根据所述量化前模型参数矩阵中第i行第j个和第j-1个、及第i-1行第j个模型参数,计算所述量化前模型参数矩阵中第i行第j个模型参数对应的梯度值;生成包括所述量化前模型参数矩阵中各模型参数对应的梯度值的梯度矩阵,作为所述量化前模型参数矩阵的梯度信息。

4、在一种可能的实现方式中,所述计算所述量化前模型参数矩阵中第1行第j个模型参数对应的梯度值,包括:通过如下公式计算所述量化前模型参数矩阵中第1行第j个模型参数对应的梯度值;

5、

6、所述计算所述量化前模型参数矩阵中第1列第i个模型参数对应的梯度值,包括:通过如下公式计算所述量化前模型参数矩阵中第1列第i个模型参数对应的梯度值;

7、

8、g1,j用于表征所述量化前模型参数矩阵中第1行第j个模型参数对应的梯度值,gi,1用于表征所述量化前模型参数矩阵中第1列第i个模型参数对应的梯度值,f1,j用于表征所述量化前模型参数矩阵中第1行第j个模型参数,f1,j-1用于表征所述量化前模型参数矩阵中第1行第j-1个模型参数,fi-1,1用于表征所述量化前模型参数矩阵中第1列第i-1个模型参数。

9、在一种可能的实现方式中,所述计算所述量化前模型参数矩阵中第i行第j个模型参数对应的梯度值,包括:

10、通过如下公式计算所述量化前模型参数矩阵中第i行第j个模型参数对应的梯度值;

11、

12、gi,j用于表征所述量化前模型参数矩阵中第i行第j个模型参数对应的梯度值,fi,j用于表征所述量化前模型参数矩阵中第i行第j个模型参数,fi,j-1用于表征所述量化前模型参数矩阵中第i行第j-1个模型参数,fi-1,j用于表征所述量化前模型参数矩阵中第j列第i-1个模型参数。

13、在一种可能的实现方式中,所述对所述量化前模型参数矩阵进行量化,获得中间模型参数矩阵,包括:确定所述量化前模型参数矩阵包括的模型参数中的最大模型参数和最小模型参数;根据所述最大模型参数和所述最小模型参数,确定缩放系数和零点偏移;根据所述缩放系数和所述零点偏移对所述量化前模型参数矩阵进行量化,获得中间模型参数矩阵。

14、在一种可能的实现方式中,所述根据所述最大模型参数和所述最小模型参数,确定缩放系数和零点偏移,包括:

15、根据所述最大模型参数和所述最小模型参数,通过如下公式计算所述缩放系数;

16、

17、根据所述最大模型参数和所述最小模型参数,通过如下公式计算所述零点偏移;

18、z=-round(β·s)-2b-1

19、α用于表征所述最大模型参数,β用于表征所述最小模型参数,b用于表征所述量化后模型参数矩阵中模型参数的整型位数,s用于表征所述缩放系数,z用于表征所述零点偏移,round( )用于表征最邻近舍入运算。

20、在一种可能的实现方式中,所述根据所述梯度信息对所述中间模型参数矩阵中的模型参数进行舍入,获得量化后模型参数矩阵,包括:对所述中间模型参数矩阵中的模型参数进行向上舍入,获得该模型参数对应的第一模型参数,所述第一模型参数为整型;对所述中间模型参数矩阵中的模型参数进行向下舍入,获得该模型参数对应的第二模型参数,所述第二模型参数为整型;根据所述梯度信息,选择对应的所述第一模型参数或所述第二模型参数,作为所述中间模型参数矩阵中模型参数的舍入结果;生成包括所述中间模型参数矩阵中各模型参数的舍入结果的量化后模型参数矩阵。

21、在一种可能的实现方式中,所述根据所述梯度信息,选择对应的所述第一模型参数或所述第二模型参数,作为所述中间模型参数矩阵中模型参数的舍入结果,包括:根据所述中间模型参数矩阵中模型参数对应的所述第一模型参数、及所述中间模型参数矩阵中与该模型参数相邻的至少一个模型参数的舍入结果,计算该模型参数的上舍入梯度;根据所述中间模型参数矩阵中模型参数对应的所述第二模型参数、及所述中间模型参数矩阵中与该模型参数相邻的至少一个模型参数的舍入结果,计算该模型参数的下舍入梯度;若所述中间模型参数矩阵中模型参数在所述梯度信息中对应的梯度,与该模型参数对应的上舍入梯度之间的距离,小于该模型参数在所述梯度信息中对应的梯度与该模型参数对应的下舍入梯度之间的距离,则将该模型参数对应的第一模型参数确定为该模型参数的舍入结果;若所述中间模型参数矩阵中模型参数在所述梯度信息中对应的梯度,与该模型参数对应的上舍入梯度之间的距离,大于或等于该模型参数在所述梯度信息中对应的梯度与该模型参数对应的下舍入梯度之间的距离,则将该模型参数对应的第二模型参数确定为该模型参数的舍入结果。

22、在一种可能的实现方式中,所述中间模型参数矩阵中第1行第j个模型参数的上舍入梯度通过如下公式计算:

23、

24、所述中间模型参数矩阵中第1行第j个模型参数的下舍入梯度通过如下公式计算:

25、

26、所述中间模型参数矩阵中第1列第i个模型参数的上舍入梯度通过如下公式计算:

27、

28、所述中间模型参数矩阵中第1列第i个模型参数的下舍入梯度通过如下公式计算:

29、

30、所述中间模型参数矩阵中第i行第j个模型参数的上舍入梯度通过如下公式计算:

31、

32、所述中间模型参数矩阵中第i行第j个模型参数的下舍入梯度通过如下公式计算:

33、

34、g′1,j用于表征所述中间模型参数矩阵中第1行第j个模型参数的上舍入梯度,g″1,j用于表征所述中间模型参数矩阵中第1行第j个模型参数的下舍入梯度,用于表征所述中间模型参数矩阵中第1行第j个模型参数对应的第一模型参数,用于表征所述中间模型参数矩阵中第1行第j个模型参数对应的第二模型参数,t1,j-1用于表征所述中间模型参数矩阵中第1行第j-1个模型参数的舍入结果,所述中间模型参数矩阵中第1行第1个模型参数的舍入结果为该模型参数的最邻近舍入结果;

35、g′i,1用于表征所述中间模型参数矩阵中第1列第i个模型参数的上舍入梯度,g″i,1用于表征所述中间模型参数矩阵中第1列第i个模型参数的下舍入梯度,用于表征所述中间模型参数矩阵中第1列第i个模型参数对应的第一模型参数,用于表征所述中间模型参数矩阵中第1列第i个模型参数对应的第二模型参数,ti-1,1用于表征所述中间模型参数矩阵中第1列第i-1个模型参数的舍入结果;

36、g′i,j用于表征所述中间模型参数矩阵中第i行第j个模型参数的上舍入梯度,g″i,j用于表征所述中间模型参数矩阵中第i行第j个模型参数的下舍入梯度,用于表征所述中间模型参数矩阵中第i行第j个模型参数对应的第一模型参数,用于表征所述中间模型参数矩阵中第i行第j个模型参数对应的第二模型参数,ti,j-1用于表征所述中间模型参数矩阵中第i行第j-1个模型参数的舍入结果,ti-1,j用于表征所述中间模型参数矩阵中第j列第i-1个模型参数的舍入结果。

37、根据本技术实施例的第二方面,提供了一种模型量化装置,包括:第一获取单元,用于获取量化前模型参数矩阵,所述量化前模型参数矩阵包括待量化模型的模型参数,所述量化前模型参数矩阵包括的模型参数为浮点型;第二获取单元,用于获取所述量化前模型参数矩阵的梯度信息,所述梯度信息用于指示所述量化前模型参数矩阵中相邻模型参数的增量;量化单元,用于对所述量化前模型参数矩阵进行量化,获得中间模型参数矩阵,所述中间模型参数矩阵包括的模型参数为浮点型;舍入单元,用于根据所述梯度信息对所述中间模型参数矩阵中的模型参数进行舍入,获得量化后模型参数矩阵,所述量化后模型参数矩阵包括的模型参数为整型。

38、根据本技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行上述第一方面所述方法对应的操作。

39、根据本技术实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述的方法。

40、根据本技术实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行上述第一方面所述的方法。

41、由上述技术方案可知,对量化前模型参数矩阵进行量化获得中间模型参数矩阵,根据梯度信息对中间模型参数矩阵中的模型参数进行舍入,获得量化后模型参数矩阵,对量化前模型参数矩阵进行量化基于模型参数的数值,梯度信息指示量化前模型参数矩阵中相邻模型参数的增量,即对中间模型参数矩阵中的模型参数进行舍入基于模型参数之间的结构关系,在基于模型参数数值分布对模型参数进行量化的同时,从模型参数的结构层面选择模型参数的舍入方向,使得量化后模型参数矩阵中的模型参数与量化前模型参数矩阵中的模型参数具有较小的结构性差异,从而使量化后模型具有较小的性能下降,无需对量化后模型进行网络微调,从而可以提高模型量化的效率。

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