掌桥专利:专业的专利平台
掌桥专利
首页

神经网络训练的方法、神经网络的压缩方法以及相关设备

文献发布时间:2023-06-19 09:27:35


神经网络训练的方法、神经网络的压缩方法以及相关设备

技术领域

本申请涉及人工智能领域,尤其涉及一种神经网络训练的方法、神经网络的压缩方法以及相关设备。

背景技术

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。目前,基于深度学习(deep learning)的神经网络进行文本处理是人工智能常见的一个应用方式。

近两年来,基于转换器(Transformer)结构的文本处理模型在自然语言处理(natural language processing,NLP)领域中已经成为了一种新的范式,相比较早期的模型,Transformer结构的文本处理模型的语义特征提取能力更强,具备更长距离的特征捕获能力。

基于Transformer结构的文本处理模型通常比较大,从而导致占据的存储空间较大,且推理速度较慢,因此,一种神经网络的压缩方案亟待推出。

发明内容

本申请实施例提供了一种神经网络训练的方法、神经网络的压缩方法以及相关设备,提供了一种用于对第一特征提取网络执行剪枝操作的神经网络的训练方法,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能。

为解决上述技术问题,本申请实施例提供以下技术方案:

第一方面,本申请实施例提供一种神经网络的训练方法,可用于人工智能领域中。方法可以包括:训练设备将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息,N为大于1的整数;根据N个第一特征信息,计算第一分布信息,第一分布信息用于指示N个第一特征信息的数据分布规律。训练设备通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络;将第一训练数据输入剪枝后的第一特征提取网络,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息,根据N个第二特征信息,计算第二分布信息,第二分布信息用于指示N个第二特征信息的数据分布规律。训练设备根据第一损失函数,对第一神经网络执行训练操作,得到第二神经网络;其中,第二神经网络为执行过训练操作的第一神经网络,第一损失函数指示第一分布信息与第二分布信息之间的相似度,也即迭代训练的目标为拉近第一分布信息与第二分布信息之间的相似度,第一分布信息与第二分布信息之间的相似度用于体现第一分布信息与第二分布信息之间的差异程度,也可以表示为第一分布信息与第二分布信息之间的距离,前述距离可以为KL散度距离、交叉熵距离、欧式距离、马氏距离、余弦距离或其他类型的距离。需要说明的是,在对第一神经网络进行训练的过程中,不修改第一特征提取网络的权重参数。

本实现方式中,通过上述方式,提供了一种用于对第一特征提取网络执行剪枝操作的神经网络的训练方法,执行过训练操作第一神经网络能够用于对第一特征提取网络进行剪枝,也即提供了一种神经网络的压缩方案;此外,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能;且第一特征提取网络不仅可以为Transform结构的特征提取网络,还可以为循环神经网络、卷积神经网络等神经网络的特征提取网络,扩展了本方案的应用场景。

在第一方面的一种可能实现方式中,第一分布信息包括N个第一特征信息中任意两个第一特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;第二分布信息包括N个第二特征信息中任意两个第二特征信息之间的距离的值,以指示N个第二特征信息的数据分布规律。也即N个第一特征信息中一个特征信息的分布规律为通过该一个特征信息与N个第一特征信息中每个特征信息之间的距离的值来体现,N个第二特征信息中一个特征信息的分布规律为通过该一个特征信息与N个第二特征信息中每个特征信息之间的距离的值来体现。

本实现方式中,通过计算N个特征信息中任意两个特征信息之间的距离,来确定N个特征信息的数据分布规律,提供了N个特征信息的数据分布规律的一种实现方式,且操作简单,易于实现。

在第一方面的一种可能实现方式中,N个第一特征信息包括第三特征信息和第四特征信息,第三特征信息和第四特征信息均为N个第一特征信息中的任意一个特征信息。训练设备根据N个第一特征信息,计算第一分布信息,可以包括:训练设备直接计算第三特征信息和第四特征信息之间的余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离或交叉熵距离,并确定为第三特征信息和第四特征信息之间的距离。

在第一方面的一种可能实现方式中,N个第一特征信息包括第三特征信息,第三特征信息为N个第一特征信息中的任意一个特征信息。则训练设备根据N个第一特征信息,计算第一分布信息,可以包括:训练设备计算第三特征信息与N个第一特征信息中每个第一特征信息的第一距离,得到的第三特征信息与所有第一特征信息之间的第一距离的和,前述第一距离指的是余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离或交叉熵距离。训练设备计算第三特征信息和第四特征信息之间的第二距离,前述第二距离指的是余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离或交叉熵距离。训练设备将第二距离与所有第一距离之间的和的比值确定为第三特征信息与第四特征信息之间的距离。

在第一方面的一种可能实现方式中,第一分布信息包括N个第一特征信息中每个特征信息与预设特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;第二分布信息包括N个第二特征信息中每个特征信息与预设特征信息之间的距离的值,以指示N个第二特征信息的数据分布规律。其中,由于第一特征信息与第二特征信息的形状可以相同,预设特征信息与第一特征信息以及第二特征信息的形状相同,预设特征信息和第一特征信息的形状相同指的是预设特征信息和第一特征信息均为M维张量,且第一特征信息的M维中的第一维和第二特征信息的M维中的第二维的尺寸相同,M为大于或等于1的整数,第一维为第一特征信息的M维中的任一维,第二维为第二特征信息的M维中与第一维相同的维度。作为示例,例如第一特征信息或第二特征信息为包括m个元素的向量,则预设特征信息可以为包括m个0的向量,或者,预设特征信息为包括m个1的向量。

在第一方面的一种可能实现方式中,第一特征提取网络为Transformer结构的神经网络中的特征提取网络,第一特征提取网络中包括至少两个注意力头。训练设备通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络,包括:训练设备通过第一神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,并根据进行剪枝后仍旧保留下的至少一个注意力头,构建剪枝后的第一特征提取网络。剪枝后的第一特征提取网络包括的注意力头的数量少于第一特征提取网络包括的注意力头的数量。

本实现方式中,技术人员在研究中发现,Transformer结构的神经网络中的部分注意力头是冗余的,或者,Transformer结构的神经网络中的部分注意力头的重要性较低,去掉之后对第一特征提取网络的性能的影响不大,所以将第一特征提取网络选取为Transformer结构的神经网络的特征提取网络,对第一特征提取网络中的注意力头进行剪枝,从而尽可能的提高剪枝后的第一特征提取网络的性能。

在第一方面的一种可能实现方式中,训练设备通过所第一神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,包括:训练设备通过第一神经网络,生成至少两个注意力头中每个注意力头的第一评分,根据与至少两个注意力头对应的至少两个第一评分,对至少两个注意力头执行剪枝操作。其中,一个注意力头的第一评分代表该一个注意力头的重要程度,用于指示一个注意力头是否被剪枝,第一特征提取网络包括的多个注意力头中重要程度高的注意力头将会被保留,重要程度低的注意力头将会被剪枝。

本实现方式中,通过第一神经网络生成每个注意力头的第一评分,进而根据每个注意力头的评分决定该注意力头是否会被剪枝,操作简单,易于实现。

在第一方面的一种可能实现方式中,第一评分的取值为第一预设值或第二预设值,第一预设值和第二预设值的取值不同。第一注意力头为至少两个注意力头中任一个注意力头,当第一注意力头的取值为第一预设值时,第一注意力会被保留;当第一注意力头的取值为第二预设值时,第一注意力头会被剪枝。

在第一方面的一种可能实现方式中,训练设备通过第一神经网络,生成至少两个注意力头中每个注意力头的第一评分,包括:训练设备将至少两个注意力头中每个注意力头输入第一神经网络,得到第一神经网络输出的每个注意力头的第二评分,第二评分可以为连续的评分。具体的,针对至少两个注意力头中第一注意力头的第二评分的生成过程。训练设备根据自注意力机制,将与第一注意力头对应的注意力矩阵输入第一神经网络中,也即根据与第一注意力头对应的一套注意力矩阵,执行自注意力运算,进而将运算结果输入第一神经网络中,得到第一神经网络输出的第一注意力头的第二评分。训练设备对第二评分进行离散化处理,得到第一评分,离散化处理的过程为可微分的。

本实现方式中,生成每个注意力头的第一评分的过程为可微分的,则在利用第一损失函数,反向更新第一神经网络的权重参数的过程也是连续的,从而使第一神经网络的权重参数的更新过程更为严谨,以提高第一神经网络的训练效率,也有利于得到正确率更高的第一神经网络。

在第一方面的一种可能实现方式中,第一训练数据包括N个句子,一个第一特征信息为N个句子中一个句子的特征信息,一个第二特征信息为N个句子中一个句子的特征信息。或者,第一训练数据为一个句子,一个句子中包括N个词语,一个第一特征信息为N个词语中一个词语的特征信息,一个第二特征信息为N个词语中一个词语的特征信息。

本实现方式中,提供了N个第一特征信息的两种表现形式,提高了本方案的实现灵活性;若一个第一特征信息为N个句子中一个句子的特征信息,则有利于提高训练过程的难度,以提高最后的第一特征提取网络的准确率;若一个第一特征信息为N个词语中一个词语的特征信息,则只需要对一个句子进行特征提取就可以实现对第一神经网络的一次训练,有利于提高第一神经网络的训练过程的效率。

在第一方面的一种可能实现方式中,第一神经网络为以下中的任一种神经网络:卷积神经网络、循环神经网络、残差神经网络或全连接神经网络。本实现方式中,提供了第一神经网络的多种实现方式,提高了本方案的实现灵活性。

在第一方面的一种可能实现方式中,方法还可以包括:训练设备获取最终的剪枝后的第一特征提取网络。具体的,在对第一神经网络进行迭代训练的过程中,当训练设备确定第一损失函数的函数值满足收敛条件后,不会再对第一神经网络进行下一次训练,训练设备可以获取在对第一神经网络进行最后一次训练的过程中,通过第一神经网络(也可以称为第二神经网络)生成的剪枝后的第一特征提取网络(也即在最后一次训练的过程中生成的剪枝后的第一特征提取网络),作为最终的可以输出的剪枝后的第一特征提取网络。

第二方面,本申请实施例提供一种神经网络的压缩方法,其特征在于,方法包括:执行设备获取第一特征提取网络;执行设备通过第二神经网络,对第二特征提取网络进行剪枝,得到剪枝后的第二特征提取网络,第二神经网络为执行过训练操作的神经网络。其中,第二神经网络为根据第一损失函数进行训练得到的,第一损失函数指示第一分布信息与第二分布信息之间的相似度,第一分布信息用于指示N个第一特征信息的数据分布规律,N个第一特征信息为将第一训练数据输入第一特征提取网络后得到的,第二分布信息用于指示N个第二特征信息的数据分布规律,N个第二特征信息为将第一训练数据输入剪枝后的第一特征提取网络后得到的。

在第二方面的一种可能实现方式中,第二神经网络为由训练设备训练得到的,执行设备和训练设备可以为同一个设备。第一特征提取网络和第二特征提取网络的神经网络结构可以完全相同,也即第一特征提取网络和第二特征提取网络包括的神经网络层完全相同。或者,第一特征提取网络和第二特征提取网络的神经网络结构也可以有所不同,在第二特征提取网络与第一特征提取网络均为Transform结构的特征提取网络的情况下,仅需要保证第二特征提取网络的一个多头注意力层中包括的注意力头的个数,与,第一特征提取网络的一个多头注意力层中包括的注意力头的个数相同即可。

在第二方面的一种可能实现方式中,第一分布信息包括N个第一特征信息中任意两个第一特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;第二分布信息包括N个第二特征信息中任意两个第二特征信息之间的距离的值,以指示N个第二特征信息的数据分布规律。

在第二方面的一种可能实现方式中,第二特征提取网络为采用预训练和微调(fine-tune)的方式进行训练,通过第二神经网络,对第二特征提取网络进行剪枝,包括:在对第二特征提取网络进行微调之前,通过第二神经网络,对执行过预训练操作的第二特征提取网络进行剪枝。

本实现方式中,在预训练阶段对第一特征提取网络进行剪枝,不仅能够实现对第一特征提取网络的压缩,以减少第一特征提取网络所占的存储空间,提高第一特征提取网络在推理阶段的效率,也可以提高对第一特征提取网络进行训练时微调阶段的效率,从而提高第一特征提取网络的训练过程的效率。

在第二方面的一种可能实现方式中,第一特征提取网络为Transformer结构的神经网络中的特征提取网络,第一特征提取网络中包括至少两个注意力头。执行设备通过第二神经网络,对第一特征提取网络进行剪枝,得到剪枝后的第二神经网络,第二神经网络为执行过训练操作的神经网络,包括:通过第二神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,得到剪枝后的第一特征提取网络,剪枝后的第一特征提取网络包括的注意力头的数量少于第一特征提取网络包括的注意力头的数量。

在第二方面的一种可能实现方式中,执行设备通过所第二神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,包括:执行设备通过第二神经网络,生成至少两个注意力头中每个注意力头的第一评分,一个注意力头的第一评分用于指示一个注意力头是否被剪枝;根据与至少两个注意力头对应的至少两个第一评分,对至少两个注意力头执行剪枝操作。

在第二方面的一种可能实现方式中,执行设备通过第二神经网络,生成至少两个注意力头中每个注意力头的第一评分,包括:执行设备将至少两个注意力头中每个注意力头输入第二神经网络,得到第二神经网络输出的每个注意力头的第二评分;对第二评分进行离散化处理,得到第一评分,离散化处理的过程为可微分的。

本申请实施例的第二方面还可以执行第一方面的各个可能实现方式中的步骤,对于本申请实施例第二方面以及第二方面的各种可能实现方式的具体实现步骤、名词的含义以及每种可能实现方式所带来的有益效果,均可以参考第一方面中各种可能的实现方式中的描述,此处不再一一赘述。

第三方面,本申请实施例提供一种神经网络的训练装置,可用于人工智能领域中。神经网络的训练装置包括:输入模块,用于将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息,N为大于1的整数;计算模块,用于根据N个第一特征信息,计算第一分布信息,第一分布信息用于指示N个第一特征信息的数据分布规律;剪枝模块,用于通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络;输入模块,还用于将第一训练数据输入剪枝后的第一特征提取网络,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息;计算模块,还用于根据N个第二特征信息,计算第二分布信息,第二分布信息用于指示N个第二特征信息的数据分布规律;训练模块,用于根据第一损失函数,对第一神经网络执行训练操作,得到第二神经网络,第一损失函数指示第一分布信息与第二分布信息之间的相似度。

本申请实施例的第三方面还可以执行第一方面的各个可能实现方式中的步骤,对于本申请实施例第三方面以及第三方面的各种可能实现方式的具体实现步骤,以及每种可能实现方式所带来的有益效果,均可以参考第一方面中各种可能的实现方式中的描述,此处不再一一赘述。

第四方面,本申请实施例提供一种神经网络的压缩装置,可用于人工智能领域中。装置包括:获取模块,用于获取第二特征提取网络;剪枝模块,用于通过第二神经网络,对第二特征提取网络进行剪枝,得到剪枝后的第二特征提取网络;其中,第二神经网络为根据第一损失函数进行训练得到的,第一损失函数指示第一分布信息与第二分布信息之间的相似度,第一分布信息用于指示N个第一特征信息的数据分布规律,N个第一特征信息为将第一训练数据输入第一特征提取网络后得到的,第二分布信息用于指示N个第二特征信息的数据分布规律,N个第二特征信息为将第一训练数据输入剪枝后的第一特征提取网络后得到的。

本申请实施例的第四方面还可以执行第二方面的各个可能实现方式中的步骤,对于本申请实施例第四方面以及第四方面的各种可能实现方式的具体实现步骤,以及每种可能实现方式所带来的有益效果,均可以参考第二方面中各种可能的实现方式中的描述,此处不再一一赘述。

第五方面,本申请实施例提供了一种训练设备,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面所述的神经网络的训练方法。

第六方面,本申请实施例提供了一种执行设备,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第二方面所述的神经网络的压缩方法。

第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的神经网络的训练方法,或者,使得计算机执行上述第二方面所述的神经网络的压缩方法。

第八方面,本申请实施例提供了一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行上述第一方面所述的神经网络的训练方法,或者,执行上述第二方面所述的神经网络的压缩方法。

第九方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所述的神经网络的训练方法,或者,执行上述第二方面所述的神经网络的压缩方法。

第十方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各个方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

附图说明

图1为本申请实施例提供的人工智能主体框架的一种结构示意图;

图2为本申请实施例提供的Transformer结构的神经网络中特征提取网络的一种架构示意图;

图3为本申请实施例提供的神经网络的压缩系统的一种系统架构图;

图4为本申请实施例提供的神经网络的训练方法的一种流程示意图;

图5为本申请实施例提供的神经网络的训练方法中N个第一特征信息的分布情况的两种示意图;

图6为本申请实施例提供的神经网络的训练方法中第一分布信息的一个示意图;

图7为本申请实施例提供的神经网络的训练方法中对注意力头进行剪枝过程的一个示意图;

图8为本申请实施例提供的神经网络的训练方法中第一分布信息和第二分布信息的示意图;

图9为本申请实施例提供的神经网络的训练方法的另一种流程示意图;

图10为本申请实施例提供的神经网络的压缩方法的一种流程示意图;

图11为本申请实施例提供的神经网络的训练装置的一种结构示意图;

图12为本申请实施例提供的神经网络的压缩装置的一种结构示意图;

图13为本申请实施例提供的电子设备的一种结构示意图;

图14为本申请实施例提供的芯片的一种结构示意图。

具体实施方式

本申请实施例提供了一种神经网络训练的方法、神经网络的压缩方法以及相关设备,提供了一种用于对第一特征提取网络执行剪枝操作的神经网络的训练方法,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能。

下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请的说明书和权利要求书及上述附图中的术语“第一”、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片提供,前述智能芯片包括但不限于中央处理器(central processing unit,CPU)、嵌入式神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、专用集成电路(application specific integrated circuit,ASIC)和现场可编程逻辑门阵列(field programmable gate array,FPGA)等硬件加速芯片;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据

基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理

数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别等等。

(5)智能产品及行业应用

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。

本申请实施例可以应用于对人工智能的各种领域中,可以包括自然语言处理领域、图像处理领域和音频处理领域,具体可以应用于需要对各种领域的各种类型神经网络进行压缩的场景中。前述各种类型的神经网络包括但不限于循环神经网络、卷积神经网络、残差神经网络、全连接神经网络和转换器(Transformer)结构的神经网络等,后续实施例中仅为待压缩的神经网络为Transformer结构的神经网络,且应用于自然语言处理领域为例进行介绍,当待压缩的神经网络(也即第一特征提取网络)为其他类型的神经网络时,或者当待压缩的神经网络处理的为其他类型的数据,例如第一特征提取网络为处理图像数据或音频数据时,均可以类推理解,此处不做赘述。为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。

(1)Transformer结构的神经网络

Transformer结构的神经网络可以包括编码器(encoder)部分(也即Transformer结构的神经网络中的特征提取网络)和解码器(decoder)部分,参阅图2,图2为本申请实施例提供的Transformer结构的神经网络中特征提取网络的一种架构示意图。如图2所示,Transformer结构的神经网络中特征提取网络包括嵌入层和至少一个Transformer层,一个Transformer层中包括多头(multi-head)注意力层、求和与归一化(add&norm)层、前馈(feed forward)神经网络层和求和与归一化层,也即待处理文本经过Transformer结构的神经网络中特征提取网络的处理之后,能够得到整个待处理文本的特征信息。该特征信息为待处理文本的一种适合计算机处理的特征信息,可用于文本相似度、文本分类、阅读理解、机器翻译等任务。接下来,结合具体例子对上述嵌入层和多头注意力层进行具体介绍。

嵌入层在获取待处理文本后,可以对待处理文本中各个词进行嵌入处理,以得到各个词的初始特征信息。待处理文本可以为一段文本,也可以为一个句子。文本可以为中文文本,也可以为英文文本,还可以为其他语言文本。

具体的,在一些实施例中,如图2所示,嵌入层包括输入嵌入(input embedding)层和位置编码(positional encoding)层。在输入嵌入层,可以对待处理文本中的各个词进行词嵌入处理,从而得到各个词的词嵌入张量,张量具体可以表现为一维的向量、二维的矩阵、三维或更多维的数据等等。在位置编码层,可以获取各个词在待处理文本中的位置,进而对各个词的位置生成位置张量。在一些示例中,各个词的位置可以为各个词在待处理文本中的绝对位置。以待处理文本为“今天天气真好”为例,其中的“今”的位置可以表示为第一位,“天”的位置可以表示为第二位,……。在一些示例中,各个词的位置可以为各个词之间的相对位置。仍以待处理文本为“今天天气真好”为例,其中的“今”的位置可以表示为“天”之前,“天”的位置可以表示为“今”之后、“天”之前,……。在得到待处理文本中每个词的词嵌入张量和位置张量之后,可以将每个词的位置张量和词嵌入张量进行组合,得到每个词的初始特征信息,从而得到与待处理文本对应的初始特征信息。

多头注意力层也可以称为注意力层,在一个例子中,注意力层可以为固定窗口多头注意力(fixed window multi-head attention)层。多个注意力头中每个注意力头对应一套注意力矩阵(attention matrix),一套注意力矩阵中包括第一转换矩阵、第二转换矩阵和第三转换矩阵,第一转换矩阵、第二转换矩阵和第三转换矩阵的功能不同,第一转换矩阵用于生成待处理文本的查询(Query)特征信息,第二转换矩阵用于生成待处理文本的键(Key)特征信息,第三转换矩阵用于生成待处理文本的价值(Value)特征信息。不同的注意力头用于提取待处理文本在不同角度的语义信息,作为示例,例如一个注意力头关注的可以为待处理文本的句子成分,另一个注意力头关注的可以为待处理文本的主谓宾结构,另一个注意力头关注的可以为待处理文本中各个词语之间的依存关系等,需要说明的是,此处举例仅为方便理解本方案,在实际情况中每个注意力头关注的特征信息是在训练过程中模型自己学习的,前述例子更多的是想要解释多个注意力头的学习能力,不用于限定本方案。为更直观地理解本方案,如图2所示,多头注意力层包括z个注意力头(head),虽然图2中以h的取值为3为例,但实际情况中可以包括更多或更少的注意力头。多个注意力头中任一个注意力头的运行方式可以通过如下公式表示:

Q

K

V

其中,X代表整个待处理文本的初始特征信息(也即将整个待处理文本输入嵌入层之后得到是初始特征信息),其中包括待处理文本中每个词的初始特征信息,head

在一些实施例中,如图2所示,多头注意力层可以为嵌入层的下一层;在另一些实施例中,Transformer结构的神经网络的特征提取网络中可以多个Transformer层,则最后一个Transformer层输出的为待处理文本的特征信息。

(2)注意力机制(attention mechanism)

每个注意力头的运行原理为注意力机制,注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制,能够利用有限的注意力资源从大量信息中快速筛选出高价值信息。注意力机制可以快速提取稀疏数据的重要特征,因而被广泛用于自然语言处理任务,特别是机器翻译。而自注意力机制(self-attention mechanism)是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。注意力机制的本质思想可以改写为如下公式:

其中,Lx=||Source||代表Source的长度,Source代表输入的待处理文本,公式含义即将Source包括的多个元素想象成是由一系列的数据对构成,此时给定目标Target中的某个元素的Query,通过计算前述某个元素的Query和Source中所有元素的Key的相似性或者相关性,得到Source中每个元素的Key对应Value的权重系数,然后对Source中每个元素的Value进行加权求和,即得到了前述某个元素的最终的Attention数值。所以本质上Attention机制是对Source中各个元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。从概念上理解,把Attention可以理解为从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。聚焦的过程体现在权重系数的计算上,权重越大越聚焦于其对应的Value值上,即权重代表了信息的重要性,而Value是其对应的信息。自注意力机制可以理解为内部Attention(intra attention),注意力机制发生在Target中元素的Query和Source中的所有元素之间,自注意力机制指的是在Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制,其具体计算过程是一样的,只是计算对象发生了变化而已。

(3)自然语言处理

自然语言(natural language)即人类语言,自然语言处理就是对人类语言的处理。自然语言处理是以一种智能与高效的方式,对文本数据进行系统化分析、理解与信息提取的过程。通过使用NLP及其组件,我们可以管理非常大块的文本数据,或者执行大量的自动化任务,并且解决各式各样的问题,如自动摘要(automatic summarization),机器翻译(machine translation,MT),命名实体识别(named entity recognition,NER),关系提取(relation extraction,RE),信息抽取(information extraction,IE),情感分析(Sentiment analysis),语音识别(speech recognition),问答系统(questionanswering),自然语言推断(Natural language inference)以及主题分割等等。

示例性的,自然语言处理任务可以有以下几类。

序列标注:句子中每一个单词要求模型根据上下文给出一个分类类别。如中文分词、词性标注、命名实体识别、语义角色标注。

分类任务:整个句子输出一个分类值,如文本分类。

句子关系推断:给定两个句子,判断这两个句子是否具备某种名义关系。例如entilment、QA、语义改写、自然语言推断。

生成式任务:输出一段文本,生成另一段文本。如机器翻译、文本摘要、写诗造句、看图说话。

下面示例性的列举一些自然语言处理案例。

分词(word segmentation或word breaker,WB):将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列,可以解决交叉歧义问题。

命名实体识别(named entity recognition,NER):识别自然语言文本中具有特定意义的实体(人、地、机构、时间、作品等),可以从粒度整合未登录体词。例句:天使爱美丽在线观看;分词:天使爱美丽在线观看;实体:天使爱美丽->电影。

词性标注(part-speech tagging):为自然语言文本中的每个词汇赋予一个词性(名词、动词、形容词等);依存句法分析(dependency parsing):自动分析句子中的句法成分(主语、谓语、宾语、定语、状语和补语等成分),可以解决结构歧义问题。评论:房间里还可以欣赏日出;歧义1:房间还可以;歧义2:可以欣赏日出;词性:房间里(主语),还可以(谓语),欣赏日出(动宾短语)。

词向量与语义相似度(word embedding&semantic similarity):对词汇进行向量化表示,并据此实现词汇的语义相似度计算,可以解决词汇语言相似度。例如:西瓜与(呆瓜/草莓),哪个更接近?向量化表示:西瓜(0.1222,0.22333,..);相似度计算:呆瓜(0.115)草莓(0.325);向量化表示:(-0.333,0.1223..)(0.333,0.3333,..)。

文本语义相似度(text semantic similarity):依托全网海量数据和深度神经网络技术,实现文本间的语义相似度计算的能力,可以解决文本语义相似度问题。例如:车头如何防止车牌与(前牌照怎么装/如何办理北京牌照),哪个更接近?向量化表示:车头如何防止车牌(0.1222,0.22333,..);相似度计算:前牌照怎么装(0.762),如何办理北京牌照(0.486),向量化表示:(-0.333,0.1223..)(0.333,0.3333,..)。

本申请实施例提供的神经网络的训练方法,用于训练一个任务目标为对第一特征提取网络执行剪枝操作的第一神经网络,并且保证剪枝前后的第一特征提取网络的特征表达性能基本不变。为了便于理解本方案,本申请实施例中首先结合图3对本申请实施例提供的神经网络的压缩系统进行介绍,请先参阅图3,图3为本申请实施例提供的神经网络的压缩系统的一种系统架构图。神经网络的压缩系统中包括训练设备310、数据库320、执行设备330、数据存储系统340和客户设备350;执行设备330中包括计算模块331和输入/输出(I/O)接口332。

在一种情况下,第一特征提取网络302的训练过程采用的为预训练和微调的方式。则在一种实现方式中,如图3所示,第一神经网络301为在第一特征提取网络302预训练阶段对第一特征提取网络302进行剪枝。则具体的,数据库320中存储有第一训练数据集合,第一训练数据集合中可以包括多个训练文本。在第一神经网络301的训练阶段,训练设备310获取第一特征提取网络302,第一特征提取网络302为已经进行过预训练的神经网络,训练设备310生成用于执行剪枝操作的第一神经网络301,并利用第一训练数据集合中的多个训练文本和第一特征提取网络302,对第一神经网络301进行训练,以得到执行过训练操作的第一神经网络301,需要说明的是,在第一神经网络301的训练过程中不会修改第一特征提取网络302的权重参数。

在第一神经网络301的推理阶段,训练设备310利用成熟的第一神经网络301对第一特征提取网络302进行剪枝,以得到剪枝后的第一特征提取网络302,训练设备310将剪枝后的第一特征提取网络302发送给执行设备330。

执行设备330可以调用数据存储系统340中的数据、代码等,也可以将数据、指令等存入数据存储系统340中。数据存储系统340可以配置于执行设备330中,也可以为数据存储系统340相对执行设备330是外部存储器。数据存储系统340中可以存储有第二训练数据集合,第二训练数据集合中包括多个训练文本以及每个训练文本的正确结果。在第一特征提取网络302的微调阶段,执行设备330利用第二训练数据集合对集成有剪枝后的第一特征提取网络302的第三神经网络进行训练,以得到成熟的第三神经网络。

本申请的一些实施例中,如图3所示,在第三神经网络的推理阶段,“用户”与客户端直接进行交互,执行设备330通过I/O接口332获取客户设备350发送的待处理文本,计算模块211通过成熟的第三神经网络对待处理文本进行处理,以生成待处理文本的预测结果,并通过I/O接口332向客户设备350发送待处理文本的预测结果。

但图3仅是本发明实施例提供的神经网络的压缩系统的一种示例,图中所示设备、器件、模块等之间的位置关系不构成任何限制。在本申请的另一些实施例中,执行设备330和客户设备350可以集成于同一设备中。或者,执行设备330可以被分为第三神经网络的训练设备和第三神经网络的执行设备两个独立的设备,由第三神经网络的训练设备执行第一特征提取网络302的微调阶段的步骤,由第三神经网络的执行设备执行第三神经网络的推理阶段的步骤。

在另一种情况下,第一特征提取网络302的训练过程采用的不是预训练和微调的训练方式,与上一种情况的区别在于,训练设备310获取第三神经网络,第三神经网络为执行过训练操作的神经网络,也即第三神经网络为成熟的神经网络,第三神经网络中集成有第一特征提取网络302。训练设备310在得到剪枝后的第一特征提取网络302之后,也即得到剪枝后的第三神经网络,训练设备310将剪枝后的第三神经网络发送给执行设备330,剪枝后的第三神经网络中包括剪枝后的第一特征提取网络302。

执行设备330在得到剪枝后的第三神经网络之后,不再对剪枝后的第三神经网络进行训练,而是直接根据剪枝后的第三神经网络,执行推理阶段的操作。对应的,在本种情况下,执行设备330和客户设备350可以集成于同一设备中。

由图3中的描述可知,本申请实施例包括第一神经网络301(也即用于执行剪枝操作的神经网络)的推理阶段和训练阶段,而第一神经网络301推理阶段和训练阶段的流程有所不同,以下分别对第一神经网络301推理阶段和训练阶段进行描述。

一、第一神经网络的训练阶段

本申请实施例中,请参阅图4,图4为本申请实施例提供的神经网络的训练方法的一种流程示意图,本申请实施例提供的神经网络的训练方法可以包括:

401、训练设备将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息。

本申请实施例中,训练设备中配置有训练数据集合,训练数据集合中包括多个训练数据,由于以第一特征提取网络为用于处理文本数据的特征提取网络为例,则每个训练数据可以表现为训练文本。训练设备将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息。

其中,由于以第一特征提取网络表现为转换器(Transformer)结构的神经网络中的特征提取网络为例,第一特征提取网络也可以称为编码器,第一特征提取网络中包括至少两个注意力头,第一特征提取网络以及注意力头的具体网络结构可以参阅上述图2中的描述,此处不做赘述。进一步地,第一特征提取网络归属于用于进行自然语言处理的第三神经网络中,自然语言处理类型的任务又可以有多种,例如分词、命名实体识别、词性标注等等,此处不做穷举,对于前述各种任务的具体举例可参阅上述描述,此处也不再赘述。

具体的,第一训练数据中包括N个训练数据,每个训练数据可以表现为一个句子。在一种实现方式中,第一训练数据包括N个句子,步骤401可以包括:训练设备将N个句子分别输入第一特征提取网络,从而分别得到第一特征提取网络输出的N个句子中每个句子的第一特征信息,也即得到N个第一特征信息。一个第一特征信息为N个句子中一个句子的特征信息。N为大于或等于2的整数,作为示例,例如N的取值可以为2、3、4、5、6或其他数值等等。

在另一种实现方式中,第一训练数据为一个句子,一个句子中包括N个词语。步骤301可以包括:训练设备将前述一个句子输入第一特征提取网络,以通过第一特征提取网络生成该一个句子的特征信息,从一个句子的特征信息中获取每个词语的特征信息,也即对该一个句子的特征信息进行分解,以得到N个词语中每个词语的特征信息,一个第一特征信息为N个词语中一个词语的特征信息。本申请实施例中,提供了N个第一特征信息的两种表现形式,提高了本方案的实现灵活性;若一个第一特征信息为N个句子中一个句子的特征信息,则有利于提高训练过程的难度,以提高最后的第一特征提取网络的准确率;若一个第一特征信息为N个词语中一个词语的特征信息,则只需要对一个句子进行特征提取就可以实现对第一神经网络的一次训练,有利于提高第一神经网络的训练过程的效率。

在另一种实现方式中,第一训练数据为一个词语,一个词语中包括N个字母,步骤401可以包括:训练设备将前述一个词语输入第一特征提取网络,以通过第一特征提取网络生成该一个词语的特征信息,从一个词语的特征信息中获取每个字母的特征信息,也即对该一个词语的特征信息进行分解,以得到N个字母中每个字母的特征信息,一个第一特征信息为N个字母中一个字母的特征信息。

402、训练设备根据N个第一特征信息,计算第一分布信息,第一分布信息用于指示N个第一特征信息的数据分布规律。

本申请实施例中,训练设备在得到N个第一特征信息之后,会计算第一分布信息。其中,第一分布信息具体可以通过表格、矩阵、数组、索引等形式进行存储,第一分布信息用于指示N个第一特征信息的数据分布规律,包括N个第一特征信息中每个特征信息的分布情况。

进一步地,在一种情况下,第一分布信息包括N个第一特征信息中任意两个第一特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;也即N个第一特征信息中一个特征信息的分布规律为通过该一个特征信息与N个第一特征信息中每个特征信息之间的距离的值来体现。两个第一特征信息之间的距离越远,两个第一特征信息之间的相似度越小;两个第一特征信息之间的距离越近,两个第一特征信息之间的相似度越大。本申请实施例中,通过计算N个特征信息中任意两个特征信息之间的距离,来确定N个特征信息的数据分布规律,提供了N个特征信息的数据分布规律的一种实现方式,且操作简单,易于实现。

具体的,训练设备在得到N个第一特性信息之后,N个第一特征信息中包括一个第三特征信息和一个第四特征信息,第三特征信息和第四特征信息均为N个第一特征信息中的任意一个特征信息。在一种实现方式中,训练设备可以直接计算第三特征信息和第四特征信息之间的余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离、交叉熵距离或其他类型的距离等,并确定为第三特征信息和第四特征信息之间的距离,训练设备对N个第一特性信息中任意两个特征信息均执行前述操作,以得到第一分布信息。

在另一种实现方式中,先以在余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离、交叉熵距离等类型的距离中选取余弦距离为例,训练设备计算第三特征信息与N个第一特征信息中每个第一特征信息的第一余弦距离,得到的第三特征信息与所有第一特征信息之间的第一余弦距离的和,并计算第三特征信息和第四特征信息之间的第二余弦距离,将第二余弦距离与所有第一余弦距离之间的和的比值确定为第三特征信息与第四特征信息之间的距离。

为进一步理解本方案,以下公开两个第一特征信息之间距离的计算公式的一个示例,例如N个第一特征信息中包括特征信息h

其中,r

为更直观地理解第一分布信息,请参阅图5和图6,图5为本申请实施例提供的神经网络的训练方法中N个第一特征信息的分布情况的两种示意图,图6为本申请实施例提供的神经网络的训练方法中第一分布信息的一个示意图。图5和图6中均以N的取值为4为例。请先参阅图5,图5包括(a)子示意图和(b)子示意图,A1、A2、A3和A4分别代表通过第一特征提取网络生成的4个句子(也即第一训练数据中包括4个句子)的特征信息,也即示出了4个第一特征信息的分布情况,由于图5的两个子示意图中均可以直观的看出4个第一特征信息的分布情况,此处不再进行介绍。

继续参阅图6,图6中以第一分布信息表现为一个矩阵为例,矩阵中的每个值均代表两个第一特征信息之间的距离,例如B1代表A3和A4这两个特征信息之间的距离,图6中示出的第一分布信息表示的为图5的(a)子示意图中4个第一特征信息的分布情况,A1和A1之间的距离的值为0,A1和A2之间的距离的值为2,A1和A3之间的距离的值为6等,由于图5中A1和A3之间的距离最远,则对应的,图6中A1和A3之间的距离的值最大,图6中示出的矩阵可以结合图5进行理解,此处不对图6中的矩阵值进行一一解释,需要说明的是,图5和图6中的示例仅为方便理解本方案,在实际应用中,第一分布信息还可以表现为其他形式,例如表格、数组等,或者第一分布信息中的每个距离的值均可以为进行过归一化处理后的值等,此处均不做限定。

在另一种情况下,第一分布信息包括N个第一特征信息中每个特征信息与预设特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律。其中,一个第一特征信息与预设特征信息之间的距离越远,该第一特征信息与预设特征信息之间的相似度越小;一个第一特征信息与预设特征信息之间的相似度越大,该第一特征信息与预设特征信息之间的相似度越大。

预设特征信息与第一特征信息的形状相同,预设特征信息和第一特征信息的形状相同指的是预设特征信息和第一特征信息均为M维张量,且第一特征信息的M维中的第一维和第二特征信息的M维中的第二维的尺寸相同,M为大于或等于1的整数,第一维为第一特征信息的M维中的任一维,第二维为第二特征信息的M维中与第一维相同的维度。作为示例,例如第一特征信息为包括m个元素的向量,则预设特征信息可以为包括m个0的向量,或者,预设特征信息为包括m个1的向量等等,此处举例仅为方便理解预设特征信息的概念,不用于限定本方案。

具体的,在一种实现方式中,训练设备在得到N个第一特征信息之后,针对第三特征信息(N个第一特征信息中的任一个特征信息),可以计算第三特征信息与预设特征信息之间的余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离、交叉熵距离或其他类型的距离等,并确定为第三特征信息和预设特征信息之间的距离,训练设备对N个第一特性信息中每个特征信息均执行前述操作,以得到第一分布信息。

在另一种实现方式中,先以在余弦距离、欧式距离、曼哈顿距离、马氏距离、一阶距离、交叉熵距离等类型的距离中选取余弦距离为例,训练设备计算N个第一特征信息中每个特征信息与预设特征信息之间的第三余弦距离,得到的N个第一特征信息中所有特征信息与预设特征信息之间的第三余弦距离的和,并计算第三特征信息与预设特征信息之间的第四余弦距离,将第四余弦距离与所有第三余弦距离的和之间的比值确定为第三特征信息与预设特征信息之间的距离。

403、训练设备通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络。

本申请实施例中,训练设备会通过第一神经网络,对第一特征提取网络执行剪枝操作,以得到剪枝后的第一特征提取网络。其中,第一神经网络可以表现为各种类型的神经网络,第一神经网络为以下中的任一种神经网络:卷积神经网络、循环神经网络、残差神经网络或全连接神经网络。本申请实施例中,提供了第一神经网络的多种实现方式,提高了本方案的实现灵活性。

具体的,训练设备可以通过第一神经网络对第一特征提取网络的权重参数进行剪枝,或者,对第一特征提取网络中的神经网络层进行剪枝,或者,对第一特征提取网络的神经网络层中的至少一个注意力头进行剪枝。

可选地,在第一特征提取网络为Transformer结构的神经网络中的特征提取网络的情况下,第一特征提取网络的注意力层可以包括至少两个注意力头,步骤403可以包括:训练设备通过第一神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,并根据进行剪枝后仍旧保留下的至少一个注意力头,构建剪枝后的第一特征提取网络,剪枝后的第一特征提取网络包括的注意力头的数量少于第一特征提取网络包括的注意力头的数量。作为示例,例如第一特征提取网络包括8个注意力头,剪枝后的第一特征提取网络可以包括6个注意力头,从而剪枝后的第一特征提取网络中包括的参数数量更少,应理解,此处举例仅为方便理解本方案,不用于限定本方案。

本申请实施例中,技术人员在研究中发现,Transformer结构的神经网络中的部分注意力头是冗余的,或者,Transformer结构的神经网络中的部分注意力头的重要性较低,去掉之后对第一特征提取网络的性能的影响不大,所以将第一特征提取网络选取为Transformer结构的神经网络的特征提取网络,对第一特征提取网络中的注意力头进行剪枝,从而尽可能的提高剪枝后的第一特征提取网络的性能。

进一步地,在一种情况下,步骤403可以包括:训练设备通过第一神经网络,生成至少两个注意力头中每个注意力头的第一评分。其中,一个注意力头的第一评分代表该一个注意力头的重要程度,用于指示一个注意力头是否被剪枝,第一特征提取网络包括的多个注意力头中重要程度高的注意力头将会被保留,重要程度低的注意力头将会被剪枝。训练设备根据与至少两个注意力头对应的至少两个第一评分,对至少两个注意力头执行剪枝操作。本申请实施例中,通过第一神经网络生成每个注意力头的第一评分,进而根据每个注意力头的评分决定该注意力头是否会被剪枝,操作简单,易于实现。

更进一步地,可以为与重要程度越高的注意力头对应的第一评分越高,与重要程度越低的注意力对应的第一评分越低;也可以为与重要程度越高的注意力头对应的第一评分越低,与重要程度越低的注意力对应的第一评分越高。

针对训练设备利用第一评分执行剪枝操作的过程。在一种实现方式中,第一评分的取值为第一预设值或第二预设值,第一预设值和第二预设值的取值不同。第一注意力头为至少两个注意力头中任一个注意力头,当第一注意力头的取值为第一预设值时,第一注意力会被保留;当第一注意力头的取值为第二预设值时,第一注意力头会被剪枝。前述第一预设值的取值可以为1、2、3、4或其他取值等的,前述第二预设值的取值可以为0、1、2或其他取值等,只要保证第一预设值和第二预设值的取值不同即可。作为示例,例如第一评分的取值为0或1,若第一注意力头的第一评分的取值为0,则第一注意力头被剪枝,若第一注意力头的第一评分的取值为1,则第一注意力头被保留等,具体第一预设值和第二预设值的取值均可结合实际情况灵活设定,此处不做限定。

针对生成第一评分的过程。训练设备将至少两个注意力头中每个注意力头输入第一神经网络,得到第一神经网络输出的每个注意力头的第二评分,第二评分可以为连续的评分。作为示例,例如一个第二评分具体可以为0.58、0.69、1、1.28、1.38等等,此处举例仅为更方便理解本方案,不用于限定本方案。具体的,针对至少两个注意力头中第一注意力头的第二评分的生成过程。训练设备根据自注意力机制,将与第一注意力头对应的注意力矩阵输入第一神经网络中,也即根据与第一注意力头对应的一套注意力矩阵,执行自注意力运算,进而将运算结果输入第一神经网络中,得到第一神经网络输出的第一注意力头的第二评分。为进一步理解本方案,请参阅如下公式:

其中,Attention(W

训练设备在得到第一注意力头的第二评分之后,对第一注意力头的第二评分进行离散化处理,得到第一注意力头的第一评分。其中,离散化处理的过程为可微分的,作为示例,例如离散化处理的具体方式可以为gumbel(耿贝尔)-softmax、gumbel-max或其他类型的离散化处理方式等等。训练设备对多个注意力头中的每个注意力头均执行前述操作,从而可以生成每个注意力头的第一评分。本申请实施例中,生成每个注意力头的第一评分的过程为可微分的,则在利用第一损失函数,反向更新第一神经网络的权重参数的过程也是连续的,从而使第一神经网络的权重参数的更新过程更为严谨,以提高第一神经网络的训练效率,也有利于得到正确率更高的第一神经网络。

在另一种实现方式中,第一评分的取值可以为连续的,训练设备上预先设置有第一阈值,若重要程度高的注意力头对应的第一评分越高,则当一个注意力头的第一评分大于或等于第一阈值时,可以保留该注意力头,当一个注意力头的第一评分小于第一阈值时,可以对该注意力头进行剪枝。

或者,若重要程度高的注意力头对应的第一评分越低,则当一个注意力头的第一评分大于或等于第一阈值时,可以对该注意力头进行剪枝,当一个注意力头的第一评分小于第一阈值时,可以保留该注意力头。

为更直观地理解本方案,请参阅图7,图7为本申请实施例提供的神经网络的训练方法中对注意力头进行剪枝过程的一个示意图。图7中以第一特征提取网络中包括3个Transform层,每个Transform层包括4个注意力头为例,其中,灰色块代表的注意力头为不重要的注意力头,马赛克块代表的注意力头为重要的注意头,例如编号为1的神经网络层中编号为1的马赛克块代表的注意力头为重要的注意力头,编号为2的神经网络层中编号为1的灰色块代表的注意力头为不重要的注意力头,则在对第一特征提取网络的不同神经网络层包括的多个注意力头进行剪枝之后,并重新构建剪枝后的第一特征提取网络,剪枝后的第一特征提取网络中包括保留下的6个重要的注意力头,应理解,图7中的示例仅为方便理解本方案,不用于限定本方案。

在另一种情况下,步骤403可以包括:训练设备直接将第一特征提取网络输入至第一神经网络中,得到第一神经网络输出的剪枝后的第一特征提取网络。

需要说明的是,本申请实施例不限定步骤403的执行顺序,步骤403可以在步骤401和402任一步骤之前或之后执行,只要保证步骤403在步骤404之前执行即可。

404、训练设备将第一训练数据输入剪枝后的第一特征提取网络,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息。

本申请实施例中,训练设备在得到剪枝后的第一特征提取网络之后,将第一训练数据输入剪枝后的第一特征提取网络,以通过剪枝后的第一特征提取网络对第一训练数据进行特征提取,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息。步骤404的具体实现方式与步骤401的具体实现方式类似,区别仅在于步骤401中的执行主体为第一特征提取网络,步骤404的执行主体为剪枝后的第一特征提取网络,此处不做赘述。

其中,N个第二特征信息与N个第二特征信息的含义类似,若第一训练数据包括N个句子,一个第二特征信息为N个句子中一个句子的特征信息;或者,第一训练数据为一个句子,一个句子中包括N个词语,一个第二特征信息为N个词语中一个词语的特征信息。

405、训练设备根据N个第二特征信息,计算第二分布信息,第二分布信息用于指示N个第二特征信息的数据分布规律。

本申请实施例中,步骤405的具体实现方式与步骤402的具体实现方式类似,区别仅在于步骤402中训练设备处理的为N个第一特征信息,步骤405中处理的为N个第二特征信息,可参阅上述描述理解。其中,第二分布信息的具体表现形式与第一分布信息的具体表现形式类似,均可参照步骤405中的介绍,此处不做赘述。

406、训练设备根据第一损失函数,对第一神经网络执行训练操作,得到第二神经网络,第一损失函数指示第一分布信息与第二分布信息之间的相似度。

本申请实施例中,训练设备在得到第一分布信息和第二分布信息之后,会根据第一分布信息和第二分布信息计算第一损失函数的函数值,并根据第一损失函数的函数值进行梯度求导,并反向更新第一神经网络的权重参数,以完成对第一神经网络的一次训练,训练设备通过重复执行步骤401至406,来对第一神经网络进行迭代训练,直至满足第一损失函数的收敛条件,得到第二神经网络,第二神经网络为训练后的第一神经网络。迭代训练的目标为拉近第一分布信息和第二分布信息之间的相似度,也即迭代训练的目标为拉近第一分布信息与第二分布信息之间的相似度,第一分布信息与第二分布信息之间的相似度用于体现第一分布信息与第二分布信息之间的差异程度,也可以表示为第一分布信息与第二分布信息之间的距离。需要说明的是,在对第一神经网络进行训练的过程中不会更新第一特征提取网络的权重参数。

此外,在对第一神经网络进行迭代训练的过程中,当训练设备确定第一损失函数的函数值满足收敛条件后,不会再对第一神经网络进行下一次训练,训练设备可以获取在对第一神经网络进行最后一次训练的过程中,通过第一神经网络(也可以称为第二神经网络)生成的剪枝后的第一特征提取网络(也即在最后一次训练的过程中通过步骤403生成的剪枝后的第一特征提取网络),作为最终的可以输出的剪枝后的第一特征提取网络。

其中,第一损失函数具体可以计算第一分布信息和第二分布信息之间的距离,前述距离可以为KL散度(Kullback Leibler divergence)距离、交叉熵距离、欧式距离、马氏距离、余弦距离或其他类型的距离等等,此处不做穷举。需要说明的是,拉近第一分布信息与第二分布信息之间的相似度,不代表拉近每个第一特征信息与每个第二特征信息之间的距离。作为示例,例如N的取值为3,3个第一训练数据分别为“今天天气真好啊”、“今天天气真舒服啊”和“花花的衣服真好看”,则“今天天气真好啊”的第一特征信息和“今天天气真舒服啊”的第一特征信息之间的距离会比较近,“花花的衣服真好看”的第一特征信息与前两者的距离会较远,则训练的目标为“今天天气真好啊”的第二特征信息和“今天天气真舒服啊”的第二特征信息之间的距离近,“花花的衣服真好看”的第二特征信息与前两者的距离较远,也即训练的目的为提高不同第二特征信息之间的相对距离,与,不同第一特征信息之间的相对距离之间的相似度。

为更直观地理解第一分布信息与第二分布信息之间的相似度这个概念,请参阅图8,图8为本申请实施例提供的神经网络的训练方法中第一分布信息和第二分布信息的示意图。图8中以第一分布信息和第二分布信息包括的均为N个特征信息中任意两个特征信息之间的距离为例,图8包括(a)、(b)和(c)三个子示意图,图8的(a)、(b)和(c)三个子示意图中均以示出三个第一特征信息为例,图8的(a)子示意图代表3个第一特征信息的分布情况,图8的(b)子示意图和(c)子示意图均代表3个第二特征信息的分布情况,C1、C2和C3分别代表三个不同的训练数据,图8的(a)子示意图中的方框代表C1的第一特征信息,图8的(a)子示意图中的圆形代表C2的第一特征信息,图8的(a)子示意图中的五角星代表C3的第一特征信息。由于在不同训练次数中第一特征提取网络被减掉的注意力头可以不同,所以不同训练次数中剪枝后的第一特征提取网络输出的N个第二特征信息的分布不同,图8的(b)子示意图和图8的(c)子示意图分别代表在不同训练次数中3个第二特征的分布情况。图8的(b)子示意图和图8的(c)子示意图中的方框代表C1的第一特征信息,图8的(b)子示意图和图8的(c)子示意图中的圆形代表C2的第一特征信息,图8的(b)子示意图和图8的(c)子示意图中的五角星代表C3的第一特征信息。在图8的(a)子示意图和图8的(c)子示意图中,虽然方框、圆形以及五角星的绝对位置不同,但由于图8的(a)子示意图和图8的(c)子示意图中,五角星和圆形的距离较近,圆形与方框、五角星与方框的距离均较远,则图8的(a)子示意图所示出的3个第一特征信息的分布情况(也即对应第一分布信息)与图8的(c)子示意图所示出的3个第二特征信息的分布情况(也即对应第二分布信息)之间的相似度较高,与图8的(a)子示意图对应的第一分布信息和与图8的(b)子示意图对应的第二分布信息之间的相似度较低,应理解,图8中的举例仅为方便理解第一分布信息与第二分布信息之间的相似度这个概念的一个距离,不用于限定本方案。

为了更直观地理解本方案,请参阅图9,图9为本申请实施例提供的神经网络的训练方法的一种流程示意图。D1、训练设备从训练数据集合中获取N个训练数据(也即获取到第一训练数据),将N个训练数据输入第一特征提取网络,第一特征提取网络为执行过预训练的神经网络,以得到N个第一特征信息。D2、训练设备根据N个第一特征信息,生成第一分布信息。D3、训练设备将与第一特征提取网络包括的多个注意力头一一对应的多套注意力矩阵输入第一神经网络,得到第一神经网络生成的每个注意力头的第二评分。D4、训练设备根据每个注意力头的第二评分,进行离散化处理,得到每个注意力头的第一评分,前述离散化处理的过程为可微的。D5、训练设备根据每个注意力头的第一评分,对第一特征提取网络进行剪枝,并重新构建剪枝后的第一特征提取网络。D6、训练设备将N个训练数据输入剪枝后的第一特征提取网络,以得到N个第二特征信息。D7、训练设备根据N个第二特征信息,生成第二分布信息。D8、训练设备计算第一分布信息和第二分布信息之间的距离,也即计算第一损失函数的函数值,并反向传播以更新第一神经网络的权重参数,以完成了对第一神经网络的一次训练。应理解,图9中的示例仅为方便理解本方案,不用于限定本方案。

本申请实施例中,通过上述方式,提供了一种用于对第一特征提取网络执行剪枝操作的神经网络的训练方法,执行过训练操作第一神经网络能够用于对第一特征提取网络进行剪枝,也即提供了一种神经网络的压缩方案;此外,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能;且第一特征提取网络不仅可以为Transform结构的特征提取网络,还可以为循环神经网络、卷积神经网络等神经网络的特征提取网络,扩展了本方案的应用场景。

一、第一神经网络的推理阶段

本申请实施例中,请参阅图10,图10为本申请实施例提供的神经网络的压缩方法的一种流程示意图,本申请实施例提供的神经网络的压缩方法可以包括:

1001、执行设备获取第二特征提取网络。

本申请实施例中,执行设备需要获取第二特征提取网络。其中,第一神经网络的训练设备和第二神经网络的执行设备可以为同一设备,也可以为分别独立的设备。第二特征提取网络和第一特征提取网络可以为不同的特征提取网络,也可以为同一的特征提取网络。进一步地,第一特征提取网络和第二特征提取网络的神经网络结构可以完全相同,也即第一特征提取网络和第二特征提取网络包括的神经网络层完全相同。或者,第一特征提取网络和第二特征提取网络的神经网络结构也可以有所不同,在第二特征提取网络与第一特征提取网络均为Transform结构的特征提取网络的情况下,仅需要保证第二特征提取网络的一个多头注意力层中包括的注意力头的个数,与,第一特征提取网络的一个多头注意力层中包括的注意力头的个数相同即可。

具体的,若第二特征提取网络为采用预训练和微调的训练方式,则获取的第二特征提取网络为执行过预训练操作的神经网络。

若第二特征提取网络不是采用预训练和微调的训练方式,则获取第二特征提取网络为训练后的神经网络,具体过程可结合上述对图3的描述。

1002、执行设备通过第二神经网络,对第二特征提取网络进行剪枝,得到剪枝后的第二特征提取网络,第二神经网络为根据第一损失函数进行训练得到的,第一损失函数指示第一分布信息与第二分布信息之间的相似度,第一分布信息用于指示N个第一特征信息的数据分布规律,N个第一特征信息为将第一训练数据输入第一特征提取网络后得到的,第二分布信息用于指示N个第二特征信息的数据分布规律,N个第二特征信息为将第一训练数据输入剪枝后的第一特征提取网络后得到的。

本申请实施例中,执行设备通过第二神经网络,对第一特征提取网络进行剪枝,得到剪枝后的所述第一神经网络。其中,第二神经网络为根据第一损失函数训练得到的,对于第一神经网络的(或第二神经网络)的训练过程可以参阅图4对应实施例中的描述。对于通过第一神经网络进行剪枝操作的具体实现方式,与图4对应实施例中步骤403的具体实现方式类似,此处不做赘述。

具体的,若第一特征提取网络为采用预训练和微调的训练方式,则执行设备为通过第二神经网络,在进入第二特征提取网络的微调阶段之前,对第二特征提取网络进行剪枝,第二特征提取网络为执行过预训练操作的神经网络。

若第二特征提取网络不是采用预训练和微调的训练方式,则执行设备通过第二神经网络对第二特征提取网络进行剪枝,第二特征提取网络为训练后的神经网络,剪枝后的第二特征提取网络不再需要训练。

需要说明的是,若第一神经网络的训练设备和第二神经网络的执行设备为同一设备,则步骤1002也可以为通过步骤403得到,也即在对第一神经网络(或第二神经网络)的训练过程中可以直接获取剪枝后的第一特征提取网络。具体的,可以为在确定满足第一损失函数的收敛条件时,获取当前训练批次中生成的剪枝后的第一特征提取网络,也即获取在第一神经网络的最后一次训练过程中,生成的剪枝后的第一特征提取网络。

本申请实施例中,在预训练阶段对第一特征提取网络进行剪枝,不仅能够实现对第一特征提取网络的压缩,以减少第一特征提取网络所占的存储空间,提高第一特征提取网络在推理阶段的效率,也可以提高对第一特征提取网络进行训练时微调阶段的效率,从而提高第一特征提取网络的训练过程的效率。

本申请实施例中,通过第二神经网络对第一特征提取网络进行剪枝,也即实现了对第一特征提取网络的压缩,提供了一种神经网络的压缩方案;此外,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能;且第一特征提取网络不仅可以为Transform结构的特征提取网络,还可以为循环神经网络、卷积神经网络等神经网络的特征提取网络,扩展了本方案的应用场景。

为更直观地理解本申请实施例带来的有益效果,以下结合实际数据进行介绍。先参阅如下表1。

表1

其中,BERT base和BERT Large代表两种不同类型的神经网络,第一特征提取网络分别来自前述两种神经网络,Ratio=0%代表没有对第一特征提取网络进行剪枝,Ratio=50%代表剪去了第一特征提取网络中50%的注意力头,对于BERT base和BERT Large而言,在剪枝后,存储空间都减小了,且处理速度得到了提升。

继续结合表2理解采用本申请实施例提供的方案进行剪枝后,剪枝后的神经网络的性能的改变,请参阅如下表2。

表2

其中,BERT base和BERT Large代表两种不同类型的神经网络,STS为语义文本相似度(Semantic Textual Similarity)的缩写,代表神经网络执行的任务类型,STS-12、STS-13、STS-14和STS-15中后面的序号代表不同的训练数据集合的编号,表2中的每个数值均为一个准确度值,通过上述表2可知,通过本申请实施例提供的方案进行剪枝后,神经网络的性能反而有所提升。

在图1至图10所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图11,图11为本申请实施例提供的神经网络的训练装置的一种结构示意图。神经网络的训练装置1100包括输入模块1101、计算模块1102、剪枝模块1103和训练模块1104。其中,输入模块1101,用于将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息,N为大于1的整数;计算模块1102,用于根据N个第一特征信息,计算第一分布信息,第一分布信息用于指示N个第一特征信息的数据分布规律;剪枝模块1103,用于通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络;输入模块1101,还用于将第一训练数据输入剪枝后的第一特征提取网络,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息;计算模块1102,还用于根据N个第二特征信息,计算第二分布信息,第二分布信息用于指示N个第二特征信息的数据分布规律;训练模块1104,用于根据第一损失函数,对第一神经网络执行训练操作,得到第二神经网络,第一损失函数指示第一分布信息与第二分布信息之间的相似度。

本申请实施例中,提供了一种用于对第一特征提取网络执行剪枝操作的神经网络的训练方法,执行过训练操作第一神经网络能够用于对第一特征提取网络进行剪枝,也即提供了一种神经网络的压缩方案;此外,训练模块1104采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能。

在一种可能的设计中,第一分布信息包括N个第一特征信息中任意两个第一特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;第二分布信息包括N个第二特征信息中任意两个第二特征信息之间的距离的值,以指示N个第二特征信息的数据分布规律。

在一种可能的设计中,第一特征提取网络为转换器(Transformer)结构的神经网络中的特征提取网络,第一特征提取网络中包括至少两个注意力头。剪枝模块1103,具体用于通过第一神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,得到剪枝后的第一特征提取网络,剪枝后的第一特征提取网络包括的注意力头的数量少于第一特征提取网络包括的注意力头的数量。

在一种可能的设计中,剪枝模块1103,具体用于通过第一神经网络,生成至少两个注意力头中每个注意力头的第一评分,根据与至少两个注意力头对应的至少两个第一评分,对至少两个注意力头执行剪枝操作。

在一种可能的设计中,剪枝模块1103,具体用于将至少两个注意力头中每个注意力头输入第一神经网络,得到第一神经网络输出的每个注意力头的第二评分,对第二评分进行离散化处理,得到第一评分,离散化处理的过程为可微分的。

在一种可能的设计中,第一训练数据包括N个句子,一个第一特征信息为N个句子中一个句子的特征信息;或者,第一训练数据为一个句子,一个句子中包括N个词语,一个第一特征信息为N个词语中一个词语的特征信息。

在一种可能的设计中,第一神经网络为以下中的任一种神经网络:卷积神经网络、循环神经网络、残差神经网络或全连接神经网络。

需要说明的是,神经网络的训练装置1100中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4至图9对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供一种神经网络的压缩装置,具体参阅图12,图12为本申请实施例提供的神经网络的压缩装置的一种结构示意图。神经网络的压缩装置1200包括获取模块1201和剪枝模块1202。获取模块1201,用于获取第二特征提取网络;剪枝模块1202,用于通过第二神经网络,对第二特征提取网络进行剪枝,得到剪枝后的第二特征提取网络。其中,第二神经网络为根据第一损失函数进行训练得到的,第一损失函数指示第一分布信息与第二分布信息之间的相似度,第一分布信息用于指示N个第一特征信息的数据分布规律,N个第一特征信息为将第一训练数据输入第一特征提取网络后得到的,第二分布信息用于指示N个第二特征信息的数据分布规律,N个第二特征信息为将第一训练数据输入剪枝后的第一特征提取网络后得到的。

本申请实施例中,通过第二神经网络对第二特征提取网络进行剪枝,也即实现了对第二特征提取网络的压缩,提供了一种神经网络的压缩方案;此外,采用第一损失函数来训练第一神经网络,以使剪枝前后的特征提取网络生成的N个特征信息的数据分布规律类似,从而保证剪枝前后的特征提取网络的特征表达能力相似,以保证剪枝后的特征提取网络的性能。

在一种可能的设计中,第一分布信息包括N个第一特征信息中任意两个第一特征信息之间的距离的值,以指示N个第一特征信息的数据分布规律;第二分布信息包括N个第二特征信息中任意两个第二特征信息之间的距离的值,以指示N个第二特征信息的数据分布规律。

在一种可能的设计中,第一特征提取网络为采用预训练和微调的方式进行训练;剪枝模块1202,具体用于在微调之前,通过第二神经网络,对第二特征提取网络进行剪枝。

在一种可能的设计中,第一特征提取网络为转换器(Transformer)结构的神经网络中的特征提取网络,第一特征提取网络中包括至少两个注意力头。剪枝模块1202,具体用于通过第一神经网络,对第一特征提取网络包括的至少两个注意力头执行剪枝操作,得到剪枝后的第一特征提取网络,剪枝后的第一特征提取网络包括的注意力头的数量少于第一特征提取网络包括的注意力头的数量。

在一种可能的设计中,剪枝模块1202,具体用于通过第一神经网络,生成至少两个注意力头中每个注意力头的第一评分,根据与至少两个注意力头对应的至少两个第一评分,对至少两个注意力头执行剪枝操作。

在一种可能的设计中,剪枝模块1202,具体用于将至少两个注意力头中每个注意力头输入第一神经网络,得到第一神经网络输出的每个注意力头的第二评分,对第二评分进行离散化处理,得到第一评分,离散化处理的过程为可微分的。

在一种可能的设计中,第一训练数据包括N个句子,一个第一特征信息为N个句子中一个句子的特征信息;或者,第一训练数据为一个句子,一个句子中包括N个词语,一个第一特征信息为N个词语中一个词语的特征信息。

在一种可能的设计中,第二神经网络为以下中的任一种神经网络:卷积神经网络、循环神经网络、残差神经网络或全连接神经网络。

需要说明的是,神经网络的压缩装置1200中各模块/单元之间的信息交互、执行过程等内容,与本申请中图10对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例提供了一种电子设备,请参阅图13,图13为本申请实施例提供的电子设备的一种结构示意图,电子设备1300上可以部署有图11对应实施例中所描述的神经网络的训练装置1100,用于实现图4至图9对应的训练设备的功能;或者,电子设备1300上可以部署有图12对应实施例中所描述的神经网络的压缩装置1200,用于实现图10对应的执行设备的功能。具体的,电子设备1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在电子设备1300上执行存储介质1330中的一系列指令操作。

电子设备1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

本申请实施例中,在一种情况下,中央处理器1322,用于实现图4至图9对应实施例中的训练设备的功能。具体的,中央处理器1322用于:

将第一训练数据输入第一特征提取网络,得到第一特征提取网络输出的与第一训练数据对应的N个第一特征信息,N为大于1的整数;根据N个第一特征信息,计算第一分布信息,第一分布信息用于指示N个第一特征信息的数据分布规律;通过第一神经网络,对第一特征提取网络执行剪枝操作,得到剪枝后的第一特征提取网络;将第一训练数据输入剪枝后的第一特征提取网络,得到剪枝后的第一特征提取网络输出的与第一训练数据对应的N个第二特征信息;根据N个第二特征信息,计算第二分布信息,第二分布信息用于指示N个第二特征信息的数据分布规律;根据第一损失函数,对第一神经网络执行训练操作,得到第二神经网络,第二神经网络为执行过训练操作的第一神经网络,第一损失函数指示第一分布信息与第二分布信息之间的相似度。

需要说明的是,中央处理器1322还于实现图4至图9对应实施例中的训练设备执行的其他步骤,对于中央处理器1322执行图4至图9对应实施例中训练设备的功能的具体实现方式以及带来的有益效果,均可以参考图4至图9对应的各个方法实施例中的叙述,此处不再一一赘述。

本申请实施例中,在另一种情况下,中央处理器1322,用于实现图10对应实施例中的执行设备的功能。具体的,中央处理器1322用于:

获取第一特征提取网络;通过第二神经网络,对第二特征提取网络进行剪枝,得到剪枝后的第二特征提取网络。其中,第二神经网络为根据第一损失函数进行训练得到的,第一损失函数指示第一分布信息与第二分布信息之间的相似度,第一分布信息用于指示N个第一特征信息的数据分布规律,N个第一特征信息为将第一训练数据输入第一特征提取网络后得到的,第二分布信息用于指示N个第二特征信息的数据分布规律,N个第二特征信息为将第一训练数据输入剪枝后的第一特征提取网络后得到的。

需要说明的是,中央处理器1322还于实现图10对应实施例中的执行设备执行的其他步骤,对于中央处理器1322执行图10对应实施例中执行设备的功能的具体实现方式以及带来的有益效果,均可以参考图10对应的各个方法实施例中的叙述,此处不再一一赘述。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如上述图4至图9对应实施例中训练设备所执行的步骤,或者,执行如上述图10对应实施例中执行设备所执行的步骤。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如上述图4至图9对应实施例中训练设备所执行的步骤,或者,执行如上述图10对应实施例中执行设备所执行的步骤。

本申请实施例中还提供一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行如上述图4至图9对应实施例中训练设备所执行的步骤,或者,执行如上述图10对应实施例中执行设备所执行的步骤。

本申请实施例提供的执行设备或训练设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图4至图9对应实施例中训练设备所执行的步骤,或者,执行如上述图10对应实施例中执行设备所执行的步骤。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体的,请参阅图14,图14为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 140,NPU 140作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1403,通过控制器1404控制运算电路1403提取存储器中的矩阵数据并进行乘法运算。

在一些实现中,运算电路1403内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1403是二维脉动阵列。运算电路1403还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1403是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路1403从权重存储器1402中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路1403从输入存储器1401中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1408中。

统一存储器1406用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1405,DMAC被搬运到权重存储器1402中。输入数据也通过DMAC被搬运到统一存储器1406中。

BIU为Bus Interface Unit即,总线接口单元1410,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1409的交互。

总线接口单元1410(Bus Interface Unit,简称BIU),用于取指存储器1409从外部存储器获取指令,还用于存储单元访问控制器1405从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1406或将权重数据搬运到权重存储器1402中或将输入数据数据搬运到输入存储器1401中。

向量计算单元1407包括多个运算处理单元,在需要的情况下,对运算电路1403的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元1407能将经处理的输出的向量存储到统一存储器1406。例如,向量计算单元1407可以将线性函数和/或非线性函数应用到运算电路1403的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1407生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1403的激活输入,例如用于在神经网络中的后续层中的使用。

控制器1404连接的取指存储器(instruction fetch buffer)1409,用于存储控制器1404使用的指令;

统一存储器1406,输入存储器1401,权重存储器1402以及取指存储器1409均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,循环神经网络中各层的运算可以由运算电路1403或向量计算单元1407执行。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CLU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

相关技术
  • 神经网络训练的方法、神经网络的压缩方法以及相关设备
  • 一种神经网络训练方法、视频帧处理方法以及相关设备
技术分类

06120112170250