CN108829415A - 模型加载方法、服务器及计算机可读存储介质 - Google Patents

模型加载方法、服务器及计算机可读存储介质 Download PDF

Info

Publication number
CN108829415A
CN108829415A CN201810532691.8A CN201810532691A CN108829415A CN 108829415 A CN108829415 A CN 108829415A CN 201810532691 A CN201810532691 A CN 201810532691A CN 108829415 A CN108829415 A CN 108829415A
Authority
CN
China
Prior art keywords
model
java
pmml file
concurrent
container
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
Application number
CN201810532691.8A
Other languages
English (en)
Other versions
CN108829415B (zh
Inventor
朱建军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201810532691.8A priority Critical patent/CN108829415B/zh
Publication of CN108829415A publication Critical patent/CN108829415A/zh
Application granted granted Critical
Publication of CN108829415B publication Critical patent/CN108829415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种模型加载方法,该方法包括:采集数据进行模型训练;将训练好的模型转化为预测模型标记语言PMML文件;将所述PMML文件提交至Java并发容器中;当需要调用模型时,从所述Java并发容器中获取相应的模型对象。本发明实施例还公开了一种服务器和计算机可读存储介质。由此,能够。

Description

模型加载方法、服务器及计算机可读存储介质
技术领域
本发明涉及数据挖掘技术领域,尤其涉及一种模型加载方法、服务器及计算机可读存储介质。
背景技术
目前,数据挖掘技术的应用非常广泛。通常情况下,数据挖掘工作分为离线的模型训练和在线的模型预测两部分。对于一些常见的业务,如广告点击通过率(Click-Through-Rate,CTR)、实时推荐等,通常对实时性要求很高。所述实时性要求分为两个方面:(1)模型预测的实时性:即要求预测结果响应要快,通常要求在100ms内完成特征拼接、模型预测、结果排序等操作;(2)模型更新的实时性:虽然现在有在线学习的方法,但是介于其工程化的困难性以及模型的不稳定性,一般还是做离线的训练,在模型更新频率上需要提高。针对以上要求,需要解决如何使线上模型的加载方式满足严苛的实时性要求,以及模型如何做到自动化更新,不需要重启服务这两个方面的问题。
发明内容
本发明的主要目的在于提出一种模型加载方法、服务器及计算机可读存储介质,以满足模型预测和更新的实时性。
为实现上述目的,本发明提供的一种模型加载方法,所述方法包括步骤:
采集数据进行模型训练;
将训练好的模型转化为预测模型标记语言PMML文件;
将所述PMML文件提交至Java并发容器中;及
当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
可选地,所述方法还包括步骤:
在提交所述PMML文件时,将所述PMML文件在本地进行备份;
当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
可选地,所述将所述PMML文件提交至Java并发容器中的步骤包括:
将所述PMML文件转化为Java对象;
判断所述Java并发容器中是否已存在该Java对象;
若已存在,则用所述Java对象替换所述Java并发容器中已存在的旧的Java对象;
若不存在,则直接将所述Java对象添加到所述Java并发容器中。
可选地,所述Java并发容器为CurrentHashMap。
可选地,在提交和获取所述PMML文件时,通过哈希算法定位所述PMML文件对应的模型对象放在所述CurrentHashMap的哪一个数据段中。
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的模型加载程序,所述模型加载程序被所述处理器执行时实现如下步骤:
采集数据进行模型训练;
将训练好的模型转化为预测模型标记语言PMML文件;
将所述PMML文件提交至Java并发容器中;及
当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
可选地,所述模型加载程序被所述处理器执行时还实现步骤:
在提交所述PMML文件时,将所述PMML文件在本地进行备份;
当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
可选地,所述将所述PMML文件提交至Java并发容器中的步骤包括:
将所述PMML文件转化为Java对象;
判断所述Java并发容器中是否已存在该Java对象;
若已存在,则用所述Java对象替换所述Java并发容器中已存在的旧的Java对象;
若不存在,则直接将所述Java对象添加到所述Java并发容器中。
可选地,所述Java并发容器为CurrentHashMap。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有模型加载程序,所述模型加载程序被处理器执行时实现如上述的模型加载方法的步骤。
本发明提出的模型加载方法、服务器及计算机可读存储介质,能够提供一种基于PMML文件的模型加载方式来保证模型预测的实时性,满足像广告CTR这样对实时性要求严格的业务,同时采取RESTful API来自动化更新线上模型,动态加载模型,无需重启服务。通过这种方式自动化部署模型,大大优化模型更新中间环节,形成在线预测、离线训练、自动更新的一个完整的闭环,不断的提高模型的预测能力。
附图说明
图1为本发明第一实施例提出的一种模型加载方法的流程图;
图2为数据挖掘过程的示意图;
图3为本发明第二实施例提出的一种模型加载方法的流程图;
图4为本发明第三实施例提出的一种模型加载方法的流程图;
图5为本发明第四实施例提出的一种服务器的模块示意图;
图6为本发明第五实施例提出的一种模型加载系统的模块示意图;
图7为本发明第六实施例提出的一种模型加载系统的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
实施例一
如图1所示,本发明第一实施例提出一种模型加载方法,该方法包括以下步骤:
S100,采集数据进行模型训练。
具体地,通常情况下,数据挖掘工作分为离线的模型训练和在线的模型预测两部分(参阅图2所示)。首先,需要先将采集到的数据进行清洗、训练等,得到训练好的模型。在本实施例中,可以采用现有的模型训练平台来对采集到的数据进行模型训练。例如,可以采用R、python、mahout、spark、tensorflow等平台进行模型训练。
S102,将训练好的模型转化为PMML(Predictive Model Markup Language,预测模型标记语言)文件。
具体地,使用jpmml相关的插件将训练好的模型转化为PMML文件,目的是将不同算法平台训练的模型转化为同一种标记语言,这样统一了模型加载和预测的方式。在本实施例中,可以将R、python、mahout、spark、tensorflow等平台训练的模型转化为PMML文件。
S104,将所述PMML文件提交至Java并发容器中。
在本实施例中,所述Java并发容器为CurrentHashMap。具体地,将所述PMML文件提交至一个线程安全的CurrentHashMap里面,并且提供deploy API接口。CurrentHashMap利用锁分段技术增加了锁的数目,从而使争夺同一把锁的线程的数目得到控制。锁分段技术就是对数据集进行分段,每段竞争一把锁,不同数据段的数据不存在锁竞争,从而有效提高并发访问效率。
CurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment是一种重入锁(ReentrantLock),作为一个数据段竞争锁。HashEntry则用于存储键值对数据。一个CurrentHashMap里包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表结构,一个Segment里包含一个HashEntry数组,每个HashEntry是一个链表结构的元素。由于CurrentHashMap使用分段锁Segment来保护不同段的数据,那么在插入和获取元素的时候,必须先通过哈希算法定位到Segment,也就是计算该元素放在哪一个Segment中。
因此,在提交所述PMML文件时,通过哈希算法定位将所述PMML文件对应的模型对象放到所述CurrentHashMap的哪一个数据段Segment中。
S106,当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
具体地,每次需要调用模型时,从所述CurrentHashMap里面获取整个模型对象。在获取时,需要先通过哈希算法定位从所述CurrentHashMap的哪一个数据段Segment中获取所述PMML文件对应的模型对象。
本实施例提出的模型加载方法,可以提供一种基于PMML文件的模型加载方式来保证模型预测的实时性,满足像广告CTR这样对实时性要求严格的业务,同时采取RESTfulAPI来自动化更新线上模型,动态加载模型,无需重启服务。通过这种方式自动化部署模型,大大优化模型更新中间环节,形成在线预测、离线训练、自动更新的一个完整的闭环,不断的提高模型的预测能力。
实施例二
如图3所示,本发明第二实施例提出一种模型加载方法。在第二实施例中,所述模型加载方法的步骤S104具体包括以下步骤:
S300,将所述PMML文件转化为Java对象。
具体地,在内存中使用jpmml-evaluator插件提供的接口来加载解析PMML文件,然后转化为一个Java对象。
S302,判断所述Java并发容器中是否已存在该Java对象。若已存在,则执行步骤S304。若不存在,则执行步骤S306。
具体地,将整个模型Java对象放在所述CurrentHashMap中,这样做的好处是,每次调用模型时就在所述CurrentHashMap中获取整个模型Java对对象,整个预测过程都是在java内存中,所以响应速度很快。同时这种也属于单例模式,避免了重复加载模型的耗时以及重复添加新对象耗损的内存资源。在将所述Java对象放在所述CurrentHashMap之前,需要先判断当前提交的模型ID是否已存在所述CurrentHashMap中。
S304,用所述Java对象替换旧的Java对象。
具体地,若所述CurrentHashMap中已存在所述Java对象,则用当前提交的所述Java对象替换所述CurrentHashMap中已存在的旧的Java对象,从而实现模型的更新。
S306,直接将所述Java对象添加到所述Java并发容器中。
具体地,若所述CurrentHashMap中不存在所述Java对象,则直接将当前提交的所述Java对象添加到所述CurrentHashMap中。在提交所述Java对象时,通过哈希算法定位将所述Java对象放到所述CurrentHashMap的哪一个数据段Segment中。由于CurrentHashMap是线程安全的,所以不会出现并发问题。
实施例三
如图4所示,本发明第三实施例提出一种模型加载方法。在第三实施例中,所述模型加载方法的步骤S400-S404、S408与第一实施例的步骤S100-S106相类似,区别在于该方法还包括步骤S406和S410。
该方法包括以下步骤:
S400,采集数据进行模型训练。
具体地,通常情况下,数据挖掘工作分为离线的模型训练和在线的模型预测两部分(参阅图2所示)。首先,需要先将采集到的数据进行清洗、训练等,得到训练好的模型。在本实施例中,可以采用现有的模型训练平台来对采集到的数据进行模型训练。例如,可以采用R、python、mahout、spark、tensorflow等平台进行模型训练。
S402,将训练好的模型转化为PMML文件。
具体地,使用jpmml相关的插件将训练好的模型转化为PMML文件,目的是将不同算法平台训练的模型转化为同一种标记语言,这样统一了模型加载和预测的方式。在本实施例中,可以将R、python、mahout、spark、tensorflow等平台训练的模型转化为PMML文件。
S404,将所述PMML文件提交至Java并发容器中。
在本实施例中,所述Java并发容器为CurrentHashMap。具体地,将所述PMML文件提交至一个线程安全的CurrentHashMap里面,并且提供deploy API接口。CurrentHashMap利用锁分段技术增加了锁的数目,从而使争夺同一把锁的线程的数目得到控制。锁分段技术就是对数据集进行分段,每段竞争一把锁,不同数据段的数据不存在锁竞争,从而有效提高并发访问效率。
CurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment是一种重入锁(ReentrantLock),作为一个数据段竞争锁。HashEntry则用于存储键值对数据。一个CurrentHashMap里包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表结构,一个Segment里包含一个HashEntry数组,每个HashEntry是一个链表结构的元素。由于CurrentHashMap使用分段锁Segment来保护不同段的数据,那么在插入和获取元素的时候,必须先通过哈希算法定位到Segment,也就是计算该元素放在哪一个Segment中。
因此,在提交所述PMML文件时,通过哈希算法定位将所述PMML文件对应的模型对象放到所述CurrentHashMap的哪一个数据段Segment中。
该步骤的具体细化流程参阅所述第二实施例的相关内容,在此不再赘述。
S406,将所述PMML文件进行备份。
具体地,在将所述PMML文件提交到所述CurrentHashMap的同时,当前提交的所述PMML文件也备份一份在服务器中,当出现某些意外情况导致服务中的模型对象不存在的时候,可以立即加载解析本地的备份PMML文件,并添加到所述CurrentHashMap中,增强服务的容错能力。
S408,当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
具体地,每次需要调用模型时,从所述CurrentHashMap中获取整个模型对象。在获取时,需要先通过哈希算法定位从所述CurrentHashMap的哪一个数据段Segment中获取所述PMML文件对应的模型对象。
S410,当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
具体地,若从所述CurrentHashMap中无法获取到所述模型对象,表示所述模型对象未提交至所述CurrentHashMap中或者出现意外状况,此时可以利用所述服务器中本地备份的所述PMML文件进行模型加载。也就是立即加载解析本地备份的所述PMML文件,并添加到所述CurrentHashMap中,然后从所述CurrentHashMap中获取对应的模型对象。
本实施例提出的模型加载方法,可以提供一种基于PMML文件的模型加载方式来保证模型预测的实时性,满足像广告CTR这样对实时性要求严格的业务,同时采取RESTfulAPI来自动化更新线上模型,动态加载模型,无需重启服务。通过这种方式自动化部署模型,大大优化模型更新中间环节,形成在线预测、离线训练、自动更新的一个完整的闭环,不断的提高模型的预测能力。并且,通过在服务器本地对模型转化的PMML文件进行备份,当服务中的模型对象不存在时,可以利用备份的PMML进行模型加载,增强服务的容错能力。
实施例四
如图5所示,本发明第四实施例提出一种服务器2。所述服务器2包括存储器20、处理器22和模型加载系统28。
其中,所述存储器20至少包括一种类型的可读存储介质,用于存储安装于所述服务器2的操作系统和各类应用软件,例如模型加载系统28的程序代码等。此外,所述存储器20还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述服务器2的总体操作。本实施例中,所述处理器22用于运行所述存储器20中存储的程序代码或者处理数据,例如运行所述模型加载系统28等。
实施例五
如图6所示,本发明第五实施例提出一种模型加载系统28。在本实施例中,所述模型加载系统28包括:
训练模块800,用于采集数据进行模型训练。
具体地,通常情况下,数据挖掘工作分为离线的模型训练和在线的模型预测两部分(参阅图2所示)。首先,需要先将采集到的数据进行清洗、训练等,得到训练好的模型。在本实施例中,可以采用现有的模型训练平台来对采集到的数据进行模型训练。例如,可以采用R、python、mahout、spark、tensorflow等平台进行模型训练。
转化模块802,用于将训练好的模型转化为PMML文件。
具体地,使用jpmml相关的插件将训练好的模型转化为PMML文件,目的是将不同算法平台训练的模型转化为同一种标记语言,这样统一了模型加载和预测的方式。在本实施例中,可以将R、python、mahout、spark、tensorflow等平台训练的模型转化为PMML文件。
提交模块804,用于将所述PMML文件提交至Java并发容器中。
在本实施例中,所述Java并发容器为CurrentHashMap。具体地,将所述PMML文件提交至一个线程安全的CurrentHashMap里面,并且提供deploy API接口。CurrentHashMap利用锁分段技术增加了锁的数目,从而使争夺同一把锁的线程的数目得到控制。锁分段技术就是对数据集进行分段,每段竞争一把锁,不同数据段的数据不存在锁竞争,从而有效提高并发访问效率。
CurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment是一种重入锁,作为一个数据段竞争锁。HashEntry则用于存储键值对数据。一个CurrentHashMap里包含一个Segment数组,Segment的结构和HashMap类似,是一种数组和链表结构,一个Segment里包含一个HashEntry数组,每个HashEntry是一个链表结构的元素。由于CurrentHashMap使用分段锁Segment来保护不同段的数据,那么在插入和获取元素的时候,必须先通过哈希算法定位到Segment,也就是计算该元素放在哪一个Segment中。
因此,在提交所述PMML文件时,通过哈希算法定位将所述PMML文件对应的模型对象放到所述CurrentHashMap的哪一个数据段Segment中。
在本实施例中,所述提交模块804将所述PMML文件提交至Java并发容器中的过程具体包括:
(1)将所述PMML文件转化为Java对象。
具体地,在内存中使用jpmml-evaluator插件提供的接口来加载解析PMML文件,然后转化为一个Java对象。
(2)判断所述Java并发容器中是否已存在该Java对象。
具体地,将整个模型Java对象放在所述CurrentHashMap中,这样做的好处是,每次调用模型时就在所述CurrentHashMap中获取整个模型Java对对象,整个预测过程都是在java内存中,所以响应速度很快。同时这种也属于单例模式,避免了重复加载模型的耗时以及重复添加新对象耗损的内存资源。在将所述Java对象放在所述CurrentHashMap之前,需要先判断当前提交的模型ID是否已存在所述CurrentHashMap中。
(3)当所述Java并发容器中已存在该Java对象时,用所述Java对象替换旧的Java对象。
具体地,若所述CurrentHashMap中已存在所述Java对象,则用当前提交的所述Java对象替换所述CurrentHashMap中已存在的旧的Java对象,从而实现模型的更新。
(4)当所述Java并发容器中不存在该Java对象时,直接将所述Java对象添加到所述Java并发容器中。
具体地,若所述CurrentHashMap中不存在所述Java对象,则直接将当前提交的所述Java对象添加到所述CurrentHashMap中。在提交所述Java对象时,通过哈希算法定位将所述Java对象放到所述CurrentHashMap的哪一个数据段Segment中。由于CurrentHashMap是线程安全的,所以不会出现并发问题。
获取模块806,用于当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
具体地,每次需要调用模型时,从所述CurrentHashMap里面获取整个模型对象。在获取时,需要先通过哈希算法定位从所述CurrentHashMap的哪一个数据段Segment中获取所述PMML文件对应的模型对象。
实施例六
如图7所示,本发明第六实施例提出一种模型加载系统28。在本实施例中,所述模型加载系统28除了包括第五实施例中的所述训练模块800、转化模块802、提交模块804、获取模块806之外,还包括备份模块808。
所述备份模块808,用于将所述PMML文件进行备份。
具体地,在将所述PMML文件提交到所述CurrentHashMap的同时,当前提交的所述PMML文件也备份一份在服务器中,当出现某些意外情况导致服务中的模型对象不存在的时候,可以立即加载解析本地的备份PMML文件,并添加到所述CurrentHashMap中,增强服务的容错能力。
所述备份模块808,还用于当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
具体地,若从所述CurrentHashMap中无法获取到所述模型对象,表示所述模型对象未提交至所述CurrentHashMap中或者出现意外状况,此时可以利用所述服务器中本地备份的所述PMML文件进行模型加载。也就是立即加载解析本地备份的所述PMML文件,并添加到所述CurrentHashMap中,然后从所述CurrentHashMap中获取对应的模型对象。
实施例七
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有模型加载程序,所述模型加载程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的模型加载方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种模型加载方法,应用于服务器中,其特征在于,所述方法包括步骤:
采集数据进行模型训练;
将训练好的模型转化为预测模型标记语言PMML文件;
将所述PMML文件提交至Java并发容器中;及
当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
2.根据权利要求1所述的模型加载方法,其特征在于,所述方法还包括步骤:
在提交所述PMML文件时,将所述PMML文件在本地进行备份;
当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
3.根据权利要求1或2所述的模型加载方法,其特征在于,所述将所述PMML文件提交至Java并发容器中的步骤包括:
将所述PMML文件转化为Java对象;
判断所述Java并发容器中是否已存在该Java对象;
若已存在,则用所述Java对象替换所述Java并发容器中已存在的旧的Java对象;
若不存在,则直接将所述Java对象添加到所述Java并发容器中。
4.根据权利要求3所述的模型加载方法,其特征在于,所述Java并发容器为CurrentHashMap。
5.根据权利要求4所述的模型加载方法,其特征在于,在提交和获取所述PMML文件时,通过哈希算法定位所述PMML文件对应的模型对象放在所述CurrentHashMap的哪一个数据段中。
6.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的模型加载程序,所述模型加载程序被所述处理器执行时实现如下步骤:
采集数据进行模型训练;
将训练好的模型转化为预测模型标记语言PMML文件;
将所述PMML文件提交至Java并发容器中;及
当需要调用模型时,从所述Java并发容器中获取相应的模型对象。
7.根据权利要求6所述的服务器,其特征在于,所述模型加载程序被所述处理器执行时还实现步骤:
在提交所述PMML文件时,将所述PMML文件在本地进行备份;
当从所述Java并发容器中无法获取所述模型对象时,利用本地备份的所述PMML文件进行模型加载。
8.根据权利要求6或7所述的服务器,其特征在于,所述将所述PMML文件提交至Java并发容器中的步骤包括:
将所述PMML文件转化为Java对象;
判断所述Java并发容器中是否已存在该Java对象;
若已存在,则用所述Java对象替换所述Java并发容器中已存在的旧的Java对象;
若不存在,则直接将所述Java对象添加到所述Java并发容器中。
9.根据权利要求8所述的服务器,其特征在于,所述Java并发容器为CurrentHashMap。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有模型加载程序,所述模型加载程序被处理器执行时实现如权利要求1至5中任一项所述的模型加载方法的步骤。
CN201810532691.8A 2018-05-29 2018-05-29 模型加载方法、服务器及计算机可读存储介质 Active CN108829415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810532691.8A CN108829415B (zh) 2018-05-29 2018-05-29 模型加载方法、服务器及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810532691.8A CN108829415B (zh) 2018-05-29 2018-05-29 模型加载方法、服务器及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108829415A true CN108829415A (zh) 2018-11-16
CN108829415B CN108829415B (zh) 2023-07-21

Family

ID=64146211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810532691.8A Active CN108829415B (zh) 2018-05-29 2018-05-29 模型加载方法、服务器及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108829415B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222894A (zh) * 2019-06-06 2019-09-10 阿里巴巴集团控股有限公司 广告投放方法、装置及设备
CN110955470A (zh) * 2019-12-06 2020-04-03 深圳前海环融联易信息科技服务有限公司 算法模型接口化方法、装置、计算机设备及存储介质
CN112069244A (zh) * 2020-08-28 2020-12-11 福建博思软件股份有限公司 一种基于可视化web页面数据挖掘的方法和存储设备
CN112069226A (zh) * 2020-08-12 2020-12-11 福建博思软件股份有限公司 一种数据挖掘模型跨平台共享的方法和存储设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140137084A1 (en) * 2012-11-14 2014-05-15 International Business Machines Corporation Security analysis using relational abstraction of data structures
US20140229491A1 (en) * 2013-02-08 2014-08-14 Arindam Bhattacharjee Converting data models into in-database analysis models
CN106022483A (zh) * 2016-05-11 2016-10-12 星环信息科技(上海)有限公司 机器学习模型之间进行转换的方法与设备
CN107180035A (zh) * 2016-03-09 2017-09-19 阿里巴巴集团控股有限公司 一种训练模型信息输出方法及装置
US20180068220A1 (en) * 2016-09-06 2018-03-08 International Business Machines Corporation Predictive analysis with large predictive models
CN107807967A (zh) * 2017-10-13 2018-03-16 平安科技(深圳)有限公司 实时推荐方法、电子设备及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140137084A1 (en) * 2012-11-14 2014-05-15 International Business Machines Corporation Security analysis using relational abstraction of data structures
US20140229491A1 (en) * 2013-02-08 2014-08-14 Arindam Bhattacharjee Converting data models into in-database analysis models
CN107180035A (zh) * 2016-03-09 2017-09-19 阿里巴巴集团控股有限公司 一种训练模型信息输出方法及装置
CN106022483A (zh) * 2016-05-11 2016-10-12 星环信息科技(上海)有限公司 机器学习模型之间进行转换的方法与设备
WO2017193769A1 (zh) * 2016-05-11 2017-11-16 星环信息科技(上海)有限公司 机器学习模型之间进行转换的方法与设备
US20180068220A1 (en) * 2016-09-06 2018-03-08 International Business Machines Corporation Predictive analysis with large predictive models
CN107807967A (zh) * 2017-10-13 2018-03-16 平安科技(深圳)有限公司 实时推荐方法、电子设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵思奇;钱巨;陈林;徐宝文;: "面向并发的C++程序重构模式研究", 计算机与数字工程, no. 10 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222894A (zh) * 2019-06-06 2019-09-10 阿里巴巴集团控股有限公司 广告投放方法、装置及设备
CN110955470A (zh) * 2019-12-06 2020-04-03 深圳前海环融联易信息科技服务有限公司 算法模型接口化方法、装置、计算机设备及存储介质
CN110955470B (zh) * 2019-12-06 2024-01-19 深圳前海环融联易信息科技服务有限公司 算法模型接口化方法、装置、计算机设备及存储介质
CN112069226A (zh) * 2020-08-12 2020-12-11 福建博思软件股份有限公司 一种数据挖掘模型跨平台共享的方法和存储设备
CN112069226B (zh) * 2020-08-12 2022-05-17 福建博思软件股份有限公司 一种数据挖掘模型跨平台共享的方法和存储设备
CN112069244A (zh) * 2020-08-28 2020-12-11 福建博思软件股份有限公司 一种基于可视化web页面数据挖掘的方法和存储设备

Also Published As

Publication number Publication date
CN108829415B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
CN108829415A (zh) 模型加载方法、服务器及计算机可读存储介质
US8689231B2 (en) System and method for ordering tasks with complex interrelationships
US8051380B2 (en) Communicating shared electronic calendar modifications
CN104160378B (zh) 用于启用分布式计算系统中的容错功能的方法和系统
CN105190555B (zh) 集中式任务调度
US20110264704A1 (en) Methods and Systems for Deleting Large Amounts of Data From a Multitenant Database
CN104216912A (zh) 一种无侵入式的业务表单工作流化的实现方法与装置
US6725445B1 (en) System for minimizing notifications in workflow management system
CN107526645A (zh) 一种通信优化方法及系统
CN105930208A (zh) 一种线程调度方法及线程调度装置
CN107256180A (zh) 数据处理方法、装置及终端
CN102624865A (zh) 集群负载预测方法及分布式集群管理系统
CN101093454A (zh) 一种在分布式系统中执行sql脚本文件的方法和装置
CN110096258A (zh) 一种基于Terraform的OpenStack基础设施架构管理的方法
US8291331B2 (en) Partial updating of diagram display
CN109165335A (zh) 基于大数据的互联网金融黑名单系统及其应用方法
CN115455058A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
CN100568245C (zh) 工作流数据的持久化处理方法、装置及工作流系统
CN113051279B (zh) 数据消息的存储方法、存储装置、电子设备及存储介质
CN109343831A (zh) 一种html组件的管理方法及装置
CN107832136A (zh) 一种网络爬虫程序的管理方法及装置
JP2007316851A (ja) 作業管理方法及び作業管理システム
KR20060111949A (ko) 통합 생산관리 시스템 인터페이스 장치
CN108108392A (zh) 商品数据管理方法、装置、计算机设备及存储介质
CN107688592A (zh) 数据清洗的方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant