一种建立预训练语言模型的方法和装置与流程

文档序号:24306854发布日期:2021-03-17 00:59阅读:114来源:国知局
本申请涉及计算机应用
技术领域
:,特别涉及人工智能
技术领域
:中的自然语言处理技术。
背景技术
::在nlp(naturallanguageprocessing,自然语言处理)领域中,预训练语言模型得到了广泛的关注和使用,同时也涌现出了很多为细分领域设计的预训练语言模型。现有的预训练语言模型大都是针对无格式的流式文本,能够对文本中各字符的一维位置信息(例如对文本中各字符的顺序)进行很好地理解并基于此建模语义信息。但对于一些具有特定格式的文本,因其体现的是文本中各字符的二维位置信息,目前却没有很好的方式来建立理解二维位置信息的预训练语言模型。技术实现要素:有鉴于此,本申请提供了一种建立预训练语言模型的方法和装置,以使得预训练语言模型能够很好地理解文本中各字符的二维位置信息。第一方面,本申请提供了一种建立预训练语言模型的方法,包括:获取训练样本,所述训练样本包括文本;将所述文本作为预先训练得到的第一预训练语言模型的输入以及第二预训练语言模型的输入,训练所述第二预训练语言模型;其中,所述第二预训练语言模型的训练目标包括:最小化第二预训练语言模型基于所述文本中各字符的二维位置信息得到的中间层输出与第一预训练语言模型基于所述文本中各字符的一维位置信息得到的中间层输出之间的差异。第二方面,本申请提供了一种建立预训练语言模型的装置,包括:样本获取单元,用于获取训练样本,所述训练样本包括文本;模型训练单元,用于将所述文本作为预先训练得到的第一预训练语言模型的输入以及第二预训练语言模型的输入,训练所述第二预训练语言模型;其中,所述第二预训练语言模型的训练目标包括:最小化第二预训练语言模型基于所述文本中各字符的二维位置信息得到的中间层输出与第一预训练语言模型基于所述文本中各字符的一维位置信息得到的中间层输出之间的差异。第三方面,本申请提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述的方法。第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。由以上技术方案可以看出,本申请采用已训练得到的能够很好理解一维位置信息的第一预训练语言模型来指导第二预训练语言模型对二维位置信息的理解,从而使得训练得到的第二预训练语言模型能够很好地理解文本中各字符的二维位置信息。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1为本申请实施例提供的主要方法流程图;图2为本申请实施例提供的模型训练架构的示意图;图3a为本申请实施例提供的第一预训练语言模型的结构示意图;图3b为本申请实施例提供的第二预训练语言模型的结构示意图;图4为本申请实施例提供的建立预训练语言模型的装置的结构示意图;图5是用来实现本申请实施例的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。预训练语言模型已经广泛的应用于nlp领域,本申请所提供的方法能够在服务器端或者具有较强计算能力的计算机终端来实现,用以完成各种与nlp相关的任务。在现有技术中有一些学者提出直接利用文本中各字符的二维位置信息训练预训练语言模型,但这种方案使得预训练语言模型很难理解二维位置信息,无法很好地学习。本申请的核心思想是采用已训练得到的能够很好理解一维位置信息的第一预训练语言模型来指导第二预训练语言模型对二维位置信息的理解。下面结合实施例对本申请所提供的方法进行详细描述。图1为本申请实施例提供的主要方法流程图,如图1中所示,该方法可以包括以下步骤:在101中,获取训练样本,训练样本中包含文本。本申请实施例中采用的训练样本可以是多种形式的文本,例如网页文本、文档扫描件、文献等等。这些文本中可以是具有一些格式或版式的文本,例如存在一些表单、表格、浮动图片、分栏等等。在102中,将训练样本中的文本作为预先训练得到的第一预训练语言模型的输入以及第二预训练语言模型的输入,训练第二预训练语言模型;训练目标包括:最小化第二预训练语言模型基于文本中各字符的二维位置信息得到的中间层输出与第一预训练语言模型基于文本中各字符的一维位置信息得到的中间层输出之间的差异。在本申请实施例中,第一预训练语言模型是预先训练好的模型,其已经能够很好的理解文本中各字符的一维位置信息。第一预训练语言模型可以采用目前通用的bert(bidirectionalencoderrepresentationsfromtransformers,深度双向转换语言模型)、ernie(enhancedlanguagerepresentationwithinformativeentities,知识增强语义表示模型)等。训练任务可以使用masklanguagemodel(掩码语言模型)的方式或nsp(nextsentenceprediction,下一句子预测)的方式。其中,masklanguagemodel的方式是输入文本后,基于对文本中各字符的一维位置信息(例如各字符的顺序)的理解,最小化对文本中被mask字符的预测结果与实际值之间的差异。nsp的方式是输入文本后,最小化对下一句子的预测结果与实际顺序的差异。鉴于第一预训练语言模型的训练是现有技术中较为成熟的方案,在此不做详述。在训练第二预训练语言模型时,训练架构如图2中所示。训练样本中的文本作为第一预训练语言模型和第二预训练语言模型的输入。第一预训练语言模型基于对文本中各字符(token)的一维位置信息的理解,经过中间层之后输出各字符的向量表示(token_embedding)和注意力得分(attention_score)。其中,中间层包括嵌入层和隐藏层。如图3a中所示,第一预训练语言模型在输入层输入文本后,在嵌入层进行字符嵌入(tokenembeddings)、段落嵌入(segmentembeddings)和位置嵌入(positionembeddings)。在进行位置嵌入时,是对各字符的一维位置信息进行embedding,例如对各字符的顺序编号进行embedding。关于嵌入层进行上述嵌入处理的具体内容可以采用现有技术中较为成熟的方式,在此不做赘述。图3a中采用的具体嵌入值仅仅为一个示例,对本申请的保护范围不做任何限定。隐藏层可以采用多层transformer的结构,输出各字符的向量表示(token_embedding)和注意力得分(attention_score)。如图3b中所示,第二预训练语言模型在输入层输入文本后,在嵌入层同样进行字符嵌入(tokenembeddings)、段落嵌入(segmentembeddings)和位置嵌入(positionembeddings)。其中,字符嵌入和段落嵌入的方式与第一预训练语言模型相同。但在进行位置嵌入时,第二预训练语言模型采用的是各字符的二维位置信息。作为一种优选的实施方式,字符的二维位置信息可以采用字符的左上角点坐标(x0,y0)和右下角点坐标(x1,y1)表示。如图3b中所示,在进行位置嵌入时,可以对上述左上角点横坐标(图中表示为2d-x0)、左上角点纵坐标(图中表示为2d-y0)、右下角点横坐标(图中表示为2d-x1)以及右下角点纵坐标(图中表示为2d-y1)分别进行嵌入处理。图3b中采用的具体嵌入值仅仅为一个示例,对本申请的保护范围不做任何限定。除此之外,字符的二维位置信息也可以采用其他方式表示,例如采用左下角点坐标和右上角点坐标表示,或者,采用字符的中间点坐标表示,等等。在训练第二预训练语言模型时,实际上是将第一预训练语言模型输出的各token_embedding和各attention_score用于指导第二预训练语言模型的学习,目标是尽量使得两个模型输出的token_embedding一致且attention_score一致。以此目标可以构建两个损失函数loss1和loss2,loss1用于体现两个模型输出的各token_embedding的差异,loss2用于体现两个模型输出的各attention_score的差异。例如:其中,n为文本的长度,即文本所包含字符的个数。d为每个token_embedding的维度。eij为第一预训练语言模型的隐藏层输出的第i个字符的token_embedding向量中的第j个向量值。e'ij为第二预训练语言模型的隐藏层输出的第i个字符的token_embedding向量中的第j个向量值。sijk为第一预训练语言模型的隐藏层输出的第i个字符的attention_score向量中第j行第k列的取值,s'ijk为第二预训练语言模型的隐藏层输出的第i个字符的attention_score向量中第j行第k列的取值。作为一种实施方式,可以将上述loss1和loss2进行加和后得到一个总的损失函数,然后利用该总的损失函数进行反向传播,利用梯度下降算法调整第二预训练语言模型的模型参数。作为另一种优选的实施方式,在训练样本中还可以进一步包括文本中各字符对应的任务相关标签值。也就是说,对文本进行标签的标注,该标签是与第二预训练语言模型的具体下游任务相关的。在第二预训练语言模型中通过输出层进行诸如softmax的映射,得到与任务相关的估计值。在第二预训练语言模型的训练过程中,训练目标还可以进一步包括:最小化第二预训练语言模型的输出层输出与所述各字符对应的任务相关标签值之间的差异。在此对于下游任务举两个例子,但需要说明的是,下游任务并不限于以下两个例子:下游任务1:字符粒度的分类任务。在文本中可能包含一些表单,每个字符可能在表单中属于一些表单区域类型。对这些表单区域类型进行划分,通过第二预训练语言模型基于字符在文本中的二维位置信息来判别该字符对应的表单区域类型。其中,表单区域类型可以包括诸如:表单标题(title)、单元格(tablecell)、属性信息(key)以及属性值(value)等等。例如,若收件人为key,具体收件人的名字,例如“张三”就是value。更具体地,可以进一步划分各种表单区域类型的开始位置、中间位置和结束位置三种类型。例如,title开始位置、title中间位置和title结束位置。通过对文本中字符的内容、段落信息、二维位置信息等进行理解,第二预训练语言模型就能够判断出一个字符是属于表单title中的开始位置、中间位置还是结束位置。在此任务下,第二预训练语言模型的输出层可以输出各字符属于预先划分的各种表单区域类型的概率。下游任务2:阅读顺序预测任务。在一些文本中可能包含分栏、浮动图片、表格等复杂布局,那么找到每个字符正确的阅读顺序就十分必要。只有确定正确的阅读顺序,下游解析逻辑才能够正确的理解文本正确的语义,那么第二预训练语言模型就可以基于字符在文本中的二维位置信息来预测每个字符的下一个字符是哪个字符,如果某字符的下一个字符指向它本身或者为空,则代表当前语义段结束。在此任务下,第二预训练语言模型的输出层可以输出各字符作为当前字符的下一个字符的概率。通过任务相关标签值可以构建第三个损失函数loss3,loss3用以体现第二预训练语言模型的输出层输出与各字符对应的任务相关标签值(即训练样本中标注的值)之间的差异。例如:其中,c为相关任务标签的类别数量,即每个字符可能预测的类别数量。ti表示第i个字符对应的任务相关标签值(即训练样本中标注的值)。li表示第二预训练语言模型输出层输出的第i个字符在上述标签值对应的类别上的概率值,ln表示第二预训练语言模型输出层输出的第i个字符在第n个类别上的概率值。然后将上述loss1、loss2和loss3进行加和后得到一个总的损失函数loss,然后利用该总的损失函数进行反向传播,利用梯度下降算法调整第二预训练语言模型的模型参数。经过上述训练得到的第二预训练语言模型,可以接入下游任务对待预测文本进行任务相关的预测。例如上述的字符粒度的分类预测或阅读顺序预测,等等。以上是对本申请所提供的方法进行的详细描述,下面结合实施例对本申请所提供的装置进行详细描述。图4为本申请实施例提供的建立预训练语言模型的装置的结构示意图,如图4中所示,该装置可以包括:样本获取单元01和模型训练单元02。其中各组成单元的主要功能如下:样本获取单元01,用于获取训练样本,训练样本包括文本。模型训练单元02,用于将文本作为预先训练得到的第一预训练语言模型的输入以及第二预训练语言模型的输入,训练第二预训练语言模型;其中,第二预训练语言模型的训练目标包括:最小化第二预训练语言模型基于文本中各字符的二维位置信息得到的中间层输出与第一预训练语言模型基于文本中各字符的一维位置信息得到的中间层输出之间的差异。第一预训练语言模型是预先训练好的模型,其已经能够很好的理解文本中各字符的一维位置信息。第一预训练语言模型可以采用目前通用的bert、ernie等。训练任务可以使用masklanguagemodel的方式或nsp的方式。其中,中间层输出可以包括:各字符的向量表示和注意力得分。作为一种实施方式,可以利用第二预训练语言模型输出的各字符的向量表示和第一预训练语言模型输出的各字符的向量表示之间的差异构建第一损失函数,利用第二预训练语言模型输出的各字符的注意力得分和第一预训练语言模型输出的各字符的注意力得分之间的差异构建第二损失函数。将第一损失函数和第二损失函数进行加和后得到一个总的损失函数,然后利用该总的损失函数进行反向传播,利用梯度下降算法调整第二预训练语言模型的模型参数。作为一种优选的实施方式,上述训练样本还包括文本中各字符对应的任务相关标签值。相应地,第二预训练语言模型的训练目标进一步包括:最小化第二预训练语言模型的输出层输出与各字符对应的任务相关标签值之间的差异。其中,各字符对应的任务相关标签值可以包括但不限于:各字符在文本包含的表单中的类型信息;或者,各字符的正确阅读顺序信息。模型训练单元02在训练第二预训练语言模型过程中采用的总的损失函数由第一损失函数、第二损失函数和第三损失函数的总和得到。其中第三损失函数是利用第二预训练语言模型的输出层输出的各字符对应的任务相关估计值与各字符对应的任务相关标签值之间的差异得到的。然后利用该总的损失函数进行反向传播,利用梯度下降算法调整第二预训练语言模型的模型参数。根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。如图5所示,是根据本申请实施例的建立预训练语言模型的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的预训练语言模型的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的预训练语言模型的方法。存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的预训练语言模型的方法对应的程序指令/模块。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的预训练语言模型的方法。存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据该电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。该电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置503可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1