本技术涉及神经网络技术,特别涉及一种模型训练方法、装置、存储介质和电子设备。
背景技术:
1、随着神经网络技术的不断进步,神经网络模型在诸如图像处理、文本处理等各个领域得到了越来越广泛的应用。
2、目前在具体业务领域应用的神经网络模型,其训练可以包括两个阶段:预训练阶段和模型调优阶段。
3、一般地,在预训练阶段可以训练生成目标业务领域内的较大规模、性能比较强的第一模型;在模型调优阶段,基于预训练生成的第一模型,再生成一个较小规模、且性能贴近预训练模型的另一个第二模型,预训练生成的第一模型和模型调优后生成的规模较小的第二模型例如可以是教师模型和学生模型。这种处理方式下,预训练阶段往往需要大量带标签的训练数据,训练数据集的构建成本高,训练周期长,且对于模型结构的调整不够友好,在模型结构进行优化设计时,需要花费大量时间重新训练。
4、另外,在预训练阶段也可以进行无监督训练,以克服需要大量标签数据的问题。这种处理方式下,预训练阶段生成的第一模型,在模型调优阶段仍然需要首先利用目标域数据进行训练,得到目标域内性能符合要求的第一修正模型,再基于该第一修正模型生成规模较小的第二模型用于部署,模型调优阶段生成的第一修正模型和第二模型例如可以是教师模型和学生模型。这种处理方式下,虽然预训练阶段不需要标签数据,但是模型调优阶段仍然需要额外的训练过程使第一模型适应于目标域,生成第一修正模型。当模型结构需要优化设计时,也需要花费大量时间重新训练。
技术实现思路
1、本技术提供一种模型训练方法、装置、存储介质和电子设备,能够降低训练集的构建成本,且支持模型结构的快速设计优化。
2、为实现上述目的,本技术采用如下技术方案:
3、一种模型训练方法,包括:
4、通过无标签的训练数据、利用通识模型对第一模型和第二模型进行特征引导训练,基于训练得到的第一模型和第二模型分别确定第三模型和第四模型的初始模型;
5、通过目标域的训练数据,对所述第三模型和所述第四模型进行并行模型调优训练,得到实际部署的目标模型;
6、其中,所述并行模型调优训练包括所述第三模型和所述第四模型各自的模型训练、以及,所述第三模型和所述第四模型的互相学习训练或者所述第四模型向所述第三模型的学习训练。
7、较佳地,所述利用通识模型对第一模型和第二模型进行特征引导训练,包括:
8、通过所述无标签的训练数据,利用所述通识模型分别对所述第一模型和所述第二模型进行相互独立的特征引导训练。
9、较佳地,所述利用通识模型对第一模型和第二模型进行特征引导训练,包括:
10、利用所述通识模型对所述第一模型和所述第二模型进行特征引导训练的同时,所述第一模型与所述第二模型进行互相学习训练;
11、或者,
12、利用所述通识模型对所述第一模型和所述第二模型进行特征引导训练的同时,所述第二模型进行向所述第一模型的单向学习训练。
13、较佳地,所述利用所述通识模型分别对所述第一模型和所述第二模型进行相互独立的特征引导训练,包括:
14、将所述无标签的训练数据分别输入所述通识模型和所述第一模型进行特征提取,将所述通识模型和所述第一模型提取的特征进行比较,确定第一损失函数的取值,并基于所述第一损失函数的取值更新所述第一模型的参数,直到满足训练结束条件;
15、将所述无标签的训练数据分别输入所述通识模型和所述第二模型进行特征提取,将所述通识模型和所述第二模型提取的特征进行比较,确定第二损失函数的取值,并基于所述第一损失函数的取值更新所述第二模型的参数,直到满足训练结束条件。
16、较佳地,所述利用所述通识模型对所述第一模型和所述第二模型进行特征引导训练的同时所述第一模型与所述第二模型进行互相学习训练,包括:
17、将所述无标签的训练数据分别输入所述通识模型、所述第一模型和所述第二模型进行特征提取;
18、将所述通识模型和所述第一模型提取的特征进行比较,确定第一损失函数的取值;
19、将所述通识模型和所述第二模型提取的特征进行比较,确定第二损失函数的取值;
20、将所述第一模型和所述第二模型提取的特征进行比较,确定第三损失函数的取值;
21、基于所述第一损失函数的取值和所述第三损失函数的取值,更新所述第一模型的参数,直到满足所述第一模型的训练结束条件;
22、基于所述第二损失函数的取值和所述第三损失函数的取值,更新所述第二模型的参数,直到满足所述第二模型的训练结束条件。
23、较佳地,所述利用所述通识模型对所述第一模型和所述第二模型进行特征引导训练的同时所述第二模型进行向所述第一模型的单向学习训练,包括:
24、将所述无标签的训练数据分别输入所述通识模型、所述第一模型和所述第二模型进行特征提取;
25、将所述通识模型和所述第一模型提取的特征进行比较,确定第一损失函数的取值;
26、将所述通识模型和所述第二模型提取的特征进行比较,确定第二损失函数的取值;
27、基于所述第一模型和所述第二模型提取的特征,进行模型相似性的比较,确定第三损失函数的取值;
28、基于所述第一损失函数的取值,更新所述第一模型的参数,直到满足所述第一模型的训练结束条件;
29、基于所述第二损失函数的取值和所述第三损失函数的取值,更新所述第二模型的参数,直到满足所述第二模型的训练结束条件。
30、较佳地,所述对所述第三模型和所述第四模型进行模型调优训练,包括:
31、将所述目标域的训练数据分别输入所述第三模型和所述第四模型进行特征提取;
32、基于所述第三模型提取的特征,确定第五损失函数的取值;
33、基于所述第四模型提取的特征,确定第六损失函数的取值;
34、将所述第三模型和所述第四模型提取的特征进行相似性比较,确定第七损失函数的取值;
35、基于所述第五损失函数的取值和所述第七损失函数的取值,更新所述第三模型的参数,直到满足所述第三模型的训练结束条件;
36、基于所述第六损失函数的取值和所述第七损失函数的取值,更新所述第四模型的参数,直到满足所述第四模型的训练结束条件。
37、较佳地,所述对所述第三模型和所述第四模型进行模型调优训练,包括:
38、将所述目标域的训练数据分别输入所述第三模型和所述第四模型进行特征提取;
39、基于所述第三模型提取的特征,确定第五损失函数的取值;
40、基于所述第四模型提取的特征,确定第六损失函数的取值;
41、基于所述第三模型和所述第四模型提取的特征,进行模型的相似性比较,确定第七损失函数的取值;
42、基于所述第五损失函数的取值,更新所述第三模型的参数,直到满足所述第三模型的训练结束条件;
43、基于所述第六损失函数的取值和所述第七损失函数的取值,更新所述第四模型的参数,直到满足所述第四模型的训练结束条件。
44、较佳地,所述得到实际部署的目标模型,包括:
45、在训练结束后的第三模型和训练结束后的第四模型中,选择训练性能更好的模型作为所述目标模型,或者,选择训练结束后的第四模型作为所述目标模型,或者,选择训练结束后的第三模型和训练结束后的第四模型作为所述目标模型,或者,将训练结束后的第三模型或第四模型中的特征提取网络作为目标模型的特征提取网络。
46、较佳地,所述第一模型的规模大于所述第二模型的规模。
47、较佳地,所述第一模型为教师模型,所述第二模型为学生模型。
48、一种模型训练装置,包括:预训练单元和模型调优单元;
49、所述预训练单元,用于通过无标签的训练数据、利用通识模型对第一模型和第二模型进行特征引导训练,基于训练得到的第一模型和第二模型分别确定第三模型和第四模型的初始模型;
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、基于所述第六损失函数的取值和所述第七损失函数的取值,更新所述第四模型的参数,直到满足所述第四模型的训练结束条件。
89、较佳地,所述得到实际部署的目标模型,包括:
90、在训练结束后的第三模型和训练结束后的第四模型中,选择训练性能更好的模型作为所述目标模型,或者,选择训练结束后的第四模型作为所述目标模型,或者,选择训练结束后的第三模型和训练结束后的第四模型作为所述目标模型,或者,将训练结束后的第三模型或第四模型中的特征提取网络作为目标模型的特征提取网络。
91、一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现上述任一项所述的模型训练方法。
92、一种电子设备,该电子设备至少包括计算机可读存储介质,还包括处理器;
93、所述处理器,用于从所述计算机可读存储介质中读取可执行指令,并执行所述指令以实现上述任一项所述的模型训练方法。
94、由上述技术方案可见,本技术中,在预训练阶段,利用通识模型、使用无标签的训练数据,对第一模型和第二模型进行特征引导训练,并基于训练得到的第一模型和第二模型分别确定第三模型和第四模型的初始模型;这里,一方面使用无监督预训练,不需要带标签的训练数据,另一方面,利用通识模型的高效引导,对两个模型进行预训练,能够在预训练阶段快速生成两个能力与通识模型类似的神经网络模型,并基于该两个模型确定第三模型和第四模型的初始模型,使第三模型和第四模型具备模拟通识模型的特征提取能力。接下来,在模型调优阶段,利用目标域的训练数据,对第三模型和第四模型并行进行各自的模型调优训练,并进行第三模型和第四模型的互相学习训练或第四模型向第三模型的单向学习训练,最终得到实际部署的目标模型。这样,在模型调优阶段,一方面通过采用少量的目标域数据,可以将第三模型和第四模型调优为适用于目标域的模型,另一方面,第三模型和第四模型的调优训练并行进行,且通过第三模型和第四模型的互相学习或单向学习,提高模型的训练速度,以支持模型结构的快速设计优化。