本申请涉及自然语言处理技术领域,尤其涉及一种文本分类模型封装方法、文本分类方法、文本分类模型封装装置、计算机设备及存储介质。
背景技术:
语言模型极大地提高了整体自然语言处理的精度。但是语言模型的推理速度和模型体积一直是受人诟病的,例如一个完成基础预训练的模型就拥有将近1000万的参数。虽然可以对语言模型进行压缩,但是压缩模型后损失了模型的精度。此外,如果想把模型当做一个文本分类器,就需要在各个场景上进行微调,各个场景部署的时候都需要高性能gpu服务器进行部署,浪费了大量的计算资源并显著提高了计算成本。
因此,如何减少语言模型的体积同时保证语言模型的语言识别精度成为亟待解决的技术问题。
技术实现要素:
鉴于以上内容,有必要提出一种文本分类模型封装方法、装置、计算机设备及存储介质,能够在减少语言模型体积的同时保证语言模型的语言识别精度。
本申请的第一方面提供了一种文本分类模型封装方法,所述文本分类模型封装方法包括:
提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量;
响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;
获取所述分类场景对应的训练文本;
将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;
基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;
对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像。
根据本申请的一个可选的实施例,所述提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块包括:
响应于模型封装指令;
解析所述模型封装指令得到封装指定层;
将提取的所述transformer部分中所述封装指定层进行封装,生成向量转换模块。
根据本申请的一个可选的实施例,所述对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像之后,所述方法包括:
根据所述文本分类模型对应的docker镜像生成所述文本分类模型对应的docker仓库;
将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点。
根据本申请的一个可选的实施例,所述将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点包括:
根据所述文本分类模型的分类场景查询预设的场景关系表,确定所述分类场景对应的多个相邻场景;
确定所述多个相邻场景对应的多个相邻文本分类模型;确定kubernetes中存储所述多个相邻文本分类模型的多个node节点;
根据所述多个node节点的位置信息在kubernetes中确定目标node节点;
将所述文本分类模型对应的docker仓库存放至所述目标node节点。
根据本申请的一个可选的实施例,所述获取所述分类场景对应的训练文本包括:
获取用户输入的所述分类场景对应的第一训练文本;
确定所述第一训练文本对应的多个关联维度;
基于所述多个关联维度,通过预设的训练文本知识图谱对所述第一训练文本进行扩展,获得第二训练文本;
根据所述第一训练文本和所述第二训练文本生成所述分类场景对应的训练文本。
根据本申请的一个可选的实施例,所述将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量包括:
配置文本处理队列;
当接收到多个向量转换请求时,根据所述多个向量转换请求的请求时间将所述多个向量转换请求对应的训练文本写入所述文本处理队列;
通过所述文本处理队列向所述向量转换模块输入训练文本,得到所述训练文本对应的句向量。
本申请的第二方面提供了一种文本分类方法,所述文本分类方法包括:
响应于文本分类请求,确定所述文本分类请求对应的分类场景;
确定并获取所述分类场景对应的docker镜像,并提取所述docker镜像中的文本分类模型;
获取待分类文本并调用向量转换模块得到所述待分类文本对应的句向量;
调用所述文本分类模型并基于所述句向量得到所述文本分类请求对应的文本分类结果;
其中,所述docker镜像中的文本分类模型和/或所述向量转换模块是使用如上述的文本分类模型封装方法得到的。
本申请的第三方面提供了一种文本分类模型封装装置,所述装置包括:
模型处理模块,用于提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量;
场景确定模块,用于响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;
文本获取模块,用于获取所述分类场景对应的训练文本;
向量转换模块,用于将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;
模型训练模块,用于基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;
模型打包模块,用于对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像。
本申请的第四方面提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的文本分类模型封装方法。
本申请的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的文本分类模型封装方法。
本申请实施例公开了一种文本分类模型封装方法、装置、计算机设备及存储介质,通过提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量,提取语言模型与分类场景无关的transformer部分封装生成向量转换模块,方便后续调用该向量转换模块进行向量转换,从而加快文本模型生成的速率;响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;获取所述分类场景对应的训练文本;将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像,将文本分类模型打包成docker镜像实现资源隔离,提高了模型的稳定性,同时也加快了模型调取的速率。本申请实施例将语言模型拆分为两部分,一部分是与分类场景无关的transformer部分,并将transformer部分封装生成向量转换模块,另一部分是与分类场景相关的浅层神经网络,并对所述浅层神经网络进行训练得到分类场景对应的文本分类模型,实现了语言模型的分布式文本分类框架,能够在减少语言模型体积的同时保证语言模型的语言识别精度。
附图说明
图1是本申请实施例提供的一种文本分类模型封装方法的流程示意图;
图2是本申请实施例提供的一种文本分类方法的流程示意图;
图3是本申请实施例提供的一种文本分类模型封装装置的示意性框图;
图4是本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例提供一种文本分类模型封装方法、装置、计算机设备及计算机可读存储介质。其中,该文本分类模型封装方法可应用于终端设备或服务器中,该终端设备可以手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等计算机设备,该服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。以下以该文本分类模型封装方法应用于服务器为例进行解释说明。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请实施例提供的一种文本分类模型封装方法的示意流程图。
如图1所示,所述文本分类模型封装方法具体包括步骤s11至s16,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
步骤s11、提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量。
transformer部分利用self-attention机制实现快速并行,是一个完全基于注意力机制的encoder-decoder模型。transformer部分由编码组件、解码组件和它们之间的连接组成,其中,编码组件部分由一堆编码器(6个encoder)构成,解码组件部分也是由相同数量(与编码器对应)的解码器(decoder)组成的。transformer部分用于将输入的文本通过词嵌入算法转换为词向量。
示例性的,提取语言模型中与分类场景无关的transformer部分,舍弃语言模型中的全连接层(fullyconnectedlayer,fc)部分,并将提取出的transformer部分进行封装生成向量转换模块(restfulapi)。在一些实施方式中,可根据用户设置提取transformer部分中的指定层数的指定标识(token)的嵌入层(embedding),例如提取transformer部分中的第12层的clstoken的embedding。所述向量转换模块可被调用,调用后可将输入的文本转换为所述文本对应的句向量,不需要进行多次部署,加快了文本分类模型生成的速率。
示例性的,所述向量转换模块可部署在高性能gpu服务器上,可有效加快句向量转换的效率。
在一实施方式中,所述提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块包括:
响应于模型封装指令;
解析所述模型封装指令得到封装指定层;
将提取的所述transformer部分中所述封装指定层进行封装,生成向量转换模块。
用户可根据需求发送模型封装指令,所述模型封装指令中包括封装指定层,即所述模型封装指令指示了将所述transformer部分中进行封装的层数。根据模型封装指令生成向量转换模块,可以使得生成的向量转换模块更符合用户的需要,提高了文本分类模型生成的效率。
步骤s12、响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景。
接收用户发送的文本分类模型训练请求,所述文本分类模型训练请求可以是http格式,通过解析所述文本分类模型训练请求确定需要训练的文本分类模型对应的分类场景。所述分类场景可以包括文本情感分类、文本意图分类等,在此不对分类场景进行限定。示例性的,所述文本分类模型训练请求可包括多个,不同的文本分类模型训练请求对应着不同分类场景的文本分类模型。
步骤s13、获取所述分类场景对应的训练文本。
示例性的,可根据分类场景在预先设置的训练文本数据库中查询与所述分类场景对应的训练文本,也可以获取用户输入的所述分类场景对应的训练文本。
在一实施方式中,所述获取所述分类场景对应的训练文本包括:
获取用户输入的所述分类场景对应的第一训练文本;
确定所述第一训练文本对应的多个关联维度;
基于所述多个关联维度,通过预设的训练文本知识图谱对所述第一训练文本进行扩展,获得第二训练文本;
根据所述第一训练文本和所述第二训练文本生成所述分类场景对应的训练文本。
可根据训练文本数据库中存储的训练文本生成训练文本知识图谱,所述训练文本知识图谱包括多个维度和所述多个维度之间的关联关系。示例性的,生成的训练文本知识图谱可以存储至区块链中,保证训练文本知识图谱的安全性。通过对用户输入的第一训练文本进行扩展得到第二训练文本,并根据所述第一训练文本和所述第二训练文本生成训练文本,可以丰富训练文本的内容,可以间接提高文本分类模型的准确率。
步骤s14、将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量。
调用向量转换模块对将所述训练文本进行向量转换,得到所述训练文本对应的句向量。
在一实施方式中,所述将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量:
配置文本处理队列;
当接收到多个向量转换请求时,根据所述多个向量转换请求的请求时间将所述多个向量转换请求对应的训练文本写入所述文本处理队列;
通过所述文本处理队列向所述向量转换模块输入训练文本,得到所述训练文本对应的句向量。
配置文本处理队列,按照预设的规则对接收的多个向量转换请求进行排队,按照排队顺序将所述多个向量转换请求对应的训练文本写入所述文本处理队列。例如,所述规则可以是根据所述多个向量转换请求的请求时间先请求先进队的规则。按照所述文本处理队列中的顺序输出各训练文本对应的句向量。按照一定的顺序处理向量转换请求,可以保证对向量转换请求的执行效率。
步骤s15、基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型。
示例性的,不同的分类场景对应着不同的浅层神经网络,所述分类场景和所述浅层神经网络的对应关系可根据用户的需求进行设定。由于浅层神经网络的体积通常较小,因而训练效率很高。
示例性的,所述文本分类模型的体积很小,计算量较小,不会占用过大的内存,故可以部署到手机终端、智能手环等计算平台,能够有效提高自然语言处理(nlp)的应用场景
步骤s16、对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像。
示例性的,可将所述文本分类模型进行封装生成模型接口(restfulapi),所述模型接口用于提供所述文本分类模型对应的分类场景的分类服务。将所述模型接口进行打包生成所述文本分类模型对应的docker镜像。每一个docker镜像都包含了完整的用于该分类场景的文本分类模型。通过将文本分类模型存储至docker镜像中实现了资源隔离,提高了模型的稳定性,同时也加快了模型调取的速率,实现了分类模型的热切换。
在一实施方式中,所述对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像之后,所述方法包括:
根据所述文本分类模型对应的docker镜像生成所述文本分类模型对应的docker仓库;
将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点。
将所述文本分类模型对应的docker仓库存放在kubernetes中的node节点上,提高了对文本分类模型的管理效率,同时也方便了后续调取文本分类模型。
在一实施方式中,所述将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点包括:
根据所述文本分类模型的分类场景查询预设的场景关系表,确定所述分类场景对应的多个相邻场景;
确定所述多个相邻场景对应的多个相邻文本分类模型;
确定kubernetes中存储所述多个相邻文本分类模型的多个node节点;
根据所述多个node节点的位置信息在kubernetes中确定目标node节点;
将所述文本分类模型对应的docker仓库存放至所述目标node节点。
预先设置场景关系表,所述场景关系表中包含多个分类场景和各分类场景对应的多个相邻场景。确定所述文本分类模型的分类场景对应的多个分类场景,并根据多个相邻场景对应的相邻文本分类模型在kubernetes中的位置信息在kubernetes中确定目标node节点,所述目标node节点用于存储所述文本分类模型。通过该方法可快速在kubernetes中确定存储文本分类模型的node节点,同时在kubernetes中存储文本分类模型的node节点间存在一定的连接关系,提高了对存储在kubernetes中的文本分类模型进行管理的效率。
上述实施例提供的文本分类模型封装方法,通过提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量,提取语言模型与分类场景无关的transformer部分封装生成向量转换模块,方便后续调用该向量转换模块进行向量转换,从而加快文本模型生成的速率;响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;获取所述分类场景对应的训练文本;将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像,将文本分类模型打包成docker镜像实现资源隔离,提高了模型的稳定性,同时也加快了模型调取的速率。上述实施例将语言模型拆分为两部分,一部分是与分类场景无关的transformer部分,并将transformer部分封装生成向量转换模块,另一部分是与分类场景相关的浅层神经网络,并对所述浅层神经网络进行训练得到分类场景对应的文本分类模型,实现了语言模型的分布式文本分类框架,能够在减少语言模型体积的同时保证语言模型的语言识别精度。
请参阅图2,图2是本申请实施例提供的一种文本分类方法的示意流程图,所述文本分类方法具体包括步骤s21至s24,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
步骤s21、响应于文本分类请求,确定所述文本分类请求对应的分类场景。
示例性的,可接受并响应用户发送的文本分类请求,所述文本分类请求可以是以http格式发送的请求,通过解析所述文本分类请求对应的http报文确定文本分类请求对应的分类场景。所述分类场景可以包括文本情感分类、文本意图分类等,在此不对分类场景进行限定。
步骤s22、确定并获取所述分类场景对应的docker镜像,并提取所述docker镜像中的文本分类模型。
示例性的,确定所述分类场景对应的docker镜像,并基于kubernetes获取所述分类场景对应的docker镜像,并从获取到的docker镜像中提取所述分类场景对应的文本分类模型。其中,所述分类场景对应的docker镜像可存储在kubernetes中的node节点中。
步骤s23、获取待分类文本并调用向量转换模块得到所述待分类文本对应的句向量。
所述向量转换模块是将语言模型中transformer部分进行封装后得到的。所述向量转换模块可被调用,调用后可将输入的文本转换为所述文本对应的句向量,不需要进行多次部署,加快了文本分类模型生成的速率。
示例性的,所述向量转换模块可部署在高性能gpu服务器上,可有效加快句向量转换的效率。
在一些实施方式中,可配置文本处理队列,按照预设的规则对接收的多个文本分类请求进行排队,按照排队顺序将所述多个文本分类请求对应的训练文本写入所述文本处理队列。例如,所述规则可以是根据所述多个文本分类请求的请求时间先请求先进队的规则。按照所述文本处理队列中的顺序输出各训练文本对应的句向量。按照一定的顺序处理文本分类请求,可以保证对文本分类请求的执行效率。
步骤s24、调用所述文本分类模型并基于所述句向量得到所述文本分类请求对应的文本分类结果;其中,所述docker镜像中的文本分类模型和/或所述向量转换模块是使用如上所述的文本分类模型封装方法得到的。
示例性的,获取所述句向量对应的嵌入层(embedding),调用所述文本分类模型对所述嵌入层进行分类,分类结束后返回所述文本分类请求对应的文本分类结果。
上述实施例提供的文本分类方法,通过响应于文本分类请求确定所述文本分类请求对应的分类场景;确定并获取所述分类场景对应的docker镜像,并提取所述docker镜像中的文本分类模型,通过docker镜像获取文本分类模型可加快获取文本分类模型的速率;获取待分类文本,并调用向量转换模块得到所述待分类文本对应的句向量,通过调用预先封装的向量转换模块可加快获取待分类文本对应的句向量的速率;调用所述文本分类模型并基于所述句向量得到所述文本分类请求对应的文本分类结果;其中,所述docker镜像中的文本分类模型和/或所述向量转换模块是使用如上所述的文本分类模型封装方法得到的。本实施例提供的文本分类方法可有效提高文本分类的效率。
请参阅图3,图3是本申请的实施例提供的一种文本分类模型封装装置的示意性框图,该文本分类模型封装装置用于执行前述的文本分类模型封装方法。其中,该文本分类模型封装装置可以配置于服务器或终端中。
其中,服务器可以为独立的服务器,也可以为服务器集群。该终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等计算机设备。
如图3所示,文本分类模型封装装置30包括:模型处理模块301、场景确定模块302、文本获取模块303、向量转换模块304、模型训练模块305和模型打包模块306。
模型处理模块301,用于提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量。
transformer部分利用self-attention机制实现快速并行,是一个完全基于注意力机制的encoder-decoder模型。transformer部分由编码组件、解码组件和它们之间的连接组成,其中,编码组件部分由一堆编码器(6个encoder)构成,解码组件部分也是由相同数量(与编码器对应)的解码器(decoder)组成的。transformer部分用于将输入的文本通过词嵌入算法转换为词向量。
示例性的,提取语言模型中与分类场景无关的transformer部分,舍弃语言模型中的全连接层(fullyconnectedlayer,fc)部分,并将提取出的transformer部分进行封装生成向量转换模块(restfulapi)。在一些实施方式中,可根据用户设置提取transformer部分中的指定层数的指定标识(token)的嵌入层(embedding),例如提取transformer部分中的第12层的clstoken的embedding。所述向量转换模块可被调用,调用后可将输入的文本转换为所述文本对应的句向量,不需要进行多次部署,加快了文本分类模型生成的速率。
示例性的,所述向量转换模块可部署在高性能gpu服务器上,可有效加快句向量转换的效率。
在一实施方式中,模型处理模块301提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块包括:
响应于模型封装指令;
解析所述模型封装指令得到封装指定层;
将提取的所述transformer部分中所述封装指定层进行封装,生成向量转换模块。
用户可根据需求发送模型封装指令,所述模型封装指令中包括封装指定层,即所述模型封装指令指示了将所述transformer部分中进行封装的层数。根据模型封装指令生成向量转换模块,可以使得生成的向量转换模块更符合用户的需要,提高了文本分类模型生成的效率。
场景确定模块302,用于响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景。
接收用户发送的文本分类模型训练请求,所述文本分类模型训练请求可以是http格式,通过解析所述文本分类模型训练请求确定需要训练的文本分类模型对应的分类场景。所述分类场景可以包括文本情感分类、文本意图分类等,在此不对分类场景进行限定。示例性的,所述文本分类模型训练请求可包括多个,不同的文本分类模型训练请求对应着不同分类场景的文本分类模型。
文本获取模块303,用于获取所述分类场景对应的训练文本。
示例性的,可根据分类场景在预先设置的训练文本数据库中查询与所述分类场景对应的训练文本,也可以获取用户输入的所述分类场景对应的训练文本。
在一实施方式中,文本获取模块303获取所述分类场景对应的训练文本包括:
获取用户输入的所述分类场景对应的第一训练文本;
确定所述第一训练文本对应的多个关联维度;
基于所述多个关联维度,通过预设的训练文本知识图谱对所述第一训练文本进行扩展,获得第二训练文本;
根据所述第一训练文本和所述第二训练文本生成所述分类场景对应的训练文本。
可根据训练文本数据库中存储的训练文本生成训练文本知识图谱,所述训练文本知识图谱包括多个维度和所述多个维度之间的关联关系。通过对用户输入的第一训练文本进行扩展得到第二训练文本,并根据所述第一训练文本和所述第二训练文本生成训练文本,可以丰富训练文本的内容,可以间接提高文本分类模型的准确率。
向量转换模块304,用于将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量。
调用向量转换模块对将所述训练文本进行向量转换,得到所述训练文本对应的句向量。
在一实施方式中,向量转换模块304将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量:
配置文本处理队列;
当接收到多个向量转换请求时,根据所述多个向量转换请求的请求时间将所述多个向量转换请求对应的训练文本写入所述文本处理队列;
通过所述文本处理队列向所述向量转换模块输入训练文本,得到所述训练文本对应的句向量。
配置文本处理队列,按照预设的规则对接收的多个向量转换请求进行排队,按照排队顺序将所述多个向量转换请求对应的训练文本写入所述文本处理队列。例如,所述规则可以是根据所述多个向量转换请求的请求时间先请求先进队的规则。按照所述文本处理队列中的顺序输出各训练文本对应的句向量。按照一定的顺序处理向量转换请求,可以保证对向量转换请求的执行效率。
模型训练模块305,用于基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型。
示例性的,不同的分类场景对应着不同的浅层神经网络,所述分类场景和所述浅层神经网络的对应关系可根据用户的需求进行设定。由于浅层神经网络的体积通常较小,因而训练效率很高。
示例性的,所述文本分类模型的体积很小,计算量较小,不会占用过大的内存,故可以部署到手机终端、智能手环等计算平台,能够有效提高自然语言处理(nlp)的应用场景
模型打包模块306,用于对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像。
示例性的,可将所述文本分类模型进行封装生成模型接口(restfulapi),所述模型接口用于提供所述文本分类模型对应的分类场景的分类服务。将所述模型接口进行打包生成所述文本分类模型对应的docker镜像。每一个docker镜像都包含了完整的用于该分类场景的文本分类模型。通过将文本分类模型存储至docker镜像中实现了资源隔离,提高了模型的稳定性,同时也加快了模型调取的速率。
在一实施方式中,模型打包模块306对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像之后,所述方法包括:
根据所述文本分类模型对应的docker镜像生成所述文本分类模型对应的docker仓库;
将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点。
将所述文本分类模型对应的docker仓库存放在kubernetes中的node节点上,提高了对文本分类模型的管理效率,同时也方便了后续调取文本分类模型。
在一实施方式中,模型打包模块306将所述文本分类模型对应的docker仓库存放至kubernetes中的node节点包括:
根据所述文本分类模型的分类场景查询预设的场景关系表,确定所述分类场景对应的多个相邻场景;
确定所述多个相邻场景对应的多个相邻文本分类模型;
确定kubernetes中存储所述多个相邻文本分类模型的多个node节点;
根据所述多个node节点的位置信息在kubernetes中确定目标node节点;
将所述文本分类模型对应的docker仓库存放至所述目标node节点。
预先设置场景关系表,所述场景关系表中包含多个分类场景和各分类场景对应的多个相邻场景。确定所述文本分类模型的分类场景对应的多个分类场景,并根据多个相邻场景对应的相邻文本分类模型在kubernetes中的位置信息在kubernetes中确定目标node节点,所述目标node节点用于存储所述文本分类模型。通过该方法可快速在kubernetes中确定存储文本分类模型的node节点,同时在kubernetes中存储文本分类模型的node节点间存在一定的连接关系,提高了对存储在kubernetes中的文本分类模型进行管理的效率。
上述实施例提供的文本分类模型封装装置可以实现为一种计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
请参阅图4,图4为本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以为服务器或终端设备。
如图4所示,该计算机设备40包括通过系统总线连接的处理器401和存储器402,其中,存储器402可以包括非易失性存储介质和易失性存储介质。
存储器402可存储操作系统和计算机程序。该计算机程序包括计算机可读指令,该指令被执行时,可使得处理器401执行所述的文本分类模型封装方法或文本分类方法。
处理器401用于提供计算和控制能力,支撑整个计算机设备的运行。
在一可行实施例中,所述计算机设备还包括网络接口,所述网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器401是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器执行存储在存储器中的计算机程序,以实现如下步骤:
提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量;
响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;
获取所述分类场景对应的训练文本;
将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;
基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;
对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像。
在一个实施例中,所述处理器执行存储在存储器中的计算机程序,还用以实现如下步骤:
响应于文本分类请求,确定所述文本分类请求对应的分类场景;
确定并获取所述分类场景对应的docker镜像,并提取所述docker镜像中的文本分类模型;
获取待分类文本并调用向量转换模块得到所述待分类文本对应的句向量;
调用所述文本分类模型并基于所述句向量得到所述文本分类请求对应的文本分类结果。
其中,所述docker镜像中的文本分类模型和/或所述向量转换模块是使用前述文本分类模型封装方法得到的。
具体地,所述处理器对上述程序的具体实现方法可参考前述文本分类模型封装方法/文本分类方法实施例中相关步骤的描述,在此不赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括计算机可读指令,所述指令被执行时所实现的方法可参照本申请文本分类模型封装方法/文本分类方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。
前述实施例提供的文本分类模型封装装置、计算机设备及计算机可读存储介质,通过提取语言模型中transformer部分,并将提取的transformer部分进行封装生成向量转换模块,所述向量转换模块用于将输入的文本转换为所述文本对应的句向量,提取语言模型与分类场景无关的transformer部分封装生成向量转换模块,方便后续调用该向量转换模块进行向量转换,从而加快文本模型生成的速率;响应于文本分类模型训练请求,确定所述文本分类模型训练请求对应的文本分类模型的分类场景;获取所述分类场景对应的训练文本;将所述训练文本输入所述向量转换模块得到所述训练文本对应的句向量;基于所述训练文本对应的句向量训练全连接的浅层神经网络得到文本分类模型;对所述文本分类模型进行打包生成所述文本分类模型对应的docker镜像,将文本分类模型打包成docker镜像实现资源隔离,提高了模型的稳定性,同时也加快了模型调取的速率。上述实施例将语言模型拆分为两部分,一部分是与分类场景无关的transformer部分,并将transformer部分封装生成向量转换模块,另一部分是与分类场景相关的浅层神经网络,并对所述浅层神经网络进行训练得到分类场景对应的文本分类模型,实现了语言模型的分布式文本分类框架,能够在减少语言模型体积的同时保证语言模型的语言识别精度。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。