一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自然语言理解模型的训练方法、装置、终端设备、介质及用户意图判断方法与流程

2022-07-31 05:19:43 来源:中国专利 TAG:
自然语言理解模型的训练方法、装置、终端设备、介质及用户意图判断方法【
技术领域
:】1.本技术实施例涉及计算机
技术领域
:,尤其涉及一种自然语言理解模型的训练方法、装置、终端设备、介质及用户意图判断方法。
背景技术
::2.随着人工智能技术的发展,nlu自然语言理解在企业发展中扮演着越来越重要的角色,nlu是指将用户说的话通过规则匹配或者模型进行意图分类,其中模型预测的准确率直接影响意图识别的准确率,进而影响用户的交互体验,最终影响任务的完成效果,同时意图识别响应时间也是决定用户体验环节中一项关键因素,因此如何确定一个意图识别准确率高同时线上推理时间快的优质模型,成为nlu至关重要的一环。3.针对用户意图分类环节,若使用简单模型比如textcnn模型,进行用户意图分类,存在意图识别准确率低而导致的交互体验差的问题,若使用bert等大模型,一方面也会存在意图识别准确率的问题,另一方面,由于大模型参数复杂繁重,通常单次响应时间较长,且需要在gpu等环境部署,从而会造成成本增加。4.因此,现有技术中亟需一种能够兼顾预测精度和线上推理速度的模型。技术实现要素:5.本技术实施例提供了一种自然语言理解模型的训练方法、装置、终端设备、介质及用户意图判断方法,训练出的模型能大幅度提升推理效率,同时保持预测精度不降低。6.第一方面,本技术实施例提供一种自然语言理解模型的训练方法,包括:获取增量模型,所述增量模型包括骨干网络和第一分类器;在所述骨干网络中至少一层神经网络上以分支形式添加第二分类器;获取样本集,重复执行训练步骤,直到满足预设条件,所述样本集包括多个样本文本;所述训练步骤,包括:将样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、以及所述第二分类器输出的第二意图分布;计算所述第一意图分布与所述第二意图分布之间的差异,依据所述差异调整所述第二分类器。7.上述自然语言理解模型的训练方法中,获取增量模型,在增量模型的骨干网络的至少一层神经网络上以分支形式添加分类器,使用增量模型的已经训练好的分类器对新添加的分类器进行监督训练,最后得到的模型可以大幅度减少推理时间,提升推理效率,同时保持预测精度不降低。8.其中一种可能的实现方式中,所述骨干网络包括嵌入层和变换层。9.其中一种可能的实现方式中,所述在所述骨干网络中至少一层神经网络上以分支形式添加第二分类器,包括:以分支形式为所述变换层中除最后一层外的每层神经网络都添加第二分类器。10.其中一种可能的实现方式中,将样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、以及所述第二分类器输出的第二意图分布,包括:将所述样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、及每一所述第二分类器输出的意图分布;计算所述第一意图分布与每一所述第二分类器的意图分布之间的差异;对所有差异进行求和,得到总损失,依据所述总损失调整所有所述第二分类器。11.第二方面,本技术实施例提供一种用户意图判断方法,其特征在于,包括:将用户文本输入自然语言理解模型,所述自然语言理解模型中包括多个分类器,所述分类器用于判断文本的意图;沿所述自然语言理解模型的神经网络层序获取分类器的输出,当分类器的输出结果满足阈值,停止所述自然语言理解模型;将满足所述阈值的分类器输出的意图作为用户意图。其中,所述自然语言理解模型包括:执行第一方面提供的方法得到所述自然语言理解模型。12.其中一种可能的实现方式中,所述当分类器的输出结果满足阈值,包括:当任一分类器的输出结果中,存在意图的概率大于所述阈值。13.第三方面,本技术实施例提供一种自然语言理解模型的训练装置,设置在终端设备中,所述训练装置包括:获取模块,用于获取增量模型,所述增量模型包括骨干网络和第一分类器;添加模块,用于在所述骨干网络中至少一层神经网络上以分支形式添加第二分类器;训练模块,用于获取样本集,重复执行训练步骤,直到满足预设条件,所述样本集包括多个样本文本;所述训练步骤,包括:将样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、以及所述第二分类器输出的第二意图分布;计算所述第一意图分布与所述第二意图分布之间的差异,依据所述差异调整所述第二分类器。14.第四方面,本技术实施例提供一种用户意图判断装置,设置在终端设备中,包括:输入模块,用于将用户文本输入自然语言理解模型,所述自然语言理解模型中包括多个分类器,所述分类器用于判断文本的意图;判断模块,用于沿所述自然语言理解模型的神经网络层序获取分类器的输出,当分类器的输出结果满足阈值,停止所述自然语言理解模型;用户意图确定模块,用于将满足所述阈值的分类器输出的意图作为用户意图;其中,所述自然语言理解模型包括:执行如第一方面的任一项训练方法得到所述自然语言理解模型。15.第五方面,本技术实施例提供一种终端设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一、第二方面提供的方法。16.第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一、第二方面提供的方法。【附图说明】17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。18.图1为本技术一个实施例提供的自然语言理解模型的训练方法的流程图;19.图2为本技术一个实施例提供的预训练任务的示意图;20.图3为本技术一个实施例提供的用户意图判断方法的流程图;21.图4为本技术一个实施例提供的自然语言理解模型的训练装置的示意图;22.图5为本发明一个实施例提供的用户意图判断装置的结构示意图。【具体实施方式】23.为了更好的理解本说明书的技术方案,下面结合附图对本技术实施例进行详细描述。24.应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。25.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。26.现有相关技术中,针对用户意图分类的nlu模型无法兼顾预测精度和线上推理速度,如果使用简单模型,存在意图识别准确率低而导致的交互体验差的问题,如果使用bert等大模型,单次响应时间长,算力消耗大,会造成成本增加。27.基于以上问题,本技术实施例提供一种自然语言理解模型的训练方法,训练出的模型能大幅度提升推理效率,同时保持预测精度不降低。28.图1为本技术一个实施例提供的自然语言理解模型的训练方法的流程图,如图1所示,上述自然语言理解模型的训练方法可以包括:29.步骤101,获取增量模型,所述增量模型包括骨干网络和第一分类器。30.获取增量模型,增量模型是经过增量预训练和微调后的模型,增量模型包括:骨干网络和分类器。骨干网络可以是bert、roberta等模型。分类器可以是全连接层等结构,例如,可以采用常见的三层全连接层结构,第一层用于对于输入的向量进行降维,第二层用于对向量进行自注意力操作,第三层用于对向量进行分类。本技术中将该步骤中的分类器称为第一分类器,以便于其他步骤中出现的分类器相区别。31.本技术中增量模型是已经训练完成的模型,训练所使用内容可以依据不同场景具体设置。示例的,应用场景为外呼机器人,选取训练语料,训练语料包括:线上真实对话内容、日常会话语料,再选取中文开源的bert模型为骨干网络,将语料转化为文本形式,然后对中文bert模型进行增量预训练,预训练任务分为两种,一个是字级别的预训练任务,即进行字级别的mask掩码预测;另一个为任务级别的预训练任务,预训练过程如图2所示。32.经过线上真实对话语料增量预训练后,在骨干网络后接分类器,进行微调,示例的,选取微调语料,微调语料中包括中的每一个训练样例中包括一个句子及该句子对应的意图。33.微调所使用的内容应当依据具体完成的任务来设置,如应用于保险续费任务中时,意图可以是:确认续保、不续保、更换保险类型、其他等。34.使用微调样本来训练骨干网络及分类器,将训练完成的模型(骨干网络及分类器所组成的模型)称为增量模型或者diabert,该模型对可以很好的适用于真实外呼场景,对于用户的意图有很高的识别精度,提高线上预测准确率。35.本技术中使用增量模型来预测所输入的文本中的意图,所述意图是指文本中包含的语义,其可以根据具体的任务进行设置。36.步骤102,在所述骨干网络中至少一层神经网络上以分支形式添加第二分类器。37.本技术中骨干网络应当是前馈神经网络,该种神经网络结构中各神经元分层排列,每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。38.在骨干网络中存在多层神经网络,至少选择一层神经网络,为选中的神经网络层以分支的形式添加一个分类器,所添加的分类器成为该神经网络层后的一个分支结构,不参与到骨干网络的计算中,该神经网络能够将输出分别传递至所添加的分类器、下一层神经网络。39.所添加的分类器结构与上述步骤101中介绍的分类器结构可以相同,为便于区分,本技术将该步骤中添加的分类器称为第二分类器。40.步骤103,获取样本集,重复执行训练步骤,直到满足预设条件,所述样本集包括多个样本文本。41.获取样本集,所述样本文本是预先构建的,样本集中包括多个用于进行意图预测的样本文本,对于每一样本文本都执行训练步骤,直到满足预设条件,停止训练,此时得到训练完的目标模型,就是自然语言理解模型。42.步骤104,所述训练步骤包括:将样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、以及所述第二分类器输出的第二意图分布。43.将样本文本输入所获取的增量模型中,增量模型中的分类器会判断该样本文本中各种意图的概率(意图分布)。样本文本是用于进行预测的文本,该文本是预先收集的,用于进行预测意图的文本。44.文本被输入增量模型后,增量模型中的每一分类器(第一分类器及第二分类器)会判断出该文本属于各意图的概率分布,为了便于区分,本技术将第一分类器输出的这一概率分布称为第一意图分布,将第二分类器预测的该文本属于各意图的概率分布称为第二意图分布。45.本技术中获取第一意图分布及第二意图分布。示例,在续保外呼场景中,以用户身份确认任务为例,意图分为:“是”、“否”、“家属”、“用户没听懂”(编号对于关系为0:“是”,1:“否”,2:“家属”,3:“用户没听懂”),假设输入的样本文本为用户回复:“是的,我就是张三”,增量模型需要对该文本进行意图识别,得到:0:0.7,1:0.2,2:0.1,3:0.1,则意图分布就是:0:0.7,1:0.2,2:0.1,3:0.1这一分布。46.同样的,第二分类器输出的概率分布,示例的,假设在骨干网络的第3层设置有一个分类器的分支,获取该分类器输出的概率分布,如0:0.25,1:0.25,2:0.25,3:0.25。47.步骤105,计算所述第一意图分布与所述第二意图分布之间的差异,依据所述差异调整所述第二分类器。48.计算第一意图分布与第二意图分布之间存在的差异,依据该差异调整分类器及该分类器之前的模型的参数。例如,对于上述第3层分类器输出的概率分布,采用损失函数计算其与增量模型输出之间的差异,依据差异调整第三层的分类器。49.上述一轮训练中,使用已经训练好的分类器来对新增加的分类器进行监督。可以认为第一分类器是已经训练完成的,具有良好泛化能力的模型,因此可以使用第一分类器来监督第二分类器,使第二分类器在第一分类器的收敛空间的基础上进一步收敛,使其的精度得到提升。50.值得注意的是,执行上述训练步骤时需要freeze(冰冻)骨干网络及第一分类器这两部分,保证预训练和精调阶段学习的知识不被影响,仅改变第二分类器的参数,使第二分类器来尽可能的拟合第一分类器输出的参数的分布,同时使用本技术上述训练步骤还有一点重要的好处,就是不再依赖于标注数据,可以通过源源不断的无标签数据来提升。51.上述步骤104至105后,由此完成一次训练。对于每一样本文本,都执行上述步骤104至105,直到满足预设条件后,结束训练,预设条件可以如样本数达到预设阈值,第一意图分布与第二意图分布之间存在的差异达到预设阈值等。52.训练完成后的模型,较现有模型而言,能够在特征提取过程中进行判断,对于一些特征较明显的任务,能够在运行过程中就通过判别器得到结果,不用将每层transformer走完,从而节约了时间,提高的响应速度。53.例如,以用户身份确认任务为例,当对用户进行身份确认时,模型需要对用户文本进行意图识别,如果用户的回复是“是的,我就是张三”或者“不是,我不是张三”,对于这类简单的回复,模型无需将文本走完所有transformer层,而是在较低层就可以给出较高的可能性判断,因而可以直接给出预测结果,由于分类器比transformer结构需要的成本小多了,所以并不会增加推理的时间。而对于较难的样本,比如类似“不是,我是他老公”这样的语句,尽管人眼可以很快识别出意图为“家属”,但是对于模型而言却没有那么简单,因此需要多几层transformer推理判断过程,对于更难一些的用户回复,比如“不知道,你在说什么”,意图实际为“用户没听懂”,则需要走完所有的transformer才可以很好的给出答案。54.上述自然语言理解模型的训练方法中,获取增量模型,在增量模型的骨干网络的至少一层神经网络上以分支形式添加分类器,使用增量模型的已经训练好的分类器对新添加的分类器进行监督训练,最后得到的模型可以大幅度减少推理时间,提升模型的推理效率,同时保持预测精度不降低。55.在本技术一个实施例中,所述骨干网络包括嵌入层和变换层。56.骨干网络可以包括嵌入层(embeddinglayer)和变换层(transformerlayer),嵌入层用于将输入的文本映射为向量,本技术中可以选择多种嵌入层,如bert模型中使用的嵌入层,可以是其他嵌入层。transformer变换层是一个编码器结构,用于对输入的向量进行特征提取,得到表征向量。57.优选的,所述在所述骨干网络中至少一层神经网络上以分支形式添加第二分类器,包括:58.以分支形式为所述变换层中除最后一层外的每层神经网络都添加第二分类器。59.示例的,获取骨干网络,用于进行改造,在骨干网络的每层transformer后以分支形式增加一个分类器。60.如上例所示,当增量模型为diabert模型,找到该模型中的transformer层。对于transformer层,改造是:在每一层神经网络后接一个分类器,用于对该层的输出进行分类预测。61.diabert模型中的transformer(变换层)为12层的神经网络,在除输出层外的每一层神经网络后增加一个分类器,则得到11个分类器。分类器的添加方法可以是在神经网络层中的每个神经节点的输出处都增加一个连接,所有连接至一个分类器,使分类器能够接收该层神经网络的输出,以依据该层输出进行意图预测,该分类器可以浅层神经网络。62.进一步的,将样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、以及所述第二分类器输出的第二意图分布,包括:63.将所述样本文本输入所述增量模型中,获取所述第一分类器输出的第一意图分布、及每一所述第二分类器输出的意图分布;64.计算所述第一意图分布与每一所述第二分类器的意图分布之间的差异;65.对所有差异进行求和,得到总损失,依据所述总损失调整所有所述第二分类器。66.将样本文本输入增量模型中,获取第一分类器输出的第一意图分布,及获取每一个第二分类器输出的第二意图分布。67.对于每一个第二意图分布,使用损失函数计算其与第一意图分布之间的距离,损失函数可以是kl-divergence(kl距离)等。68.对所有距离求和,作为总损失,依据总损失调整所有第二分类器。69.图3为本技术另一个实施例提供的用户意图判断方法的流程图,如图3所示,所述用户意图判断方法包括:70.步骤301,将用户文本输入自然语言理解模型,所述自然语言理解模型中包括多个分类器,所述分类器用于判断文本的意图。71.将用户文本输入自然语言理解模型中,用户文本是指预先收集的用户的对话等语言文本,所述自然语言理解模型是执行如上述任一的自然语言理解模型训练方法得到的。72.所述自然语言理解模型内有多个分类器,所有分类器都是用于判断文本的意图,每一分类器都是模型中神经网络层的分支。73.步骤302,沿所述自然语言理解模型的神经网络层序获取分类器的输出,当分类器的输出结果满足阈值,停止所述自然语言理解模型。74.将文本输入自然语言理解模型后,沿着该模型的神经网络层序获取各分类器的输出,当有分类器的输出结果满足阈值,停止所述自然语言理解模型。75.优选的,当分类器的输出结果满足阈值,包括:76.当任一分类器的输出结果中,存在意图的概率大于所述阈值。77.当任一分类器的输出结果中,存在任一意图的概率大于预设阈值。当有分类器的输出结果中,存在一个意图,其可能性大于预设的阈值时,停止执行模型。78.示例的,以上述diabert模型为例,在每层transformer后都去预测样本标签,如果某样本预测结果的可能性很高,就不用继续计算了,此过程可以自适应调节样本的计算量,容易的样本通过一两层就可以预测出来,较难的样本则需要走完全程。79.步骤303,将满足所述阈值的分类器输出的意图作为用户意图。80.当分类器的输出结果满足所述阈值时,在该输出结果中选取可能性最大的意图输出,将该输出的意图作为用户意图。81.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。memory,eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。96.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。97.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。98.可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。99.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。100.在本发明实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。101.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。102.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属
技术领域
:的技术人员所理解。103.取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。104.需要说明的是,本技术实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。105.在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。106.另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。107.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。108.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献