CN112613273A - 多语言bert序列标注模型的压缩方法及系统 - Google Patents

多语言bert序列标注模型的压缩方法及系统 Download PDF

Info

Publication number
CN112613273A
CN112613273A CN202011490078.8A CN202011490078A CN112613273A CN 112613273 A CN112613273 A CN 112613273A CN 202011490078 A CN202011490078 A CN 202011490078A CN 112613273 A CN112613273 A CN 112613273A
Authority
CN
China
Prior art keywords
model
bert
multilingual
student
training
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.)
Granted
Application number
CN202011490078.8A
Other languages
English (en)
Other versions
CN112613273B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202011490078.8A priority Critical patent/CN112613273B/zh
Publication of CN112613273A publication Critical patent/CN112613273A/zh
Application granted granted Critical
Publication of CN112613273B publication Critical patent/CN112613273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明提供了多语言BERT序列标注模型的压缩方法及系统,涉及BERT类模型的知识蒸馏技术领域,该方法包括:步骤1:基于Wordpiece算法从多语语料中抽取词表;步骤2:对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;步骤3:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;步骤4:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;步骤5:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。本发明通过残差学习和多对一的知识蒸馏方式,提高了学生模型的准确率和泛化程度,降低了多语言环境下BERT类序列标注模型部署所需的硬件资源。

Description

多语言BERT序列标注模型的压缩方法及系统
技术领域
本发明涉及BERT类模型的知识蒸馏技术领域,具体地,涉及多语言BERT序列标注模型的压缩方法及系统。
背景技术
BERT是一种基于Transformers编码器的大规模预训练语言模型。近年来,BERT在很多下游任务上都展现出了强大的实力。序列标注是一类为序列中的元素进行分类的任务,常见的序列标注任务包括命名实体识别、词性标注等等。在多语言环境下,如果同时使用多个单语言BERT模型分别为不同的语言文本建模,会占用极大的计算资源;同时对于一些训练语料匮乏的语言类别,无论是BERT还是传统模型都很难达到很好的效果。多语言BERT可以通过共享词表和共同训练的方式同时对上百种语言进行建模,在节省资源的同时提高了多语言环境下BERT模型的整体效果。
虽然多语言BERT模型在序列标注任务上可以达到出色的效果,但是单个BERT模型的推理速度仍然受限于其庞大的模型规模。为了在低延时的应用场景下使用多语言BERT解决序列标注问题,业界常常会使用知识蒸馏等方法对BERT模型进行压缩。知识蒸馏技术是一种将教师模型在下游任务中学习到的知识引入到学生模型中的方法,该方法首先通过教师模型在无标签的蒸馏语料上进行推理得到对应的软标签,然后令学生模型在同样的数据上拟合教师模型的输出,达到提高学生模型预测准确率的目标,从而在实际部署中,可以用规模更小、速度更快的学生模型替代教师模型。
针对上述现有技术,存在以下技术缺陷,在相关技术中针对多语言BERT序列标注模型的知识蒸馏技术都采用一对一的训练方式,即从多语言BERT教师模型蒸馏到多语言BERT学生模型,这类方法没有考虑到多语言BERT模型并不是在所有的语言类别上都优于单语言BERT模型;另外,由于学生模型和教师模型在结构复杂度方面还是存在较大的区别,导致单个学生模型无法有效拟合教师模型的输出。
发明内容
针对现有技术中的缺陷,本发明的目的是提供多语言BERT序列标注模型的压缩方法及系统,通过多/单语言教师模型混合和残差学习的方式,提高多语言背景下BERT序列标注模型的知识蒸馏效果。
根据本发明提供的多语言BERT序列标注模型的压缩方法,所述方案如下:
第一方面,提供了多语言BERT序列标注模型的压缩方法,所述方法包括:
基于Wordpiece算法从多语语料中抽取词表;
将词表作为训练数据,对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;
基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;
利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;
基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。
优选的,所述基于Wordpiece算法从多语语料中抽取词表包括:
初始化词表为多语语料中的所有字符;
对多语语料进行分词并统计词表中的所有元素对出现的频率;
根据似然公式:
Figure BDA0002840453020000021
计算语料中所有句子的似然值,
其中s表示语料中的自然句,ci表示该句子中的第i个元素,n表示句子中的元素个数;
遍历初始化词表中的元素对集合,选择能够使
Figure BDA0002840453020000022
最大的元素对作为新增元素加入到词表中,sk表示语料中的第k个句子,m表示语料中的句子总数;
重复上述两个步骤,直到词表规模达到预设值,该值与语料中涉及到的语言数量有关。
优选的,所述对多/单语言BERT教师模型、多语言BERT学生模型进行预训练包括:
确定教师模型和学生模型的BERT模型结构,包括模型的Transformers层数L,隐层维度H和多头注意力头数A;随机初始化所有模型参数;
对预训练语料进行分词,并根据预设的最大片段长度对语料进行切分;多语言BERT教师模型和多语言BERT学生模型的预训练语料为全量多语语料,单语言BERT教师模型的预训练语料为多语语料中对应该语言的子集;
对每一个切分片段进行随机遮盖;
将片段中的每个词分别映射为对应的语义向量和位置向量,将这两个向量相加后输入到BERT模型中进行前向计算;
将BERT模型的输出向量通过全连接预测层映射到词表大小的向量空间中,得到被遮盖词的预测概率分布,并计算交叉熵损失函数;
计算损失函数对BERT模型参数的梯度,使用随机梯度下降法更新BERT模型的所有参数;
重复上述从对每一个切分片段进行随机遮盖至更新BERT模型的所有参数中的步骤,直到达到预设的迭代次数为止;保存预训练结束时各个教师模型和学生模型的参数。
优选的,所述基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调包括:
加载对多/单语言BERT教师模型、多语言BERT学生模型进行预训练步骤中保存的各个教师模型的预训练参数;
对人工标注的下游任务数据进行分词,并根据预设的最大片段长度对数据进行切分;多语言BERT教师模型的训练数据为全量下游任务数据,单语言BERT教师模型的训练数据为下游任务数据中对应该语言的子集;
以训练数据的原始自然句子作为输入,得到BERT模型的对应输出向量;将每个词的输出向量通过全连接预测层映射到下游任务的标签空间,得到输入句子的标注结果;
计算BERT模型的标注结果和人工标注之间的交叉熵损失函数,根据损失函数对模型参数的梯度微调BERT模型中的所有参数;
重复上述相邻两步骤,直到达到预设的迭代次数为止;保存训练结束时各个教师模型的参数。
优选的,所述利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏包括:
加载基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调步骤中保存的各个教师模型的微调后的参数,以及对多/单语言BERT教师模型、多语言BERT学生模型进行预训练步骤中保存的学生模型的预训练参数;
选择合适的多语蒸馏语料;
将多语蒸馏语料输入到多语言BERT教师模型中,得到相应的模型输出
Figure BDA0002840453020000031
再通过
Figure BDA0002840453020000032
得到多语言BERT教师模型预测的软标签
Figure BDA0002840453020000033
其中,softmax(·)表示Softmax函数,T是平滑参数;
对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出
Figure BDA0002840453020000034
其中i代表第i种语言;
再通过
Figure BDA0002840453020000035
得到单语言BERT教师模型预测的软标签
Figure BDA0002840453020000041
初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同上述步骤,Z′T表示教师模型输出的软标签:
Figure BDA0002840453020000042
以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;
更新学生模型的学习目标中的Z′T
Figure BDA0002840453020000043
即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;
以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;
重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;
保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。
优选的,所述基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调包括:
加载利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏步骤中保存的残差知识蒸馏后的所有学生模型的参数{S0,S1,…,Sk};
基于人工标注的下游任务数据微调利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏步骤中得到的学生模型队列;
首先将训练样例同步输入到所有学生模型中,得到模型输出
Figure BDA0002840453020000044
Oi表示学生模型Si的输出;
再以O和人工标注的结果之间的交叉熵为损失函数微调整个学生模型队列;
保存微调后的学生模型队列中所有学生模型的参数;所述学生模型队列即为本发明最终输出的经过压缩的多语言BERT序列标注模型。
第二方面,提供了多语言BERT序列标注模型的压缩系统,所述系统包括:
词表模块:基于Wordpiece算法从多语语料中抽取词表;
预训练模块:将词表作为训练数据,对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;
调整模块:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;
蒸馏模块:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;
结果模块:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。
优选的,所述预训练模块包括:
确定教师模型和学生模型的BERT模型结构,包括模型的Transformers层数L,隐层维度H和多头注意力头数A;随机初始化所有模型参数;
对预训练语料进行分词,并根据预设的最大片段长度对语料进行切分;多语言BERT教师模型和多语言BERT学生模型的预训练语料为全量多语语料,单语言BERT教师模型的预训练语料为多语语料中对应该语言的子集;
对每一个切分片段进行随机遮盖;
将片段中的每个词分别映射为对应的语义向量和位置向量,将这两个向量相加后输入到BERT模型中进行前向计算;
将BERT模型的输出向量通过全连接预测层映射到词表大小的向量空间中,得到被遮盖词的预测概率分布,并计算交叉熵损失函数;
计算损失函数对BERT模型参数的梯度,使用随机梯度下降法更新BERT模型的所有参数;
重复上述从对每一个切分片段进行随机遮盖至更新BERT模型的所有参数中的步骤,直到达到预设的迭代次数为止,保存预训练结束时各个教师模型和学生模型的参数。
优选的,所述调整模块包括:
加载预训练模块中保存的各个教师模型的预训练参数;
对人工标注的下游任务数据进行分词,并根据预设的最大片段长度对数据进行切分;多语言BERT教师模型的训练数据为全量下游任务数据,单语言BERT教师模型的训练数据为下游任务数据中对应该语言的子集;
以训练数据的原始自然句子作为输入,得到BERT模型的对应输出向量;将每个词的输出向量通过全连接预测层映射到下游任务的标签空间,得到输入句子的标注结果;
计算BERT模型的标注结果和人工标注之间的交叉熵损失函数,根据损失函数对模型参数的梯度微调BERT模型中的所有参数;
重复上述两步骤,直到达到预设的迭代次数为止;保存训练结束时各个教师模型的参数。
优选的,所述蒸馏模块包括:
加载调整模块中保存的各个教师模型的微调后的参数以及预训练模块中保存的学生模型的预训练参数;
选择合适的多语蒸馏语料;
将多语蒸馏语料输入到多语言BERT教师模型中,得到相应的模型输出
Figure BDA0002840453020000061
再通过
Figure BDA0002840453020000062
得到多语言BERT教师模型预测的软标签
Figure BDA0002840453020000063
其中,softmax(·)表示Softmax函数,T是平滑参数;
对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出
Figure BDA0002840453020000064
其中i代表第i种语言;
再通过
Figure BDA0002840453020000065
得到单语言BERT教师模型预测的软标签
Figure BDA0002840453020000066
初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同上述步骤,Z′T表示教师模型输出的软标签:
Figure BDA0002840453020000067
以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;
更新学生模型的学习目标中的Z′T
Figure BDA0002840453020000068
即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;
以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;
重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;
保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。
与现有技术相比,本发明具有如下的有益效果:
1、通过混合使用单语言教师模型和多语言教师模型的方式,增加了知识蒸馏过程的信息来源,提高了学生模型在单一语言上的预测精度,也提高了学生模型的泛化性能;
2、通过残差学习的方式,提高了学生模型的建模能力,在不影响单一学生模型推理速度的同时提高了知识蒸馏的效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的压缩方法流程图;
图2为多语言BERT序列标注模型的结构示意图;
图3为本发明使用的残差知识蒸馏方法的示意图;
图4为使用本发明得到的压缩模型进行推理的示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了多语言BERT序列标注模型的压缩方法,参照图1所示,包括:
步骤1:基于Wordpiece算法从多语语料中抽取词表;
步骤2:对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;
步骤3:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;
步骤4:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;
步骤5:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。
以下优选例对本发明作进一步详细的说明:
以中、英、法三种语言的BERT命名实体识别模型为例,本实施例提供的多语言BERT序列标注模型的压缩方法,涉及多语言、中、英、法文BERT教师模型和多语言BERT学生模型的预训练,多语言、中、英、法文BERT教师模型在命名实体识别任务的人工标注数据上的微调,多语言BERT学生模型的残差知识蒸馏,多语言BERT学生模型在命名实体识别任务的人工标注数据上的微调,以及利用多语言BERT学生模型在无人工标注的数据上进行推理。
具体地,步骤1包括:
步骤1.1:下载中、英、法三语的维基百科数据集作为训练语料,初始化词表为三语语料中的所有字符;
步骤1.2:对三语语料进行分词并统计词表中的所有元素对出现的频率;例如元素“a”和元素“b”组成的元素对“ab”在语料中共出现了2000次,则记“ab”出现的频率为2000;
步骤1.3:根据似然公式
Figure BDA0002840453020000081
计算语料中所有句子的似然值,其中s表示语料中的自然句,ci表示该句子中的第i个元素,n表示句子中的元素个数;遍历步骤1.2中的元素对集合,选择能够使
Figure BDA0002840453020000082
最大的元素对作为新增元素加入到词表中,sk表示语料中的第k个句子,m表示语料中的句子总数;例如在所有的元素对中,“ab”作为整体计算时
Figure BDA0002840453020000083
最大,则将“ab”作为新增元素加入词表;如果“ab”出现的频率等于“a”出现的频率,则在词表中删除“a”,同理,“ab”出现的频率等于“b”出现的频率时删除“b”;
步骤1.4:重复步骤1.2和1.3,直到词表规模达到预设值,该值与语料中涉及到的语言数量有关。
步骤2包括:
步骤2.1:确定教师模型和学生模型的BERT模型结构,如图2所示,需要确定的参数有模型的Transformers层数L,隐层维度H和多头注意力头数A;例如BERT教师模型的结构设置为L=24,H=1024,A=16,BERT学生模型的结构设置为L=4,H=512,A=8;随机初始化所有模型参数;
步骤2.2:对中、英、法三语的维基百科语料进行分词,并以512为最大长度对语料进行切分;其中中文以字为单位进行分词,英文、法文以空格和标点符号分词;多语言BERT教师模型和多语言BERT学生模型的预训练语料为全量三语语料,中、英、法文BERT教师模型的预训练语料为三语语料中对应该语言的子集;
步骤2.3:对每一个切分片段进行随机遮盖。首先随机选择片段中20%的词,然后将其中80%的词替换为“[MASK]”,10%的词进行随机替换,10%的词保持不变;
步骤2.4:将片段中的每个词分别映射为对应的语义向量和位置向量,将这两个向量相加后输入到BERT模型中进行前向计算;
步骤2.5:将BERT模型的输出向量通过全连接预测层映射到词表大小的向量空间中,得到被遮盖词的预测概率分布,并计算交叉熵损失函数;
步骤2.6:计算损失函数对BERT模型参数的梯度,使用随机梯度下降法更新BERT模型的所有参数;
步骤2.7:对多语言BERT教师模型、中文BERT教师模型、英文BERT教师模型、法文BERT教师模型和多语言BERT学生模型分别实施步骤2.3到2.6,直到达到预设的迭代次数为止;保存预训练结束时各个教师模型和学生模型的参数。
步骤3包括:
步骤3.1:加载步骤2中保存的各个教师模型的预训练参数;
步骤3.2:获取公开的带有人工标注的中、英、法三语命名实体识别数据集,并对其进行分词;根据预设的最大片段长度512对数据进行切分;多语言BERT教师模型的训练数据为全量三语命名实体识别数据,中、英、法文BERT教师模型的训练数据为三语命名实体识别数据中对应该语言的子集;
步骤3.3:以训练数据的原始自然句子作为输入,得到BERT模型的对应输出向量;将每个词的输出向量通过全连接预测层映射到下游任务的标签空间,得到输入句子的标注结果;假设数据集中存在三种命名实体:人名、地名和机构名,“Welcome to Shanghai”作为输入,则全连接预测层对“Shanghai”一词的输出为[0.1,0.7,0.1,0.1],表示模型认为该词是人名、机构名或其他的概率均为10%,是地名的概率为70%;
步骤3.4:计算BERT模型的标注结果和人工标注之间的交叉熵损失函数,根据损失函数对模型参数的梯度微调BERT模型中的所有参数;
步骤3.5:重复步骤3.3到3.4,直到达到预设的迭代次数为止;保存训练结束时各个教师模型的参数。
步骤4包括,如图3所示:
步骤4.1:加载步骤3中保存的多语BERT教师模型和中、英、法文BERT教师模型的微调后的参数以及步骤2中保存的学生模型的预训练参数;
步骤4.2:选择合适的多语蒸馏语料,该语料可以是预训练语料的一部分,也可以是来自其他源;该语料没有人工标注的下游任务标签;例如从中、英、法文的维基百科数据中各抽取10%作为多语蒸馏语料;
步骤4.3:将多语蒸馏语料输入到多语言BERT教师模型中,得到相应的模型输出
Figure BDA0002840453020000091
再通过
Figure BDA0002840453020000092
得到多语言BERT教师模型预测的软标签
Figure BDA0002840453020000093
其中;softmax(·)表示Softmax函数,T是平滑参数,可根据需求进行调节;对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出
Figure BDA0002840453020000094
其中
Figure BDA0002840453020000095
是中文BERT模型输出,
Figure BDA0002840453020000096
是英文BERT模型输出,
Figure BDA0002840453020000097
是法文BERT模型输出;再通过
Figure BDA0002840453020000098
得到单语言BERT教师模型预测的软标签
Figure BDA0002840453020000101
步骤4.4:初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度;Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同步骤4.3;Z′T表示教师模型输出的软标签:
Figure BDA0002840453020000102
以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;更新学生模型的学习目标中的Z′T
Figure BDA0002840453020000103
即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;
步骤4.5:保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。
步骤5包括:
步骤5.1:加载步骤4中保存的残差知识蒸馏后的所有学生模型的参数{S0,S1,…,Sk};
步骤5.2:基于人工标注的中、英、法文命名实体识别数据集微调步骤4中得到的学生模型队列;首先将训练样例同步输入到所有学生模型中,得到模型输出
Figure BDA0002840453020000104
Oi表示学生模型Si的输出;然后以O和人工标注的结果之间的交叉熵为损失函数微调整个学生模型队列;
步骤5.3:保存微调后的学生模型队列中所有学生模型的参数;该队列即为本发明最终输出的经过压缩的多语言BERT序列标注模型。
利用通过本发明提出的方法得到的多语言BERT学生模型进行命名实体识别的过程如下,如图4所示:
首先将待标注句子同步输入到所有学生模型中,得到模型输出
Figure BDA0002840453020000105
Oi表示学生模型Si的输出;在每个词对应的输出中选择模型预测概率最大的标签作为标注结果。
本发明实施例提供了多语言BERT序列标注模型的压缩方法,通过多、单语言教师模型混合的方法增强了知识蒸馏的信息来源,使学生模型可以获得更加精准的拟合目标;通过采用残差训练的方式,对多个学生模型进行集成学习,提高了学生模型的拟合能力。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.多语言BERT序列标注模型的压缩方法,其特征在于,所述方法包括:
步骤1:基于Wordpiece算法从多语语料中抽取词表;
步骤2:将词表作为训练数据,对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;
步骤3:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;
步骤4:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;
步骤5:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。
2.根据权利要求1所述的方法,其特征在于,所述步骤1包括:
步骤1.1:初始化词表为多语语料中的所有字符;
步骤1.2:对多语语料进行分词并统计词表中的所有元素对出现的频率;
步骤1.3:根据似然公式:
Figure FDA0002840453010000011
计算语料中所有句子的似然值,
其中s表示语料中的自然句,ci表示该句子中的第i个元素,n表示句子中的元素个数;
遍历步骤1.2中的元素对集合,选择能够使
Figure FDA0002840453010000012
最大的元素对作为新增元素加入到词表中,sk表示语料中的第k个句子,m表示语料中的句子总数;
步骤1.4:重复步骤1.2和1.3,直到词表规模达到预设值,该值与语料中涉及到的语言数量有关。
3.根据权利要求1所述的方法,其特征在于,步骤2包括:
步骤2.1:确定教师模型和学生模型的BERT模型结构,包括模型的Transformers层数L,隐层维度H和多头注意力头数A;随机初始化所有模型参数;
步骤2.2:对预训练语料进行分词,并根据预设的最大片段长度对语料进行切分;多语言BERT教师模型和多语言BERT学生模型的预训练语料为全量多语语料,单语言BERT教师模型的预训练语料为多语语料中对应该语言的子集;
步骤2.3:对每一个切分片段进行随机遮盖;
步骤2.4:将片段中的每个词分别映射为对应的语义向量和位置向量,将这两个向量相加后输入到BERT模型中进行前向计算;
步骤2.5:将BERT模型的输出向量通过全连接预测层映射到词表大小的向量空间中,得到被遮盖词的预测概率分布,并计算交叉熵损失函数;
步骤2.6:计算损失函数对BERT模型参数的梯度,使用随机梯度下降法更新BERT模型的所有参数;
步骤2.7:重复步骤2.3到2.6,直到达到预设的迭代次数为止;保存预训练结束时各个教师模型和学生模型的参数。
4.根据权利要求1所述的方法,其特征在于,所述步骤3包括:
步骤3.1:加载步骤2中保存的各个教师模型的预训练参数;
步骤3.2:对人工标注的下游任务数据进行分词,并根据预设的最大片段长度对数据进行切分;多语言BERT教师模型的训练数据为全量下游任务数据,单语言BERT教师模型的训练数据为下游任务数据中对应该语言的子集;
步骤3.3:以训练数据的原始自然句子作为输入,得到BERT模型的对应输出向量;将每个词的输出向量通过全连接预测层映射到下游任务的标签空间,得到输入句子的标注结果;
步骤3.4:计算BERT模型的标注结果和人工标注之间的交叉熵损失函数,根据损失函数对模型参数的梯度微调BERT模型中的所有参数;
步骤3.5:重复步骤3.3到3.4,直到达到预设的迭代次数为止;保存训练结束时各个教师模型的参数。
5.根据权利要求1所述的方法,其特征在于,所述步骤4包括:
步骤4.1:加载步骤3中保存的各个教师模型的微调后的参数以及步骤2中保存的学生模型的预训练参数;
步骤4.2:选择合适的多语蒸馏语料;
步骤4.3:将多语蒸馏语料输入到多语言BERT教师模型中,得到相应的模型输出
Figure FDA0002840453010000021
再通过
Figure FDA0002840453010000022
得到多语言BERT教师模型预测的软标签
Figure FDA0002840453010000027
其中,softmax(·)表示Softmax函数,T是平滑参数;
对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出
Figure FDA0002840453010000024
其中i代表第i种语言;
再通过
Figure FDA0002840453010000025
得到单语言BERT教师模型预测的软标签
Figure FDA0002840453010000026
步骤4.4:初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同步骤4.3,Z′T表示教师模型输出的软标签:
Figure FDA0002840453010000031
以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;
更新学生模型的学习目标中的Z′T
Figure FDA0002840453010000032
即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;
以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;
重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;
步骤4.5:保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。
6.根据权利要求1所述的方法,其特征在于,所述步骤5包括:
步骤5.1:加载步骤4中保存的残差知识蒸馏后的所有学生模型的参数{S0,S1,...,Sk};
步骤5.2:基于人工标注的下游任务数据微调步骤4中得到的学生模型队列;
首先将训练样例同步输入到所有学生模型中,得到模型输出
Figure FDA0002840453010000033
Oi表示学生模型Si的输出;
再以O和人工标注的结果之间的交叉熵为损失函数微调整个学生模型队列;
步骤5.3:保存微调后的学生模型队列中所有学生模型的参数;所述学生模型队列即为本发明最终输出的经过压缩的多语言BERT序列标注模型。
7.多语言BERT序列标注模型的压缩系统,其特征在于,所述系统包括:
词表模块:基于Wordpiece算法从多语语料中抽取词表;
预训练模块:将词表作为训练数据,对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;
调整模块:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;
蒸馏模块:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;
结果模块:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。
8.根据权利要求7所述的系统,其特征在于,所述预训练模块包括:
确定教师模型和学生模型的BERT模型结构,包括模型的Transformers层数L,隐层维度H和多头注意力头数A;随机初始化所有模型参数;
对预训练语料进行分词,并根据预设的最大片段长度对语料进行切分;多语言BERT教师模型和多语言BERT学生模型的预训练语料为全量多语语料,单语言BERT教师模型的预训练语料为多语语料中对应该语言的子集;
对每一个切分片段进行随机遮盖;
将片段中的每个词分别映射为对应的语义向量和位置向量,将这两个向量相加后输入到BERT模型中进行前向计算;
将BERT模型的输出向量通过全连接预测层映射到词表大小的向量空间中,得到被遮盖词的预测概率分布,并计算交叉熵损失函数;
计算损失函数对BERT模型参数的梯度,使用随机梯度下降法更新BERT模型的所有参数;
重复上述从对每一个切分片段进行随机遮盖至更新BERT模型的所有参数中的步骤,直到达到预设的迭代次数为止,保存预训练结束时各个教师模型和学生模型的参数。
9.根据权利要求7所述的系统,其特征在于,所述调整模块包括:
加载预训练模块中保存的各个教师模型的预训练参数;
对人工标注的下游任务数据进行分词,并根据预设的最大片段长度对数据进行切分;多语言BERT教师模型的训练数据为全量下游任务数据,单语言BERT教师模型的训练数据为下游任务数据中对应该语言的子集;
以训练数据的原始自然句子作为输入,得到BERT模型的对应输出向量;将每个词的输出向量通过全连接预测层映射到下游任务的标签空间,得到输入句子的标注结果;
计算BERT模型的标注结果和人工标注之间的交叉熵损失函数,根据损失函数对模型参数的梯度微调BERT模型中的所有参数;
重复上述两步骤,直到达到预设的迭代次数为止;保存训练结束时各个教师模型的参数。
10.根据权利要求7所述的系统,其特征在于,所述蒸馏模块包括:
加载调整模块中保存的各个教师模型的微调后的参数以及预训练模块中保存的学生模型的预训练参数;
选择合适的多语蒸馏语料;
将多语蒸馏语料输入到多语言BERT教师模型中,得到相应的模型输出
Figure FDA0002840453010000041
再通过
Figure FDA0002840453010000042
得到多语言BERT教师模型预测的软标签
Figure FDA0002840453010000043
其中,softmax(·)表示Softmax函数,T是平滑参数;
对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出
Figure FDA0002840453010000051
其中i代表第i种语言;
再通过
Figure FDA0002840453010000052
得到单语言BERT教师模型预测的软标签
Figure FDA0002840453010000053
初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同上述步骤,Z′T表示教师模型输出的软标签:
Figure FDA0002840453010000054
以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;
更新学生模型的学习目标中的Z′T
Figure FDA0002840453010000055
即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;
以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;
重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;
保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。
CN202011490078.8A 2020-12-16 2020-12-16 多语言bert序列标注模型的压缩方法及系统 Active CN112613273B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011490078.8A CN112613273B (zh) 2020-12-16 2020-12-16 多语言bert序列标注模型的压缩方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011490078.8A CN112613273B (zh) 2020-12-16 2020-12-16 多语言bert序列标注模型的压缩方法及系统

Publications (2)

Publication Number Publication Date
CN112613273A true CN112613273A (zh) 2021-04-06
CN112613273B CN112613273B (zh) 2022-09-23

Family

ID=75239930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011490078.8A Active CN112613273B (zh) 2020-12-16 2020-12-16 多语言bert序列标注模型的压缩方法及系统

Country Status (1)

Country Link
CN (1) CN112613273B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287920A (zh) * 2020-09-17 2021-01-29 昆明理工大学 基于知识蒸馏的缅甸语ocr方法
CN113420123A (zh) * 2021-06-24 2021-09-21 中国科学院声学研究所 语言模型的训练方法、nlp任务处理方法及装置
CN113505589A (zh) * 2021-07-15 2021-10-15 华中师范大学 一种基于bert模型的mooc学习者认知行为识别方法
CN113609267A (zh) * 2021-07-21 2021-11-05 上海交通大学 基于GCNDT-MacBERT神经网络框架的话语关系识别方法及系统
CN113887230A (zh) * 2021-09-30 2022-01-04 北京熵简科技有限公司 一种面向金融场景的端到端自然语言处理训练框架与方法
CN114417879A (zh) * 2021-12-29 2022-04-29 北京百度网讯科技有限公司 跨语言文本语义模型的生成方法、装置及电子设备
CN114742036A (zh) * 2022-03-21 2022-07-12 清华大学 一种预训练语言模型的组合式模型压缩方法及系统
CN114780722A (zh) * 2022-03-31 2022-07-22 北京理工大学 一种结合领域通用型语言模型的领域泛化方法
CN114969332A (zh) * 2022-05-18 2022-08-30 北京百度网讯科技有限公司 训练文本审核模型的方法和装置
CN115203419A (zh) * 2022-07-21 2022-10-18 北京百度网讯科技有限公司 语言模型的训练方法、装置及电子设备
US11526774B2 (en) * 2020-12-15 2022-12-13 Zhejiang Lab Method for automatically compressing multitask-oriented pre-trained language model and platform thereof
CN117474084A (zh) * 2023-12-25 2024-01-30 淘宝(中国)软件有限公司 预训练模型与下游序列任务双向迭代方法、设备及介质
CN117725960A (zh) * 2024-02-18 2024-03-19 智慧眼科技股份有限公司 基于知识蒸馏的语言模型训练方法、文本分类方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190325308A1 (en) * 2016-12-30 2019-10-24 Google Llc Multi-task learning using knowledge distillation
CN110705293A (zh) * 2019-08-23 2020-01-17 中国科学院苏州生物医学工程技术研究所 基于预训练语言模型的电子病历文本命名实体识别方法
CN111062489A (zh) * 2019-12-11 2020-04-24 北京知道智慧信息技术有限公司 一种基于知识蒸馏的多语言模型压缩方法、装置
CN111241279A (zh) * 2020-01-07 2020-06-05 华东师范大学 一种基于多任务学习机制的自然语言关系抽取方法
CN111611377A (zh) * 2020-04-22 2020-09-01 淮阴工学院 基于知识蒸馏的多层神经网络语言模型训练方法与装置
CN111767711A (zh) * 2020-09-02 2020-10-13 之江实验室 基于知识蒸馏的预训练语言模型的压缩方法及平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190325308A1 (en) * 2016-12-30 2019-10-24 Google Llc Multi-task learning using knowledge distillation
CN110705293A (zh) * 2019-08-23 2020-01-17 中国科学院苏州生物医学工程技术研究所 基于预训练语言模型的电子病历文本命名实体识别方法
CN111062489A (zh) * 2019-12-11 2020-04-24 北京知道智慧信息技术有限公司 一种基于知识蒸馏的多语言模型压缩方法、装置
CN111241279A (zh) * 2020-01-07 2020-06-05 华东师范大学 一种基于多任务学习机制的自然语言关系抽取方法
CN111611377A (zh) * 2020-04-22 2020-09-01 淮阴工学院 基于知识蒸馏的多层神经网络语言模型训练方法与装置
CN111767711A (zh) * 2020-09-02 2020-10-13 之江实验室 基于知识蒸馏的预训练语言模型的压缩方法及平台

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287920A (zh) * 2020-09-17 2021-01-29 昆明理工大学 基于知识蒸馏的缅甸语ocr方法
US11526774B2 (en) * 2020-12-15 2022-12-13 Zhejiang Lab Method for automatically compressing multitask-oriented pre-trained language model and platform thereof
CN113420123A (zh) * 2021-06-24 2021-09-21 中国科学院声学研究所 语言模型的训练方法、nlp任务处理方法及装置
CN113505589A (zh) * 2021-07-15 2021-10-15 华中师范大学 一种基于bert模型的mooc学习者认知行为识别方法
CN113609267A (zh) * 2021-07-21 2021-11-05 上海交通大学 基于GCNDT-MacBERT神经网络框架的话语关系识别方法及系统
CN113609267B (zh) * 2021-07-21 2023-11-07 上海交通大学 基于GCNDT-MacBERT神经网络框架的话语关系识别方法及系统
CN113887230A (zh) * 2021-09-30 2022-01-04 北京熵简科技有限公司 一种面向金融场景的端到端自然语言处理训练框架与方法
CN114417879A (zh) * 2021-12-29 2022-04-29 北京百度网讯科技有限公司 跨语言文本语义模型的生成方法、装置及电子设备
CN114742036A (zh) * 2022-03-21 2022-07-12 清华大学 一种预训练语言模型的组合式模型压缩方法及系统
CN114742036B (zh) * 2022-03-21 2024-08-23 清华大学 一种预训练语言模型的组合式模型压缩方法及系统
CN114780722B (zh) * 2022-03-31 2024-05-14 北京理工大学 一种结合领域通用型语言模型的领域泛化方法
CN114780722A (zh) * 2022-03-31 2022-07-22 北京理工大学 一种结合领域通用型语言模型的领域泛化方法
CN114969332A (zh) * 2022-05-18 2022-08-30 北京百度网讯科技有限公司 训练文本审核模型的方法和装置
CN115203419A (zh) * 2022-07-21 2022-10-18 北京百度网讯科技有限公司 语言模型的训练方法、装置及电子设备
CN117474084B (zh) * 2023-12-25 2024-05-03 淘宝(中国)软件有限公司 预训练模型与下游序列任务双向迭代方法、设备及介质
CN117474084A (zh) * 2023-12-25 2024-01-30 淘宝(中国)软件有限公司 预训练模型与下游序列任务双向迭代方法、设备及介质
CN117725960A (zh) * 2024-02-18 2024-03-19 智慧眼科技股份有限公司 基于知识蒸馏的语言模型训练方法、文本分类方法及设备
CN117725960B (zh) * 2024-02-18 2024-07-02 智慧眼科技股份有限公司 基于知识蒸馏的语言模型训练方法、文本分类方法及设备

Also Published As

Publication number Publication date
CN112613273B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN112613273B (zh) 多语言bert序列标注模型的压缩方法及系统
CN112214995B (zh) 用于同义词预测的分层多任务术语嵌入学习
CN109190131B (zh) 一种基于神经机器翻译的英语单词及其大小写联合预测方法
CN110750959B (zh) 文本信息处理的方法、模型训练的方法以及相关装置
CN111695052A (zh) 标签分类方法、数据处理设备、可读存储介质
CN113051399B (zh) 一种基于关系型图卷积网络的小样本细粒度实体分类方法
CN110162789B (zh) 一种基于汉语拼音的词表征方法及装置
CN108153864A (zh) 基于神经网络生成文本摘要的方法
CN110597961A (zh) 一种文本类目标注方法、装置、电子设备及存储介质
CN111553159B (zh) 一种问句生成方法及系统
CN107305543B (zh) 对实体词的语义关系进行分类的方法和装置
CN111145914B (zh) 一种确定肺癌临床病种库文本实体的方法及装置
CN111125333A (zh) 一种基于表示学习与多层覆盖机制的生成式知识问答方法
CN114970529A (zh) 基于机器学习的命名实体识别(ner)机制的弱监督和可解释训练
CN113160917B (zh) 一种电子病历实体关系抽取方法
Arvanitis et al. Translation of sign language glosses to text using sequence-to-sequence attention models
CN110941958A (zh) 一种文本类目标注方法、装置、电子设备及存储介质
CN114625879A (zh) 基于自适应变分编码器的短文本聚类方法
CN112417873A (zh) 基于bbwc模型和mcmc的自动漫画生成方法和系统
CN114254645A (zh) 一种人工智能辅助写作系统
CN114707497A (zh) 一种基于多源词典的交叉Transformer中文医疗命名实体识别方法
CN114298031A (zh) 文本处理方法、计算机设备及存储介质
CN110321568A (zh) 基于融合词性和位置信息的汉-越卷积神经机器翻译方法
CN114239584A (zh) 一种基于自监督学习的命名实体识别方法
CN114330375A (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