用于小型移动设备的深层神经机器翻译模型的压缩方法与流程

文档序号:23720866发布日期:2021-01-24 08:12阅读:67来源:国知局
用于小型移动设备的深层神经机器翻译模型的压缩方法与流程

[0001]
本发明涉及一种深层翻译模型压缩技术,具体为用于小型移动设备的深层神经机器翻译模型的压缩方法。


背景技术:

[0002]
从广义上讲,翻译是指把一个事物转换成另一个事物的过程,自然语言的翻译则是指人类语言之间的转换,将一种语言转换为意思相同的另一种语言。一直以来,文字的翻译往往是由人工完成,而由计算机进行自动翻译的过程则称为机器翻译。尽管人工翻译准确率更高,但是在面临海量数据的浏览型任务翻译时则需要耗费大量的人力物力,此时机器翻译更具优势,使用机器翻译可能仅需要几小时或几分钟便可以完成,而且随着机器翻译技术的发展,机器翻译的准确度已经达到了与人工翻译可比的水平。
[0003]
自20世纪40年代提出至今,机器翻译已经经历了近70年的发展,发展历史大致可以分为三个阶段:基于规则的机器翻译、基于统计的机器翻译和基于神经网络的机器翻译。神经机器翻译的概念出现在2013-2014年间,当时机器翻译领域的主流方法仍然是统计机器翻译。不过,有人也意识到了神经机器翻译在表示学习等方面的优势。对包括机器翻译在内的序列到序列问题进行了广泛而深入的研究,注意力机制等新的模型不断被推出。这使得神经机器翻译系统在翻译品质上逐渐体现出优势,神经机器翻译的研究吸引了更多的科研机构和企业的投入,神经机器翻译系统的翻译品质得到进一步提升。
[0004]
目前基于自注意力机制的transformer模型由于其高度并行性和强大的性能,在很多机器翻译任务上取得了最佳性能,是当今最主流的神经机器翻译框架。其采用编码-解码结构,编码端和解码端分别有多层堆叠的编码层和解码层组成,其中编码层包含注意力子层和前馈神经网络子层,在每层后应用了层正则化和残差连接,解码层相对于编码层多了一个编码解码注意力子层,用于学习双语之间的对齐关系并应用了编码层相同的层正则化操作和残差连接。
[0005]
随着计算机算力和数据量的增加,在实际应用中对机器翻译质量的要求也越来越高。在传统机器学习的观点中,神经网络的性能不仅依赖于架构设计,同样与容量密切相关。常见的增加模型容量的方式为增加模型宽度或深度,这里主要研究的对象为深层网络。在transformer架构下的深层网络是指通过堆叠更多的编码层来加深网络的深度,同时为了使深层transformer模型能够正常训练需要对模型结构进行调整,即将编码层和解码层中层正则化的位置由每一个子层输出位置调整为子层输入位置,并在编码端和解码端的输出位置增加额外的层正则化操作。
[0006]
然而随着模型容量的增加,模型所需要的存储空间也会增加,限制了其在资源受限的小设备上部署。同时模型增大也会消耗更多的计算资源,影响响应速度。因此如何将一个性能强大的深层神经机器翻译模型压缩为一个存储更小,响应速度更快的模型是十分重要的。


技术实现要素:

[0007]
针对深层神经机器翻译系统具有强大的性能,但同时由于其对计算资源和存储资源的消耗巨大,在资源受限的小设备难以部署,响应时间过长的问题,本发明提出一种用于小型移动设备的深层神经机器翻译模型的压缩方法,可以在几乎不影响性能的情况下,将编码端层数压缩至1/8,减少了模型存储空间,提高了模型的推断速度。
[0008]
为解决上述技术问题,本发明采用的技术方案是:
[0009]
本发明提供一种用于小型移动设备的深层神经机器翻译模型的压缩方法,包括以下步骤:
[0010]
1)处理训练数据,对其进行清洗、分词和子词切分操作,构建双语平行句对,并将其转换为用词嵌入表示的句子序列,句子序列与位置编码累加后,作为模型的输入;
[0011]
2)构建基于深层transformer模型,引入分组扰动策略,将其编码层划分为多组,不同的训练批次时组内编码层之间的顺序随机打乱,即具有完全随机的信息传递顺序;
[0012]
3)使用构造的双语平行句对训练引入分组扰动策略的深层transformer模型至收敛,使其作为教师模型;
[0013]
4)对训练好的教师模型进行采样,即从每一个编码层组中随机抽取一层,重组构建一个新的浅层transformer模型作为压缩之后的中间子模型;
[0014]
5)使用教师模型对双语平行训练数据中的源语进行解码翻译,得到由教师模型翻译的目标语,和真实双语数据的源语组合构造新的双语平行句句对,作为知识精炼数据;
[0015]
6)使用知识精炼数据微调从教师模型中采样得到的子模型至模型收敛作为最终结果用于小型移动设备。
[0016]
步骤2)中构建深层transformer模型,通过将每一个编码层和解码层中的层正则化的位置提前,置于每一个子层的输入,并在编码端和解码端输出时额外增加层正则化操作,即pre-norm,其公式如下:
[0017]
s
i+1
=s
i
+sublayer(layer_norm(s
i
))
[0018]
其中si为当前子层的输入,s
i+1
为当前子层的输出,即下一子层的输入,sublayer为当前子层的计算函数,layer_norm为层正则化函数。
[0019]
在pre-norm形式下,编码层的计算流程为:
[0020]
对于输入该编码层的向量进行层正则化操作,归一化输入的均值和方差后将其输入自注意力机制子层,在自注意力机制中,模型计算针对每一个位置的单词计算该单词和句子中所有单词的相关性系数,并对该系数进行归一化处理,对句子中所有位置的单词表示进行加权求和得到该位置单词的进一步的抽象表示;
[0021]
将上一步得到的抽象表示与进行层正则化操作之前的输入进行残差连接;
[0022]
将残差连接计算得到的输出进行层正则化操作后送入前馈神经网络子层,进行计算,将其结果与自注意力子层的输出相加后,传递给下一个编码层;
[0023]
在此基础上引入分组扰动策略,假设深层transformer模型共有m层编码层,最终希望将其压缩为n层,则将当前深层transformer模型的编码层分为n组,每组具有m/n个编码层。
[0024]
步骤4)中,子模型的构建方法为从深层transformer模型中的每一个编码层组中随机抽取一层,使用一层代替一个编码组,共有n组则抽取n个编码层,与深层模型的解码端
组成子模型。
[0025]
步骤5)中,知识精炼数据的构建为:
[0026]
使用已经训练收敛的深层transformer翻译模型作为教师模型,使用其对训练数据的源语进行推断翻译,得到机器翻译的结果作为目标语;
[0027]
将目标语与源语重新组合,将其转变为连续向量表示。
[0028]
步骤6)中,对从教师模型中随机抽层采样得到的子网络重置优化器状态,回调学习率至峰值,以便于模型快速收敛;
[0029]
使用由教师模型得到的知识精炼数据微调子模型,使其充分学习教师模型中所蕴含的知识,以达到与教师模型相近的性能,最终用于小型移动设备。
[0030]
本发明具有以下有益效果及优点:
[0031]
1.本发明通过调整教师模型的训练策略,采用分组扰动的方式,对深层transformer模型的编码端进行处理,使每一个组内的编码层能同时适应上一组的输入且得到适合下一组的输出,且层之间的表现形式变得更加接近;同时由于深层transformer模型各编码层的输出本就十分相近,因此这种扰动方式并不会明显影响深层transformer模型的性能。
[0032]
2.通过从教师模型中抽取编码层的形式,来初始化子模型,使子模型具有更好的初始化状态,具有和深层模型相似的行为模式,同时使用知识精炼的手段,进一步使子模型的输出拟合深层教师模型的输出分布,进一步提高子模型的性能。
[0033]
3.本发明在深层transformer模型的基础上引入分组扰动策略,增大组内各层之间的适应性,以便于构建子网络,通过知识精炼的方式是子模型充分学习教师模型中的知识,在几乎不损失性能的情况下将编码端层数压缩至教师模型的1/8。
附图说明
[0034]
图1为本发明中pre-norm和post-norm的图示;
[0035]
图2为本发明中分组扰动的压缩方法图示。
具体实施方式
[0036]
下面结合说明书附图对本发明作进一步阐述。
[0037]
本发明针对目前深层神经机器翻译系统取得了强大性能的同时由于增加模型容量所带来的存储消耗,和响应缓慢,难以在资源受限的小设备上部署的问题,提出一种基于分组扰动的深层神经机器翻译模型压缩方法,通过调整教师模型的训练策略,并利用其参数进行子模型的初始化,此外通过知识精炼手段进一步提升子模型的性能。
[0038]
为解决上述技术问题,本发明提供一种用于小型移动设备的深层神经机器翻译模型的压缩方法,包括以下步骤:
[0039]
1)处理训练数据,对其进行清洗、分词和子词切分操作,构建双语平行句对,并将其转换为用词嵌入表示的句子序列,句子序列与位置编码累加后,作为模型的输入;
[0040]
2)构建基于深层transformer模型,引入分组扰动策略,将其编码层划分为若干组,不同的训练批次时组内编码层之间的顺序随机打乱,即具有完全随机的信息传递顺序;
[0041]
3)使用构造的双语平行句对训练引入分组扰动策略的深层transformer模型至收
敛,使其作为教师模型;
[0042]
4)对训练好的教师模型进行采样,即从每一个编码层组中随机抽取一层,重组构建一个新的浅层transformer模型作为压缩之后的中间子模型;
[0043]
5)使用教师模型对双语平行训练数据中的源语进行解码翻译,得到由教师模型翻译的目标语,和真实双语数据的源语组合构造新的双语平行句句对,作为知识精炼数据;
[0044]
6)使用知识精炼数据微调从教师模型中采样得到的子模型至模型收敛作为最终结果用于小型移动设备。
[0045]
在步骤1)中,将双语平行句对处理为输入模型的连续向量形式,具体为:
[0046]
101)对双语平行句对进行清洗,去除低质量的数据和重复数据;
[0047]
102)对双语平行句对进行分词处理后,使用bpe算法统计构建子词词表;对以词为单位的数据进行子词切分;
[0048]
103)对子词切分之后的数据进行统计,构建源语和目标语端的词表,并将每一个词转换为独热向量形式,即维度为词表大小,除了当前词对应索引位置为1,其余位置为0的向量;
[0049]
104)根据词表大小初始化词嵌入矩阵,其维度大小为词表大小x模型隐藏层维度大小,将每个单词的独热向量左乘词嵌入矩阵,将其转化为连续向量表示;词嵌入矩阵随着模型的训练不断更新;
[0050]
105)针对transformer模型的注意力机制并没有包含位置信息这一问题,transformer为编码端和解码端的输入添加一个额外的位置向量,维度和词嵌入的维度一样将每个单词的词嵌入形式与位置向量相加,作为当前单词的最终表示。
[0051]
在步骤2)中,构建深层transformer模型,通过将每一个编码层和解码层中的层正则化的位置提前,置于每一个子层的输入,并在编码端和解码端输出时额外增加层正则化操作,即pre-norm,其公式如下:
[0052]
s
i+1
=s
i
+sublayer(layer_norm(s
i
))
[0053]
其中s
i
为当前子层的输入,s
i+1
为当前子层的输出,即下一子层的输入,sublayer为当前子层的计算函数,layer_norm为层正则化函数。
[0054]
传统的transformer模型则采用post-norm形式,图1展示了两种方式在transformer模型中计算逻辑上的差异。其公式如下:
[0055]
s
i+1
=layer_norm(s
i
+sublayer(s
i
))
[0056]
在pre-norm形式下,编码层的计算流程为,首先对于输入该编码层的向量进行层正则化操作,归一化输入的均值和方差后将其输入自注意力机制子层,在自注意力机制中,模型计算针对每一个位置的单词计算该单词和句子中所有单词的相关性系数,并对该系数进行归一化处理,对句子中所有位置的单词表示进行加权求和得到该位置单词的进一步的抽象表示。由于transformer通过矩阵计算的方式完成该操作,因此具有极高的并行性,可以同时对整个序列中的单词进行处理。在得到自注意力机制子层的输出之后,将其与进行层正则化操作之前的输入进行相加,这便是残差连接连接。将残差连接计算得到的输出进行层正则化操作后送入前馈神经网络子层,进行计算,将其结果与自注意力子层的输出相加后,传递给下一个编码层。
[0057]
通过这种方式可以有效的帮助训练深层transformer模型,即堆叠更多的编码层,
以达到提升模型容量,提高翻译质量的需求。在此基础上本发明引入了分组扰动策略。
[0058]
假设深层transformer模型共有m层编码层,最终希望将其压缩为n层,则将当前深层transformer模型的的编码层分为n组,每组具有m/n个编码层。在训练过程中,输入每一个批次是,每一个编码层组内的编码层数完全随机,即具有随机的传递顺序,但每组内的每一个编码层只计算一次。
[0059]
在步骤4)中,子模型的构建方法为从深层transformer模型中的每一个编码层组中随机抽取一层,由于组内信息传递顺序完全随机,使得组内每层的表现形式变得相似,因此可以使用一层代替一个编码组。共有n组,则随机抽出n个编码层,组成子模型的编码端,解码端完全继承深层transformer教师模型
[0060]
在步骤5)中,知识精炼数据的构建,通过已经训练收敛的深层transformer模型,对训练数据中的源语进行推断,也可以使用其他与源语语言方向相同的单语数据。在推断翻译时,深层transformer系统中的编码层顺序固定,以保证翻译结果的一致性。将解码结果和用于解码的源语重新组合成平行双语句对进行处理,形式与步骤1)相同。
[0061]
在步骤6)中,使用步骤5)中构建的知识精炼数据训练步骤4)中得到的子模型,在子模型训练时,需要重置优化器状态调整学习率为峰值,以便于模型快速收敛。通过知识精炼数据使子模型进一步拟合深层transformer的状态,以达到和教师模型相近的性能。
[0062]
如图2所示,本实施例以两个编码组为例,对本发明方法的整体流程进行了描述,其中每组包含三个编码层,l1,l2,l3分别对应不同组内的编码层。在不同的批次下,深层模型的每组内具有不同的信息传递顺序。在完成训练后从每组中随机采样编码层构造子模型,并使用知识精炼数据对齐进行微调。
[0063]
为了验证方法的有效性,将基于分组扰动的深层神经机器翻译模型压缩方法在多个数据集和不用的网络层数下进行了实验,训练数据分别选用了具有450万平行句对的wmt英-德数据集和具有120万平行句对的nist中-英数据集进行了实验。为了证明该方法的有效性,采用具有相同参数配置的深层transformer模型作为基线系统进行对比。在wmt英-德任务上,编码层数目为24的深层神经机器翻译模型的bleu得分为29.39,其参数量为118m,当应用基于分组扰动的深层神经机器翻译模型压缩方法后,成功将模型压缩为6层编码的base模型,并且bleu分数为29.33,其对比24层的深层模型几乎没有损失;编码层48层的深层神经机器翻译模型bleu分数为30.03,参数量为194m,应用该方法压缩为6层模型后,性能维持了98%,bleu得分为29.68。参数量仅为48层深层模型的三分之一。在nist中-英任务上,分别评估了多个测试集的得分,在24层模型和48层的深层模型上,均得到了类似的结论,证明了该方法的有效性。
[0064]
本实施例选用华为mate30,小米10等型号的手机,进行验证,最终证明可以成功在小设备上进行部署深层神经机器翻译模型。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1