System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及自然语言处理,更具体地说,本专利技术涉及一种基于bert和模型压缩的意图分类方法。
技术介绍
1、文本分类是自然语言处理中的一个重要研究方向,在情感分析、新闻分类等多个领域得到了广泛的应用,意图分类作为文本分类的一个子研究领域,可以分析得到用户输入问题的目的,在智能问答中起着十分重要的作用。
2、在实际使用中,由于语言表达的灵活性,分类的准确程度是影响用户体验的关键因素,除此之外,分类的速度也是衡量模型的重要标准,基础的关键词提取和相似度匹配的方式或者直接应用大模型的方式难以满足用户对于效果和速度的双重需求。
3、因此,为了提升意图分类任务的效果并且减少模型的推理时间,本专利技术提出了一种基于bert和模型压缩的意图分类方法。
技术实现思路
1、为了克服现有技术的上述缺陷,本专利技术的实施例提供一种基于bert和模型压缩的意图分类方法,基于bert和模型压缩的意图分类方法结合了预训练的bert模型的语义表示能力和对模型的压缩技术,以在保持高性能的同时降低模型的复杂性和资源需求,以解决上述
技术介绍
中提出的问题。
2、为实现上述目的,本专利技术提供如下技术方案:一种基于bert和模型压缩的意图分类方法,包括:
3、采集语料数据,并构建用于bert模型训练的数据集;
4、初始化bert模型,并对bert模型进行微调;
5、对bert模型进行压缩,以获得训练完成的bert模型;
6、将训练完成
7、进一步地,构建数据集的内容包括如下:
8、通过采集工具采集语料数据;所述语料数据包括问题以及问题对应的类别;
9、将待分类的意图类别数目划分为n,n大于零的正整数;
10、对每个语料数据中的问题标注对应的意图类别;所述标注通过手动完成或自动化工具完成;
11、将每个语料数据构建数据集,并将整个数据集划分为训练集和测试集。
12、进一步地,所述语料数据是指以中文为基础的语言数据;所述意图类别是指客户或者用户发送来的问题类别,所述采集工具利用爬虫或开放数据集通过在线社区、论坛或用户反馈来源搜集的文本数据。
13、进一步地,初始化bert模型,并对bert模型进行微调的方法包括:
14、用户问题在n个无标签中文语料数据上进行训练,以获得训练参数,通过训练参数初始化bert模型;n大于1的正整数;
15、当bert模型初始完成,将未标记的中文文本输入到bert模型中,输出序列级别的[cls]token和词级别的token;
16、把[cls]token作为query,词级别的token作为key和value,进行attention操作,获得输入问题的表示向量。
17、进一步地,所述bert模型总共包含12层,每层有12个head,隐藏层的维度为768,feedforward层的维度为3072。
18、进一步地,对bert模型进行微调的方法还包括:
19、对[cls]token和词级别的token进行注意力操作,以增强特征表示能力,构建crosstrm模型,[cls]token作为输入的query,词级别的token作为输入的key和value,crosstrm模型输出用来表征每条输入语句,在bert模型后面添加用于意图分类线性层;
20、引入类别标签的语义信息并标记为标签文本,将标签文本经过bert模型处理后,同样对生成的[cls]token和词级别的token进行注意力操作,以获得标签文本的表示向量,并对标签文本的表示向量进行对比损失计算,对比损失的计算公式:
21、
22、其中,q为输入标签文本的表示向量,k+为正确标签的特征向量,ki(i=1…n)为所有标签的特征向量;t为超参数。
23、将最终训练损失由对比损失结合分类损失得到,具体计算公式如下:
24、
25、α为超参数,训练过程中,以较小的学习率对整个模型做训练优化。
26、进一步地,对bert模型进行压缩的方法包括:
27、bert模型总共包含12层transformer子模块,将两层视为一个阶段,目的是压缩为一层,目标层用对应的两层中的第二层的参数初始化,另外每一个transformer模块包含一个ffn子结构,由两层全连接组成,其参数量为12×(768×3072+3072×768),将中间隐藏层的维度从3072降低到768,使得参数量变为原来的crosstrm模块和线性层不变。
28、进一步地,在构建完成目标bert模型结构后,应用知识蒸馏的方法对目标bert模型进行训练,最终训练损失由分类损失和蒸馏损失两部分构成,其中,蒸馏损失包括对最后一层的知识和中间隐层的知识共同进行蒸馏,其蒸馏损失函数如下:
29、
30、
31、
32、和表示第i层的老师和学生模型的输出向量,pt和ps表示老师和学生模型的预测概率分布,t和α为超参数,对最后得到的bert模型进行半精度处理,以获得训练完成的bert模型。
33、进一步地,bert模型训练完成后,将每个语料数据构建数据集中的测试集输入训练完成的bert模型中,提取对应的特征并进行分类,检测模型效果。
34、进一步地,所述检验模型效果的方法包括混淆矩阵、学习曲线或roc曲线。
35、第三方面,本专利技术提供一种电子设备,包括:处理器和存储器,其中,所述存储器中存储有可供处理器调用的计算机程序;
36、所述处理器通过调用所述存储器中存储的计算机程序,执行上述的一种基于bert和模型压缩的意图分类方法。
37、第四方面,本专利技术提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行上述的一种基于bert和模型压缩的意图分类方法。
38、本专利技术的技术效果和优点:
39、1.本专利技术引入了[cls]token和词级别的token相结合共同对句子进行表征,提升了模型的特征提取能力,提升分类的效果;
40、2.本专利技术引入了标签的语义信息辅助模型的训练,优化特征空间的向量分布,使得同类别的特征向量尽可能紧凑,从而提升意图分类的效果;
41、3.本专利技术使用减少层数和降低维度的方法与蒸馏损失相结合,降低模型的体积和计算量,从而提升意图分类模型的推理速度,优化使用体验。
本文档来自技高网...【技术保护点】
1.一种基于Bert和模型压缩的意图分类方法,其特征在于,包括:
2.根据权利要求1所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,构建数据集的内容包括如下:
3.根据权利要求2所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,所述语料数据是指以中文为基础的语言数据;所述意图类别是指客户或者用户发送来的问题类别,所述采集工具利用爬虫或开放数据集通过在线社区、论坛或用户反馈来源搜集的文本数据。
4.根据权利要求3所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,初始化Bert模型,并对Bert模型进行微调的方法包括:
5.根据权利要求4所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,所述Bert模型总共包含12层,每层有12个head,隐藏层的维度为768,FeedForward层的维度为3072。
6.根据权利要求5所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,对Bert模型进行微调的方法还包括:
7.根据权利要求6所述的一种基于Bert和模型压缩的意
8.根据权利要求7所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,在构建完成目标Bert模型结构后,应用知识蒸馏的方法对目标Bert模型进行训练,最终训练损失由分类损失和蒸馏损失两部分构成,其中,蒸馏损失包括对最后一层的知识和中间隐层的知识共同进行蒸馏,其蒸馏损失函数如下:
9.根据权利要求8所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,Bert模型训练完成后,将每个语料数据构建数据集中的测试集输入训练完成的Bert模型中,提取对应的特征并进行分类,检测模型效果。
10.根据权利要求9所述的一种基于Bert和模型压缩的意图分类方法,其特征在于,所述检验模型效果的方法包括混淆矩阵、学习曲线或ROC曲线。
...【技术特征摘要】
1.一种基于bert和模型压缩的意图分类方法,其特征在于,包括:
2.根据权利要求1所述的一种基于bert和模型压缩的意图分类方法,其特征在于,构建数据集的内容包括如下:
3.根据权利要求2所述的一种基于bert和模型压缩的意图分类方法,其特征在于,所述语料数据是指以中文为基础的语言数据;所述意图类别是指客户或者用户发送来的问题类别,所述采集工具利用爬虫或开放数据集通过在线社区、论坛或用户反馈来源搜集的文本数据。
4.根据权利要求3所述的一种基于bert和模型压缩的意图分类方法,其特征在于,初始化bert模型,并对bert模型进行微调的方法包括:
5.根据权利要求4所述的一种基于bert和模型压缩的意图分类方法,其特征在于,所述bert模型总共包含12层,每层有12个head,隐藏层的维度为768,feedforward层的维度为3072。
6.根据权利要求5所述的一种基于bert和模型压缩...
【专利技术属性】
技术研发人员:赵瑞静,王昆,鲍思羽,杨东明,张京辉,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。