CN112733550B - 基于知识蒸馏的语言模型训练方法、文本分类方法及装置 - Google Patents

基于知识蒸馏的语言模型训练方法、文本分类方法及装置 Download PDF

Info

Publication number
CN112733550B
CN112733550B CN202011627649.8A CN202011627649A CN112733550B CN 112733550 B CN112733550 B CN 112733550B CN 202011627649 A CN202011627649 A CN 202011627649A CN 112733550 B CN112733550 B CN 112733550B
Authority
CN
China
Prior art keywords
model
training
hidden
middle layer
layer data
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.)
Active
Application number
CN202011627649.8A
Other languages
English (en)
Other versions
CN112733550A (zh
Inventor
朱磊
孙瑜声
李宝善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
iFlytek Co Ltd
Original Assignee
iFlytek Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by iFlytek Co Ltd filed Critical iFlytek Co Ltd
Priority to CN202011627649.8A priority Critical patent/CN112733550B/zh
Publication of CN112733550A publication Critical patent/CN112733550A/zh
Application granted granted Critical
Publication of CN112733550B publication Critical patent/CN112733550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

本申请公开了基于知识蒸馏的语言模型训练方法、文本分类方法及装置。该语言模型训练方法包括:将训练语料输入到第一模型与第二模型中进行处理,以获取对应的中间层数据以及输出结果;利用对应的中间层数据计算得到第一隐层句子内容以及第二隐层句子内容,并基于第一隐层句子内容与第二隐层句子内容构造对比学习正负例,利用对比学习正负例、对应的中间层数据以及输出结果对第二模型进行训练,并将训练完成后的第二模型确定为语言模型。通过上述分类模型,本申请能够将第一模型丰富的句子语法以及语义表征迁移到第二模型中,使蒸馏获得的第二模型具有更好的迁移能力,从而满足跨领域的应用需求。

Description

基于知识蒸馏的语言模型训练方法、文本分类方法及装置
技术领域
本申请涉及自然语言处理领域和模型压缩领域,特别是涉及基于知识蒸馏的语言模型训练方法、文本分类方法及装置。
背景技术
知识蒸馏是2015年Hinton等人提出的基于教师-学生的模型压缩方式,通过引入大规模教师(teacher)模型以诱导小规模学生(student)模型的训练,实现知识迁移。做法是先训练一个教师模型,然后使用教师模型的输出和数据的标注标签去训练学生模型,使得学生模型不仅可以从标注数据中学习如何判断正确样本的类别,还可以从教师模型中学习类间关系。
现有的预训练语言模型蒸馏方法通常使用将输出分数对齐以及中间层对齐的蒸馏方式,这种方式能够在某个特定任务的数据上,使学生模型的输出分数接近教师模型的输出分数,然而,如果换一个新领域的数据进行测试,蒸馏获得的学生模型的迁移能力就得不到保证,无法准确迁移教师模型丰富的句子语法以及语义表征,导致学生模型的精度会比教师模型的精度下降很多,从而无法满足跨领域的应用需求。
发明内容
本申请主要解决的技术问题是提供一种基于知识蒸馏的语言模型训练方法、文本分类方法及装置,通过在蒸馏过程中构造对比学习正负例,利用对比学习正负例对第二模型进行训练,以将第一模型丰富的句子语法以及语义表征迁移到第二模型中。
为解决上述技术问题,本申请采用的第一技术方案是提供一种基于知识蒸馏的语言模型训练方法,该方法包括:获取样本数据集,样本数据集包括多个训练语料以及训练语料的标注标签;将多个训练语料输入到第一模型,通过第一模型对训练语料进行处理,得到第一模型对训练语料进行处理的中间层数据以及输出结果;以及将多个训练语料输入到第二模型,通过第二模型对训练语料进行处理,得到第二模型对训练语料进行处理的中间层数据以及输出结果;其中,第一模型的中间层数量大于第二模型的中间层数量;分别计算得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及第二模型的中间层数据对应的各个训练数据的第二隐层句子内容;从第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例;其中,正例包括同一训练语料对应的第一隐层句子内容以及第二隐层句子内容;负例包括正例中的第一隐层句子内容以及其他不同训练语料的第二隐层句子内容;利用样本数据集、第一模型的中间层数据以及输出结果、第二模型的中间层数据以及输出结果、正例以及负例对第二模型进行训练,并将训练完成后的第二模型确定为语言模型。
其中,分别计算得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及第二模型的中间层数据对应的各个训练数据的第二隐层句子内容的步骤,包括:分别对第一模型的中间层数据以及第二模型的中间层数据进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵以及第二模型的中间层数据之间的词间关系矩阵;利用第一模型的中间层数据之间的词间关系矩阵对第一模型的中间层数据进行特征提取,得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容;以及利用第二模型的中间层数据之间的词间关系矩阵对第二模型的中间层数据进行特征提取,得到第二模型的中间层数据对应的各个训练数据的第二隐层句子内容。
其中,分别对第一模型的中间层数据以及第二模型的中间层数据进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵以及第二模型的中间层数据之间的词间关系矩阵的步骤,包括:选出第一模型的中间层与第二模型的中间层功能相同的中间层数据;对第一模型选出的中间层数据进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵;利用第一模型的中间层数据之间的词间关系矩阵对第一模型的中间层数据进行特征提取,得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容的步骤,包括:利用选出的第一模型的中间层数据之间的词间关系矩阵对第一模型的中间层数据进行特征提取,得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容。
其中,选出第一模型的中间层与第二模型的中间层功能相同的中间层数据的步骤,包括:分别将每一层功能相同的中间层的中间层数据建立映射,得到第一模型与第二模型的中间层的映射关系;从第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例;其中,正例包括同一训练语料对应的第一隐层句子内容以及第二隐层句子内容;负例包括正例中的第一隐层句子内容以及其他不同训练语料的第二隐层句子内容的步骤,包括:利用映射关系,选出同一训练语料对应于第一模型以及第二模型的功能相同的中间层的中间层数据的第一隐层句子内容以及第二隐层句子内容,作为正例;以及利用映射关系,选出其他不同训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容,并将其他不同训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容以及正例中的第一隐层句子内容作为负例。
其中,利用样本数据集、第一模型的中间层数据以及输出结果、第二模型的中间层数据以及输出结果、正例以及负例对第二模型进行训练,并将训练完成后的第二模型确定为语言模型的步骤,包括:计算得到第二模型对训练语料的输出结果相对于标注标签的交叉熵损失函数;以及计算得到第一模型的中间层数据与第二模型的中间层数据的均值平方差损失函数;以及计算得到正例与负例的对比损失函数;以及计算得到第一模型的输出结果与第二模型的输出结果的相对熵损失函数;通过交叉熵损失函数、均值平方差损失函数、对比损失函数以及相对熵损失函数对第二模型进行训练,并将训练完成后的第二模型确定为语言模型。
其中,通过交叉熵损失函数、均值平方差损失函数、对比损失函数以及相对熵损失函数对第二模型进行训练,并将训练完成后的第二模型确定为语言模型的步骤,包括:分别计算得到交叉熵损失函数、均值平方差损失函数、对比损失函数以及相对熵损失函数的损失值;将损失值求和得到第二模型的总的蒸馏损失值;利用总的蒸馏损失值对第二模型的模型参数进行反向训练,得到语言模型。
其中,计算得到正例与负例的对比损失函数的步骤,包括:将正例的向量分别与每一个负例的向量进行点积计算,得到正例与每一个负例的相似度表征;利用正例与每一个负例的相似度表征计算得到对比损失函数。
其中,分别计算得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及第二模型的中间层数据对应的各个训练数据的第二隐层句子内容的步骤,包括:构建第一记忆库以及第二记忆库;将第一隐层句子内容存储到第一记忆库中,并将第二隐层句子内容存储到第二记忆库中;从第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例的步骤包括:从第一记忆库中选择正例中的第一隐层句子内容,并从第二记忆库中查询到与第一隐层句子内容对应的同一训练语料的第二隐层句子内容;以及从第一记忆库中选择负例中的第一隐层句子内容,并从第二记忆库中查询到与第一隐层句子内容对应的不同训练语料的第二隐层句子内容。
其中,第一模型为教师模型,第二模型为学生模型。
为解决上述技术问题,本申请采用的第二技术方案是提供一种基于语言模型的文本分类方法,语言模型为上述训练完成后的第二模型,该方法包括:接收待分类文本;将待分类文本输入到语言模型中,通过语言模型对待分类文本进行处理,得到分类好的文本。
为解决上述技术问题,本申请采用的第三技术方案是提供一种基于知识蒸馏的语言模型训练装置,该训练装置包括存储器以及处理器;存储器用于存储程序数据,存储程序数据被执行时实现如上述任一项所述的语言模型训练方法中的步骤;处理器用于执行存储器存储的程序指令以实现如上述任一项所述的语言模型训练方法中的步骤。
为解决上述技术问题,本申请采用的第四技术方案是提供一种基于语言模型的文本分类装置,该文本分类装置包括存储器以及处理器;存储器用于存储程序数据,存储程序数据被执行时实现如上述的文本分类方法中的步骤;处理器用于执行存储器存储的程序指令以实现如上述的文本分类方法中的步骤。
为解决上述技术问题,本申请采用的第五技术方案是提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项所述的语言模型训练方法中的步骤或上述的文本分类方法中的步骤。
本申请的有益效果是:区别于现有技术,本申请通过在蒸馏过程中构造对比学习正负例,利用对比学习正负例对第二模型进行训练,以将第一模型丰富的句子语法以及语义表征迁移到第二模型中,能够使蒸馏出来的第二模型具有更好的迁移能力,从而满足跨领域的应用需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请基于知识蒸馏的语言模型训练方法一实施方式的流程示意图;
图2是图1中步骤S13一具体实施方式的流程示意图;
图3是本申请构造对比学习正负例一实施方式的流程示意图;
图4是本申请构造对比学习正负例另一实施方式的流程示意图;
图5是图1中步骤S15一具体实施方式的流程示意图;
图6是基于知识蒸馏的语言模型训练方法一实施方式的框架原理图;
图7是本申请基于语言模型的文本分类方法一实施方式的流程示意图;
图8是本申请基于知识蒸馏的语言模型训练装置一实施方式的结构示意图;
图9是本申请基于语言模型的文本分类装置一实施方式的结构示意图;
图10是本发明计算机可读存储介质一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,本文中使用的术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
使用预训练模型进行下游任务的微调已经成为了自然语言处理(NaturalLanguage Processing,NLP)领域的新范式,这个范式在很多自然语言处理任务,例如阅读理解任务和自然语言理解(General Language Understanding Evaluation,GLUE)任务中都可以取得极大的效果提升。常见的预训练模型,例如BERT、RoBerTa、ALBERT以及ELECTRA等都采用多层的Transformer作为核心骨架,而多层的Transformer骨架除了带来超强的非线性拟合能力和泛化能力之外,也给应用者带来了巨大的参数存储压力和推理速度慢等问题。尤其是对于高并发服务平均响应时间要求高的场景,例如在手机端访问司法智能客服或在国产中央处理器上做司法领域的文书审查工作时,预训练模型就会出现吞吐量低、平均响应时间高的问题,因此,需要对预训练模型进行推理加速。
知识蒸馏是2015年Hinton等人提出的基于教师-学生的模型压缩方式,通过引入大规模教师(teacher)模型以诱导小规模学生(student)模型的训练,实现知识迁移。做法是先训练一个教师模型,然后使用教师模型的输出和数据的标注标签去训练学生模型,使得学生模型不仅可以从标注数据中学习如何判断正确样本的类别,还可以从教师模型中学习类间关系。
现有的预训练语言模型蒸馏方法通常使用将输出分数对齐以及中间层对齐的蒸馏方式,通过对齐中间层数据,可以有效地提升最终输出分数的对齐效果。但是,这种方式仅能够在某个特定任务的数据上,让学生模型的输出分数和教师模型的输出分数的数值尽量保持一致,如果换一个新领域的数据进行测试,学生模型的效果会比教师模型的下降很多。例如,基于盗窃罪的卷宗进行蒸馏训练得到的学生模型,在使用盗窃罪卷宗进行测试时,学生模型效果与教师模型相当,但是,使用危险驾驶罪的卷宗进行测试,学生模型的效果相对教师模型下降10-20%以上,即蒸馏获得的学生模型迁移能力得不到保证,没有达到迁移教师模型丰富的句子语法、语义表征的目的,无法满足跨领域的应用需求。
基于上述情况,本申请提供一种基于知识蒸馏的语言模型训练方法、文本分类方法及装置,通过在蒸馏过程中构造对比学习正负例,利用对比学习正负例对第二模型进行训练,以将第一模型丰富的句子语法以及语义表征迁移到第二模型中,能够使蒸馏出来的第二模型具有更好的迁移能力,从而满足跨领域的应用需求。
具体地,请参阅图1,图1是本申请基于知识蒸馏的语言模型训练方法一实施方式的流程示意图。如图1所示,在本实施方式中,该方法包括:
S11:获取样本数据集,样本数据集包括多个训练语料以及训练语料的标注标签。
本实施方式中,训练语料包括分类任务的数据和/或序列标注任务的数据。
其中,分类任务的数据包括情感分类、主题分类以及文本蕴含等数据;序列标注任务的数据包括命名实体识别、词性标注以及语义角色标注等数据。
本实施方式中,分类任务的数据可以从司法领域的案情关联数据集和智能客服数据集中抽取。
在其他实施方式中,分类任务的数据还可以从其他领域的相关数据集中抽取,本申请对此不作限定。
本实施方式中,序列标注任务的数据可以从司法领域的作案要素数据集中抽取。
在其他实施方式中,序列标注任务的数据还可以从其他领域的相关数据集中抽取,本申请对此不作限定。
S12:将多个训练语料输入到第一模型,通过第一模型对训练语料进行处理,得到第一模型对训练语料进行处理的中间层数据以及输出结果;以及将多个训练语料输入到第二模型,通过第二模型对训练语料进行处理,得到第二模型对训练语料进行处理的中间层数据以及输出结果;其中,第一模型的中间层数量大于第二模型的中间层数量。
本实施方式中,第一模型为多层模型,如教师模型,第二模型为层数少于第一模型的待迁移模型,如学生模型。为了便于理解,本实施方式中以第一模型为教师模型,第二模型为学生模型为具体例来进行说明。
例如,教师模型的中间层由12层Transformer组成,学生模型的中间层由3层Transformer组成。
本实施方式中,使用预训练的12层模型通过训练语料进行再次训练来微调,反向传播更新模型参数,得到训练好的教师模型参数,以作为蒸馏训练中的教师模型。使用预训练的3层模型作为初始化的参数,或者使用预训练12层模型的前3层作为初始化的参数,以作为蒸馏训练中的学生模型。
具体地,预训练语言模型(例如Bert)的层数越多,效果指标越好,因而本实施方式根据效果指标选择12层Transformer作为教师模型。
在其他实施方式中,还可以选择24层Transformer作为教师模型,本申请对此不作限定。
具体地,预训练模型的层数越少,隐层单元个数越少,平均响应时间越短,例如,3层学生模型所需的推理时间仅为12层教师模型推理时间的1/4,因而本实施方式选择3层Transformer作为学生模型。
在其他实施方式中,由于4层的隐层单元个数为384的学生模型在T4卡上的推理时间仅为教师模型的1/9,还可以选择4层Transformer作为学生模型,本申请对此不作限定。
S13:分别计算得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及第二模型的中间层数据对应的各个训练数据的第二隐层句子内容。
请参阅图2,图2是图1中步骤S13一具体实施方式的流程示意图。如图2所示,在本实施方式中,分别计算得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及第二模型的中间层数据对应的各个训练数据的第二隐层句子内容的步骤具体包括:
S21:分别对第一模型的中间层数据以及第二模型的中间层数据进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵以及第二模型的中间层数据之间的词间关系矩阵。
在蒸馏过程中,由于第一模型如教师模型的层数比第二模型如学生模型的层数多,为了将教师模型与学生模型的中间层数据对齐,需要在教师模型与学生模型间构造映射关系,得到存在对应关系的中间层。
本实施方式中,选出第一模型的中间层与第二模型的中间层功能相同的中间层数据,并分别将每一层功能相同的中间层的中间层数据都建立映射,得到第一模型与第二模型之间的映射关系,如教师模型与学生模型的中间层的映射关系。
其中,采用“间隔式”的映射关系,得到l个中间层的映射对其中,l为第二模型即学生模型的中间层数量。
例如,接上面的例子,由于本实施方式中的教师模型共有12个中间层{t1,t2,...,t12},学生模型共有3个中间层{s1,s2,s3},因而得到3个中间层的映射对,映射结果为其中,Ti=t4i,Si=si,l=3。即选出教师模型的第4层、第8层以及第12层与与学生模型的第1层、第2层以及第3层作为功能相同的中间层。
进一步地,选出第一模型的第4层、第8层以及第12层对应的中间层数据以及第二模型的中间层数据/>
其中,为分别为教师模型第4层、第8层以及第12层的transformer结构的输出向量,/>分别为学生模型第1层、第2层以及第3层的transformer结构的输出向量。
进一步地,对教师模型选出的中间层数据进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵/>以及对学生模型的中间层数据进行内积计算,得到第二模型的中间层数据之间的词间关系矩阵
S22:利用第一模型的中间层数据之间的词间关系矩阵对第一模型的中间层数据进行特征提取,得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容;以及利用第二模型的中间层数据之间的词间关系矩阵对第二模型的中间层数据进行特征提取,得到第二模型的中间层数据对应的各个训练数据的第二隐层句子内容。
本实施方式中,根据构造出的映射关系,利用选出的第一模型的中间层数据之间的词间关系矩阵对第一模型的中间层数据进行特征提取,得到第一模型的中间层数据对应的各个训练数据的第一隐层句子内容。
具体地,第一模型的中间层数据之间的词间关系矩阵为基于该词间关系矩阵构造的隐层句子表征为/>
其中,即为构造出的第一模型的中间层数据对应的各个训练数据的第一隐层句子内容。
本实施方式中,第二模型的中间层数据之间的词间关系矩阵基于该词间关系矩阵构造的隐层句子表征为/>
其中,即为构造出的第二模型的中间层数据对应的各个训练数据的第二隐层句子内容。
进一步地,由于词间关系矩阵的大小和模型中输入的最大句长的平方成正比,且由于训练语料较多,为了避免过拟合以及提高收敛速度,本实施方式对词间关系矩阵进行降维处理以得到上述隐层句子表征,以提高训练效率。
具体地,将词间关系矩阵按照行进行顺序进行拼接,再使用线性变换对拼接得到的词间关系矩阵进行降维以得到上述隐层句子表征。
例如,在案情匹配任务中,模型的最大句长为512,那么词间关系矩阵的大小为512*512,将词间关系矩阵按照行进行拼接,再使用线性变换进行降维,可将隐层句子表征的维度由512维降到256维。
本实施方式中,使用词间关系矩阵来构造隐层句子内容,是由于词间的关系值大小能够反映句子的语法和语义,例如,句子“他偷了辆车”中的“他”与“偷”、“车”的关系值较大,体现了一种主谓宾的语法关系。使用基于词间关系矩阵构造的隐层句子内容对学生模型进行训练,能够使学生模型获取更为准确的语法及语义的表征能力。
通过第一模型的中间层数据之间的词间关系矩阵以及第二模型的中间层数据之间的词间关系矩阵对对应的中间层数据进行特征提取,能够构造出包含更多语法、语义的第一隐层句子内容以及第二隐层句子内容,从而为负例的构造提供尽可能多的输入文本。
S14:从第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例;其中,正例包括同一训练语料对应的第一隐层句子内容以及第二隐层句子内容;负例包括正例中的第一隐层句子内容以及其他不同训练语料的第二隐层句子内容。
本实施方式中,采用有监督的负采样方式从第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例。
具体地,通过如下方式构造对比学习的正例:
假设训练语料中包含一条训练样本(X0,Y0),其中,X0是该训练样本的文本输入,Y0是该训练样本的分类结果;
对于训练样本(X0,Y0),从第一隐层句子内容中选出对应训练样本(X0,Y0)的隐层句子表征再从第二隐层句子内容中选出对应训练样本(X0,Y0)的隐层句子表征/>
基于隐层句子表征以及隐层句子表征/>构造出对比学习的正例/>
进一步地,通过如下方式构造对比学习的至少一个负例:
从第二隐层句子内容中选出K个对应于其他训练样本的隐层句子表征
基于隐层句子表征与隐层句子表征/>构造出对比学习的K个负例
请参阅图3,图3是本申请构造对比学习正负例一实施方式的流程示意图。如图3所示,在本实施方式中,所述方法包括:
S31:选出第一模型的中间层与第二模型的中间层功能相同的中间层数据。
例如,选出第一模型的第4层、第8层以及第12层对应的中间层数据以及第二模型的中间层数据/>
S32:分别将每一层功能相同的中间层的中间层数据建立映射,得到第一模型与第二模型的中间层的映射关系。
S33:利用映射关系,选出同一训练语料对应于第一模型以及第二模型的功能相同的中间层的中间层数据的第一隐层句子内容以及第二隐层句子内容,作为正例;以及利用映射关系,选出其他不同训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容,并将其他不同训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容以及正例中的第一隐层句子内容作为负例。
本实施方式中,采用有监督的负采样方式从存在映射关系的中间层数据对应的第一隐层句子内容以及第二隐层句子内容中选出对比学习的正例以及至少一个负例。
具体地,通过如下方式构造对比学习的正例:
假设训练语料中包含一条训练样本(X0,Y0),其中,X0是该训练样本的文本输入,Y0是该训练样本的分类结果;
利用映射关系,选出训练样本(X0,Y0)对应于第一模型以及第二模型的功能相同的中间层的中间层数据的第一隐层句子内容g0 T以及第二隐层句子内容构造出正例
进一步地,通过如下方式构造对比学习的至少一个负例:
利用映射关系,选出除了训练样本(X0,Y0)之外的其余训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容并将其他不同训练语料对应于功能相同的中间层的中间层数据的第二隐层句子内容/>以及正例中的第一隐层句子内容/>作为负例,构造出K个负例/>
现有技术中,正负例的构造及使用与蒸馏过程无关,在蒸馏过程中采取的方式是使学生模型的正例分数与教师模型的正例分数相近,而学生模型的负例分数与教师模型的负例分数相近。
本实施方式将正负例的构造及使用应用到蒸馏过程中,将每个输入样本都看作是一个单独的类,并将输入样本来源相同的作为正例,将输入样本来源不同的作为负例,能够使得第二模型与第一模型对于同一输入样本的表征越近,对于不同输入样本的表征越远,从而最大化了正例表征与负例表征这两个概率分布的互信息的下界,增加了第二模型对于语法及语义的训练过程,进而将第一模型的语法和语义的表征能力迁移到第二模型中,以提高第二模型的迁移能力和泛化能力。
继续参阅图4,图4是本申请构造对比学习正负例另一实施方式的流程示意图。如图4所示,在本实施方式中,所述方法包括:
S41:构建第一记忆库以及第二记忆库。
本实施方式中,第一记忆库与第二记忆库的大小均表示为{N*l*d},其中,N为样本集中训练语料的数量,l为模型中间层的个数,d为隐层句子内容的维度。
具体地,由于选出了教师模型的第4层、第8层以及第12层与与学生模型的第1层、第2层以及第3层作为功能相同的中间层,故l为3;由于对词间关系矩阵进行降维,因而第一隐层句子内容与第二隐层句子内容的d均为256维。
S42:将第一隐层句子内容存储到第一记忆库中,并将第二隐层句子内容存储到第二记忆库中。
本实施方式中,构造两个记忆库来分别存储第一模型与第二模型在全量的训练语料上构造的第一隐层句子内容与第二隐层句子内容。
具体地,每一组输入数据通过隐层句子可以构造出多个句子表示,以及构造大量的负例,把这些隐层句子内容存在记忆库,能够避免重新构建,以方便后续计算正例与负例的对比损失函数。
S43:从第一记忆库中选择正例中的第一隐层句子内容,并从第二记忆库中查询到与第一隐层句子内容对应的同一训练语料的第二隐层句子内容;以及从第一记忆库中选择负例中的第一隐层句子内容,并从第二记忆库中查询到与第一隐层句子内容对应的不同训练语料的第二隐层句子内容。
进一步地,由于第一模型在蒸馏的时候参数固定不变,因此第一记忆库在第一次初始化后就保持不变,而第二记忆库在蒸馏的时候会同步更新。
区别于现有技术,本实施方式构造第一记忆库与第二记忆库,并使用第一记忆库与第二记忆库分别存储第一隐层句子内容与第二隐层句子内容,以便在构造对比学习正负例时直接从第一记忆库与第二记忆库选取相应的隐层句子表征,能够避免重复构造隐层句子内容,从而提高对比训练的效率。
S15:利用样本数据集、第一模型的中间层数据以及输出结果、第二模型的中间层数据以及输出结果、正例以及负例对第二模型进行训练,并将训练完成后的第二模型确定为语言模型。
请参阅图5,图5是图1中步骤S15一具体实施方式的流程示意图。如图5所示,在本实施方式中,利用样本数据集、第一模型的中间层数据以及输出结果、第二模型的中间层数据以及输出结果、正例以及负例对第二模型进行训练,并将训练完成后的第二模型确定为语言模型的步骤具体包括:
S51:计算得到第二模型对训练语料的输出结果相对于标注标签的交叉熵损失函数;以及计算得到第一模型的中间层数据与第二模型的中间层数据的均值平方差损失函数;以及计算得到正例与负例的对比损失函数;以及计算得到第一模型的输出结果与第二模型的输出结果的相对熵损失函数。
本实施方式中,基于第二模型对训练语料的输出结果、训练语料对应的标注标签的概率值以及第二模型相对于第一模型的压缩角度计算得到第二模型对训练语料的输出结果相对于标注标签的交叉熵(Cross Entropy,CE)损失函数。
具体地,第二模型对训练语料的输出结果相对于标注标签的交叉熵损失函数的计算公式为:
Lhard(zS,y;θ)=CE(zS,y;θ) (1)
其中,zS为第二模型对训练语料的输出结果,y为训练语料对应的标注标签的概率值,θ为第二模型相对于第一模型的压缩角度。
本实施方式中,基于第一模型的中间层数据与第二模型的中间层数据为中间层功能相同的中间层数据、第二模型相对于第一模型的压缩角度以及线性映射层计算得到第一模型的中间层数据与第二模型的中间层数据的均值平方差(Mean Square Error,MSE)损失函数。
具体地,第一模型的中间层数据与第二模型的中间层数据的均值平方差损失函数的计算公式为:
其中,为第i层的第一模型的中间层数据,/>为第i层的第二模型的中间层数据,MSE为均方差函数,/>为第i层的线性映射层,θ为第二模型相对于第一模型的压缩角度。
进一步地,整个蒸馏过程的均值平方差损失函数的计算公式为:
其中,hT为第一模型的中间层数据,hS为第二模型的中间层数据,MSE为均方差函数,为第i层的线性映射层,θ为第二模型相对于第一模型的压缩角度,l为第二模型的中间层数量。
在其他实施方式中,还可对第i层的第二模型的中间层数据进行线性变换,以使第二模型的中间层单元的个数与第一模型的中间层单元的个数相同。
本实施方式中,将正例的向量分别与每一个负例的向量进行点积计算,得到正例与每一个负例的相似度表征;利用正例与每一个负例的相似度表征计算得到对比(NoiseContrastive Estimation,NCE)损失函数。
具体地,基于训练样本(X0,Y0),得到正例与K个负例/>则正例与负例的对比损失函数的计算公式为:
其中,θi为第二模型的第i层相对于第一模型的第i层的压缩角度,Si和Ti分别为第二模型和第一模型的第i层,<...>操作表示对两个向量进行点积操作,log表示对数函数,K为常数,τ为超参数。
其中,K通常取4096。
进一步地,整个蒸馏过程的对比损失函数的计算公式为:
其中,θ为第二模型相对于第一模型的压缩角度,θi为第二模型的第i层相对于第一模型的第i层的压缩角度,l为第二模型的中间层数量。
本实施方式中,对比损失函数用来衡量正例与负例的相似度。
本实施方式中,基于第一模型的输出结果与第二模型的输出结果以及第二模型相对于第一模型的压缩角度计算得到第一模型的输出结果与第二模型的输出结果的相对熵(Relative Entropy,RE)损失函数。
具体地,第一模型的输出结果与第二模型的输出结果的相对熵损失函数的计算公式为:
LKD(zT,zS;θ)=CE(zS,zT;θ) (6)
其中,zT为第一模型的输出结果,zS为第二模型的输出结果,θ为第二模型相对于第一模型的压缩角度。
其中,第一模型的输出结果与第二模型的输出结果的相对熵损失函数可用来衡量zT和zS两个分度的KL散度。
S52:通过交叉熵损失函数、均值平方差损失函数、对比损失函数以及相对熵损失函数对第二模型进行训练,并将训练完成后的第二模型确定为语言模型。
本实施方式中,通过上述计算公式分别计算得到交叉熵损失函数、均值平方差损失函数、对比损失函数以及相对熵损失函数的损失值。
进一步地,将损失值求和得到第二模型的总的蒸馏损失值。
具体地,第二模型的总的蒸馏损失值的计算公式如下:
Lall=α1LNCE(θ)+α2Lhard(zS,y;θ)+α3LKD(zT,zS;θ)+α4LMSE(hT,hS;θ) (7)
其中,LNCE(θ)为整个蒸馏过程的对比损失函数,Lhard(zS,y;θ)为第二模型对训练语料的输出结果相对于标注标签的交叉熵损失函数,LKD(zT,zS;θ)为第一模型的输出结果与第二模型的输出结果的相对熵损失函数,LMSE(hT,hS;θ)为整个蒸馏过程的均值平方差损失函数,α1、α2、α3、α4分别为上述四类函数对应的损失值权重。
本实施方式中,利用总的蒸馏损失值对第二模型的模型参数进行反向训练,得到语言模型。
具体地,利用总的蒸馏损失值对第二模型的模型参数进行反向训练指定是使用Adam优化器来计算所有模型参数的梯度值,并反向更新第二模型的参数值,达到优化模型的目的。
其中,反向更新第二模型的参数值包括更新第二记忆库中的对比学习正负例,以计算得到新的第二模型对应的第二隐层句子内容,并将新的第二模型对应的第二隐层句子内容存储到第二记忆库中。
本实施方式中,每次反向更新的幅度比较小,这是为了确保第二模型参数更新前后的效果平滑性。
进一步地,迭代输入新的训练语料到第一模型和第二模型中,始终固定第一模型参数不变,不断重复步骤S12~S15中的蒸馏过程,直到蒸馏的效果收敛,得到最优的第二模型,并将最优的第二模型确定为语言模型。
本实施方式获取的语言模型为经过压缩的3层学生模型,学生模型的参数量大约是教师模型的1/3,而学生模型的推理速度是教师模型的3倍,且学生模型在测试集上的效果与教师模型相当。
本实施方式通过构造对比学习正负例,并利用对比学习正负例对学生模型进行训练,能够使学生模型与教师模型对于同一输入文本的表征更近,而对于不同输入文本的表征更远,从而将教师模型的语法和语义的表征能力迁移到学生模型中,使学生模型具有更好的迁移能力,从而满足跨领域的应用需求。
区别于现有技术,本实施方式通过构造对比学习正负例,并利用对比学习正负例对学生模型进行训练,能够使学生模型与教师模型对于同一输入文本的表征更近,而对于不同输入文本的表征更远,从而将教师模型的语法和语义的表征能力迁移到学生模型中,使学生模型具有更好的迁移能力,从而满足跨领域的应用需求。
为了进一步说明上述训练方法的过程,请进一步参阅图6,图6是基于知识蒸馏的语言模型训练方法一实施方式的框架原理图。如图6所示,选择教师模型即teacher模型的第4层、第8层以及第12层分别与student模型的第1层、第2层以及第3层对应。
本实施方式中,基于训练样本(X0,Y0),teacher模型的中间层数据为第4层、第8层以及第12层的transformer结构的输出向量学生模型student模型的中间层数据为第1层、第2层以及第3层的transformer结构的输出向量/>
其中,通过对线性映射层对应的输出向量进行计算,获得teacher模型的中间层数据与student模型的中间层数据的均值平方差损失函数(MSE loss)。
其中,分别对与/>进行内积计算,得到第一模型的中间层数据之间的词间关系矩阵/>与第二模型的中间层数据之间的词间关系矩阵继而通过对/>与/>进行降维,得到对应训练样本(X0,Y0)的第一隐层句子内容与第二隐层句子内容。
进一步地,基于对应训练样本(X0,Y0)的第一隐层句子内容与第二隐层句子内容构造对比学习正负例,其中,正例为负例为/>
其中,将正例的向量分别与每一个负例的向量进行点积计算,得到正例与每一个负例的相似度表征;利用正例与每一个负例的相似度表征计算得到对比损失函数(NCEloss)。
本实施方式中,基于训练样本(X0,Y0),teacher模型的输出结果与student模型的输出结果分别为经teacher模型与student模型的全连接层(Fully Connected layers,FC)处理后的得到的结果zT与zS
其中,基于zT与zS以及student模型相对于teacher模型的压缩角度计算得到teacher模型的输出结果与student模型的输出结果的相对熵损失函数(RE loss)。
本实施方式中,基于zS、训练语料对应的标注标签的概率值y以及student模型相对于teacher模型的压缩角度计算得到student模型对训练语料的输出结果相对于标注标签的交叉熵损失函数(CE loss)。
区别于现有技术,本实施方式通过构造对比学习正负例,并利用对比学习正负例对学生模型进行训练,能够使学生模型与教师模型对于同一输入文本的表征更近,而对于不同输入文本的表征更远,从而将教师模型的语法和语义的表征能力迁移到学生模型中,使学生模型具有更好的迁移能力,从而满足跨领域的应用需求。
对应地,本申请提供一种基于语言模型的文本分类方法。
请参阅图7,图7是本申请基于语言模型的文本分类方法一实施方式的流程示意图。如图7所示,在本实施方式中,语言模型为基于上述任一实施方式的训练方法训练完成后的第二模型,该文本分类方法包括:
S71:接收待分类文本。
S72:将待分类文本输入到语言模型中,通过语言模型对待分类文本进行处理,得到分类好的文本。
在一个具体的实施场景中,例如,在国产中央处理器上做司法文书案情关联,首先获取训练好的语言模型,再接收相关的司法文书,将司法文书整理成符合输入协议的文本数据,继而将文本数据输入到上述语言模型中,获得案情关联的结果。
由于该实施场景中所用的语言模型为经过蒸馏训练压缩的学生模型,故进行案情关联工作的平均响应时间为使用原始教师模型时间的1/4,从而使平均响应时间达到了用户可以接受的水平,继而实现了推理工作的加速。
进一步地,由于在蒸馏训练语言模型的过程中引入了对比学习正负例,因而可以将原始模型丰富的句子语法以及语义表征迁移到训练好的语言模型中,使获取的语言模型具有较好的迁移能力,从而能够应用在更多的实施场景中。
区别于现有技术,本实施方式通过在蒸馏过程中构造对比学习正负例,利用对比学习正负例对第二模型进行训练,以将第一模型丰富的句子语法以及语义表征迁移到第二模型中,能够使蒸馏出来的第二模型具有更好的迁移能力,将训练好的第二模型作为语言模型应用到不同领域的分类任务中,不仅能够实现推理加速,还能达到与教师模型相当的精度,从而满足跨领域的应用需求。
对应地,本申请提供一种基于知识蒸馏的语言模型训练装置。
请参阅图8,图8是本申请基于知识蒸馏的语言模型训练装置一实施方式的结构示意图。如图8所示,语言模型训练装置80包括相互耦接的处理器81和存储器82。
本实施方式中,存储器82用于存储程序数据,程序数据被执行时可实现如上述任一项所述的语言模型训练方法中的步骤;处理器81用于执行存储器82存储的程序指令以实现上述任一方法实施例中语言模型训练方法中的步骤或者上述任一方法实施例中语言模型训练装置对应执行的步骤。
具体而言,处理器81用于控制其自身以及存储器82以实现上述任一实施例中语言模型训练方法中的步骤。处理器81还可以称为CPU(Central Processing Unit,中央处理单元)。处理器81可能是一种集成电路芯片,具有信号的处理能力。处理器81还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器81可以由多个集成电路芯片共同实现。
区别于现有技术,本实施方式通过构造对比学习正负例,并利用对比学习正负例对学生模型进行训练,能够使学生模型与教师模型对于同一输入文本的表征更近,而对于不同输入文本的表征更远,从而将教师模型的语法和语义的表征能力迁移到学生模型中,使学生模型具有更好的迁移能力,从而满足跨领域的应用需求。
对应地,本申请提供一种基于语言模型的文本分类装置。
请参阅图9,图9是本申请基于语言模型的文本分类装置一实施方式的结构示意图。如图9所示,文本分类装置90包括相互耦接的处理器91和存储器92。
本实施方式中,存储器92用于存储程序数据,程序数据被执行时可实现如上述的文本分类方法中的步骤;处理器91用于执行存储器92存储的程序指令以实现上述任一方法实施例中文本分类方法中的步骤或者上述任一方法实施例中文本分类装置对应执行的步骤。
具体而言,处理器91用于控制其自身以及存储器92以实现上述任一实施例中文本分类方法中的步骤。处理器91还可以称为CPU(Central Processing Unit,中央处理单元)。处理器91可能是一种集成电路芯片,具有信号的处理能力。处理器91还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器91可以由多个集成电路芯片共同实现。
区别于现有技术,本实施方式通过在蒸馏过程中构造对比学习正负例,利用对比学习正负例对第二模型进行训练,以将第一模型丰富的句子语法以及语义表征迁移到第二模型中,能够使蒸馏出来的第二模型具有更好的迁移能力,将训练好的第二模型作为语言模型应用到不同领域的分类任务中,不仅能够实现推理加速,还能达到与教师模型相当的精度,从而满足跨领域的应用需求。
对应地,本申请提供一种计算机可读存储介质。
请参阅图10,图10是本发明计算机可读存储介质一实施方式的结构示意图。
计算机可读存储介质100包括计算机可读存储介质100上存储的计算机程序1001,所述计算机程序1001被上述处理器执行时实现上述任一方法实施例中语言模型训练方法中的步骤或者上述的文本分类方法中的步骤以及上述方法实施例中语言模型训练装置或文本分类装置对应执行的步骤。
具体地,集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质100中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质100中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的计算机可读存储介质100包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (13)

1.一种基于知识蒸馏的语言模型训练方法,其特征在于,包括:
获取样本数据集,所述样本数据集包括多个训练语料以及所述训练语料的标注标签;
将多个所述训练语料输入到第一模型,通过所述第一模型对所述训练语料进行处理,得到所述第一模型对所述训练语料进行处理的中间层数据以及输出结果;以及
将多个所述训练语料输入到第二模型,通过所述第二模型对所述训练语料进行处理,得到所述第二模型对所述训练语料进行处理的中间层数据以及输出结果;其中,所述第一模型的中间层数量大于所述第二模型的中间层数量;
分别计算得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及所述第二模型的中间层数据对应的各个训练数据的第二隐层句子内容;
从所述第一隐层句子内容以及所述第二隐层句子内容中选出对比学习的正例以及至少一个负例;其中,所述正例包括同一训练语料对应的第一隐层句子内容以及第二隐层句子内容;所述负例包括所述正例中的第一隐层句子内容以及其他不同训练语料的第二隐层句子内容;
利用所述样本数据集、所述第一模型的中间层数据以及输出结果、所述第二模型的中间层数据以及输出结果、所述正例以及所述负例对所述第二模型进行训练,并将训练完成后的第二模型确定为所述语言模型。
2.根据权利要求1所述的语言模型训练方法,其特征在于,所述分别计算得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及所述第二模型的中间层数据对应的各个训练数据的第二隐层句子内容的步骤,包括:
分别对所述第一模型的中间层数据以及所述第二模型的中间层数据进行内积计算,得到所述第一模型的中间层数据之间的词间关系矩阵以及所述第二模型的中间层数据之间的词间关系矩阵;
利用所述第一模型的中间层数据之间的词间关系矩阵对所述第一模型的中间层数据进行特征提取,得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容;以及
利用所述第二模型的中间层数据之间的词间关系矩阵对所述第二模型的中间层数据进行特征提取,得到所述第二模型的中间层数据对应的各个训练数据的第二隐层句子内容。
3.根据权利要求2所述的语言模型训练方法,其特征在于,所述分别对所述第一模型的中间层数据以及所述第二模型的中间层数据进行内积计算,得到所述第一模型的中间层数据之间的词间关系矩阵以及所述第二模型的中间层数据之间的词间关系矩阵的步骤,包括:
选出所述第一模型的中间层与所述第二模型的中间层功能相同的中间层数据;
对所述第一模型选出的所述中间层数据进行内积计算,得到所述第一模型的中间层数据之间的词间关系矩阵;
所述利用所述第一模型的中间层数据之间的词间关系矩阵对所述第一模型的中间层数据进行特征提取,得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容的步骤,包括:
利用选出的所述第一模型的中间层数据之间的词间关系矩阵对所述第一模型的中间层数据进行特征提取,得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容。
4.根据权利要求3所述的语言模型训练方法,其特征在于,所述选出所述第一模型的中间层与所述第二模型的中间层功能相同的中间层数据的步骤,包括:
分别将每一层功能相同的中间层的中间层数据建立映射,得到所述第一模型与所述第二模型的中间层的映射关系;
所述从所述第一隐层句子内容以及所述第二隐层句子内容中选出对比学习的正例以及至少一个负例;其中,所述正例包括同一训练语料对应的第一隐层句子内容以及第二隐层句子内容;所述负例包括所述正例中的第一隐层句子内容以及其他不同训练语料的第二隐层句子内容的步骤,包括:
利用所述映射关系,选出同一训练语料对应于所述第一模型以及所述第二模型的所述功能相同的中间层的中间层数据的第一隐层句子内容以及第二隐层句子内容,作为所述正例;以及
利用所述映射关系,选出其他不同训练语料对应于所述功能相同的中间层的中间层数据的第二隐层句子内容,并将所述其他不同训练语料对应于所述功能相同的中间层的中间层数据的第二隐层句子内容以及所述正例中的第一隐层句子内容作为所述负例。
5.根据权利要求1所述的语言模型训练方法,其特征在于,所述利用所述样本数据集、所述第一模型的中间层数据以及输出结果、所述第二模型的中间层数据以及输出结果、所述正例以及所述负例对所述第二模型进行训练,并将训练完成后的第二模型确定为所述语言模型的步骤,包括:
计算得到所述第二模型对所述训练语料的输出结果相对于所述标注标签的交叉熵损失函数;以及
计算得到所述第一模型的中间层数据与所述第二模型的中间层数据的均值平方差损失函数;以及
计算得到所述正例与所述负例的对比损失函数;以及
计算得到所述第一模型的输出结果与所述第二模型的输出结果的相对熵损失函数;
通过所述交叉熵损失函数、所述均值平方差损失函数、所述对比损失函数以及所述相对熵损失函数对所述第二模型进行训练,并将训练完成后的第二模型确定为所述语言模型。
6.根据权利要求5所述的语言模型训练方法,其特征在于,
所述通过所述交叉熵损失函数、所述均值平方差损失函数、所述对比损失函数以及所述相对熵损失函数对所述第二模型进行训练,并将训练完成后的第二模型确定为所述语言模型的步骤,包括:
分别计算得到所述交叉熵损失函数、所述均值平方差损失函数、所述对比损失函数以及所述相对熵损失函数的损失值;
将所述损失值求和得到所述第二模型的总的蒸馏损失值;
利用所述总的蒸馏损失值对所述第二模型的模型参数进行反向训练,得到所述语言模型。
7.根据权利要求5或6所述语言模型训练方法,其特征在于,所述计算得到所述正例与所述负例的对比损失函数的步骤,包括:
将所述正例的向量分别与每一个所述负例的向量进行点积计算,得到所述正例与每一个所述负例的相似度表征;
利用所述正例与每一个所述负例的相似度表征计算得到所述对比损失函数。
8.根据权利要求1所述的语言模型训练方法,其特征在于,所述分别计算得到所述第一模型的中间层数据对应的各个训练数据的第一隐层句子内容以及所述第二模型的中间层数据对应的各个训练数据的第二隐层句子内容的步骤,包括:
构建第一记忆库以及第二记忆库;
将所述第一隐层句子内容存储到所述第一记忆库中,并将所述第二隐层句子内容存储到所述第二记忆库中;
所述从所述第一隐层句子内容以及所述第二隐层句子内容中选出对比学习的正例以及至少一个负例的步骤包括:
从所述第一记忆库中选择所述正例中的第一隐层句子内容,并从所述第二记忆库中查询到与所述第一隐层句子内容对应的同一训练语料的第二隐层句子内容;以及
从所述第一记忆库中选择所述负例中的第一隐层句子内容,并从所述第二记忆库中查询到与所述第一隐层句子内容对应的不同训练语料的第二隐层句子内容。
9.根据权利要求1所述的语言模型训练方法,其特征在于,所述第一模型为教师模型,所述第二模型为学生模型。
10.一种基于语言模型的文本分类方法,其特征在于,所述语言模型为权利要求1~9中任一项所述的训练完成后的第二模型,
所述文本分类方法包括:
接收待分类文本;
将所述待分类文本输入到所述语言模型中,通过所述语言模型对所述待分类文本进行处理,得到分类好的文本。
11.一种基于知识蒸馏的语言模型训练装置,其特征在于,所述训练装置包括存储器以及处理器;
所述存储器用于存储程序数据,所述存储程序数据被执行时实现如权利要求1~9任一项所述的语言模型训练方法中的步骤;
所述处理器用于执行所述存储器存储的程序指令以实现如权利要求1~9任一项所述的语言模型训练方法中的步骤。
12.一种基于语言模型的文本分类装置,其特征在于,所述文本分类装置包括存储器以及处理器;
所述存储器用于存储程序数据,所述存储程序数据被执行时实现如权利要求10所述的文本分类方法中的步骤;
所述处理器用于执行所述存储器存储的程序指令以实现如权利要求10所述的文本分类方法中的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~9任一项所述的语言模型训练方法中的步骤或权利要求10所述的文本分类方法中的步骤。
CN202011627649.8A 2020-12-31 2020-12-31 基于知识蒸馏的语言模型训练方法、文本分类方法及装置 Active CN112733550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011627649.8A CN112733550B (zh) 2020-12-31 2020-12-31 基于知识蒸馏的语言模型训练方法、文本分类方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011627649.8A CN112733550B (zh) 2020-12-31 2020-12-31 基于知识蒸馏的语言模型训练方法、文本分类方法及装置

Publications (2)

Publication Number Publication Date
CN112733550A CN112733550A (zh) 2021-04-30
CN112733550B true CN112733550B (zh) 2023-07-25

Family

ID=75608077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011627649.8A Active CN112733550B (zh) 2020-12-31 2020-12-31 基于知识蒸馏的语言模型训练方法、文本分类方法及装置

Country Status (1)

Country Link
CN (1) CN112733550B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255763B (zh) * 2021-05-21 2023-06-09 平安科技(深圳)有限公司 基于知识蒸馏的模型训练方法、装置、终端及存储介质
CN113204633B (zh) * 2021-06-01 2022-12-30 吉林大学 一种语义匹配蒸馏方法及装置
CN113408299B (zh) * 2021-06-30 2022-03-25 北京百度网讯科技有限公司 语义表示模型的训练方法、装置、设备和存储介质
CN113408300B (zh) * 2021-07-09 2024-02-20 北京百度网讯科技有限公司 模型训练方法、品牌词识别方法、装置及电子设备
CN113642330B (zh) * 2021-07-19 2024-04-30 西安理工大学 基于目录主题分类的轨道交通规范实体识别方法
CN115718869A (zh) * 2021-08-24 2023-02-28 华为云计算技术有限公司 模型训练方法、系统、集群及介质
CN113569554B (zh) * 2021-09-24 2021-12-28 北京明略软件系统有限公司 一种数据库中实体对匹配方法、装置、电子设备及存储介质
CN114444462B (zh) * 2022-01-26 2022-11-29 北京百度网讯科技有限公司 模型训练方法及人机交互方法、装置
CN116611424A (zh) * 2023-07-18 2023-08-18 北京澜舟科技有限公司 一种写作辅助模型构建方法、写作辅助方法及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111554268A (zh) * 2020-07-13 2020-08-18 腾讯科技(深圳)有限公司 基于语言模型的语言识别方法、文本分类方法和装置
CN111553479A (zh) * 2020-05-13 2020-08-18 鼎富智能科技有限公司 一种模型蒸馏方法、文本检索方法及装置
CN111611377A (zh) * 2020-04-22 2020-09-01 淮阴工学院 基于知识蒸馏的多层神经网络语言模型训练方法与装置
WO2020252919A1 (zh) * 2019-06-20 2020-12-24 平安科技(深圳)有限公司 识别简历的方法及装置、计算机设备、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020252919A1 (zh) * 2019-06-20 2020-12-24 平安科技(深圳)有限公司 识别简历的方法及装置、计算机设备、存储介质
CN111611377A (zh) * 2020-04-22 2020-09-01 淮阴工学院 基于知识蒸馏的多层神经网络语言模型训练方法与装置
CN111553479A (zh) * 2020-05-13 2020-08-18 鼎富智能科技有限公司 一种模型蒸馏方法、文本检索方法及装置
CN111554268A (zh) * 2020-07-13 2020-08-18 腾讯科技(深圳)有限公司 基于语言模型的语言识别方法、文本分类方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于知识蒸馏的中文自动语音识别的建模方法;舒真瀚;许亮;;现代计算机(08);全文 *
用于文本分类的多探测任务语言模型微调;傅群超;王枞;;北京邮电大学学报(06);全文 *

Also Published As

Publication number Publication date
CN112733550A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN112733550B (zh) 基于知识蒸馏的语言模型训练方法、文本分类方法及装置
US11475273B1 (en) Deep convolutional neural networks for automated scoring of constructed responses
CN111125331B (zh) 语义识别方法、装置、电子设备及计算机可读存储介质
US10540967B2 (en) Machine reading method for dialog state tracking
WO2017201195A1 (en) Machine comprehension of unstructured text
CN113609965B (zh) 文字识别模型的训练方法及装置、存储介质、电子设备
CN111460101B (zh) 知识点类型的识别方法、装置及处理器
EP3270374A1 (en) Systems and methods for automatic repair of speech recognition engine output
CN110678882A (zh) 使用机器学习从电子文档选择回答跨距
CN112036184A (zh) 基于BiLSTM网络模型及CRF模型的实体识别方法、装置、计算机装置及存储介质
CN111414746A (zh) 一种匹配语句确定方法、装置、设备及存储介质
CN114818703A (zh) 基于BERT语言模型和TextCNN模型的多意图识别方法及系统
CN112860847A (zh) 视频问答的交互方法及系统
Diao et al. Multi-granularity bidirectional attention stream machine comprehension method for emotion cause extraction
CN113326383B (zh) 一种短文本实体链接方法、装置、计算设备与存储介质
WO2021147405A1 (zh) 客服语句质检方法及相关设备
CN110969005A (zh) 一种确定实体语料之间的相似性的方法及装置
Han et al. Generative adversarial networks for open information extraction
Mitra et al. Incremental and iterative learning of answer set programs from mutually distinct examples
CN116720498A (zh) 一种文本相似度检测模型的训练方法、装置及其相关介质
Tashu et al. Deep learning architecture for automatic essay scoring
CN111914084A (zh) 一种基于深度学习的带有情感标签文本生成及评估系统
CN112785039B (zh) 一种试题作答得分率的预测方法及相关装置
CN113886539A (zh) 话术推荐方法、装置、客服设备及存储介质
CN115809663A (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
GR01 Patent grant
GR01 Patent grant