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

生成式语言模型训练方法、装置及设备

文献发布时间:2024-04-18 20:01:55


生成式语言模型训练方法、装置及设备

技术领域

本发明涉及数据处理技术领域,尤其涉及一种生成式语言模型训练方法、装置及设备。

背景技术

随着移动互联网和人工智能技术的快速发展,对话系统的应用越来越广泛。对话系统能够通过人机交互方式为用户智能提供信息服务。其中,对话的生成是对话系统的一个关键环节。

面向开放领域的对话系统,主要任务是利用自然语言完成与人在任意话题上的交流,其具有话题范围广、表达方式多的特点。目前,面向开放领域的对话系统主要为检索式对话系统和生成式对话系统、耦合检索生成的对话系统。检索式对话系统是指从对话语料库中选择与当前提问对应的回复语句,但是系统的性能会受限于语料库的规模及质量,若当场景为预料库中没有涉及的场景时,无法得到准确的回复。生成式对话系统是指基于人与人的对话数据集训练而成的,使模型能够学习到人们对话历史的特征信息,以生成对应的响应,但是,生成式对话系统生成的响应多为普适回复。耦合检索生成的对话系统是指将检索式方法和生成式方法以串行或并行的方式进行结合,但是该方式往往会受检索式方法结果的影响较大,而削弱了生成式方法的作用,并不能很好的融合两种方法。

因此,现有的对话生成方法生成的响应存在准确度较低的问题。

发明内容

本发明提供一种生成式语言模型训练方法、装置及设备,用以解决现有的对话生成方法生成的响应存在准确度较低的问题。

第一方面,本发明提供一种生成式语言模型训练方法,所述方法包括:

将多组对话数据输入到生成式语言模型;

基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应;

根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度;

根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新。

可选的,所有组对话数据对应的对话上文的语义表征和对话下文的语义表征组成语义表征集;根据多组对话数据对应的语义表征,确定互信息矩阵,包括:

针对所述语义表征集中的每一语义表征,计算该语义表征与所述语义表征集中除该语义表征以外的其它每一语义表征的內积;

根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵。

可选的,一个语义表征集对应的内积形成内积矩阵;根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵,包括:

分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作;

根据各行或各列数据对应的归一化操作的结果确定所述互信息矩阵。

可选的,根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新,包括:

根据所述互信息矩阵和对应的参考互信息矩阵确定第一损失值;

根据所述预测响应和对应的对话下文确定第二损失值;

计算所述第一损失值和所述第二损失值的求和结果,根据所述求和结果对所述生成式语言模型进行更新。

可选的,所述参考互信息矩阵中任一对话上文的语义表征和对应的对话下文的语义表征的內积大于该对话上文的语义表征与其他语义表征的內积;所述其他语义表征为除与该对话上文对应的对话下文的语义表征以外的语义表征。

可选的,基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,包括:

针对每一组对话数据,根据所述对话上文和所述对话下文生成第一输入数据和第二输入数据;其中,所述第一输入数据为将所述对话下文拼接在所述对话上文之后得到的数据;所述第二输入数据为将所述对话上文拼接在所述对话上文之后得到的数据;

将所述每一组对话数据对应的第一输入数据和第二输入数据分别输入到所述生成式语言模型;

将与所述第一输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话上文的语义表征;将所述第二输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话下文的语义表征。

可选的,分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作,包括:

对所述内积矩阵中的对角线位置的内积进行掩码操作,得到掩码操作后的内积矩阵;

分别对所述掩码操作后的内积矩阵中的每一行或每一列的内积进行归一化操作。

第二方面,本发明提供一种生成式语言模型训练装置,所述装置包括:

输入模块,用于将多组对话数据输入到生成式语言模型;

第一确定模块,用于基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应;

第二确定模块,用于根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度;

更新模块,用于根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新。

第三方面,本发明提供一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的方法。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现第一方面任一项所述的方法。

第五方面,本发明提供一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的方法。

本发明提供的一种生成式语言模型训练方法、装置及设备,所述方法包括:将多组对话数据输入到生成式语言模型;基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应;根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度;根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新,通过基于互信息矩阵对模型进行更新,使得模型输出的预测响应与对话上文的语义表征之间的互信息增大,减少输出普适回复的预测响应,从而提高生成的响应的准确度。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明实施例提供的一种应用场景示意图;

图2为本发明实施例提供的一种生成式语言模型训练方法的流程示意图;

图3为本发明实施例提供的一种采用生成式语言模型获取语义表征和预测响应的示意图;

图4为本发明实施例提供的一种调整注意力分配系数的示意图;

图5为本发明实施例提供的一种生成互信息矩阵的示意图;

图6为本发明实施例提供的一种与图5对应的参考互信息矩阵的示意图;

图7为本发明实施例提供的一种生成式语言模型训练装置的结构示意图;

图8为本发明实施例提供的一种电子设备的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1为本发明实施例提供的一种应用场景示意图,如图1所示,当用户存在闲聊需求时,可以与web聊天机器人进行聊天,当用户发送消息后,网页处理器可以获取该消息,并将该消息传输给后台服务器,后台服务器中设置有对话系统,可以根据用户发送的消息生成响应并输出,并通过页面进行展示,该对话系统是基于生成式语言模型实现的。

现有的对话系统,一般为检索式对话系统、生成式对话系统或耦合检索生成的对话系统。对于检索式对话系统一般会根据语境从对话预料库(语境加回复组成)中检索得到规模较小的候选集,再从候选集中选择合适的回复作为该语境下的回复。该方法通常会受限于对话语料库的规模及质量。而生成式对话系统由于对话预料库中普适回复所占比例较大,因此生成的响应多为普适回复,而普适回复会使得对话系统准确度降低,同时用户体验受损。耦合检索生成的会话系统通常为串行或并行的方式将两种方法进行融合,该方法受检索式方法结果的影响较大,不能很好的将两种方法融合。比如,并行的方式是指将两种方法得到的响应作为不同的备选项,两种结果之间不会互相影响,示例性的,如果检索得到的响应的分值高于阈值,则以检索式响应作为最终结果,否则返回生成式方法得到的结果。

鉴于上述问题,本发明提供的生成式语言模型训练方法,通过检索的方法的思想来增强生成算法的能力,即通过对生成式语言模型的训练方法进行改进,在进行训练时不仅基于预测响应对模型进行训练,还基于表示多组对话数据对应的语义表征之间的关联程度的互信息矩阵对模型进行训练,使得输出的响应与输入的对话上文之间的互信息增加,也就是实现训练后的模型减少输出普适回复的情形(例如:我不知道,谢谢,好的等),提高生成的响应的准确度。

图2为本发明实施例提供的一种本发明实施例提供的一种生成式语言模型训练方法的流程示意图;如图2所示,所述方法包括:

步骤S201、将多组对话数据输入到生成式语言模型。

其中,可以在图1所示的后台服务器中设置生成式语言模型,并预先对该生成式语言模型进行训练,在训练完毕后使用该训练后的生成式语言模型输出响应。

在对模型进行训练时,可以先获取多组对话数据,将多组对话数据输入到生成式语言模型中。其中,获取的多组对话数据来自于多种开放式闲聊语料库。

在进行训练时,可以将获取的所有对话数据划分为多个批次,基于每一批次的多组对话数据对模型进行训练。即基于每一批次的多组对话数据可以执行步骤S201至步骤S204,直至满足停止训练的条件,如达到训练次数,则确定所述生成式语言模型训练完毕。

其中,对话数据包括对话上文和对话下文,根据对话上文和对话下文可以构造输入数据,构造的输入数据不仅包含对话上文和对话下文,还包括开始标识符CLS和分割标识符SEP。开始标识符表示输入数据的起始,分割标识符表示对输入的每两句话进行分割。

此处的生成式语言模型是指改进的bert(Bidirectional EncoderRepresentations from Transformer)模型。

传统的bert模型为基于自编码式预训练模型或自回归式预训练模型,自编码式预训练模型是指在生成对话历史的语义表征或者在输出预测响应时,可以根据上下文来确定。也就是说,在生成对话历史的语义表征时,根据输入的完整对话上文来确定,示例性的,可以根据“CLS你喝啥SEP”来确定;在输出预测响应时,根据“CLS你喝啥SEP白开水”来确定,但是在预测响应时,实际上是不能根据实际的输出来进行预测的。自编码式预训练模型更适合进行语言理解,而不适合进行语言生成。

自回归式预训练模型是指在生成对话历史的语义表征或预测响应时,仅能根据上文数据来确定,那么在生成对话历史的语义表征时,则无法生成准确的语义表征,相当于将“你喝啥”也进行了预测,而该部分不需要预测。因此,自回归式预训练模型也不适合应用在该对话系统中。

图3为本发明实施例提供的一种采用生成式语言模型获取语义表征和预测响应的示意图,如图3所示,改进的bert模型(生成式语言模型)为融合自编码式预训练模型和自回归式预训练模型,在生成对话历史的语义表征(输出的第一个方框)时,基于自编码式预训练模型来实现;在生成预测响应时,基于自回归式预训练模型来实现。

在生成对话历史的语义表征(输出的第一个方框)时,会根据输入对话上文的上下文来确定,实现准确理解对话历史数据。输出的第一个方框为与CLS标识符对应的输出向量,该向量可以公平的融合对话上文中各个词的语义信息。在生成预测响应时,仅根据上文数据来确定,即在生成“白”时,仅根据“CLS你喝啥SEP”来确定,在生成“开”时,仅根据“CLS你喝啥SEP白”来确定,实现对输出数据的预测。

其中,可以通过调整注意力分配系数来实现对bert模型的改进,对现有的注意力分配系数增加变量M,通过设置每一位置对应的M的数值为0或负无穷,实现得到改进后的bert模型。将生成对话历史的语义表征部分的M设置为0;图4为本发明实施例提供的一种调整注意力分配系数的示意图;如图4所示,横向表示输入,纵向表示隐藏层的输出和模型的预测响应,将涂有阴影部分对应的注意力分配系数中的M值设置为0,将其余部分对应的注意力分配系数中的M值设置为负无穷。其中,设置为0时,表示在生成隐藏层输出的对话上文的语义表征时,可以看到所有的对话上文。在输出预测响应时,仅可以看到在该字符之前的输入,如在预测“开”时,仅可能看到“CLS你喝啥SEP白”,而看不到“开水”。

通过对生成式语言模型的改进可以使得隐藏层输出准确的对话上文的语义表征,同时,使得模型具备语言生成能力。

步骤S202、基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应。

在将多组对话数据输入到生成式语言模型后,生成式语言模型的隐藏层可以输出每一组对话数据对应的语义表征。每一组对话数据对应的语义表征包括对话上文的语义表征和对话下文的语义表征。

示例性的,对于单轮对话数据,对话上文是“你喝啥”,对话下文是“白开水”,则需要分别获取“你喝啥”和“白开水”的语义表征。对于多轮对话数据,如对话轮次为N,则对话上文为包含N-1轮的对话数据以及第N轮对话的对话上文的数据;对话下文为第N轮对话的对话下文。

可选的,基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,包括:

针对每一组对话数据,根据所述对话上文和所述对话下文生成第一输入数据和第二输入数据;其中,所述第一输入数据为将所述对话下文拼接在所述对话上文之后得到的数据;所述第二输入数据为将所述对话上文拼接在所述对话上文之后得到的数据;将所述每一组对话数据对应的第一输入数据和第二输入数据分别输入到所述生成式语言模型;将与所述第一输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话上文的语义表征;将所述第二输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话下文的语义表征。

其中,在生成语义表征时,仅可以生成输入到模型中的对话上文的语义表征。因此,为了获取一组对话数据中对话上文和对话下文分别对应的语义表征,可以对输入数据进行构造。

具体的,在生成对话上文的语义表征时,可以将一组对话数据中对话下文拼接在对话上文之后以得到第一输入数据。在生成对话下文的语义表征时,可以将一组对话数据中对话上文拼接在对话下文之后以得到第二输入数据。示例性的,对话上文为“你喝啥”,对话下文为“白开水”,分别记为SENT_A和SENT_B,那么针对一组对话数据,对应的第一输入数据为[CLS]SENT_A[SEP]SENT_B[SEP];对应的第二输入数据为[CLS]SENT_B[SEP]SENT_A[SEP];将第一输入数据和第二输入数据分别输入到生成式语言模型中。

在将第一输入数据和第二输入数据分别输入到模型中后可以得到对话上文的语义表征和对话下文的语义表征。其中,输入到模型的是第一输入数据时,得到的语义表征为对话上文的语义表征,输入到模型的是第二输入数据时,得到的语义表征为对话下文的语义表征。当对话数据为“你喝啥,白开水”时,通过该步骤可以得到“你喝啥”的语义表征和“白开水”的语义表征。

通过上述构造两种输入数据的方式,可以准确得到对话上文的语义表征和对话下文的语义表征,同时具有操作简单的优点。

此外,还需要获取每一组对话数据对应的预测响应,可以获取每一第一输入数据对应的预测响应。示例性的,当输入“CLS你喝啥SEP白开水SEP”时,可以根据“你喝啥”的语义表征,得到预测响应。

步骤S203、根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度。

得到一个批次的多组对话数据对应的语义表征后,可以根据语义表征计算互信息矩阵,互信息矩阵中的每一数值表示两个语义表征的相关程度。其中,当一个批次的对话数据为N组时,对应的互信息矩阵的大小为2N*2N。

此处的对话上文的语义表征或对话下文的语义表征为多维向量,通过对向量运算可以得到两个向量之间的互信息。当互信息越大时表示两个语义表征的相关程度越大,当互信息越小时表示两个语义表征的相关程度越小。

图5为本发明实施例提供的一种生成互信息矩阵的示意图,其中,语义表征1对应一组对话数据的对话上文,语义表征2对应该组对话数据的对话下文,即语义表征1和语义表征2相匹配,语义表征1和其余语义表征不匹配。同样的,语义表征3和语义表征4相匹配,语义表征3与其余语义表征不匹配。根据每一语义表征的向量可以计算出矩阵A,该矩阵包含16个数据。

该步骤可以体现检索的思想,即从多个语义表征中筛选与某一语义表征互信息最高的语义表征,从而对基于生成式的方法生成的响应来说,由于普适回复之类的响应通常与对话上文的互信息较低,就会减少生成普适回复之类的响应。

步骤S204、根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新。

其中,在获取一个批次的多组对话数据对应的互信息矩阵和预测响应后,可以根据互信息矩阵和预测响应对生成式语言模型进行更新。具体的,可以根据互信息矩阵和预测响应计算损失值,根据损失值对生成式语言模型进行更新。

具体的,对模型进行更新的过程可以为进行梯度下降,将损失值进行误差反向传播,从而更新整个生成式语言模型的参数,参数包含改进后的bert模型的参数,如各个隐藏层之间的参数以及隐藏层与输出层(输出预测响应)之间的参数;还包括生成互信息矩阵时的全连接层的参数,通过对参数的更新使得训练后的模型可以减少输出普适回复的预测响应。

实际中,可以先基于大量的训练数据对模型进行训练,将所有训练数据划分为多个批次,针对每一批次可以计算该批次中每一组对话数据的语义表征,再计算该批次对应的互信息矩阵,基于互信息矩阵和预测响应确定损失值,从而基于损失值对模型进行训练。在得到训练好的模型后,可以进入推理阶段,在该阶段可以接收用户输入的对话上文,基于训练好的模型生成与对话上文对应的预测响应并输出。

本申请实施例提供的生成式语言模型训练方法,通过将多组对话数据输入到生成式语言模型,基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应,根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度,根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新,通过基于互信息矩阵对模型进行更新,使得模型输出的预测响应与对话上文的语义表征之间的互信息增大,减少输出普适回复的预测响应,从而提高生成的响应的准确度。

可选的,所有组对话数据对应的对话上文的语义表征和对话下文的语义表征组成语义表征集;根据多组对话数据对应的语义表征,确定互信息矩阵,包括:针对所述语义表征集中的每一语义表征,计算该语义表征与所述语义表征集中除该语义表征以外的其它每一语义表征的內积;根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵。

其中,在确定互信息矩阵时,可以先构造语义表征集,将一个批次的所有组对话数据对应的对话上文的语义表征和对话下文的语义表征放到一个集合中。在计算互信息矩阵时,可以先针对语义表征集中的一个语义表征计算与其余每一语义表征的內积。如图5所示,针对语义表征1,计算其分别与语义表征2,语义表征3和语义表征4的內积。其中,语义表征为一多维向量,通过计算两个向量的內积可以反映两个向量的相关程度。其中,在得到內积后,还需要进一步根据计算对应的互信息矩阵。

基于內积来确定互信息矩阵具有计算简单和准确的优点。

可选的,一个语义表征集对应的内积形成内积矩阵;根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵,包括:

分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作;根据各行或各列数据对应的归一化操作的结果确定所述互信息矩阵。

其中,一个批次对应的语义表征集的多个內积可以形成一个內积矩阵。在计算互信息矩阵时,可以对內积矩阵中的每一行或每一列进行归一化操作。其中,归一化操作可以为将每一行或每一列的数据经过softmax函数处理,以实现将每一行或每一列数据中每一数据映射为0至1之间的数据,且经过softmax函数处理后每一行或每一列中各个数据之和为1。其中,进行归一化操作后对应的矩阵可以看作为互信息矩阵。

通过将内积矩阵中的数值进行归一化操作,可以提升模型的收敛速度,且可以使所有语义表征的內积对模型参数的影响或贡献相差不大,不会受到个别语义表征的影响,提高训练后模型的精度。

可选的,根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新,包括:

根据所述互信息矩阵和对应的参考互信息矩阵确定第一损失值;根据所述预测响应和对应的对话下文确定第二损失值;计算所述第一损失值和所述第二损失值的求和结果,根据所述求和结果对所述生成式语言模型进行更新。

在根据互信息矩阵和参考互信息矩阵确定损失值时,可以计算两个损失值,第一损失值是根据实际确定的互信息矩阵与参考互信息矩阵以及损失函数确定的差值。基于该过程可以降低模型输出普适回复的可能性。

可选的,所述参考互信息矩阵中任一对话上文的语义表征和对应的对话下文的语义表征的內积大于该对话上文的语义表征与其他语义表征的內积;所述其他语义表征为除与该对话上文对应的对话下文的语义表征以外的语义表征。

图6为本发明实施例提供的一种与图5对应的参考互信息矩阵的示意图,如图6所示,语义表征1为对话上文的语义表征,语义表征2为对话下文的语义表征,由于语义表征1和语义表征2相匹配,则二者对应的內积较大;语义表征1和其余语义表征不匹配,则语义表征1与其余每一语义表征的內积较小。即增加相匹配的两个语义表征之间的相似度,降低不匹配的两个语义表征之间的相似度。

示例性的,参考互信息矩阵中语义表征1和语义表征2的互信息可以为1,语义表征1与语义表征3或语义表征4的互信息为0。

通过计算互信息矩阵和对应的参考互信息矩阵之间的差值来确定第一损失函数,并基于第一损失函数对生成式语言模型进行更新,使得在训练的过程中第一损失函数越来越小,即实际计算的互信息矩阵趋近于参考互信息矩阵,使得模型输出的与对话上文的互信息较高的预测响应,减少输出普适回复的预测响应。

此外,在对模型进行训练时,还需要基于预测响应和对话下文确定的第二损失值来进行模型更新。其中,第二损失值为根据预测响应和对话下文以及损失函数确定的差值。示例性的,当输入的一组对话数据为“CLS你喝啥SEP白开水”时,若预测响应为“北京”,则计算“北京”与“白开水”之间的损失值。

在计算第一损失值和第二损失值后,根据二者的求和结果对生成式语言模型进行更新。

可选的,可以直接对第一损失值和第二损失值求和以得到求和结果。

可选的,确定与第一损失值对应的第一权重和与第二损失值对应的第二权重,将第一损失值与第一权重相乘得到第一相乘结果,将第二损失值与第二权重相乘得到第二相乘结果,将第一相乘结果和第二相乘结果之和确定为求和结果。

其中,第一权重和第二权重可以根据训练阶段进行调整,示例性的,在训练前期,设置第二权重大于第一权重,以使得模型可以快速输出与对话上文对应的预测响应;在训练后期,设置第一权重大于第二权重,使得可以对模型的参数进一步调整,以降低模型输出普适回复的可能性。

通过上述方法使得模型输出与对话上文对应的响应,并且能够在输出与对话上文对应的响应的基础上,还可以减少输出普适回复的可能性,提高输出的预测响应与对话上文之间的相似度。

可选的,分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作,包括:

对所述内积矩阵中的对角线位置的内积进行掩码操作,得到掩码操作后的内积矩阵;分别对所述掩码操作后的内积矩阵中的每一行或每一列的内积进行归一化操作。

其中,为了便于计算內积,可以将一个批次对应的多组对话数据的语义表征生成两个矩阵,第一个矩阵大小为M*N,M表示语义表征的数量,N表示每一语义表征的维度;第二个矩阵的大小为N*M,将第一矩阵和第二矩阵直接相乘可以得到M*M的內积矩阵,可以提高计算內积矩阵的速度。

但是,基于上述方式计算的內积矩阵中包含某一语义表征与自身的內积,该內积不参与计算互信息矩阵,不能将其趋于1或0,需要将其掩码掉。具体的,可以通过掩码操作屏蔽掉內积矩阵的对角线位置的数值,从而基于掩码操作后的內积矩阵进行归一化操作。

通过上述方式,可以在提高计算內积矩阵的速度前提下,保证确定的互信息矩阵的准确性,从而提高对生成式语言模型训练的精度,提高模型输出的预测响应的准确度。

在实际中,可以以网页对话系统或语音对话系统的形式向用户提供面向开放领域或话题的闲聊式聊天服务。对于网页对话系统,用户需要打开人机交互页面即可实现与聊天机器人聊天,聊天机器人在接收到用户的输入信息后,经过部署在后台服务器的生成式语言模型的计算可以得到对应的回复。其中,对于多轮对话的场景,针对某一轮次用户的输入,还可以将之前多轮的聊天会话作为对话上文的一部分,以准确预测该轮对话对应的回复。

此外,为了验证本申请训练方法的优劣,还设置了两组生成方法的对比模型:Seq2Seq-Att和Transfor。其中,Transfor是指原始Transformer的架构(原始的bert模型),即包含6个编码器和6个解码器;Seq2Seq-Att是指在基础的Seq2Seq的框架下增加了注意力机制,采用的是循环神经网络GRU(Gate Recurrent Unit)作为编码器以及解码器的基础网络;本申请的模型采用的是改进后的bert模型。其中,三种模型对应的词嵌入维度相同,所有模型的训练维度均为10个轮次,训练尺寸大小以及学习率也均设置为相同数值。通过上述设置方式,从生成文本的质量、多样性和流畅度等三个维度对各个模型进行了评估。质量和多样性的评估基于词重叠率的方法来确定,流畅度采用语言困惑度来确定,评估结果如下表所示。

表中BLEU-2和BLEU-4表示两种不同权重的累计BLEU(Bilingual EvaluationUnderstudy,双语评估基础);Dist-1和Dist-2分别表示基于生成回复的单字符的种类数和双字符的种类数确定的多样性。

如上表所示,本申请对应的评估结果在回复质量和多样性上相比于Transfor模型均有所提高,且相对于Seq2Seq-Att模型在回复质量和多样性上均有所提高。

图7为本发明实施例提供的一种生成式语言模型训练装置的结构示意图,如图7所示,所述装置70包括:

输入模块701,用于将多组对话数据输入到生成式语言模型;

第一确定模块702,用于基于所述生成式语言模型,确定每一组对话数据中对话上文和对话下文分别对应的语义表征,以及每一组对话数据对应的预测响应;

第二确定模块703,用于根据多组对话数据对应的语义表征,确定互信息矩阵;所述互信息矩阵中的每一数值用于表示对应的两个语义表征之间的相关程度;

更新模块704,用于根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新。

可选的,所有组对话数据对应的对话上文的语义表征和对话下文的语义表征组成语义表征集;第二确定模块703在根据多组对话数据对应的语义表征,确定互信息矩阵时,具体用于:

针对所述语义表征集中的每一语义表征,计算该语义表征与所述语义表征集中除该语义表征以外的其它每一语义表征的內积;

根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵。

可选的,一个语义表征集对应的内积形成内积矩阵;第二确定模块703在根据计算出的多个內积,确定所述多组对话数据对应的互信息矩阵时,具体用于:

分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作;

根据各行或各列数据对应的归一化操作的结果确定所述互信息矩阵。

可选的,更新模块704在根据所述互信息矩阵和多组对话数据对应的预测响应,对所述生成式语言模型进行更新时,具体用于:

根据所述互信息矩阵和对应的参考互信息矩阵确定第一损失值;

根据所述预测响应和对应的对话下文确定第二损失值;

计算所述第一损失值和所述第二损失值的求和结果,根据所述求和结果对所述生成式语言模型进行更新。

可选的,所述参考互信息矩阵中任一对话上文的语义表征和对应的对话下文的语义表征的內积大于该对话上文的语义表征与其他语义表征的內积;所述其他语义表征为除与该对话上文对应的对话下文的语义表征以外的语义表征。

可选的,基于所述生成式语言模型,第一确定模块702在确定每一组对话数据中对话上文和对话下文分别对应的语义表征时,具体用于:

针对每一组对话数据,根据所述对话上文和所述对话下文生成第一输入数据和第二输入数据;其中,所述第一输入数据为将所述对话下文拼接在所述对话上文之后得到的数据;所述第二输入数据为将所述对话上文拼接在所述对话上文之后得到的数据;

将所述每一组对话数据对应的第一输入数据和第二输入数据分别输入到所述生成式语言模型;

将与所述第一输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话上文的语义表征;将所述第二输入数据对应的所述生成式语言模型的隐藏层的输出确定为对话下文的语义表征。

可选的,第二确定模块703在分别对所述内积矩阵中的每一行或每一列的内积进行归一化操作时,具体用于:

对所述内积矩阵中的对角线位置的内积进行掩码操作,得到掩码操作后的内积矩阵;

分别对所述掩码操作后的内积矩阵中的每一行或每一列的内积进行归一化操作。

本申请实施例提供的生成式语言模型训练装置,可用于执行上述图1至图6所示实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图8为本申请实施例提供的一种电子设备的结构示意图。如图8所示,本实施例的电子设备可以包括:

至少一个处理器801;以及

与所述至少一个处理器通信连接的存储器802;

其中,所述存储器802存储有可被所述至少一个处理器801执行的指令,所述指令被所述至少一个处理器801执行,以使所述电子设备执行如上述任一实施例所述的方法。

可选地,存储器802既可以是独立的,也可以跟处理器801集成在一起。

本实施例提供的电子设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现前述任一实施例所述的方法。

本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例所述的方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 一种针对金融领域中医疗行业新闻事件的抽取方法
  • 金融领域舆情监控中的事件抽取方法、装置和计算机设备
技术分类

06120116570254