一种神经网络模型的压缩方法和相关装置与流程

文档序号:37063613发布日期:2024-02-20 21:15阅读:19来源:国知局
一种神经网络模型的压缩方法和相关装置与流程

本技术涉及计算机领域,特别是涉及一种神经网络模型的压缩方法和相关装置。


背景技术:

1、神经网络模型使得很多人工智能任务的性能达到了一个前所未有的高度,不过,复杂的神经网络模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效地应用在各硬件平台的重要原因。

2、为此,可以通过模型压缩降低参数冗余,对神经网络模型进行精简,进而得到一个轻量且准确率相当的网络,压缩后的网络具有更小的结构和更少的参数,可以有效降低计算和存储开销,便于部署在受限的硬件环境中。

3、相关技术中提供的压缩方式可以是模型剪枝,从而剔除神经网络模型中 不重要的权重,使得神经网络模型减少参数量和计算量。然而这种方式中模型压缩率比较容易受到限制,从而导致模型压缩率可能不够,进而影响其在硬件平台的应用效果。


技术实现思路

1、为了解决上述技术问题,本技术提供了一种神经网络模型的压缩方法和相关装置,由于从每个参数维度进行压缩是依次进行的,并且后一次压缩是在前一次压缩得到的模型的基础上进行的,因此,待压缩网络模型的模型压缩率将是多个参数维度的模型压缩率的叠加,从而提高待压缩网络模型的模型压缩率,提高其在硬件平台的应用效果。

2、本技术实施例公开了如下技术方案:

3、一方面,本技术实施例提供一种神经网络模型的压缩方法,所述方法包括:

4、获取待压缩网络模型;

5、对所述待压缩网络模型,从所述待压缩网络模型的多个参数维度依次进行压缩;在对所述待压缩网络模型,从所述待压缩网络模型的多个参数维度依次进行压缩的过程中,第i+1次压缩为从所述待压缩网络模型的第i+1个参数维度对第i个模型进行压缩,得到第i+1个模型,i=0、1、2、……、n-1,n为所述多个参数维度的数量,n为大于1的正整数;当i=0时,所述第i个模型是所述待压缩网络模型,当i大于0时,所述第i个模型是从所述待压缩网络模型的第i个参数维度进行压缩得到的;

6、在完成从所述待压缩网络模型的第n个参数维度对第n-1个模型进行压缩后,基于第n次压缩得到的第n个模型确定压缩后的网络模型。

7、一方面,本技术实施例提供一种神经网络模型的压缩装置,所述装置包括获取单元和压缩单元:

8、所述获取单元,用于获取待压缩网络模型;

9、所述压缩单元,用于对所述待压缩网络模型,从所述待压缩网络模型的多个参数维度依次进行压缩;在对所述待压缩网络模型,从所述待压缩网络模型的多个参数维度依次进行压缩的过程中,第i+1次压缩为从所述待压缩网络模型的第i+1个参数维度对第i个模型进行压缩,得到第i+1个模型,i=0、1、2、……、n-1,n为所述多个参数维度的数量,n为大于1的正整数;当i=0时,所述第i个模型是所述待压缩网络模型,当i大于0时,所述第i个模型是从所述待压缩网络模型的第i个参数维度进行压缩得到的;

10、所述压缩单元,还用于在完成从所述待压缩网络模型的第n个参数维度对第n-1个模型进行压缩后,基于第n次压缩得到的第n个模型确定压缩后的网络模型。

11、在一种可能的实现方式中,所述压缩单元,用于:

12、获取所述多个参数维度分别对应的优先级;

13、按照所述优先级从高到低的顺序,对所述待压缩网络模型,从所述多个参数维度依次进行压缩。

14、在一种可能的实现方式中,所述多个参数维度包括模型宽度、模型深度和通道数量中至少两种参数维度,其中,通道数量的优先级高于模型宽度的优先级,且模型宽度的优先级高于模型深度的优先级。

15、在一种可能的实现方式中,所述多个参数维度包括模型宽度、模型深度和通道数量,所述压缩单元,用于:

16、对所述待压缩网络模型的通道数量进行压缩,得到第1个模型;

17、对所述第1个模型的模型宽度进行压缩,得到第2个模型;

18、对所述第2个模型的模型深度进行压缩,得到第3个模型。

19、在一种可能的实现方式中,所述待压缩网络模型为转换器模型,所述转换器模型包括编码器,所述编码器包括多头注意力层和前馈网络层,所述压缩单元,用于:

20、确定所述多头注意力层的每个通道的第一通道重要度,以及确定所述前馈网络层的每个通道的第二通道重要度;

21、将所述多头注意力层中所述第一通道重要度达到第一剪枝条件的通道进行剪枝,以及将所述前馈网络层中所述第二通道重要度达到第二剪枝条件的通道进行剪枝,得到所述第1个模型。

22、在一种可能的实现方式中,所述压缩单元,用于:

23、获取所述多头注意力层所包括的权重;

24、针对所述多头注意力层的每个通道,基于属于所述通道的每个权重与数值零之间的差距进行重要度计算,得到所述通道的第一通道重要度。

25、在一种可能的实现方式中,所述压缩单元,用于:

26、针对所述前馈网络层的每个权重,确定裁剪掉所述权重产生的损失函数扰动;

27、基于所述损失函数扰动确定所述权重的重要度;

28、针对所述多头注意力层的每个通道,基于属于所述通道的每个权重的重要度进行重要度计算,得到所述通道的第二通道重要度。

29、在一种可能的实现方式中,所述待压缩网络模型为转换器模型,所述转换器模型包括嵌入层,所述嵌入层的维度是m×n,m为词汇表中词汇数量,n为权重矩阵的维度,所述压缩单元,用于:

30、缩减所述词汇表中出现频率低于预设阈值的词汇,并通过删除所述词汇对应的嵌入向量减小所述第1模型中m的大小;

31、通过主成分分析法对所述第1模型中权重矩阵的维度进行降维;

32、基于降维后的嵌入层得到所述第2模型。

33、在一种可能的实现方式中,所述压缩单元,用于:

34、通过奇异值分解法对所述降维后的嵌入层进行分解,得到所述第2模型。

35、在一种可能的实现方式中,所述待压缩网络模型为转换器模型,所述转换器模型包括多层编码器,所述模型深度为所述多层编码器的层数,所述压缩单元,用于:

36、基于所述第2个模型中多层编码器的层数和目标模型深度之间的比值得到压缩间隔;

37、按照所述多层编码器的排列顺序,每次对所述压缩间隔内的编码器进行蒸馏得到目标编码器,直到蒸馏得到的目标编码器的层数满足所述目标模型深度;

38、基于所述蒸馏得到的目标编码器确定所述第3个模型。

39、在一种可能的实现方式中,所述压缩单元,用于:

40、从所述待压缩网络模型的第i+1个参数维度对第i个模型进行压缩,得到初始压缩模型;

41、利用所述第i个模型对所述初始压缩模型进行蒸馏,得到所述第i+1个模型。

42、在一种可能的实现方式中,所述获取单元,用于:

43、获取训练好的多个神经网络模型;

44、对所述多个神经网络模型分别进行预测结果检测,得到所述多个神经网络模型中每个神经网络模型的检测指标值;

45、将所述检测指标值满足预设条件的神经网络模型确定为所述待压缩网络模型。

46、一方面,本技术实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:

47、所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;

48、所述处理器用于根据所述计算机程序中的指令执行前述任一方面所述的方法。

49、一方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序当被处理器执行时使所述处理器执行前述任一方面所述的方法。

50、一方面,本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一方面所述的方法。

51、由上述技术方案可以看出,在训练得到神经网络模型后,由于神经网络模型可能具有比较复杂的结构,以保证神经网络模型具有更好的性能,因此,可以将训练得到的神经网络模型作为待压缩网络模型,从而对待压缩网络模型进行压缩。在对待压缩网络模型进行压缩时,由于待压缩网络模型可能具有多个参数维度的参数,故可以从待压缩网络模型的多个参数维度依次进行压缩。在对待压缩网络模型,从待压缩网络模型的多个参数维度依次进行压缩的过程中,可以将前一次压缩得到的模型作为后一次压缩的基础,即针对任一次压缩例如第i+1次压缩,第i+1次压缩为从待压缩网络模型的第i+1个参数维度对第i个模型进行压缩,得到第i+1个模型,i=0、1、2、……、n-1,n为多个参数维度的数量,n为大于1的正整数;当i=0时,第i个模型是待压缩网络模型,当i大于0时,第i个模型是从待压缩网络模型的第i个参数维度进行压缩得到的。在完成从待压缩网络模型的第n个参数维度对第n-1个模型进行压缩后,基于第n次压缩得到的第n个模型确定压缩后的网络模型。由于从每个参数维度进行压缩是依次进行的,并且后一次压缩是在前一次压缩得到的模型的基础上进行的,因此,待压缩网络模型的模型压缩率将是多个参数维度的模型压缩率的叠加,从而提高待压缩网络模型的模型压缩率,提高其在硬件平台的应用效果。

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