掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及模型更新技术领域,具体为网站文章、标签与分类匹配用模型自动更新系统。

背景技术

在文章和标签的文本语义自动匹配时,工业界很多应用都在语义上衡量文本相似度的需求,统称为语义匹配,根据文本长度的不同,语义匹配可以分为三类,分别是短文本-短文本语义匹配、短文本-长文本语义匹配和长文本-长文本语义匹配;针对于某些站点,标签及文章的数据较多,且需要精细化管理,人工管理标签数据与匹配所消耗的时间精力较大,其中标签数据以词语、断句、长句的形式存在,例如:招聘面试技巧、有道理的短故事、如何才能做到有效沟通、会计的职责和任务是什么等,在上述应用场景中,短文本-长文本的匹配方案可选为:在计算相似度的时候,规避对短文本直接进行主题映射,而是根据长文本的主题分布,计算该分部生成短文本的概率,作为他们之间的相似度,再选择最优的多个匹配结果作为最终结果。

在文章标签分类的自动识别中,常见的文本分类是指给定的分类体系中,将文本分到指定的某个或者某几个类别中,分类对象分别为短文本(句子/标题/商品评论)、长文本(文章)。分类体系一般由人工构造,分类的模式有binary二分类问题、nulti-class多类问题、multi-lable多标签问题,其中多标签问题可以定义为一个文本属于多类,是文本分类的难题。首先采用机器学习进行分类的方法包括特征工程+算法(Native Bayes/SVM/LR/KNN),其次采用深度学习进行分类的方法包括:词向量+模、FastText、TextCNN、TextRNN、TextRCNN、DPCNN、BERT等。对文本进行分类的流程包括文本预处理、特征提取(如词频特征、次性特征、语法特征、TFIDF特征等)、文本表示(如word2vec、Glove、Bert等)、分类模型处理(机器学习、深度学习、CNN、RNN等)。针对站点来说,站点的标签分类数量和标签内容覆盖范围内的广度逐渐增加,人工维护机器从属关系出现主观分类欠缺合理性、重复归类、标签分类划分标准混乱等问题,且需不断进行新增和细化分类,人工维护分类难度很大。

对于若只满足单个站点的以上需求场景的应用,只需要采用本地模型训练,redis数据库,本地缓存的形式即可完成需求目的,且算法模型不需要分开部署,并定期根据源数据更新的情况,进行算法模型的更新,其中redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

在执行上述方案时,都采用的redis当做缓存和数据交换工具,若碰到单个站点变为站点集群的情况时,则本地缓存进行计算的方式已经不适用,每新增一个站点的时候,若要进行分布式部署,则必然会涉及数据的同步问题。

基础的做法是在每一个节点都存储全部数据,导致严重的内存浪费问题,假设部署了三台,那么存储大小为N*4(三台机器+redis),是为了在计算相似度的时候直接进行矩阵的乘法,所以需要将所有的数据放入矩阵中进行计算,需要保存在内存中,假设一个集群中的每个节点都存储一部分,在进行最后的合并工作中,代码会很复杂,并且需要手动解决数据倾斜和数据对比的问题。

且当多台机器同步的时候会有网络的浪费和占用问题,还会遇到数据一致性的问题,当出现没有同步成功或者同步延迟时,多个分布式输出的结果就会不一致。

发明内容

本发明的目的在于提供了网站文章、标签与分类匹配用模型自动更新系统。

本发明所解决的技术问题为:解决当多台机器同步的时候会有网络的浪费和占用问题,还会遇到数据一致性的问题,当出现没有同步成功或者同步延迟时,多个分布式输出的结果就会不一致的问题;同时解决人工维护机器从属关系出现主观分类欠缺合理性、重复归类、标签分类划分标准混乱等问题,且需不断进行新增和细化分类,人工维护分类难度很大的问题。

本发明可以通过以下技术方案实现:网站文章、标签与分类匹配用模型自动更新系统,包括数据输入模块、推荐查询单元和训练单元,数据输入模块包括输入查询数据,通过推荐查询单元获取查询数据,对查询数据进行处理得到关键词数据,将关键词数据和推荐查询单元获取的数据库中的数据进行匹配,得到匹配数据和匹配对应的文章;

数据库采用的是Milvus数据库,Milvus数据库采用共享架构,Milvus数据库获取来自站点的文章信息数据,对来自站点的文章信息数据处理后进行存储;

训练单元对推荐查询单元中的数据处理模型进行适应性训练,训练单元的训练内容包括请求增量训练,用于在业务数据增加时,数据处理模型能够适应业务数据的处理。

本发明的进一步技术改进在于:数据输入模块包括离线单元和在线单元;离线单元用于在离线状态下,设置定时采取数据单元,通过设置数据采取的时间间隔,将站点内的数据经过算法模型进行处理,将经过算法模型处理后获得的数据存储在Milvus数据库中;

在线单元用于在线的方式下,站点后端直接传送数据,将站点内的数据进行过算法模型处理,并将经过算法模型处理后获得的数据存储在Milvus数据库中。

本发明的进一步技术改进在于:推荐查询单元包括输入数据处理单元和比对单元,输入数据处理单元用于获取查询的数据,对输入的数据进行处理后得到向量映射数据embedding,将向量映射数据embedding存储在Milvus数据库中,比对单元获取向量映射数据embedding,用于和Milvus数据库中的数据进行比对,获取匹配数据和匹配对应的文章。

本发明的进一步技术改进在于:数据处理单元的处理步骤包括:

步骤一、输入文章数据和标签数据;

步骤二、roformer模型获取输入的文章数据和标签数据,文章数据和标签数据在roformer模型内处理后获取embedding数据;

步骤三、将获得的embedding数据存储在Milvus数据库中。

本发明的进一步技术改进在于:还包括定时同步模块,用于对站点内的数据没有同步时进行更正,同步模块的同步步骤包括:

步骤一、设置定时时钟,定时获取站点内的更新数据;

步骤二、对站点内的更新数据利用roformer模型提取embedding数据,将其存储到Milvue数据库中。

本发明的进一步技术改进在于:训练单元包括模型训练单元和自动更新单元,模型训练单元用于通过输入模型训练的数据,通过将数据输入到原有模型中进行更改数值,对更改后的模型进行训练,得到训练结果,将训练结果通过自动更新单元更新到模型中,对模型进行更改。

本发明的进一步技术改进在于:模型训练单元的工作步骤包括:

步骤一、模型训练单元接收到模型增量训练的请求,离线单元获取样品的训练时间和训练标签;

步骤二、模型训练单元根据样品的训练时间和训练标签进行训练,将训练结果的模型上传到文件服务器中。

本发明的进一步技术改进在于:自动更新单元的工作步骤包括:

步骤三、在线单元接收站点的请求更新算法的信号,在线单元从文件服务器中下载最新的训练结果模型;

步骤四、调取原有模型的版本号,根据原有模型的版本号对最新训练结果模型的版本号进行定义,并将原有模型存储到文件服务器中。

本发明的进一步技术改进在于:还包括部署模块,部署模块包括公有化部署单元和私有化部署单元,公有化部署单元采用公共算法接口,私有化部署单元采用单独接口。

与现有技术相比,本发明具备以下有益效果:

1、本申请将输入的文章进行处理,将文章和标签数据利用roformer模型提取embedding,将其存储到Milvue数据库中;随后通过比对Milvue数据库中原有的embedding数据,对输入的文章和标签数据等进行匹配,将其匹配到相应的相同或者相似的embedding数据,并将其匹配到的embedding数据所属的文章进行调取,将得到的文章进行发送,此过程中,优化了模型和效果,加快了训练的速度,即本申请中针对于分类任务类型,数据量很少时,采用roformer,其主要通过结构的简化来提升训练和预测的速度,并通过prompt,无监督预训练和few-shot fineture结合的方式来解决数据量缺失带来的模型效果不佳的问题,从而达到速度和效果的“双赢”,且本申请采用roformer模型,能够进一步的实现结构简化,从而加快embedding数据调取的速度,且通过无监督训练和有监督训练的结合来提升效果,从而达到速度和效果的双赢;进一步的,本申请采用Milvus数据库、roformer模型、prompt技术,解决了单个站点需要人工多次训练与重启的问题,模型更新可便捷性操作,并且不对业务产生影响,对于同一模型可适配多个站点的数据群,并解决了多个站点重复训练的问题,在业务数据和分类数据实时变更且持续新增的情况下,也能够满足业务方的长期需求。

2、且本申请在通过采用Milvus数据库,实现数据流和控制流的分离,在使用过程中,任意站点的数据都向Milvus数据库存储数据和调用数据,采用一个数据库的方式能够节约代码,减少空间的利用,降低内存的浪费,且当使用同一个Milvus数据库时,数据的处理就会存在统一性和合理性,且在数据进行调用匹配的时候,通过调用同一个数据库的数据,保证数据处理的速度和稳定性,自动对系统进行维护,避免人工维护分类难度较大等问题。

3、本申请中使用的Milvus数据库,Milvus数据库具有快速矩阵计算和embedding数据储存的能力。解决了站点集群中多个计算节点同步数据并独立计算相似文章的问题,简化了使用代码开发数据同步并且计算的步骤,降低了数据存储量,因为往往站点集群中计算节点个数大于milvus集群存储节点的个数。

附图说明

为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明。

图1为本发明的系统原理框图;

图2为本发明的数据处理模块示意图;

图3为本发明的推荐查询单元作用示意图;

图4为本发明的定时同步数据示意图;

图5为本发明的模型训练与自动更新示意图;

图6为本发明的算法部署方式示意图。

具体实施方式

为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如下。

请参阅图1-6所示,网站文章、标签与分类匹配用模型自动更新系统,包括功能数据库,本申请中的功能数据库采用的是Milvus数据库,其中Milvus是一种云原生向量数据库,在本申请中Milvus采用的是共享存储架构,存储计算完全分离,计算节点支持横向扩展。具体地,Milvus遵循数据流和控制流分离,整体分为四个层次,分别为接入层(accesslayer)、协调服务(coordinator service)、执行节点(worker node)和存储层(storage),各个层次之间相互独立,独立扩展和容灾。可识别存储特征,提供id查询特征,提供直接计算相似度,以faiss算法为基础。

其中Milvus数据库具有快速矩阵计算和embedding数据储存的能力。解决了站点集群中多个计算节点同步数据并独立计算相似文章的问题,简化了使用代码开发数据同步并且计算的步骤,降低了数据存储量,因为往往站点集群中计算节点个数大于milvus集群存储节点的个数。

本申请中的模型更新系统的总体架构分为三部分,其一是新数据离线更新,其二是模型在线自动训练,其三是在线算法接口。本申请能够实现缓存的同步,用Milvus替代redis的存储功能,解决了数据一致性和缓存浪费的问题。

本申请中的模型更新系统包括数据处理模块,其中数据处理模块包括离线单元、在线单元、推荐查询单元和训练单元。

首先离线单元用于在离线状态下,定时同步数据,保证数据的最终一致性,在本实施例中,采用的是每晚进行同步增量数据,即首先是数据及时在离线过程中,也会存储在本地数据库中,随后定时获取mysql数据,其中mysql数据是指关系型数据库管理系统内的数据,在本申请中,指的是本地数据库中的数据,此数据指的是在被更新的数据,随后从算法模型中调用算法,将数据通过算法中进行处理,并将处理后的数据存储在Milvue数据库中。

其次是在线单元,用于直接接收文章和标签数据,将其存储到Milvue数据库,具体过程是:首先是后端直接传送数据,随后从算法模型中调用算法,将接收的数据通过算法进行处理,并将处理后的数据存储到Milvue数据库中,并且缓存到本地数据库中。

对于推荐查询单元,具体过程是首先需要输入查询数据,推荐查询单元调取Milvue数据库中是否存在相应的数据,即通过将数据和Milvue数据库内的数据进行比对,判断数据是否存在,若存在,则返回具体的向量映射数据,即返回embedding,实现对具体数据的直接定位;若在Milvue数据库内不存在可以和输入的数据进行匹配的数据,则判定为不存在,则需要利用调用算法,利用输入的数据和算法和Milvue数据库内的数据进行相似度计算,判断是否存在相似的数据,以相似的数据作为返回的结果。

对于训练单元用于实现模型的在线更新,即首先训练单元接收需要进行训练的数据,并通过模型训练,实现输入数据输入到模型中,随后定时替换原有的模型,从而实现模型的训练。

具体的使用流程如下:首先是文章匹配文章,文章匹配标签,以及标签匹配标签,实现全面匹配,能够调取足够多的相似样本。首先企业将自己的所有文章和标签数据利用roformer模型提取embedding,其中roformer模型是一种机器学习模型,embedding是一种相关的向量映射数据,即提取一些重要的数据,将其存储到Milvue数据库中,当有新的文章或者标签需要进行匹配时,会对新的文章利用同样的方法进行embedding提取,即对新的文章通过roformer模型提取embedding,得到若干个离散的embedding数据,随后可以利用embedding数据匹配,将其匹配到相应的相同或者相似的embedding数据,并将其匹配到的embedding数据所属的文章进行调取,将得到的文章进行发送。且上述过程是支持批量计算的,可以直接得到若干个相关文章。

在此过程中,优化了模型和效果。针对于分类任务类型,数据量很少的情况,并且希望加快一点训练速度,采用roformer,它主要通过结构的简化来提升训练与预测速度,并通过prompt,无监督预训练和few-shot fineturn结合的方式来解决数据量缺失带来的模型效果不佳的问题,从而达到了速度与效果的“双赢”。

在对文章进行输入时,输入的内容为:文章id+标题+文章内容,输出的内容为:每个文章id对应的前N个文章id与矩阵空间距离,具体过程如下:首先是将接收站点同步数据,将站点同步数据通过roformer模型提取embedding,将其存储到Milvue数据库中,将其和站点匹配数据中根据id得到的embedding数据存放在Milvue数据库,将站点匹配数据根据id得到的emdedding数据和站点同步数据进行比对,判断是否存在相匹配的数据,若没有存在,则将站点匹配数据通过roformer模型提取embedding,并将embedding数据存储到Milvue数据库,并将得到的embedding数据和站点同步数据得到的embedding数据进行比对,获取若干组相同或者相似的文章,将比对结果以及得到的文章发送到站点位置。

具体的数据代码如下。

首先是同步数据代码:

/>

随后是匹配代码:

/>

且本申请包括定时同步模块,用于解决站点的数据新增或者有修改的情况下,没有使用站点的接口进行实时同步,所以需要进行数据的同步和统一,具体的使用过程是设置一个定时任务,随后定时任务设置一个时钟,用于定时获取站点数据,对站点数据进行处理,利用roformer模型提取embedding数据,将其存储到Milvue数据库中,在此过程中,通过定时将站点的数据存储到Milvue数据库,实现站点数据和Milvue数据库内数据的同步,保证数据的统一性。

定时同步模块的代码过程包括

/>

/>

/>

随后本申请包括模型训练及自动更新模块,用于解决在站点标签分类不断新增的情况下,传统的模型做法是需要算法工程师进行数据的手动增量训练,然后是替换模型,重启系统,最终实现更新的完成,在此过程中,训练步骤繁琐,且需要人工处理,系统还会处于暂停的状态,为了解决上述问题,本申请提出了改进。

具体是首先接口接收到模型增量训练的请求,随后离线单元获取训练按样品的训练时间train_data和训练标签label,然后开启训练,将训练结果的模型上传到文件服务器,随后在线单元下载最新训练模型,替换原有的模型,在此过程中,能够做到自动读取增量数据、自动训练、模型在更新是不需要重启系统,本申请采用了流行的prompt,其是javascript语言中的一个方法,主要用处是:显示提示对话框,所以分类数可以随时改变,需要新增的分类数,可以直接训练新增的类别,不用全部一起进行训练,节省训练的时间,以及训练的工作量。

具体过程是:离线单元控制向站点发送请求增量训练,站点将增量训练的请求发送给roformer模型,其中roformer模型进行模型的训练是需要从站点获取训练数据,包括增量数据,从而能够实现正常的模型训练,若模型训练后是可以直接进行使用的,将模型保存到文件服务器内进行初步的存储,随后在线单元接收到站点的请求更新算法的信号,在线单元从文件服务器内下载最新的模型,并将最新的模型进行更换,更换过程包括:首先获取版本号,即若当前的版本号为0,则在使用模型0进行预测,将最新的模型替换模型0,并对最新的模型定义为1,将系统的版本号切换为1,和最新的模型定位保持一致,此过程中,模型0继续使用,模型1进行替换模型0,直至模型1可以正常使用,将模型0暂停使用,且将模型0存储到文件服务器中,本申请通过将模型0在正常使用过程中,更换模型1,保证在更换的过程中,模型0可以进行正常使用,保证系统的正常运行,在运行的过程中实现更新,避免因为更新造成的时间延迟或者系统暂停,智能化程度较高。

训练代码包括

/>

热更新代码包括

进一步的,本申请提供了两种算法部署方法,包括公有化部署和私有化部署,其中公有化部署是企业直接使用公共算法接口,建站内容分区存放,但是模型使用通用模型,在数据量不足的情况下较为友好。

但是私有化部署是企业自己单独部署服务,做到站点数量不限制,计算能力不限制,并且可以有私有的算法模型,可以本企业的多个站点共用。

且本申请的重点集中在短文本-长文本的语义匹配范畴中,用于帮助用户在多领域内进行快速创作。

本申请采用milvus、rofomer、prompt等技术形式,并且结合模型在线热更新方式。解决了单个站点人工干多次训练与重启的问题。模型更新可便捷性操作,并且不对业务产生影响。且同一模型可适配至多个站点数据群,并解决了多个站点重复训练的问题,在业务数据/分类数据实时变更且持续新增的情况下,也能满足业务方的长期需求。

本发明在使用时,首先本申请通过采用Milvus数据库,实现数据流和控制流的分离,在使用过程中,任意站点的数据都向Milvus数据库存储数据和调用数据,采用一个数据库的方式能够节约代码,减少空间的利用,降低内存的浪费,且当使用同一个Milvus数据库时,数据的处理就会存在统一性和合理性,且在数据进行调用匹配的时候,通过调用同一个数据库的数据,保证数据处理的速度和稳定性;

在对数据进行匹配时,本申请包括离线单元和在线单元,能够将站点位置的所有更新的数据进行提取存储到Milvus数据库内部,实现数据的统一,且通过推荐查询单元进行匹配数据,包括相同或者相似度较高的内容进行匹配,并返回匹配后的结果,最后本申请采用了训练单元,使得模型进行训练,根据现有状况对模型进行更新;

在推荐查询单元,首先将输入的文章进行处理,将文章和标签数据利用roformer模型提取embedding,将其存储到Milvue数据库中;随后通过比对Milvue数据库中原有的embedding数据,对输入的文章和标签数据等进行匹配,将其匹配到相应的相同或者相似的embedding数据,并将其匹配到的embedding数据所属的文章进行调取,将得到的文章进行发送,此过程中,优化了模型和效果,加快了训练的速度,且本申请采用roformer模型,能够进一步的实现结构简化,从而加快embedding数据调取的速度,且通过无监督训练和有监督训练的结合来提升效果,从而达到速度和效果的双赢;进一步的,本申请采用Milvus数据库、roformer模型、prompt技术,解决了单个站点需要人工多次训练与重启的问题,模型更新可便捷性操作,并且不对业务产生影响,对于同一模型可适配多个站点的数据群,并解决了多个站点重复训练的问题,在业务数据和分类数据实时变更且持续新增的情况下,也能够满足业务方的长期需求。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 基于改进seq2seq模型的多源多标签文本分类方法及其系统
  • 标签分类系统及标签分类模型的训练系统
  • 一种用于传感器的分类器模型信息自动更新系统及传感器更换方法
技术分类

06120115920996