CN112597778B - 一种翻译模型的训练方法、翻译方法以及设备 - Google Patents

一种翻译模型的训练方法、翻译方法以及设备 Download PDF

Info

Publication number
CN112597778B
CN112597778B CN202011466833.9A CN202011466833A CN112597778B CN 112597778 B CN112597778 B CN 112597778B CN 202011466833 A CN202011466833 A CN 202011466833A CN 112597778 B CN112597778 B CN 112597778B
Authority
CN
China
Prior art keywords
word vector
training
sequence
vector
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011466833.9A
Other languages
English (en)
Other versions
CN112597778A (zh
Inventor
张绍磊
冯洋
李良友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011466833.9A priority Critical patent/CN112597778B/zh
Publication of CN112597778A publication Critical patent/CN112597778A/zh
Priority to PCT/CN2021/135238 priority patent/WO2022127613A1/zh
Application granted granted Critical
Publication of CN112597778B publication Critical patent/CN112597778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请公开了一种翻译模型的训练方法,涉及人工智能领域,包括:获取训练语句的词向量序列。通过第一翻译模型的编码器获取词向量序列的第一编码序列,第一翻译模型的编码器采用单向编码器。通过第二翻译模型的编码器获取词向量序列的第二编码序列,第二翻译模型的编码器采用双向编码器。将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。通过本申请提供的方案,可以提升翻译模型的性能。

Description

一种翻译模型的训练方法、翻译方法以及设备
技术领域
本申请涉及人工智能技术领域,具体涉及一种翻译模型的训练方法、翻译方法以及设备。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
随着人工智能技术的不断发展,神经网络机器翻译(neural machinetranslation,NMT)取得了快速发展,并超越了传统的统计机器翻译,成为主流的机器翻译技术。然而,目前NMT针对同声传译、实时字幕等需要同步翻译的场景,翻译效果不佳,通常表现为翻译结果输出的延迟、翻译的准确度不高。
发明内容
本申请实施例提供一种翻译模型的训练方法、翻译方法以及设备,以提升翻译质量。
为达到上述目的,本申请实施例提供如下技术方案:
本申请第一方面提供一种翻译模型的训练方法,可以包括:获取训练语句的词向量序列,其中,训练语句可以有多种表示方式,比如训练语句可以通过文本的方式表示,训练语句还可以通过语音的方式表示,再比如训练语句还可以通过图像的方式表示。对训练语句进行处理,使训练语句中各个词语通过向量的方式进行表示,词向量序列可以包括训练语句中至少一个词的词向量。在一个可能的实施方式中,可以通过词嵌入处理方式,获取训练语句中各个词的词向量。词嵌入处理是将单词在向量空间中表示为实数向量的技术,比如,将“我”进行映射得到词向量(0.1,0.5,5)。通过第一翻译模型的编码器获取词向量序列的第一编码序列,第一翻译模型的编码器采用单向编码器,第一编码序列可以包括至少一个词向量的第一编码向量。对于单向编码器而言,无论是将一句完整的训练语句的所有词向量一次性输入至单向编码器中,还是分批次的将一句完整的训练语句的词向量分批次的输入至单向编码器中,当前编码的词向量不会对已经编码的词向量造成影响,比如每次输入一个词的词向量至第一翻译模型的编码器中,编码器每次只会对新输入的词向量进行编码。通过第二翻译模型的编码器获取词向量序列的第二编码序列,第二翻译模型的编码器采用双向编码器,第二编码序列可以包括至少一个词向量的第二编码向量。通过双向编码器进行编码时,考虑被编码的词向量的前文信息和后文信息,当前编码的词向量会对已经编码的词向量造成影响。将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。其中,更新第一翻译模型可以理解为更新第一翻译模型的参数。通过训练语句对第一翻译模型进行训练,并通过第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型,直至模型收敛,获取迭代训练预设的次数,获取训练后的第一翻译模型。由第一方面可知,本申请提供的方案,在第一翻译模型的损失函数中加入第一编码向量和第二编码向量之间的距离,在迭代训练的过程中,是损失值不断减小的过程,第一编码向量和第二编码向量之间的距离也随之不断缩小,使双向编码器获取到的后文信息可以对第一翻译模型的训练起到指导作用。通过本申请提供的方案训练得到的第一翻译模型,相比于只根据第一损失值更新第一翻译模型的方案,可以使训练后的第一翻译模型的性能更优。本申请提供的方案针对于需要同步翻译的场景有更好的适用,制约同步机器翻译性能的一个关键因素在于,同步机器翻译的过程中,获取到的不是完整的源语句。因此当缺失未来信息(源语句中未输入的信息)时如何更好的进行翻译成为一个难题。现有的方法可以采用双向编码器,当有新输入的词向量时,根据新输入的词向量对全部输入的词向量进行重新编码,通过双向编码器,虽然能实时更新词向量的编码向量,但是需要对已经编码的词向量不断更新,产生大量重复的运算,增大时延。而通过单向编码器,新输入至单向编码器中的词向量,不会影响已经编码的词向量,虽然可以避免重复运算,也导致采用了单向编码器的翻译模型的翻译效果不佳。而本申请提供的方案,训练后的翻译模型采用单向编码器,避免了重复编码的问题,降低时延,且在训练过程中,采用了双向编码器的翻译模型作为老师模型,将采用了单向编码器的翻译模型作为学生模型,通过拉近老师模型和学生模型输出的编码向量在空间上的距离,达到学生模型向老师模型学习的效果,使训练得到的采用了单向编码器的翻译模型的性能更高。
可选地,结合上述第一方面,在第一种可能的实施方式中,还可以包括:将第二编码序列输入至第二翻译模型的解码器中,以获取第二预测结果。根据第二预测结果和训练语句对应的目标翻译结果获取第二损失值。根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型,可以包括:根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。由第一方面第一种可能的实施方式可知,在更新第一翻译模型的参数的时候,还考虑了第二损失值,在一些可能的实施方式中,第一翻译模型和第二翻译模型可能采用相同的编码器,针对于这样的情况,可以在更新第一翻译模型的参数的时候考虑第二损失值,进一步提升训练后的第一翻译模型的性能。
可选地,结合上述第一方面第一种可能的实施方式,在第二种可能的实施方式中,还可以包括:根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。由第一方面第二种可能的实施方式中,在训练的过程中,还可以对第二翻译模型进行更新,在第一翻译模型向第二翻译模型进行学习的同时,第二翻译模型也向第一翻译模型进行学习,使收敛后的第一翻译模型和第二翻译模型之间寻求一种平衡。通过本申请提供的方案训练得到的第一翻译模型,相比于只根据第一损失值更新第一翻译模型的方案,可以使训练后的第一翻译模型的性能更优。
可选地,结合上述第一方面或第一方面第一种至第一方面第二种可能的实施方式,在第三种可能的实施方式中,通过第一翻译模型的编码器获取词向量序列的第一编码序列,可以包括:使第一翻译模型的编码器根据第一位置信息和第二位置信息对第一词向量进行编码,以获取第一词向量的第一编码向量,第一位置信息可以包括第一词向量在词向量序列中的位置信息,第二位置信息可以包括第一词向量与第二词向量在词向量序列中的相对位置关系,第一词向量是可以包括于词向量序列中的一个词向量,第二词向量可以包括词向量序列中在第一词向量之前的至少一个词向量。重复执行获取第一编码向量的步骤,直至获取词向量序列中各个词向量的第一编码向量。由第一方面第三种可能的实施方式可知,给出了一种具体的获取第一编码序列的方式,增加了方案的多样性。
可选地,结合上述第一方面第三种可能的实施方式,在第四种可能的实施方式中,第二词向量可以包括词向量序列中在第一词向量之前的所有词向量。由第一方面第四种可能的实施方式可知,给出了一种具体的获取第一编码序列的方式,增加了方案的多样性。且第二词向量包括词向量序列中在第一词向量之前的所有词向量,在对当前编码的词向量进行编码的过程中,考虑了全部的前文信息,提升编码的质量。
可选地,结合上述第一方面第三种或第一方面第四种可能的实施方式,在第五种可能的实施方式中,还可以包括:根据第三词向量、第一词向量的第一编码向量获取第一词向量的第三编码向量,第三词向量可以包括词向量序列中在第一词向量之后的至少一个词向量。重复执行获取第三编码向量的过程,以获取第三编码序列,第三编码序列可以包括词向量序列中各个词向量的第三编码向量。将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果,可以包括:将各个词向量的第一编码序列、第三编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。由第一方面第五种可能的实施方式可知,为了能够提升训练后的第一翻译模型的性能,在一个可能的实施方式中,还可以在单向编码器输出的编码向量上叠加后文信息。当单向编码器接收到新输入的词向量时,根据新输入的词向量更新已经输出的编码向量,以获取更新后的编码向量,使更新后的编码向量包括了后文信息,将更新后的编码向量输入至解码器中,并根据解码器输出的预测的翻译结果更新翻译模型,进而使训练后的翻译模型具有更好的性能。
可选地,结合上述第一方面第五种可能的实施方式,在第六种可能的实施方式中,第一翻译模型的解码器可以包括n个网络层,n个网络层顺次连接,n为大于1的正整数,前(n-1)个网络层的输入为第一编码序列,第n个网络层的输入为第三编码序列,第一预测结果根据第n个网络层的输出确定。由第一方面第六种可能的实施方式可知,给出了一种具体的获取第一预测结果的方式,增加了方案的多样性。
可选地,结合上述第一方面或第一方面第一种至第一方面第六种可能的实施方式,在第七种可能的实施方式中,通过第二翻译模型的编码器获取词向量序列的第二编码序列,可以包括:使第二翻译模型的编码器根据第三位置信息和第四位置信息对第四词向量进行编码,以获取第四词向量的第二编码向量,第三位置信息可以包括第四词向量在词向量序列中的位置信息,第四位置信息可以包括第四词向量与第五词向量在词向量序列中的相对位置关系,第四词向量是可以包括于词向量序列中的一个词向量,第五词向量可以包括词向量序列中在第四词向量之前的至少一个词向量、词向量序列中在第四词向量之后的至少一个词向量。重复执行获取第二编码向量的步骤,直至获取词向量序列中各个词向量的第二编码向量。由第一方面第七种可能的实施方式可知,给出了一种具体的获取第二编码序列的方式,增加了方案的多样性。
可选地,结合上述第一方面第七种可能的实施方式,在第八种可能的实施方式中,第五词向量可以包括词向量序列中在第四词向量之前的所有词向量、词向量序列中在第四词向量之后的所有词向量。
可选地,结合上述第一方面或第一方面第一种至第一方面第八种可能的实施方式,在第九种可能的实施方式中,还可以包括:获取词向量序列中同一个词向量的第一编码向量和第二编码向量之间的距离,以获取N个距离,N为词向量序列中可以包括的词向量的总数目。对N个距离进行加权处理,以获取第一编码序列和第二编码序列之间的距离。由第一方面第九种可能的实施方式可知,给出了一种具体的获取第一编码序列和第二编码序列之间的距离的方式,增加了方案的多样性。
本申请第二方面提供一种翻译方法,可以包括:获取待翻译语句的词向量序列,词向量序列可以包括待翻译语句中至少一个词的词向量。通过翻译模型的编码器获取词向量序列的第一编码序列,翻译模型的编码器采用单向编码器。根据第一词向量的第一编码向量、第三词向量获取第一词向量的第三编码向量,第一词向量是可以包括于词向量序列中的一个词向量,第三词向量可以包括词向量序列中在第一词向量之后的至少一个词向量。重复执行获取第三编码向量的步骤,以获取第三编码序列,第三编码序列可以包括词向量序列中各个词向量的第三编码向量。将第一编码序列、第三编码序列输入至翻译模型的解码器中,以获取翻译结果。由第二方面可知,本申请中的翻译模型采用单向编码器,在同步翻译的场景下,相比于双向编码器,可以避免重复编码的问题,降低时延。并且,在单向编码器输出的编码向量上叠加后文信息。当单向编码器接收到新输入的词向量时,根据新输入的词向量更新已经输出的编码向量,以获取更新后的编码向量,使更新后的编码向量包括了后文信息,通过这样的方式,使翻译模型输出质量更好的翻译结果。
可选地,结合上述第二方面,在第一种可能的实施方式中,翻译模型是根据第一损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻译模型获取的,单向翻译模型采用单向编码器,第一训练编码序列是单向翻译模型的单向编码器针对训练语句中的训练词向量序列获取的编码序列,训练词向量序列可以包括训练语句中至少一个词的词向量,第二训练编码序列是双向翻译模型针对训练词向量序列获取的编码序列,双向翻译模型采用双向编码器,第一损失值是根据第一预测结果和训练语句对应的目标翻译结果获取的,第一预测结果是将第一训练编码向量输入至单向翻译模型的解码器中获取的。由第二方面可知,在训练过程中,采用了双向编码器的翻译模型作为老师模型,将采用了单向编码器的翻译模型作为学生模型,通过拉近老师模型和学生模型输出的编码向量在空间上的距离,达到学生模型向老师模型学习的效果,使训练得到的采用了单向编码器的翻译模型的性能更高。
可选地,结合上述第二方面第一种可能的实施方式,在第二种可能的实施方式中,翻译模型具体是根据第一损失值、第二损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻译模型获取的,第二损失值是根据第二预测结果和训练语句对应的目标翻译结果获取的,第二预测结果是将第二训练编码序列输入至双向翻译模型的解码器中获取的。
可选地,结合上述第二方面第一种或第二方面第二种可能的实施方式,在第三种可能的实施方式中,第一训练编码序列是通过重复执行获取第一训练编码向量的步骤获取的,获取第一训练编码向量的步骤可以包括:使单向翻译模型的编码器根据第一位置信息和第二位置信息对第一训练词向量进行编码,以获取第一训练词向量的第一训练编码向量,第一位置信息可以包括第一训练词向量在训练词向量序列中的位置信息,第二位置信息可以包括第一训练词向量与第二训练词向量在训练词的词向量序列中的相对位置关系,第一训练词向量是可以包括于训练词向量序列中的一个词向量,第二训练词向量可以包括训练词向量序列中在第一训练词向量之前的至少一个词向量。
可选地,结合上述第二方面第三种可能的实施方式,在第四种可能的实施方式中,第二训练词向量可以包括训练词向量序列中在第一训练词向量之前的所有词向量。
可选地,结合上述第二方面第一种至第二方面第四种可能的实施方式,在第五种可能的实施方式中,第二训练编码序列是通过重复执行获取第二训练编码向量的步骤获取的,获取第二训练编码向量的步骤可以包括:使双向翻译模型的编码器根据第三位置信息和第四位置信息对第四训练词向量进行编码,以获取第四训练词向量的第二训练编码向量,第三位置信息可以包括第四训练词向量在训练词向量序列中的位置信息,第四位置信息可以包括第四训练词向量与第五训练词向量在训练词向量序列中的相对位置关系,第四训练词向量是可以包括于训练词向量序列中的一个词向量,第五训练词向量可以包括训练词向量序列中在第四训练词向量之前的至少一个词向量、训练词向量序列中在第四训练词向量之后的至少一个词向量。
可选地,结合上述第二方面第五种可能的实施方式,在第六种可能的实施方式中,第五训练词向量可以包括训练词向量序列中在第四训练词向量之前的所有词向量、训练词向量序列中在第四训练词向量之后的所有词向量。
可选地,结合上述第二方面第一种至第二方面第四种可能的实施方式,在第七种可能的实施方式中,第一训练编码序列和所第二训练编码序列之间的距离是对N个距离进行加权处理后获取的,N个距离是训练语句中同一个词向量的第一训练编码向量和第二训练编码向量之间的距离,N为训练语句中训练词向量的总数目。
可选地,结合上述第二方面或第二方面第一种至第二方面第七种可能的实施方式,在第八种可能的实施方式中,翻译模型的解码器可以包括n个网络层,n个网络层顺次连接,n为大于1的正整数,前(n-1)个网络层的输入为第一编码序列,第n个网络层的输入为第三编码序列,翻译结果根据第n个网络层的输出确定。
本申请第三方面提供一种训练装置,可以包括:第一获取模块,用于获取训练语句的词向量序列,词向量序列可以包括训练语句中至少一个词的词向量。第一翻译模块,用于通过第一翻译模型的编码器获取词向量序列的第一编码序列,第一翻译模型的编码器采用单向编码器,第一编码序列可以包括至少一个词向量的第一编码向量。第二翻译模块,用于通过第二翻译模型的编码器获取词向量序列的第二编码序列,第二翻译模型的编码器采用双向编码器,第二编码序列可以包括至少一个词向量的第二编码向量。第一翻译模块,还用于将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。第二获取模块,用于根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。更新模块,用于根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
可选地,结合上述第三方面,在第一种可能的实施方式中,第二翻译模块,还用于:将第二编码序列输入至第二翻译模型的解码器中,以获取第二预测结果。第二获取模块,还用于根据第二预测结果和训练语句对应的目标翻译结果获取第二损失值。更新模块,具体用于根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
可选地,结合上述第三方面第一种可能的实施方式,在第二种可能的实施方式中,更新模块,还用于:根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。
可选地,结合上述第三方面或第三方面第一种至第三方面第二种可能的实施方式,在第三种可能的实施方式中,第一翻译模块,具体用于:使第一翻译模型的编码器根据第一位置信息和第二位置信息对第一词向量进行编码,以获取第一词向量的第一编码向量,第一位置信息可以包括第一词向量在词向量序列中的位置信息,第二位置信息可以包括第一词向量与第二词向量在词向量序列中的相对位置关系,第一词向量是可以包括于词向量序列中的一个词向量,第二词向量可以包括词向量序列中在第一词向量之前的至少一个词向量。重复执行获取第一编码向量的步骤,直至获取词向量序列中各个词向量的第一编码向量。
可选地,结合上述第三方面第三种可能的实施方式,在第四种可能的实施方式中,第二词向量可以包括词向量序列中在第一词向量之前的所有词向量。
可选地,结合上述第三方面第三种或第三方面第四种可能的实施方式,在第五种可能的实施方式中,还可以包括第三获取模块,第三获取模块,用于:根据第三词向量、第一词向量的第一编码向量获取第一词向量的第三编码向量,第三词向量可以包括词向量序列中在第一词向量之后的至少一个词向量。重复执行获取第三编码向量的过程,以获取第三编码序列,第三编码序列可以包括词向量序列中各个词向量的第三编码向量。第一翻译模块,具体用于将各个词向量的第一编码序列、第三编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。
可选地,结合上述第三方面第五种可能的实施方式,在第六种可能的实施方式中,第一翻译模型的解码器可以包括n个网络层,n个网络层顺次连接,n为大于1的正整数,前(n-1)个网络层的输入为第一编码序列,第n个网络层的输入为第三编码序列,第一预测结果根据第n个网络层的输出确定。
可选地,结合上述第三方面或第三方面第一种至第三方面第六种可能的实施方式,在第七种可能的实施方式中,第二翻译模块,具体用于:使第二翻译模型的编码器根据第三位置信息和第四位置信息对第四词向量进行编码,以获取第四词向量的第二编码向量,第三位置信息可以包括第四词向量在词向量序列中的位置信息,第四位置信息可以包括第四词向量与第五词向量在词向量序列中的相对位置关系,第四词向量是可以包括于词向量序列中的一个词向量,第五词向量可以包括词向量序列中在第四词向量之前的至少一个词向量、词向量序列中在第四词向量之后的至少一个词向量。重复执行获取第二编码向量的步骤,直至获取词向量序列中各个词向量的第二编码向量。
可选地,结合上述第三方面第七种可能的实施方式,在第八种可能的实施方式中,第五词向量可以包括词向量序列中在第四词向量之前的所有词向量、词向量序列中在第四词向量之后的所有词向量。
可选地,结合上述第三方面或第三方面第一种至第三方面第八种可能的实施方式,在第九种可能的实施方式中,还可以包括第四获取模块,第四获取模块,用于:获取词向量序列中同一个词向量的第一编码向量和第二编码向量之间的距离,以获取N个距离,N为词向量序列中可以包括的词向量的总数目。对N个距离进行加权处理,以获取第一编码序列和第二编码序列之间的距离。
本申请第四方面提供一种翻译设备,可以包括:获取模块,用于获取待翻译语句的词向量序列,词向量序列可以包括待翻译语句中至少一个词的词向量。翻译模块,用于:通过翻译模型的编码器获取词向量序列的第一编码序列,翻译模型的编码器采用单向编码器。根据第一词向量的第一编码向量、第三词向量获取第一词向量的第三编码向量,第一词向量是可以包括于词向量序列中的一个词向量,第三词向量可以包括词向量序列中在第一词向量之后的至少一个词向量。重复执行获取第三编码向量的步骤,以获取第三编码序列,第三编码序列可以包括词向量序列中各个词向量的第三编码向量。将第一编码序列、第三编码序列输入至翻译模型的解码器中,以获取翻译结果。
可选地,结合上述第四方面,在第一种可能的实施方式中,翻译模型是根据第一损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻模模型获取的,单向翻译模型采用单向编码器,第一训练编码序列是单向翻译模型的单向编码器针对训练语句中的训练词向量序列获取的编码序列,训练词向量序列可以包括训练语句中至少一个词的词向量,第二训练编码序列是双向翻译模型针对训练词向量序列获取的编码序列,双向翻译模型采用双向编码器,第一损失值是根据第一预测结果和训练语句对应的目标翻译结果获取的,第一预测结果是将第一训练编码向量输入至单向翻译模型的解码器中获取的。
可选地,结合上述第四方面第一种可能的实施方式,在第二种可能的实施方式中,翻译模型具体是根据第一损失值、第二损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻译模型获取的,第二损失值是根据第二预测结果和训练语句对应的目标翻译结果获取的,第二预测结果是将第二训练编码序列输入至双向翻译模型的解码器中获取的。
可选地,结合上述第四方面第一种或第四方面第二种可能的实施方式,在第三种可能的实施方式中,第一训练编码序列是通过重复执行获取第一训练编码向量的步骤获取的,获取第一训练编码向量的步骤可以包括:使单向翻译模型的编码器根据第一位置信息和第二位置信息对第一训练词向量进行编码,以获取第一训练词向量的第一训练编码向量,第一位置信息可以包括第一训练词向量在训练词向量序列中的位置信息,第二位置信息可以包括第一训练词向量与第二训练词向量在训练词的词向量序列中的相对位置关系,第一训练词向量是可以包括于训练词向量序列中的一个词向量,第二训练词向量可以包括训练词向量序列中在第一训练词向量之前的至少一个词向量。
可选地,结合上述第四方面第三种可能的实施方式,在第四种可能的实施方式中,第二训练词向量可以包括训练词向量序列中在第一训练词向量之前的所有词向量。
可选地,结合上述第四方面第一种至第四方面第四种可能的实施方式,在第五种可能的实施方式中,第二训练编码序列是通过重复执行获取第二训练编码向量的步骤获取的,获取第二训练编码向量的步骤可以包括:使双向翻译模型的编码器根据第三位置信息和第四位置信息对第四训练词向量进行编码,以获取第四训练词向量的第二训练编码向量,第三位置信息可以包括第四训练词向量在训练词向量序列中的位置信息,第四位置信息可以包括第四训练词向量与第五训练词向量在训练词向量序列中的相对位置关系,第四训练词向量是可以包括于训练词向量序列中的一个词向量,第五训练词向量可以包括训练词向量序列中在第四训练词向量之前的至少一个词向量、训练词向量序列中在第四训练词向量之后的至少一个词向量。
可选地,结合上述第四方面第五种可能的实施方式,在第六种可能的实施方式中,第五训练词向量可以包括训练词向量序列中在第四训练词向量之前的所有词向量、训练词向量序列中在第四训练词向量之后的所有词向量。
可选地,结合上述第四方面第一种至第四方面第四种可能的实施方式,在第七种可能的实施方式中,第一训练编码序列和所第二训练编码序列之间的距离是对N个距离进行加权处理后获取的,N个距离是训练语句中同一个词向量的第一训练编码向量和第二训练编码向量之间的距离,N为训练语句中训练词向量的总数目。
可选地,结合上述第四方面或第四方面第一种至第四方面第七种可能的实施方式,在第八种可能的实施方式中,翻译模型的解码器可以包括n个网络层,n个网络层顺次连接,n为大于1的正整数,前(n-1)个网络层的输入为第一编码序列,第n个网络层的输入为第三编码序列,翻译结果根据第n个网络层的输出确定。
本申请第五方面提供一种训练装置,可以包括:存储器,用于存储计算机可读指令。还可以包括,与存储器耦合的处理器,用于执行存储器中的计算机可读指令从而执行如第一方面或第一方面任意一种可能的实施方式所描述的方法。
本申请第六方面提供一种翻译设备,可以包括:存储器,用于存储计算机可读指令。还可以包括,与存储器耦合的处理器,用于执行存储器中的计算机可读指令从而执行如第二方面或第二方面任意一种可能的实施方式所描述的方法。
本申请第七方面提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得计算机装置执行如第一方面或第一方面任意一种可能的实施方式所描述的方法。
本申请第八方面提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得计算机装置执行如第二方面或第二方面任意一种可能的实施方式所描述的方法。
本申请第九方面提供一种计算机程序产品,当在计算机上运行时,使得计算机可以执行如第一方面或第一方面任意一种可能的实施方式所描述的方法。
本申请第十方面提供一种计算机程序产品,当在计算机上运行时,使得计算机可以执行如第二方面或第二方面任意一种可能的实施方式所描述的方法。
本申请第十一方面提供一种芯片,芯片与存储器耦合,用于执行存储器中存储的程序,以执行如第一方面或第一方面任意一种可能的实施方式所描述的方法。
本申请第十二方面提供一种芯片,芯片与存储器耦合,用于执行存储器中存储的程序,以执行如第二方面或第二方面任意一种可能的实施方式所描述的方法。
本申请提供的方案,在训练过程中,将采用了双向编码器的翻译模型作为老师模型,将采用了单向编码器的翻译模型作为学生模型,通过拉近老师模型和学生模型输出的编码向量在空间上的距离,达到学生模型向老师模型学习的效果,使训练得到的采用了单向编码器的翻译模型的性能更高。在翻译过程中,通过上述训练过程获取的翻译模型执行翻译任务,可以获取质量更好的翻译,并且翻译模型采用单向编码器,避免了同步翻译场景下采用双向编码器出现重复编码的问题,降低时延。
附图说明
图1为一种神经网络机器翻译(neural machine translation,NMT)的架构示意图;
图2为一种主流的NMT架构;
图3为一种双向编码器的原理示意图;
图4为一种单向编码器的原理示意图;
图5为传统机器翻译和同步机器翻译的翻译过程的对比示意图;
图6为本申请实施例提供的一种翻译模型的训练方法的流程示意图;
图6-a为本申请提供的一种翻译模型的训练方法的架构示意图;
图7为本申请实施例提供的一种翻译模型的训练方法的场景示意图;
图8为本申请实施例提供的另一种翻译模型的训练方法的流程示意图;
图9为本申请实施例提供的另一种翻译模型的训练方法的流程示意图;
图10为本申请实施例提供的一种翻译模型的训练方法的场景示意图;
图11为本申请实施例提供的另一种翻译模型的训练方法的流程示意图;
图12为本申请实施例提供的一种翻译方法的流程示意图;
图13为本申请提供的一种翻译模型的架构示意图;
图14为本申请实施例提供的一种计算机设备的结构示意图;
图15为本申请实施例提供的另一种计算机设备的结构示意图;
图16为本申请实施例提供的芯片的一种结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请提供一种翻译模型的训练方法、机器翻译的方法以及设备。通过本申请提供的一种翻译模型的训练方法训练得到的翻译模型,降低翻译过程带来的延迟,保证翻译的准确性,且不增加额外的计算量。本申请提供的方案尤其适用于同步翻译的场景,提升同步翻译的翻译质量,提升翻译的速率。
由于本申请涉及大量机器翻译相关的知识,为了更好的理解本申请提供的方案,下面对本申请涉及的与机器翻译相关的术语进行介绍。
1、机器翻译(machine translation,MT)
机器翻译是借由计算机程序将文字或语言从一种自然语言翻译成另一种自然语言的过程。换句话说,机器翻译是指使用机器将文本或言语从一种语言转化为具有相同含义内容的另一种语言的过程。
2、神经网络机器翻译(neural machine translation,NMT)
神经网络翻译是指机器翻译中采用了神经网络技术。通过将神经网络技术应用到机器翻译中,实现机器翻译的目的。参阅图1,为一种NMT的架构示意图。如图1所示,一般地,NMT的结构包括编码器(encoder)和解码器(decoder)。编码器对待翻译的源语句进行编码,生成向量,解码器对源语句的向量进行解码生成对应的目标语句。其中编码和解码的过程可以通过卷积神经网络(convolutional nNeural networks,CNN)模型或循环神经网络(recurrent nNeural networks,RNN)模型实现。可以将NMT看做一个复杂的神经网络,通过对其进行迭代训练,直至模型收敛,获取训练后的翻译模型。训练后的翻译模型可以用于执行翻译任务。
参阅图2,为一种主流的NMT架构:Transformer框架。以Transformer框架为例,对神经网络机器翻译的工作流程进行说明。Transformer框架主要包括编码器、解码器。词嵌入层(source embedding)用于接收输入的源语句,将源语句进行词嵌入处理,以得到源语句中包括的各个词语对应的词向量。编码器和解码器包括多个层,编码器/解码器的每一层是由一些编码单元/解码单元构成。其中编码器各层把源语句对应的词向量经过一系列的神经网络的变换之后,表示成一个高维的向量。解码器各层负责把这个高维向量再重新解码(翻译)成目标语言。特别地,编码器的每层可以包括自注意力层(self-attention)和前馈网络层(feed forward)。其中,编码器的自注意力层是为了在编码每个词向量时,将源语句中各个词的词向量的权重(各个词对于当前编码的词向量的影响力)都考虑进去。编码器的前馈网络层是为了对自注意力层的输出向量进行非线性变换处理。特别地,解码器的每层包括自注意力层(self-attention)、编码-解码关注层(encoder-decoder attention)以及前馈网络层(feed forward)。解码器的自注意力层在解码的过程考虑已经生成的新词对当前解码的向量的影响,本申请也将新词称为目标词语,二者表示相同的意思。解码器的编码-解码关注层考虑编码器的输入对当前解码的向量的影响。解码器的前馈网络层是为了对编码-解码关注层的输出向量进行非线性变换处理。输出映射层接收解码器的最后一层网络层输出的解码向量,并将解码向量转换为翻译结果,比如生成一个新词。已经生成的新词通过词嵌入层进行处理后,获取已经生成的新词的词向量,该已经生成的新词的词向量作为解码器的第一层网络层的输入,这个过程一直循环下去直到生成一个结尾符号,或者满足其他预设的停止条件,则解码阶段生成的所有目标词语为翻译结果。
3、双向编码器
双向编码是一种机器翻译常用的编码方式。双向编码器在对源语句中包括的各个词语对应的词向量进行编码时,会考虑被编码的词向量的前后的词向量对当前被编码的词向量的影响。参见图3,为一种双向编码器的原理示意图。假设源语句为“鲍威尔在12日举行了会谈”,对源语句进行分词处理后,源语句变为“鲍威尔/在/12日/举行/了/会谈”。其中,“/”用于表示一个词语的边界。在对“12日”对应的词向量进行编码时,将源语句中的所有词的词向量都作为输入,使双向编码器根据“12日”的词向量在源语句中的位置信息,源语句中其他词的词向量与“12日”的词向量的相对位置关系对“12日”进行编码。双向编码器的输出同时包括了前文信息和后文信息,有助于产生质量更高的翻译结果。
4、单向编码器
单向编码是一种机器翻译常用的编码方式。单向编码器在源语句中包括的各个词语对应的词向量进行编码时,只会考虑被编码的词向量前面的词向量对当前被编码的词向量的影响。参见图4,为一种单向编码器的原理示意图。假设源语句为“鲍威尔在12日举行了会谈”,对源语句进行分词处理后,源语句变为“鲍威尔/在/12日/举行/了/会谈”。在对“12日”对应的词向量进行编码时,将源语句中“12日”对应的词向量、“12日”之前的词向量都作为输入,即将“鲍威尔/在/12日”对应的词向量序列作为单向编码器的输入,不考虑“举行/了/会谈”对应的词向量,使单向编码器根据“12日”的词向量在源语句中的位置信息、“鲍威尔”的词向量和“12日”的词向量在源语句中的位置关系、“在”的词向量和“12日”的词向量在源语句中的位置关系,对“12日”进行编码。单向编码器只对新输入进来的词向量进行编码,不需要根据新输入的词向量对已经编码的词向量进行更新。当然,由于单向编码器只考虑前文信息,翻译的质量也更低。
5、同步机器翻译
对于某些场景,如同声传译、实时字幕等场景,等待整个句子输入造成的延时是不可容忍的,所以同步机器翻译应运而生。传统的机器翻译在读入完整的源语句之后开始翻译。同步机器翻译是指在读入源语句的同时进行翻译,即在没有读入完整的源语句的情况下进行翻译。与传统机器翻译相比,同步机器翻译可以提前且同步的实现翻译的输出。参阅图5,为传统机器翻译和同步机器翻译的翻译过程的对比示意图。传统机器翻译在源语句“鲍威尔/在/12日/举行/了/会谈”输入结束后进行翻译,因此对于传统机器翻译,延迟整句话输出翻译结果,而同步机器翻译在没有读入完整的源语句的情况下进行翻译,比如,获取“鲍威尔/在/12日”对应的词向量序列的时候就开始输出翻译,对于同步机器翻译,延迟几个词语就输出翻译结果。
制约同步机器翻译性能的一个关键因素在于,同步机器翻译的过程中,获取到的不是完整的源语句。因此当缺失未来信息(源语句中未输入的信息)时如何更好的进行翻译成为一个难题。现有的方法可以采用双向编码器,当有新输入的词向量时,根据新输入的词向量对全部输入的词向量进行重新编码,通过双向编码器,虽然能实时更新词向量的编码表示,但是需要对已经编码的词向量不断更新,产生大量重复的运算,增大时延。通过单向编码器,新输入至单向编码器中的词向量,不会影响已经编码的词向量,虽然可以避免重复运算,也导致采用了单向编码器的翻译模型的翻译效果不佳。
为了解决上述问题,本申请实施例提供一种翻译模型的训练方法以及一种翻译方法,通过本申请提供的方案,提升机器翻译的性能,尤其针对同步翻译,使同步翻译获取更好的翻译结果。下面分别从如何训练模型,以及如何利用训练后的模型执行翻译任务两方面对本申请提供的方案进行介绍。
一、训练模型
参阅图6,为本申请实施例提供的一种翻译模型的训练方法的流程示意图。
如图6所示,本申请提供的一种翻译模型的训练方法,可以包括以下步骤:
601、获取训练语句的词向量序列。
该词向量序列包括训练语句中至少一个词的词向量。
其中,训练语句可以有多种表示方式,比如训练语句可以通过文本的方式表示,训练语句还可以通过语音的方式表示,再比如训练语句还可以通过图像的方式表示。本申请实施例对训练语句的具体表示方式并不进行限定。在一个可能的实施方式中,若输入只能是文本方式表示的训练语句,还可以对语音方式表示的训练语句进行语音识别处理,以转换为文本方式表示的训练语句,还可以对图像方式表示的训练语句进行图像识别处理,以转换为文本方式表示的训练语句。
训练语句中各个词可以理解为训练语句中的各个词语,比如“上学”、“举办”,或者各个单词,比如“book”、“take”。这取决于训练语句的表示语言,比如训练语句是中文时,获取训练语句中各个中文词语的向量;训练语句是英文、德文时,获取训练语句中各个单词的向量。需要说明的是,在本申请中,在不特殊强调词语和单词的区别之时,二者表示相同的意思。
对训练语句进行处理,使训练语句中各个词语通过向量的方式进行表示。以使翻译模型可以识别训练语句,并对训练语句进行处理。在一个可能的实施方式中,可以通过词嵌入处理方式,获取训练语句中各个词的词向量。词嵌入处理是将单词在向量空间中表示为实数向量的技术。本申请中词嵌入是指将单词映射为词向量。比如,将“我”进行映射得到词向量(0.1,0.5,5)。需要说明的是,在一个可能的实施方式中,可以将所有的单词都编码为一个固定维度数目的向量,比如可以将每个单词都编码为一个512维度的向量。在一个可能的实施方式中,考虑到词语和词语之间的关联性,比如“举办”通常和“活动”同时出现,在对词语进行词嵌入的处理时,还应当使他们的词向量可以传递这种关联性。其中,可以通过神经网络对词语进行词嵌入处理,通过训练语句中各个词语之间的关联性,对该神经网络进行迭代训练,以更新该神经网络的参数,使通过该神经网络对词语进行词嵌入处理后获得的词向量,可以表示词语之间的关联性。
602、通过第一翻译模型的编码器获取词向量序列的第一编码序列。
第一翻译模型的编码器采用单向编码器。
在一个可能的实施方式中,词向量序列包括训练语句中全部词的词向量,可以将训练语句中包括的全部词的词向量一次性输入至第一翻译模型的编码器中。
在一个可能的实施方式中,词向量序列包括训练语句中部分词的词向量,也可以将训练语句中包括的词向量分批次输入至第一翻译模型的编码器中。比如,对于一句完整的训练语句,每次输入一个词的词向量至第一翻译模型的编码器中,或者每次输入三个词的词向量至第一翻译模型的编码器中。
对于单向编码器而言,无论是将一句完整的训练语句的所有词向量一次性输入至单向编码器中,还是分批次的将一句完整的训练语句的词向量分批次的输入至单向编码器中,当前编码的词向量不会对已经编码的词向量造成影响,比如每次输入一个词的词向量至第一翻译模型的编码器中,编码器每次只会对新输入的词向量进行编码。
前文已经介绍了,通过单向编码器进行编码时,只考虑被编码的词向量的前文信息,不考虑后文信息。这里给出一种具体的根据单向编码器进行编码的方式,使第一翻译模型的编码器根据第一位置信息和第二位置信息对各个词向量进行编码,以获取第一编码序列,第一位置信息包括第一词向量在获取训练语句中的位置信息,第一词向量是当前被第一翻译模型的单向编码器编码的词向量,第二位置信息包括第一词向量与第二词向量之间的相对位置关系,第二词向量包括训练语句中在第一词向量之前的至少一个词向量。下面结合一个具体的例子进行说明,继续参阅图4,上文提到在对“12日”对应的词向量进行编码时,将源语句中“12日”对应的词向量、“12日”之前的词向量都作为输入,即将“鲍威尔/在/12日”对应的词向量序列作为单向编码器的输入,不考虑“举行/了/会谈”,在另一种可能的实施方式中,在对“12日”对应的词向量进行编码时,将源语句中“12日”对应的词向量、“12日”之前的至少一个词向量作为输入,比如将“鲍威尔”、“12日”对应的词向量作为单向编码器的输入。
603、通过第二翻译模型的编码器获取词向量序列的第二编码序列。
第二翻译模型的编码器采用双向编码器。在一个可能的实施方式中,可以将训练语句中包括的全部词的词向量一次输入至第二翻译模型的编码器中。
在一个可能的实施方式中,也可以将训练语句中包括的词向量分批次输入至第二翻译模型的编码器中。
对于双向编码器而言,如果是分批次的将一句完整的训练语句的词向量输入至双向编码器中,当前编码的词向量会对已经编码的词向量造成影响。比如每次输入一个词的词向量至第二翻译模型的编码器中,编码器每次不止会对新输入的词向量进行编码,还会对已经编码的词向量进行重新编码。
前文已经介绍了,通过双向编码器进行编码时,考虑被编码的词向量的前文信息和后文信息。这里给出一种具体的根据双向编码器进行编码的方式,使第二翻译模型的编码器根据第三位置信息和第四位置信息对各个词向量进行编码,以获取第二编码序列,第三位置信息包括第四词向量在获取训练语句中的位置信息,第四词向量是当前被第二翻译模型的编码器编码的词向量,第四位置信息包括第四词向量与第五词向量之间的位置关系,第五词向量包括训练语句中在第四词向量之前的至少一个词向量、训练语句中在第四词向量之后的至少一个词向量。继续参阅图3,当将训练语句中包括的全部词的词向量一次输入至第二翻译模型的编码器中,在对“12日”对应的词向量进行编码时,将源语句中的所有词的词向量都作为输入,使双向编码器根据“12日”的词向量在源语句中的位置信息,源语句中其他词的词向量与“12日”的词向量的相对位置关系对“12日”进行编码。在另一种可能的实施方式中,在对“12日”对应的词向量进行编码时,将源语句中“12日”对应的词向量、“12日”之前的至少一个词向量作为输入、“12日”之后的至少一个词向量作为输入,比如将鲍威尔”、“12日”、“会谈”对应的词向量作为双向编码器的输入,以输出“12日”的词向量对应的编码向量。当将训练语句中包括的词向量按照顺序依次输入至第二翻译模型的编码器中时,当输入“鲍威尔”对应的词向量时,由于没有前文信息,也没有后文信息,仅将“鲍威尔”对应的词向量作为输入,对“鲍威尔”对应的词向量进行编码。当输入“在”对应的词向量时,将“鲍威尔”、“在”对应的词向量作为输入,输出“鲍威尔”和“在”的编码向量。可见新输入的词向量,会对已经编码的词向量造成影响。当输入“12日”对应的词向量时,将“鲍威尔”、“在”、“12日”对应的词向量作为输入,输出“鲍威尔”、“在”、“12日”各自的编码向量。可见新输入的词向量“12日”,会对已经编码的词向量“鲍威尔”、“在”造成影响,至此,已经对“鲍威尔”和“在”均进行了多次重复编码。依次类推,当输入“会谈”对应的词向量时,前面已经编码的词向量“鲍威尔”、“在”、“12日”、“举行”、“了”会根据新输入的“会谈”对应的词向量而重新编码。在一个可能的实施方式中,也可以设定每个被编码的词向量只考虑部分前文信息和部分后文信息。比如将训练语句中包括的词向量按照顺序依次输入至第二翻译模型的编码器中时,当输入“12日”对应的词向量时,将“鲍威尔”、“在”、“12日”对应的词向量作为输入,输出“鲍威尔”、“在”、“12日”各自的编码向量。当输入“举行”对应的词向量时,可以将“在”、“12日”、“举行”对应的词向量作为输入,输出“在”、“12日”“举行”各自的编码向量。此时不再对“鲍威尔”对应的编码向量进行更新,即对“鲍威尔”对应的词向量进行编码时,仅考虑了部分的后文信息,在这个实施例中,即对“鲍威尔”对应的词向量进行编码时,仅考虑了“在”、“12日”对应的词向量,不再考虑后续输入的“举行”、“了”、“会谈”对应的词向量。
604、将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。
解码器包括两个输入,其中一个输入是第一翻译模型的编码器输出的编码序列,在训练过程中,另一个输入是目标翻译结果对应的词向量序列,该词向量序列包括目标翻译结果中至少一个目标词语的词向量。其中目标翻译结果是针对训练语句的目标翻译结果,比如该目标翻译结果可能是由专业的翻译人员翻译的结果,本申请有时也将目标翻译结果称为目标语句。比如,训练语句是“鲍威尔在12日举行了会谈”,则目标语句可能是“Powell held talks on 12”。下面结合图7举例说明,为了提升训练的效率,可以将训练语句中包括的全部词的词向量一次输入至第一翻译模型的编码器中,使第一翻译模型的编码器输出第一编码序列。在生成第一次预测结果时,解码器的一个输入是编码器输出的第一编码序列,解码器的另一个输入是“<s>”对应的词向量。其中,“<s>”是一个开始符号。需要说明的是,为了模拟同步翻译的场景,还可以对编码器输出的第一编码序列进行掩码(mask)处理。比如,解码器在生成第一次预测结果的过程中,只能获取编码器的前3个词向量的第一编码向量,无法获取到其他词向量的第一编码向量。继续参阅图7,在生成第二次预测结果时,解码器的一个输入是编码器输出的第一编码序列,在一个可能的实施方式中,为了模拟同步翻译的场景还可以对编码器输出的第一编码序列进行掩码(mask)处理。比如,解码器在生成第二次预测结果的过程中,只能获取编码器的前6个词向量的第一编码向量,无法获取到其他词向量的第一编码向量。在生成第二次预测结果时,解码器的另一输入是目标翻译结果对应的词向量序列中的第一个词向量,在这一例子中,在生成第二次预测结果时,解码器的另一输入是“<s>”对应的词向量、“Powell”对应的词向量。以此类推,在生成第三次预测结果时,解码器的一个输入是第一编码序列,解码器的另一个输入是已经输入至解码器的词向量,即:“<s>”对应的词向量、第一个词向量(“Powell”对应的词向量)、第二个词向量(held”对应的词向量)。重复执行上述解码过程,直至目标翻译结果中的全部词的词向量都已经作为解码器的输入或者其他停止条件,比如已经达到了最大输出词数限制,以下不再重复赘述。在图7中,为了简化说明,将“Powell”对应的词向量表示为“Powell”,将“held”对应的词向量表示为“held”。
605、根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。
其中,如何根据预测的结果(第一预测结果)和目标结果(目标翻译结果)确定损失值可以有多种计算方式,本领域的技术人员可以根据实际情况选择不同的计算方式。示例性的,下面给出一种计算方式,第一损失值是交叉熵损失值,参照如下公式1-1进行理解:
Figure BDA0002834587810000151
其中,θincr表示第一翻译模型的参数,x表示训练语句,p表示概率,y*表示目标翻译结果,D表示训练数据集合。
606、根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
其中,更新第一翻译模型可以理解为更新第一翻译模型的参数,以下对此不再重复说明。
通过上述步骤602,可以获取第一编码序列,通过上述步骤603,可以获取第二编码序列。获取同一个词向量的第一编码向量和第二编码向量之间的距离,则一共可以获取N个距离,N为训练语句中包括的词向量的总数目。比如在上述的例子中,训练语句是“鲍威尔/在/12日/举行/了/会谈”,则一共可以获取6个向量距离。
对获取到的N个距离进行加权处理,则可以获取第一编码序列和第二编码序列之间的距离。在一个可能的实施方式中,可以对获取到的N个距离求平均值,可以认为N个距离的平均值就是第一编码序列和第二编码序列之间的距离。在一个可能的实施方式中,可以参照如下公式1-2进行理解:
Figure BDA0002834587810000152
其中,n表示训练语句中包括的词向量的总数目,
Figure BDA0002834587810000153
表示一个第一编码向量,/>
Figure BDA0002834587810000154
表示与/>
Figure BDA0002834587810000155
对应的一个第二编码向量。
需要说明的是,其他可以获取第一编码序列和第二编码序列之间的距离的方式,本申请实施例也可以采用。比如,可以获取第一编码序列的平均值(以下称为第一平均编码向量),获取第二编码序列的平均值(以下称为第二平均编码向量),通过获取第一平均编码向量和第二平均编码向量之间的距离获取第一编码序列和第二编码序列之间的距离。
则第一翻译模型的总的损失可以理解为第一损失值和第一编码序列和第二编码序列之间的距离之间的加权结果,可以参照如下公式1-3进行理解:
Figure BDA0002834587810000156
其中,λ为预定义的系数。通过第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型,直至第一翻译模型收敛。在第一翻译模型收敛的过程中,第一编码序列和第二编码序列之间的距离也会逐渐减小。
由于第一翻译模型采用了单向编码器,单向编码器在对词向量进行编码时,没有考虑到词向量序列中在当前被编码的词向量之后的词向量,即单向编码器不考虑词向量序列中在当前被编码的词向量之后的词向量对当前编码的词向量的影响,这在一定程度上会影响翻译质量。举例说明,假设训练语句为“鲍威尔/在/12日/举行/了/会谈”。在对“12日”对应的词向量进行编码时,单向编码器将源语句中“12日”对应的词向量、“12日”之前的词向量都作为输入,即将“鲍威尔/在/12日”的词向量序列作为单向编码器的输入,不考虑“举行/了/会谈”对应的词向量。而双向编码器,在对“12日”对应的词向量进行编码时将“鲍威尔/在/12日/举行/了/会谈”的词向量序列均作为编码器的输入,在对“12日”对应的词向量进行编码时,考虑了前文信息和后文信息。而考虑了被编码的词向量的前文信息和后文信息有助于提升编码的质量。由图3对应的实施例可知,本申请提供的方案,在第一翻译模型的损失函数中加入第一编码向量和第二编码向量之间的距离,在迭代训练的过程中,不断缩短第一编码向量和第二编码向量之间的距离,使双向编码器获取到的后文信息可以对第一翻译模型的训练起到指导作用。通过本申请提供的方案训练得到的第一翻译模型,相比于只根据第一损失值更新第一翻译模型的方案,可以使训练后的第一翻译模型的性能更优。
参照图6-a,为本申请提供的一种翻译模型的训练方法的架构示意图,双向编码器的翻译模型作为老师模型,将采用了单向编码器的翻译模型作为学生模型,通过拉近老师模型和学生模型输出的编码向量在空间上的距离,达到学生模型向老师模型学习的效果,使训练得到的采用了单向编码器的翻译模型的性能更高。
在一个可能的实施方式中,可以先将第二翻译模型训练完成,在对第一翻译模型进行训练的过程中,第二翻译模型的各项参数保持不变。在一个可能的实施方式中,在第一翻译模型的训练过程中,可以同时对第二翻译模型进行训练,下面结合一个具体的实施例进行说明。
参阅图8,为本申请实施例提供的一种翻译模型的训练方法的流程示意图。
如图8所示,本申请提供的一种翻译模型的训练方法,可以包括以下步骤:
801、获取训练语句的词向量序列。
802、通过第一翻译模型的编码器获取词向量序列的第一编码序列。
803、通过第二翻译模型的编码器获取词向量序列的第二编码序列。
804、将第一编码序列输入至第一翻译模型的解码器中,以获取第一预测结果。
步骤801至步骤804可以参照图6对应的实施例中的步骤601至步骤604进行理解,这里不再重复赘述。
805、将第二编码序列输入至第二翻译模型的解码器中,以获取第二预测结果。
解码器包括两个输入,其中一个输入是第二翻译模型的编码器输出的编码向量,在训练过程中,另一个输入是目标翻译结果对应的词向量序列,该词向量序列包括目标翻译结果中至少一个目标词语的词向量。其中目标翻译结果是针对训练语句的目标翻译结果,比如该目标翻译结果可能是由专业的翻译人员翻译的结果。比如,训练语句是“鲍威尔在12日举行了会谈”,则目标语句可能是“Powell held talks on 12”。为了提升训练的效率,可以将训练语句中包括的全部词的词向量一次输入至第二翻译模型的编码器中,使第二翻译模型的编码器输出第二编码序列。在生成第一个预测结果时,解码器的一个输入是编码器输出的第二编码序列,解码器的另一个输入是“<s>”对应的词向量。其中,“<s>”是一个开始符号。在一个可能的实施方式中,为了模拟同步翻译的场景,还可以对编码器输出的第二编码序列进行掩码(mask)处理。比如,解码器在生成第一个预测结果的过程中,只能获取编码器的前3个词向量的第二编码向量,无法获取到其他词向量的第二编码向量。继续参阅图9,在生成第二个预测结果时,解码器的一个输入是编码器输出的第二编码序列,在一个可能的实施方式中,为了模拟同步翻译的场景还可以对编码器输出的第二编码序列进行掩码(mask)处理。比如,解码器在生成第二个预测结果的过程中,只能获取编码器的前6个词向量的第二编码向量,无法获取到其他词向量的第二编码向量。在生成第二个预测结果时,解码器的另一输入是目标翻译结果中的第一个词向量,在这一例子中,在生成第二个预测结果时,解码器的另一输入是“<s>”对应的词向量、“Powell”对应的词向量。以此类推,在生成第三个预测结果时,解码器的一个输入是第二编码序列,解码器的另一个输入是已经输入至解码器的词向量,即:“<s>”对应的词向量、第一个词向量(“Powell”对应的词向量)、第二个词向量(held”对应的词向量)。重复执行上述解码过程,直至目标翻译结果中的全部词的词向量都已经作为解码器的输入。在一个可能的实施方式中,也可以将训练语句中包括的词向量分批次输入至第二翻译模型的编码器中。对于双向编码器而言,如果是分批次的将一句完整的语句的词向量输入至单向编码器中,当前编码的词向量会对已经编码的词向量造成影响。比如每次输入一个词的词向量至第二翻译模型的编码器中,编码器每次不止会对新输入的词向量进行编码,还会对已经编码的词向量进行重新编码。第二编码向量可能一直在更新,则在上述例子中,解码器在生成第二个预测结果的过程中,只能获取编码器的前6个词向量的第二编码向量,这前6个词向量的第二编码向量中包括的前3个词向量的第二编码向量和在生成第一个预测结果的过程中,获取的编码器的前3个词向量的第二编码向量已经不相同。
806、根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。
步骤806可以参照图6对应的实施例中的步骤605进行理解,这里不再重复赘述。
807、根据第二预测结果和训练语句对应的目标翻译结果获取第二损失值。
其中,如果根据预测的结果(第二预测结果)和目标结果(目标翻译结果)确定损失值可以有多种计算方式,本领域的技术人员可以根据实际情况选择不同的计算方式。示例性的,下面给出一种计算方式,第二损失值是交叉熵损失值,参照如下公式1-1进行理解:
Figure BDA0002834587810000171
其中,θfull表示第二翻译模型的参数,x表示训练语句,p表示概率,y*表示目标翻译结果,D表示练数据集合。
808、根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
在一个可能的实施方式中,第一翻译模型和第二翻译模型可以采用相同的解码器,当第一翻译模型和第二翻译模型采用相同的解码器时,还可以根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
其中,第一编码序列和第二编码序列之间的距离可以参照图6对应的实施例中的步骤606中的描述进行理解,这里不再重复赘述。在一个可能的实施方式中,可以参照公式1-2进行理解。则第一翻译模型的总的损失可以理解为第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离之间的加权结果,可以参照如下公式2-2进行理解:
Figure BDA0002834587810000172
809、根据第二损失值更新第二翻译模型。
在一个可能的实施方式中,可以只根据第二损失值更新第二翻译模型。
在一个可能的实施方式中,可以根据第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。
在一个可能的实施方式中,可以根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。
由图8对应的实施例可知,本申请提供的方案,在第一翻译模型的损失函数中加入第一编码向量和第二编码向量之间的距离,在迭代训练的过程中,不断缩短第一编码向量和第二编码向量之间的距离,使双向编码器获取到的后文信息可以对第一翻译模型的训练起到指导作用。此外,在对第一翻译模型进行训练的同时,还可以同时对第二翻译模型进行训练,具体的可以通过第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型,在第一翻译模型向第二翻译模型进行学习的同时,第二翻译模型也向第一翻译模型进行学习,使收敛后的第一翻译模型和第二翻译模型之间寻求一种平衡。通过本申请提供的方案训练得到的第一翻译模型,相比于只根据第一损失值更新第一翻译模型的方案,可以使训练后的第一翻译模型的性能更优。
为了能够提升训练后的第一翻译模型的性能,在一个可能的实施方式中,还可以在单向编码器输出的编码向量上叠加后文信息,下面结合一个具体的实施方式进行说明。
参阅图9,为本申请实施例提供的一种翻译模型的训练方法的流程示意图。
如图9所示,本申请提供的一种翻译模型的训练方法,可以包括以下步骤:
901、获取训练语句的词向量序列。
902、通过第一翻译模型的编码器获取词向量序列的第一编码序列。
步骤901和步骤902可以参照图6对应的实施例中的步骤601和步骤602进行理解,这里不再重复赘述。
903、根据第三词向量、第一词向量的第一编码向量获取第一词向量的第三编码向量,第三词向量包括训练语句中在第一词向量之后的至少一个词向量。
举例说明,假设训练语句是“鲍威尔/在/12日/举行/了/会谈”。当将“举行”对应的词向量输入至单向编码器中时,或者当单向编码器对“举行”对应的词向量进行编码时,单向编码器已经输出了“鲍威尔”的词向量对应的第一编码向量、“在”的词向量对应的第一编码向量以及“12日”的词向量对应的第一编码向量。根据第三词向量、第一词向量的第一编码向量获取第一词向量的第三编码向量可以理解为:根据“举行”对应的词向量、“鲍威尔”的词向量对应的第一编码向量获取“鲍威尔”的词向量对应的第三编码向量,比如将“举行”对应的词向量和“鲍威尔”的词向量对应的第一编码向量进行加和处理,以获取“鲍威尔”的词向量对应的第三编码向量。同理,根据“举行”对应的词向量、“在”的词向量对应的第一编码向量获取“在”的词向量对应的第三编码向量,根据“举行”对应的词向量、“12日”的词向量对应的第一编码向量获取“12日”的词向量对应的第三编码向量。此外,第三词向量包括训练语句中在第一词向量之后的至少一个词向量,可以理解为,根据“举行”对应的词向量、“12日”对应的词向量、“鲍威尔”的词向量对应的第一编码向量获取“鲍威尔”的词向量对应的第三编码向量,比如将“举行”对应的词向量、12日”对应的词向量和“鲍威尔”的词向量对应的第一编码向量进行加和处理,以获取“鲍威尔”的词向量对应的第三编码向量。
重复执行步骤903,直至获取训练语句中各个词向量的第三编码向量,即获取第三编码序列,第三编码序列中包括各个词向量各自对应的第三编码向量。在一个可能的实施方式中,直至获取训练语句中各个词向量的第三编码向量也可以理解为获取预设数目的词向量对应的第三编码向量,则认为获取了训练语句中各个词向量的第三编码向量。
示例性的,下面给出一种具体的获取第三编码向量的方式:
上文介绍到编码器的每层可以包括自注意力层(self-attention),对于单向编码器而言,单向编码器的自注意力层用于在编码当前的词向量时,考虑该词向量之前的词向量对该词向量的影响,可以参照公式3-1至公式3-3进行理解:
Figure BDA0002834587810000191
Figure BDA0002834587810000192
/>
Figure BDA0002834587810000193
其中,Xi表示训练语句中第i个位置的词向量,Xj表示训练语句中第j个位置的词向量。Q()、K()、V()代表三种不同的函数。dk表示向量的维度,比如上面提到的例子中,可以将每个单词都编码为一个512维度的向量。g(t)表示解码器输出第t个新词时,关注的编码器输出的编码向量的总数目,即输出第t个新词时,解码器输入的编码向量的总数目。eij表示第i个位置的词向量和第j个位置的词向量之间的关联,比如第j个位置的词向量和第i个位置的词向量之间的相似度。αij表示第j个位置的词向量对第i个位置的词向量的影响程度(权重),n表示训练语句中一共包括n个词向量,Zi表示当前编码器输出的第一编码向量。
假设训练语句中的词向量表示为E=(E1,E2,……,En),其中E1表示训练语句中第一个词向量,E2表示训练语句中第二个词向量,……,En表示训练语句中第n个词向量。则已经输入至编码器的词向量的平均值可以通过如下公式3-4表示:
Figure BDA0002834587810000194
Ai表示前i个词向量的平均值,其中第i个词向量是当前被编码的词向量。
为了将Ai从词向量的空间映射到编码向量的空间,可以通过线性层进行线性变化,具体的,可以参照公式3-5进行理解:
fi=WAi (3-5)
其中,W是一个可训练的参数矩阵。
将fi叠加到zi上,既可以获取第三编码向量,可以参照公式3-6进行理解:
Figure BDA0002834587810000201
hij表示当前输入第i个词向量时,即当前编码的词向量是第i个词向量时,第j个词向量的更新后的编码向量。
为了更好的理解上述这个例子的过程,下面结合图10进行说明。参阅图10,在输入第一个词向量至单向编码器中时,A1包括第一个词向量E1,f1包括第一个词向量的信息,将f1叠加到z1上,获取第一个词向量的第三编码向量。需要说明的是,在一个可能的实施方式中,A1、f1、以及f1+z1的计算量可以省略,直接从A2开始计算。在输入第二个词向量至单向编码器中时,A2包括第一个词向量E1和第二个词向量E2的平均值,f2包括第一个词向量的信息和第二个词向量的信息,将f2叠加到z1和z2上,获取第一个词向量的第三编码向量、第二个词向量的第三编码向量,此时的第一个词向量的第三编码向量被更新了。在输入第三个词向量至单向编码器中时,A3包括第一个词向量E1、第二个词向量E2和第三个词向量E3的平均值,f3包括第一个词向量的信息、第二个词向量的信息以及第三个词向量的信息,将f3叠加到z1、z2和z3上,获取第一个词向量的第三编码向量、第二个词向量的第三编码向量,以及第三个词向量的第三编码向量,此时的第一个词向量的第三编码向量以及第二个词向量的第三编码向量均被更新了。在输入第四个词向量至单向编码器中时,A4包括第一个词向量E1、第二个词向量E2、第三个词向量E3以及第四个词向量E4的平均值,f4包括第一个词向量的信息、第二个词向量的信息、第三个词向量的信息以及第四个词向量的信息,将f4叠加到z1、z2、z3和z4上,获取第一个词向量的第三编码向量、第二个词向量的第三编码向量、第三个词向量的第三编码向量以及第四个词向量的第三编码向量,此时的第一个词向量的第三编码向量、第二个词向量的第三编码向量、第三个词向量的第三编码向量均被更新了。在一个可能的实施方式中,A4、f4、以及f4+z4的计算量可以省略。
904、将第一编码序列、第三编码序列输入至第一翻译模型的解码器中,以输出第三预测结果。
第一翻译模型的解码器包括多个网络层,多个网络层顺次连接,各个网络层包括两个输入,两个输入中的其中一个输入是第三编码序列和/或第一编码序列,两个输入中的另一个输入是上一层网络层的输出或者是目标翻译结果对应的词向量。具体的,当网络层有上一层网络层时,该另一个输入是上一层网络层的输出,当网络层是第一层网络层,没有上一层网络层时,该另一个输入是目标翻译结果对应的词向量。该多个网络层的最后一层网络层的输出结果用于确定第三预测结果。当该n个网络层的每一个网络层的输入都是第一编码向量时,通过该多个网络层的最后一层网络层的输出结果确定的第三预测结果即为图6对应的实施例、图8对应的实施例中描述的第一预测结果。
在一个可能的实施方式中,假设解码器包括n个网络层,其中前n-1个网络层的输入是第一编码向量,第n个网络层的输入是第三编码向量。
在一个可能的实施方式中,假设解码器包括n个网络层,该n个网络层中的至少一个网络层的输入是第三编码序列。
在一个可能的实施方式中,假设解码器包括n个网络层,该n个网络层的每一个网络层的输入都是第三编码序列。
在一个可能的实施方式中,假设解码器包括n个网络层,该n个网络层的至少一个网络层的输入既包括第三编码序列又包括第一编码序列。在这种实施方式中,可以对第一编码序列和第三编码序列进行线性加权处理后再输入至解码器的对应的网络层中。
905、根据第三预测结果和训练语句对应的目标翻译结果获取第一损失值。
其中,如果根据预测的结果(第三预测结果)和目标结果(目标翻译结果)确定损失值可以有多种计算方式,本领域的技术人员可以根据实际情况选择不同的计算方式。可以参照图6对应的实施例中的步骤605中的公式1-1进行理解,这里不再重复赘述。
906、根据第一损失值更新第一翻译模型。
由于单向编码器的输出结果没有考虑后文信息,导致采用了单向编码器的翻译模型的翻译质量并不高。由图9对应的实施例可知,当单向编码器接收到新输入的词向量时,根据新输入的词向量更新已经输出的编码向量,以获取更新后的编码向量,使更新后的编码向量包括了后文信息,将更新后的编码向量输入至解码器中,并根据解码器输出的预测的翻译结果更新翻译模型,进而使训练后的翻译模型具有更好的性能。
需要说明的,图9对应的实施例可以和6对应的实施例进行结合,图9对应的实施例还可以和图8对应的实施例进行结合。比如,参阅图11,为本申请实施例提供的一种翻译模型的训练方法的流程示意图。
如图11所示,本申请实施例提供的一种翻译模型的训练方法,可以包括以下步骤:
1101、获取训练语句的词向量序列。
1102、通过第一翻译模型的编码器获取词向量序列的第一编码序列。
步骤1101和步骤1102可以参照图6对应的实施例中的步骤601和步骤602进行理解,这里不再重复赘述。
1103、根据第三词向量、第一词向量的第一编码向量获取第一词向量的第三编码向量,第三词向量包括训练语句中在第一词向量之后的至少一个词向量。
步骤1103可以参照图9对应的实施例中的步骤903进行理解,这里不再重复赘述。
1104、通过第二翻译模型的编码器获取词向量序列的第二编码序列。
步骤1104可以参照图6对应的实施例中的步骤604进行理解,这里不再重复赘述。
1105、将第一编码序列、第三编码序列输入至第一翻译模型的解码器中,以输出第一预测结果。
步骤1105可以参照图9对应的实施例中的步骤904进行理解,这里不再重复赘述。
在一个可能的实施方式中,还可以包括1106、将第二编码序列输入至第二翻译模型的解码器中,以输出第二预测结果。
步骤1106可以参照图8对应的实施例中的步骤805进行理解,这里不再重复赘述。
1107、根据第一预测结果和训练语句对应的目标翻译结果获取第一损失值。
步骤1107可以参照图9对应的实施例中的步骤905进行理解,这里不再重复赘述。
在一个可能的实施方式中,针对于步骤1106,还可以包括1108、根据第二预测结果和训练语句对应的目标翻译结果获取第二损失值。
1109、根据第一损失值更新第一翻译模型。
在一个可能的实施方式中,根据第一损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
在一个可能的实施方式中,根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第一翻译模型。
在一个可能的实施方式中,针对于步骤1108,还可以包括步骤1110、根据第二损失值更新第二翻译模型。
在一个可能的实施方式中,可以只根据第二损失值更新第二翻译模型。
在一个可能的实施方式中,可以根据第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。
在一个可能的实施方式中,可以根据第一损失值、第二损失值、第一编码序列和第二编码序列之间的距离更新第二翻译模型。
以上对本申请实施例提供的一种翻译模型的训练方法进行了介绍,下面对如何应用上述训练好的翻译模型执行翻译任务进行说明。
二、通过训练好的翻译模型执行翻译任务。
参阅图12,为本申请实施例提供的一种翻译方法的流程示意图。
如图12所示,本申请提供的一种翻译方法,可以包括以下步骤:
1201、获取待翻译语句的词向量序列。
词向量序列包括至少一个词的词向量。
在一个可能的实施方式中,将词向量序列输入至翻译模型的编码器中,以获取第一编码序列,该第一编码序列包括各个词的词向量的第一编码向量。翻译模型的编码器采用单向编码器。
其中,在一个可能的实施方式中,该翻译模型是图6、图8、图9、图11中对应的实施例中所描述的训练后的第一翻译模型中的任意一个。
需要说明的是,本申请提供的一种翻译方法可以适用于同步翻译的场景,也可以适用于非同步翻译的场景。针对非同步翻译的场景,可以将一句完整的待翻译语句输入至翻译模型中。针对同步翻译的场景,翻译模型的编码器一次获取一个词向量,在一个可能的实施方式中,翻译模型的编码器可以在获取k个词向量后,开始对该k个词向量中的各个词向量进行编码,其中k为正整数,比如k可以为3。之后,编码器每获取到一个词向量,则对该获取到的词向量进行编码,解码器根据编码器输出的编码序列,输出解码向量,则该翻译模型输出的翻译结果始终落后输入k个词语。在一个可能的实施方式中,翻译模型的编码器获取每获取k个词向量后,开始对k个词向量中的各个词向量进行编码,比如编码器获取到3个词向量后,对该3个词向量进行编码,之后进入等候状态,当编码器再次获取到3个词向量后,开始对再次获取到的3个词向量中的各个词向量进行编码。定义g(t)为单调不减的函数,在翻译模型输出第t个新词时,关注的编码器输出的编码向量的个数通过公式4-1进行表示,即输出第t个新词时,输入至解码器的编码向量的个数通参照公式4-1进行理解:
g(t)=min{k+t-1,|x|},t=1,2,3,…(4-1)
单向编码器如何对获取到的词向量进行编码,已经在上文进行了介绍,这里不再重复说明。
1202、根据第一词向量的第一编码向量、第三词向量获取第一词向量的第三编码向量,第一词向量是待翻译语句中任意一个词向量,第三词向量包括待翻译语句中在第一词向量之后的至少一个词向量。
可以参照图9对应的实施例中步骤903进行理解,这里不再重复赘述。
重复执行获取第三编码向量的过程,直至获取第三编码序列,第三编码序列包括各个词向量的第三编码向量。
可以参照图9对应的实施例中步骤903中重复执行获取第三编码向量的过程进行理解,这里不再重复赘述。
1203、将第一编码序列、第三编码序列输入至翻译模型的解码器中,以输出翻译结果。
翻译模型的解码器包括多个网络层,多个网络层顺次连接,各个网络层包括两个输入,两个输入中的其中一个输入是第三编码序列或者第一编码序列,两个输入中的另一个输入是上一层网络层的输出或者词向量。该多个网络层的最后一层网络层的输出结果用于获取翻译结果。为了更好的理解本申请提供的一种翻译方法,下面结合图13进行说明。
在一个可能的实施方式中,步骤1202可以不执行,对应的步骤1203中将第一编码序列输入至翻译模型的解码器中,以输出翻译结果。
如图13所示,为本申请提供的一种翻译模型的架构示意图。如图13所示,本申请提供的一种翻译模型包括单向编码器和解码器。单向编码器包括多个网络层,其中第一个网络层用于接收词向量,前一个网络层的输出是下一个网络层的输入,多个网络层顺次连接,该多个网络层的最后一个网络层的输出为第一编码向量,其中编码器的每一个网络层可以包括自注意力层和前馈网络层,自注意力层用于在编码的时候考虑当前被编码的词向量之前的词向量对当前被编码的词向量的影响,前馈网络层是为了对自注意力层的输出向量进行非线性变换处理。在一个可能的实施方式中,还包括平均嵌入层(average embeddinglayer),用于对第一编码向量进行处理,以获取第三编码向量,如果根据第一编码向量获取第三编码向量已经在前文进行了详细介绍,这里不再重复赘述。如图13所示的结构中,词嵌入层和平均嵌入层没有包含于编码器中,在一个可能的实施方式中平均嵌入层和词嵌入层也可以包含于在编码器中。解码器也包括多个网络层,多个网络层顺次连接,各个网络层包括两个输入,两个输入中的其中一个输入是第三编码序列和/或第一编码序列,两个输入中的另一个输入是上一层网络层的输出或者目标输入语句。具体的,当网络层有上一层网络层时,该另一个输入是上一层网络层的输出,当网络层是第一层网络层,没有上一层网络层时,该另一个输入是目标输入语句。该多个网络层的最后一层网络层的输出结果用于获取翻译结果,本申请也将编码器最后一层网络的输出结果称为解码向量。在一个可能的实施方式中,还包括输出映射层,用于将解码向量转换为翻译结果。比如,获取输出的解码向量和预设的目标词语对应的词向量之间的相似度,从目标词语中选择相似度最高的词向量对应的目标词语,该相似度最高的词向量对应的目标词语添加至目标输入语句(初始状态下,目标输入语句包括“<s>”)中,更新后的目标输入语句通过词嵌入层处理后,输入至解码器的第一层网络层中,重复执行上述过程,直至满足预设的停止条件,比如获取了完整的源语言对应的翻译结果,或者已经达到了最大输出词数的限制。各个解码向量对应的相似度最高词向量对应的目标词语即为翻译结果。需要说明的是,图13所示的结构,输出映射层不包含于解码器中,在一些可能的实施方式中,输出映射层也可以包含于解码器中。如图13所示的结构中,在一个可能的实施方式中,解码器包括n个网络层,其中前n-1个网络层的输入是第一编码序列,第n个网络层的输入是第三编码序列。解码器的每层包括自注意力层(self-attention)、编码-解码关注层(encoder-decoder attention)以及前馈网络层(feedforward)。解码器的自注意力层在解码的过程考虑已经生成的目标词语对当前解码的向量的影响。解码器的编码-解码关注层考虑编码器的输入对当前解码的向量的影响。解码器的前馈网络层是为了对编码-解码关注层的输出向量进行非线性变换处理。
由图13对应的实施例可知,本申请提供的翻译方法,采用单向编码器,避免在同步翻译的场景下,出现双向编码器需要重复编码的问题,且该翻译模型在训练过程中,将采用了双向编码器的翻译模型作为老师模型,将采用了单向编码器的翻译模型作为学生模型,通过拉近老师模型和学生模型输出的编码向量在空间上的距离,达到学生模型向老师模型学习的效果,使训练得到的采用了单向编码器的翻译模型的性能更高。
以上对本申请提供的一种翻译模型的训练方法以及一种翻译方法进行了介绍,通过本申请实施例提供的方案。可以理解的是,上述训练装置以及翻译设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从硬件结构上来描述,图6、图8、图9、图11中的执行主体可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。图12中的执行主体可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
下面基于前述的一种翻译模型的训练方法以及一种翻译方法,对本申请提供的训练装置、翻译设备进行阐述,训练装置用于执行前述图6、图8、图9、图11对应的方法的步骤。翻译设备用于执行前述图12对应的方法的步骤。
例如,训练装置或者翻译设备可以通过图14中的计算机设备来实现,图14所示为本申请实施例提供的计算机设备的硬件结构示意图。包括:通信接口1401和处理器1402,还可以包括存储器1403。
通信接口1401可以使用任何收发器一类的装置,用于与其他设备或通信网络通信,在本方案中,端侧设备可以利用通信接口1401与服务器进行通信,比如上传模型或者下载模型。在一个可能的实施方式中,通信接口1401可以采用以太网,无线接入网(radioaccess network,RAN),无线局域网(wireless local area networks,WLAN)等技术与服务器进行通信。
处理器1402包括但不限于中央处理器(central processing unit,CPU),网络处理器(network processor,NP),专用集成电路(application-specific integratedcircuit,ASIC)或者可编程逻辑器件(programmable logic device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。处理器1402负责通信线路1404和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。
存储器1403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically er服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1404与处理器1402相连接。存储器1403也可以和处理器1402集成在一起。如果存储器1403和处理器1402是相互独立的器件,存储器1403和处理器1402相连,例如存储器1403和处理器1402可以通过通信线路通信。通信接口1401和处理器1402可以通过通信线路通信,通信接口1401也可以与处理器1402直连。
通信线路1404可以包括任意数量的互联的总线和桥,通信线路1404将包括由处理器1402代表的一个或多个处理器1402和存储器1403代表的存储器的各种电路链接在一起。通信线路1404还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本申请不再对其进行进一步描述。
在一个可能的实施方式中,该计算机设备是训练装置,该训练装置包括存储器,用于存储计算机可读指令。还可以包括和存储器耦合的通信接口和处理器。通信接口用于执行图6对应的实施例中的步骤601。处理器用于执行所述存储器中的计算机可读指令从而执行图6对应的实施例中的步骤602至步骤606。
在一个可能的实施方式中,该计算机设备是训练装置,该训练装置包括存储器,用于存储计算机可读指令。还可以包括和存储器耦合的通信接口和处理器。通信接口用于执行图8对应的实施例中的步骤801。处理器用于执行所述存储器中的计算机可读指令从而执行图8对应的实施例中的步骤802至步骤809。
在一个可能的实施方式中,该计算机设备是训练装置,该训练装置包括存储器,用于存储计算机可读指令。还可以包括和存储器耦合的通信接口和处理器。通信接口用于执行图9对应的实施例中的步骤901。处理器用于执行所述存储器中的计算机可读指令从而执行图8对应的实施例中的步骤902至步骤906。
在一个可能的实施方式中,该计算机设备是训练装置,该训练装置包括存储器,用于存储计算机可读指令。还可以包括和存储器耦合的通信接口和处理器。通信接口用于执行图11对应的实施例中的步骤1101。处理器用于执行所述存储器中的计算机可读指令从而执行图8对应的实施例中的步骤1102至步骤1110。
在一个可能的实施方式中,该计算机设备是翻译设备,该翻译设备包括存储器,用于存储计算机可读指令。还可以包括和存储器耦合的通信接口和处理器。通信接口用于执行图12对应的实施例中的步骤1201。处理器用于执行所述存储器中的计算机可读指令从而执行图8对应的实施例中的步骤1202至步骤1203。
在本申请实施例中,可以将通信接口视为计算机设备的收发模块1501,将具有处理功能的处理器视为计算机设备的处理模块1502,将存储器视为计算机设备的存储模块(图中未示出)。参阅图15,为本申请实施例提供的一种计算机设备的结构示意图。
本申请实施例对模型的名称并不进行限定,比如,当计算机设备是训练装置时,该收发模块1501可以被称为第一获取模块,该处理模块1502可以看做第一翻译模块、第二获取模块、第三获取模块以及更新模块。其中,第一翻译模块用于执行图6对应的实施例中的步骤602、604;第二翻译模块用于执行图6对应的实施例中的步骤603、第二获取模块用于执行图6对应的实施例中的步骤605、更新模块用于还行图6对应的实施例中的步骤606。在一个可能的实施方式中,第一翻译模块用于执行图8对应的实施例中的步骤802、804;第二翻译模块用于执行图8对应的实施例中的步骤803、805,第二获取模块用于执行图8对应的实施例中的步骤806、807,更新模块用于还行图8对应的实施例中的步骤808、809。在一个可能的实施方式中,第一翻译模块用于执行图9对应的实施例中的步骤902、904;第三获取模块用于执行图9对应的实施例中的步骤903,第二翻译模块用于执行图9对应的实施例中的步骤905,第二获取模块用于执行图9对应的实施例中的步骤905、907,更新模块用于还行图9对应的实施例中的步骤906。在一个可能的实施方式中,第一翻译模块用于执行图11对应的实施例中的步骤1102、1105;第三获取模块用于执行图11对应的实施例中的步骤1103,第二翻译模块用于执行图11对应的实施例中的步骤1104、1106,第二获取模块用于执行图11对应的实施例中的步骤1107、1108,更新模块用于还行图11对应的实施例中的步骤1109、1110。当计算机设备是翻译设备时,可以将处理模块看做翻译模块。
应当理解,上述仅为本申请实施例提供的一个例子,并且,训练装置/翻译设备可具有比示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
本申请实施例提供的训练装置/翻译设备可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该训练装置为芯片时,该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图6、图8、图9、图11所示实施例描述的训练模型的方法。在另一个可能的实施方式中,该翻译设备为芯片时,以使芯片执行上述图12所示实施例描述的翻译方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random accessmemory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
具体的,请参阅图16,图16为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU160,NPU160作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1603,通过控制器1604控制运算电路1603提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1603内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1603是二维脉动阵列。运算电路1603还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1603是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1602中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1601中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1608中。
统一存储器1606用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1605,DMAC被搬运到权重存储器1602中。输入数据也通过DMAC被搬运到统一存储器1606中。
总线接口单元(bus interface unit,BIU)1610,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1609的交互。
总线接口单元1610(bus interface unit,BIU),用于取指存储器1609从外部存储器获取指令,还用于存储单元访问控制器1605从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1606或将权重数据搬运到权重存储器1602中或将输入数据数据搬运到输入存储器1601中。
向量计算单元1607包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1607能将经处理的输出的向量存储到统一存储器1606。例如,向量计算单元1607可以将线性函数和/或非线性函数应用到运算电路1603的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1607生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1603的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1604连接的取指存储器(instruction fetch buffer)1609,用于存储控制器1604使用的指令。
统一存储器1606,输入存储器1601,权重存储器1602以及取指存储器1609均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,循环神经网络中各层的运算可以由运算电路1603或向量计算单元1607执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述图6、图8、图9、图11的方法的程序执行的集成电路,或者在另一个可能的实施方式中,控制上述图12的方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于训练模型的程序,当其在计算机上运行时,使得计算机执行如前述图9或图10所示实施例描述的方法中的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于数据处理的程序,当其在计算机上运行时,使得计算机执行如前述图6、图8、图9、图11所示实施例描述的方法中的步骤。或者使得计算机执行如前述图12所示实施例描述的方法中的步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器,或者处理器的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中训练装置/翻译设备执行的动作。
本申请实施例中还提供一种计算机程序产品,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例所提供的模型的训练方法、数据处理方法以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本申请的说明书和权利要求书及上述附图中的术语“第一”,“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程,方法,系统,产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程,方法,产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些端口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

Claims (44)

1.一种翻译模型的训练方法,其特征在于,包括:
获取训练语句的词向量序列,所述词向量序列包括所述训练语句中至少一个词的词向量;
通过第一翻译模型的编码器获取所述词向量序列的第一编码序列,所述第一翻译模型的编码器采用单向编码器,所述第一编码序列包括至少一个词向量的第一编码向量;
通过第二翻译模型的编码器获取所述词向量序列的第二编码序列,所述第二翻译模型的编码器采用双向编码器,所述第二编码序列包括所述至少一个词向量的第二编码向量;
将所述第一编码序列输入至所述第一翻译模型的解码器中,以获取第一预测结果;
根据所述第一预测结果和所述训练语句对应的目标翻译结果获取第一损失值;
根据所述第一损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第一翻译模型。
2.根据权利要求1所述的训练方法,其特征在于,还包括:
将所述第二编码序列输入至所述第二翻译模型的解码器中,以获取第二预测结果;
根据所述第二预测结果和所述训练语句对应的目标翻译结果获取第二损失值;
所述根据所述第一损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第一翻译模型,包括:
根据所述第一损失值、所述第二损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第一翻译模型。
3.根据权利要求2所述的训练方法,其特征在于,还包括:
根据所述第一损失值、所述第二损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第二翻译模型。
4.根据权利要求1至3任一项所述的训练方法,其特征在于,所述通过第一翻译模型的编码器获取所述词向量序列的第一编码序列,包括:
通过所述第一翻译模型的编码器根据第一位置信息和第二位置信息对所述词向量序列中的每个词向量进行编码,以获取所述每个词向量的第一编码向量,所述第一位置信息包括所述每个词向量在所述词向量序列中的位置信息,所述第二位置信息包括所述每个词向量与第一词向量在所述词向量序列中的相对位置信息,所述第一词向量包括所述词向量序列中在所述每个词向量之前的至少一个词向量,所述第一编码序列包括所述每个词向量的第一编码向量。
5.根据权利要求4所述的训练方法,其特征在于,所述第一词向量包括所述词向量序列中在所述每个词向量的之前的所有词向量。
6.根据权利要求4所述的训练方法,其特征在于,还包括:
根据第二词向量、所述每个词向量的第一编码向量获取所述每个词向量的第三编码向量,所述第二词向量包括所述词向量序列中在所述每个词向量之后的至少一个词向量;
所述将所述第一编码序列输入至所述第一翻译模型的解码器中,以获取第一预测结果,包括:
将所述第一编码序列、第三编码序列输入至所述第一翻译模型的解码器中,以获取所述第一预测结果,其中,所述第三编码序列包括所述每个词向量的第三编码向量。
7.根据权利要求6所述的训练方法,其特征在于,所述第一翻译模型的解码器包括n个网络层,所述n个网络层顺次连接,所述n为大于1的正整数,前n-1个所述网络层的输入为所述第一编码序列,第n个所述网络层的输入为所述第三编码序列,所述第一预测结果根据第n个所述网络层的输出确定。
8.根据权利要求1至3任一项所述的训练方法,其特征在于,所述通过第二翻译模型的编码器获取所述词向量序列的第二编码序列,包括:
通过所述第二翻译模型的编码器根据第三位置信息和第四位置信息对所述词向量序列中每个词向量进行编码,以获取所述每个词向量的第二编码向量,所述第三位置信息包括所述每个词向量在所述词向量序列中的位置信息,所述第四位置信息包括所述每个词向量与第三词向量在所述词向量序列中的相对位置信息,所述第三词向量包括所述词向量序列中在所述每个词向量之前的至少一个词向量以及所述词向量序列中在所述每个词向量之后的至少一个词向量,所述第二编码序列包括所述每个词向量的第二编码向量。
9.根据权利要求8所述的训练方法,其特征在于,所述第三词向量包括所述词向量序列中在所述每个词向量之前的所有词向量以及所述词向量序列中在所述每个词向量之后的所有词向量。
10.根据权利要求1至3任一项所述的训练方法,其特征在于,还包括:
获取所述词向量序列中同一个所述词向量的所述第一编码向量和所述第二编码向量之间的距离,以获取N个距离,所述N为所述词向量序列中包括的所述词向量的数量;
根据所述N个距离获取所述第一编码序列和所述第二编码序列之间的距离。
11.一种翻译方法,其特征在于,包括:
获取待翻译语句的词向量序列,所述词向量序列包括所述待翻译语句中至少一个词的词向量;
通过翻译模型的编码器获取所述词向量序列的第一编码序列,所述翻译模型的编码器采用单向编码器,所述第一编码序列包括所述词向量序列中每个词向量的第一编码向量;
根据所述每个词向量的所述第一编码向量、第二词向量获取所述每个词向量的第三编码向量,所述第二词向量包括所述词向量序列中在所述每个词向量之后的至少一个词向量;
将所述第一编码序列、第三编码序列输入至所述翻译模型的解码器中,以获取翻译结果,其中,所述第三编码序列包括所述每个词向量的第三编码向量。
12.根据权利要求11所述的方法,其特征在于,所述翻译模型是根据第一损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻译模型获取的,所述单向翻译模型采用单向编码器,所述第一训练编码序列是所述单向翻译模型的单向编码器针对所述训练语句中的训练词向量序列获取的编码序列,所述训练词向量序列包括所述训练语句中至少一个词的训练词向量,所述第二训练编码序列是双向翻译模型针对所述训练词向量序列获取的编码序列,所述双向翻译模型采用双向编码器,所述第一损失值是根据第一预测结果和所述训练语句对应的目标翻译结果获取的,所述第一预测结果是将第一训练编码向量输入至所述单向翻译模型的解码器中获取的。
13.根据权利要求12所述的方法,其特征在于,所述翻译模型具体是根据所述第一损失值、第二损失值、所述第一训练编码序列和所述第二训练编码序列之间的距离更新所述单向翻译模型获取的,所述第二损失值是根据第二预测结果和所述训练语句对应的目标翻译结果获取的,所述第二预测结果是将所述第二训练编码序列输入至所述双向翻译模型的解码器中获取的。
14.根据权利要求12或13所述的方法,其特征在于,所述第一训练编码序列包括每个所述训练词向量的第一训练编码向量,所述第一训练编码向量是通过所述单向翻译模型的编码器根据第一位置信息和第二位置信息对每个训练词向量进行编码后获取的,所述第一位置信息包括所述每个训练词向量在所述训练词向量序列中的位置信息,所述第二位置信息包括所述每个训练词向量与第一训练词向量在所述训练词向量序列中的相对位置信息,所述第一训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的至少一个训练词向量。
15.根据权利要求14所述的方法,其特征在于,所述第一训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的所有训练词向量。
16.根据权利要求12至13任一项所述的方法,其特征在于,所述第二训练编码序包括每个所述训练词向量的第二训练编码向量,所述第二训练编码向量是通过所述双向翻译模型的编码器根据第三位置信息和第四位置信息对每个训练词向量进行编码后获取的,所述第三位置信息包括所述每个训练词向量在所述训练词向量序列中的位置信息,所述第四位置信息包括所述每个训练词向量与第二训练词向量在所述训练词向量序列中的相对位置信息,所述第二训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的至少一个词向量以及所述训练词向量序列中在所述每个训练词向量之后的至少一个词向量。
17.根据权利要求16所述的方法,其特征在于,所述第二训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的所有词向量以及所述训练词向量序列中在所述每个训练词向量之后的所有词向量。
18.根据权利要求12至13任一项所述的方法,其特征在于,所述第一训练编码序列和所述第二训练编码序列之间的距离是根据N个距离获取的,所述N个距离是所述训练语句中同一个所述词向量的第一训练编码向量和第二训练编码向量之间的距离,所述N为所述训练语句中训练词向量的数量。
19.根据权利要求11至13任一项所述的方法,其特征在于,所述翻译模型的解码器包括n个网络层,所述n个网络层顺次连接,所述n为大于1的正整数,前n-1个所述网络层的输入为所述第一编码序列,第n个所述网络层的输入为所述第三编码序列,所述翻译结果根据第n个所述网络层的输出确定。
20.一种训练装置,其特征在于,包括:
第一获取模块,用于获取训练语句的词向量序列,所述词向量序列包括所述训练语句中至少一个词的词向量;
第一翻译模块,用于通过第一翻译模型的编码器获取所述词向量序列的第一编码序列,所述第一翻译模型的编码器采用单向编码器,所述第一编码序列包括至少一个词向量的第一编码向量;
第二翻译模块,用于通过第二翻译模型的编码器获取所述词向量序列的第二编码序列,所述第二翻译模型的编码器采用双向编码器,所述第二编码序列包括所述至少一个词向量的第二编码向量;
所述第一翻译模块,还用于将所述第一编码序列输入至所述第一翻译模型的解码器中,以获取第一预测结果;
第二获取模块,用于根据所述第一预测结果和所述训练语句对应的目标翻译结果获取第一损失值;
更新模块,用于根据所述第一损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第一翻译模型。
21.根据权利要求20所述的训练装置,其特征在于,所述第二翻译模块,还用于:
将所述第二编码序列输入至所述第二翻译模型的解码器中,以获取第二预测结果;
所述第二获取模块,还用于根据所述第二预测结果和所述训练语句对应的目标翻译结果获取第二损失值;
所述更新模块,具体用于根据所述第一损失值、所述第二损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第一翻译模型。
22.根据权利要求21所述的训练装置,其特征在于,所述更新模块,还用于:
根据所述第一损失值、所述第二损失值、所述第一编码序列和所述第二编码序列之间的距离更新所述第二翻译模型。
23.根据权利要求20至22任一项所述的训练装置,其特征在于,所述第一翻译模块,具体用于:
通过所述第一翻译模型的编码器根据第一位置信息和第二位置信息对所述词向量序列中的每个词向量进行编码,以获取所述每个词向量的第一编码向量,所述第一位置信息包括所述每个词向量在所述词向量序列中的位置信息,所述第二位置信息包括所述每个词向量与第一词向量在所述词向量序列中的相对位置信息,所述第一词向量包括所述词向量序列中在所述每个词向量之前的至少一个词向量,所述第一编码序列包括所述每个词向量的第一编码向量。
24.根据权利要求23所述的训练装置,其特征在于,所述第一词向量包括所述词向量序列中在所述每个词向量之前的所有词向量。
25.根据权利要求23所述的训练装置,其特征在于,还包括第三获取模块,所述第三获取模块,用于:
根据第二词向量、所述每个词向量的第一编码向量获取第三编码序列,所述第三编码序列包括所述每个词向量的第三编码向量,所述第二词向量包括所述词向量序列中在所述每个词向量之后的至少一个词向量;
所述第一翻译模块,具体用于将所述第一编码序列、所述第三编码序列输入至所述第一翻译模型的解码器中,以获取所述第一预测结果。
26.根据权利要求25所述的训练装置,其特征在于,所述第一翻译模型的解码器包括n个网络层,所述n个网络层顺次连接,所述n为大于1的正整数,前n-1个所述网络层的输入为所述第一编码序列,第n个所述网络层的输入为所述第三编码序列,所述第一预测结果根据第n个所述网络层的输出确定。
27.根据权利要求20至22任一项所述的训练装置,其特征在于,所述第二翻译模块,具体用于:
通过所述第二翻译模型的编码器根据第三位置信息和第四位置信息对所述词向量序列中每个词向量进行编码,以获取所述每个词向量的第二编码向量,所述第三位置信息包括所述每个词向量在所述词向量序列中的位置信息,所述第四位置信息包括所述每个词向量与第三词向量在所述词向量序列中的相对位置信息,所述第三词向量包括所述词向量序列中在所述每个词向量之前的至少一个词向量以及所述词向量序列中在所述每个词向量之后的至少一个词向量,所述第二编码序列包括所述每个词向量的第二编码向量。
28.根据权利要求27所述的训练装置,其特征在于,所述第三词向量包括所述词向量序列中在所述每个词向量之前的所有词向量、所述词向量序列中在所述第三词向量之后的所有词向量。
29.根据权利要求20至22任一项所述的训练装置,其特征在于,还包括第四获取模块,所述第四获取模块,用于:
获取所述词向量序列中同一个所述词向量的所述第一编码向量和所述第二编码向量之间的距离,以获取N个距离,所述N为所述词向量序列中包括的所述词向量的数量;
根据所述N个距离获取所述第一编码序列和所述第二编码序列之间的距离。
30.一种翻译设备,其特征在于,包括:
获取模块,用于获取待翻译语句的词向量序列,所述词向量序列包括所述待翻译语句中至少一个词的词向量;
翻译模块,用于:
通过翻译模型的编码器获取所述词向量序列的第一编码序列,所述翻译模型的编码器采用单向编码器,所述第一编码序列包括所述词向量序列中每个词向量的第一编码向量;
根据所述每个词向量的所述第一编码向量、第二词向量获取所述每个词向量的第三编码向量,所述第二词向量包括所述词向量序列中在所述每个词向量之后的至少一个词向量;
将所述第一编码序列、第三编码序列输入至所述翻译模型的解码器中,以获取翻译结果,其中,所述第三编码序列包括所述词向量序列中每个词向量的第三编码向量。
31.根据权利要求30所述的翻译设备,其特征在于,所述翻译模型是根据第一损失值、第一训练编码序列和第二训练编码序列之间的距离更新单向翻译模型获取的,所述单向翻译模型采用单向编码器,所述第一训练编码序列是所述单向翻译模型的单向编码器针对训练语句中的训练词向量序列获取的编码序列,所述训练词向量序列包括所述训练语句中至少一个词的训练词向量,所述第二训练编码序列是双向翻译模型针对所述训练词向量序列获取的编码序列,所述双向翻译模型采用双向编码器,所述第一损失值是根据第一预测结果和所述训练语句对应的目标翻译结果获取的,所述第一预测结果是将第一训练编码向量输入至所述单向翻译模型的解码器中获取的。
32.根据权利要求31所述的翻译设备,其特征在于,所述翻译模型具体是根据所述第一损失值、第二损失值、所述第一训练编码序列和所述第二训练编码序列之间的距离更新所述单向翻译模型获取的,所述第二损失值是根据第二预测结果和所述训练语句对应的目标翻译结果获取的,所述第二预测结果是将所述第二训练编码序列输入至所述双向翻译模型的解码器中获取的。
33.根据权利要求31或32所述的翻译设备,其特征在于,所述第一训练编码序列包括每个所述训练词向量的第一训练编码向量,所述第一训练编码向量是通过所述单向翻译模型的编码器根据第一位置信息和第二位置信息对每个训练词向量进行编码后获取的,所述第一位置信息包括所述每个训练词向量在所述训练词向量序列中的位置信息,所述第二位置信息包括所述每个训练词向量与第一训练词向量在所述训练词向量序列中的相对位置信息,所述第一训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的至少一个训练词向量。
34.根据权利要求33所述的翻译设备,其特征在于,所述第一训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的所有词向量。
35.根据权利要求31至32任一项所述的翻译设备,其特征在于,所述第二训练编码序列包括每个所述训练词向量的第二训练编码向量,所述第二训练编码向量是通过所述双向翻译模型的编码器根据第三位置信息和第四位置信息对每个训练词向量进行编码后获取的,所述第三位置信息包括所述每个训练词向量在所述训练词向量序列中的位置信息,所述第四位置信息包括所述每个训练词向量与第二训练词向量在所述训练词向量序列中的相对位置信息,所述第二训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的至少一个词向量以及所述训练词向量序列中在所述每个训练词向量之后的至少一个词向量。
36.根据权利要求35所述的翻译设备,其特征在于,所述第二训练词向量包括所述训练词向量序列中在所述每个训练词向量之前的所有词向量以及所述训练词向量序列中在所述每个训练词向量之后的所有词向量。
37.根据权利要求31至32任一项所述的翻译设备,其特征在于,所述第一训练编码序列和所第二训练编码序列之间的距离是根据N个距离获取的,所述N个距离是所述训练语句中同一个所述词向量的第一训练编码向量和第二训练编码向量之间的距离,所述N为所述训练语句中训练词向量的数量。
38.根据权利要求30至32任一项所述的翻译设备,其特征在于,所述翻译模型的解码器包括n个网络层,所述n个网络层顺次连接,所述n为大于1的正整数,前n-1个所述网络层的输入为所述第一编码序列,第n个所述网络层的输入为所述第三编码序列,所述翻译结果根据第n个所述网络层的输出确定。
39.一种训练装置,其特征在于,包括:
存储器,用于存储计算机可读指令;
还包括,与所述存储器耦合的处理器,用于执行所述存储器中的计算机可读指令从而执行如权利要求1至10任一项所描述的方法。
40.一种翻译设备,其特征在于,包括:
存储器,用于存储计算机可读指令;
还包括,与所述存储器耦合的处理器,用于执行所述存储器中的计算机可读指令从而执行如权利要求11至19任一项所描述的方法。
41.一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求1至10任一项所描述的方法。
42.一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求11至19任一项所描述的方法。
43.一种芯片,其特征在于,所述芯片与存储器耦合,用于执行所述存储器中存储的程序,以执行如权利要求1至10任一项所述的方法。
44.一种芯片,其特征在于,所述芯片与存储器耦合,用于执行所述存储器中存储的程序,以执行如权利要求11至19任一项所述的方法。
CN202011466833.9A 2020-12-14 2020-12-14 一种翻译模型的训练方法、翻译方法以及设备 Active CN112597778B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011466833.9A CN112597778B (zh) 2020-12-14 2020-12-14 一种翻译模型的训练方法、翻译方法以及设备
PCT/CN2021/135238 WO2022127613A1 (zh) 2020-12-14 2021-12-03 一种翻译模型的训练方法、翻译方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011466833.9A CN112597778B (zh) 2020-12-14 2020-12-14 一种翻译模型的训练方法、翻译方法以及设备

Publications (2)

Publication Number Publication Date
CN112597778A CN112597778A (zh) 2021-04-02
CN112597778B true CN112597778B (zh) 2023-06-13

Family

ID=75195515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011466833.9A Active CN112597778B (zh) 2020-12-14 2020-12-14 一种翻译模型的训练方法、翻译方法以及设备

Country Status (2)

Country Link
CN (1) CN112597778B (zh)
WO (1) WO2022127613A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558605B (zh) * 2018-12-17 2022-06-10 北京百度网讯科技有限公司 用于翻译语句的方法和装置
CN112597778B (zh) * 2020-12-14 2023-06-13 华为技术有限公司 一种翻译模型的训练方法、翻译方法以及设备
CN113239704B (zh) * 2021-05-31 2024-05-28 平安科技(深圳)有限公司 干扰语句生成方法、装置、设备及计算机可读存储介质
WO2023168717A1 (zh) * 2022-03-11 2023-09-14 北京小米移动软件有限公司 一种模型训练部署方法/装置/设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446534A (zh) * 2018-09-21 2019-03-08 清华大学 机器翻译方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729329B (zh) * 2017-11-08 2021-03-26 苏州大学 一种基于词向量连接技术的神经机器翻译方法及装置
US10909331B2 (en) * 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
CN108984539B (zh) * 2018-07-17 2022-05-17 苏州大学 基于模拟未来时刻的翻译信息的神经机器翻译方法
US11138392B2 (en) * 2018-07-26 2021-10-05 Google Llc Machine translation using neural network models
CN109271643A (zh) * 2018-08-08 2019-01-25 北京捷通华声科技股份有限公司 一种翻译模型的训练方法、翻译方法和装置
CN110895660B (zh) * 2018-08-23 2024-05-17 澳门大学 一种基于句法依存关系动态编码的语句处理方法及装置
CN109271646B (zh) * 2018-09-04 2022-07-08 腾讯科技(深圳)有限公司 文本翻译方法、装置、可读存储介质和计算机设备
CN111401081A (zh) * 2018-12-14 2020-07-10 波音公司 神经网络机器翻译方法、模型及模型形成方法
CN109829172B (zh) * 2019-01-04 2023-07-04 北京先声智能科技有限公司 一种基于神经翻译的双向解码自动语法改错模型
CN109933809B (zh) * 2019-03-15 2023-09-15 北京金山数字娱乐科技有限公司 一种翻译方法及装置、翻译模型的训练方法及装置
CN111126035A (zh) * 2019-12-24 2020-05-08 深圳视界信息技术有限公司 一种电商评论分析场景下细粒度属性分析方法
CN111368079B (zh) * 2020-02-28 2024-06-25 腾讯科技(深圳)有限公司 一种文本分类的方法、模型训练的方法、装置及存储介质
CN111222347B (zh) * 2020-04-15 2020-07-28 北京金山数字娱乐科技有限公司 语句翻译模型的训练方法及装置、语句翻译方法及装置
CN111563391A (zh) * 2020-04-28 2020-08-21 北京金山云网络技术有限公司 机器翻译方法、装置及电子设备
CN111950302B (zh) * 2020-08-20 2023-11-10 上海携旅信息技术有限公司 基于知识蒸馏的机器翻译模型训练方法、装置、设备及介质
CN112597778B (zh) * 2020-12-14 2023-06-13 华为技术有限公司 一种翻译模型的训练方法、翻译方法以及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446534A (zh) * 2018-09-21 2019-03-08 清华大学 机器翻译方法及装置

Also Published As

Publication number Publication date
WO2022127613A1 (zh) 2022-06-23
CN112597778A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
CN112597778B (zh) 一种翻译模型的训练方法、翻译方法以及设备
CN112487182B (zh) 文本处理模型的训练方法、文本处理方法及装置
US10380996B2 (en) Method and apparatus for correcting speech recognition result, device and computer-readable storage medium
CN108171198B (zh) 基于非对称多层lstm的连续手语视频自动翻译方法
WO2023160472A1 (zh) 一种模型训练方法及相关设备
CN112883149B (zh) 一种自然语言处理方法以及装置
WO2021238333A1 (zh) 一种文本处理网络、神经网络训练的方法以及相关设备
WO2021057884A1 (zh) 语句复述方法、训练语句复述模型的方法及其装置
WO2022068314A1 (zh) 神经网络训练的方法、神经网络的压缩方法以及相关设备
CN114360502A (zh) 语音识别模型的处理方法、语音识别方法及装置
WO2021082518A1 (zh) 机器翻译方法、机器翻译模型训练方法、装置及存储介质
US11182569B2 (en) Method and apparatus for processing word vector of neural machine translation model, and non-transitory computer-readable recording medium
CN113239708B (zh) 一种模型训练的方法、翻译的方法以及装置
CN111767744B (zh) 文本风格迁移系统的训练方法及装置
CN115358231A (zh) 自然语言预训练模型训练方法、装置、设备及存储介质
CN116364097A (zh) 一种数据处理方法及装置、设备、存储介质
CN110334359B (zh) 文本翻译方法和装置
CN116745773A (zh) 跨语言装置和方法
CN113688637A (zh) 一种模型训练方法、装置、计算设备及可读存储介质
CN113077785A (zh) 一种端到端的多语言连续语音流语音内容识别方法及系统
CN113268997B (zh) 文本翻译方法、装置、计算机设备和存储介质
CN112687262A (zh) 语音转换方法、装置、电子设备及计算机可读存储介质
KR20240085146A (ko) 모델 어댑테이션 방법 및 그 시스템
CN111597814B (zh) 一种人机交互命名实体识别方法、装置、设备及存储介质
CN114387954A (zh) 一种语音转换方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant