基于知识蒸馏和量化的预训练模型压缩方法及系统与流程

未命名 09-13 阅读:98 评论:0


1.本发明涉及智能语音领域,尤其涉及一种基于知识蒸馏和量化的预训练模型压缩方法及系统。


背景技术:

2.利用大量数据预训练语音识别模型,然后在特定的语音下游任务中对预训练的语音识别模型进行微调。这已经成为常用的语音识别模型的训练方法。这些预训练模型在各种asr(automatic speech recognition,自动语音识别)任务中都取得了优异的识别结果。然而,这些预训练模型中的编码器通常是以无监督或自监督的方式训练的,并且缺乏用于生成有用输出的具有可比性能的解码器。虽然预训练提供了高质量的语音表示,但对微调的需求限制了它的实用性和影响。
3.为了避免这种情况,现有技术通常会使用基于transformer的编码器-解码器模型whisper在大量多语言弱监督数据上进行了训练,并在各种基准上获得了高质量的识别结果,而无需对特定数据集进行微调。然而,whisper具有大量参数和较长的推理时间,不适用于手机等资源受限的轻量级设备。
4.现有技术通常会进行压缩处理,包括:
5.1、基于知识蒸馏的预训练模型压缩:通过知识蒸馏将大的预训练模型的知识迁移到小模型,从而降低模型的大小并且不会过度损失原有模型性能。
6.2、基于量化的预训练模型压缩:通过对预训练模型中的层进行8比特的量化,将原来的预训练模型中占用存储较大的高精度的参数用占用存储较小的低精度的参数替换,从而能够压缩模型并且加速推理。
7.在实现本发明过程中,发明人发现相关技术中至少存在如下问题:
8.1、基于知识蒸馏的预训练模型的压缩原有知识蒸馏的模型压缩太过于局限,不能从教师模型中有效发现适合学生模型的信息,从而导致压缩到小模型之后性能急剧下降。
9.2、基于量化的预训练模型压缩的模型量化的方式对模型压缩来说会损失精度,而且模型每层对量化的敏感性也不同,直接量化也会导致性能的急剧下降。


技术实现要素:

10.为了至少解决现有技术中原有知识蒸馏的模型压缩只能静态选取固定层进行知识的蒸馏,这些固定的层可能不适合学生模型导致学生模型不能有效从教师模型中学到有用知识的问题。第一方面,本发明实施例提供一种基于知识蒸馏和量化的预训练模型压缩方法,包括:
11.将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;
12.通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于
所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;
13.至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。
14.第二方面,本发明实施例提供一种基于知识蒸馏和量化的预训练模型压缩系统,包括:
15.量化损失确定程序模块,用于将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;
16.蒸馏损失确定程序模块,用于通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;
17.压缩训练程序模块,用于至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。
18.第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的基于知识蒸馏和量化的预训练模型压缩方法的步骤。
19.第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的基于知识蒸馏和量化的预训练模型压缩方法的步骤。
20.本发明实施例的有益效果在于:在知识蒸馏和量化互相指导的过程中通过量化损失来指导蒸馏层的选取,选取对学生模型最适合量化的层来进行蒸馏;通过蒸馏损失来指导量化层的选取,选取最适合量化的层来进行量化,选取进一步压缩模型的同时保证性能没有损失。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩方法的流程图;
23.图2是本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩方法的整体流程示意图;
24.图3是本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩方法的三种whisper模型的架构及其在两个测试集上的初始解码结果示意图;
25.图4是本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩方法的
在语料库上设置不同的模型大小和压缩比的对比示意图;
26.图5是本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩系统的结构示意图;
27.图6为本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩的电子设备的实施例的结构示意图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.如图1所示为本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩方法的流程图,包括如下步骤:
30.s11:将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;
31.s12:通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;
32.s13:至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。
33.在本实施方式中,本方法基于kd(knowledge distillation,知识蒸馏)进行模型的压缩(区别于常规的压缩理解,本方法的压缩是利用轻量化的学生模型向教师模型学习,使轻量化的学生模型达到趋近于教师模型的效果)。作为被学习的预训练模型(也就是教师模型),通常使用680k小时的弱监督数据训练的whisper模型。
34.对于步骤s11,本方法的基于transformer的知识蒸馏主要是对语音识别模型内的预测层和中间隐层蒸馏。
35.预测层的蒸馏主要是对学生模型和教师模型的输出进行正则化,本方法利用教师模型的预测层来拟合学生模型的预测层,从而拉近它们之间的距离,其中,预测层蒸馏的损失为:
36.l
pred
=kld(z
t
/t,zs/t)
37.其中z
t
和zs分别为学生和老师预测的对数向量,t为蒸馏的温度值。
38.对于中间层的隐层蒸馏,由于whisper有多个transformer层,本方法需要在中间隐藏层蒸馏之前知道学生模型的哪些层与教师模型的哪些层相匹配。假设学生网络有m层transformer,教师网络有n层transformer,其中,n≥m,本方法需要从教师网络的n层中选择m层与学生网络相对应。然后定义一个函数nj=f(mi),将学生网络的mi层与教师网络的nj层进行匹配,即学生网络的mi层学习了教师网络nj层的知识。形式上,学生可以通过最小化以下目标从老师那里获得知识:
[0039][0040]
其中,和分别表示学生模型和教师模型的第i层和f(i)层的隐藏层特征向量,λi是表示第i层蒸馏重要性的超参数。对于映射函数f(i)有以下三种:
[0041]
1、静态匹配:设
[0042]
2、动态匹配:对于学生模型的每一层i,本方法从教师模型中选择mse(mean square error,均方误差)最小的层f(i)。
[0043][0044]
其中,wa是一个线性变换矩阵。
[0045]
3、约束动态匹配:在上述公式的基础上约束f(i)为单调递增函数。
[0046]
对上述说明的预测层以及中间隐层模型量化,模型量化的目的是用在较低精度下占用较少存储空间的参数代替原模型的全精度参数,使整个模型占用的空间更少,推理速度更快。
[0047]
设定n为均匀量化,模型中量化矩阵可以选择的整数n的集合定义为:
[0048]
n∈{0,
±
1,
±
2,...,
±2n-1
}
[0049]
对于transformer,本方法可以为它的每个线性层构造一个量化表。以模型的第l线性层为例,量化参数q
l
的取值范围如下:
[0050][0051]
其中α
l
表示第l层的缩放因子,根据原始参数灵活缩放量化后当前层的参数覆盖率,n
l
为第l层的量化精度数。进一步地,进行apot(additive powers-of-two,加法二次幂量化),在apot量化中,每个层级是n个2次幂项的和,公式如下所示:
[0052][0053]
其中,γ
l
为缩放系数,以确保q
l
中的最大为α
l
。k称为基比特宽度,它是每个加性项的比特宽度,n是加性项的个数。量化操作定义为:
[0054][0055]
其中,g为量化运算。在量化模型的训练阶段,第1层的量化参数q
l
应尽可能接近第l层全精度模型的参数w
l
。argmin表示使目标函数取值最小的变量值,目的是使教师模型内隐层的量化前权重与量化后的权重之间的变量保持最小。
[0056]
在确定出量化操作后,本方法进一步提出了一种新的kdq(knowledge distillation and quantization,知识的提炼与量化)相互指导的层选择方法。由于隐藏层需要选择适合蒸馏的层,设想可以使用量化损失来指导蒸馏层的选择,以便从教师网络中提取适合量化的层。本方法基于量化操作g(w
l
)定义学生网络第1层的量化损失l
quan
如下:
[0057][0058]
上述公式中,和分别为学生模型第l层量化前后的权重,wa为线性映射层将教师模型的维度投影到和学生模型一致,为教师模型的第f(l)层权重,f(l)为隐层匹配映射函数,表示学生模型的第l层应该和教师模型的第f(l)层进行匹配。
[0059]
对于步骤s12,通过量化损失来指导蒸馏层的选择,将映射函数定义为:
[0060][0061]
同时,通过蒸馏损失来指导量化层的选择,蒸馏损失由上述公式l
pred
和公式l
hidn
得到:
[0062][0063]
式中,为学生模型第l层的蒸馏损失。
[0064]
对于步骤s13,通过上述步骤得到了量化损失l
quan
以及蒸馏损失l
kd
,至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,整体流程如图2所示。
[0065]
作为一种实施方式,所述至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练包括:
[0066]
将测试数据输入至所述学生模型,得到预测标签结果;
[0067]
将所述测试数据输入至所述教师模型,得到真实标签结果,根据所述预测标签结果以及所述真实标签结果确定交叉熵损失;
[0068]
基于所述交叉熵损失、所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,直至所述交叉熵损失达到预设目标为止。
[0069]
在本实施方式中,为了验证压缩后学生模型的效果,利用测试数据对学生模型进行测试,将测试语音输入至教师模型,将教师模型得到的结果作为真实标签结果,将测试语音输入至学生模型,得到学生模型输出的预测标签结果,通过真实标签结果以及预测标签结果确定出交叉熵损失
[0070]
最终将联合蒸馏和量化一起训练,整个模型训练的损失函数为:
[0071][0072]
其中,和y分别为学生模型和标签的输出概率分布。
[0073]
作为一种实施方式,所述至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练包括:
[0074]
对所述学生模型内的所有蒸馏层进行量化。
[0075]
对所述学生模型内的部分蒸馏层进行量化,其中,所述部分蒸馏层基于对应的蒸馏损失从小到大排序选取。
[0076]
在本实施方式中,考虑到预训练模型压缩后的大小,本方法设计了两种量化训练方式,考虑到压缩的效率,将集合按递增的顺序排序,分别选择前50%的层和所有的层进行量化。这样确保压缩效率的基础上,压缩后的学生模型也可以保
持较高的精度,也可以对所有蒸馏层进行量化,在程序的设计中,可以设置0.5的概率将学生模型的全部层进行量化,其中,量化采用了apot量化和均匀量化。也会有0.5的概率进行部分量化。
[0077]
通过该实施方式可以看出,在知识蒸馏和量化互相指导的过程中通过量化损失来指导蒸馏层的选取,选取对学生模型最适合量化的层来进行蒸馏;通过蒸馏损失来指导量化层的选取,选取最适合量化的层来进行量化,选取进一步压缩模型的同时保证性能没有损失。
[0078]
对本方法进行实验说明,本方法的训练数据集来自500小时的csj(已有数据集),测试集来自10小时的ihj(in-house japanese,内部日语)测试集和3个csj测试集的子集混合在一起5小时。由于本方法的硬件设置中gpu内存有限,本方法的whisper教师模型主要使用small版本,它由12个编码器层和12个解码器层组成,包含3072个隐藏单元。每个编码器和解码器层是一个具有12个768维自注意头的transformer块。现有模型base和tiny的结构数据如图3所示。本方法使用80维对数梅尔频率倒谱系数,每10ms计算一次25ms窗口长度作为音频编码器的输入。使用现有的数据增强specaugment算法进行模型训练。并采用adam优化器,初始学习率为3e-5,预训练步骤为10000步。在公式l
model
中,α为0.5,γ为1.0。本方法使用8位量化。由于gpu存储的限制,在训练过程中冻结了编码器的参数,只训练了解码器部分。对于多语言模型,使用了与gpt-2(generative pre-trained transformer,生成式预训练transfomer模型)中使用的相同的字节级bpe(byte pair encoder,字节对编码)文本标记器。所有模型都使用pytorch-asr(语音识别工具包)进行训练,直到收敛。
[0079]
在图4中,第一行为未进行任何微调的教师模型small的直接推理结果,第二行和第三行分别为学生模型base和tiny的直接推理和微调结果。可以观察到,在微调之后,whisper也可以带来显著的性能改进。这表明whisper的编码器已经学会了更好的表示,在对解码器进行微调后,它可以将这些学习到的表示映射到相应的下游任务。
[0080]
如图4的第三部分(4-7)展示了使用kd(knowledge distillation,知识蒸馏)的模型压缩。第四行表示logits层的蒸馏,下面三行表示添加了各种层匹配方法。kd logits压缩后的新模型(第4行)与base和tiny的第三行相比,相对cer(character error rate,字符错误率)分别降低了7.7%和10.2%。此外,将kd logits压缩后的新模型与本方法提出的三种隐藏层匹配方法(如静态匹配(第五行))相结合,在base和tiny上的相对cer比第三行降低了10.3%和11.0%。这些结果表明,对数层和隐层的联合升华提高了学生模型的学习能力。
[0081]
然而,情况并非总是如此,并且可能会出现一些性能下降,例如,当动态匹配不受限制时(第六行)。由于中间隐含层的学生模型的蒸馏匹配是通过最小化与教师模型的mse来选择最匹配的层,因此可能出现学生模型的浅层学习了教师模型的深层,学生模型的深层学习了教师模型的浅层,这显然是不合理的。因此,本方法在映射函数中增加了单调递增的限制来避免这种情况。
[0082]
如图4中的第4部分(8-11)为kd和apot(additive powers-of-two,加法二次幂)量化全解码器层的实验结果。与第三行相比,本方法的新模型通过提取logits和约束动态匹配隐藏层进行压缩,并对完整解码器层(第11行)进行量化,在base和tiny上分别获得了1.73%和4.12%的绝对cer性能下降。但是本方法把base/tiny从139mb/72mb压缩到了
89mb/44mb。
[0083]
为了减轻apot量化带来的性能下降,本方法在选择要量化的层时只选择50%的层进行量化。如图4中的第5部分(12-15)是用apot量化50%解码器层的实验结果。它表明,与第三行相比,受限动态匹配base和tiny(第15行)几乎没有性能下降,但本方法将base/tiny模型分别从139mb/72mb压缩到114mb/58mb。这证明本方法可以通过选择正确的层进行量化来达到减轻模型量化带来的性能下降的目的。对于apot量化的性能下降的情况,本方法推测可能是这种不均匀的量化削弱了transformer mha(multi-head attention,多头注意力)的注意力。
[0084]
如图4的最后一部分(16-19)显示了kd和均匀量化的结果,其中,本方法量化了解码器中学生模型的所有层。与第三行相比,本方法的新压缩模型在base和tiny(第19行)上的最佳结果获得了11.3%和14.0%的相对cer降低,将模型从139mb/72mb压缩到89mb/44mb,这意味着压缩比分别从3.32x/6.40x提高到5.18x/10.48x。此外,与教师模型(第一行)相比,本方法将其从461mb压缩到89mb和44mb,即分别小了5.18倍和10.48倍。结果表明,本方法可以有效地将大模型压缩为小模型。
[0085]
总的来说,本方法针对当前预训练模型whisper模型尺寸过大、不便于使用的问题,提出了一种知识蒸馏和量化互导层选择方法来压缩模型,并提出了知识蒸馏过程中学生模型和教师模型中间隐藏层的三种匹配方法。最后,在csj数据集上,本方法在whisper模型上实现了显著的压缩,从whisper
small
到whisper
base
和whisper
tiny
,分别将其大小减少了5.18/10.48倍。与原始模型相比,压缩模型对whisper
base
和whisper
tiny
的相对cer分别降低了11.3%和14.0%。
[0086]
如图5所示为本发明一实施例提供的一种基于知识蒸馏和量化的预训练模型压缩系统的结构示意图,该系统可执行上述任意实施例所述的基于知识蒸馏和量化的预训练模型压缩方法,并配置在终端中。
[0087]
本实施例提供的一种基于知识蒸馏和量化的预训练模型压缩系统10包括:量化损失确定程序模块11,蒸馏损失确定程序模块12和压缩训练程序模块13。
[0088]
其中,量化损失确定程序模块11用于将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;蒸馏损失确定程序模块12用于通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;压缩训练程序模块13用于至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。
[0089]
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于知识蒸馏和量化的预训练模型压缩方法;
[0090]
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
[0091]
将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操
作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;
[0092]
通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;
[0093]
至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。
[0094]
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的基于知识蒸馏和量化的预训练模型压缩方法。
[0095]
图6是本技术另一实施例提供的基于知识蒸馏和量化的预训练模型压缩方法的电子设备的硬件结构示意图,如图6所示,该设备包括:
[0096]
一个或多个处理器610以及存储器620,图6中以一个处理器610为例。基于知识蒸馏和量化的预训练模型压缩方法的设备还可以包括:输入装置630和输出装置640。
[0097]
处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图6中以通过总线连接为例。
[0098]
存储器620作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的基于知识蒸馏和量化的预训练模型压缩方法对应的程序指令/模块。处理器610通过运行存储在存储器620中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例基于知识蒸馏和量化的预训练模型压缩方法。
[0099]
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至移动装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0100]
输入装置630可接收输入的数字或字符信息。输出装置640可包括显示屏等显示设备。
[0101]
所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的基于知识蒸馏和量化的预训练模型压缩方法。
[0102]
上述产品可执行本技术实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本技术实施例所提供的方法。
[0103]
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置
的存储器,这些远程存储器可以通过网络连接至装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0104]
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的基于知识蒸馏和量化的预训练模型压缩方法的步骤。
[0105]
本技术实施例的电子设备以多种形式存在,包括但不限于:
[0106]
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
[0107]
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如平板电脑。
[0108]
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0109]
(4)其他具有数据处理功能的电子装置。
[0110]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0111]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0112]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0113]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种基于知识蒸馏和量化的预训练模型压缩方法,包括:将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。2.根据权利要求1所述的方法,其中,所述至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练包括:将测试数据输入至所述学生模型,得到预测标签结果;将所述测试数据输入至所述教师模型,得到真实标签结果,根据所述预测标签结果以及所述真实标签结果确定交叉熵损失;基于所述交叉熵损失、所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,直至所述交叉熵损失达到预设目标为止。3.根据权利要求1所述的方法,其中,所述至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练包括:对所述学生模型内的所有蒸馏层进行量化,或对所述学生模型内的部分蒸馏层进行量化,其中,所述部分蒸馏层基于对应的蒸馏损失从小到大排序选取。4.根据权利要求1所述的方法,其中,所述隐层匹配映射函数的映射方式包括:静态匹配、动态匹配以及约束动态匹配。5.一种基于知识蒸馏和量化的预训练模型压缩系统,包括:量化损失确定程序模块,用于将预训练模型确定为教师模型,对所述教师模型的预测层和中间隐层进行量化操作,确定出所述教师模型与用于表示压缩后模型的学生模型的量化损失,其中,所述量化操作包括:确定所述教师模型内隐层的量化前权重与量化后权重的最小变量;蒸馏损失确定程序模块,用于通过所述量化损失确定所述教师模型至所述学生模型的隐层匹配映射函数,基于所述隐层匹配映射函数从所述教师模型中动态选择所述学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;压缩训练程序模块,用于至少基于所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,得到压缩后模型。6.根据权利要求5所述的系统,其中,所述压缩训练程序模块用于:将测试数据输入至所述学生模型,得到预测标签结果;将所述测试数据输入至所述教师模型,得到真实标签结果,根据所述预测标签结果以及所述真实标签结果确定交叉熵损失;基于所述交叉熵损失、所述量化损失以及所述蒸馏损失对所述学生模型进行量化训练,直至所述交叉熵损失达到预设目标为止。7.根据权利要求5所述的系统,其中,所述压缩训练程序模块用于:
对所述学生模型内的所有蒸馏层进行量化,或对所述学生模型内的部分蒸馏层进行量化,其中,所述部分蒸馏层基于对应的蒸馏损失从小到大排序选取。8.根据权利要求5所述的系统,其中,所述隐层匹配映射函数的映射方式包括:静态匹配、动态匹配以及约束动态匹配。9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述方法的步骤。10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。

技术总结
本发明实施例提供一种基于知识蒸馏和量化的预训练模型压缩方法及系统。该方法包括:将预训练模型确定为教师模型,对教师模型的预测层和中间隐层进行量化操作,确定出教师模型与用于表示压缩后模型的学生模型的量化损失;通过量化损失确定教师模型至学生模型的隐层匹配映射函数,基于隐层匹配映射函数从教师模型中动态选择学生模型需要学习的蒸馏层,并确定对应的蒸馏损失;至少基于量化损失以及蒸馏损失对学生模型进行量化训练。本发明实施例在知识蒸馏和量化互相指导的过程中通过量化损失来指导蒸馏层的选取,选取对学生模型最适合量化的层来进行蒸馏,通过蒸馏损失来指导量化层的选取,选取最适合量化的层来进行量化,保证性能没有损失。证性能没有损失。证性能没有损失。


技术研发人员:俞凯 邵航 王巍 刘贝 龚勋 王浩宇 钱彦旻
受保护的技术使用者:思必驰科技股份有限公司
技术研发日:2023.05.26
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐