CN106022483A - 机器学习模型之间进行转换的方法与设备 - Google Patents
机器学习模型之间进行转换的方法与设备 Download PDFInfo
- Publication number
- CN106022483A CN106022483A CN201610308127.9A CN201610308127A CN106022483A CN 106022483 A CN106022483 A CN 106022483A CN 201610308127 A CN201610308127 A CN 201610308127A CN 106022483 A CN106022483 A CN 106022483A
- Authority
- CN
- China
- Prior art keywords
- learning model
- parameter information
- language
- stand
- machines learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Feedback Control In General (AREA)
Abstract
本申请的目的是提供一种单机机器学习模型与分布式机器学习模型之间进行转换的方法与设备。与现有技术相比,本申请获取模型训练参数信息,并对其进行数据类型转换或描述文件解析,然后根据所述模型训练参数信息训练出分布式机器学习模型,再将所述分布式机器学习模型转换为单机机器学习模型;本申请还获取单机机器学习模型,提取出所述单机机器学习模型参数信息,对所述单机机器学习模型参数信息进行数据类型转换或描述文件解析,然后根据所述单机机器学习模型构造分布式机器学习模型;本申请可实现单机机器学习模型与分布式机器学习模型之间的相互转换,大大增加了两者之间的兼容性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种单机机器学习模型与分布式机器学习模型之间进行转换的技术。
背景技术
R语言主要用于统计分析、绘图和数据挖掘,提供了很多第三方包用于数据分析和数据挖掘。Python语言是计算领域科学家开发的,可以运用到统计学和数据挖掘领域,也提供了很多用于机器学***台,可以很好地弥补R和python的可伸缩性问题。在此背景下,SparkR和pyspark应运而生。SparkR是往Spark中增加R语言API和运行时的支持,其主要包括两个部分:SparkR包和JVM后端。SparkR包是一个R的扩展包,安装之后,在R的运行环境里提供了RDD和DataFrame API。JVM后端是Spark Core中的一个组件,提供了R解释器和JVM虚拟机之间的桥接功能,能够让R代码创建Java类的实例、调用Java对象的实例方法或者Java类的静态方法。Pyspark是往Spark中增加python语言API的支持。其主要是通过Py4J,用于本地python语言和java SparkContext objects的通信。
然而,目前SparkR和Pyspark技术都存在缺陷。SparkR主要有两方面的缺陷。一方面是SparkR RDD API的实现相比原生的Scala RDD API来说性能有所下降,主要是因为在调用SparkR RDD API的时候,要启动R worker进程,将分区数据传给R worker,R worker再将结果返回。另外分区数据的序列化和反序列化也会增加时间开销,带来性能下降。另一方面是SparkR对R数据类型以及R原生机器学习模型的支持还不是很完善。这导致R原生单机机器学习模型和Spark原生机器学习模型之间不能相互通用,这一点大大影响了SparkR的可用性。Pyspark也有两方面的缺陷。一方面是数据和代码传输的时候会启动Py4J和spark work进程,数据和函数的序列化和反序列化会增加时间开销,带来性能下降。另一方面是pyspark不能实现python原生单机机器学习模型和spark原生机器学习模型之间的通用。
发明内容
本申请的一个目的是提供一种单机机器学习模型与分布式机器学习模型之间进行转换的方法与设备。
根据本申请的一个方面,提供了一种用于将分布式机器学习模型转换为单机机器学习模型的方法,其中,该方法包括:
获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;
若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;
根据所述模型训练参数信息,训练出分布式机器学习模型;
将所述分布式机器学习模型转换为单机机器学习模型。
根据本申请的另一个方面,还提供了一种用于将单机机器学习模型转换为分布式机器学习模型的方法,其中,该方法包括:
获取单机机器学习模型;
提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;
根据所述单机机器学习模型构造分布式机器学习模型;
根据所述分布式机器学习模型对分布式训练数据进行预测。
根据本申请的又一个方面,还提供了一种用于将分布式机器学习模型转换为单机机器学习模型的第一设备,其中,该设备包括:
第一装置,用于获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;
第二装置,用于若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;
第三装置,用于根据所述模型训练参数信息,训练出分布式机器学习模型;
第四装置,用于将所述分布式机器学习模型转换为单机机器学习模型。
根据本申请的再一个方面,还提供了一种用于将单机机器学习模型转换为分布式机器学习模型的第二设备,其中,该设备包括:
第六装置,用于获取单机机器学习模型;
第七装置,用于提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;
第八装置,用于根据所述单机机器学习模型构造分布式机器学习模型;
第九装置,用于根据所述分布式机器学习模型对分布式训练数据进行预测。
根据本申请的另一个方面,还提供了一种单机机器学习模型与分布式机器学习模型之间进行转换的第三设备,其中,该设备包括如上所述的第一设备,以及如上所述的第二设备。
与现有技术相比,本申请获取模型训练参数信息,并对其进行数据类型转换或描述文件解析,然后根据所述模型训练参数信息训练出分布式机器学习模型,再将所述分布式机器学习模型转换为单机机器学习模型;本申请还获取单机机器学习模型,提取出所述单机机器学习模型参数信息,对所述单机机器学习模型参数信息进行数据类型转换或描述文件解析,然后根据所述单机机器学习模型构造分布式机器学习模型;本申请可实现单机机器学习模型与分布式机器学习模型之间的相互转换,大大增加了两者之间的兼容性。进一步地,本申请可实现R或者python等单机语言原生的单机机器学习模型与基于Java、Scala等语言的分布式机器学习模型之间的相互转换,同时本申请在进行转换时不需要启动本地进行类型转换的work进程和分布式进程,减少了时间的开销,提高了性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种用于将分布式机器学习模型转换为单机机器学习模型的方法流程图;
图2示出根据本申请另一个方面的一种用于将单机机器学习模型转换为分布式机器学习模型的方法流程图;
图3示出根据本申请又一个方面的一种用于将分布式机器学习模型转换为单机机器学习模型的第一设备示意图;
图4示出根据本申请再一个方面的一种用于将单机机器学习模型转换为分布式机器学习模型的第二设备示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种用于将分布式机器学习模型转换为单机机器学习模型的方法流程图。
该方法包括步骤S11、步骤S12、步骤S13和步骤S14。具体地,在步骤S11中,第一设备1获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;在步骤S12中,第一设备1若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;在步骤S13中,第一设备1根据所述模型训练参数信息,训练出分布式机器学习模型;在步骤S14中,第一设备1将所述分布式机器学习模型转换为单机机器学习模型。
在此,所述第一设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑、笔记本电脑等,所述移动电子产品可以采用任意操作***,如android操作***、iOS操作***等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,第一设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述第一设备1仅为举例,其他现有的或今后可能出现的第一设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在步骤S11中,第一设备1获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据。
在此,所述分布式训练数据用于训练出分布式机器学习模型。相应地,单机训练数据用于训练出单机机器学习模型。通常情况下,针对本地少量的预测数据利用所述单机机器学习模型进行预测,针对分布式存储的大量预测数据利用所述分布式机器学习模型进行预测。
优选地,在步骤S11中,第一设备1获取基于第一语言的模型训练参数信息。
在此,所述第一语言包括但不限于R语言、Python语言等。其中,R是用于统计分析、绘图的语言和操作环境,Python是一种面向对象、解释型计算机程序设计语言。所述模型训练参数信息可以是描述文件的格式,如JSON格式的数据描述文件,XML格式或PMML格式的模型描述文件;所述模型训练参数信息也可以是函数参数的形式。
其中,JSON是一种轻量级的数据交换语言,定义了一种轻量级的数据交换格式。XML是一种类似于HTML的扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据和定义数据类型等。PMML是一种事实标准语言,用于呈现数据挖掘模型。
例如,若所述模型训练参数信息为函数参数的形式,当获取基于R语言或者python语言的模型训练参数信息,所述分布式训练数据作为分布式机器学习模型训练函数的一个参数传入。
优选地,在步骤S11中,第一设备1获取用户设备发送的模型训练参数信息。
例如,用户可在用户设备(例如笔记本电脑等)上的R语言开发环境中编写R语言脚本,或者在python语言开发环境中编写python语言脚本。其中,所述R语言脚本和所述python语言脚本包括所述模型训练参数信息。然后,用户可通过所述用户设备向所述第一设备1发送所述R语言脚本或所述python语言脚本。
在步骤S12中,第一设备1若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换。
例如,若所述模型训练参数信息为描述文件的格式,将基于第一语言的所述模型训练参数信息解析为基于第二语言的所述模型训练参数信息;若所述模型训练参数信息为函数参数的形式,将基于第一语言的所述模型训练参数信息转换为基于第二语言的所述模型训练参数信息。在此,通过数据类型转换或者描述文件解析来达到此目的。
优选地,在步骤S12中,第一设备1利用所述第一语言与第二语言的语言转换工具对所述模型训练参数信息进行数据类型转换,以获得基于所述第二语言的所述模型训练参数信息;或者,利用描述文件解析工具对所述模型训练参数信息进行描述文件解析,以获得基于所述第二语言的所述模型训练参数信息。
在此,所述第二语言包括但不限于Java语言、Scala语言等,所述语言转换工具包括但不限于rJava,所述描述文件解析工具包括但不限于xml文件解析、json数据格式解析和PMML文件解析等。其中,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言;Scala是一门多范式的编程语言,一种类似Java的编程语言;rJava是一个R语言和Java语言的通信接口,通过底层JNI(Java Native Interface,Java本地接口)实现调用,允许在R中直接调用Java的对象和方法。rJava还提供了Java调用R的功能,是通过JRI(Java/R Interface)实现的。正是由于rJava是底层接口,并使用JNI作为接口调用,所以效率非常高。
例如,若所述模型训练参数信息为函数参数的形式,可利用rJava对所述模型训练参数信息进行数据类型转换,将所述模型训练参数信息转换为Java、Scala语言可识别的参数。若所述模型训练参数信息为描述文件的格式,可以利用xml文件解析工具、json文件解析工具或PMML文件解析工具对模型数据描述文件进行解析,将其解析为Java、Scala语言可识别的参数信息。
当然,本领域技术人员应能理解上述第一语言、第二语言、语言转换工具和文件解析工具仅为举例,其他现有的或今后可能出现的第一语言、第二语言、语言转换工具和文件解析工具如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在步骤S13中,第一设备1根据所述模型训练参数信息,训练出分布式机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可通过rJava将数据类型转换后的Java、Scala语言可识别的参数,传给底层机器学习库定义好的分布式函数接口,训练出分布式机器学习模型。主要是利用rJava的J函数,用法为J("类名","函数方法",参数一,参数二,...),其中,一个“函数方法”对应一种训练出分布式机器学习模型的训练函数,J函数起调用Java函数方法的作用。在此,可通过多种分布式机器学习模型的训练函数相应地训练出多种分布式机器学习模型。
再例如,若所述模型训练参数信息为描述文件的格式,可通过xml文件解析、JSON文件解析工具或者PMML文件解析工具将数据类型解析为Java、Scala语言可以识别的参数信息,传给底层机器学习库定义好的分布式函数接口,训练出分布式机器学习模型。
在步骤S14中,第一设备1将所述分布式机器学习模型转换为单机机器学习模型。
例如,所述分布式机器学习模型主要用于对云端分布式存储的大量预测数据进行预测,所述单机机器学习模型主要用于对用户设备端本地少量的预测数据进行预测。
优选地,在步骤S14中,第一设备1将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
例如,将基于Java或Scala等所述第二语言描述的所述分布式机器学习模型转换为基于R或Python等所述第一语言描述的所述单机机器学习模型。
优选地,在步骤S14中,第一设备1利用所述语言转换工具或所述描述文件解析工具将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可通过rJava将基于Java或Scala等语言描述的所述分布式机器学习模型转换为基于R语言描述的所述单机机器学习模型。若所述模型训练参数信息为描述文件的格式,可以利用xml文件解析工具、json文件解析工具或者PMML文件解析工具等所述描述文件解析工具将所述分布式机器学习模型转换为基于R或者Python等所述第一语言的单机机器学习模型。
更优选地,在步骤S14中,第一设备1提取出所述分布式机器学习模型参数信息;若所述分布式机器学习模型参数信息为描述文件的格式,则利用所述描述文件解析工具对所述分布式机器学习模型参数信息进行描述文件解析,否则,利用所述语言转换工具对所述分布式机器学习模型参数信息进行数据类型转换,以获得基于所述第一语言的机器学习模型参数信息;根据所述机器学习模型参数信息构造基于所述第一语言的单机机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可提取出所述分布式机器学习模型参数信息,然后通过rJava对其进行数据类型转换,将基于Java或Scala等语言描述的所述分布式机器学习模型参数信息转换为基于R或Python等语言描述的模型参数信息,再根据基于R或Python等语言描述的模型参数信息构造出基于R或Python等语言描述的单机机器学习模型。
再例如,若所述模型训练参数信息为描述文件的格式,可提取出所述分布式机器学习模型的模型描述文件,然后利用xml文件解析工具、json文件解析工具或者PMML文件解析工具对模型描述文件进行解析,将利用xml或者json描述的模型转换为基于R或者python等语言描述的模型参数信息,再根据所述模型参数信息构造出基于R或者python等所述第一语言描述的单机机器学习模型。
优选地,所述方法还包括:第一设备1将所述单机机器学习模型返回至所述用户设备。
例如,将所述单机机器学习模型返回至所述用户设备,用于对所述用户设备端本地少量的预测数据进行预测。具体地,可通过调用所述单机机器学习模型自带的predict(预测)函数对所述用户设备端本地少量的预测数据进行预测。
图2示出根据本申请另一个方面的一种用于将单机机器学习模型转换为分布式机器学习模型的方法流程图。该方法包括步骤S26、步骤S27、步骤S28和步骤S29。具体地,在步骤S26中,第二设备2获取单机机器学习模型;在步骤S27中,第二设备2提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;在步骤S28中,第二设备2根据所述单机机器学习模型构造分布式机器学习模型;在步骤S29中,第二设备2根据所述分布式机器学习模型对分布式训练数据进行预测。
在此,所述第二设备2包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑、笔记本电脑等,所述移动电子产品可以采用任意操作***,如android操作***、iOS操作***等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,第二设备2还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述第二设备2仅为举例,其他现有的或今后可能出现的第二设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在步骤S26中,第二设备2获取单机机器学习模型。
例如,所述单机机器学习模型根据用户设备端本地的单机训练数据训练得到,在此,获取用户设备发送的所述单机机器学习模型。相应地,分布式机器学习模型根据分布式训练数据训练得到。通常情况下,针对本地少量的预测数据利用所述单机机器学习模型进行预测,针对分布式存储的大量预测数据利用所述分布式机器学习模型进行预测。
优选地,在步骤S26中,第二设备2获取基于第一语言的单机机器学习模型。
在此,所述第一语言包括但不限于R语言、Python语言等。其中,R是用于统计分析、绘图的语言和操作环境,Python是一种面向对象、解释型计算机程序设计语言。
例如,所述基于第一语言的单机机器学习模型可以是基于R或Python等语言描述的单机机器学习模型。
在步骤S27中,第二设备2提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换。
例如,在根据所述单机机器学习模型构造分布式机器学习模型之前,首先提取出所述单机机器学习模型参数信息。其中,所述单机机器学习模型参数信息可以是描述文件的格式,如JSON格式的数据描述文件,XML格式或PMML格式的模型描述文件;所述单机机器学习模型参数信息也可以是函数参数的形式。若所述单机机器学习模型参数信息为描述文件的格式,则对其进行描述文件解析;若所述单机机器学习模型参数信息为函数参数的形式,则对其进行数据类型转换。
在此,JSON是一种轻量级的数据交换语言,定义了一种轻量级的数据交换格式。XML是一种类似于HTML的扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据和定义数据类型等。PMML是一种事实标准语言,用于呈现数据挖掘模型。
优选地,在步骤S27中,第二设备2利用所述第一语言与第二语言的语言转换工具对所述单机机器学习模型参数信息进行数据类型转换,以获得基于所述第二语言的机器学习模型参数信息;或者,利用描述文件解析工具对所述单机机器学习模型参数信息进行描述文件解析,以获得基于所述第二语言的机器学习模型参数信息。
在此,所述第二语言包括但不限于Java语言、Scala语言等,所述语言转换工具包括但不限于rJava。其中,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言;Scala是一门多范式的编程语言,一种类似Java的编程语言;rJava是一个R语言和Java语言的通信接口,通过底层JNI(Java NativeInterface,Java本地接口)实现调用,允许在R中直接调用Java的对象和方法。rJava还提供了Java调用R的功能,是通过JRI(Java/R Interface)实现的。正是由于rJava是底层接口,并使用JNI作为接口调用,所以效率非常高。
例如,若所述单机机器学习模型参数信息为函数参数的形式,可提取出所述单机机器学习模型参数信息,然后通过rJava对模型参数信息进行数据类型转换,将基于R语言描述的模型参数信息转换为基于Java或Scala等语言描述的模型参数信息。
再例如,若所述单机机器学习模型参数信息为描述文件的格式,可提取出所述单机机器学习模型的描述文件,然后通过xml文件解析工具、JSON文件解析工具或者PMML文件解析工具将模型描述文件转换成基于Java或者Scala等语言描述的模型参数信息。
当然,本领域技术人员应能理解上述第一语言、第二语言、语言转换工具和文件解析工具仅为举例,其他现有的或今后可能出现的第一语言、第二语言、语言转换工具和文件解析工具如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在步骤S28中,第二设备2根据所述单机机器学习模型构造分布式机器学习模型。
例如,可通过rJava调用分布式机器模型的构造函数,得到分布式机器学习模型。主要是利用rJava的.jnew函数,用法为.jnew("模型类名",参数一,参数二,...),其中,一个“模型类名”对应一种分布式机器学习模型的Java类名,.jnew函数起创建一个Java对象的作用,该对象即是分布式机器学习模型。在此,可通过多种分布式机器学习模型的构造函数相应地构造出多种分布式机器学习模型。
优选地,在步骤S28中,第二设备2根据所述机器学习模型参数信息构造基于所述第二语言的分布式机器学习模型。
例如,可以根据基于Java或Scala等语言描述的所述机器学习模型参数信息构造出基于Java或Scala等语言描述的分布式机器学习模型。
再例如,还可以根据基于Java或者Scala等语言描述的所述机器学习模型xml描述文件,JSON描述文件和PMML描述文件等,利用相对应的文件解析工具构造出基于Java或者Scala等语言描述的分布式机器学习模型。
在步骤S29中,第二设备2根据所述分布式机器学习模型对分布式训练数据进行预测。
例如,将所述分布式机器学习模型用于对云端分布式存储的大量预测数据进行预测。具体地,可通过调用所述分布式机器学习模型的预测函数,对所述分布式训练数据进行预测。主要是利用model$predict函数,用法为model$predict(data,...),其中,model是指所述分布式机器学习模型,predict是指所述分布式机器学习模型的预测函数,data是指所述分布式训练数据。
优选地,所述方法还包括:第二设备2获取用户设备发送的分布式训练数据。
例如,用户设备可通过数据提取函数得到存储在分布式存储介质或者分布式数据库中的所述分布式训练数据,然后用户设备将所述分布式训练数据发送至第二设备2。
图3示出根据本申请又一个方面的一种用于将分布式机器学习模型转换为单机机器学习模型的第一设备1,其中,第一设备1包括第一装置11、第二装置12、第三装置13和第四装置14。
具体地,所述第一装置11获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;所述第二装置12若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;所述第三装置13根据所述模型训练参数信息,训练出分布式机器学习模型;所述第四装置14将所述分布式机器学习模型转换为单机机器学习模型。
在此,所述第一设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑、笔记本电脑等,所述移动电子产品可以采用任意操作***,如android操作***、iOS操作***等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,第一设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述第一设备1仅为举例,其他现有的或今后可能出现的第一设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第一装置11获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据。
在此,所述分布式训练数据用于训练出分布式机器学习模型。相应地,单机训练数据用于训练出单机机器学习模型。通常情况下,针对本地少量的预测数据利用所述单机机器学习模型进行预测,针对分布式存储的大量预测数据利用所述分布式机器学习模型进行预测。
优选地,所述第一装置11获取基于第一语言的模型训练参数信息。
在此,所述第一语言包括但不限于R语言、Python语言等。其中,R是用于统计分析、绘图的语言和操作环境,Python是一种面向对象、解释型计算机程序设计语言。所述模型训练参数信息可以是描述文件的格式,如JSON格式的数据描述文件,XML格式或PMML格式的模型描述文件;所述模型训练参数信息也可以是函数参数的形式。
其中,JSON是一种轻量级的数据交换语言,定义了一种轻量级的数据交换格式。XML是一种类似于HTML的扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据和定义数据类型等。PMML是一种事实标准语言,用于呈现数据挖掘模型。
例如,若所述模型训练参数信息为函数参数的形式,当获取基于R语言或者python语言的模型训练参数信息,所述分布式训练数据作为分布式机器学习模型训练函数的一个参数传入。
优选地,所述第一装置11获取用户设备发送的模型训练参数信息。
例如,用户可在用户设备(例如笔记本电脑等)上的R语言开发环境中编写R语言脚本,或者在python语言开发环境中编写python语言脚本。其中,所述R语言脚本和所述python语言脚本包括所述模型训练参数信息。然后,用户可通过所述用户设备向所述第一设备1发送所述R语言脚本或所述python语言脚本。
所述第二装置12若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换。
例如,若所述模型训练参数信息为描述文件的格式,将基于第一语言的所述模型训练参数信息解析为基于第二语言的所述模型训练参数信息;若所述模型训练参数信息为函数参数的形式,将基于第一语言的所述模型训练参数信息转换为基于第二语言的所述模型训练参数信息。在此,通过数据类型转换或者描述文件解析来达到此目的。
优选地,所述第二装置12利用所述第一语言与第二语言的语言转换工具对所述模型训练参数信息进行数据类型转换,以获得基于所述第二语言的所述模型训练参数信息;或者,利用描述文件解析工具对所述模型训练参数信息进行描述文件解析,以获得基于所述第二语言的所述模型训练参数信息。
在此,所述第二语言包括但不限于Java语言、Scala语言等,所述语言转换工具包括但不限于rJava,所述描述文件解析工具包括但不限于xml文件解析、json数据格式解析和PMML文件解析等。其中,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言;Scala是一门多范式的编程语言,一种类似Java的编程语言;rJava是一个R语言和Java语言的通信接口,通过底层JNI(Java Native Interface,Java本地接口)实现调用,允许在R中直接调用Java的对象和方法。rJava还提供了Java调用R的功能,是通过JRI(Java/R Interface)实现的。正是由于rJava是底层接口,并使用JNI作为接口调用,所以效率非常高。
例如,若所述模型训练参数信息为函数参数的形式,可利用rJava对所述模型训练参数信息进行数据类型转换,将所述模型训练参数信息转换为Java、Scala语言可识别的参数。若所述模型训练参数信息为描述文件的格式,可以利用xml文件解析工具、json文件解析工具或PMML文件解析工具对模型数据描述文件进行解析,将其解析为Java、Scala语言可识别的参数信息。
当然,本领域技术人员应能理解上述第一语言、第二语言、语言转换工具和文件解析工具仅为举例,其他现有的或今后可能出现的第一语言、第二语言、语言转换工具和文件解析工具如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第三装置13根据所述模型训练参数信息,训练出分布式机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可通过rJava将数据类型转换后的Java、Scala语言可识别的参数,传给底层机器学习库定义好的分布式函数接口,训练出分布式机器学习模型。主要是利用rJava的J函数,用法为J("类名","函数方法",参数一,参数二,...),其中,一个“函数方法”对应一种训练出分布式机器学习模型的训练函数,J函数起调用Java函数方法的作用。在此,可通过多种分布式机器学习模型的训练函数相应地训练出多种分布式机器学习模型。
再例如,若所述模型训练参数信息为描述文件的格式,可通过xml文件解析、JSON文件解析工具或者PMML文件解析工具将数据类型解析为Java、Scala语言可以识别的参数信息,传给底层机器学习库定义好的分布式函数接口,训练出分布式机器学习模型。
所述第四装置14将所述分布式机器学习模型转换为单机机器学习模型。
例如,所述分布式机器学习模型主要用于对云端分布式存储的大量预测数据进行预测,所述单机机器学习模型主要用于对用户设备端本地少量的预测数据进行预测。
优选地,所述第四装置14将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
例如,将基于Java或Scala等所述第二语言描述的所述分布式机器学习模型转换为基于R或Python等所述第一语言描述的所述单机机器学习模型。
优选地,所述第四装置14利用所述语言转换工具或所述描述文件解析工具将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可通过rJava将基于Java或Scala等语言描述的所述分布式机器学习模型转换为基于R语言描述的所述单机机器学习模型。若所述模型训练参数信息为描述文件的格式,可以利用xml文件解析工具、json文件解析工具或者PMML文件解析工具等所述描述文件解析工具将所述分布式机器学习模型转换为基于R或者Python等所述第一语言的单机机器学习模型。
更优选地,所述第四装置14提取出所述分布式机器学习模型参数信息;若所述分布式机器学习模型参数信息为描述文件的格式,则利用所述描述文件解析工具对所述分布式机器学习模型参数信息进行描述文件解析,否则,利用所述语言转换工具对所述分布式机器学习模型参数信息进行数据类型转换,以获得基于所述第一语言的机器学习模型参数信息;根据所述机器学习模型参数信息构造基于所述第一语言的单机机器学习模型。
例如,若所述模型训练参数信息为函数参数的形式,可提取出所述分布式机器学习模型参数信息,然后通过rJava对其进行数据类型转换,将基于Java或Scala等语言描述的所述分布式机器学习模型参数信息转换为基于R或Python等语言描述的模型参数信息,再根据基于R或Python等语言描述的模型参数信息构造出基于R或Python等语言描述的单机机器学习模型。
再例如,若所述模型训练参数信息为描述文件的格式,可提取出所述分布式机器学习模型的模型描述文件,然后利用xml文件解析工具、json文件解析工具或者PMML文件解析工具对模型描述文件进行解析,将利用xml或者json描述的模型转换为基于R或者python等语言描述的模型参数信息,再根据所述模型参数信息构造出基于R或者python等所述第一语言描述的单机机器学习模型。
优选地,所述第一设备1还包括第五装置(图中未示出);所述第五装置将所述单机机器学习模型返回至所述用户设备。
例如,将所述单机机器学习模型返回至所述用户设备,用于对所述用户设备端本地少量的预测数据进行预测。具体地,可通过调用所述单机机器学习模型自带的predict(预测)函数对所述用户设备端本地少量的预测数据进行预测。
图4示出根据本申请再一个方面的一种用于将单机机器学习模型转换为分布式机器学习模型的第二设备2,其中,第二设备2包括第六装置26、第七装置27、第八装置28和第九装置29。
具体地,所述第六装置26获取单机机器学习模型;所述第七装置27提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;所述第八装置28根据所述单机机器学习模型构造分布式机器学习模型;所述第九装置29根据所述分布式机器学习模型对分布式训练数据进行预测。
在此,所述第二设备2包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑、笔记本电脑等,所述移动电子产品可以采用任意操作***,如android操作***、iOS操作***等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,第二设备2还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述第二设备2仅为举例,其他现有的或今后可能出现的第二设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第六装置26获取单机机器学习模型。
例如,所述单机机器学习模型根据用户设备端本地的单机训练数据训练得到,在此,获取用户设备发送的所述单机机器学习模型。相应地,分布式机器学习模型根据分布式训练数据训练得到。通常情况下,针对本地少量的预测数据利用所述单机机器学习模型进行预测,针对分布式存储的大量预测数据利用所述分布式机器学习模型进行预测。
优选地,所述第六装置26获取基于第一语言的单机机器学习模型。
在此,所述第一语言包括但不限于R语言、Python语言等。其中,R是用于统计分析、绘图的语言和操作环境,Python是一种面向对象、解释型计算机程序设计语言。
例如,所述基于第一语言的单机机器学习模型可以是基于R或Python等语言描述的单机机器学习模型。
所述第七装置27提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换。
例如,在根据所述单机机器学习模型构造分布式机器学习模型之前,首先提取出所述单机机器学习模型参数信息。其中,所述单机机器学习模型参数信息可以是描述文件的格式,如JSON格式的数据描述文件,XML格式或PMML格式的模型描述文件;所述单机机器学习模型参数信息也可以是函数参数的形式。若所述单机机器学习模型参数信息为描述文件的格式,则对其进行描述文件解析;若所述单机机器学习模型参数信息为函数参数的形式,则对其进行数据类型转换。
在此,JSON是一种轻量级的数据交换语言,定义了一种轻量级的数据交换格式。XML是一种类似于HTML的扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据和定义数据类型等。PMML是一种事实标准语言,用于呈现数据挖掘模型。
优选地,所述第七装置27利用所述第一语言与第二语言的语言转换工具对所述单机机器学习模型参数信息进行数据类型转换,以获得基于所述第二语言的机器学习模型参数信息;或者,利用描述文件解析工具对所述单机机器学习模型参数信息进行描述文件解析,以获得基于所述第二语言的机器学习模型参数信息。
在此,所述第二语言包括但不限于Java语言、Scala语言等,所述语言转换工具包括但不限于rJava。其中,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言;Scala是一门多范式的编程语言,一种类似Java的编程语言;rJava是一个R语言和Java语言的通信接口,通过底层JNI(Java NativeInterface,Java本地接口)实现调用,允许在R中直接调用Java的对象和方法。rJava还提供了Java调用R的功能,是通过JRI(Java/R Interface)实现的。正是由于rJava是底层接口,并使用JNI作为接口调用,所以效率非常高。
例如,若所述单机机器学习模型参数信息为函数参数的形式,可提取出所述单机机器学习模型参数信息,然后通过rJava对模型参数信息进行数据类型转换,将基于R语言描述的模型参数信息转换为基于Java或Scala等语言描述的模型参数信息。
再例如,若所述单机机器学习模型参数信息为描述文件的格式,可提取出所述单机机器学习模型的描述文件,然后通过xml文件解析工具、JSON文件解析工具或者PMML文件解析工具将模型描述文件转换成基于Java或者Scala等语言描述的模型参数信息。
当然,本领域技术人员应能理解上述第一语言、第二语言、语言转换工具和文件解析工具仅为举例,其他现有的或今后可能出现的第一语言、第二语言、语言转换工具和文件解析工具如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第八装置28根据所述单机机器学习模型构造分布式机器学习模型。
例如,可通过rJava调用分布式机器模型的构造函数,得到分布式机器学习模型。主要是利用rJava的.jnew函数,用法为.jnew("模型类名",参数一,参数二,...),其中,一个“模型类名”对应一种分布式机器学习模型的Java类名,.jnew函数起创建一个Java对象的作用,该对象即是分布式机器学习模型。在此,可通过多种分布式机器学习模型的构造函数相应地构造出多种分布式机器学习模型。
优选地,所述第八装置28根据所述机器学习模型参数信息构造基于所述第二语言的分布式机器学习模型。
例如,可以根据基于Java或Scala等语言描述的所述机器学习模型参数信息构造出基于Java或Scala等语言描述的分布式机器学习模型。
再例如,还可以根据基于Java或者Scala等语言描述的所述机器学习模型xml描述文件,JSON描述文件和PMML描述文件等,利用相对应的文件解析工具构造出基于Java或者Scala等语言描述的分布式机器学习模型。
所述第九装置29根据所述分布式机器学习模型对分布式训练数据进行预测。
例如,将所述分布式机器学习模型用于对云端分布式存储的大量预测数据进行预测。具体地,可通过调用所述分布式机器学习模型的预测函数,对所述分布式训练数据进行预测。主要是利用model$predict函数,用法为model$predict(data,...),其中,model是指所述分布式机器学习模型,predict是指所述分布式机器学习模型的预测函数,data是指所述分布式训练数据。
优选地,所述第二设备2还包括第十装置(图中未示出);所述第十装置获取用户设备发送的分布式训练数据。
例如,用户设备可通过数据提取函数得到存储在分布式存储介质或者分布式数据库中的所述分布式训练数据,然后用户设备将所述分布式训练数据发送至第二设备2。
本申请还提供了一种单机机器学习模型与分布式机器学习模型之间进行转换的第三设备,其中,第三设备包括如上所述的第一设备1,以及如上所述的第二设备2。
在优选的实施例中,所述第三设备既可通过本申请一个方面所述方法将分布式机器学习模型转换为单机机器学习模型,也可通过本申请另一个方面所述方法将单机机器学习模型转换为分布式机器学习模型;即,所述第三设备可实现单机机器学习模型与分布式机器学习模型之间的双向转换。
与现有技术相比,本申请获取模型训练参数信息,并对其进行数据类型转换或描述文件解析,然后根据所述模型训练参数信息训练出分布式机器学习模型,再将所述分布式机器学习模型转换为单机机器学习模型;本申请还获取单机机器学习模型,提取出所述单机机器学习模型参数信息,对所述单机机器学习模型参数信息进行数据类型转换或描述文件解析,然后根据所述单机机器学习模型构造分布式机器学习模型;本申请可实现单机机器学习模型与分布式机器学习模型之间的相互转换,大大增加了两者之间的兼容性。进一步地,本申请可实现R或者python等单机语言原生的单机机器学习模型与基于Java、Scala等语言的分布式机器学习模型之间的相互转换,同时本申请在进行转换时不需要启动本地进行类型转换的work进程和分布式进程,减少了时间的开销,提高了性能。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (21)
1.一种用于将分布式机器学习模型转换为单机机器学习模型的方法,其中,该方法包括:
获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;
若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;
根据所述模型训练参数信息,训练出分布式机器学习模型;
将所述分布式机器学习模型转换为单机机器学习模型。
2.根据权利要求1所述的方法,其中,所述获取模型训练参数信息包括:
获取基于第一语言的模型训练参数信息;
其中,所述将所述分布式机器学习模型转换为单机机器学习模型包括:
将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
3.根据权利要求2所述的方法,其中,所述对所述模型训练参数信息进行数据类型转换包括:
利用所述第一语言与第二语言的语言转换工具对所述模型训练参数信息进行数据类型转换,以获得基于所述第二语言的所述模型训练参数信息;
其中,所述对所述模型训练参数信息进行描述文件解析包括:
利用描述文件解析工具对所述模型训练参数信息进行描述文件解析,以获得基于所述第二语言的所述模型训练参数信息。
4.根据权利要求3所述的方法,其中,所述将所述分布式机器学习模型转换为单机机器学习模型包括:
利用所述语言转换工具或所述描述文件解析工具将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
5.根据权利要求4所述的方法,其中,所述将所述分布式机器学习模型转换为单机机器学习模型包括:
提取出所述分布式机器学习模型参数信息;
若所述分布式机器学习模型参数信息为描述文件的格式,则利用所述描述文件解析工具对所述分布式机器学习模型参数信息进行描述文件解析,否则,利用所述语言转换工具对所述分布式机器学习模型参数信息进行数据类型转换,以获得基于所述第一语言的机器学习模型参数信息;
根据所述机器学习模型参数信息构造基于所述第一语言的单机机器学习模型。
6.根据权利要求1所述的方法,其中,所述获取模型训练参数信息包括:
获取用户设备发送的模型训练参数信息;
其中,所述方法还包括:
将所述单机机器学习模型返回至所述用户设备。
7.一种用于将单机机器学习模型转换为分布式机器学习模型的方法,其中,该方法包括:
获取单机机器学习模型;
提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;
根据所述单机机器学习模型构造分布式机器学习模型;
根据所述分布式机器学习模型对分布式训练数据进行预测。
8.根据权利要求7所述的方法,其中,所述获取单机机器学习模型包括:
获取基于第一语言的单机机器学习模型。
9.根据权利要求8所述的方法,其中,所述对所述单机机器学习模型参数信息进行数据类型转换包括:
利用所述第一语言与第二语言的语言转换工具对所述单机机器学习模型参数信息进行数据类型转换,以获得基于所述第二语言的机器学习模型参数信息;
其中,所述对所述单机机器学习模型参数信息进行描述文件解析包括:
利用描述文件解析工具对所述单机机器学习模型参数信息进行描述文件解析,以获得基于所述第二语言的机器学习模型参数信息;
其中,所述根据所述单机机器学习模型构造分布式机器学习模型包括:
根据所述机器学习模型参数信息构造基于所述第二语言的分布式机器学习模型。
10.根据权利要求7至9中任一项所述的方法,其中,所述方法还包括:
获取用户设备发送的分布式训练数据。
11.一种用于将分布式机器学习模型转换为单机机器学习模型的第一设备,其中,该设备包括:
第一装置,用于获取模型训练参数信息,其中,所述模型训练参数信息包括分布式训练数据;
第二装置,用于若所述模型训练参数信息为描述文件的格式,则对所述模型训练参数信息进行描述文件解析,否则,对所述模型训练参数信息进行数据类型转换;
第三装置,用于根据所述模型训练参数信息,训练出分布式机器学习模型;
第四装置,用于将所述分布式机器学习模型转换为单机机器学习模型。
12.根据权利要求11所述的设备,其中,所述第一装置用于:
获取基于第一语言的模型训练参数信息;
其中,所述第二装置用于:
将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
13.根据权利要求12所述的设备,其中,所述对所述模型训练参数信息进行数据类型转换包括:
利用所述第一语言与第二语言的语言转换工具对所述模型训练参数信息进行数据类型转换,以获得基于所述第二语言的所述模型训练参数信息;
其中,所述对所述模型训练参数信息进行描述文件解析包括:
利用描述文件解析工具对所述模型训练参数信息进行描述文件解析,以获得基于所述第二语言的所述模型训练参数信息。
14.根据权利要求13所述的设备,其中,所述第四装置用于:
利用所述语言转换工具或所述描述文件解析工具将所述分布式机器学习模型转换为基于所述第一语言的单机机器学习模型。
15.根据权利要求14所述的设备,其中,所述第四装置用于:
提取出所述分布式机器学习模型参数信息;
若所述分布式机器学习模型参数信息为描述文件的格式,则利用所述描述文件解析工具对所述分布式机器学习模型参数信息进行描述文件解析,否则,利用所述语言转换工具对所述分布式机器学习模型参数信息进行数据类型转换,以获得基于所述第一语言的机器学习模型参数信息;
根据所述机器学习模型参数信息构造基于所述第一语言的单机机器学习模型。
16.根据权利要求11所述的设备,其中,所述第一装置用于:
获取用户设备发送的模型训练参数信息;
其中,所述设备还包括:
第五装置,用于将所述单机机器学习模型返回至所述用户设备。
17.一种用于将单机机器学习模型转换为分布式机器学习模型的第二设备,其中,该设备包括:
第六装置,用于获取单机机器学习模型;
第七装置,用于提取出所述单机机器学习模型参数信息,若所述单机机器学习模型参数信息为描述文件的格式,则对所述单机机器学习模型参数信息进行描述文件解析,否则,对所述单机机器学习模型参数信息进行数据类型转换;
第八装置,用于根据所述单机机器学习模型构造分布式机器学习模型;
第九装置,用于根据所述分布式机器学习模型对分布式训练数据进行预测。
18.根据权利要求17所述的设备,其中,所述第六装置用于:
获取基于第一语言的单机机器学习模型。
19.根据权利要求18所述的设备,其中,所述对所述单机机器学习模型参数信息进行数据类型转换包括:
利用所述第一语言与第二语言的语言转换工具对所述单机机器学习模型参数信息进行数据类型转换,以获得基于所述第二语言的机器学习模型参数信息;
其中,所述对所述单机机器学习模型参数信息进行描述文件解析包括:
利用描述文件解析工具对所述单机机器学习模型参数信息进行描述文件解析,以获得基于所述第二语言的机器学习模型参数信息;
其中,所述第八装置包括:
根据所述机器学习模型参数信息构造基于所述第二语言的分布式机器学习模型。
20.根据权利要求17至19中任一项所述的设备,其中,所述设备还包括:
第十装置,用于获取用户设备发送的分布式训练数据。
21.一种单机机器学习模型与分布式机器学习模型之间进行转换的第三设备,其中,该设备包括如权利要求11至16中任一项所述的第一设备,以及如权利要求17至20中任一项所述的第二设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610308127.9A CN106022483B (zh) | 2016-05-11 | 2016-05-11 | 机器学习模型之间进行转换的方法与设备 |
PCT/CN2017/080844 WO2017193769A1 (zh) | 2016-05-11 | 2017-04-18 | 机器学习模型之间进行转换的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610308127.9A CN106022483B (zh) | 2016-05-11 | 2016-05-11 | 机器学习模型之间进行转换的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106022483A true CN106022483A (zh) | 2016-10-12 |
CN106022483B CN106022483B (zh) | 2019-06-14 |
Family
ID=57099955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610308127.9A Active CN106022483B (zh) | 2016-05-11 | 2016-05-11 | 机器学习模型之间进行转换的方法与设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106022483B (zh) |
WO (1) | WO2017193769A1 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193769A1 (zh) * | 2016-05-11 | 2017-11-16 | 星环信息科技(上海)有限公司 | 机器学习模型之间进行转换的方法与设备 |
CN107679625A (zh) * | 2017-08-30 | 2018-02-09 | 第四范式(北京)技术有限公司 | 针对数据记录执行机器学习的分布式***及其方法 |
CN108154238A (zh) * | 2017-12-25 | 2018-06-12 | 东软集团股份有限公司 | 机器学习流程的迁移方法、装置、存储介质和电子设备 |
CN108334895A (zh) * | 2017-12-29 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 目标数据的分类方法、装置、存储介质及电子装置 |
CN108537340A (zh) * | 2017-03-02 | 2018-09-14 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN108829415A (zh) * | 2018-05-29 | 2018-11-16 | 努比亚技术有限公司 | 模型加载方法、服务器及计算机可读存储介质 |
CN109343857A (zh) * | 2018-08-22 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 线上部署机器学习模型的方法、设备和存储介质 |
CN109426651A (zh) * | 2017-06-20 | 2019-03-05 | 北京小米移动软件有限公司 | 文件转换的方法及装置 |
CN109669701A (zh) * | 2018-12-17 | 2019-04-23 | 深圳魔数智擎科技有限公司 | 对机器学习模型进行编译处理的方法、编译器及服务器 |
CN109784494A (zh) * | 2018-11-28 | 2019-05-21 | 同盾控股有限公司 | 一种基于pyspark的机器学习方法和装置 |
CN110083334A (zh) * | 2018-01-25 | 2019-08-02 | 北京顺智信科技有限公司 | 模型上线的方法及装置 |
CN110837896A (zh) * | 2019-11-22 | 2020-02-25 | 中国联合网络通信集团有限公司 | 机器学习模型的存储和调用方法、装置 |
CN110852449A (zh) * | 2019-11-25 | 2020-02-28 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN111522545A (zh) * | 2020-07-06 | 2020-08-11 | 嘉兴太美医疗科技有限公司 | 基于Java的动态构建模型的方法、装置、***和可读介质 |
CN111858348A (zh) * | 2020-07-23 | 2020-10-30 | 深圳慕智科技有限公司 | 一种基于神经网络输出向量的测试数据度量方法 |
CN112214470A (zh) * | 2019-07-11 | 2021-01-12 | 纬创资通股份有限公司 | 数据获取装置与数据运算***及方法 |
WO2022156280A1 (zh) * | 2021-01-25 | 2022-07-28 | 深圳市优必选科技股份有限公司 | 一种嵌入式终端的图像分类方法、装置及嵌入式终端 |
US11599752B2 (en) | 2019-06-03 | 2023-03-07 | Cerebri AI Inc. | Distributed and redundant machine learning quality management |
US11823067B2 (en) | 2017-06-27 | 2023-11-21 | Hcl Technologies Limited | System and method for tuning and deploying an analytical model over a target eco-system |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992299B (zh) * | 2017-11-27 | 2021-08-10 | 郑州云海信息技术有限公司 | 神经网络超参数提取转换方法、***、装置及存储介质 |
CN109460396B (zh) * | 2018-10-12 | 2024-06-04 | 中国平安人寿保险股份有限公司 | 模型处理方法及装置、存储介质和电子设备 |
CN111045688A (zh) * | 2019-12-06 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种模型***署和预测的方法和*** |
CN111275199A (zh) * | 2020-01-17 | 2020-06-12 | 深圳壹账通智能科技有限公司 | 一种深度学习模型文件的转换方法、***、计算机设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734457A (zh) * | 2004-10-12 | 2006-02-15 | 上海燃料电池汽车动力***有限公司 | 车载分布式控制***的计算机辅助开发方法 |
CN103246516A (zh) * | 2013-05-16 | 2013-08-14 | 中国科学院计算机网络信息中心 | 一种基于互联网的遥感数据分析工具的封装服务方法 |
CN104834730A (zh) * | 2015-05-15 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 数据分析***和方法 |
US20160019032A1 (en) * | 2014-07-18 | 2016-01-21 | Daniel Ritter | Relational logic integration |
CN105389220A (zh) * | 2015-11-09 | 2016-03-09 | 南京大学 | 在交互式r语言平台中进行并行线性代数计算的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271408B2 (en) * | 2009-10-22 | 2012-09-18 | Yahoo! Inc. | Pairwise ranking-based classifier |
CN101710361B (zh) * | 2009-11-13 | 2012-05-23 | 北京航空航天大学 | 基于面向服务架构的分布式交通仿真装置及其仿真方法 |
CN103701664A (zh) * | 2013-12-25 | 2014-04-02 | 北京航天测控技术有限公司 | 一种设备的测试运行时方法及测试服务器 |
CN104572072B (zh) * | 2014-12-01 | 2017-09-29 | 北京百度网讯科技有限公司 | 一种对基于mvc模式的程序的语言转换方法与设备 |
CN104778254B (zh) * | 2015-04-20 | 2018-03-27 | 北京蓝色光标品牌管理顾问股份有限公司 | 一种非参数的话题自动标注的分布式***和标注方法 |
CN105426344A (zh) * | 2015-11-09 | 2016-03-23 | 南京大学 | 基于Spark的分布式大规模矩阵乘法的矩阵计算方法 |
CN106022483B (zh) * | 2016-05-11 | 2019-06-14 | 星环信息科技(上海)有限公司 | 机器学习模型之间进行转换的方法与设备 |
-
2016
- 2016-05-11 CN CN201610308127.9A patent/CN106022483B/zh active Active
-
2017
- 2017-04-18 WO PCT/CN2017/080844 patent/WO2017193769A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734457A (zh) * | 2004-10-12 | 2006-02-15 | 上海燃料电池汽车动力***有限公司 | 车载分布式控制***的计算机辅助开发方法 |
CN103246516A (zh) * | 2013-05-16 | 2013-08-14 | 中国科学院计算机网络信息中心 | 一种基于互联网的遥感数据分析工具的封装服务方法 |
US20160019032A1 (en) * | 2014-07-18 | 2016-01-21 | Daniel Ritter | Relational logic integration |
CN104834730A (zh) * | 2015-05-15 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 数据分析***和方法 |
CN105389220A (zh) * | 2015-11-09 | 2016-03-09 | 南京大学 | 在交互式r语言平台中进行并行线性代数计算的方法 |
Non-Patent Citations (2)
Title |
---|
OPENTHINGS: "PySpark-使用Python在Spark上编程", 《HTTPS://MY.OSCHINA.NET/U/2306127/BLOG/633670》 * |
POWER0405HF: "Spark 使用Python在pyspark中运行简单wordcount", 《HTTP://BLOG.CSDN.NET/POWER0405HF/ARTICLE/DETAILS/49934557》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017193769A1 (zh) * | 2016-05-11 | 2017-11-16 | 星环信息科技(上海)有限公司 | 机器学习模型之间进行转换的方法与设备 |
CN108537340A (zh) * | 2017-03-02 | 2018-09-14 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN108537340B (zh) * | 2017-03-02 | 2021-04-27 | 北京君正集成电路股份有限公司 | 模型数据的读取方法和装置 |
CN109426651A (zh) * | 2017-06-20 | 2019-03-05 | 北京小米移动软件有限公司 | 文件转换的方法及装置 |
US11823067B2 (en) | 2017-06-27 | 2023-11-21 | Hcl Technologies Limited | System and method for tuning and deploying an analytical model over a target eco-system |
CN107679625B (zh) * | 2017-08-30 | 2019-09-17 | 第四范式(北京)技术有限公司 | 针对数据记录执行机器学习的分布式***及其方法 |
CN107679625A (zh) * | 2017-08-30 | 2018-02-09 | 第四范式(北京)技术有限公司 | 针对数据记录执行机器学习的分布式***及其方法 |
CN108154238A (zh) * | 2017-12-25 | 2018-06-12 | 东软集团股份有限公司 | 机器学习流程的迁移方法、装置、存储介质和电子设备 |
CN108334895A (zh) * | 2017-12-29 | 2018-07-27 | 腾讯科技(深圳)有限公司 | 目标数据的分类方法、装置、存储介质及电子装置 |
CN110083334A (zh) * | 2018-01-25 | 2019-08-02 | 北京顺智信科技有限公司 | 模型上线的方法及装置 |
CN108829415A (zh) * | 2018-05-29 | 2018-11-16 | 努比亚技术有限公司 | 模型加载方法、服务器及计算机可读存储介质 |
CN109343857A (zh) * | 2018-08-22 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 线上部署机器学习模型的方法、设备和存储介质 |
CN109784494A (zh) * | 2018-11-28 | 2019-05-21 | 同盾控股有限公司 | 一种基于pyspark的机器学习方法和装置 |
CN109669701A (zh) * | 2018-12-17 | 2019-04-23 | 深圳魔数智擎科技有限公司 | 对机器学习模型进行编译处理的方法、编译器及服务器 |
US11615271B2 (en) | 2019-06-03 | 2023-03-28 | Cerebri AI Inc. | Machine learning pipeline optimization |
US11599752B2 (en) | 2019-06-03 | 2023-03-07 | Cerebri AI Inc. | Distributed and redundant machine learning quality management |
US11620477B2 (en) * | 2019-06-03 | 2023-04-04 | Cerebri AI Inc. | Decoupled scalable data engineering architecture |
CN112214470B (zh) * | 2019-07-11 | 2024-05-17 | 纬创资通股份有限公司 | 数据获取装置与数据运算***及方法 |
CN112214470A (zh) * | 2019-07-11 | 2021-01-12 | 纬创资通股份有限公司 | 数据获取装置与数据运算***及方法 |
CN110837896A (zh) * | 2019-11-22 | 2020-02-25 | 中国联合网络通信集团有限公司 | 机器学习模型的存储和调用方法、装置 |
CN110852449B (zh) * | 2019-11-25 | 2023-11-14 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN110852449A (zh) * | 2019-11-25 | 2020-02-28 | 北京百度网讯科技有限公司 | 模型迁移方法和电子设备 |
CN111522545A (zh) * | 2020-07-06 | 2020-08-11 | 嘉兴太美医疗科技有限公司 | 基于Java的动态构建模型的方法、装置、***和可读介质 |
CN111858348A (zh) * | 2020-07-23 | 2020-10-30 | 深圳慕智科技有限公司 | 一种基于神经网络输出向量的测试数据度量方法 |
WO2022156280A1 (zh) * | 2021-01-25 | 2022-07-28 | 深圳市优必选科技股份有限公司 | 一种嵌入式终端的图像分类方法、装置及嵌入式终端 |
Also Published As
Publication number | Publication date |
---|---|
CN106022483B (zh) | 2019-06-14 |
WO2017193769A1 (zh) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106022483A (zh) | 机器学习模型之间进行转换的方法与设备 | |
CN101946248B (zh) | 提供应用程序接口服务并进行应用程序接口跨界混搭的方法和装置 | |
CN105426508B (zh) | 网页生成方法和装置 | |
CN104798082A (zh) | 用于提供用于数据流的隐私策略的方法和装置 | |
CN108563768A (zh) | 不同数据模型的数据转换方法、装置、设备及存储介质 | |
CN107632826A (zh) | 一种源代码的编译方法和客户端 | |
CN104040535A (zh) | 自定义浏览器侧电子表格函数 | |
CN102184101B (zh) | 一种面向智能手机的软件应用框架及其开发*** | |
CN105659209B (zh) | 在客户端设备上托管的云服务 | |
CN104395881B (zh) | 动态型阵列的表达和变换 | |
CN102591961A (zh) | 一种制作数据图表的方法及*** | |
CN109684607A (zh) | Json数据解析方法、装置、计算机设备和存储介质 | |
CN103544024A (zh) | 生成浏览器页面的方法、***及终端设备 | |
CN109308254A (zh) | 一种测试方法、装置及测试设备 | |
CN107463422A (zh) | 代码部署方法及装置、电子设备 | |
CN106462561A (zh) | 优化浏览器渲染过程 | |
CN106648569A (zh) | 目标序列化实现方法和装置 | |
CN108241689A (zh) | 页面资源获取方法、装置和客户端设备 | |
CN107315833A (zh) | 基于应用程序的检索与下载的方法和装置 | |
CN104079598B (zh) | 一种实现网页协同浏览的方法和装置 | |
CN109814868A (zh) | 网络传输模拟方法、装置、计算机设备及存储介质 | |
US20230315990A1 (en) | Text detection method and apparatus, electronic device, and storage medium | |
CN107239387A (zh) | 一种数据异常检测方法及终端 | |
CN102779034A (zh) | 铁路票务***的客户端及其实现方法 | |
CN104346174B (zh) | 一种在线矢量图建模过程的描述与重现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai Patentee after: Star link information technology (Shanghai) Co.,Ltd. Address before: Room 1902, 19th floor, block a, 391 Guiping Road, Xuhui District, Shanghai 200233 Patentee before: TRANSWARP TECHNOLOGY (SHANGHAI) Co.,Ltd. |