对机器学习模型进行编译处理的方法、编译器及服务器
技术领域
本发明属于机器学习技术领域,具体地讲,涉及一种对机器学习模型进行编译处理的方法、计算机可读存储介质、编译器及服务器。
背景技术
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。
当前,越来越多的商业机构运用机器学***台将机器学习模型快速部署到生产预测环境中是亟需解决的一个技术问题。
发明内容
为了解决上述技术问题,本发明的目在于提供一种对机器学习模型进行编译处理的方法、计算机可读存储介质、编译器及服务器。
根据本发明的一方面,提供了一种对机器学习模型进行编译处理的方法,所述方法包括:训练机器学习模型,并获取机器学习模型的属性信息;对所述机器学习模型的属性信息进行编译,以形成源文件;对所述源文件进行压缩打包,以形成包括所述源文件的压缩包。
进一步地,对所述机器学习模型的属性信息进行编译的方法包括:利用至少两种计算机语言同时对一个机器学习模型的属性信息进行编译,以形成与各种计算机语言对应的包括可执行文件的源文件。
进一步地,对所述机器学习模型的属性信息进行编译的方法包括:利用一种计算机语言同时对至少两个机器学习模型的属性信息进行编译,以形成与各个机器学习模型对应的包括可执行文件的源文件。
进一步地,对所述机器学习模型的属性信息进行编译的方法包括:利用至少两种计算机语言同时对至少两个机器学习模型中的各个机器学习模型的属性信息分别进行编译,以形成与所述机器学习模型和编译所述机器学习模型的计算机语言对应的包括可执行文件的源文件。
进一步地,所述计算机语言包括Java语言、C++语言、Python语言、PMML语言、Oracle SQL语言、Greenplum语言、Javascript语言、VBA语言、MySQL SQL语言以及统计分析***(SAS)语言中的至少一种
进一步地,所述属性信息包括:特征变量信息、类别变量信息、目标变量信息、变量系数信息、变量权重信息以及模型结构信息中的至少一种。
进一步地,所述方法还包括:将包括所述源文件的压缩包上传至服务器,以供用户端进行下载部署。
根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有对机器学习模型进行编译处理的程序,所述程序被处理器执行时实现如上述的对机器学习模型进行编译处理的方法。
根据本发明的又一方面,又提供了一种编译器,所述编译器包括存储器、处理器及存储在存储器上并可在处理器上运行的对机器学习模型进行编译处理的程序,所述程序被处理器执行时实现如上述的对机器学习模型进行编译处理的方法。
根据本发明的又一方面,又提供了一种服务器,所述服务器存储有采用上述的方法对机器学习模型进行编译处理得到的包括源文件的压缩包。
本发明的有益效果:本发明通过以不同的计算机语言编译机器学***台上,从而实现机器学***台上快速部署的目的。
附图说明
通过结合附图进行的以下描述,本发明的实施例的上述和其它方面、特点和优点将变得更加清楚,附图中:
图1是根据本发明的一实施例的对机器学习模型进行编译处理的方法的流程图;
图2是根据本发明的另一实施例的用户端和服务器的示意图。
具体实施方式
以下,将参照附图来详细描述本发明的实施例。然而,可以以许多不同的形式来实施本发明,并且本发明不应该被解释为限制于这里阐述的具体实施例。相反,提供这些实施例是为了解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解本发明的各种实施例和适合于特定预期应用的各种修改。
图1是根据本发明的一实施例的对机器学习模型进行编译处理的方法的流程图。参照图1,根据本发明的实施例的对机器学习模型进行编译处理的方法包括操作S110~操作S140。
具体地,在操作S110中,训练机器学习模型,并获取机器学习模型的属性信息。
这里,操作S110的实现可以在除服务器之外的其他计算机设备上进行。然而,本发明并不限制于此,例如也可以在服务器上进行。
此外,操作S110的目的是对被选择的机器学习模型进行训练,被选择的机器学习模型可以是为了实现特定的目的(诸如商业交易目的、工厂生成目的)而被设计形成的。被选择的机器学习模型可以例如是为实现特定的目的的逻辑回归(Logistic Regression)模型、梯度提升树(GBDT)模型、随机森林(Random Forest)树模型等。
此外,在训练机器学习模型的过程,获取机器学习模型的属性信息。这里,机器学习模型的属性信息可以包括:特征变量信息、类别变量信息、目标变量信息、变量系数信息、变量权重信息、模型结构信息等,但本发明并不限制于此,也可以包括其他合适类型的属性信息。其中,模型结构信息是针对梯度提升树模型、随机森林树模型等树模型结构而言的。对于非树模型结构的机器学习模型,例如逻辑回归模型,可以不需要模型结构信息。
在操作S120中,对机器学习模型的属性信息进行编译,以形成源文件。
这里,进一步地,作为本发明的实现操作S120的一实施方式,可以利用至少两种计算机语言同时对一个机器学习模型的属性信息进行编译,以形成与各种计算机语言对应的包括可执行文件的源文件。
例如,利用计算机语言A和计算机语言B同时对一个机器学习模型的属性信息进行编译,编译后同时形成与计算机语言A对应的包括可执行文件的源文件,以及形成与计算机语言B对应的包括可执行文件的源文件。通过利用不同的计算机语言同时对一个机器学习模型的属性信息进行编译,在同时形成与不同计算机语言对应的源文件的同时,还可以提高编译效率,从而节省成本。
此外,作为本发明的实现操作S120的另一实施方式,利用一种计算机语言同时对至少两个机器学习模型的属性信息进行编译,以形成与各个机器学习模型对应的包括可执行文件的源文件。
例如,利用一种计算机语言同时对机器学习模型a和机器学习模型b的属性信息进行编译,编译后同时形成与机器学习模型a对应的包括可执行文件的源文件,以及形成与机器学习模型b对应的包括可执行文件的源文件。通过利用一种计算机语言同时对不同的机器学习模型的属性信息进行编译,在同时形成与各个机器学习模型对应的源文件的同时,还可以提高编译效率,从而节省成本。
另外,作为本发明的实现操作S120的又一实施方式,利用至少两种计算机语言同时对至少两个机器学习模型中的各个机器学习模型的属性信息分别进行编译,以形成与所述机器学习模型和编译所述机器学习模型的计算机语言对应的包括可执行文件的源文件。
例如,利用计算机语言C和计算机语言D同时对机器学习模型c和机器学习模型d的属性信息分别进行编译,编译后同时形成:与机器学习模型a以及编译机器学习模型a的计算机语言C对应的包括可执行文件的源文件;与机器学习模型a以及编译机器学习模型a的计算机语言D对应的包括可执行文件的源文件;与机器学习模型b以及编译机器学习模型b的计算机语言C对应的包括可执行文件的源文件;与机器学习模型b以及编译机器学习模型b的计算机语言D对应的包括可执行文件的源文件。通过利用不同种计算机语言同时对不同的机器学习模型的属性信息分别进行编译,在同时形成与所述机器学习模型和编译所述机器学习模型的计算机语言对应的源文件的同时,还可以大大提高编译效率,从而大大节省成本。
在本实施例中,计算机语言可以包括计算机编程语言、数据库语言等,但本发明并不限制于此。
进一步地,计算机语言包括:所述计算机语言包括Java语言、C++语言、Python语言、PMML语言、Oracle SQL语言、Greenplum语言、Javascript语言、VBA语言、MySQL SQL语言以及统计分析***(Statistics Analysis System,简称SAS)语言中的至少一种中的至少一种,但本发明并不限制于此。
在操作S130中,对所述源文件进行压缩打包,以形成包括所述源文件的压缩包。
这里,如果上述操作S110~S130在除服务器上的其他计算机设备上进行,那么在形成压缩包之后,其他计算机设备可将形成的压缩包上传到服务器上,而服务器向用户端提供下载接口。如果上述操作S110~S130在服务器上进行,则压缩包上传到服务器上的过程可以被省略。
用户端可通过从服务器下载压缩包,并对压缩包以解压的方式将合适用户端平台的已训练好的机器学习模型(或称编译后的源文件)下载到本地,以将该机器学习模型快速部署到相应的生产***内。之后,通过直接调用已训练好的机器学习模型内的接口即可利用该已训练好的机器学习模型对数据进行打分、预测等功能,这样可实现了模型训练、编译和模型打分预测相分离,从而可以节省服务器的资源。
图2是根据本发明的另一实施例的用户端和服务器的示意图。
参照图2,该服务器100包括存储器(未示出)、处理器(未示出)及存储在存储器上并可在处理器上运行的对机器学习模型进行编译处理的程序,所述程序被处理器执行时实现如图1所示的对机器学习模型进行编译处理的方法。
用户端200可以从服务器100下载包括已训练好的机器学***台的已训练好的机器学习模型下载到本地,以将该机器学习模型快速部署到相应的应用***内。之后,通过直接调用已训练好的机器学习模型内的接口即可利用该已训练好的机器学习模型对数据进行打分、预测等功能。
本发明的又一实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有对机器学习模型进行编译处理的程序,所述程序被处理器执行时实现如图1所示的对机器学习模型进行编译处理的方法。
本发明的又一实施例又提供了一种编译器,其包括存储器(未示出)、处理器(未示出)及存储在存储器上并可在处理器上运行的对机器学习模型进行编译处理的程序,所述程序被处理器执行时实现如图1所示的对机器学习模型进行编译处理的方法。与图2所示的服务器100不同的是,这种情况下的服务器仅需存储采用图1所示的方法对机器学习模型进行编译处理得到的包括源文件的压缩包即可,无需进行模型训练和编译的过程。
综上所述,根据本发明的实施例,通过以不同的计算机语言同时编译机器学***台上,从而实现机器学***台上快速部署的目的。此外,根据本发明的实施例,还实现了模型训练、编译和模型打分预测相分离,从而可以节省服务器的资源。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。