一种应用于稳定深层机器翻译模型的机器翻译方法与流程

    专利查询2023-10-01  90



    1.本发明涉及一种机器翻译模型训练方法,具体为一种应用于稳定深层机器翻译模型的机器翻译方法。


    背景技术:

    2.机器翻译(machine translation)是自然语言处理领域的一个经典任务,其目标是通过计算机将源语言(待翻译的语言)翻译为目标语言(翻译后的语言)。在世界互联互通的今天,语言的意义格外重要,包括政治、商业、教育、医疗等领域,语言都是不可替代的信息传递的媒介。而面对当今互联网中海量的数据,人类很难凭借自己对这些信息进行分析,因此机器翻译技术作为一种强大的翻译手段,已经被人们广泛地接受。
    3.虽然早在17世纪就有学者提出过使用机器完成翻译过程的思想,但是由于人类的语言十分复杂,并且会出现一词多义、省略等等语言现象,因此至今也没有一种方法可以完美地将一种语言翻译为另一种语言。不过,机器翻译发展至今已经经历了一个世纪的时间,如今的机器翻译也初具成效。从机器翻译的发展历史来看,机器翻译方法的发展大致经历了三个阶段,分别为基于规则的机器翻译方法、基于统计的机器翻译方法以及基于神经网络的机器翻译方法。基于规则的机器翻译方法起源于上个世纪30至50年代左右,这种方法使用人工定义的翻译规则完成翻译过程。但是,这些翻译规则都需要语言学家来定义,并且当规则越来越多时,规则之间还会产生冲突,这使得基于规则的机器翻译系统构造困难,同时十分难以维护。因此,基于规则的机器翻译方法很快地就被基于统计的机器翻译方法取代了。基于统计的机器翻译方法通过人工来定义特征,并在这些特征的基础上使用统计翻译模型完成翻译。虽然该方法不需要人工定义翻译规则,但是特征的定义仍然是主观的,一个好的特征可能会使得机器翻译的结果非常优秀。而特征的设计依赖于研究人员的经验,这使得基于统计的机器翻译方法的效果并不稳定。在2014年前后,神经网络被引入到机器翻译任务中,在很短地时间内,基于神经网络的机器翻译方法就取代了先前的方法,成为了最受关注的机器翻译方法。这种机器翻译方法既不需要人工定义特征,也不需要人工定义翻译规则,只需要将文本转化为输入数据,并将数据输入神经网络即可完成翻译。它大大提高了机器翻译系统的性能,以及构建机器翻译系统的成本,是至今为止最优秀的机器翻译方法。
    4.虽然机器翻译技术已经经过相当长时间的发展,但是由于人类语言的复杂性,比如会出现一词多义、省略等等语言现象,因此至今也没有一种方法可以将一种语言完美地翻译为另一种语言。对此,一些研究人员的解决方式是增加模型中的参数数量,以此提升机器翻译模型的表示能力。一种最直观的体现就是搭建层数更多、结构更复杂的深层机器翻译系统。但是,简单地增加神经网络的层数仍然面临许多问题,比如,当神经网络的层数加深时,神经网络反向传播过程就更容易出现梯度消失(gradient vanishing)或梯度爆炸(gradient explosion)现象,并且也会出现诸如训练不稳定、计算时间与计算资源消耗大等等问题。
    5.对于深层模型难以训练的问题,研究人员已经提出了许多技术方法,如网络初始化策略、训练中的学习策略、简化网络中部分层的计算、调整模型结构等来帮助深层网络的训练。在此基础上,深层网络的实验结果也证明了其强大的性能和潜力。虽然,在现有机器翻译中所使用的深层模型效果显著,但是其面临着参数量大,训练消耗大,难以部署等问题。面对深层网络计算资源消耗高的问题,一种有效的解决方式是采用混合精度训练的训练方式,由于该方法使用16比特浮点数(半精度)代替原来的32比特浮点数(全精度)计算网络参数,因此该方法也被称为半精度训练。同时在半精度训练中,为了防止误差在网络参数更新的过程中累加,网络中参数的存储仍然选择全精度数,与原始网络中使用的全精度数计算相比,使用半精度数计算可以大大加快网络的训练速度。但是,使用半精度数计算必然会在一定程度上影响计算的精度,并且由于半精度数计算时存在计算误差,因此在使用半精度数进行训练时,也会加重神经网络反向计算过程中出现的梯度消失和梯度爆炸问题。此时,在半精度场景下,解决深层模型的梯度消失和梯度爆炸问题是十分必要的。


    技术实现要素:

    6.在使用半精度方法训练深层模型的前提下,可以发现对于深层模型来说,梯度消失和梯度爆炸的产生一方面来源于,随着神经网络层数增多,在训练过程中,梯度信息中包含的误差会逐步增大。另一方面,由于使用半精度表示的参数,其表示范围较小,因此更加剧了深层网络中存在的梯度消失与梯度爆炸问题。
    7.本发明为将要解决的技术问题提供一种应用于稳定深层机器翻译模型的机器翻译深层机器翻译模型的训练方法,即梯度标准化方法,使用标准化方法对过小或者过大的梯度值进行重缩放,在不丢失梯度信息的前提下,使得梯度的数值在反向传播过程中保持在一个合理的范围内。梯度标准化方法能够保证在使用半精度训练深层模型时,模型的梯度信息更加稳定,更快更好的训练深层模型。
    8.为解决上述技术问题,本发明采用的技术方案是:
    9.本发明提供一种应用于稳定深层机器翻译模型的机器翻译方法,包括以下步骤:
    10.1)在深层模型的训练过程中,根据输入源语句子x进行每一次反向传播计算时,为深层模型中编码器部分参数的梯度矩阵g设置两个矩阵μ与σ;
    11.2)使用矩阵μ与σ分别代表梯度矩阵g的均值与标准差,并根据梯度矩阵g计算出矩阵μ与σ的值;
    12.3)在模型训练期间的每一次反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化;
    13.4)通过预设的策略与先验知识来控制该标准化的使用阶段和位置,进行机器翻译模型的快速准确训练,最终提升解码时的输出译文的译文质量。
    14.步骤1)在深层模型的训练过程中,根据一个长度为n的源语句子x={x1,x2,

    xn}进行每一次反向传播计算时,为深层模型中编码器部分层参数的梯度矩阵g设置两个矩阵μ与σ,具体为:
    15.g∈g
    encoder_layer
    16.其中,梯度矩阵g为编码器某一层的参数梯度矩阵,矩阵μ、σ与梯度矩阵g,在批次维和长度维的维度相同,这里假设梯度矩阵g的维度为(dim
    batch_size
    ,dim
    len
    ,dim
    embeding_size
    ),
    则矩阵μ、σ的维度为(dim
    batch_size
    ,dim
    len
    )。
    17.步骤2)中根据梯度矩阵g计算出矩阵μ与σ的值,具体为:
    18.矩阵μ与σ为梯度矩阵g的均值与标准差,均值与标准差的计算方式如下所示:
    [0019][0020]
    其中,xk为梯度矩阵g中的一个元素;μi为矩阵μ中的一个元素,其表示梯度矩阵g中的一部分参数的均值,这部分参数使用集合si表示,m为集合si中参数的数量,集合si根据所采用的标准化方法不同而变化;同理σi为矩阵σ中的一个元素,∈为一个不为0的极小值。
    [0021]
    步骤3)在模型训练的反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化操作,标准化操作ln的结果lng可以表示为:
    [0022][0023]
    此时,当模型进行反向传播时,第l层经过标准化后的梯度信息可以表示为:
    [0024][0025]
    其中,loss为模型的最终损失,l表示模型的总层数,x
    l
    表示第l层的输入矩阵,f(
    ·
    )代表模型中的一些被重复使用的函数,θk表示模型第k层中函数f的参数。
    [0026]
    步骤4)通过预设的策略与先验知识来控制该标准化的使用阶段和位置,梯度标准化的使用在训练轮数与模型结构方面都是连续的,保证梯度标准化被应用于模型的连续层,以及在训练阶段保证在连续的时间内使用梯度标准化方法,在训练过程中,根据标准化的梯度优化模型中的参数,并在解码过程中依据模型参数得到比原始模型输出译文更优的最优译文
    [0027]
    本发明具有以下有益效果及优点:
    [0028]
    1.本发明提供一种应用于稳定深层机器翻译模型的机器翻译方法,可以使得训练过程更加稳定,并且不受限于具体的模型与任务,具有很好的通用性。
    [0029]
    2.本发明方法与其他稳定模型训练的方法相互正交,比如一些深层模型的初始化方法,以及神经网络的结构调整等等。
    [0030]
    3.由于本发明方法使得反向传播中的梯度信息变得更加平稳,因此本方法降低了模型训练过程中的不确定性,使得模型的效果更加容易在不同的设备上重现。
    [0031]
    4.本发明方法,可以在不降低模型性能的情况下,保证模型在半精度训练场景下稳定训练使得模型的训练过程既快速又准确。
    附图说明
    [0032]
    图1为本发明方法涉及的transformer模型结构图示;
    [0033]
    图2为本发明方法涉及的反向传播计算示意图;
    [0034]
    图3为本发明方法涉及的梯度标准化在transformer模型中子层的位置图。
    具体实施方式
    [0035]
    下面结合说明书附图对本发明作进一步阐述。
    [0036]
    本发明一种应用于稳定深层机器翻译模型的机器翻译方法,包括以下步骤:
    [0037]
    1)在深层模型的训练过程中,根据输入源语句子x进行每一次反向传播计算时,为深层模型中编码器部分参数的梯度矩阵g设置两个矩阵μ与σ;
    [0038]
    2)使用矩阵μ与σ分别代表梯度矩阵g的均值与标准差,并根据梯度矩阵g计算出矩阵μ与σ的值;
    [0039]
    3)在模型训练期间的每一次反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化;
    [0040]
    4)通过预设的策略与先验知识来控制该标准化的使用阶段和位置,实现机器翻译模型的快速准确训练,最终提升解码时的输出译文的译文质量。
    [0041]
    本发明中,在深层模型训练的过程中,使用矩阵μ与σ,来表示模型中参数的梯度矩阵g的均值与方差,并通过矩阵μ与σ对深层模型进行的梯度进行标准化。在深层机器翻译模型的训练过程中使用梯度标准化方法,可以使得模型的性能上涨,并且这种梯度标准化方法可以使得深层模型的训练过程变得更加稳定,尤其是在半精度训练的前提下。本方法以如今机器翻译的常用翻译模型transformer为例,对本方法进行解释,其模型结构如图1所示。值得注意的是,本方法并不受到模型结构和任务的约束,具有良好的通用性。
    [0042]
    步骤1)在深层模型的训练过程中,根据一个长度为n的源语句子x={x1,x2,

    xn}进行一次反向传播计算时,为深层模型中编码器部分层参数的梯度矩阵g,设置两个矩阵μ与σ,具体为:
    [0043]
    g∈g
    encoder_layer
    [0044]
    其中,梯度矩阵g为编码器某一层的参数梯度矩阵。矩阵μ、σ与梯度矩阵g,在批次和长度一维的维度相同。以transformer模型为例,在该模型中梯度矩阵g的维度可以表示为(dim
    batch_size
    ,dim
    len
    ,dim
    embeding_size
    ),该向量的三个维度大小分别由批次大小(batch_size)、句子长度(len)以及特征维度(embeding_size)大小决定。此时,矩阵μ、σ的维度可以表示为(dim
    batch_size
    ,dim
    len
    )。
    [0045]
    步骤2)使用矩阵μ与σ分别代表梯度矩阵g的均值与标准差,并根据梯度矩阵g计算出矩阵μ与σ的值,具体为:
    [0046]
    矩阵μ与σ为梯度矩阵g的均值与标准差,均值与标准差的计算方式如下所示:
    [0047][0048]
    其中,xk为梯度矩阵g中的一个元素;μi矩阵μ中的一个元素,其表示梯度矩阵g中的一部分参数的均值,这部分参数使用集合si表示,m为集合si中参数的数量,集合si根据所采用的标准化方法不同而变化。同理σi为矩阵σ中的一个元素,∈为一个不为0的极小值。
    [0049]
    虽然如今模型中常用的标准化方法有很多,但是本方法中采用了如今广泛使用的批次标准化方法,因此si可以使用下式表示:
    [0050]
    si={k|ke=ie}
    [0051]
    其中,ie表示一个在取值在[0,dim
    embeding_size
    )的整数值,ke表示当前元素k在特征
    维度的索引值。该公式表示,在批次标准化中,将根据ie构造dim
    embeding_size
    个集合s。根据集合s,对所有具有相同特征维度的元素进行一次标准化,因此批次标准化沿着批次维度和句长维度计算参数的均值与方差;
    [0052]
    步骤3)在模型训练的反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化,标准化操作的结果lng可以表示为:
    [0053][0054]
    当模型进行反向传播时,第l层的输入的梯度可以表示为:
    [0055][0056]
    其中,loss为模型的最终损失,l表示模型的总层数,x
    l
    表示第l层的输入矩阵,f代表模型中的一些被重复使用的函数,θ表示模型中函数f的参数。
    [0057]
    从上式中可以发现,等式右边由两项构成,其中第一项为模型损失函数对模型最后一层输入的导数,第二项则包含了一个与模型总层数相关的梯度信息。由此可知,当模型的层数越多时,这一项的作用将会被呈指数放大,也就是梯度爆炸与梯度消失的来源,因此可以在这一项中使用标准化,对梯度信息进行约束。
    [0058]
    基于一种更加稳定的训练来源于低方差、低噪声的下降过程的假设,本方法对梯度进行标准化,可以表示为:
    [0059][0060]
    虽然,在使用梯度标准化方法后,仅仅改变了当前层的梯度信息,梯度信息中仍然存在一个与模型深度相关的量,如上式等号右端最后一项所示。但是实际上,与先前其他对梯度信息进行干预的方法不同,本方法在梯度信息进行反向传播的过程中进行梯度标准化,即先前方法总是在反向传播结束后,对梯度进行干预,如梯度裁剪等方式,但是在本方法中,梯度标准化被应用于反向计算过程中,即经过标准化后的梯度信息会继续向模型的浅层传递,进一步干预模型浅层的梯度求解过程,这是本方法与先前方法的重要区别,如图2所示;
    [0061]
    步骤4)通过预设的策略与先验知识来控制该标准化的使用阶段,比如在训练过程的后期使用该标准化方法,同时也可以在训练的早期,或者是中期等训练阶段,根据先验知识或者动态策略,调整梯度标准化的使用阶段。在训练过程中,根据该标准化后的梯度优化模型中的参数,可以得到更优的模型参数,在解码过程中,依据此模型参数得到比原始模型输出译文更优的最优译文值得注意的是,标准化的使用是连续的,这是由于在开始对梯度使用标准化时会导致梯度较大波动,但是随着训练的进行梯度的变化会趋于平稳,因此在训练阶段一般保证在连续的时间内使用该标准化方法。此外,从模型每一层的角度上看,模型梯度标准化的应用也是连续的,一般应用于连续的几层上。并且在训练过程中开始使用本方法后,应保证使用本方法直至模型训练结束。具体的应用层数以及在训练阶段的哪一轮开始应用本方法,应依据任务以及模型相关的先验知识,在transformer模型使用
    iwslt14de-en数据集进行训练时,本方法推荐应用于编码器的浅层,并在训练阶段的后期使用,在子层上的应用位置如图3所示。
    [0062]
    步骤5)在深层机器翻译模型的训练过程中使用梯度标准化方法,可以使得模型的性能上涨。并且这种梯度标准化方法可以使得深层模型的训练过程变得更加稳定,尤其是在半精度训练的前提下,深层模型将更不容易出现梯度消失与梯度爆炸现象。
    [0063]
    本实施例将本发明方法应用于基于半精度训练的深层机器翻译模型中,可以大幅地降低深层模型训练过程中出现的梯度消失与梯度爆炸问题。例如在8卡1080ti的gpu服务器上,可以使用半精度训练一个30层的深层transformer模型,该模型在某些情况下极易发生梯度消失与梯度爆炸问题导致训练失败。使用本方法后,几乎不会发生训练失败的情况。这使得深层模型的训练过程变得更加稳定,有利于深层模型等大模型在云平台等具有大型资源的设备上,提供更稳定的服务。在iwslt14de-en数据集上,可以取得0.5个bleu点的提升,下表对比了使用本方法的模型和不使用本方法的模型,在翻译同一个句子的时候,不同的翻译结果,可以发现使用本方法后,模型的译文更加接近标准答案。
    [0064][0065]
    此外,本方法不受限于具体的硬件与系统,在各种设备与任务上均可以采用这种方法更加稳定的训练一个机器翻译模型。

    技术特征:
    1.一种应用于稳定深层机器翻译模型的机器翻译方法,其特征在于包括以下步骤:1)在深层模型的训练过程中,根据输入源语句子x进行每一次反向传播计算时,为深层模型中编码器部分参数的梯度矩阵g设置两个矩阵μ与σ;2)使用矩阵μ与σ分别代表梯度矩阵g的均值与标准差,并根据梯度矩阵g计算出矩阵μ与σ的值;3)在模型训练期间的每一次反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化;4)通过预设的策略与先验知识来控制该标准化的使用阶段和位置,进行机器翻译模型的快速准确训练,最终提升解码时的输出译文的译文质量。2.按权利要求1所述的一种应用于稳定深层机器翻译模型的机器翻译方法,其特征在于:步骤1)在深层模型的训练过程中,根据一个长度为n的源语句子x={x1,x2,

    x
    n
    }进行每一次反向传播计算时,为深层模型中编码器部分层参数的梯度矩阵g设置两个矩阵μ与σ,具体为:g∈g
    encoder_layer
    其中,梯度矩阵g为编码器某一层的参数梯度矩阵,矩阵μ、σ与梯度矩阵g,在批次维和长度维的维度相同,这里假设梯度矩阵g的维度为(dim
    batch_size
    ,dim
    len
    ,dim
    embeding_size
    ),则矩阵μ、σ的维度为(dim
    batch_size
    ,dim
    len
    )。3.按权利要求1所述的一种应用于稳定深层机器翻译模型的机器翻译方法,其特征在于:步骤2)中根据梯度矩阵g计算出矩阵μ与σ的值,具体为:矩阵μ与σ为梯度矩阵g的均值与标准差,均值与标准差的计算方式如下所示:其中,x
    k
    为梯度矩阵g中的一个元素;μ
    i
    为矩阵μ中的一个元素,其表示梯度矩阵g中的一部分参数的均值,这部分参数使用集合s
    i
    表示,m为集合s
    i
    中参数的数量,集合s
    i
    根据所采用的标准化方法不同而变化;同理σ
    i
    为矩阵σ中的一个元素,∈为一个不为0的极小值。4.按权利要求1所述的一种应用于稳定深层机器翻译模型的机器翻译方法,其特征在于:步骤3)在模型训练的反向传播过程中,使用矩阵μ与σ对梯度矩阵g进行标准化操作,标准化操作ln的结果ln
    g
    可以表示为:此时,当模型进行反向传播时,第l层经过标准化后的梯度信息可以表示为:其中,loss为模型的最终损失,l表示模型的总层数,x
    l
    表示第l层的输入矩阵,f(
    ·
    )代表模型中的一些被重复使用的函数,θ
    k
    表示模型第k层中函数f的参数。5.按权利要求1所述的一种应用于稳定深层机器翻译模型的机器翻译方法,其特征在于:步骤4)通过预设的策略与先验知识来控制该标准化的使用阶段和位置,梯度标准化的
    使用在训练轮数与模型结构方面都是连续的,保证梯度标准化被应用于模型的连续层,以及在训练阶段保证在连续的时间内使用梯度标准化方法,在训练过程中,根据标准化的梯度优化模型中的参数,并在解码过程中依据模型参数得到比原始模型输出译文更优的最优译文

    技术总结
    本发明公开一种应用于稳定深层机器翻译模型的机器翻译方法,步骤为:在深层模型的训练过程中,根据输入源语句子X进行每一次反向传播计算时,为深层模型中编码器部分参数的梯度矩阵G设置两个矩阵μ与σ;使用矩阵μ与σ分别代表梯度矩阵G的均值与标准差,并根据梯度矩阵G计算出矩阵μ与σ的值;在模型训练期间的每一次反向传播过程中,使用矩阵μ与σ对梯度矩阵G进行标准化;通过预设的策略与先验知识来控制该标准化的使用阶段和位置,进行机器翻译模型的快速准确训练,最终提升解码时的输出译文的译文质量。本发明可以使得训练过程更加稳定,并且不受限于具体的模型与任务,具有很好的通用性,使模型的效果更加容易在不同的设备上重现。同的设备上重现。同的设备上重现。


    技术研发人员:刘兴宇 姜炎宏
    受保护的技术使用者:沈阳雅译网络技术有限公司
    技术研发日:2022.02.10
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-18908.html

    最新回复(0)