一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向金融场景的端到端自然语言处理训练框架与方法与流程

2022-02-19 04:22:09 来源:中国专利 TAG:


1.本发明涉及自然语言处理领域,尤其涉及一种面向金融场景的端到端自然语言处理训练框架与方法。


背景技术:

2.现代信息技术的高速发展使得互联网上所容纳的数据和信息呈现爆炸式增长。大量的数据是以文本的形式呈现,如各大互联网的网页数据,而大数据想要体现出数据的价值,就需要利用自然语言处理(natural language processing,nlp)技术去挖掘文本的核心内容。在文本挖掘中,不同的领域都会有着丰富多样的自然语言处理任务,如在金融领域的自然语言处理任务包括文本分类、情感分析、文本聚类、实体识别、文本相似度计算、信息抽取等。每一类任务中又有很多细分场景,比如在实体识别中,既有公司和人物提取,也有产品、品牌提取,也有招投标中的关键实体提取等等。在情感分析中,除了常见的商品情感二分类以外,还需要对同一个商品进行多维度情感分析,比如商品价格、商品质量、商品外观等。可见,在金融领域nlp任务具有任务庞杂、异构等特点。
3.在常见的解决方案中,算法工程师一般会针对每一类问题,量身定做相应的模型,同时进行各种魔改。这会导致大量的时间和精力消耗在了模型选择和测试中,同时,对于金融领域这类垂直领域的问题,往往还面临着低资源的困境,主要体现在三个方面:少样本,即数据搜集的成本很高,由于很多问题和具体业务场景有关系,因此能够搜集到的数据总量有限;少标注,即数据标注成本很高,对于金融领域的问题,数据标注往往需要金融分析师的深度参与,这极大增加数据标注的成本;少机器资源,出于合规、安全的考虑,很多算法需要私有化部署在金融机构的内网中,因而相对缺少机器资源,尤其是图形处理器(graphics processing unit,gpu)之类的资源。
4.为了解决上述问题,现有的技术方案中引入深度学习。深度学习的模型训练分为两种策略:一种是白手起家从头搭建模型进行训练,一种是通过预训练模型进行训练。在训练阶段,通常会采用迁移学习的思想,预训练模型 目标任务微调(fine

tune),这也是自然语言处理的新范式。以bert为代表的深度预训练模型在11个自然语言理解任务上刷新了最好成绩,包括文本分类、命名实体识别、问答等几乎所有的子领域达到了新的最前沿水平(state of the art)。作为通用的预训练模型,bert的出现也显著地减轻nlp算法工程师在具体应用中的繁重工作,由以往的魔改网络转变为fine tune bert,即可快速获得性能优秀的基线模型。
5.但上述技术方案存续以下缺陷:
6.1、当前开源的各类中文领域的深度预训练模型,多是面向通用领域的应用需求,在中文金融领域内没有看到相关开源模型。开源bert模型在金融领域任务上表现不佳,有些任务甚至不如部分轻量级的模型,要达到很好的效果,就需要标注很多数据,而标注数据的成本很高;
7.2、bert12层transformer网络参数量大,前向计算耗时,模型压测时间超标,上线
部署困难。bert模型部署对服务器配置要求比较高,需要gpu服务器才可以工作;
8.3、在金融领域,任务庞大,没有好的基线模型,就需要花费很多时间进行实验尝试,有时候还会走弯路,浪费很多时间和经历。
9.因此,本领域的技术人员致力于开发一种面向金融场景的端到端自然语言处理训练框架与方法,解决现有技术方案中存在的上述缺陷。


技术实现要素:

10.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是:如何在金融领域进行大规模的预训练模型,使得预训练模型在金融业务场景中具有更好的语义理解能力;如何让模型轻量,在cpu服务器上部署上线,满足实时预测需求;如何构建一种面向金融场景的自然语言处理任务框架,面向公司金融业务能力输出,快速高效搭建高水平的基线模型。
11.为实现上述目的,本发明提供了一种面向金融场景的端到端自然语言处理训练框架,包括:
12.google原生bert模块,所述google原生bert模块为所述训练框架的起点,包括google原生bert,并接收通用语料数据作为模块的输入;
13.finbert预训练模块,所述finbert预训练模块连接所述google原生bert模块,用金融领域语料数据对所述google原生bert进行二次预训练,得到适用于金融领域的bert,称为finbert;
14.基于类似self

training思想从外部相关数据中挖掘新数据模块,所述基于类似self

training思想从外部相关数据中挖掘新数据模块连接所述finbert预训练模块,用task label语料对所述finbert进行训练,得到task model,并接收外部语料,生成task相关语料;
15.下游任务语料上进行预训练模块,所述下游任务语料上进行预训练模块连接所述基于类似self

training思想从外部相关数据中挖掘新数据模块,对所述finbert进行再一次的预训练,得到task finbert;
16.用半监督学习的框架来充分利用无标签语料模块,所述用半监督学习的框架来充分利用无标签语料模块连接所述下游任务语料上进行预训练模块,通过接收所述task label语料和所述task相关语料,在所述task finbert的基础上进行训练得到uda finbert;
17.知识蒸馏模块,所述知识蒸馏模块连接所述用半监督学习的框架来充分利用无标签语料模块,利用蒸馏技术将所述uda finbert学习到的知识和特征蒸馏到轻量级模型上;
18.线上部署模块,所述线上部署模块连接所述知识蒸馏模块,将所述轻量级模型部署上线,用于实际生产环境。
19.进一步地,所述google原生bert包括finbert

base和finbert

large;其中,所述finbert

base采用12层transformer结构,所述finbert

large采用24层transformer结构。
20.进一步地,所述finbert的训练方式包括采用字词级别的预训练和任务级别的预训练。
21.进一步地,所述知识蒸馏模块包括教师模型和学生模型,将所述教师模型的输出结果作为知识,让所述学生模型去拟合,从而将所述教师模型学习到的所述知识转移到所
述学生模型上,其中,所述教师模型是大参数量模型,所述学生模型是轻量级的小模型,即所述轻量级模型。
22.进一步地,所述知识包括软标签和硬标签;所述软标签包括logits,或者概率值;所述硬标签为将所述概率值求argmax后得到的one

hot标签;当使用所述logits作为知识的时候,损失函数选择mse;当使用所述概率值作为知识的时候,选择kl散度作为损失函数;当使用所述硬标签作为知识时,选择交叉熵作为损失函数。
23.进一步地,当使用所述概率值作为知识的时候,引入温度超参数;所述温度超参数用来控制概率分布的情况,式子(1)表示加入所述温度超参数后的概率计算公式:
[0024][0025]
其中,zt表示所述logits,t为温度参数,t的取值区间为[1,20],t越大,则概率分布越均匀,保留的信息越多;t越小,越接近one

hot编码,保留的信息越少。
[0026]
本发明还提供了一种面向金融场景的端到端自然语言处理训练方法,所述方法包括以下步骤:
[0027]
步骤1、finbert预训练;
[0028]
步骤2、基于类似self

training思想从外部相关数据中挖掘新数据,以扩充下游任务的语料总量;
[0029]
步骤3、下游任务语料上进行预训练,将所述步骤2所获得的外部语料与原始的下游任务语料共同构成扩充后的下游任务语料库,并用来对所述finbert进行再一次预训练,得到的模型称之为task finbert;
[0030]
步骤4、用半监督学习的框架来充分利用无标签语料,在所述task finbert的基础上,利用所述半监督学习的框架,在所述下游任务语料库上训练得到的模型称之为uda finbert;
[0031]
步骤5、蒸馏学习,将学习到的知识和特征蒸馏到轻量级模型上;
[0032]
其中,所述步骤1,
[0033]
在网络结构上,所述finbert采用google原生bert,包含finbert

base和finbert

large两个版本,其,所述finbert

base采用12层transformer结构,所述finbert

large采用24层transformer结构;
[0034]
在训练语料上,所述finbert采用的预训练语料包含三大类金融领域的语料数据,分别为:金融财经类新闻、研报/上市公司公告和金融类百科词条;
[0035]
在训练方式上,所述finbert采用字词级别的预训练和任务级别的预训练。
[0036]
进一步地,所述字词级别的预训练包括两类子任务,分别是finnacial whole word mask和next sentence prediction;所述任务级别的预训练包括两类有监督学习任务,分别是研报行业分类和财经新闻的金融实体识别任务。
[0037]
进一步地,所述finbert预训练采用tensorflow xla和automatic mixed precision两类技术进行预训练加速。
[0038]
进一步地,在所述步骤5中,将所述步骤4中训练得到的所述uda finbert模型蒸馏到轻量级的模型上;所述蒸馏学习为端到端的蒸馏学习,包括教师模型和学生模型,将所述教师模型的输出结果作为知识,让所述学生模型去拟合,从而将所述教师模型学习到的所
述知识转移到所述学生模型上,其中,所述教师模型是大参数量模型,所述学生模型是轻量级的小模型,即所述轻量级模型;
[0039]
所述知识包括软标签和硬标签;所述软标签包括logits,或者概率值;所述硬标签为将所述概率值求argmax后得到的one

hot标签;当使用所述logits作为知识的时候,损失函数选择mse;当使用所述概率值作为知识的时候,选择kl散度作为损失函数;当使用所述硬标签作为知识时,选择交叉熵作为损失函数;
[0040]
当使用所述概率值作为知识的时候,引入温度超参数;所述温度超参数用来控制概率分布的情况。
[0041]
本发明提供的一种面向金融场景的端到端自然语言处理训练框架与方法至少具有以下技术效果:
[0042]
1、本发明所使用的finbert预训练模型,在金融业务场景中具有更好的语义理解能力;
[0043]
2、本发明所提供的技术方案能够很好的利用无标签数据,在只有少量标注数据的情况下,也能获得一个效果比较好的模型;
[0044]
3、本发明所提供的技术方案可以让工程师在很短的时间内高效地开发完成一个可以部署上线的高水平模型;
[0045]
4、本发明所提供的技术方案可以降低对部署服务器的配置要求。
[0046]
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
[0047]
图1是本发明的一个较佳实施例的系统框图;
[0048]
图2是图1所示实施例的知识蒸馏模型图。
具体实施方式
[0049]
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
[0050]
如图1所示,为本发明的一个较佳实施例的系统框图,包括google原生bert模块、finbert预训练模块、基于类似self

training思想从外部相关数据中挖掘新数据模块、下游任务语料上进行预训练模块、用半监督学习的框架来充分利用无标签语料模块、知识蒸馏模块和线上部署模块。
[0051]
google原生bert模块是整套训练框架的起点,包括google原生bert(中文),该模型在很多通用领域的下游任务均得到了很好效果(部分任务可达sota),但在垂直领域任务上往往表现不佳,甚至不如部分轻量级的模型。google原生bert模块接收通用语料数据作为模块的输入。其中,google原生bert包括finbert

base和finbert

large;其中,finbert

base采用12层transformer结构,finbert

large采用24层transformer结构。
[0052]
finbert预训练模块,finbert预训练模块连接google原生bert模块,用金融领域语料数据对google原生bert进行二次预训练,得到适用于金融领域的bert,称为finbert。
[0053]
finbert的训练方式包括采用字词级别的预训练和任务级别的预训练。
[0054]
基于类似self

training思想从外部相关数据中挖掘新数据模块,基于类似self

training思想从外部相关数据中挖掘新数据模块连接finbert预训练模块,用task label语料对finbert进行训练,得到task model,并接收外部语料,生成task相关语料。
[0055]
下游任务语料上进行预训练模块,下游任务语料上进行预训练模块连接基于类似self

training思想从外部相关数据中挖掘新数据模块,对finbert进行再一次的预训练,得到task finbert。
[0056]
用半监督学习的框架来充分利用无标签语料模块,用半监督学习的框架来充分利用无标签语料模块连接下游任务语料上进行预训练模块,通过接收task label语料和task相关语料,在task finbert的基础上进行训练得到uda finbert。
[0057]
基于类似self

training思想从外部相关数据中挖掘新数据模块、下游任务语料上进行预训练模块和用半监督学习的框架来充分利用无标签语料模块是针对具体的下游任务,对finbert进行三阶段的训练。通过self

training、半监督学习、语言模型预训练等多种方式,充分挖掘下游任务有限语料以及高相关度的外部语料的价值,从而得到一个基于finbert的高精度模型,称之为uda finbert,用于完成相应的下游任务。
[0058]
知识蒸馏模块,知识蒸馏模块连接用半监督学习的框架来充分利用无标签语料模块,利用蒸馏技术将uda finbert学习到的知识和特征蒸馏到轻量级模型上,如textcnn。
[0059]
线上部署模块,线上部署模块连接知识蒸馏模块,将轻量级模型部署上线,用于实际生产环境。一般来说,该轻量级模型比起uda finbert,精确度会降低1~2个百分点,但速度可以提升至少20倍。
[0060]
其中,知识蒸馏模块包括教师模型和学生模型,将教师模型的输出结果作为知识,让学生模型去拟合,从而将教师模型学习到的知识转移到学生模型上,其中,教师模型是大参数量模型,学生模型是轻量级的小模型,即轻量级模型。知识包括软标签和硬标签;软标签包括logits,或者概率值;硬标签为将概率值求argmax后得到的one

hot标签;当使用logits作为知识的时候,损失函数选择mse;当使用概率值作为知识的时候,选择kl散度作为损失函数;当使用硬标签作为知识时,选择交叉熵作为损失函数。
[0061]
当使用概率值作为知识的时候,引入温度超参数;温度超参数用来控制概率分布的情况,公式(1)表示加入温度超参数后的概率计算公式:
[0062][0063]
其中,zt表示logits,t为温度参数,t的取值区间为[1,20],t越大,则概率分布越均匀,保留的信息越多;t越小,越接近one

hot编码,保留的信息越少。
[0064]
本发明还提供了一种面向金融场景的端到端自然语言处理训练方法,方法包括以下步骤:
[0065]
步骤1、finbert预训练;
[0066]
步骤2、基于类似self

training思想从外部相关数据中挖掘新数据,以扩充下游任务的语料总量;
[0067]
步骤3、下游任务语料上进行预训练,将步骤2所获得的外部语料与原始的下游任务语料共同构成扩充后的下游任务语料库,并用来对finbert进行再一次预训练,得到的模
型称之为task finbert;
[0068]
步骤4、用半监督学习的框架来充分利用无标签语料,在task finbert的基础上,利用半监督学习的框架,在下游任务语料库上训练得到的模型称之为uda finbert;
[0069]
步骤5、蒸馏学习,将学习到的知识和特征蒸馏到轻量级模型上;
[0070]
其中,步骤1,
[0071]
在网络结构上,finbert采用与google发布的原生bert相同的架构,即google原生bert,包含finbert

base和finbert

large两个版本,其,finbert

base采用12层transformer结构,finbert

large采用24层transformer结构;
[0072]
在训练语料上,finbert采用的预训练语料包含三大类金融领域的语料数据,分别为:金融财经类新闻、研报/上市公司公告和金融类百科词条。
[0073]
其中,金融财经类新闻:从公开渠道收集的最近十年的金融财经类新闻资讯,约100万篇;研报/上市公司公告:从公开渠道收集的各类研报和公司公告,来自500多家境内外研究机构,涉及9000家上市公司,包含150多种不同类型的研报,共约200万篇;金融类百科词条:从wiki等渠道收集的金融类中文百科词条,约100万条。
[0074]
对于上述三类语料,在金融业务专家的指导下,对于各类语料的重要部分进行筛选、预处理之后得到最终用于模型训练的语料,共包含40亿token,这一数量超过了原生中文bert的训练规模。
[0075]
在训练方式上,finbert采用字词级别的预训练和任务级别的预训练。
[0076]
(1)字词级别的预训练:
[0077]
字词级别的预训练首先包含两类子任务,分别是finnacial whole word mask(fwwm)、next sentence prediction(nsp)。在训练中,为了节省资源,采用与google类似的两阶段预训练方式,第一阶段预训练最大句子长度为128,第二阶段预训练最大句子长度为512。
[0078]
两类任务具体形式如下:
[0079]
第一类任务finnacial whole word mask(fwwm)。whole word masking(wwm),一般翻译为全词mask或整词mask,是google在2019年5月发布的一项升级版bert中,主要更改了原预训练阶段的训练样本生成策略。简单来说,原有基于piecework的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。在全词mask中,如果一个完整的词的部分wordpiece子词被mask,则同属该词的其他部分也会被mask,即全词mask。
[0080]
在谷歌原生的中文bert中,输入是以字为粒度进行切分,没有考虑到领域内共现单词或词组之间的关系,从而无法学习到领域内隐含的先验知识,降低了模型的学习效果。在本发明实施例中,将全词mask的方法应用在金融领域语料预训练中,即对组成的同一个词的汉字全部进行mask。首先从金融词典、金融类学术文章中,通过自动挖掘结合人工核验的方式,构建出金融领域内的词典,约有10万词。然后抽取预语料和金融词典中共现的单词或词组进行全词mask预训练,从而使模型学习到领域内的先验知识,如金融学概念、金融概念之间的相关性等,从而增强模型的学习效果。
[0081]
第二类任务是next sentence prediction(nsp),为了训练一个理解句子间关系的模型,引入一个下一句预测任务。具体方式可参考bert原始文献,google的论文结果表
明,这个简单的任务对问答和自然语言推理任务十分有益,在预训练过程中也发现去掉nsp任务之后对模型效果略有降低,因此在本发明实施例中保留了nsp的预训练任务,学习率采用google官方推荐的2e

5,warmup

steps为10000steps。
[0082]
(2)任务级别的预训练:
[0083]
为了让模型更好地学习到语义层的金融领域知识,更全面地学习到金融领域词句的特征分布,引入了两类有监督学习任务,分别是研报行业分类和财经新闻的金融实体识别任务,具体如下:
[0084]
研报行业分类:对于公司点评、行业点评类的研报,天然具有很好的行业属性,因此在本发明实施例中,利用这类研报自动生成大量带有行业标签的语料,并据此构建行业分类的文档级有监督任务。各行业类别语料在5k~20k之间,共计约40万条文档级语料。
[0085]
财经新闻的金融实体识别:与研报行业分类任务类似,本发明实施例利用已有的企业工商信息库以及公开可查的上市公司董监高信息,基于金融财经新闻构建命名实体识别类的任务语料,共包含有50万条的有监督语料。
[0086]
整体而言,为使finbert模型可以更充分学习到金融领域内的语义知识,本发明实施例在原生bert模型预训练的基础上做了如下改进:
[0087]
1、训练时间更长,训练过程更充分;为了取得更好的模型学习效果,我们延长模型第二阶段预训练时间至与第一阶段的token总量一致;
[0088]
2、融合金融领域内知识;引入词组和语义级别任务,并提取领域内的专有名词或词组,采用全词mask的掩盖方式以及两类有监督任务进行预训练;
[0089]
3、为了更充分的利用预训练语料,采用类似roberta模型的动态掩盖mask机制,将dupe

factor参数设置为10。
[0090]
在预训练时进行加速,当前,对于所提供的一整套软硬件深度学习炼丹系统,英伟达提供了丰富的技术支持和框架优化,其中很重要的一点就是如何在训练中进行加速。在finbert的训练中,本发明实施例主要采用tensorflow xla和automatic mixed precision两类技术进行预训练加速。
[0091]
(1)tensorflow xla进行训练加速
[0092]
xla全称为加速线性运算,如果在tensorflow中开启了xla,那么编译器会对tensorflow计算图在执行阶段进行优化,通过生成特定的gpu内核序列来节省计算过程对于硬件资源的消耗。一般而言,xla可以提供40%的加速。
[0093]
(2)automatic mixed precision
[0094]
一般深度学习模型训练过程采用单精度(float 32)和双精度(double)数据类型,导致预训练模型对于机器显存具有很高的要求。为了进一步减少显存开销、加快finbert预训练和推理速度,本发明实施例的实验采用tesla v100 gpu进行混合精度训练。混合精度训练是指fp32和fp16混合的训练方式,使用混合精度训练可以加速训练过程同时减少显存开销,兼顾fp32的稳定性和fp16的速度。在保证模型准确率不下降的情况下,降低模型的显存占用约一半,提高模型的训练速度约3倍。
[0095]
在步骤4中,运用半监督学习框架微调二次预训练后的task finbert。通常一个下游任务中,有很大一部分语料都不具有标签,因此在此阶段,本发明实施例引入半监督学习框架unsupervised data augmentation(uda)。核心目标是,在不引入额外人工标注情况
下,充分利用无标签的数据,用来指导模型的学习。uda是google在2019年提出的半监督学习算法。该算法超越了所有之前的半监督学习方法,并实现了仅使用极少量标记样本结合大量无标签样本即可达到甚至超过使用大量标记样本训练集的模型精度。uda框架的核心思想是一致性假设,即要求模型在输入数据的附近空间应该是平坦的,即使输入数据发生微弱变化或者发生语义不变而仅仅是形式变化时,模型的输出也能够基本保持不变。从数据流角度来看,uda框架获取学习信号的核心思想,即对于有标签部分的数据仍然采用交叉熵,而对于无标签部分的数据则通过一致性正则来获取学习信号。本发明实施例在task finbert的基础上,利用半监学习框架,在下游任务相关语料上训练得到的模型称之为uda finbert。
[0096]
在步骤5中,经过步骤4训练得到的uda finbert模型虽然表现很好,但是在实际中需要搭载gpu的机器才能正常使用,这在很多场景中无法满足。因此,在通用nlp训练框架中,本发明实施例引入蒸馏学习这一过程,希望将前一阶段训练得到的uda finbert模型蒸馏到更加轻量级的模型上。在保证模型准确度略微降低的情况下,大幅度的减小模型的参数量,有效降低模型对于机器硬件资源的要求。如图2所示为端到端蒸馏学习的基本原理,本发明实施例一般将大参数量模型称为教师模型(teacher model),轻量级的小模型称为学生模型(student model)。对于端到端的蒸馏学习,其核心思想是,将教师模型学习到的知识转移到学生模型上,一般会将教师模型的输出结果作为知识,让学生模型学习去拟合知识。通常情况下,会使用logits(即分类任务中softmax层的输入)或概率值(分类任务中softmax层的输出)作为知识,这两种知识称作“软标签”。另外,还有“硬标签”,是指将概率值求argmax后得到的one

hot标签。当本发明实施例使用logits作为知识的时候,损失函数通常选择mse;当使用概率值作为知识的时候,选择kl散度作为损失函数;使用硬标签作为知识时,选择交叉熵作为损失函数。其中,当使用概率值作为知识的时候,本发明实施例会引入一个名叫“温度(temperature)”的超参数,用来控制概率分布的情况,如上述公式(1)所示,表示加入温度后的概率计算公式,zt表示logits,t为温度参数,通常取值区间为[1,20],t越大概率分布越均匀,保留的信息越多,t越小,越接近one

hot编码,保留的信息越少。
[0097]
在本框架中,教师模型是第四步已经训练好的uda finbert模型,学生模型是textcnn模型,模型训练的损失函数主要由两部分组成,一部分是学生模型在特定任务下的损失,在文本分类中,本发明实施例使用标准的交叉熵损失函数;另一部分是蒸馏损失,本发明实施例使用概率值作为知识,损失函数选择kl散度。
[0098]
在本发明的另一个实施例中,使用面向金融场景的端到端自然语言处理训练框架完成金融短讯的文本分类任务,由python 3.6、tensorflow、pytorch编写完成。
[0099]
完成一个金融短讯文本分类任务,需要的步骤如下:
[0100]
第一步:在金融领域的语料上,在bert的基础上进行二次训练,得到一个模型称之为finbert。这一步操作过程在技术方案里有详细介绍。finbert的预训练只需要在金融语料上训练一次,后续在下游任务上就可以直接使用。
[0101]
第二步:在金融资讯有标签的语料上,基于finbert模型训练一个金融短讯分类model,利用金融短讯分类model预测外部语料,每一条外部语料都会给出一个标签和置信度,将置信高的数据筛选出来作为金融短讯相关语料。这样可以扩充金融短讯分类任务的
语料总量。
[0102]
第三步:将第二步获得的金融短讯相关语料与原始的有标签语料共同构成金融短讯分类任务语料,并用来对finbert进行再一次预训练,得到的模型称之为task finbert。task finbert训练方式和finbert类似,可以参考本发明的技术方案。
[0103]
第四步:经过第二步可以获取到大量的金融短讯相关语料,可以用半监督学习的框架来充分利用这部分语料。运用半监督学习框架微调二次预训练后的task finbert。本发明实施例在task finbert的基础上,利用半监学习框架,在金融短讯相关语料上训练得到的模型称之为uda finbert。
[0104]
第五步:经过第四步训练得到的uda finbert模型虽然表现很好,但是在实际中需要搭载gpu的机器才能正常使用,这在很多场景中无法满足。因此,在通用nlp训练框架中,本发明实施例引入了蒸馏学习这一过程,希望将前一阶段训练得到的udafinbert模型蒸馏到更加轻量级的模型上。在蒸馏学习中,教师模型是已经训练好的uda finbert模型,学生模型是textcnn模型,模型训练的损失函数主要由两部分组成,一部分是学生模型在特定任务下的损失,在金融资讯文本分类中,本发明实施例使用标准的交叉熵损失函数;另一部分是蒸馏损失,本发明实施例使用概率值作为知识,损失函数选择kl散度。
[0105]
第六步:将第五步蒸馏得到的学生模型部署上线。一般来说,该学生模型比起finbert,精确度会降低1~2个百分点,但速度可以提升至少20倍。
[0106]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献