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

文档序号:763052 发布日期:2021-04-06 浏览:25次 >En<

阅读说明:本技术 多语言bert序列标注模型的压缩方法及系统 (Compression method and system of multi-language BERT sequence labeling model ) 是由 撖朝润 李琦 傅洛伊 王新兵 于 2020-12-16 设计创作,主要内容包括:本发明提供了多语言BERT序列标注模型的压缩方法及系统,涉及BERT类模型的知识蒸馏技术领域,该方法包括:步骤1:基于Wordpiece算法从多语语料中抽取词表;步骤2:对多/单语言BERT教师模型、多语言BERT学生模型进行预训练;步骤3:基于人工标注的下游任务数据对多/单语言BERT教师模型进行微调;步骤4:利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏;步骤5:基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调。本发明通过残差学习和多对一的知识蒸馏方式,提高了学生模型的准确率和泛化程度,降低了多语言环境下BERT类序列标注模型部署所需的硬件资源。(The invention provides a compression method and a compression system of a multilingual BERT sequence labeling model, which relate to the technical field of knowledge distillation of BERT models, and the method comprises the following steps: step 1: extracting a word list from the multi-language corpus based on a Wordpieee algorithm; step 2: pre-training a multi-language/single-language BERT teacher model and a multi-language BERT student model; and step 3: fine-tuning a multi/single language BERT teacher model based on the manually labeled downstream task data; and 4, step 4: carrying out residual knowledge distillation on the pre-trained multilingual BERT student model by using a multilingual BERT teacher model; and 5: and fine-tuning the distilled multilingual BERT student model based on the manually labeled downstream task data. According to the invention, through residual learning and many-to-one knowledge distillation mode, the accuracy and generalization degree of the student model are improved, and hardware resources required by deployment of the BERT sequence labeling model in a multi-language environment are reduced.)

多语言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算法从多语语料中抽取词表包括:

初始化词表为多语语料中的所有字符;

对多语语料进行分词并统计词表中的所有元素对出现的频率;

根据似然公式:

计算语料中所有句子的似然值,

其中s表示语料中的自然句,ci表示该句子中的第i个元素,n表示句子中的元素个数;

遍历初始化词表中的元素对集合,选择能够使最大的元素对作为新增元素加入到词表中,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教师模型中,得到相应的模型输出再通过得到多语言BERT教师模型预测的软标签其中,softmax(·)表示Softmax函数,T是平滑参数;

对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出其中i代表第i种语言;

再通过得到单语言BERT教师模型预测的软标签

初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同上述步骤,Z′T表示教师模型输出的软标签:

以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;

更新学生模型的学习目标中的Z′T即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;

以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;

重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;

保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。

优选的,所述基于人工标注的下游任务数据对蒸馏后的多语言BERT学生模型进行微调包括:

加载利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏步骤中保存的残差知识蒸馏后的所有学生模型的参数{S0,S1,…,Sk};

基于人工标注的下游任务数据微调利用多/单语言BERT教师模型对预训练后的多语言BERT学生模型进行残差知识蒸馏步骤中得到的学生模型队列;

首先将训练样例同步输入到所有学生模型中,得到模型输出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教师模型中,得到相应的模型输出再通过得到多语言BERT教师模型预测的软标签其中,softmax(·)表示Softmax函数,T是平滑参数;

对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出其中i代表第i种语言;

再通过得到单语言BERT教师模型预测的软标签

初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度,Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同上述步骤,Z′T表示教师模型输出的软标签:

以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;

更新学生模型的学习目标中的Z′T即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;

以该学习目标为损失函数继续训练多语言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:根据似然公式计算语料中所有句子的似然值,其中s表示语料中的自然句,ci表示该句子中的第i个元素,n表示句子中的元素个数;遍历步骤1.2中的元素对集合,选择能够使最大的元素对作为新增元素加入到词表中,sk表示语料中的第k个句子,m表示语料中的句子总数;例如在所有的元素对中,“ab”作为整体计算时最大,则将“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教师模型中,得到相应的模型输出再通过得到多语言BERT教师模型预测的软标签其中;softmax(·)表示Softmax函数,T是平滑参数,可根据需求进行调节;对于每个单语言BERT教师模型,将多语蒸馏语料中对应该语言的部分输入到模型中,得到相应的模型输出其中是中文BERT模型输出,是英文BERT模型输出,是法文BERT模型输出;再通过得到单语言BERT教师模型预测的软标签

步骤4.4:初始化学生模型队列为空;初始化学生模型的学习目标为L=KL(Z′S|Z′T),其中KL(·)表示KL散度;Z′S表示多语言BERT学生模型输出的多语蒸馏语料的软标签,计算过程同步骤4.3;Z′T表示教师模型输出的软标签:

以该学习目标为损失函数训练多语言BERT学生模型S0,并将训练好的模型加入到学生模型队列中;更新学生模型的学习目标中的Z′T即教师模型输出的软标签和当前学生模型队列中所有学生模型输出的软标签的和之间的残差;以该学习目标为损失函数继续训练多语言BERT学生模型S1,并将训练好的模型加入到学生模型队列中;重复按上述方法更新学生模型的学习目标以及向学生模型队列中加入新的模型,直到学生模型队列的长度达到预设最大值;

步骤4.5:保存残差知识蒸馏后的学生模型队列中所有学生模型的参数。

步骤5包括:

步骤5.1:加载步骤4中保存的残差知识蒸馏后的所有学生模型的参数{S0,S1,…,Sk};

步骤5.2:基于人工标注的中、英、法文命名实体识别数据集微调步骤4中得到的学生模型队列;首先将训练样例同步输入到所有学生模型中,得到模型输出Oi表示学生模型Si的输出;然后以O和人工标注的结果之间的交叉熵为损失函数微调整个学生模型队列;

步骤5.3:保存微调后的学生模型队列中所有学生模型的参数;该队列即为本发明最终输出的经过压缩的多语言BERT序列标注模型。

利用通过本发明提出的方法得到的多语言BERT学生模型进行命名实体识别的过程如下,如图4所示:

首先将待标注句子同步输入到所有学生模型中,得到模型输出Oi表示学生模型Si的输出;在每个词对应的输出中选择模型预测概率最大的标签作为标注结果。

本发明实施例提供了多语言BERT序列标注模型的压缩方法,通过多、单语言教师模型混合的方法增强了知识蒸馏的信息来源,使学生模型可以获得更加精准的拟合目标;通过采用残差训练的方式,对多个学生模型进行集成学习,提高了学生模型的拟合能力。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:蒙古文国际标准编码到形码转换方法、装置及计算机终端

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!