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

解释指导的知识蒸馏方法、装置、电子设备及存储介质

2022-12-20 02:01:21 来源:中国专利 TAG:


1.本发明涉及自然语言处理技术领域,尤其涉及一种解释指导的知识蒸馏方法、装置、电子设备及存储介质。


背景技术:

2.预训练语言模型在各项自然语言处理任务上均取得了良好的效果,在近年来得到了广泛关注。然而,这些模型通常有百亿、千亿级别的参数量,因此在应用的时候会有延迟较高、存储要求大以及资源消耗巨大的问题。因此,如何将繁重的预训练语言模型在尽可能不损失性能的条件下进行压缩,对于预训练语言模型的落地应用具有重大意义。
3.通常可以通过知识蒸馏方法对预训练语言模型进行压缩,如何更好地将教师模型中的知识迁移到学生模型中,使得学生模型取得更好的性能,是知识蒸馏方法的主要研究内容。
4.目前的知识蒸馏方法仅适用于层的压缩,但在学生模型与教师模型的架构之间存在较大差异时,利用目前的知识蒸馏方法得到的学生模型,与教师模型之间的性能差异大,学生模型的性能损失严重。


技术实现要素:

5.本发明提供一种解释指导的知识蒸馏方法、装置、电子设备及存储介质,用以解决利用目前的知识蒸馏方法得到的学生模型的性能损失严重的问题。
6.本发明提供一种解释指导的知识蒸馏方法,包括:
7.基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
8.基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
9.基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
10.基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
11.根据本发明提供的一种解释指导的知识蒸馏方法,在所述基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数之前,所述方法还包括:
12.将训练样例输入至所述教师模型,得到所述教师模型输出的第一预测结果;其中,所述教师模型用于基于所述训练样例进行预测,得到所述第一预测结果,所述训练样例为包括至少一个单词的语句;
13.将所述训练样例输入至所述学生模型,得到所述学生模型输出的第二预测结果;其中,所述学生模型用于基于所述训练样例进行预测,得到所述第二预测结果;
14.所述基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数,包括:
15.基于所述第一解释结果、所述第二解释结果、所述第一预测结果和所述第二预测
结果,获取所述学生模型的训练损失函数。
16.根据本发明提供的一种解释指导的知识蒸馏方法,所述基于所述第一解释结果、所述第二解释结果、所述第一预测结果和所述第二预测结果,获取所述学生模型的训练损失函数,包括:
17.计算所述第一解释结果和所述第二解释结果之间的第一损失函数;
18.计算所述第一预测结果和所述第二预测结果之间的第二损失函数;
19.基于所述第一损失函数、所述第二损失函数和所述学生模型的现有损失函数,获取所述学生模型的训练损失函数。
20.根据本发明提供的一种解释指导的知识蒸馏方法,所述基于所述第一损失函数、所述第二损失函数和所述学生模型的现有损失函数,获取所述学生模型的训练损失函数,包括:
21.基于所述第一损失函数l
exp
、所述第二损失函数l
logit
和所述学生模型的现有损失函数l
ce
,采用公式(1),获取所述学生模型的训练损失函数l
total

22.l
total
=αl
ce
(1-α)l
logit
βl
exp
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
23.其中,α为平衡各项损失的第一权重,β为平衡各项损失的第二权重。
24.根据本发明提供的一种解释指导的知识蒸馏方法,在所述解释模式采用梯度解释方法的情况下,所述l
exp
通过公式(2)获取:
[0025][0026]
其中,l
exp_gra
为采用梯度解释方法得到的第一损失函数,mse为均方误差函数,l
t
为所述教师模型的预测损失,ls为所述学生模型的预测损失,为所述教师模型表征所述训练样例中第i个样例的第j个词的第一子向量,为所述学生模型表征所述训练样例中第i个样例的第j个词的第二子向量。
[0027]
根据本发明提供的一种解释指导的知识蒸馏方法,在所述解释模式采用扰动解释方法的情况下,所述l
exp
通过公式(3)获取:
[0028]
l
exp
=l
exp_pert
=∑i∑
z∈z
mse(f
t
(m
x
(z)),fs(m
x
(z)))
ꢀꢀꢀꢀꢀ
(3)
[0029]
其中,l
exp_pert
为采用扰动解释方法得到的第一损失函数,mse为均方误差函数,f
t
表征所述教师模型,fs表征所述学生模型,z为与输入的所述训练样例中单词的个数等长的01序列,0表示0对应的位置的单词删去,1表示1对应的位置的单词保留,m
x
(z)表征所述训练样例中保留的单词拼接成的语句。
[0030]
根据本发明提供的一种解释指导的知识蒸馏方法,在所述解释模式采用特征选择解释方法的情况下,所述l
exp
通过公式(4)获取:
[0031][0032]
其中,l
exp_fs
为采用特征选择解释方法得到的第一损失函数,mse为均方误差函数,fs表征所述学生模型,xi表征第i个训练样例,表征所述第一解释结果。
[0033]
根据本发明提供的一种解释指导的知识蒸馏方法,在所述训练样例为k分类任务的训练样例情况下,所述l
logit
通过公式(5)获取:l
logit
=∑i∑
k∈k
softmax(f
t
(xi)/t)
·
log(softmax(fs(xi)/t))
ꢀꢀꢀ
(5)
[0034]
其中,f
t
表征所述教师模型,fs表征所述学生模型,xi表征第i个训练样例,t表征知识蒸馏的温度参数,用于对输出的分布的规模进行放缩。
[0035]
根据本发明提供的一种解释指导的知识蒸馏方法,在所述训练样例为k分类任务的训练样例情况下,所述l
ce
通过公式(6)获取:
[0036]
l
ce
=∑i∑
k∈k
[i[yi=k]
·
logp
θ
(yi=k|xi)]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0037]
其中,i表征指示函数,所述指示函数在指示函数中的参数为真时输出1,在指示函数中的参数为假时输出0;p
θ
表征学生模型所建模出的概率,θ表征所述学生模型的参数,xi表征第i个训练样例,yi表征第i个训练样例的真实标签。
[0038]
本发明还提供一种解释指导的知识蒸馏装置,包括:
[0039]
第一解释模块,用于基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0040]
第二解释模块,用于基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0041]
获取模块,用于基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0042]
训练模块,用于基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
[0043]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述解释指导的知识蒸馏方法。
[0044]
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述解释指导的知识蒸馏方法。
[0045]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述解释指导的知识蒸馏方法。
[0046]
本发明提供的解释指导的知识蒸馏方法、装置、电子设备及存储介质,可以基于预先设置的解释模式,分别生成用于表征教师模型和学生模型的推理方式的第一解释结果和第二解释结果,再基于第一解释结果和第二解释结果获取学生模型的训练损失函数,进而通过训练损失函数训练学生模型,以实现知识蒸馏。本发明实施例在生成学生模型的训练损失函数时,考虑了教师模型与学生模型的推理方式,即使教师模型与学生模型的架构不同,考虑教师模型与学生模型的推理方式也能更好地将教师模型的知识蒸馏到学生模型中,可以有效提高学生模型的性能。
附图说明
[0047]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048]
图1是本发明提供的解释指导的知识蒸馏方法的流程示意图之一;
[0049]
图2是本发明提供的解释指导的知识蒸馏方法中学生模型与教师模型的推理方式
的差异示例图;
[0050]
图3是本发明提供的解释指导的知识蒸馏方法中不同解释模式生成的解释结果的示例图;
[0051]
图4是本发明提供的解释指导的知识蒸馏方法的流程示意图之二;
[0052]
图5是本发明提供的解释指导的知识蒸馏方法的结果示意图之一;
[0053]
图6是本发明提供的解释指导的知识蒸馏方法的结果示意图之二;
[0054]
图7是本发明提供的解释指导的知识蒸馏方法的结果示意图之三;
[0055]
图8是本发明提供的解释指导的知识蒸馏装置的结构示意图;
[0056]
图9是本发明提供的电子设备的结构示意图。
具体实施方式
[0057]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]
为了便于更加清晰地理解本发明各实施例,首先对一些相关的技术知识进行如下介绍。
[0059]
预训练语言模型压缩主要有以下三种方法:权重量化,结构剪枝和知识蒸馏。
[0060]
权重量化主要减少存储参数的比特数,如一般来说模型中的参数都是用32bit存储,如果选择使用16比特存储即可减少一半的参数量。权重量化方法主要研究在降低参数精度的前提下使得模型的性能尽可能不受损失。
[0061]
结构剪枝主要对模型的结构进行剪枝,即将模型结构中冗余的部分删去,即可减少该部分结构的参数量,如何选择出模型结构中冗余的部分是结构剪枝方法主要研究的内容。
[0062]
知识蒸馏主要让轻量级的学生模型去模仿繁重的教师模型,通过匹配两个模型在相同样例上的输出的分布,将教师模型中的知识迁移到学生模型中,如何更好地将教师模型中的知识迁移到学生模型中使得学生模型取得更好的性能是知识蒸馏方法主要的研究内容。
[0063]
近年来,很多工作对基于知识蒸馏的预训练语言模型压缩方法进行了改进。具体来说,除了让学生模型模仿教师模型在样例上输出的分布之外,现有工作尝试将更多的教师模型中的内容迁移到学生模型中来。
[0064]
例如,提出利用教师模型的隐层表示,首先选择好教师模型与学生模型的层与层之间的对应关系,即学生模型的每一层对应到教师模型的哪一层,定义好对应关系之后使得相对应的层的隐层表示也尽可能相似。即学生模型的每一层都要学习教师模型的对应的层的表示,这样可以更好的将教师模型中的知识迁移过来。
[0065]
又例如,提出在不同的层对应策略上,实验证明skip方式可以取得更好的效果,即使学生模型的每一层对应到教师模型的间隔的层上,相比于对应到最后几层上,这样可以学习到教师模型中从浅层到深层的全部信息。
[0066]
又例如,在此基础之上,要求学生模型的每一层不仅学习教师模型对应的层的表
示,还要求每一层的注意力(attention)矩阵学习教师模型对应的层的attention矩阵,这样就可以使得学生模型学习到更多的教师模型的信息,从而使得学生模型取得更好的性能。同时,该方法提出在预训练阶段就进行一次蒸馏,同时在任务上除了使得学生模型在原来的数据集上学习教师模型,进行进一步的数据增强,使得学生模型在增加的大量数据上向教师模型学习,以更好的学习到教师模型中的知识。
[0067]
但是,上述这些工作有一个很大的局限性,即为了让学生模型更好地学习教师模型中的知识,让学生模型学习教师模型中的各层的信息,要求学生模型的架构与教师模型类似。即这些工作仅适用于层的压缩,学生模型本质上是层数更少的教师模型,当学生模型是其他架构时,这些工作就不再适用。
[0068]
下面结合附图描述本发明的解释指导的知识蒸馏方法、装置、电子设备及存储介质。
[0069]
图1是本发明提供的解释指导的知识蒸馏方法的流程示意图之一,如图1所示,该方法包括步骤101至步骤104;其中:
[0070]
步骤101、基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0071]
步骤102、基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0072]
步骤103、基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0073]
步骤104、基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
[0074]
具体地,相关技术中,目前的知识蒸馏方法仅适用于层的压缩,即通过对教师模型进行层的压缩,以在不影响学生模型的性能的基础上,减小学生模型的数据量,但在学生模型与教师模型的架构之间存在较大差异时,利用目前的知识蒸馏方法得到的学生模型,与教师模型之间的性能差异大,学生模型的性能损失严重,即目前的知识蒸馏方法不适用于学生模型与教师模型的架构存在较大差异的情况。这是因为,在学生模型与教师模型的输出分布相同的情况下,其推理方式可能完全不同。
[0075]
本发明实施例中,可以先使用现有技术训练在某一数据集上训练一个强的模型作为教师模型,再使用现有可解释性技术设置好解释方法作为解释模式,以基于预先设置的解释模式生成第一解释结果,用于表征训练好的教师模型的推理方式,再基于解释模式生成第二解释结果,用于表征学生模型的推理方式。
[0076]
需要说明的是,大模型往往是单个复杂网络或者是若干网络的集合,拥有良好的性能和泛化能力,而小模型因为网络规模较小,表达能力有限。
[0077]
可以将大模型作为教师模型,将小模型作为学生模型,以利用教师模型学习到的知识去指导学生模型训练,使得学生模型具有与教师模型相当的性能,但是参数数量大幅降低,从而实现模型压缩与加速,可以将上述过程称为知识蒸馏或迁移学习。
[0078]
可选地,教师模型例如选择在数据集上进行微调之后的base版本的bert模型作为教师模型。
[0079]
还需要说明的是,上述教师模型和学生模型,均可以基于样例进行预测,样例例如
为“the movie exists for its soccer action and fine acting.”;而模型的推理方式可以理解为,在模型得到预测结果的过程中,样例中各单词对得到预测结果的贡献程度,可以设置0-1之间的数字表征教师模型的推理方式和学生模型的推理方式,可以设置越靠近1,则对预测结果的贡献越大。
[0080]
可选地,上述解释模式采用的解释方法,其根据工作机制可以被分为三类:基于梯度的解释方法(gradient-based),基于扰动的解释方法(perturbation-based),特征选择解释方法(feature selection)。前两种解释方法为输入中每一个单词计算其对预测的具体贡献大小,第三种解释方法为选择输入中对预测贡献最大的单词。
[0081]
在生成第一解释结果和第二解释结果后,可以基于第一解释结果和第二解释结果,获取学生模型的训练损失函数,基于训练损失函数训练学生模型,将教师模型中的知识蒸馏到学生模型中。
[0082]
在本发明实施例中,可以基于预先设置的解释模式,分别生成用于表征教师模型和学生模型的推理方式的第一解释结果和第二解释结果,再基于第一解释结果和第二解释结果获取学生模型的训练损失函数,进而通过训练损失函数训练学生模型,以实现知识蒸馏。本发明实施例在生成学生模型的训练损失函数时,考虑了教师模型与学生模型的推理方式,即使教师模型与学生模型的架构不同,考虑教师模型与学生模型的推理方式也能更好地将教师模型的知识蒸馏到学生模型中,可以有效提高学生模型的性能。
[0083]
可选地,在所述基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数之前,可以将训练样例输入至所述教师模型,得到所述教师模型输出的第一预测结果;其中,所述教师模型用于基于所述训练样例进行预测,得到所述第一预测结果,所述训练样例为包括至少一个单词的语句;
[0084]
将所述训练样例输入至所述学生模型,得到所述学生模型输出的第二预测结果;其中,所述学生模型用于基于所述训练样例进行预测,得到所述第二预测结果;
[0085]
所述基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数的实现方式可以包括:
[0086]
基于所述第一解释结果、所述第二解释结果、所述第一预测结果和所述第二预测结果,获取所述学生模型的训练损失函数。
[0087]
具体地,可以将训练样例输入至教师模型,得到教师模型输出的第一预测结果,并将训练样例输入至学生模型,得到学生模型输出的第二预测结果,以结合第一解释结果、第二解释结果、第一预测结果和第二预测结果,获取学生模型的训练损失函数。
[0088]
可选地,所述基于所述第一解释结果、所述第二解释结果、所述第一预测结果和所述第二预测结果,获取所述学生模型的训练损失函数的实现方式可以包括:
[0089]
计算所述第一解释结果和所述第二解释结果之间的第一损失函数;
[0090]
计算所述第一预测结果和所述第二预测结果之间的第二损失函数;
[0091]
基于所述第一损失函数、所述第二损失函数和所述学生模型的现有损失函数,获取所述学生模型的训练损失函数。
[0092]
具体地,计算第一解释结果和第二解释结果之间的第一损失函数,以表征第一解释结果与第二解释结果之间的差异;计算第一预测结果和第二预测结果之间的第二损失函数,以表征第一预测结果与第二预测结果之间的差异,再结合第一损失函数、第二损失函数
和学生模型的现有损失函数,获取学生模型的训练损失函数,以训练学生模型,使学生模型的输出分布与教师模型的输出分布尽可能相似,同时使学生模型与教师模型的推理方式(解释结果)尽可能相似,以更好地将教师模型中的知识迁移到学生模型中。
[0093]
需要说明的是,学生模型的现有损失函数,可以是基于学生模型的预测结果和人工标注的真实标签得到的,现有损失函数可以用来表征学生模型的预测结果与真实标签之间的差异。
[0094]
举例来说,教师模型和学生模型需要执行文本分类的任务,就是预测样例是正向的情感(pos)还是负向的情感(neg),例如预测样例“the movie exists for its soccer action and fine acting.”是pos还是neg,可以通过预测样例属于两个类别(pos还是neg)的概率,哪个大就预测相应的情感极性。
[0095]
图2是本发明提供的解释指导的知识蒸馏方法中学生模型与教师模型的推理方式的差异示例图,如图2所示,首先分别将样例“the movie exists for its soccer action and fine acting.”输入至教师模型和学生模型,以由教师模型和学生模型预测上述样例的情感极性,例如教师模型预测上述样例属于pos的概率为0.99,属于neg的概率为0.01,相关技术仅是通过训练学生模型,以将学生模型的输出分布尽可能地贴近教师模型的输出分布,例如图中训练完学生模型之后,使得学生模型预测上述样例的分布与教师模型一致,即属于pos的概率为0.99,属于neg的概率为0.01。
[0096]
本发明实施例设置了解释器,教师模型和学生模型可以将预测结果和模型本身的参数信息输入至解释器,以由解释器基于预先设置的解释模式,分别生成表征教师模型和学生模型的推理方式的第一解释结果和第二解释结果,第一解释结果例如为e
t
,第二解释结果例如为es,图中可见,在e
t
和es中标记出了样例中各单词对预测结果的贡献程度,可以看出教师模型和学生模型的推理方式之间存在差异,本发明实施例可以通过减小教师模型和学生模型的推理方式之间的差异,使得学生模型可以更好地模仿教师模型。
[0097]
图3是本发明提供的解释指导的知识蒸馏方法中不同解释模式生成的解释结果的示例图,如图3所示,针对样例“the most purely enjoyable and satisfying evenings.”,分别采用基于梯度的解释方法、基于扰动的解释方法和特征选择解释方法进行解释,得到的解释结果之间也存在差异。
[0098]
可选地,所述基于所述第一损失函数、所述第二损失函数和所述学生模型的现有损失函数,获取所述学生模型的训练损失函数的实现方式可以包括:
[0099]
基于所述第一损失函数l
exp
、所述第二损失函数l
logit
和所述学生模型的现有损失函数l
ce
,采用公式(1),获取所述学生模型的训练损失函数l
total

[0100]
l
total
=αl
ce
(1-α)l
logit
βl
exp
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0101]
其中,α为平衡各项损失的第一权重,β为平衡各项损失的第二权重。
[0102]
可选地,在所述解释模式采用梯度解释方法的情况下,所述l
exp
可以通过公式(2)获取:
[0103][0104]
其中,l
exp_gra
为采用梯度解释方法得到的第一损失函数,mse为均方误差函数,l
t
为所述教师模型的预测损失,ls为所述学生模型的预测损失,为所述教师模型表征所述训
练样例中第i个样例的第j个词的第一子向量,为所述学生模型表征所述训练样例中第i个样例的第j个词的第二子向量。
[0105]
可选地,在所述解释模式采用扰动解释方法的情况下,所述l
exp
可以通过公式(3)获取:
[0106]
l
exp
=l
exp_pert
=∑i∑
z∈z
mse(f
t
(m
x
(z)),fs(m
x
(z)))
ꢀꢀꢀꢀ
(3)
[0107]
其中,l
exp_pert
为采用扰动解释方法得到的第一损失函数,mse为均方误差函数,f
t
表征所述教师模型,fs表征所述学生模型,z为与输入的所述训练样例中单词的个数等长的01序列,0表示0对应的位置的单词删去,1表示1对应的位置的单词保留,m
x
(z)表征所述训练样例中保留的单词拼接成的语句。
[0108]
具体地,对于扰动解释方法来说,需要对输入的样例进行一系列扰动,来观察输出的预测结果的变化,从而计算出输入的样例中每个单词对预测结果的重要程度,为了提高效率,可以直接要求教师模型与学生模型在扰动后的输入上也得到尽可能相同的输出。
[0109]
可选地,在所述解释模式采用特征选择解释方法的情况下,所述l
exp
可以通过公式(4)获取:
[0110][0111]
其中,l
exp_fs
为采用特征选择解释方法得到的第一损失函数,mse为均方误差函数,fs表征所述学生模型,xi表征第i个训练样例,表征所述第一解释结果。
[0112]
具体地,对于特征选择解释方法,需要重参数化进行大量的采样,耗时过长,同时该解释方法需要训练以满足忠实性等特性。考虑到计算教师模型与学生模型的解释的差异,是尽可能使得学生模型的第一解释结果与教师模型的第二解释结果保持一致,考虑如何使得教师模型的解释满足特征选择解释方法在学生模型的训练损失最小。
[0113]
可选地,在所述训练样例为k分类任务的训练样例情况下,所述l
logit
可以通过公式(5)获取:
[0114]
l
logit
=∑i∑
k∈k
softmax(f
t
(xi)/t)
·
log(softmax(fs(xi)/t))
ꢀꢀꢀꢀ
(5)
[0115]
其中,f
t
表征所述教师模型,fs表征所述学生模型,xi表征第i个训练样例,t表征知识蒸馏的温度参数,用于对输出的分布的规模进行放缩。
[0116]
可选地,在所述训练样例为k分类任务的训练样例情况下,所述l
ce
通过公式(6)获取:
[0117]
l
ce
=∑i∑
k∈k
[i[yi=k]
·
logp
θ
(yi=k|xi)]
ꢀꢀꢀꢀꢀꢀꢀ
(6)
[0118]
其中,i表征指示函数,所述指示函数在指示函数中的参数为真时输出1,在指示函数中的参数为假时输出0;p
θ
表征学生模型所建模出的概率,θ表征所述学生模型的参数,xi表征第i个训练样例,yi表征第i个训练样例的真实标签。
[0119]
具体地,对于k分类任务来说,可以采用标准的交叉熵损失函数获取l
ce

[0120]
下面举例说明本发明实施例的解释指导的知识蒸馏方法。
[0121]
图4是本发明提供的解释指导的知识蒸馏方法的流程示意图之二,如图4所示,该方法包括步骤401至步骤405;
[0122]
步骤401、使用现有技术训练在某一数据集上训练一个强的模型作为教师模型。
[0123]
具体地,需要在某一数据集上训练好一个强的教师模型。一般来说,选择一个强的
预训练语言模型在该数据集上进行微调即可,本发明进行的实验选择bert的base版本在数据集上进行微调之后作为教师模型。考虑到实验的数据集都为分类任务,选择标准的交叉熵损失函数即可。以k分类任务为例,即对于输入xi与其对应的标签yi,模型参数为θ,优化以下损失函数(7):
[0124]
minl(θ)=∑i∑
k∈k
[i[yi=k]
·
logp
θ
(yi=k|xi)]
ꢀꢀꢀꢀꢀꢀ
(7)
[0125]
其中,i是指示函数,所述指示函数在指示函数中的参数为真时输出1,在指示函数中的参数为假时输出0。训练好教师模型之后,则保持其参数不再改变,仅作预测使用。
[0126]
步骤402、使用现有可解释性技术设置好解释方法,以基于解释方法,输出训练好的模型(教师模型和学生模型)的解释。
[0127]
步骤403、训练弱的学生模型,让教师模型与学生模型同时在原数据集的训练集上进行预测,计算两个模型在相同样例上输出分布的差异。
[0128]
具体地,在步骤1训练教师模型的数据集上,让训练好的教师模型和要训练的弱的学生模型在该数据集的训练集上进行预测,计算两个模型在相同样例上输出的差异。k分类任务为例,对于教师模型f
t
和学生模型fs来说,即计算以下差异(第二损失函数l
logit
):
[0129]
l
logit
=∑i∑
k∈k
softmax(f
t
(xi)/t)
·
log(softmax(fs(xi)/t))
ꢀꢀꢀ
(5)
[0130]
其中,f
t
表征所述教师模型,fs表征所述学生模型,xi表征第i个训练样例,t表征知识蒸馏的温度参数,用于对输出的分布的规模进行放缩。
[0131]
步骤404、基于解释方法,同时解释教师模型和学生模型在训练集上的预测结果,计算两个模型在相同样例上解释的差异。
[0132]
具体地,在步骤3的基础之上,用步骤2中的解释方法为教师模型和学生模型做预测的同时生成相应的解释,即同时给出做出该预测的推理方式,计算两个模型在相同样例上的解释的差异。对于不同机制的解释方法,计算该差异的方式也不同。
[0133]
使用相同的解释方法来获得教师模型和学生模型的解释,但是当前解释方法生成解释的时间消耗较大,因此本发明还对不同机制的解释方法提出了不同的时间优化策略。
[0134]
对于梯度解释方法来说,l为模型预测的损失,x
i,j
表示数据中第i个样例的第j个词,根据梯度解释方法计算的解释差异(第一损失函数l
exp
)如下:
[0135][0136]
其中,l
exp_gra
为采用梯度解释方法得到的第一损失函数,mse为均方误差函数,l
t
为所述教师模型的预测损失,ls为所述学生模型的预测损失,为所述教师模型表征所述训练样例中第i个样例的第j个词的第一子向量,为所述学生模型表征所述训练样例中第i个样例的第j个词的第二子向量。
[0137]
对于扰动解释方法来说,需要对输入进行一系列扰动来观察输出的变化从而计算出输入中每个单词的重要程度,为了提高效率,直接要求教师模型与学生模型在扰动后的输入上也得到尽可能的输出即可,z用于表征扰动输入,z为与输入长度等长的01序列,0表示对应位置的单词删去,1表示对应位置的单词保留,通过m
x
(z)来得到z所对应的扰动后的输入,记z为所有扰动输入的集合,则根据扰动解释方法计算的解释差异(第一损失函数l
exp
)如下:
[0138]
l
exp
=l
exp_pert
=∑i∑
z∈z
mse(f
t
(m
x
(z)),fs(m
x
(z)))
ꢀꢀꢀꢀ
(3)
[0139]
其中,l
exp_pert
为采用扰动解释方法得到的第一损失函数,mse为均方误差函数,f
t
表征所述教师模型,fs表征所述学生模型,z为与输入的所述训练样例中单词的个数等长的01序列,0表示0对应的位置的单词删去,1表示1对应的位置的单词保留,m
x
(z)表征所述训练样例中保留的单词拼接成的语句。
[0140]
对于特征选择解释方法,需要重参数化进行大量的采样,耗时过长,同时该解释方法需要训练以满足忠实性等特性。考虑到计算教师模型与学生模型的解释的差异是尽可能使得学生模型的解释与教师模型的解释保持一致,考虑如何使得教师模型的解释满足特征选择解释方法在学生模型的训练损失最小。对于输入xi来说,是特征选择模型为教师模型生成的解释,为使得学生模型的特征选择解释也是计算以下差异则等价于计算两个模型的特征选择解释的差异(第一损失函数l
exp
):
[0141][0142]
其中,l
exp_fs
为采用特征选择解释方法得到的第一损失函数,mse为均方误差函数,fs表征所述学生模型,xi表征第i个训练样例,表征所述第一解释结果。
[0143]
步骤405、将两个模型在相同样例上输出分布的差异和两个模型在相同样例上解释的差异添加到弱的学生模型的训练损失函数(现有损失函数)里,训练弱的学生模型。
[0144]
具体地,训练弱的学生模型时,θ为学生模型fs的参数,对于k分类任务来说,标准的交叉熵损失函数(现有损失函数l
ce
)如下所示:
[0145]
l
ce
=∑i∑
k∈k
[i[yi=k]
·
logp
θ
(yi=k|xi)]
ꢀꢀꢀꢀꢀꢀ
(6)
[0146]
其中,i表征指示函数,所述指示函数在指示函数中的参数为真时输出1,在指示函数中的参数为假时输出0;p
θ
表征学生模型所建模出的概率,θ表征所述学生模型的参数,xi表征第i个训练样例,yi表征第i个训练样例的真实标签。
[0147]
将步骤3和步骤4计算出来的差异加到该现有损失函数上之后,总的训练损失函数(学生模型的训练损失函数l
total
)为:
[0148]
l
total
=αl
ce
(1-α)l
logit
βl
exp
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0149]
其中,α为平衡各项损失的第一权重,β为平衡各项损失的第二权重。
[0150]
为了验证系统的有效性,本发明在通用语言理解评测标准glue上的7个数据集进行了实验探索。包括文本分类数据集sst-2,两个语义相似度数据集mrpc和qqp,三个自然语言推理数据集mnli(包括mnli-m和mnli-mm),qnli和rte。
[0151]
所有的实验均以bert-base作为教师模型,分别使用6层的bert和4层的bert作为学生模型进行实验。
[0152]
用于对比的方法包括:
[0153]
1、微调(fine tuning,ft):即仅仅将学生模型在数据集上进行普通的微调;
[0154]
2、知识蒸馏(knowledge distillation,kd):使学生模型的输出分布与教师模型的接近;
[0155]
3、耐心的知识蒸馏(patient knowledge distillation,pkd):进一步使得学生模型的隐层表示与教师模型靠近;
[0156]
4、pkd attention:进一步使得学生模型的attention矩阵和教师模型靠近。
[0157]
最终结果如下图5所示,图5是本发明提供的解释指导的知识蒸馏方法的结果示意图之一,如图5所示,在通用语言理解评测标准glue的七个评测数据集上,对于两种不同的学生模型,相比于现有的基线方法本发明所提出的解释指导的知识蒸馏方法均取得了更好的效果。其次,在本发明所选用的三种不同机制的解释方法当中,基于扰动的解释方法指导的知识蒸馏方法取得了最好的效果。
[0158]
同时,图6是本发明提供的解释指导的知识蒸馏方法的结果示意图之二,如图6所示,在预训练语言模型的更广泛的评测标准下,如泛化性测试以及忠诚性测试两个测试上,本发明所提出的方法同样取得了比基线方法更好的效果。
[0159]
除此之外,对于现有方法无法在学生模型与教师模型架构不同的条件下无法适用的问题,本发明所提出的方法仍然可以适用。图7是本发明提供的解释指导的知识蒸馏方法的结果示意图之三,如图7所示,当学生模型为简单的双向长短期记忆网络(long short-term memory,lstm)时,本发明提出的方法仍然有效。
[0160]
需要说明的是,本发明实施例可适用于任何基于知识蒸馏的模型压缩方法,均可更好地将训练好的强的教师模型中的知识迁移到弱的学生模型当中来。
[0161]
本发明实施例中,在相同样例上,可以使学生模型的输出分布尽可能地向教师模型靠近,这样相当于给了学生模型一个软标签,即学生模型学习到了远远超过真实标签的知识,这部分知识的来源就是教师模型;另外,在相同样例上,可以使得学生模型的推理方式也向教师模型靠近,这样学生模型不仅学会了教师模型的输出分布,同时学会了如何得到这个输出分布,从而学习到了更多的教师模型中的知识,可以进一步改善现有的基于知识蒸馏的预训练语言模型方法。经过实验证明,此方法在通用语言理解评测标准glue上的7个数据集上均好于其他方法。
[0162]
下面对本发明提供的解释指导的知识蒸馏装置进行描述,下文描述的解释指导的知识蒸馏装置与上文描述的解释指导的知识蒸馏方法可相互对应参照。
[0163]
图8是本发明提供的解释指导的知识蒸馏装置的结构示意图,如图8所示,该解释指导的知识蒸馏装置800包括:
[0164]
第一解释模块801,用于基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0165]
第二解释模块802,用于基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0166]
获取模块803,用于基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0167]
训练模块804,用于基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
[0168]
在本发明实施例中,可以由第一解释模块和第二解释模块分别基于预先设置的解释模式,生成用于表征教师模型和学生模型的推理方式的第一解释结果和第二解释结果,再由获取模块基于第一解释结果和第二解释结果获取学生模型的训练损失函数,进而由训练模块通过训练损失函数训练学生模型,以实现知识蒸馏。本发明实施例在生成学生模型的训练损失函数时,考虑了教师模型与学生模型的推理方式,即使教师模型与学生模型的
架构不同,考虑教师模型与学生模型的推理方式也能更好地将教师模型的知识蒸馏到学生模型中,可以有效提高学生模型的性能。
[0169]
可选地,解释指导的知识蒸馏装置800还包括:
[0170]
第一预测模块,用于将训练样例输入至所述教师模型,得到所述教师模型输出的第一预测结果;其中,所述教师模型用于基于所述训练样例进行预测,得到所述第一预测结果,所述训练样例为包括至少一个单词的语句;
[0171]
第二预测模块,用于将所述训练样例输入至所述学生模型,得到所述学生模型输出的第二预测结果;其中,所述学生模型用于基于所述训练样例进行预测,得到所述第二预测结果;
[0172]
获取模块803具体用于基于所述第一解释结果、所述第二解释结果、所述第一预测结果和所述第二预测结果,获取所述学生模型的训练损失函数。
[0173]
可选地,获取模块803还具体用于:
[0174]
计算所述第一解释结果和所述第二解释结果之间的第一损失函数;
[0175]
计算所述第一预测结果和所述第二预测结果之间的第二损失函数;
[0176]
基于所述第一损失函数、所述第二损失函数和所述学生模型的现有损失函数,获取所述学生模型的训练损失函数。
[0177]
可选地,获取模块803还具体用于:基于所述第一损失函数l
exp
、所述第二损失函数l
logit
和所述学生模型的现有损失函数l
ce
,采用公式(1),获取所述学生模型的训练损失函数l
total

[0178]
l
total
=αl
ce
(1-α)l
logit
βl
exp
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0179]
其中,α为平衡各项损失的第一权重,β为平衡各项损失的第二权重。
[0180]
可选地,在所述解释模式采用梯度解释方法的情况下,所述l
exp
通过公式(2)获取:
[0181][0182]
其中,l
exp_gra
为采用梯度解释方法得到的第一损失函数,mse为均方误差函数,l
t
为所述教师模型的预测损失,ls为所述学生模型的预测损失,为所述教师模型表征所述训练样例中第i个样例的第j个词的第一子向量,为所述学生模型表征所述训练样例中第i个样例的第j个词的第二子向量。
[0183]
可选地,在所述解释模式采用扰动解释方法的情况下,所述l
exp
通过公式(3)获取:
[0184]
l
exp
=l
exp_pert
=∑i∑
z∈z
mse(f
t
(m
x
(z)),fs(m
x
(z)))
ꢀꢀꢀꢀ
(3)
[0185]
其中,l
exp_pert
为采用扰动解释方法得到的第一损失函数,mse为均方误差函数,f
t
表征所述教师模型,fs表征所述学生模型,z为与输入的所述训练样例中单词的个数等长的01序列,0表示0对应的位置的单词删去,1表示1对应的位置的单词保留,m
x
(z)表征所述训练样例中保留的单词拼接成的语句。
[0186]
可选地,在所述解释模式采用特征选择解释方法的情况下,所述l
exp
通过公式(4)获取:
[0187][0188]
其中,l
exp_fs
为采用特征选择解释方法得到的第一损失函数,mse为均方误差函数,fs
表征所述学生模型,xi表征第i个训练样例,表征所述第一解释结果。
[0189]
可选地,在所述训练样例为k分类任务的训练样例情况下,所述l
logit
通过公式(5)获取:
[0190]
l
logit
=∑i∑
k∈k
softmax(f
t
(xi)/t)
·
log(softmax(fs(xi)/t))
ꢀꢀꢀꢀ
(5)
[0191]
其中,f
t
表征所述教师模型,fs表征所述学生模型,xi表征第i个训练样例,t表征知识蒸馏的温度参数,用于对输出的分布的规模进行放缩。
[0192]
可选地,在所述训练样例为k分类任务的训练样例情况下,所述l
ce
通过公式(6)获取:
[0193]
l
ce
=∑i∑
k∈k
[i[yi=k]
·
logp
θ
(yi=k|xi)]
ꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0194]
其中,i表征指示函数,所述指示函数在指示函数中的参数为真时输出1,在指示函数中的参数为假时输出0;p
θ
表征学生模型所建模出的概率,θ表征所述学生模型的参数,xi表征第i个训练样例,yi表征第i个训练样例的真实标签。
[0195]
图9是本发明提供的电子设备的结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(communications interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行解释指导的知识蒸馏方法,该方法包括:
[0196]
基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0197]
基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0198]
基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0199]
基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
[0200]
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0201]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的解释指导的知识蒸馏方法,该方法包括:
[0202]
基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0203]
基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0204]
基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0205]
基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所
述学生模型中。
[0206]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的解释指导的知识蒸馏方法,该方法包括:
[0207]
基于预先设置的解释模式,生成用于表征教师模型的推理方式的第一解释结果;
[0208]
基于所述解释模式,生成用于表征学生模型的推理方式的第二解释结果;
[0209]
基于所述第一解释结果和所述第二解释结果,获取所述学生模型的训练损失函数;
[0210]
基于所述训练损失函数训练所述学生模型,以将所述教师模型中的知识蒸馏到所述学生模型中。
[0211]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0212]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0213]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献