System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于模型内部特征蒸馏的文本分类方法技术_技高网
当前位置: 首页 > 专利查询>长春大学专利>正文

一种基于模型内部特征蒸馏的文本分类方法技术

技术编号:40901923 阅读:4 留言:0更新日期:2024-04-18 11:19
本发明专利技术提出一种基于模型内部特征蒸馏的文本分类方法,属于自然语言处理领域;包括:首先对微博文本数据集进行预处理,使用tokenizer将文本转换为模型所需的特征;其次将特征分别传入学生模型和教师模型提取预测结果;然后将教师模型中内部的特征蒸馏出来作为软标签,与学生模型中内部的特征计算损失loss1,同时利用学生模型和教师模型的预测结果计算损失loss3,利用学生模型预测结果与学生模型的标签计算损失loss2;最后将得到的三个损失求和,在网路中进行反向传播,优化网络。本发明专利技术在文本分类任务中,压缩了模型的内存,提升了模型的性能,更好的权衡了模型大小和模型性能。

【技术实现步骤摘要】

本专利技术属于自然语言处理领域,尤其涉及一种基于模型内部特征蒸馏的文本分类方法


技术介绍

1、随着人工智能的迅猛发展,深度学习在各个领域取得了巨大的成功。为了解决更为复杂的问题和提升模型的训练效果,研究者们逐渐将模型的网络结构设计得更加深度和复杂。在自然语言处理(nlp)领域,从最初的循环神经网络(rnn)、长短时记忆网络(lstm)、预训练词向量(elmo)到如今备受瞩目的bert,模型结构逐渐演变为更为深奥和复杂的形态。然而,这些复杂的模型设计需要大量的计算资源和时间,无法满足当前移动计算发展对低资源、低功耗的迫切需求,因此获得轻量高效的语言模型显得尤为紧迫。

2、知识蒸馏作为一种新兴而通用的模型压缩和迁移学习架构,在最近几年表现出了蓬勃的活力。本质上,知识蒸馏属于迁移学习的范畴。其主要思路是将一个已经训练完善的模型作为教师模型,通过调整输出的“温度”来“蒸馏”出模型的“知识”,然后将这些知识用于训练轻量级的学生模型。希望通过这样的过程,简化模型结构,提高模型性能。

3、在2019年,知识蒸馏与bert结合被提出,通过将bert-large蒸馏到单层的bi-lstm中,其效果接近于elmo模型,提高模型的运行速率,同时减少模型参数量,但由于学生模型的单一化,使得模型在蒸馏最后一层时出现拟合过快现象。

4、随着研究方法的丰富,蒸馏方式逐渐丰富。提出bert-pkd,通过蒸馏教师模型中间层的知识,有效的防止了模型过拟合现象。distillbert在预训练阶段进行蒸馏,进一步压缩模型,减少模型参数。

5、尽管知识蒸馏与预训练模型结合的研究已经取得了显著进展,但仍然存在一些问题,目前教师模型设计的非常复杂,导致学生模型很容易过度拟合,模型的泛化能力也比较差。


技术实现思路

1、鉴于上述问题,本专利技术的目的是提供一种基于模型内部特征蒸馏的文本分类方法,以解决现有模型结构设计复杂深奥、计算资源和时间损耗大等的技术问题。

2、为实现上述目的,本专利技术采用如下技术方案:

3、一种基于模型内部特征蒸馏的文本分类方法,具体包括以下步骤:

4、步骤一、获取微博文本数据集,将微博文本数据集进行划分和预处理,其中,将获取的微博文本数据集划分出训练集和测试集,并使用tokenizer工具对训练集和测试集进行数据预处理,将文本转换为模型输入的包含特征向量的可识别字典;

5、步骤二、基于预训练模型,构建教师模型和学生模型;

6、构建教师模型,教师模型基于bert预训练模型,主干网络利用gru模型结合双向bi-lstm模型和transformer_attention模型搭建成带有三条路径的教师模型,三条路径产生的特征进行拼接和全连接后,得到最终的预测结果;其中教师模型是基于bert预训练模型并将gru、bi-lstm和transformer_attention机制相结合,可以更好的获取文本的局部特征和上下文特征;

7、搭建学生模型,学生模型基于roberta预训练模型,主干网络仅使用gru模型搭建成带有一条路径的学生模型;使用gru模型搭建的学生模型简化了模型结构,在实验过程中证明所提出的教师模型的有效性;最后对教师模型和学生模型进行内部特征蒸馏,构建新的损失函数进行训练,压缩模型内存,提升模型性能。

8、步骤三、利用步骤二中的教师模型和学生模型进行知识蒸馏;

9、在训练过程中选择相应的损失函数计算模型损失,并保存最优模型;其中,相应的损失函数为torch.nn.functional模型库中的交叉熵ce函数、kl散度函数和均方误差mse函数;

10、将教师模型中内部的特征蒸馏出来作为软标签,与学生模型中内部的特征计算损失,得到损失值loss1;利用学生模型预测结果与学生模型的标签计算损失,得到损失值loss2;利用学生模型和教师模型的预测结果计算损失,得到损失值loss3;最后将三个损失相加得到模型的最终损失值loss;通过反向传播优化参数,训练该模型,通过比对损失值的大小决定是否保存训练得到的模型及参数,训练过程中只保存损失值最小的模型结构和模型参数。

11、作为本专利技术的优选,在步骤一中,所述微博文本数据集划分的训练集和测试集比例为8:2,所述tokenizer处理后的字典包括input_ids、token_type_ids和attention_mask。

12、作为本专利技术的优选,在步骤二中搭建教师模型的第一条路径,首先将数据送入bert预训练模型得到输出,取得该输出的最后一个隐藏层状态作为tokens,将tokens作为bi-lstm模型的输入,训练过程中将bi-lstm模型输出的结果取最后一个时间步的隐藏状态作为输出,输出的维度是[20,640],目的是为了更好的捕获前后文的内在关系。

13、作为本专利技术的优选,在步骤二中搭建教师模型的第二条路径,将bert预训练模型产生的tokens作为transformer_attention模型自注意力机制的输入,通过三个线性层得到张量k、张量q和张量v,同时利用预训练模型权重中的config.hidden_size平方分之一作为自注意力的权重,训练过程中利用transformer_attention模型自注意力机制产生注意力特征输出,该输出的维度是[20,300],目的是为了通过不同权重更好地捕捉输入序列中不同部分之间的语义关系。

14、作为本专利技术的优选,在步骤二中搭建教师模型的第三条路径,将bert预模型输出的tokens作为gru模型的输入,通过运行gru模型,获得每个序列在序列的最后一个时间步的隐藏状态作为输出,该输出的特征维度是[20,320],目的是为了捕获输入序列中的长期依赖关系。

15、作为本专利技术的优选,先将bi-lstm模型的输出与transformer_attention模型自注意力机制的输出在维度1上进行拼接,然后将其结果与gru模型的输出在维度1上进行拼接,最后通过一个包含多层的全连接网络得到教师模型的输出:教师_输出[20,2]。

16、作为本专利技术的优选,将roberta预训练模型和gru模型进行结合构建成学生模型,将roberta预训练模型的输出作为gru模型的输入,运行gru模型,然后通过一个全连接网络得到学生模型的输出:学生_输出[20,2]。

17、作为本专利技术的优选,步骤三选用三个不同的损失函数,在教师模型中内部蒸馏出的软标签与学生模型中内部的特征计算损失时,使用交叉熵损失函数;利用学生模型和教师模型的预测结果计算损失时,使用kl散度损失函数;学生模型预测结果与学生模型的标签计算损失时,使用mse损失函数;最后将三个损失相加得到模型的最终损失值loss,具体计算公式如下:

18、 ………(1)

19、……… (2)

20、………(3)

21、………(4)

22、上述公式中、本文档来自技高网...

【技术保护点】

1.一种基于模型内部特征蒸馏的文本分类方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤一中,所述微博文本数据集划分的训练集和测试集比例为8:2,所述tokenizer处理后的字典包括input_ids、token_type_ids和attention_mask。

3.根据权利要求1所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤二中搭建教师模型的第一条路径,首先将数据送入BERT预训练模型得到输出,取得该输出的最后一个隐藏层状态作为tokens,将tokens作为Bi-LSTM模型的输入,训练过程中将Bi-LSTM模型输出的结果取最后一个时间步的隐藏状态作为输出,输出的维度是[20,640]。

4.根据权利要求3所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤二中搭建教师模型的第二条路径,将BERT预训练模型产生的tokens作为Transformer_Attention模型自注意力机制的输入,通过三个线性层得到张量K、张量Q和张量V,同时利用预训练模型权重中的config.hidden_size平方分之一作为自注意力的权重,训练过程中利用Transformer_Attention模型自注意力机制产生注意力特征输出,该输出的维度是[20,300]。

5.根据权利要求4所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤二中搭建教师模型的第三条路径,将BERT预模型输出的tokens作为GRU模型的输入,通过运行GRU模型,获得每个序列在序列的最后一个时间步的隐藏状态作为输出,该输出的特征维度是[20,320]。

6.根据权利要求5所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,先将Bi-LSTM模型的输出与Transformer_Attention模型自注意力机制的输出在维度1上进行拼接,然后将其结果与GRU模型的输出在维度1上进行拼接,最后通过一个包含多层的全连接网络得到教师模型的输出:教师_输出[20,2]。

7.根据权利要求6所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,将RoBERTa预训练模型和GRU模型进行结合构建成学生模型,将RoBERTa预训练模型的输出作为GRU模型的输入,运行GRU模型,然后通过一个全连接网络得到学生模型的输出:学生_输出[20,2]。

8.根据权利要求1所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,步骤三选用三个不同的损失函数,在教师模型中内部蒸馏出的软标签与学生模型中内部的特征计算损失时,使用交叉熵损失函数;利用学生模型和教师模型的预测结果计算损失时,使用KL散度损失函数;学生模型预测结果与学生模型的标签计算损失时,使用MSE损失函数;最后将三个损失相加得到模型的最终损失值Loss,具体计算公式如下:

...

【技术特征摘要】

1.一种基于模型内部特征蒸馏的文本分类方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤一中,所述微博文本数据集划分的训练集和测试集比例为8:2,所述tokenizer处理后的字典包括input_ids、token_type_ids和attention_mask。

3.根据权利要求1所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤二中搭建教师模型的第一条路径,首先将数据送入bert预训练模型得到输出,取得该输出的最后一个隐藏层状态作为tokens,将tokens作为bi-lstm模型的输入,训练过程中将bi-lstm模型输出的结果取最后一个时间步的隐藏状态作为输出,输出的维度是[20,640]。

4.根据权利要求3所述的一种基于模型内部特征蒸馏的文本分类方法,其特征在于,在步骤二中搭建教师模型的第二条路径,将bert预训练模型产生的tokens作为transformer_attention模型自注意力机制的输入,通过三个线性层得到张量k、张量q和张量v,同时利用预训练模型权重中的config.hidden_size平方分之一作为自注意力的权重,训练过程中利用transformer_attention模型自注意力机制产生注意力特征输出,该输出的维度是[20,300]。

5.根据权利要求4所述的一种基于模型内部特...

【专利技术属性】
技术研发人员:王绍强靳晓娇申向峰戴银飞王艳柏刘玉宝
申请(专利权)人:长春大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1