本发明涉及计算机,尤其涉及一种模型压缩方法、装置和可读存储介质。
背景技术:
1、随着深度学习技术的发展,深度神经网络模型被广泛应用于各种应用场景,如图像处理、语音识别、推理/预测、知识表达、以及操作控制等。
2、为了提高深度神经网络模型的性能,模型的参数量和计算量也随之急剧增加,从而对模型的训练和部署带来了巨大挑战。尤其是在模型部署方面,由于深度神经网络模型的参数量和计算量巨大,导致深度神经网络模型难以部署在资源有限的硬件设备(如移动设备)上。
3、为了减少深度神经网络模型对硬件的消耗,使得深度神经网络模型可以部署在资源有限的硬件设备上,通常使用模型压缩技术来提高模型的运行效率并减少模型占用的计算资源和存储资源,所述模型压缩技术例如知识蒸馏或者模型量化等。在模型压缩过程中,通常需要使用有标签的训练数据对待压缩的模型进行不断训练,以保证压缩后模型的精度。然而,目前用户数据的隐私越来越受到重视,有标签的训练数据难以获取。
技术实现思路
1、本发明实施例提供一种模型压缩方法、装置和可读存储介质,可以在保证模型压缩后的模型精度的前提下,保护用户数据的隐私安全。
2、第一方面,本发明实施例公开了一种模型压缩方法,所述方法包括:
3、获取教师网络模型和学生网络模型,所述教师网络模型和所述学生网络模型为已训练完成的相同结构的浮点模型;
4、对所述教师网络模型和所述学生网络模型按照相同方式进行分段;
5、对所述学生网络模型的各段依次进行训练;在训练所述学生网络模型的当前段时,固定所述当前段之前已训练的各段的网络参数,对所述当前段进行量化,并利用所述教师网络模型和无标签的训练数据对所述当前段进行知识蒸馏;
6、在所述学生网络模型的所有段均已训练完成时,得到目标网络模型。
7、第二方面,本发明实施例公开了一种模型压缩装置,所述装置包括:
8、模型获取模块,用于获取教师网络模型和学生网络模型,所述教师网络模型和所述学生网络模型为已训练完成的相同结构的浮点模型;
9、模型分段模块,用于对所述教师网络模型和所述学生网络模型按照相同方式进行分段;
10、压缩训练模块,用于对所述学生网络模型的各段依次进行训练;在训练所述学生网络模型的当前段时,固定所述当前段之前已训练的各段的网络参数,对所述当前段进行量化,并利用所述教师网络模型和无标签的训练数据对所述当前段进行知识蒸馏;在所述学生网络模型的所有段均已训练完成时,得到目标网络模型。
11、第三方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的模型压缩方法。
12、本发明实施例包括以下优点:
13、本发明实施例提供的模型压缩方法,将模型量化和知识蒸馏相结合,并且采用分段的渐进式方式对学生网络模型逐段进行量化和知识蒸馏,最终得到目标网络模型,该目标网络模型为在所述教师网络模型的指导下对所述学生网络模型分段进行模型压缩得到的,具有较高的精度和轻量的体积,可以部署在资源有限的硬件设备(如移动设备)上。此外,本发明实施例在对所述学生网络模型进行压缩的过程中利用无标签的训练数据,不依赖于原始有标签的训练数据,可以保护用户数据的隐私安全。
1.一种模型压缩方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述当前段进行量化,并利用所述教师网络模型和无标签的训练数据对所述当前段进行知识蒸馏,包括:
4.根据权利要求3所述的方法,其特征在于,所述初始化所述当前段中每个伪量化节点的量化参数,包括:
5.根据权利要求3所述的方法,其特征在于,所述第一损失为根据所述学生网络模型当前段最后一层的输出与所述教师网络模型中对应段的最后一层的输出计算的kl散度损失,所述第二损失为根据所述学生网络模型的logits输出与所述教师网络模型的logits输出计算的kl散度损失。
6.根据权利要求1所述的方法,其特征在于,所述对所述教师网络模型和所述学生网络模型按照相同方式进行分段,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种模型压缩装置,其特征在于,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述压缩训练模块,包括:
10.一种机器可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至7中任一所述的模型压缩方法。
