本发明属于机器翻译,具体涉及一种掩码机器翻译方法、系统、可读介质及设备。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、当前机器翻译任务的输入,无论是句子、段落还是文档,其长度都是不同的。当前机器翻译训练关键依赖于高性能深度学习基础设施,例如深度学习框架库pytorch和硬件处理器a100等,均为接收长度相同的批次数据进行处理。由于截断输入数据会导致信息丢失,从而损害翻译性能,因此标准做法是将不同长度的自然语言在编码后填充到最长序列长度送入模型训练。因为填充字符通常设置为零,这种填充策略通常被称为补零填充。由于自然语言复杂多样的特点,填充后的批量数据中包含大量填充字符,目前主流数据集wmt14(英语翻德语)和wmt17(汉语翻英语)等在训练时填充率均超过60%,模型需要进行掩码操作以避免填充字符对真实语言字符的影响,这些填充字符在在训练中无实际意义,大量填充字符增加了训练时间,浪费计算资源。
3、基于机器翻译任务的低效特性,常用的方法是分桶策略和排序策略。排序策略将数据按照长度排序,再依次放入模型中进行训练,这种方法的优点是极大降低了填充率,但同时也改变了数据分布,使得模型在训练中使用的不再是随机数据,而是带有长度偏见的数据,因此该方法虽然明显缩短了训练时间,但这也违背了模型训练中无偏估计的原则,损害了模型性能。分桶策略是根据数据长度分布生成若干个桶,每个桶的包含的序列长度范围不同,将数据根据长度分入相应桶内,训练时每个桶内的数据分别进行训练,这种方法像是一种折中方案,虽然降低了一定的填充率,但也使模型性能受到影响。
技术实现思路
1、本发明为了解决上述问题,提出了一种掩码机器翻译方法、系统、可读介质及设备,本发明克服了机器翻译任务中高填充率导致训练低效的缺点,且在提升效率的同时,保持了模型原来的性能。
2、根据一些实施例,本发明采用如下技术方案:
3、一种掩码机器翻译方法,包括以下步骤:
4、基于训练后的翻译模型对语句进行翻译;
5、所述翻译模型的训练过程包括:
6、对训练实例数据按照源序列由长到短进行排序,建立新的顺序,目标序列根据对应的源序列索引分布;
7、以源序列的最大长度x和目标序列的最大长度y分别作为两个独立的存储空间的最大限定长度;
8、将源序列对按照当前顺序依次放入第一存储空间中,当第一存储空间中某一行未填满时,确定当前行剩余大小,遍历当前顺序,若存在小于等于剩余大小长度的源序列数据,将其和已经填入的数据拼接,并更新排序顺序,将源序列数据所对应的目标序列数据存储至第二存储空间;
9、直至任一存储空间装满,形成新的训练实例数据。
10、作为可选择的实施方式,所述源序列的最大长度x和目标序列的最大长度y可以不对应同一句对。
11、作为可选择的实施方式,若当前顺序中不存在小于等于剩余大小长度的训练实例数据,则对存储空间的相应行填充到最长序列长度。
12、作为可选择的实施方式,若存在小于等于剩余大小长度的源序列数据,将其和已经填入的数据拼接后,所对应的目标序列数据拼接后的长度超过目标序列的最大长度y时,则不进行当前的数据拼接,对存储空间的相应行填充到最长序列长度。
13、作为进一步的实施方式,填充时在当前位置后面填充零。
14、作为可选择的实施方式,还包括以下步骤:
15、模型训练过程中,在在生成掩码矩阵时,标记不同序列的掩码标签,在softmax处理之前屏蔽不同序列之间相交的注意力区域。
16、作为进一步的实施方式,只对生成的对角矩阵进行相同的掩码操作。
17、一种掩码机器翻译系统,包括:
18、翻译模块,被配置为基于训练后的翻译模型对语句进行翻译;
19、训练模块,包括:
20、排序模块,被配置为对训练实例数据按照源序列由长到短进行排序,建立新的顺序,目标序列根据对应的源序列索引分布;
21、限定模块,被配置为以源序列的最大长度x和目标序列的最大长度y分别作为两个独立的存储空间的最大限定长度;
22、拼接模块,被配置为将源序列对按照当前顺序依次放入第一存储空间中,当第一存储空间中某一行未填满时,确定当前行剩余大小,遍历当前顺序,若存在小于等于剩余大小长度的源序列数据,将其和已经填入的数据拼接,并更新排序顺序,将源序列数据所对应的目标序列数据存储至第二存储空间;
23、迭代模块,被配置为直至任一存储空间装满,形成新的训练实例数据。
24、一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述方法中的步骤。
25、一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述方法中的步骤。
26、与现有技术相比,本发明的有益效果为:
27、本发明利用下一个训练实例数据的输入来填充一个短输入,形成混合实例输入,并且利用源序列和目标序列长度作为存储空间的限制,在每个批次内将尽可能多的元素打包起来,能够有效的提高训练速度,降低填充率。
28、本发明基于装箱问题的思想,同时考虑了源序列和目标序列属性,分别找到最长的源序列和目标序列,并将这一对数据作为bin的大小,灵活地考虑了最长源序列和目标序列不属于同一句对的情况,构造了一种最大程度填充序列的方式。
29、本发明可以自行定义训练实例数据、存储空间的大小,多批次进行数据的拼接,每个批次之间互不干扰,这保证了模型梯度累计与标准训练方法是相同的,也就保证了批次内排序不影响模型交叉熵损失的计算,不需要对模型进行额外参数调整。
30、本发明针对拼接后的混合实例,利用新的注意掩码策略来处理注意力计算时带来的交叉干扰问题,不改变transformer内部结构,就可以使每个序列之间的注意力互不干扰,达到掩码混合实例高效训练的效果,在不牺牲训练质量的情况下获得显着的加速。
31、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种掩码机器翻译方法,其特征是,包括以下步骤:
2.如权利要求1所述的一种掩码机器翻译方法,其特征是,所述源序列的最大长度x和目标序列的最大长度y可以不对应同一句对。
3.如权利要求1所述的一种掩码机器翻译方法,其特征是,若当前顺序中不存在小于等于剩余大小长度的训练实例数据,则对存储空间的相应行填充到最长序列长度。
4.如权利要求1所述的一种掩码机器翻译方法,其特征是,若存在小于等于剩余大小长度的源序列数据,将其和已经填入的数据拼接后,所对应的目标序列数据拼接后的长度超过目标序列的最大长度y时,则不进行当前的数据拼接,对存储空间的相应行填充到最长序列长度。
5.如权利要求3或4所述的一种掩码机器翻译方法,其特征是,填充时在当前位置后面填充零。
6.如权利要求1所述的一种掩码机器翻译方法,其特征是,还包括以下步骤:
7.如权利要求6所述的一种掩码机器翻译方法,其特征是,只对生成的对角矩阵进行相同的掩码操作。
8.一种掩码机器翻译系统,其特征是,包括:
9.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7中任一项所述的方法中的步骤。
10.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7中任一项所述的方法中的步骤。