一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-10-23 00:09:00 来源:中国专利 TAG:计算机 神经网络 装置 可读 模型


1.本技术涉及计算机技术领域,特别涉及一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,神经网络模型的应用越来越广泛,如transformer翻译模型,transformer翻译模型包括一个编码器和一个解码器,编码器和解码放分别包括一个嵌入层和6个同结构网络层,即编码器中包括6个编码层,解码器中包括6个解码层,每个编码层或解码层均包含一个自注意力层和前馈网络层,6个编码层之间串行连接,6个解码层之间串行连接。
3.transformer翻译模型中参数量主要集中在嵌入层,为提高翻译模型的性能,嵌入层中的词表大小大多数为数万级,随着词表大小的增大,参数量也随之线性增加,同时前馈网络层是由两个线性层组成,采用了瓶颈型的网络结构,transformer翻译模型中的前馈网络层有2500万的参数量,因此transformer翻译模型中的参数量是巨大的,同时也存在着大量冗余,致使transformer翻译模型的体积庞大。
4.因此,如何有效压缩transformer翻译模型的模型体积就成为技术人员亟待解决的问题。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
6.根据本技术实施例的第一方面,提供了一种神经网络模型的压缩方法,包括:
7.获取神经网络模型的嵌入层中的参数矩阵;
8.接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
9.对所述高阶张量进行分解,获得所述高阶张量的分解结果;
10.根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
11.可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层和第二嵌入层;
12.获取神经网络模型的嵌入层中的参数矩阵,包括:
13.获取第一嵌入层和/或第二嵌入层中的参数矩阵。
14.可选的,所述升阶指令包括升阶值;
15.根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
16.根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
17.可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应
维度的高阶张量,包括:
18.根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
19.根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
20.根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
21.可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
22.通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维。
23.可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
24.通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
25.根据本技术实施例的第二方面,提供了一种神经网络模型的压缩方法,包括:
26.获取神经网络模型的前馈网络层中的参数矩阵;
27.接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
28.对所述高阶张量进行分解,获得所述高阶张量的分解结果;
29.根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
30.可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层;
31.获取神经网络模型的前馈网络层中的参数矩阵,包括:
32.获取至少一个所述前馈网络层中的参数矩阵。
33.可选的,所述升阶指令包括升阶值;
34.根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
35.根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
36.可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:
37.根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
38.根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
39.根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
40.可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
41.通过连式分解法对所述高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
42.可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
43.通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
44.根据本技术实施例的第三方面,提供了一种神经网络模型的压缩方法,包括:
45.获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
46.接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
47.对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
48.根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
49.可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,第一嵌入层与6个编码层依次连接,第二嵌入层与6个解码层依次连接,每个所述编码层和每个所述解码层各包括一个前馈网络层;
50.获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵,包括:
51.获取第一嵌入层和/或第二嵌入层中的第一参数矩阵;
52.获取至少一个所述前馈网络层中的第二参数矩阵。
53.可选的,所述升阶指令包括升阶值;
54.根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量,包括:
55.根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应的第一高阶张量;
56.根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应的第二高阶张量。
57.可选的,根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应维度的第一高阶张量,包括:
58.根据所述升阶值对所述第一参数矩阵的行做分解,获得多个第一行参数的连续乘积,其中,所述第一行参数的个数与所述升阶值对应;
59.根据所述升阶值对所述第一参数矩阵的列做分解,获得多个第一列参数的连续乘积,其中,所述第一列参数的个数与所述升阶值对应;
60.根据所述第一行参数和所述第一列参数生成第一高阶张量,其中,所述第一高阶张量的维度与所述升阶值对应,所述第一高阶张量的每个维度的大小由对应的第一行参数和第一列参数确定。
61.可选的,根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应维度的第二高阶张量,包括:
62.根据所述升阶值对所述第二参数矩阵的行做分解,获得多个第二行参数的连续乘积,其中,所述第二行参数的个数与所述升阶值对应;
63.根据所述升阶值对所述第二参数矩阵的列做分解,获得多个第二列参数的连续乘
积,其中,所述第二列参数的个数与所述升阶值对应;
64.根据所述第二行参数和所述第二列参数生成第二高阶张量,其中,所述第二高阶张量的维度与所述升阶值对应,所述第二高阶张量的每个维度的大小由对应的第二行参数和第二列参数确定。
65.可选的,对所述第一高阶张量进行分解获得第一分解结果,包括:
66.通过连式分解法对所述第一高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
67.可选的,对所述第二高阶张量进行分解获得第二分解结果,包括:
68.通过去皮分解法对所述第二高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
69.根据本技术实施例的第四方面,提供了一种神经网络模型的压缩装置,包括:
70.第一获取模块,被配置为获取神经网络模型的嵌入层中的参数矩阵;
71.第一升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
72.第一分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
73.第一更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
74.根据本技术实施例的第五方面,提供了一种神经网络模型的压缩装置,包括:
75.第二获取模块,被配置为获取神经网络模型的前馈网络层中的参数矩阵;
76.第二升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
77.第二分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
78.第二更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
79.根据本技术实施例的第六方面,提供了一种神经网络模型的压缩装置,包括:
80.第三获取模块,被配置为获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
81.第三升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
82.第三分解模块,被配置为对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
83.第三更新模块,被配置为根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
84.根据本技术实施例的第七方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述神经网络模型的压缩方法的步骤。
85.根据本技术实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述神经网络模型的压缩方法的步骤。
86.根据本技术实施例的第九方面,提供了一种芯片,其存储有计算机指令,该指令被芯片执行时实现所述神经网络模型的压缩方法的步骤。
87.本技术实施例中,利用张量分解的方法对神经网络模型中的参数进行压缩,先将参数矩阵进行升阶处理,获得高阶张量,再通过张量分解技术有效的减少了嵌入层和/或前馈网络层中的参数量,经过试验得知,对嵌入层中的高阶张量做连式分解,对前馈网络层中的高阶张量做去皮分解,能在保持模型性能的基础上有效地减少模型的参数量,显著减小了模型的体积。
附图说明
88.图1是本技术实施例提供的计算设备的结构框图;
89.图2是本技术第一实施例提供的神经网络模型的压缩方法的流程图;
90.图3是本技术第二实施例提供的神经网络模型的压缩方法的流程图;
91.图4是本技术第三实施例提供的神经网络模型的压缩方法的流程图;
92.图5是本技术实施例提供的神经网络模型的压缩装置的结构示意图;
93.图6是本技术实施例提供的神经网络模型的压缩装置的结构示意图;
94.图7是本技术实施例提供的神经网络模型的压缩装置的结构示意图。
具体实施方式
95.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
96.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
97.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
98.首先,对本发明一个或多个实施例涉及的名词术语进行解释。
99.transformer:一种翻译模型,用自注意力模型的结构代替了长短期记忆模型,在翻译任务上取得了更好的成绩,包括编码器和解码器。
100.嵌入层:位于网络模型中的输入层,用于对输入的文本数据进行嵌入处理并输出文本向量;对输入的图像数据进行嵌入处理并输出图像特征。
101.参数矩阵:描述网络参数的矩阵,以矩阵形式表示的模型参数称为参数矩阵,参数
矩阵中的每一个元素,都有固定的意义。
102.升阶指令:用以指示将网络参数升阶的指令。
103.升阶处理:将低阶参数根据升阶指令升阶为高阶张量的操作。
104.高阶张量:三阶及以上的张量称之为高阶张量。
105.压缩神经网络模型:被压缩处理过的神经网络模型。
106.行参数:参数矩阵的行数经过分解后获得多个参数的乘积,每个参数被称为行参数,如参数矩阵有120行,分解为2*3*4*5,则2、3、4、5被称为行参数。
107.列参数:参数矩阵的列数经过分解后获得多个参数的乘积,每个参数被称为行参数,如参数矩阵有120列,分解为2*3*4*5,则2、3、4、5被称为列参数。
108.连式分解法:一种张量分解方法,将高维张量分解为多个三维张量的乘积(首尾张量为二维)。
109.去皮分解法:一种张量分解方法,将高维张量分解成一个核张量与每一维矩阵的乘积。
110.前馈网络层:一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。
111.第一参数矩阵:嵌入层中的参数矩阵。
112.第二参数矩阵:前馈网络层中的参数矩阵。
113.第一高阶张量:第一参数矩阵经过升阶处理后获得的高阶张量。
114.第二高阶张量:第二参数矩阵经过升阶处理后获得的高阶张量。
115.第一分解结果:第一高阶张量经过张量分解之后获得的分解结果。
116.第二分解结果:第二高阶张量经过张量分解之后获得的分解结果。
117.第一行参数:第一参数矩阵对应的行参数。
118.第一列参数:第一参数矩阵对应的列参数。
119.第二行参数:第二参数矩阵对应的行参数。
120.第二列参数:第二参数矩阵对应的列参数。
121.在本技术中,提供了一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
122.图1示出了根据本技术一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
123.计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
124.在本技术的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部
件。
125.计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
126.其中,处理器120可以执行图2所示神经网络模型的压缩方法中的步骤。图2示出了根据本技术第一实施例的神经网络模型的压缩方法的流程图,本实施例以transformer语句翻译模型为例,所述transformer语句翻译模型包括第一嵌入层、第二嵌入层。本实施例提供的神经网络模型的压缩方法适用于任意一个嵌入层,对于任意一个嵌入层,神经网络模型的压缩方法包括步骤202至步骤208。
127.步骤202:获取神经网络模型的嵌入层中的参数矩阵。
128.嵌入层位于神经网络模型中的输入层,用于对输入的文本数据进行嵌入处理并输出文本向量;对输入的图像数据进行嵌入处理并输出图像特征。
129.参数矩阵为描述网络参数的矩阵,以矩阵形式表示的模型参数称为参数矩阵,参数矩阵中的每一个元素,都有固定的意义,参数矩阵可以表示为m*n,其中m为词表大小,n为嵌入层的维度。
130.获取神经网络模型的嵌入层中的参数矩阵即获取m*n的参数矩阵,目的是为了压缩嵌入层中的参数,减少神经网络模型的体积。
131.在本技术提供的第一实施例中,第一参数矩阵为120*48,其中120为词表大小,48为当前嵌入层的维度。
132.步骤204:接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
133.升阶指令是用以指示将网络参数升阶的指令,三阶及以上的张量称之为高阶张量,升阶指令中包括升阶值p,根据升阶指令中包括升阶值p,将第一参数矩阵升阶为p阶的高阶张量。
134.可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
135.参数矩阵的行数经过分解后获得多个参数的乘积,每个参数被称为行参数;参数矩阵的列数经过分解后获得多个参数的乘积,每个参数被称为行参数。
136.对于参数矩阵m*n,根据升阶值p,对第一参数矩阵的行m做分解,将m分解为即p个行参数i1、i2……
i
p
的乘积,对第一参数矩阵的列n做分解,将n分解为即p个列参数j1、j2……
j
p
的乘积,将参数矩阵m*n可转化为p解张量,即
其中,r表示实数空间,本技术中高阶张量的维度用对应位置的行参数与列参数的乘积表示,可以在还原第一参数矩阵时可以快速准确的还原原始的第一参数矩阵。
137.在本技术提供的第一实施例中,接收升阶指令,升阶指令中的升阶值为3,将参数矩阵的行120分解为4*5*6,将参数矩阵的列48分解为4*3*4,对参数矩阵120*48进行升阶处理可以获得高阶张量r
(4*4)*(5*3)*(6*4)

138.步骤206:对所述高阶张量进行分解,获得所述高阶张量的分解结果。
139.张量分解的方法有很多,如cp分解法、去皮分解法、连式分解法、环式分解法等等,在实际应用中,可以根据实际情况选择张量分解的方法。如可以通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维;也可以通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
140.在本技术提供的第一实施例中,选择连式分解法对嵌入层中的高阶张量进行分解,高阶张量的阶数为p,对于张量中任何一个元素,其连式分解的分解公式如公式1所示:
[0141][0142]
其中,k为元素的索引,为tt-cores,中的最小值被称为tt-ranks。
[0143]
接收预设的根据预设的对第一高阶张量进行分解,分解公式如下公式2所示:
[0144][0145]
在本技术提供的第一实施例中,升阶指令中的升阶值为p=3,预设的为(16,8),则第一高阶张量r
(4*4)*(5*3)*(6*4)
可以分解为如下公式3所示:
[0146][0147]
其中g1∈r
4*4*16
,g2∈r
16*5*3*8
,g3∈r
8*6*4

[0148]
步骤208:根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
[0149]
分解结果为高阶张量经过分解之后获得的结果,根据所述分解结果更新所述神经网络模型的嵌入层中的参数矩阵获得压缩神经网络模型,使得所述压缩翻译模型在保持性能的基础上,有效的减少了嵌入层中的参数量,减小了模型体积。
[0150]
在本技术提供的第一实施例中,分解结果包括预设的tt-ranks=(16,8)、g1∈r
4*4*16
、g2∈r
16*5*3*8
和g3∈r
8*6*4
,用分解结果更新嵌入层中的参数矩阵120*48,获得压缩翻译模型。
[0151]
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
[0152]
利用所述压缩神经网络模型进行模型训练,在实际应用中,可以根据保存的分解结果将神经网络模型的嵌入层中的参数矩阵还原,即还原嵌入层中的词表大小和嵌入层维
度,保持神经网络模型的性能。
[0153]
在本技术提供的第一实施例中,根据tt-ranks=(16,8)、g1∈r
4*4*16
、g2∈r
16*5*3*8
和g3∈r
8*6*4
还原出嵌入层中最初的二维参数矩阵120*48,并用该二维参数矩阵参与神经网络模型的训练。
[0154]
本技术第一实施例提供的神经网络模型的压缩方法,适用于神经网络模型的嵌入层,通过将嵌入层中的参数升阶为高阶张量,再基于张量分解的技术可以对嵌入层进行有效地压缩,经过试验证明,使用连式分解法对嵌入层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标bleu值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
[0155]
图3示出了根据本技术第二实施例的神经网络模型的压缩方法的流程图,本实施例以transformer翻译模型为例,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层。本实施例提供的神经网络模型的压缩方法适用于任意一个前馈网络层,对于任意一个前馈网络层,神经网络模型的压缩方法包括步骤302至步骤308。
[0156]
步骤302:获取神经网络模型的前馈网络层中的参数矩阵。
[0157]
前馈网络层是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。
[0158]
前馈网络层由两个线性层及relu层组成,如下公式4所示:
[0159]
ffn(x)=max(0,xw1 b1)w2 b2ꢀꢀꢀ
(4)
[0160]
其中,w1和w2均为前馈网络层中的参数矩阵,b1、b2为偏置向量,对于任意一个参数矩阵可以表示为m*n,其中,m代表当前训练句子的长度,n代表特征维度。
[0161]
在本技术提供的第二实施例中,参数矩阵为48*512,其中48为当前训练句子的长度,512为特征维度。
[0162]
步骤304:接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
[0163]
步骤304与上述步骤204方法一致,关于步骤304的具体解释,参见前述第一实施例中的步骤204的详细内容,在此就不再赘述。
[0164]
在本技术提供的第二实施例中,升阶指令中的升阶值为3,将第二参数矩阵的行48分解为3*4*4,将第二参数矩阵的列512分解为8*8*8,对第二参数矩阵48*512进行升阶处理获得第二高阶张量r
(3*8)*(4*8)*(4*8)

[0165]
步骤306:对所述高阶张量进行分解,获得所述高阶张量的分解结果。
[0166]
张量分解的方法有很多,如cp分解法、去皮分解法、连式分解法、环式分解法等等,在实际应用中,可以根据实际情况选择张量分解的方法。如可以通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维;也可以通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
[0167]
在本技术提供的第二实施例中,选择去皮分解法对前馈网络层中的第二高阶张量进行分解。以第二高阶张量r
p*q*r
为三阶张量为例,接收预设的核张量g∈r
i*j*z
,去皮分解的分解公式如下述公式5所示:
[0168][0169]
其中,a、b和c为因子矩阵,g为预设的核张量。对于张量中的任意一个元素可以表示为:
[0170]
在本技术提供的第二实施例中,第二高阶张量为r
(3*8)*(4*8)*(4*8)
,接收预设的核张量g∈r
2*2*2
,将第二高阶张量分解为a、b、c三个因子矩阵,其中a∈r
3*8*2
,b∈r
4*8*2
,c∈r
4*8*2

[0171]
步骤308:根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
[0172]
分解结果为高阶张量经过分解之后获得的结果,根据所述分解结果更新所述神经网络模型的前馈网络层中的参数矩阵获得压缩神经网络模型,使得所述压缩翻译模型在保持性能的基础上,有效的减少了前馈网络层中的参数量,减小了模型体积。
[0173]
在本技术提供的实施例中,第二分解结果包括核张量g∈r
2*2*2
,和三个因子矩阵a∈r
3*8*2
,b∈r
4*8*2
,c∈r
4*8*2
,用第二分解结果更新transformer翻译模型中的第二参数矩阵48*512,获得压缩翻译模型,所述压缩翻译模型在保持性能的基础上,有效地减少了前馈网络层中的参数量,减小了模型体积。
[0174]
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
[0175]
利用所述压缩神经网络模型进行模型训练,在实际应用中,可以根据保存的分解结果将神经网络模型的前馈网络层中的参数矩阵还原,即还原前馈网络层中的句子的长度和特征维度,保持神经网络模型的性能。
[0176]
本技术第二实施例提供的神经网络模型的压缩方法,适用于神经网络模型的前馈网络层,通过将前馈网络层中的参数升阶为高阶张量,再基于张量分解的技术可以对前馈网络层进行有效地压缩,经过试验证明,使用去皮分解法对前馈网络层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标bleu值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
[0177]
图4示出了根据本技术第三实施例的神经网络模型的压缩方法的流程图,本实施例以transformer翻译模型为例,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,其中,所述第一嵌入层与6个编码层依次串行连接,所述第二嵌入层与6个解码层依次串行连接,每个嵌入层中包括当前嵌入层对应的第一参数矩阵,第一参数矩阵即为嵌入层中的参数矩阵,每个编码层和每个解码层中均包括一个前馈网络层,即共计12个前馈网络层,每个前馈网络层中包括当前前馈网络层对应的第二参数矩阵,第二参数矩阵即为前馈网络层中的参数矩阵,本实施例提供的神经网络模型的压缩方法适用于任意一个嵌入层和前馈网络层,对于任意一个嵌入层和前馈网络层,神经网络模型的压缩方法包括步骤402至步骤408。
[0178]
步骤402:获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵。
[0179]
第一参数矩阵为嵌入层中的参数矩阵,第二参数矩阵为前馈网络层中的参数矩阵。
[0180]
获取嵌入层中的第一参数矩阵的步骤与上述步骤202方法一致,关于获取嵌入层
中的第一参数矩阵的具体解释,参见前述第一实施例中的步骤202的详细内容,在此就不再赘述。
[0181]
获取前馈网络层中的第二参数矩阵的步骤与上述步骤302方法一致,关于获取前馈网络层中的第二参数矩阵的具体解释,参见前述第二实施例中的步骤302的详细内容,在此就不再赘述。
[0182]
步骤404:接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量。
[0183]
在实际应用中,升阶指令中可以包括一个升阶值p,也可以包括针对第一参数矩阵的升阶值p1和针对第二参数矩阵的升阶值p2,在本技术中不对此做限定。
[0184]
根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量的步骤与上述步骤204方法一致,关于根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量的具体解释,参见前述第一实施例中的步骤204的详细内容,在此就不再赘述。
[0185]
根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量的步骤与上述步骤304方法一致,关于根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量的具体解释,参见前述第二实施例中的步骤304的详细内容,在此就不再赘述。
[0186]
步骤406:对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果。
[0187]
对所述第一高阶张量进行分解获得第一分解结果的步骤与上述步骤206方法一致,关于对所述第一高阶张量进行分解获得第一分解结果的具体解释,参见前述第一实施例中的步骤206的详细内容,在此就不再赘述。
[0188]
对所述第二高阶张量进行分解获得第二分解结果的步骤与上述步骤306方法一致,关于对所述第二高阶张量进行分解获得第二分解结果的具体解释,参见前述第二实施例中的步骤306详细内容,在此就不再赘述。
[0189]
步骤408:根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
[0190]
根据所述第一分解结果更新所述第一参数矩阵的步骤与上述步骤208方法一致,关于根据所述第一分解结果更新所述第一参数矩阵的具体解释,参见前述第一实施例中的步骤208的详细内容,在此就不再赘述。
[0191]
根据所述第二分解结果更新所述第二参数矩阵的步骤与上述步骤308方法一致,关于根据所述第二分解结果更新所述第二参数矩阵的具体解释,参见前述第二实施例中的步骤308详细内容,在此就不再赘述。
[0192]
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
[0193]
利用所述压缩神经网络模型进行模型训练,在实际应用中,根据保存的第一分解结果将神经网络模型的嵌入层中的参数矩阵还原,即还原嵌入层中的词表大小和嵌入层维度;根据保存的第二分解结果将神经网络模型的前馈网络层中的参数矩阵还原,即还原前馈网络层中的句子的长度和特征维度,保持神经网络模型的性能。
[0194]
本技术第三实施例提供的神经网络模型的压缩方法,通过张量分解技术有效的减少了嵌入层及前馈网络层中的参数量,嵌入层参数量巨大,存在大量的冗余,对嵌入层使用连式分解法,在保持模型性能的基础上有效地减少了模型嵌入层的参数量,同时对前馈网络层中的参数进行去皮分解,减少了模型前馈网络层洪的参数量,在保持模型性能的同时显著的减小了神经网络模型的体积,实验证明,对嵌入层中的高阶张量使用连式分解法,对前馈网络层中的高阶张量使用去皮分解法,在应用中的评价指标bleu值更高,在保持神经网络模型性能的同时能显著的减小神经网络模型的体积。
[0195]
与上述方法实施例相对应,本技术还提供了神经网络模型的压缩装置实施例,图5示出了本技术一个实施例的神经网络模型的压缩装置的结构示意图。
[0196]
如图5所示,该装置包括:
[0197]
第一获取模块502,被配置为获取神经网络模型的嵌入层中的参数矩阵。
[0198]
第一升阶模块504,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
[0199]
第一分解模块506,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果。
[0200]
第一更新模块508,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
[0201]
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层和第二嵌入层;
[0202]
所述第一获取模块502,进一步被配置为获取第一嵌入层和/或第二嵌入层中的参数矩阵。
[0203]
可选的,所述升阶指令包括升阶值;
[0204]
所述第一升阶模块504,进一步被配置为根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
[0205]
可选的,所述第一升阶模块504,进一步被配置为根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
[0206]
可选的,所述第一分解模块506,进一步被配置为通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维。
[0207]
可选的,所述第一分解模块506,进一步被配置为通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
[0208]
本技术提供的神经网络模型的压缩装置,适用于神经网络模型的嵌入层,通过将嵌入层中的参数升阶为高阶张量,再基于张量分解的技术可以对嵌入层进行有效地压缩,经过试验证明,使用连式分解法对嵌入层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标bleu值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型
的体积。
[0209]
与上述方法实施例相对应,本技术还提供了神经网络模型的压缩装置实施例,图6示出了本技术一个实施例的神经网络模型的压缩装置的结构示意图。
[0210]
如图6所示,该装置包括:
[0211]
第二获取模块602,被配置为获取神经网络模型的前馈网络层中的参数矩阵。
[0212]
第二升阶模块604,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
[0213]
第二分解模块606,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果。
[0214]
第二更新模块608,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
[0215]
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层;
[0216]
所述第二获取模块602,进一步被配置为获取至少一个所述前馈网络层中的参数矩阵。
[0217]
可选的,所述升阶指令包括升阶值;
[0218]
所述第二升阶模块604,被配置为根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
[0219]
可选的,所述第二升阶模块604,进一步被配置为根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
[0220]
可选的,所述第二分解模块606,进一步被配置为通过连式分解法对所述高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
[0221]
可选的,所述第二分解模块606,进一步被配置为通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
[0222]
本技术提供的神经网络模型的压缩装置,适用于神经网络模型的前馈网络层,通过将前馈网络层中的参数升阶为高阶张量,再基于张量分解的技术可以对前馈网络层进行有效地压缩,经过试验证明,使用去皮分解法对前馈网络层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标bleu值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
[0223]
与上述方法实施例相对应,本技术还提供了神经网络模型的压缩装置实施例,图7示出了本技术一个实施例的神经网络模型的压缩装置的结构示意图。
[0224]
如图7所示,该装置包括:
[0225]
第三获取模块702,被配置为获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵。
[0226]
第三升阶模块704,被配置为接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量。
[0227]
第三分解模块706,被配置为对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果。
[0228]
第三更新模块708,被配置为根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
[0229]
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,第一嵌入层与6个编码层依次连接,第二嵌入层与6个解码层依次连接,每个所述编码层和每个所述解码层各包括一个前馈网络层;
[0230]
所述第三获取模块702,进一步被配置为获取第一嵌入层和/或第二嵌入层中的第一参数矩阵;获取至少一个所述前馈网络层中的第二参数矩阵。
[0231]
可选的,所述升阶指令包括升阶值;
[0232]
所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应的第一高阶张量;根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应的第二高阶张量。
[0233]
可选的,所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第一参数矩阵的行做分解,获得多个第一行参数的连续乘积,其中,所述第一行参数的个数与所述升阶值对应;根据所述升阶值对所述第一参数矩阵的列做分解,获得多个第一列参数的连续乘积,其中,所述第一列参数的个数与所述升阶值对应;根据所述第一行参数和所述第一列参数生成第一高阶张量,其中,所述第一高阶张量的维度与所述升阶值对应,所述第一高阶张量的每个维度的大小由对应的第一行参数和第一列参数确定。
[0234]
可选的,所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第二参数矩阵的行做分解,获得多个第二行参数的连续乘积,其中,所述第二行参数的个数与所述升阶值对应;根据所述升阶值对所述第二参数矩阵的列做分解,获得多个第二列参数的连续乘积,其中,所述第二列参数的个数与所述升阶值对应;根据所述第二行参数和所述第二列参数生成第二高阶张量,其中,所述第二高阶张量的维度与所述升阶值对应,所述第二高阶张量的每个维度的大小由对应的第二行参数和第二列参数确定。
[0235]
可选的,所述第三分解模块706,进一步被配置为通过连式分解法对所述第一高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
[0236]
可选的,所述第三分解模块706,进一步被配置为通过去皮分解法对所述第二高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。本技术实施例提供的神经网络模型的压缩装置,通过张量分解技术有效的减少了嵌入层及前馈网络层中的参数量,嵌入层参数量巨大,存在大量的冗余,对嵌入层使用连式分解法,在保持模型性能的基础上有效地减少了模型嵌入层的参数量,同时对前馈网络层中的参数进行去皮分解,减少了模型前馈网络层洪的参数量,在保持模型性能的同时显著的减小了神经网络模型的体积,实验证明,对嵌入层中的高阶张量使用连式分解法,对前馈网络层中的高阶张量使用去皮分解法,在应
用中的评价指标bleu值更高,在保持神经网络模型性能的同时能显著的减小神经网络模型的体积。
[0237]
本技术一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的神经网络模型的压缩方法的步骤。
[0238]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述神经网络模型的压缩方法的步骤。
[0239]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的神经网络模型的压缩方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述神经网络模型的压缩方法的技术方案的描述。
[0240]
本技术实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如前所述神经网络模型的压缩方法的步骤。
[0241]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0242]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0243]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0244]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0245]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜