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

语言处理方法、装置及存储介质

文献发布时间:2023-06-19 18:37:28


语言处理方法、装置及存储介质

技术领域

本申请涉及自然语言处理(Natural Language Process,NLP)领域,尤其涉及一种语言处理方法、装置及存储介质。

背景技术

语言模型(Language Model,LM)是对自然语言的文本序列的建模,目前一般使用神经网络进行建模。语言处理方法包括通过神经网络模型来预测一个自然语言的文本序列出现的概率,以条件生成语言模型为例,即给定自然语言文本序列的前半段,来预测后半段自然语言文本出现的概率,从而可以通过语言模型来解决一些自然语言处理任务。比如,自然语言处理任务为预测一句评价是好评还是差评,则在获取到给定的评价后,通过语言模型预测“这是一条好评”的概率和“这是一条差评”的概率,根据预测的概率大小确定该评价是好评还是差评。

语言模型的预训练(英文:Pre-train)是采用大量自然语言的文本序列对语言模型进行训练的过程。预训练语言模型是通过预训练方式获得的预测一个自然语言文本序列出现的概率的语言模型。但是,直接使用预训练语言模型(Pre-trained Language Model,PLM)来解决自然语言处理任务,效果一般较差。因此,针对某个具体的自然语言处理任务,根据该自然语言处理任务的训练样本对预训练语言模型进行全参微调,使得全参微调后的语言模型能够很好地解决该自然语言处理任务。但是,全参微调既需要训练样本又需要大量计算资源,同时全参微调后的模型参数的保存也需要占用存储空间。那么,针对大量的自然语言处理任务,则需要消耗大量的资源。随着语言模型的参数量越来越大,以及大规模语言模型的出现,使得全参微调的资源消耗量陡增。因此,为了提高直接使用预训练语言模型来解决自然语言处理任务的效果,目前通常采用的方式为:在每个待预测文本前拼接提示信息,然后将待预测文本和拼接的提示信息一起送入预训练语言模型中进行预测。

基于提示信息的方法,在解决自然语言处理任务上,不需要使用计算资源进行微调,所有的自然语言处理任务共用一个预训练语言模型,既节省了计算资源,又节省了存储空间。但是,此方法在自然语言处理任务上的效果还有很大的提升空间,并且效果还依赖提示信息的长度。同时,提示信息的长度严重受限于预训练语言模型的输入最大长度,无法验证更长的提示信息是否能带来更好的语言处理效果。

发明内容

有鉴于此,提出了一种语言处理方法、装置及存储介质。本申请实施例设计并实现了一种方案,将任意长度的第一提示信息编码成固定长度的第二提示信息,将第二提示信息与待处理文本进行拼接,一起送入预训练语言模型进行处理,解决了提示信息的长度严重受限于预训练语言模型的输入最大长度的问题,同时提升了预训练语言模型应用在自然语言处理任务上的效果。在解决自然语言处理任务上,保留了上述基于提示信息的方法的优势,同时可以使用更长的提示信息,并取得更好的语言处理效果。

第一方面,本申请的实施例提供了一种语言处理方法,所述方法包括:

获取目标语言处理任务的待处理文本和第一提示信息,所述第一提示信息为任意长度的文本序列,所述第一提示信息包括所述目标语言处理任务的描述信息和/或任务样例;

将所述第一提示信息编码成第二提示信息,所述第二提示信息为固定长度的向量组;

将所述第二提示信息与所述待处理文本进行拼接处理,得到拼接后的待处理文本;

将所述拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理。

在该实现方式中,通过获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息和/或任务样例;将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组;将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本;将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理;解决了提示信息的长度严重受限于预训练语言模型的输入最大长度的问题,可以在基于提示信息的该方法中使用更长的第一提示信息,提升了语言模型应用在自然语言处理任务上的语言处理效果。

在一种可能的实现方式中,所述将所述第一提示信息编码成第二提示信息,包括:

根据所述第一提示信息,调用预先训练完成的编码模型输出得到所述第二提示信息,所述编码模型用于将任意长度的文本序列编码成固定长度的向量组。

在该实现方式中,根据第一提示信息,调用预先训练完成的编码模型输出得到第二提示信息,从而将任意长度的文本序列编码成固定长度的向量组,即将自然语言文本序列中蕴含的信息融合到定长的一个向量组中,解决了拼接在待处理文本中的提示信息的长度受限的问题。

在另一种可能的实现方式中,所述编码模型包括目标生成器和目标感知器,所述根据所述第一提示信息,调用预先训练完成的编码模型输出得到所述第二提示信息,包括:

将所述第一提示信息进行向量化得到第一向量组;

将所述第一向量组和目标模型参数输入至所述目标生成器中,输出得到固定长度的第二向量组,所述目标生成器包括用于进行向量融合的神经网络;

将所述第二向量组输入至目标感知器中,输出得到固定长度的所述第二提示信息,所述目标感知器包括用于进行向量维度变换的神经网络。

在该实现方式中,将第一提示信息进行向量化得到第一向量组;将第一向量组和目标模型参数输入至目标生成器中,输出得到固定长度的第二向量组,目标生成器包括用于进行向量融合的神经网络;将第二向量组输入至目标感知器中,输出得到固定长度的第二提示信息,目标感知器包括用于进行向量维度变换的神经网络;提供了编码模型的一种可能的网络结构设计,以便将任意长度的文本序列编码成固定长度的向量组。

在另一种可能的实现方式中,所述编码模型还包括文本编码器,所述第一提示信息包括多个任务样例,所述将所述第一提示信息进行向量化得到第一向量组,包括:

将所述第一提示信息进行拆分得到所述多个任务样例;

对于所述多个任务样例中的每个任务样例,将所述任务样例输入至所述文本编码器中,输出得到第三向量组,所述文本编码器包括用于将文本序列进行向量化的神经网络;

将所述多个任务样例各自对应的所述第三向量组进行合并,得到所述第一向量组。

在该实现方式中,将第一提示信息进行拆分得到多个任务样例;对于多个任务样例中的每个任务样例,将任务样例输入至文本编码器中,输出得到第三向量组,文本编码器包括用于将文本序列进行向量化的神经网络;将多个任务样例各自对应的第三向量组进行合并,得到第一向量组;提供了一种可能的将第一提示信息进行向量化的方法,以便后续可以基于向量化提示即第二提示信息使用语言模型。

在另一种可能的实现方式中,所述编码模型还包括文本编码器,所述将所述第一提示信息进行向量化得到第一向量组,包括:

将所述第一提示信息输入至所述文本编辑器中,输出得到所述第一向量组,所述文本编码器包括用于将文本序列进行向量化的神经网络。

在该实现方式中,将第一提示信息输入至文本编辑器中,输出得到第一向量组,文本编码器包括用于将文本序列进行向量化的神经网络;提供了另一种可能的将第一提示信息进行向量化的方法,以便后续可以基于向量化提示即第二提示信息使用语言模型。

在另一种可能的实现方式中,所述方法还包括:

获取训练样本集,所述训练样本集包括至少一组样本数据组,每组所述样本数据组包括:样本文本、第一样本提示信息和预先标注的正确语言处理结果;

对于所述至少一组样本数据组中的每组样本数据组,将所述第一样本提示信息输入原始参数模型得到第二样本提示信息;

将所述第二样本提示信息与样本文本进行拼接处理,并将拼接后的样本文本输入至所述目标语言模型中,输出得到训练结果;

将所述训练结果与所述正确语言处理结果进行比较,得到计算损失,所述计算损失用于指示所述训练结果与所述正确语言处理结果之间的误差;

根据所述至少一组样本数据组各自对应的计算损失,采用误差反向传播算法训练得到所述编码模型。

在该实现方式中,获取训练样本集,训练样本集包括至少一组样本数据组,每组样本数据组包括:样本文本、第一样本提示信息和预先标注的正确语言处理结果;对于至少一组样本数据组中的每组样本数据组,将第一样本提示信息输入原始参数模型得到第二样本提示信息;将第二样本提示信息与样本文本进行拼接处理,并将拼接后的样本文本输入至目标语言模型中,输出得到训练结果;将训练结果与正确语言处理结果进行比较,得到计算损失,计算损失用于指示训练结果与正确语言处理结果之间的误差;根据至少一组样本数据组各自对应的计算损失,采用误差反向传播算法训练得到编码模型;一方面,训练得到的编码模型可以实现将任意长度的文本序列编码成固定长度的向量组的效果,同时提升了语言模型应用在自然语言处理任务上的效果;另一方面,编码模型经过一次训练可用于解决多种自然语言处理任务,无需针对每个自然语言处理任务,单独进行额外的训练,即训练得到的编码模型具有在不同的自然语言处理任务间迁移的效果,比如使用任务B、或者任务C、或者任务D训练得到的编码模型,应用在任务A上也取得很好的效果。

第二方面,本申请的实施例提供了一种语言处理装置,所述装置包括:

获取单元,用于获取目标语言处理任务的待处理文本和第一提示信息,所述第一提示信息为任意长度的文本序列,所述第一提示信息包括所述目标语言处理任务的描述信息和/或任务样例;

编码单元,用于将所述第一提示信息编码成第二提示信息,所述第二提示信息为固定长度的向量组;

拼接单元,用于将所述第二提示信息与所述待处理文本进行拼接处理,得到拼接后的待处理文本;

处理单元,用于将所述拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理。

在一种可能的实现方式中,所述编码单元,还用于:

根据所述第一提示信息,调用预先训练完成的编码模型输出得到所述第二提示信息,所述编码模型用于将任意长度的文本序列编码成固定长度的向量组。

在另一种可能的实现方式中,所述编码模型包括目标生成器和目标感知器,所述编码单元,还用于:

将所述第一提示信息进行向量化得到第一向量组;

将所述第一向量组和目标模型参数输入至所述目标生成器中,输出得到固定长度的第二向量组,所述目标生成器包括用于进行向量融合的神经网络;

将所述第二向量组输入至目标感知器中,输出得到固定长度的所述第二提示信息,所述目标感知器包括用于进行向量维度变换的神经网络。

在另一种可能的实现方式中,所述编码模型还包括文本编码器,所述第一提示信息包括多个任务样例,所述编码单元,还用于:

将所述第一提示信息进行拆分得到所述多个任务样例;

对于所述多个任务样例中的每个任务样例,将所述任务样例输入至所述文本编码器中,输出得到第三向量组,所述文本编码器包括用于将文本序列进行向量化的神经网络;

将所述多个任务样例各自对应的所述第三向量组进行合并,得到所述第一向量组。

在另一种可能的实现方式中,所述编码模型还包括文本编码器,所述编码单元,还用于:

将所述第一提示信息输入至所述文本编辑器中,输出得到所述第一向量组,所述文本编码器包括用于将文本序列进行向量化的神经网络。

在另一种可能的实现方式中,所述装置还包括:训练单元;所述训练单元,用于:

获取训练样本集,所述训练样本集包括至少一组样本数据组,每组所述样本数据组包括:样本文本、第一样本提示信息和预先标注的正确语言处理结果;

对于所述至少一组样本数据组中的每组样本数据组,将所述第一样本提示信息输入原始参数模型得到第二样本提示信息;

将所述第二样本提示信息与样本文本进行拼接处理,并将拼接后的样本文本输入至所述目标语言模型中,输出得到训练结果;

将所述训练结果与所述正确语言处理结果进行比较,得到计算损失,所述计算损失用于指示所述训练结果与所述正确语言处理结果之间的误差;

根据所述至少一组样本数据组各自对应的计算损失,采用误差反向传播算法训练得到所述编码模型。

第三方面,本申请的实施例提供了一种语言处理装置,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令时实现上述的方法。

第四方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的方法。

第五方面,本申请的实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可读代码,或者承载有所述计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述的方法。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。

图1示出了相关技术中一种可能的使用预训练语言模型解决自然语言处理任务的示意图。

图2示出了相关技术中另一种可能的使用预训练语言模型解决自然语言处理任务的示意图。

图3示出了本申请一个示例性实施例提供的系统架构的结构示意图。

图4示出了本申请一个示例性实施例提供的计算设备的结构示意图。

图5示出了本申请一个示例性实施例提供的语言处理方法的流程图。

图6示出了本申请另一个示例性实施例提供的语言处理方法的流程图。

图7示出了本申请一个示例性实施例提供的数据收集和预处理的过程的示意图。

图8示出了本申请一个示例性实施例提供的编码模型的网络结构的示意图。

图9示出了本申请一个示例性实施例提供的合并向量组的过程的示意图。

图10示出了本申请一个示例性实施例提供的进行损失计算的过程的示意图。

图11示出了本申请另一个示例性实施例提供的进行损失计算的过程的示意图。

图12示出了本申请另一个示例性实施例提供的对目标语言处理任务进行处理的过程的示意图。

图13示出了本申请一个示例性实施例提供的语言处理装置的框图。

具体实施方式

以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。

首先,对本申请实施例涉及的一些名词进行介绍。

1、语言模型的预训练:采用大量自然语言的文本序列对语言模型进行训练的过程。

2、大规模的预训练语言模型(Large-scale Pre-trained Language Model):基于神经网络的语言模型,并且神经网络的参数量巨大。

3、训练样本(英文:sample):用于模型训练的数据。

4、微调(英文:fine-tuning):在预训练语言模型的基础上,采用特定的训练样本继续训练的过程。

5、全参微调(英文:full fine-tuning):语言模型的全部参数都可以进行调整的微调。

6、第一提示信息:也称为硬提示(hard prompt,HP),针对待处理的自然语言处理任务,对自然语言处理任务的描述信息和/或任务样例构成的文本序列。文本序列的长度则为第一提示信息的长度,更长的第一提示信息,则表示更多的任务样例,更丰富的任务相关信息。

7、第二提示信息:也称为软提示(英文:soft prompt):针对待解决的自然语言处理任务,一定数量的向量排列构成的矩阵。向量的个数则为第二提示信息的长度。

8、硬提示编码器(hard prompt encoder,HPE):将第一提示信息编码成第二提示信息的神经网络结构。在本案中,编码模型可以是HPE。

9、注意力机制(英文:attention mechanism):一种分析序列内部各部分或者不同序列间各部分之间相互重要性的装置。

10、Transformer:一种完全基于注意力机制的序列建模神经网络。

11、因果语言建模(causal language modeling,CLM):通过预测字符序列的下一个字符的方式进行模型训练。

相关技术中,随着预训练语言模型的参数量越来越大,直接使用预训练语言模型来解决自然语言处理任务的效果也越来越好。比如,预训练了一个1750亿参数的生成语言模型,预训练形式如下图1(a),然后基于如下方法直接使用这个模型来解决多种自然语言处理任务。将所有待处理的自然语言处理任务转换成文本生成的形式,如下图1(b)。使用任务描述信息构造提示信息,并拼接在每个待处理文本前,然后一起送入GPT3模型中进行预测,如图1(c)。使用任务描述信息和一个任务样例构造提示信息,并拼接在每个待处理文本前,然后一起送入GPT3模型中进行预测,如下图1(d)。使用任务描述信息和多个任务样例构造提示信息,并拼接在每个待处理文本前,然后一起送入GPT3模型中进行预测,如下图1(e)。在上述方法中,应用在自然语言处理任务上的效果还有很大的提升空间,和最好的效果还有较大差距。并且,随着提示信息中任务样例数的增加,预训练语言模型在自然语言处理任务上的效果逐步提升。但是提示信息的长度严重受限于预训练语言模型的输入最大长度,导致无法通过使用更长的提示信息获得更好的效果。

相关技术中,将预训练语言模型直接应用在自然语言处理任务上的效果还有很大的提升空间。因此,通过多任务学习来继续训练预训练语言模型,进而提升其以上述方法应用在自然语言处理任务上的效果。比如,将所有收集到的自然语言处理任务转换成文本生成的形式,然后分成两部分T和D,并且T中所有任务的类型都和D中所有任务的类型不同,如图2所示。使用T中所有任务的数据对预训练语言模型进行全参微调。基于微调后的预训练语言模型,使用上述方法对D中的所有任务进行预测。但是,最终的预测效果还有很大的提升空间,和最好的效果还有较大差距。此外,随着提示信息中任务样例数的增加,微调后的预训练语言模型在自然语言处理任务上的效果逐步提升。但是提示信息的长度严重受限于预训练语言模型的输入最大长度,导致无法通过使用更长的提示信息获得更好的效果。

为此,本申请实施例设计并实现了一种方案,将任意长度的第一提示信息编码成固定长度的第二提示信息,将第二提示信息与待处理文本进行拼接,一起送入预训练语言模型进行处理,解决了提示信息的长度严重受限于预训练语言模型的输入最大长度的问题,同时提升了预训练语言模型应用在自然语言处理任务上的效果。在解决自然语言处理任务上,保留了上述基于提示信息的方法的优势,同时可以使用更长的提示信息,并取得更好的语言处理效果。

本申请实施例提出了一种语言处理方法,通过将任意长度的第一提示信息编码成固定长度的第二提示信息,从而将预训练语言模型应用于解决自然语言处理任务。一方面,设计一种神经网络结构即编码模型,可以将任意长度的第一提示信息编码成固定长度的第二提示信息。另一方面,通过预训练和/或多任务学习的方式,联合编码模型和预训练语言模型进行训练。另一方面,针对每个自然语言处理任务,使用训练后的编码模型将第一提示信息编码成第二提示信息,将第二提示信息与待处理文本进行拼接处理,然后一起送入预训练语言模型进行预测。本申请实施例经过一次预训练和/或多任务学习之后,得到的编码模型可以直接应用在多种自然语言处理任务上,而无需额外的训练。

接着,对本申请涉及的应用场景进行介绍。

请参考图3,其示出了本申请一个示例性实施例提供的系统架构的结构示意图。该系统架构包括数据收集处理设备10、服务器11和客户端设备12,数据收集处理设备10与服务器11通过通信网络连接,服务器11与客户端设备12通过通信网络连接。其中,数据收集处理设备10和客户端设备12是可选的,数据收集处理设备10和客户端设备12可以直接由服务器11完成,服务器11可以是网络云服务。

数据收集处理设备10用于通过各种途径(人工输入,网络查找等方式)获取本方案所需的数据,传输至服务器11,执行本方案的方法后得到编码模型,联合预训练语言模型部署在服务器11。

客户端设备12用于收集自然语言处理任务的第一提示信息和待处理文本,传输至服务器11进行预测,服务器11再将预测结果传输回客户端设备12。

可选地,本申请实施例的应用场景为在解决多种自然语言处理任务时,可以使用同一个服务,而不需要根据任务的不同而定制不同的服务。

可选地,本申请实施例提供的方法用于使用一个服务解决多种自然语言处理任务的应用场景。涉及的产品包括使用计算资源搭建的解决自然语言处理任务的服务。示意性的,涉及的售卖形态包括向客户提供解决多种自然语言处理任务的云服务,或者搭载解决多种自然语言处理任务的服务的计算资源等。

本申请实施例提供了一种语言处理方法,执行主体为计算设备。请参考图4,其示出了本申请一个示例性实施例提供的计算设备的结构示意图。

该计算设备可以是终端或者服务器。终端包括移动终端或者固定终端,比如终端可以是手机、平板电脑、膝上型便携计算机和台式计算机等等。服务器可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

如图4所示,计算设备包括处理器41、存储器42以及通信接口43。本领域技术人员可以理解,图4中示出的结构并不构成对该计算设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器41是计算设备的控制中心,利用各种接口和线路连接整个计算设备的各个部分,通过运行或执行存储在存储器42内的软件程序和/或模块,以及调用存储在存储器42内的数据,执行计算设备的各种功能和处理数据,从而对计算设备进行整体控制。处理器41可以由CPU实现,也可以由图形处理器(Graphics Processing Unit,GPU)实现。

存储器42可用于存储软件程序以及模块。处理器41通过运行存储在存储器42的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统420、获取单元421、编码单元422、拼接单元423、处理单元424和至少一个功能所需的应用程序425(比如神经网络训练等)等;存储数据区可存储根据计算设备的使用所创建的数据等。存储器42可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random AccessMemory,SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM),可编程只读存储器(Programmable Read-Only Memory,PROM),只读存储器(Read Only Memory,ROM),磁存储器,快闪存储器,磁盘或光盘。相应地,存储器42还可以包括存储器控制器,以提供处理器41对存储器42的访问。

其中,处理器41通过运行获取单元421执行以下功能:获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息和/或任务样例;处理器41通过运行编码单元422执行以下功能:将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组;处理器41通过运行拼接单元423执行以下功能:将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本;处理器41通过运行处理单元424执行以下功能:将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理。

下面,采用几个示例性实施例对本申请实施例提供的语言处理方法进行介绍。

请参考图5,其示出了本申请一个示例性实施例提供的语言处理方法的流程图,本实施例以该方法用于图4所示的计算设备中来举例说明。该方法包括以下几个步骤。

步骤501,获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息和/或任务样例。

计算设备获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息,和/或,一个或多个任务样例。

步骤502,将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组。

计算设备将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组,第二提示信息为包括多个向量的向量组,第二提示信息的长度为多个向量的长度,即为固定长度。第二提示信息的长度小于第一提示信息的长度。

可选地,计算设备根据第一提示信息,调用预先训练完成的编码模型输出得到第二提示信息,编码模型用于将任意长度的文本序列编码成固定长度的向量组。

可选地,编码模型包括目标生成器和目标感知器,根据第一提示信息,调用预先训练完成的编码模型输出得到第二提示信息,包括:将第一提示信息进行向量化得到第一向量组;将第一向量组和目标模型参数输入至目标生成器中,输出得到固定长度的第二向量组,目标生成器包括用于进行向量融合的神经网络;将第二向量组输入至目标感知器中,输出得到固定长度的第二提示信息,目标感知器包括用于进行向量维度变换的神经网络。

在一种可能的实现方式中,编码模型还包括文本编码器,第一提示信息包括多个任务样例,将第一提示信息进行向量化得到第一向量组,包括:将第一提示信息进行拆分得到多个任务样例;对于多个任务样例中的每个任务样例,将任务样例输入至文本编码器中,输出得到第三向量组,文本编码器包括用于将文本序列进行向量化的神经网络;将多个任务样例各自对应的第三向量组进行合并,得到第一向量组。

在另一种可能的实现方式中,编码模型还包括文本编码器,将第一提示信息进行向量化得到第一向量组,包括:将第一提示信息输入至文本编辑器中,输出得到第一向量组,文本编码器包括用于将文本序列进行向量化的神经网络。

步骤503,将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本。

计算设备将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本。

可选地,计算设备将待处理文本转化为向量化的词嵌入,将第二提示信息拼接在词嵌入之前或者之后,得到拼接后的待处理文本。

步骤504,将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理。

可选地,计算设备将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理,该处理包括预测一个自然语言文本序列出现的概率。

可选地,计算设备获取自身存储的目标语言模型,或者从其他设备中获取目标语言模型。编码模型和目标语言模型的训练过程可参考下面实施例中的相关细节,在此先不介绍。

综上所述,计算设备通过获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息和/或任务样例;将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组;将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本;将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理;解决了提示信息的长度严重受限于预训练语言模型的输入最大长度的问题,可以在基于提示信息的该方法中使用更长的第一提示信息,提升了语言模型应用在自然语言处理任务上的语言处理效果。

本申请实施例提供的语言处理方法可以包括数据收集及预处理、编码模型的网络结构设计、编码模型和目标语言模型(比如编码模型为HPE,目标语言模型为PLM)的联合训练、基于编码模型和目标语言模型解决自然语言处理任务这四个部分,下面对这四个部分依次进行说明。

请参考图6,其示出了本申请另一个示例性实施例提供的语言处理方法的流程图,本实施例以该方法用于图1所示的计算设备中来举例说明。该方法包括以下几个步骤。

步骤601,进行数据收集及预处理。

可选地,计算设备获取自然语言处理任务的数据集,数据集包括网络下载的公开数据集和自行构建的数据集。针对每个自然语言处理任务的数据集,将数据处理成文本生成的形式。数据收集和预处理的过程如图7所示。针对每个预处理后的自然语言处理任务的数据集,从中随机采样目标比例(比如目标比例为1/10)的样本用于构造第一样本提示信息,构成的集合记作U,其余样本结合第一样本提示信息用于联合训练,构成的集合记作T。

第一样本提示信息包括语言处理任务的描述信息和/或任务样例。为了方便介绍,下面仅以第一样本提示信息包括多个任务样例为例进行介绍。从集合U中随机采样n个样本进行拼接,即构成了一个第一样本提示信息。因此,对于每个收集到的自然语言处理任务,都可以有多种不同的第一样本提示信息,所构成的第一样本提示信息的集合记作H。

步骤602,确定编码模型的网络结构。

为了将包括多个文本序列的第一提示信息编码成固定长度的第二提示信息,设计编码模型的网络结构。在一种可能的实现方式中,编码模型为如图8所示的一种网络结构。编码模型包括文本编码器81、目标生成器82和目标感知器83。

多个文本编码器81实际是一个网络,表示使用同一个网络分别编码多个文本序列。可选地,文本编码器81是一个神经网络,结构和Transformer中编码器的结构一致。文本编码器81用于将一个文本序列编码成一组向量。

可选地,提示嵌入(英文:Prompt Embeddings)是一组可通过梯度反向传播进行更新的向量,是编码模型的模型参数的一部分。可以看作承载第一提示信息中蕴含的信息的容器,其长度等于第二提示信息的长度。模型训练完成后,其值保持固定不变。

可选地,目标生成器82是一个神经网络,结构和Transformer中去除嵌入层的解码器的结构一致。目标生成器82用于将文本编码器81编码得到的n组向量进行融合,得到一组固定长度的向量,也即将n个文本序列中蕴含的信息融合到一组固定长度的向量中。目标生成器82的输入参数包括:文本编码器81编码得到的n组向量,另一个是提示嵌入。在目标生成器82中,基于注意力机制,两种输入参数进行交互计算,最终得到一组固定长度的向量。

可选地,目标感知器83是一种前向结构的人工神经网络,可以是多层感知器(Multi-Layer Perception,MLP),目标感知器83用于对经过目标生成器82得到的一组固定长度的向量进行维度变换,将向量的维度与预训练语言模型对齐,获得最终的第二提示信息。

可选地,在模型使用中,计算设备将第一提示信息编码成第二提示信息,包括:根据第一提示信息,调用预先训练完成的编码模型输出得到第二提示信息,编码模型用于将任意长度的文本序列编码成固定长度的向量组。

可选地,计算设备将第一提示信息进行向量化得到第一向量组;将第一向量组和目标模型参数输入至目标生成器中,输出得到固定长度的第二向量组,目标生成器包括用于进行向量融合的神经网络;将第二向量组输入至目标感知器中,输出得到固定长度的第二提示信息,目标感知器包括用于进行向量维度变换的神经网络。

可选地,计算设备将第一提示信息进行向量化得到第一向量组,包括但不限于如下两种可能的实现方式:

在一种可能的实现方式中,在第一提示信息包括多个任务样例的情况下,计算设备将第一提示信息进行拆分得到多个任务样例;对于多个任务样例中的每个任务样例,将任务样例输入至文本编码器中,输出得到第三向量组,文本编码器包括用于将文本序列进行向量化的神经网络;将多个任务样例各自对应的第三向量组进行合并,得到第一向量组。

在一个示意性的例子中,如图9所示,在输出得到多个任务样例各自对应的第三向量组后,将n个第三向量组进行合并,得到第一向量组92。

在另一种可能的实现方式中,计算设备将第一提示信息输入至文本编辑器中,输出得到第一向量组,文本编码器包括用于将文本序列进行向量化的神经网络。

步骤603,对编码模型和目标语言模型进行联合训练。

可选地,计算设备获取训练样本集,训练样本集包括至少一组样本数据组,每组样本数据组包括:样本文本、第一样本提示信息和预先标注的正确语言处理结果;对于至少一组样本数据组中的每组样本数据组,将第一样本提示信息输入原始参数模型得到第二样本提示信息;将第二样本提示信息与样本文本进行拼接处理,并将拼接后的样本文本输入至目标语言模型中,输出得到训练结果;将训练结果与正确语言处理结果进行比较,得到计算损失,计算损失用于指示训练结果与正确语言处理结果之间的误差;根据至少一组样本数据组各自对应的计算损失,采用误差反向传播算法训练得到编码模型。比如,编码模型为HPE,目标语言模型为PLM。

计算设备对编码模型和目标语言模型进行联合训练,包括但不限于如下两种可能的实现方式。

在一种可能的实现方式中,编码模型的模型参数是可以通过梯度反向传播进行更新的,目标语言模型的模型参数是不可更新的,训练目标选择目标语言模型,联合训练的流程包括但不限于如下步骤。

步骤1,针对每个收集到的预处理后的自然语言处理任务,获取第一样本提示信息的集合H和样本集合T。从集合H中随机选择一个第一样本提示信息,从集合T中随机选择一个样本文本,进行组对即构成了一条用于联合训练的样本数据组。重复上述过程,那么针对每个收集到的预处理后的自然语言处理任务,我们都可以得到一个用于联合训练的训练集。

步骤2,将所有获得的用于联合训练的训练集进行混合,并打乱,就得到了最终用于编码模型和目标语言模型联合训练的训练样本集。

步骤3,对训练样本集中的训练样本进行分组,针对每组样本数据组进行如下操作:样本数据组中的第一样本提示信息经过编码模型得到向量化的第二样本提示信息,样本数据组中的样本文本经过查表得到向量化的词嵌入,将第二样本提示信息和词嵌入进行拼接,送入目标语言模型得到训练结果。使用训练结果和样本标签进行损失计算。损失计算包括但不限于如下两种可能的计算方式,计算方式一是计算整个样本序列的计算损失,计算方式二是计算答案部分的计算损失。本申请实施例对此不加以限定。对一组样本数据组的计算损失取均值,然后反向传播计算梯度,更新编码模型的模型参数。

在一个示意性的例子中,如图10所示,第一样本提示信息包括多个任务样例,比如一个任务样例为“真是个好天气,我感到好开心”,另一个任务样例为“我弄丢了钥匙,我感到难过”,另一个任务样例为“这个苹果很甜,我感到开心”,还可以包括其他任务样例,在此不再一一列举。计算设备采用编码模型101将第一样本提示信息编码成第二样本提示信息,将样本文本“我的衣服弄脏了,我感到难过”经过查表得到向量化的词嵌入,将第二样本提示信息和词嵌入进行拼接,一起送入目标语言模型102进行处理,使用训练结果和样本标签进行损失计算,计算方式1是计算整个样本序列“我的衣服弄脏了,我感到难过”的计算损失,计算方式2是计算答案部分“难过”的计算损失。

在另一种可能的实现方式中,编码模型的模型参数是可以通过梯度反向传播进行更新的,目标语言模型的模型参数是不可更新的,训练目标选择CLM,联合训练的流程包括但不限于如下步骤。

步骤1,针对每个收集到的预处理后的自然语言处理任务,随机选择一个长度比例将其一分为二,前半部分作为第一样本提示信息,后半部分作为样本文本,即构成了一条用于联合训练的样本数据组。重复上述过程,得到最终用于联合训练的训练样本集。

步骤2,对训练样本集中的训练样本进行分组,针对每组样本数据组进行如下操作:样本数据组中的第一样本提示信息经过编码模型得到向量化的第二样本提示信息,样本数据组中的样本文本经过查表得到向量化的词嵌入,将第二样本提示信息和词嵌入进行拼接,送入目标语言模型得到训练结果。使用训练结果和样本标签计算整个样本序列的计算损失。对一组样本数据组的计算损失取均值,然后反向传播计算梯度,更新编码模型的模型参数。

在一个示意性的例子中,如图11所示,第一样本提示信息包括任务样例“卷积神经网络是一种前馈神经网络,它的人工神经元”。计算设备采用编码模型111将第一样本提示信息编码成第二样本提示信息,将样本文本“可以响应一部分覆盖范围内的”经过查表得到向量化的词嵌入,将第二样本提示信息和词嵌入进行拼接,一起送入目标语言模型112进行处理,使用训练结果和样本标签计算整个样本序列“响应一部分覆盖范围内的”的计算损失。

步骤604,基于预先训练完成的编码模型和目标语言模型,对目标语言处理任务进行处理。

可选地,针对待处理的目标语言处理任务,计算设备确定合适的任务样例构成第一提示信息,采用编码模型将第一提示信息编码成第二提示信息,将待处理文本经过查表得到向量化的词嵌入,将第二提示信息和词嵌入进行拼接,一起送入目标语言模型进行处理,得到处理结果。

在一个示意性的例子中,如图12所示,第一提示信息包括两个任务样例,一个任务样例为“每个人都想股市走高,这是一个金融新闻”,另一个任务样例为“门诊医疗服务暂停,这是一个医疗新闻”,计算设备将采用编码模型121将第一提示信息编码成第二提示信息,将待处理文本“足球又输了,这是一个”经过查表得到向量化的词嵌入,将第二提示信息和词嵌入进行拼接,一起送入目标语言模型122进行处理,得到处理结果“体育新闻”。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图13,其示出了本申请一个示例性实施例提供的语言处理装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为计算设备的全部或者一部分。该装置可以包括:获取单元1310、编码单元1320、拼接单元1330以及处理单元1340。

获取单元1310,用于获取目标语言处理任务的待处理文本和第一提示信息,第一提示信息为任意长度的文本序列,第一提示信息包括目标语言处理任务的描述信息和/或任务样例;

编码单元1320,用于将第一提示信息编码成第二提示信息,第二提示信息为固定长度的向量组;

拼接单元1330,用于将第二提示信息与待处理文本进行拼接处理,得到拼接后的待处理文本;

处理单元1340,用于将拼接后的待处理文本输入至预先训练完成的目标语言模型中进行处理。

在一种可能的实现方式中,编码单元1320,还用于:

根据第一提示信息,调用预先训练完成的编码模型输出得到第二提示信息,编码模型用于将任意长度的文本序列编码成固定长度的向量组。

在另一种可能的实现方式中,编码模型包括目标生成器和目标感知器,编码单元1320,还用于:

将第一提示信息进行向量化得到第一向量组;

将第一向量组和目标模型参数输入至目标生成器中,输出得到固定长度的第二向量组,目标生成器包括用于进行向量融合的神经网络;

将第二向量组输入至目标感知器中,输出得到固定长度的第二提示信息,目标感知器包括用于进行向量维度变换的神经网络。

在另一种可能的实现方式中,编码模型还包括文本编码器,第一提示信息包括多个任务样例,编码单元1320,还用于:

将第一提示信息进行拆分得到多个任务样例;

对于多个任务样例中的每个任务样例,将任务样例输入至文本编码器中,输出得到第三向量组,文本编码器包括用于将文本序列进行向量化的神经网络;

将多个任务样例各自对应的第三向量组进行合并,得到第一向量组。

在另一种可能的实现方式中,编码模型还包括文本编码器,编码单元1320,还用于:

将第一提示信息输入至文本编辑器中,输出得到第一向量组,文本编码器包括用于将文本序列进行向量化的神经网络。

在另一种可能的实现方式中,装置还包括:训练单元;训练单元,用于:

获取训练样本集,训练样本集包括至少一组样本数据组,每组样本数据组包括:样本文本、第一样本提示信息和预先标注的正确语言处理结果;

对于至少一组样本数据组中的每组样本数据组,将第一样本提示信息输入原始参数模型得到第二样本提示信息;

将第二样本提示信息与样本文本进行拼接处理,并将拼接后的样本文本输入至目标语言模型中,输出得到训练结果;

将训练结果与正确语言处理结果进行比较,得到计算损失,计算损失用于指示训练结果与正确语言处理结果之间的误差;

根据至少一组样本数据组各自对应的计算损失,采用误差反向传播算法训练得到编码模型。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请的实施例提供了一种语言处理装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述各个实施例中由计算设备执行的方法。

本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述各个实施例中由计算设备执行的方法。

本申请的实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可读代码,或者承载有所述计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在计算设备中运行时,所述计算设备中的处理器执行上述各个实施例中由计算设备执行的方法。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。

这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。

也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术分类

06120115631643