CN114490922A - 一种自然语言理解模型训练方法及装置 - Google Patents
一种自然语言理解模型训练方法及装置 Download PDFInfo
- Publication number
- CN114490922A CN114490922A CN202011165670.0A CN202011165670A CN114490922A CN 114490922 A CN114490922 A CN 114490922A CN 202011165670 A CN202011165670 A CN 202011165670A CN 114490922 A CN114490922 A CN 114490922A
- Authority
- CN
- China
- Prior art keywords
- natural language
- training
- language understanding
- loss
- understanding model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本申请涉及人工智能技术领域,公开了一种自然语言理解模型训练方法及装置,用以在压缩自然语言理解模型的同时,尽可能提高模型的精度和性能。该方法包括:通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练;将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量;计算所述第四句向量相对所述第三句向量的感知损失;根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种自然语言理解模型训练方法及装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言理解,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
目前,在自然语言理解领域,满足实时性要求的主流深度学习模型都是基于预训练模型的压缩微调模型。这一训练过程可以简单分为3步:1、加载预训练的自然语言理解模型,并通过指定任务训练数据微调获得一个参数量较大的老师模型;2、通过知识蒸馏等方法,将老师模型学习到的知识迁移到一个参数量较小的学生模型上;3、通过指定任务训练数据微调学生模型的参数。目前这种训练方法的主要瓶颈集中在如何平衡参数量和性能之间的关系,即在尽可能小的模型上,维持一个可以接受的比较高的精度,以及如何使得学生模型尽可能多地学习到老师模型的知识。
在计算机视觉领域,深度学习模型为了满足实时性的要求,也同样面临着上述的问题。针对这些问题,有一些研究者提出了利用感知损失提升知识蒸馏的效果。具体来说,就是在知识蒸馏的过程中,将老师模型和学生模型的输出图片,分别输入一个预训练好的网络。这个网络通常是在大量的图片数据上预训练的,能够捕捉图片的语义特征。随后,再在这个网络的两个输出结果之间,计算感知损失,用来表示老师模型和学生模型在感知网络下的语义相似性。但是,这些方法在应用到自然语言理解领域的时候,存在着以下的问题:1、当前提出的感知损失网络都是基于卷积神经元网络(convolutional neuronnrtwork,CNN)的,输入都是二维的图片,不是自然语言,而自然语言理解问题的输入和输出通常具有序列性的语句,因此CNN结构不适用;2、当前的感知损失网络的输入和原始网络的输入是同源的,即老师网络和学生网络的输入都是图片,而感知损失网络的输入也是图片,每个像素值的取值范围是连续的。但是自然语言理解领域中,老师网络和学生网络的输入是由单词组成的句子,感知损失网络的输入是句向量,如果由句向量变为句子的话,取值范围会变成一个不连续的空间。因此目前的方法不适合于这个领域的问题。
因此,需要一种适用于自然语言理解模型的训练方法,以使得学生模型尽可能多地学习到老师模型的知识,获得更高的精度。
发明内容
本申请实施例提供一种自然语言理解模型训练方法及装置,用以在压缩自然语言理解模型的同时(即将老师自然理解模型的知识向学生自然理解模型迁移的同时),尽可能提高模型(学生自然语言理解模型)的精度和性能。
第一方面,本申请实施例提供了一种自然语言理解模型训练方法,包括:通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练,其中所述老师自然语言理解模型的输入为所述训练语句、输出为对所述训练语句处理得到的第一句向量,所述感知损失模型的输入为所述第一句向量、输出为对所述第一句向量处理得到的第二句向量,所述感知损失网络基于所述第二句向量映射的理解结果相对所述训练语句对应的理解结果真值的第一损失调整参数,所述感知损失网络采用多层序列变换transformer结构;将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量;计算所述第四句向量相对所述第三句向量的感知损失;根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
采用上述方法,通过在压缩自然语言理解模型,即将老师自然理解模型的知识向学生自然理解模型迁移的时,引入感知损失,提升了学生自然理解模型对老师自然理解模型的知识的学习程度,提高了学生自然理解模型的精度和性能。同时将感知损失网络的结构从多层CNN改为多层Transformer,更加适应序列化的自然语言理解任务,进一步提高了学生自然语言理解模型的精度和性能。
在一种可能的设计中,所述方法还包括:将所述训练语句输入到所述老师自然语言理解模型进行处理,得到第五句向量;计算所述第五句向量映射的理解结果相对所述训练语句对应的理解结果真值的第二损失;根据所述第二损失调整所述老师自然语言理解模型的参数。
上述设计中,可以在训练或微调老师自然语言理解模型的同时,训练感知损失网络,有利于提高模型训练效率。
在一种可能的设计中,所述方法还包括:将所述训练语句输入到所述老师自然语言理解模型和所述学生自然语言理解模型,获取所述老师自然语言理解模型隐藏层输出的第一特征和所述学生自然语言理解模型隐藏层输出的第二特征;计算所述第二特征相对所述第一特征的第三损失;根据所述第三损失调整所述学生自然语言理解模型的参数。
上述设计中,通过让学生自然语言理解模型隐藏层输出,学习老师自然语言理解模型隐藏层输出,可以让学生自然语言理解模型在多尺度上学习老师自然语言理解模型的知识,有利于提高学生自然语言理解模型的精度和性能。
在一种可能的设计中,所述计算所述第四句向量相对所述第三句向量的感知损失,包括:计算所述第四句向量映射的理解结果相对所述第三句向量映射的理解结果的感知损失。
上述设计中,可以从多尺度计算感知损失,对学生自然语言理解模型进行更新,有利于进一步保证学生自然语言理解模型的精度和性能。
在一种可能的设计中,所述理解结果包括所述训练语句的意图和意图的关键信息。
在一种可能的设计中,所述老师自然语言理解模型的层数和/或参数大于所述学生自然语言理解模型。
第二方面,本申请实施例提供一种自然语言理解模型训练装置,该装置具有实现上述第一方面或者第一方面的任一种可能的设计中方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元(或模块)。如包括第一训练单元和第二训练单元。
在一个可能的设计中,该装置可以是芯片或者集成电路。
在一个可能的设计中,该装置包括存储器和处理器,存储器用于存储所述处理器执行的程序,当程序被处理器执行时,所述装置可以执行上述第一方面或者第一方面的任一种可能的设计中所述的方法。
在一个可能的设计中,该装置可以为电子设备。
第三方面,本申请提供一种计算机可读存储介质,所述存储介质存储有计算机程序或指令,当所述计算机程序或指令被执行时,可以实现上述第一方面或者第一方面的任一种可能的设计中所述的方法。
第四方面,本申请还提供一种计算机程序产品,包括计算机程序或指令,当计算机程序或指令被执行时,可以实现上述第一方面或者第一方面的任一种可能的设计中所述的方法。
第五方面,本申请实施例提供一种芯片,所述芯片用于执行存储器中存储的计算机程序或指令,实现如第一方面或者第一方面的任一种可能的设计中所述的方法。
上述第二方面至第五方面所能达到的技术效果请参照上述第一方面所能达到的技术效果,这里不再重复赘述。
附图说明
图1为本申请实施例提供的知识蒸馏的网络结构示意图;
图2为本申请实施例提供的感知损失网络结构示意图;
图3为本申请实施例提供的系统架构示意图;
图4为本申请实施例提供的训练语句采集方式示意图;
图5为本申请实施例提供的训练设备的实现示意图;
图6为本申请实施例提供的自然语言理解模型训练方法的过程示意图;
图7为本申请实施例提供的微调老师自然语言理解模型的方法示意图;
图8为本申请实施例提供的训练感知损失网络的方法示意图;
图9为本申请实施例提供的训练学生自然语言理解模型的方法示意图;
图10为本申请实施例提供的自然语言理解模型训练装置结构示意图;
图11为本申请实施例提供的电子设备结构示意图。
具体实施方式
目前,随着人工智能技术的不断发展,人机之间通过自然语言进行交互变得越来越重要。而人机之间通过自然语言进行交互,就需要机器能够理解人类自然语言的具体含义。这种识别人类自然语言的具体含义的行为称为自然语言理解(natural languageunderstanding,NLU),NLU通常是指识别用户的意图,提取用户意图的关键信息。而机器对自然语言理解主要依靠自然语言理解模型来实现,因此如何训练得到一个参数少、精度高的自然语言理解模型,对满足人机交互的实时性与准确性的要求至关重要。
为了便于本领域技术人员理解,下面对本申请实施例中的部分用语进行解释说明。
1)、语句的意图和意图的关键信息,其中意图是指用户通过语句想要表达的目的,例如:用户输入语句“规划去北京的路径”,用户的意图为导航;用户输入语句“我要听我的梦”,用户的意图是听歌。意图的关键信息,也可以理解为意图对应的槽位。例如:用户的意图为导航时,目的地即为槽位;用户的意图为听歌时,歌名即为槽位。对于用户输入的语句“规划去北京的路径”意图为导航,意图的关键信息(或槽位)为目的地:北京。
2)、知识蒸馏,知识蒸馏被广泛的用于模型压缩和迁移学习当中。一般的做法,先通过训练数据和训练数据的标签(也可以称为标注的真值)训练一个参数量较大的老师(teacher)模型,然后使用这个老师模型对训练数据的输出,去训练一个参数量较小的学生(student)模型,即把大模型(老师模型)对训练数据输出的概率向量作为软标签,去让小模型(学生模型)的输出去尽量学习。通过知识蒸馏,可以将模型从大模型转化成一个压缩过后的小模型,并保留尽可能接近于大模型的性能,也可以将多个模型学到的知识转移到一个模型中,使得单个模型的性能接近多个模型集成学习的结果。
以老师模型和学生模型进行意图识别(或意图分类)为例,假设有10000个训练数据、可识别3种意图。其中,训练数据1的标签为[0 0 1],表示训练数据1为意图3的概率为0、为意图2的概率为0、为意图1的概率为1;训练数据2的标签为[0 1 0],表示训练数据2为意图3的概率为0、为意图2的概率为1、为意图1的概率为0;…训练数据10000的标签为[1 00],表示训练数据10000为意图3的概率为1、为意图2的概率为0、为意图1的概率为0。将上述10000个训练数据分别输入老师模型,根据老师模型的输出和训练数据的标签的差异计算损失(也可以称为误差或梯度信息),根据损失不断调整老师模型的参数,对老师模型进行训练,训练完成的老师模型对每个训练数据的输出即可作为对学生模型训练的软标签。例如:老师模型对训练数据1的输出为[0 0.1 0.9],表示训练数据1为意图3的概率为0、为意图2的概率为0.1、为意图1的概率为0.9。将上述10000个训练数据分别输入学生模型,根据学生模型的输出和训练数据的软标签的差异计算损失,根据损失不断调整学生模型的参数,对学生模型进行训练,即可完成学生模型对老师模型的学习,也即完成老师模型学习到的知识到学生模型的迁移,学生模型可以保留尽可能接近于老师模型的性能。
后来,也有一些方法试图让学生模型的隐藏层输出,学习老师模型的隐藏层输出,从而在多尺度上进行知识蒸馏。如图1所示,展示了一个典型的知识蒸馏的网络结构。其中损失函数1(loss1)代表的是计算老师模型的输出和学生模型输出的损失函数,loss2代表的是计算老师模型的隐藏层输出和学生模型的隐藏层输出的损失函数。这两个损失函数可以同时出现,也可以只选择其中一个。在典型的基于知识蒸馏的自然语言理解模型(或网络)里,输入通常是一句本文,老师模型是一个在大量文本数据上经过了预训练的网络,学生模型是和老师模型结构类似,但是经过压缩减少了参数量和/或层数。loss1通常是老师模型和学生模型在指定任务(如语音助手任务)上的损失,loss2则是对同一句输入的文本在不同层次的特征表示之间的相似度损失。
需要理解的是,上述图1中loss1的输入是老师模型和学生模型直接的输出,不能体现在指定任务(如语音助手任务)上语义的差异。
3)、感知损失,感知损失首次提出,是应用在计算机视觉领域的图像超分辨率任务中在这个任务里,如果模型仅以像素损失作为优化对象,虽然在测试时可以获得较高的评价指标,但这种逐像素优化的方式忽略了图像的全局相似性,重建出的图像视觉效果较差。为了解决这个问题,感知损失被提了出来,用以最小化高分辨率图像与真实高清图像在图像语义级别的差异。后来,这个方法被拓展到了生成对抗网络和知识蒸馏中。一个预训练好的感知损失网络,可以用来计算生成图像和真实图像,或者老师模型和学生模型之间的感知损失。这些方法一般使用预训练好的16层视觉几何群网络(visual geometry groupnetwork-16,VGG-16)作为二者的特征提取器,用以描述语义级别的特征距离。
如图2所示,可以利用例如ImageNet数据库中的数据,预训练一个VGG-16网络。在这个网络中各隐藏层的输出,就是对应图像在不同尺度下的语义特征。然后,在对学生模型训练过程中,加载这个预训练好的VGG-16网络,并固定VGG-16网络的参数,再把老师模型和学生模型的输出,分别输入这个预训练的VGG-16网络,并取出不同隐藏层的输出作为这两幅图像对应的语义特征,从而通过损失函数(pre_loss)计算出它们之间的感知损失,根据感知损失,调整学生模型的参数,以获得更好的性能。
然而,现有的感知损失的相关方法都是应用在计算机视觉领域的任务当中,因此用来计算感知特征的预训练网络都是基于CNN结构的,同时它们的输入都是图像。这些方法和网络结构不适合自然语言理解这样的序列标注任务。
本申请旨在利用感知损失网络,在压缩自然语言理解模型的同时,(即将老师自然理解模型的知识向学生自然理解模型迁移的同时),尽可能提高模型(学生自然语言理解模型)在指定任务上的精度和性能。下面将结合附图,对本申请实施例进行详细描述。
另外,需要理解,在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。在本申请实施例中,“/”可以表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;“和/或”可以用于描述关联对象存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。为了便于描述本申请实施例的技术方案,在本申请实施例中,可以采用“第一”、“第二”等字样对功能相同或相似的技术特征进行区分。该“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。在本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明,被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
参照图3所示,为本申请实施例提供的一种系统架构示意图,该系统架构中可以包括:数据采集设备310、数据库320、训练设备330、执行设备340等。
数据采集设备310用于对训练语句的采集,在采集训练语句之后,数据采集设备310可以将这些训练语句存入数据库320中。
以进行语音助手任务为例,对于进行语音助手任务的训练语句的采集,如图4所示,数据采集设备310可以在室内安静环境下,近距离接收用户发出的语音,将用户发出的语音转换为语句(文本)作为训练语句,并接受用户对训练语句理解结果的标注(如意图和意图的关键信息)的标注,将标的注理解结果的训练语句存入数据库320中。
训练设备330可以使用数据库320中维护的训练语句对老师自然语言理解模型进行调整或训练,并将老师自然语言理解模型学习到的知识迁移到学生自然语言理解模型中,也可以使用数据库320中维护的训练语句对学生自然语言理解模型进行调整或训练,得到具体应用到指定任务的学生自然语言理解模型。
需要说明的是,在实际应用中数据库320中维护的训练语句不一定都来自数据设备采集,也可以是从其它设备接收得到;训练设备330也不一定完全基于数据库320维护的训练语句进行自然语言理解模型的调整或训练,本申请实施例仅是以数据设备采集训练语句、训练设备330基于数据库320维护的训练语句进行自然语言理解模型的调整或训练为例,进行说明。
训练设备330得到的学生自然语言理解模型可以应用到不同的系统或设备中,如应用到图3中的执行设备340中。
如图5所示,所述训练设备330可以是一个服务器或虚拟机等,包含一个或多个可调用的中央处理器(central processing unit,CPU)和/或图形处理器(graphicsprocessing unit,GPU),可用于模型的训练和调用等。执行设备340可以是终端,如手机、平板电脑、笔记本电脑、车载终端等,或者是应用在上述设备上的芯片等,还可以是服务器或者云端等。
值得注意的,图3仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件等之间的位置关系不构成任何限制。例如,在图3中,还可以包括数据存储系统350,数据存储系统350用于存储执行设备340输出的数据、代码等。此时数据存储系统350相对执行设备340是外部存储器,在其它情况下,也可以将数据存储系统350置于执行设备340内部。
如图6所示,为训练设备执行自然语言理解模型训练方法的过程,即下述过程的执行者可以为上述图3中的训练设备。
S601:训练设备通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练。
其中,所述老师自然语言理解模型的输入为所述训练语句、输出为对所述训练语句处理得到的第一句向量,所述感知损失模型的输入为所述第一句向量、输出为对所述第一句向量处理得到的第二句向量,所述感知损失网络基于所述第二句向量映射的理解结果相对所述训练语句对应的理解结果真值的第一损失调整参数。
在本申请实施例中,可以直接采用预先训练好的参数量较大的自然语言理解模型作为老师自然语言理解模型,并根据数据库中指定任务的训练语句,微调这个老师自然语言理解模型。当然,训练设备也可以根据数据库中维护的指定任务的训练语句,直接训练一个新的参数量较大的自然语言理解模型,作为老师自然语言理解模型。其中,训练设备新训练一个新的老师自然语言理解模型和微调老师自然语言理解模型的过程相似,下面以微调老师自然语言理解模型为例进行说明。
以指定任务为语音助手任务为例,如图7所示,训练设备可以将数据库中维护的用于语音助手任务的训练语句输入到老师自然语言理解模型,得到老师自然语言理解模型对训练语句进行处理输出的句向量,其中句向量可以由老师自然语言理解模型对输入的训练语句中多个词处理得到的多个词向量组成,并将得到的句向量输入到下游任务网络(此处为对应语音助手任务的语音助手任务网络),将老师自然语言理解模型输出的句向量映射为对训练语句的理解结果,如映射为训练语句的意图等。其中,所述下游任务网络可以为一层、两层等,可以理解为理解结果输出层,用于将老师然语言理解模型得到的句向量转换为可被识别的理解结果。以理解结果为意图为例,可识别的意图为3类,则转换的理解结果为意图1、意图2和意图3分别对应的概率。如[0 0.1 0.9],表示训练数据为意图3的概率为0、为意图2的概率为0.1、为意图1的概率为0.9。
训练设备通过任务损失函数(loss_task1)计算老师自然语言理解模型输出的理解结果相对训练语句的理解结果真值(即标注的理解结果)的损失,所述损失也可以称为梯度信息,在梯度回传阶段,通过loss_task1计算出的梯度信息,会回传到老师自然语言理解模型的各层更新各层的参数,完成对老师自然语言理解模型的调整。可选的,通过loss_task1计算出的梯度信息也可以回传的老师自然语言理解模型和下游任务网络的各层更新他们的参数。
在一种可能的实施中,在微调老师自然语言理解模型的阶段,训练设备可以同时训练感知损失网络。为了适应自然语言理解这样的序列标注任务,在本申请实施例中,感知损失网络可以采用多层序列变换(transformer)结构堆叠而成,从而适应序列化的自然语言理解任务。
如图8所示,在微调老师自然语言理解模型的阶段可以使用2个相同的损失函数loss_task1和loss_task2。在得到老师自然语言理解模型对训练语句处理输出的句向量1(即第一句向量)后,可以通过下游任务网络1,将老师自然语言理解模型输出的句向量1,映射为对训练语句的理解结果1,再根据loss_task1计算理解结果1相对训练语句的理解结果真值的损失。同时老师自然语言理解模型输出的句向量1,会作为感知损失网络的输入,感知损失网络对自然语言理解模型输出的句向量1进行处理,会得到句向量2(即第二句向量),通过下游任务网络2,可以将感知损失网络输出的句向量2,映射为对训练语句的理解结果2,再根据loss_task2计算理解结果2相对训练语句的理解结果真值的损失(即第一损失)。在梯度回传阶段,通过loss_task1计算出的梯度信息(损失),会回传到老师自然语言理解模型的各层,更新各层的参数。而通过loss_task2计算出的梯度信息,只会回传到感知损失网络的各层,并更新感知损失网络的各层的参数,不会回传到老师自然语言理解模型的任何一层。
在微调老师自然语言理解模型和训练感知损失网络的过程中,对于loss_task1和loss_task2,采用依次训练和更新的策略,即在每一次的迭代过程中,先进行一遍推断,通过loss_task1,更新老师自然语言理解模型的参数,再固定住这些参数进行一遍推断,通过loss_task2,更新感知损失网络中的参数。采用这样的策略,可以在微调老师自然语言理解模型的过程中,完成对于感知损失网络的训练。这样,不同于计算机视觉领域中感知损失层的输入是一副图像,在这个网络中,感知损失层的输入,就可以是一个通过自然语言理解模型表述的句向量。另外,需要理解的是上述下游任务网络1和下游任务网络2的结构相同,参数可以不同。
S602:所述训练设备将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量。
S603:所述训练设备计算所述第四句向量相对所述第三句向量的感知损失。
S604:所述训练设备根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
如图9所示,在知识蒸馏阶段,训练设备会加载微调好的老师自然语言理解模型和训练好的感知损失网络,并固定他们各层的参数。随后针对训练语句,训练设备会将其分别输入到老师自然语言理解模型和学生自然语言理解模型,得到老师自然语言理解模型和学生自然语言理解模型各自输出的句向量。再将老师自然语言理解模型和学生自然语言理解模型各自输出的句向量分别输入到感知损失网络中,根据感知损失网络对老师自然语言理解模型输入的句向量处理得到句向量3(即第三句向量)和对学生自然语言理解模型输入的句向量处理得到的句向量4(即第四句向量)的差异,通过损失函数(loss_pre)计算感知损失,在梯度回传阶段,通过loss_pre计算出的梯度信息(感知损失),会回传到学生自然语言理解模型的各层,更新学生自然语言理解模型各层的参数,对学生自然语言理解模型进行训练。
在一种可能的实施中,训练设备还可以通过上述下游任务网络2,将得到的句向量3映射为对训练语句的理解结果3,将得到的句向量4映射为对训练语句的理解结果4,根据理解结果3和理解结果4的差异,通过损失函数(loss_pre)计算感知损失,用于调整学生自然语言理解模型的参数,对学生自然语言理解模型进行训练。
在另一种可能的实施中,训练设备还可以基于老师自然语言理解模型和学生自然语言理解模型对应某一隐藏层的特征,通过损失函数(loss_pres)计算损失,调整学生自然语言理解模型的参数,对学生自然语言理解模型进行训练。
对于训练完成的学生自然语言理解模型,训练设备还可以根据数据库中指定任务的训练语句,微调这个学生自然语言理解模型。如根据数据库中维护的用于语音助手任务的训练语句,微调学生自然语言理解模型。其中训练设备微调学生自然语言理解模型的过程可以参照训练设备微调老师自然语言理解模型的过程,重复之处不再进行赘述。
本申请提供的自然语言理解模型训练方法可以适用于云侧和端侧等业务场景,例如手机语音助手,智慧大屏,智能音箱等。以手机语音助手为例,基于手机语音助手任务的训练语句训练得到学生自然语言理解模型后,将得到的学生自然语言理解模型和对应的下游任务网络(如上述下游任务网络1)级联,即可得到适用于手机中语音助手的自然语言理解模型。用于对用户的发出语句的导航、拨号等意图的识别和执行。
作为一种示例,用户在需要导航服务时,可以通唤醒词“小艺小艺”唤醒手机中的手机语音助手应用,唤醒手机语音助手应用后,用户可以输入语音“规划去北京的路径”,手机语音助手将用户输入的语音转换为文本语句“规划去北京的路径”后,将语句“规划去北京的路径”输入到级联的学生自然语言理解模型和下游任务网络1中,通过级联的学生自然语言理解模型和下游任务网络1对语句“规划去北京的路径”进行处理,手机语音助手识别出用户的意图为导航,意图的关键信息(或槽位)为目的地:北京。手机语音助手为用户打开手机中的导航应用,并输入目的地:北京,为用户开启去北京的导航。
上述主要从方法流程的角度对本申请提供的方案进行了介绍。可以理解的是,为了实现上述功能,装置可以包括执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在采用集成的单元的情况下,图10示出了本申请实施例中所涉及的自然语言理解模型训练装置的可能的示例性框图,该自然语言理解模型训练装置1000可以以软件的形式存在。自然语言理解模型训练装置1000可以包括:第一训练单元1001和第二训练单元1002。
该自然语言理解模型训练装置1000可以为上述图6中的训练设备、或者还可以为设置在执行设备中的半导体芯片。
具体地,在一个实施例中,第一训练单元1001,用于通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练,其中所述老师自然语言理解模型的输入为所述训练语句、输出为对所述训练语句处理得到的第一句向量,所述感知损失模型的输入为所述第一句向量、输出为对所述第一句向量处理得到的第二句向量,所述感知损失网络基于所述第二句向量映射的理解结果相对所述训练语句对应的理解结果真值的第一损失调整参数,所述感知损失网络采用多层序列变换transformer结构;
第二训练单元1002,用于将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量;计算所述第四句向量相对所述第三句向量的感知损失;以及根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
在一种可能的设计中,所述第一训练单元1001,还用于将所述训练语句输入到所述老师自然语言理解模型进行处理,得到第五句向量;计算所述第五句向量映射的理解结果相对所述训练语句对应的理解结果真值的第二损失;以及根据所述第二损失调整所述老师自然语言理解模型的参数。
在一种可能的设计中,所述第二训练单元1002,还用于将所述训练语句输入到所述老师自然语言理解模型和所述学生自然语言理解模型,获取所述老师自然语言理解模型隐藏层输出的第一特征和所述学生自然语言理解模型隐藏层输出的第二特征;计算所述第二特征相对所述第一特征的第三损失;以及根据所述第三损失调整所述学生自然语言理解模型的参数。
在一种可能的设计中,所述第二训练单元1002计算所述第四句向量相对所述第三句向量的感知损失时,具体用于计算所述第四句向量映射的理解结果相对所述第三句向量映射的理解结果的感知损失。
在一种可能的设计中,所述理解结果包括所述训练语句的意图和意图的关键信息。
在一种可能的设计中,所述老师自然语言理解模型的层数和/或参数大于所述学生自然语言理解模型。
需要理解的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
基于以上实施例,本申请实施例还提供了一种电子设备(如训练设备),参照图11所示,电子设备1100包括存储器1101、处理器1102。存储器1101和处理器1102通过总线链接。存储器1101用于存储计算机执行指令,当电子设备1100运行时,处理器1102执行存储器1101中存储的计算机执行指令,以使电子设备1100实现上述任一项自然语言理解模型训练方法,具体的自然语言理解模型训练方法可参考上文及其附图的相关描述,在此不做赘述。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时可以执行上述方法实施例中适用于训练设备的自然语言理解模型训练方法。
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,该计算机程序产品包括指令,该指令被执行时可以执行上述方法实施例中适用于训练设备的自然语言理解模型训练方法。
作为本实施例的另一种形式,提供一种芯片,所述芯片运行时,可以执行上述方法实施例中适用于训练设备的自然语言理解模型训练方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种自然语言理解模型训练方法,其特征在于,包括:
通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练,其中所述老师自然语言理解模型的输入为所述训练语句、输出为对所述训练语句处理得到的第一句向量,所述感知损失模型的输入为所述第一句向量、输出为对所述第一句向量处理得到的第二句向量,所述感知损失网络基于所述第二句向量映射的理解结果相对所述训练语句对应的理解结果真值的第一损失调整参数,所述感知损失网络采用多层序列变换transformer结构;
将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量;
计算所述第四句向量相对所述第三句向量的感知损失;
根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述训练语句输入到所述老师自然语言理解模型进行处理,得到第五句向量;
计算所述第五句向量映射的理解结果相对所述训练语句对应的理解结果真值的第二损失;
根据所述第二损失调整所述老师自然语言理解模型的参数。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述训练语句输入到所述老师自然语言理解模型和所述学生自然语言理解模型,获取所述老师自然语言理解模型隐藏层输出的第一特征和所述学生自然语言理解模型隐藏层输出的第二特征;
计算所述第二特征相对所述第一特征的第三损失;
根据所述第三损失调整所述学生自然语言理解模型的参数。
4.如权利要求1所述的方法,其特征在于,所述计算所述第四句向量相对所述第三句向量的感知损失,包括:
计算所述第四句向量映射的理解结果相对所述第三句向量映射的理解结果的感知损失。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述理解结果包括所述训练语句的意图和意图的关键信息。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述老师自然语言理解模型的层数和/或参数大于所述学生自然语言理解模型。
7.一种自然语言理解模型训练装置,其特征在于,包括:
第一训练单元,用于通过训练语句以及级联后的老师自然语言理解模型和感知损失网络,对所述感知损失网络进行训练,其中所述老师自然语言理解模型的输入为所述训练语句、输出为对所述训练语句处理得到的第一句向量,所述感知损失模型的输入为所述第一句向量、输出为对所述第一句向量处理得到的第二句向量,所述感知损失网络基于所述第二句向量映射的理解结果相对所述训练语句对应的理解结果真值的第一损失调整参数,所述感知损失网络采用多层序列变换transformer结构;
第二训练单元,用于将所述训练语句输入级联后的所述老师自然语言理解模型和训练后的所述感知损失网络进行处理,得到第三句向量,以及将所述训练语句输入级联后的学生自然语言理解模型和训练后的所述感知损失网络进行处理,得到第四句向量;计算所述第四句向量相对所述第三句向量的感知损失;以及根据所述感知损失调整所述学生自然语言理解模型的参数,获得训练完成的学生自然语言理解模型。
8.如权利要求7所述的装置,其特征在于,所述第一训练单元,还用于将所述训练语句输入到所述老师自然语言理解模型进行处理,得到第五句向量;计算所述第五句向量映射的理解结果相对所述训练语句对应的理解结果真值的第二损失;以及根据所述第二损失调整所述老师自然语言理解模型的参数。
9.如权利要求7所述的装置,其特征在于,所述第二训练单元,还用于将所述训练语句输入到所述老师自然语言理解模型和所述学生自然语言理解模型,获取所述老师自然语言理解模型隐藏层输出的第一特征和所述学生自然语言理解模型隐藏层输出的第二特征;计算所述第二特征相对所述第一特征的第三损失;以及根据所述第三损失调整所述学生自然语言理解模型的参数。
10.如权利要求7所述的装置,其特征在于,所述第二训练单元计算所述第四句向量相对所述第三句向量的感知损失时,具体用于计算所述第四句向量映射的理解结果相对所述第三句向量映射的理解结果的感知损失。
11.如权利要求7-10中任一项所述的装置,其特征在于,所述理解结果包括所述训练语句的意图和意图的关键信息。
12.如权利要求7-11中任一项所述的装置,其特征在于,所述老师自然语言理解模型的层数和/或参数大于所述学生自然语言理解模型。
13.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,存储有计算机程序;
所述处理器,用于调用所述存储器中存储的计算机程序,执行如权利要求1-6中任一项所述的方法。
14.一种计算机存储介质,其特征在于,所述计算机可读存储介质包括计算机程序或指令,当计算机程序或指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6中任一项所述的方法。
15.一种芯片,其特征在于,所述芯片用于执行存储器中存储的计算机程序或指令,实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165670.0A CN114490922A (zh) | 2020-10-27 | 2020-10-27 | 一种自然语言理解模型训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165670.0A CN114490922A (zh) | 2020-10-27 | 2020-10-27 | 一种自然语言理解模型训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490922A true CN114490922A (zh) | 2022-05-13 |
Family
ID=81470506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165670.0A Pending CN114490922A (zh) | 2020-10-27 | 2020-10-27 | 一种自然语言理解模型训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490922A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115329744A (zh) * | 2022-10-11 | 2022-11-11 | 浪潮电子信息产业股份有限公司 | 一种自然语言处理方法、系统、设备及存储介质 |
CN116881428A (zh) * | 2023-09-06 | 2023-10-13 | 杭州华鲤智能科技有限公司 | 一种语言模型训练方法及装置 |
-
2020
- 2020-10-27 CN CN202011165670.0A patent/CN114490922A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115329744A (zh) * | 2022-10-11 | 2022-11-11 | 浪潮电子信息产业股份有限公司 | 一种自然语言处理方法、系统、设备及存储介质 |
CN115329744B (zh) * | 2022-10-11 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 一种自然语言处理方法、系统、设备及存储介质 |
WO2024077981A1 (zh) * | 2022-10-11 | 2024-04-18 | 浪潮电子信息产业股份有限公司 | 一种自然语言处理方法、系统、设备及存储介质 |
CN116881428A (zh) * | 2023-09-06 | 2023-10-13 | 杭州华鲤智能科技有限公司 | 一种语言模型训练方法及装置 |
CN116881428B (zh) * | 2023-09-06 | 2023-11-21 | 杭州华鲤智能科技有限公司 | 一种语言模型训练方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021047286A1 (zh) | 文本处理模型的训练方法、文本处理方法及装置 | |
CN113762322B (zh) | 基于多模态表示的视频分类方法、装置和设备及存储介质 | |
WO2020228376A1 (zh) | 文本处理方法、模型训练方法和装置 | |
CN112883149B (zh) | 一种自然语言处理方法以及装置 | |
JP2022531641A (ja) | 量子化モデルの最適化方法、装置、情報推薦方法、装置、ニューラルネットワークモデルの最適化方法、装置、電子機器及びコンピュータプログラム | |
CN111160350B (zh) | 人像分割方法、模型训练方法、装置、介质及电子设备 | |
CN116415654A (zh) | 一种数据处理方法及相关设备 | |
CN111898636B (zh) | 一种数据处理方法及装置 | |
WO2022253074A1 (zh) | 一种数据处理方法及相关设备 | |
CN111368545A (zh) | 一种基于多任务学习的命名实体识别方法和装置 | |
CN111709493A (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
CN114490922A (zh) | 一种自然语言理解模型训练方法及装置 | |
CN114443899A (zh) | 视频分类方法、装置、设备及介质 | |
CN113850362A (zh) | 一种模型蒸馏方法及相关设备 | |
CN116432019A (zh) | 一种数据处理方法及相关设备 | |
CN116644168A (zh) | 一种交互数据构建方法、装置、设备及存储介质 | |
CN116541492A (zh) | 一种数据处理方法及相关设备 | |
CN117668563B (zh) | 文本识别方法、装置、电子设备及可读存储介质 | |
CN110991279A (zh) | 文档图像分析与识别方法及系统 | |
CN117634459A (zh) | 目标内容生成及模型训练方法、装置、系统、设备及介质 | |
CN116743692B (zh) | 一种历史消息折叠方法和系统 | |
CN113486659A (zh) | 文本匹配方法、装置、计算机设备及存储介质 | |
CN116821307A (zh) | 内容交互方法、装置、电子设备和存储介质 | |
CN117291185A (zh) | 任务处理方法、实体识别方法及任务处理的数据处理方法 | |
CN116663523A (zh) | 多角度增强网络的语义文本相似度计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |