掌桥专利:专业的专利平台
掌桥专利
首页

一种语言表征模型的训练方法及装置

文献发布时间:2023-06-19 11:32:36


一种语言表征模型的训练方法及装置

技术领域

本申请涉及自然语言处理技术领域,特别涉及一种语言表征模型的训练方法及装置、神经网络机器翻译方法及装置、计算设备及计算机可读存储介质。

背景技术

自然语言处理(Natural Language Processing),是研究计算机处理人类语言的一门技术,主要包括句法语义分析、信息抽取、语言挖掘、机器翻译、信息检索以及问答系统等,近年来,随着人工智能的不断发展,利用深度神经网络模型对自然语言进行处理,得到文本中的每个字符(token)对应的融合全文语义信息后的特征表示越来越具有普遍性。

在实际应用中,用户通常需要利用具有通用性的语言模型对文本数据进行特征表示,例如BERT(Bidirectional Encoder Representations from Transformer)模型,BERT模型利用了Transformer结构中的Encoder编码层对文本数据进行编码,同时,BERT模型中的若干个编码层均采用了自注意力(Self-Attention)机制,即文本中的每个字符都要和该文本中的所有字符进行相关度计算来学习文本或句子内部的字符依赖关系,以捕获文本或句子的内部结构,并且在具体使用中采用了多头注意力(Multi-headed Attention)机制,其可以允许BERT模型在不同的表示子空间里学习到相关信息并且扩展了BERT模型专注于不同位置的能力,最后将多组自注意力机制的计算结果合并在一起得到最终结果。

然而,编码层在利用多头注意力(Multi-headed Attention)机制计算注意力权重的过程中,注意力机制会将注意力权重过多的集中在字符自身和分隔符上,导致编码层的信息流动性严重降低,不再能体现出文本或句子中各个字符之间的信息交互,进而导致用户在对BERT模型进行微调以处理包括机器阅读理解在内的具体自然语言任务时,模型的训练效果难以快速的达到预期的训练目标,从而浪费了计算资源并且消耗计算成本。

发明内容

有鉴于此,本申请实施例提供了一种语言表征模型的训练方法及装置、神经网络机器翻译方法及装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种语言表征模型的训练方法,

所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述方法包括:

获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层;

通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减;

计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值;

根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型。

根据本说明书实施例的第二方面,提供了一种神经网络机器翻译方法,包括:

获取待翻译语句并生成所述待翻译语句中每个字符对应的原始向量;

将所述待翻译语句中每个字符对应的原始向量输入至机器翻译模型,其中,所述机器翻译模型是通过上述语言表征模型的训练方法训练获得的;

通过所述机器翻译模型获取所述待翻译语句中每个字符对应的目标字符,并根据所述待翻译语句中每个字符对应的目标字符生成所述待翻译语句对应的目标翻译语句。

根据本说明书实施例的第三方面,提供了一种语言表征模型的训练装置,

所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述装置包括:

样本获取模块,被配置为获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层;

样本编码模块,被配置为通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减;

损失值计算模块,被配置为计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值;

调参模块,被配置为根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型。

根据本说明书实施例的第四方面,提供了一种神经网络机器翻译装置,包括:

向量生成模块,被配置为获取待翻译语句并生成所述待翻译语句中每个字符对应的原始向量;

向量输入模块,被配置为将所述待翻译语句中每个字符对应的原始向量输入至机器翻译模型,其中,所述机器翻译模型是通过上述语言表征模型的训练方法训练获得的;

翻译输出模块,被配置为通过所述机器翻译模型获取所述待翻译语句中每个字符对应的目标字符,并根据所述待翻译语句中每个字符对应的目标字符生成所述待翻译语句对应的目标翻译语句。

根据本说明书实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述语言表征模型的训练方法和神经网络机器翻译方法的步骤。

根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述语言表征模型的训练方法和神经网络机器翻译方法的步骤。

本申请通过对至少两个顺次连接的堆栈层中的注意力头的数量进行配置,使得随着堆栈层层级的增加,逐渐减少多头注意力机制中的注意力头的数量,即在底层的堆栈层设置较多的注意力头使得模型能够充分学习文本或句子的内部结构,并且在顶层堆栈层设置数量较少的注意力头降低模型的复杂度,从而提高了位于上层的堆栈层之间的信息流动性,体现出文本或句子中各个字符之间的信息交互,保证了多头注意力机制的稳定性,减少了计算机的运行成本。

附图说明

图1是本申请实施例提供的计算设备的结构框图;

图2是本申请实施例提供的语言表征模型的训练方法的流程图;

图3是本申请实施例提供的语言表征模型获得原始向量方法的流程图;

图4是本申请实施例提供的Bert模型对目标文本语句嵌入化处理的示意图;

图5是本申请实施例提供的BERT模型的结构示意图;

图6是本申请实施例提供的编码层的结构示意图;

图7是本申请实施例提供的多头注意力机制的结构示意图;

图8是本申请实施例提供的Transformer模型的结构示意图;

图9是本申请实施例提供的语言表征模型中堆栈层的注意力头数示意图;

图10是本申请实施例提供的神经网络机器翻译方法的示意性流程图;

图11是本申请实施例提供的语言表征模型的训练装置的结构示意图;

图12是本申请实施例提供的神经网络机器翻译装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

机器阅读理解:机器阅读理解(Machine Reading Comprehension,MRC)是一项任务,利用算法使得机器能够理解自然语言并完成相关任务,早期的MRC系统是基于规则的,性能非常差,随着深度学习和大规模数据集的兴起,基于深度学习的MRC显著优于基于规则的MRC,常见的MRC任务可以分为四种类型:完形填空、多项选择、片段抽取、自由回答等。

BERT模型:其全称为Bidirectional Encoder Representations fromTransformers,即基于Transformer架构的双向编码表示模型,BERT模型的目标是利用大规模无标注语料训练以获得文本的包含丰富语义信息的语义表示(Representation),然后将文本的语义表示在特定自然语言处理任务中作微调(Fine-Tuning),最终应用于该自然语言处理任务。

Transformer架构:一种采用了注意力机制的特征抽取技术,包括解码器与编码器,创新性的采用了放缩点积自注意力机制(Scaled Dot-product Attention)和多头自注意力机制(Multi-Headed Attention)相对于传统特征抽取技术减少了计算量并且提高了计算效率。

自注意力机制:对于输入的目标文本语句,通过对其中的每个字符分别增强语义向量表示,经过处理作为Query向量,加权融合文本或句子中所有字符的语义信息,得到各个字符的增强语义向量,并且在Query矩阵、Key矩阵和Value矩阵的向量表示均来自于同一输入文本,因此,该注意力机制也叫自注意力机制。

多头注意力机制:为了增强自注意力机制的多样性,通过利用不同的自注意力模块获得文本或句子中每个字符在不同语义空间下的增强语义向量,并将每个字符的多个增强语义向量进行线性组合,从而获得一个最终的与原始向量长度相同的增强语义向量。

前馈神经网络:前馈神经网络(Feedforward Neural Network,FNN)简称前馈网络,是人工神经网络的一种,前馈神经网络采用一种单向多层结构,其中每一层包含若干个神经元,在此种神经网络中,各神经元可以接收前一层神经元的信号,并产生输出到下一层,第零层叫输入层,最后一层叫输出层,其他中间层叫做隐含层,隐含层可以是一层也可以是多层。

目标文本语句:需要进行语义特征表示的文本或语句。

原始向量:目标文本语句经过嵌入层处理后获得的向量集合。

目标向量:原始向量经过BERT模型中每个编码层以及数据处理后得到的目标文本语句中每个字符对应的融合全文语义信息后的向量表示。

损失函数:是机器学习中模型输出的预测结果间概率分布差异的量化函数。

损失值:损失函数的值。

目标损失值:在多个损失值中根据相关的条件选出的一个损失值。

在本申请中,提供了一种语言表征模型的训练方法及装置、神经网络机器翻译方法及装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的语言表征模型的训练方法的示意性流程图,所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述方法包括步骤202至步骤208。

步骤202:获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层。

在本申请的实施例中,如图3所示,获取目标文本语句中每个字符对应的原始向量,包括步骤302至步骤306。

步骤302:对所述目标文本语句进行分词和字嵌入,得到所述目标文本语句中每个字符对应的字嵌入向量。

在上述实施例中,如图4所示,本申请在对所述目标文本语句进行自嵌入之前首先要进行分词(Tokenization)处理,同时,两个特殊的字符会被插入到分词结果的开头([CLS])和结尾([SEP]),用于作为后续分类任务和划分句子对,例如,对于目标文本语句“我爱你中国”,进行分词后得到对应的字符“我”、“爱”、“你”、“中”和“国”,然后对每个字符(Token)进行字嵌入,得到所述目标文本语句中每个字符对应的字嵌入向量,其中,子嵌入层可以将每个字符转换成768维的向量,即“我”、“爱”、“你”、“中”和“国”就会对应转换为一个(5,768)的矩阵或者是(1,5,768)的张量。

步骤304:获取所述目标文本语句中每个字符对应文本向量和/或位置向量。

在上述实施例中,文本嵌入层只有两种向量表示,前一个向量是把0赋给第一个句子中的各个字符,后一个向量是把1赋给第二个句子中的各个字符,如果输入仅仅只有一个句子,那么它的文本向量就是全0。

在上述实施例中,位置嵌入层实际上就是一个大小为(512,768)的look-up表,该look-up表的第一行是代表第一个序列的第一个位置,第二行代表序列的第二个位置,以此类推。因此,如果有这样两个句子“Hello world”和“Hi there”,“Hello”和“Hi”会有完全相同的位置向量,因为他们都是句子的第一个词。同理,“world”和“there”也会有相同的位置向量。

步骤306:将所述目标文本语句中每个字符对应的字嵌入向量、文本向量和/或位置向量进行叠加,得到所述目标文本语句中每个字符对应的原始向量。

在上述实施例中,对于长度为n的输入序列将获得的三种不同的向量表示,分别是:(1,n,768)的字嵌入向量,(1,n,768)的文本向量用于辅助模型区别句子对中的两个句子的向量表示以及(1,n,768)的位置向量用于输入顺序属性,将上述三个向量按元素相加,得到一个大小为(1,n,768)的合成表示即所述目标文本语句中每个字符对应的原始向量。

步骤204:通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减。

所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,在每个堆栈层中包括多头注意力子层,每个多头注意力子层中均包括至少一个注意力头,并且根据堆栈层的连接方式逐级递减,例如一共有6个依次连接的堆栈层,第0个堆栈层的注意力头数为12,第1个堆栈层的注意力头数为10,第2个堆栈层的注意力头数为8,第3个堆栈层的注意力头数为6,第4个堆栈层的注意力头数为4,第5个堆栈层的注意力头数为2。在本申请中,对每个堆栈层中的注意力头数的具体数量不做限制,对每个堆栈层中递减的差也不做具体限制,以实际应用为准。

多头注意力子层中的每个注意力头都需要根据输入的向量与随机初始化矩阵相乘,得到一组Q、K、V矩阵,并在自注意力计算之后,将所有的注意力头的结构合并后输出一组结果。在简化所述语言表征模型的基础上,使得顶层信息流动性差的影响降低,可以有效提升模型效果。

可选的,所述语言表征模型包括编码器,所述编码器中包括至少两个顺次连接的第一堆栈层;

通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,包括:

将每个字符对应的原始向量依次输入至每个第一堆栈层,得到每个字符对应的特征向量,其中,每个所述第一堆栈层中的注意力头的数量根据第一堆栈层的连接方式逐级递减。

在本申请提供的一具体的实施方式中,如图5所示,本申请的语言表征模型以Bert模型为例,所述语言表征模型包括编码器,所述编码器至少包括两个顺次连接的编码层(第一堆栈层),每个编码层中均设置有多头注意力层(Multi-Headed Attention Layer)用于给模型提供自注意力机制(Self-Attention),在多头注意力层中会包括至少一个注意力头(Head),并且在本申请中,将编码器中每层多头注意力层中的注意力头的数量按照从底层编码层到顶层编码层的顺序逐级递减。

如图6所示,图6示出了本申请一具体实施方式提供的编码层的结构示意图,在每个所述编码层中均包括多头注意力层和前馈神经网络层,并且在每个多头注意力层和前馈神经网络层后面都会附加一个残差模块,通过残差模块对每层的输出进行相加和归一化处理,用于将输入转化成均值为0方差为1的数据,从而防止梯度消失或者梯度爆炸,由于多头自注意力机制本身也会合并多个注意力头的自注意力的结果,因此,逐层递减每个堆栈层中的注意力头数并不会影响后续的相加和归一化层和残差网络的计算。

以编码层为例进行进一步的解释说明,自注意力机制会计算出三个新的512维向量,别称为Query向量、Key向量和Value向量,这三个向量是用原始向量与一个随机初始化矩阵相乘得到的结果,所述随机初始化的维度为(64,512)需要和原始向量的维度一样,通过如下公式1使用点积进行相似度计算的注意力:

此外,如图7所示,图7示出了本申请提供的多头注意力机制的结构示意图,由于多头注意力层中包含至少一个注意力头,因此Query向量、Key向量和Value向量在每个注意力头处都要进行一个线性变换(进行线性变换的参数W

head

然后将每个注意力头部进行点积注意力计算得到的结果进行拼接,再进行一次线性变换(进行线性变换的为参数W

MultiHead(Q,K,V)=Concat(head

可选的,所述语言表征模型包括解码器,所述解码器中包括至少两个顺次连接的第二堆栈层;

通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,包括:

将每个字符对应的原始向量依次输入至每个第二堆栈层,得到每个字符对应的特征向量,其中,每个所述第二堆栈层中的注意力头的数量根据第二堆栈层的连接方式逐级递减。

在本申请提供的另一具体的实施方式中,本申请的语言表征模型以GPT-2模型为例,所述语言表征模型包括解码器,所述解码器包括至少两个顺次连接的解码层(第二堆栈层),每个解码层中均设置有多头注意力层(Multi-Headed Attention Layer)用于给模型提供自注意力机制(Self-Attention),在多头注意力层中会包括至少一个注意力头(Head),并且在本申请中,将解码器中每层多头注意力层中的注意力头的数量按照从底层解码层到顶层解码层的顺序逐级递减。

可选的,所述语言表征模型包括编码器和解码器,所述编码器中包括至少两个顺次连接的第一堆栈层,所述解码器中包括至少两个顺次连接的第二堆栈层;

通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,包括:

将每个字符对应的原始向量依次输入至每个第一堆栈层,得到每个字符对应的编码向量,其中,每个所述第一堆栈层中的注意力头的数量根据第一堆栈层的连接方式逐级递减;

将每个字符对应的编码向量依次属于至每个第二堆栈层,得到每个字符对应的特征向量,其中,每个所述第二堆栈层中的注意力头的数量根据第二堆栈层的连接方式逐级递减。

在本申请提供的第三种具体的实施方式中,本申请的语言表征模型以transformer模型为例,所述语言表征模型包括编码器和解码器,所述编码器包括至少两个顺次连接的编码层(第一堆栈层),所述解码器包括至少两个顺次连接的解码层(第二堆栈层),每个编码层和每个解码层中均设置有多头注意力层(Multi-Headed AttentionLayer)用于给模型提供自注意力机制(Self-Attention),在多头注意力层中会包括至少一个注意力头(Head),并且在本申请中,将编码器中每层多头注意力层中的注意力头的数量按照从底层编码层到顶层编码层的顺序逐级递减,将解码器中每层多头注意力层中的注意力头的数量按照从底层解码层到顶层解码层的顺序逐级递减。

在上述第三种具体实施方式中,语言表征模型以transformer模型为例进行进一步的解释说明,所述语言表征模型,包括编码器和解码器,所述编码器中包括n个编码层(第一堆栈层),其中,n为大于等于2的正整数;

将每个字符对应的原始向量依次输入至每个第一堆栈层,得到每个字符对应的编码向量,具体包括:

S61:将每个字符对应的原始向量输入至第1个第一堆栈层,获取所述第1个第一堆栈层输出的每个字符对应的编码向量。

将每个字符对应的原始向量输入至第1个编码层,获得第一个编码层输出的每个字符对应的编码向量。

S62:将第i-1个第一堆栈层输出的每个字符对应的特征向量输入至第i个第一堆栈层,获取所述第i个第一堆栈层输出的每个字符对应的编码向量,其中,所述i为正整数且2≤i≤n。

从第i个编码层开始,其中,2≤i≤n,接收上一个编码层输出的编码向量,在当前第i个编码层做编码处理,获得当前第i个编码层输出的每个字符对应的编码向量。

S63:将i自增1,判断i是否大于n;若是,则获得每个字符对应的编码向量;若否,则执行步骤S62。

具体的,将i自增1,判断i是否大于n,若是,执行自增操作之后的i大于n,则说明已经执行到最后一个编码层,获得每个字符对应的编码向量,若否,则继续执行步骤S62。

需要注意的是,在实际应用中,还可以根据每个编码层输出的编码向量和预设的权重生成所述编码器输出的每个字符对应的编码向量。

语言表征模型还包括解码器,所述解码器中包括m个解码层(第二堆栈层),其中,m为大于等于2的正整数;

将每个字符对应的编码向量依次属于至每个第二堆栈层,得到每个字符对应的特征向量,包括:

S71、将每个字符对应的编码向量输入至第1个第二堆栈层,获取所述第1个第二堆栈层输出的每个字符对应的特征向量。

具体的,将每个字符对应的编码向量输入至第1个解码层,在第1个解码层中经过解码处理,获得第1个解码层输出的每个字符对应的特征向量。

S72、将第t-1个第二堆栈层输出的每个字符对应的特征向量输入至第t个第二堆栈层,获取所述第t个第二堆栈层输出的每个字符对应的特征向量,其中,所述t为正整数且2≤t≤m。

从第t个解码层开始,2≤t≤m,将编码器输出每个字符对应的编码向量和上一个解码层输出的特征向量输入至第t个解码层中做解码处理,获得的t个解码层输出的每个字符对应的特征向量。

S73、将t自增1,判断t是否大于m;若是,则获得每个字符对应的特征向量;若否,则执行步骤S72。

将t自增1,并判断t是否大于m,若t大于m,则说明是最后一个解码层,将最后一个解码层输出的特征向量作为每个字符对应的特征向量,若t小于等于m,则说明还未到最后一个解码层,则继续执行步骤S72。

参见图8,图8示出了本申请提供的Transformer模型的结构示意图,如图8所示,Transformer模型采用编码-解码架构,在编码器侧由六个编码层堆叠在一起,在解码器侧由六个解码层堆叠在一起,并且在编码器侧中,随着编码层的层数的增加,逐层减少每个编码层中多头注意力层中的注意力头数,在解码器侧中,随着解码层的层数的增加,逐层减少每个解码层中多头注意力层中的注意力头数。

参见图9,图9示出了本申请一实施例提供的语言表征模型中堆栈层的注意力头数示意图。如图9所示,语音表征模型包括多个顺次连接的堆栈层,堆栈层底层的注意力头数最多,并随着堆栈层层数的增加,逐层减少每个堆栈层中多头注意力层中的注意力头数。

可选的,所述语言表征模型包括p个顺次连接的堆栈层,p为大于等于2的正整数;

所述每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减,包括:

在第j个堆栈层中包括q个注意力头的情况下,在第j+1个堆栈层中包括q-k个注意力头,其中,j为正整数且2≤j≤p,k为大于等于1的正整数,q为大于k的正整数。

通过逐层递减每个堆栈层中多头注意力层中的注意力头数,实现了通过在底层的编码层中设置较多的注意力头数量使得模型主要集中与学习目标文本语句的内部结构,在顶层的编码层中设置一个注意力头以降低模型复杂度。

步骤206:计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值。

具体的,将每个字符对应的特征向量与目标向量计算损失值,计算损失值的函数有很多,例如交叉熵损失函数、最大损失函数、平均损失函数等等,在本申请中,对计算损失值的具体方式不做限制,以实际应用为准。

步骤208:根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型。

在获得目标损失函数后,即可根据目标损失函数调整所述语言表征模型的参数,以训练所述语言表征模型,直至达到训练停止条件,在实际应用中,模型的训练停止条件可以是目标损失值小于预设阈值,也可以是模型训练的轮次达到了预设的训练轮次,在本申请中,对模型训练的停止条件也不做限制。

本申请实施例提供的一种语言表征模型的训练方法,所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述方法包括获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层;通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减;计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值;根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型,通过本申请提供的方法,在底层的堆栈层中设置较多的注意力头数使得模型主要集中与学习目标文本语句的内部结构,在顶层的堆栈层中设置较少的注意力头以降低模型复杂度,通过逐层递减堆栈层的多头注意力层中的注意力头数,精简了语音表征模型的体积,同时还保证了语音表征模型的模型效果。

其中,处理器120还可以执行图10所示方法中的步骤。图10是示出了根据本申请一实施例的神经网络机器翻译方法的示意性流程图,包括步骤1002至步骤1006。

步骤1002:获取待翻译语句并生成所述待翻译语句中每个字符对应的原始向量。

步骤1004:将所述待翻译语句中每个字符对应的原始向量输入至机器翻译模型,其中,所述机器翻译模型是通过上述语言表征模型的训练方法训练获得的。

步骤1006:通过所述机器翻译模型获取所述待翻译语句中每个字符对应的目标字符,并根据所述待翻译语句中每个字符对应的目标字符生成所述待翻译语句对应的目标翻译语句。

本申请提供的机器翻译模型采用注意力头数根据编码层逐层递减,且根据解码层逐层递减的多头注意力机制,使得所述机器翻译模型的目标向量是准确包含待翻译语句中的语义信息的语义表示的目标向量,从而在对下游的具体自然语言任务进行处理时能够得到较高准确率的预测结果。

与上述语言表征模型的训练方法实施例相对应,本说明书还提供了语言表征模型的训练装置实施例,图11示出了本说明书一个实施例的语言表征模型的训练装置的结构示意图。所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述装置包括:

样本获取模块1102,被配置为获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层;

样本编码模块1104,被配置为通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减;

损失值计算模块1106,被配置为计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值;

调参模块1108,被配置为根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型。

可选的,所述样本获取模块1102,进一步被配置为:

对所述目标文本语句进行分词和字嵌入,得到所述目标文本语句中每个字符对应的字嵌入向量;

获取所述目标文本语句中每个字符对应文本向量和/或位置向量;

将所述目标文本语句中每个字符对应的字嵌入向量、文本向量和/或位置向量进行叠加,得到所述目标文本语句中每个字符对应的原始向量。

可选的,所述语言表征模型包括编码器,所述编码器中包括至少两个顺次连接的第一堆栈层;

所述样本编码模块1104,进一步被配置为:

将每个字符对应的原始向量依次输入至每个第一堆栈层,得到每个字符对应的特征向量,其中,每个所述第一堆栈层中的注意力头的数量根据第一堆栈层的连接方式逐级递减。

可选的,所述语言表征模型包括解码器,所述解码器中包括至少两个顺次连接的第二堆栈层;

所述样本编码模块1104,进一步被配置为:

将每个字符对应的原始向量依次输入至每个第二堆栈层,得到每个字符对应的特征向量,其中,每个所述第二堆栈层中的注意力头的数量根据第二堆栈层的连接方式逐级递减。

可选的,所述语言表征模型包括编码器和解码器,所述编码器中包括至少两个顺次连接的第一堆栈层,所述解码器中包括至少两个顺次连接的第二堆栈层;

所述样本编码模块1104,进一步被配置为:

将每个字符对应的原始向量依次输入至每个第一堆栈层,得到每个字符对应的编码向量,其中,每个所述第一堆栈层中的注意力头的数量根据第一堆栈层的连接方式逐级递减;

将每个字符对应的编码向量依次属于至每个第二堆栈层,得到每个字符对应的特征向量,其中,每个所述第二堆栈层中的注意力头的数量根据第二堆栈层的连接方式逐级递减。

可选的,所述编码器中包括n个第一堆栈层,其中,n为大于等于2的正整数;

所述样本编码模块1104,进一步被配置为:

将每个字符对应的原始向量输入至第1个第一堆栈层,获取所述第1个第一堆栈层输出的每个字符对应的编码向量;

将第i-1个第一堆栈层输出的每个字符对应的特征向量输入至第i个第一堆栈层,获取所述第i个第一堆栈层输出的每个字符对应的编码向量,其中,所述i为正整数且2≤i≤n;

将i自增1,判断i是否大于n;若是,则执行步骤获得每个字符对应的编码向量;若否,则将第i-1个第一堆栈层输出的每个字符对应的特征向量输入至第i个第一堆栈层,获取所述第i个第一堆栈层输出的每个字符对应的编码向量。

可选的,所述解码器中包括m个第二堆栈层,其中,m为大于等于2的正整数;

所述样本编码模块1104,进一步被配置为:

将每个字符对应的编码向量输入至第1个第二堆栈层,获取所述第1个第二堆栈层输出的每个字符对应的特征向量;

将第t-1个第二堆栈层输出的每个字符对应的特征向量输入至第t个第二堆栈层,获取所述第t个第二堆栈层输出的每个字符对应的特征向量,其中,所述t为正整数且2≤t≤m;

将t自增1,判断t是否大于m;若是,则执行步骤获得每个字符对应的特征向量;若否,则将第t-1个第二堆栈层输出的每个字符对应的特征向量输入至第t个第二堆栈层,获取所述第t个第二堆栈层输出的每个字符对应的特征向量。

可选的,所述语言表征模型包括p个顺次连接的堆栈层,p为大于等于2的正整数;

所述样本编码模块1104,进一步被配置为:

在第j个堆栈层中包括q个注意力头的情况下,在第j+1个堆栈层中包括q-k个注意力头,其中,j为正整数且2≤j≤p,k为大于等于1的正整数,q为大于k的正整数。

本申请实施例提供的一种语言表征模型的训练装置,所述语言表征模型包括至少两个顺次连接的堆栈层,每个所述堆栈层包括至少一个注意力头,所述方法包括获取目标文本语句中每个字符对应的原始向量和目标向量,将所述每个字符对应的原始向量输入至所述至少两个堆栈层;通过所述至少两个堆栈层依次对每个字符对应的原始向量进行处理,得到每个字符对应的特征向量,其中,每个所述堆栈层中的注意力头的数量根据堆栈层的连接方式逐级递减;计算每个字符对应的特征向量和目标向量之间的损失值,确定目标损失值;根据所述目标损失值调整所述语言表征模型的参数以训练所述语言表征模型,通过本申请提供的装置,在底层的堆栈层中设置较多的注意力头数使得模型主要集中与学习目标文本语句的内部结构,在顶层的堆栈层中设置较少的注意力头以降低模型复杂度,通过逐层递减堆栈层的多头注意力层中的注意力头数,精简了语音表征模型的体积,同时还保证了语音表征模型的模型效果。

与上述神经网络机器翻译方法实施例相对应,本说明书还提供了神经网络机器翻译装置实施例,图12示出了本说明书一个实施例的神经网络机器翻译装置的结构示意图。如图12所示,该装置包括:

向量生成模块1202,被配置为获取待翻译语句并生成所述待翻译语句中每个字符对应的原始向量;

向量输入模块1204,被配置为将所述待翻译语句中每个字符对应的原始向量输入至机器翻译模型,其中,所述机器翻译模型是通过上述语言表征模型的训练方法训练获得的;

翻译输出模块1206,被配置为通过所述机器翻译模型获取所述待翻译语句中每个字符对应的目标字符,并根据所述待翻译语句中每个字符对应的目标字符生成所述待翻译语句对应的目标翻译语句。

需要说明的是,装置权利要求中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。

本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述语言表征模型的训练方法或所述神经网络机器翻译方法的步骤。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述语言表征模型的训练方法或所述神经网络机器翻译方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该计算机可读存储介质的技术方案与上述的语言表征模型的训练方法和神经网络机器翻译方法的技术方案属于同一构思,计算机可读存储介质的技术方案未详细描述的细节内容,均可以参见上述语言表征模型的训练方法和神经网络机器翻译方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 一种语言表征模型的训练方法及装置
  • 一种模型训练方法、装置和用于模型训练的装置
技术分类

06120112965266