CN111352915A - 一种机器学习系统、一种机器学习参数服务器及实现方法 - Google Patents
一种机器学习系统、一种机器学习参数服务器及实现方法 Download PDFInfo
- Publication number
- CN111352915A CN111352915A CN201811563116.0A CN201811563116A CN111352915A CN 111352915 A CN111352915 A CN 111352915A CN 201811563116 A CN201811563116 A CN 201811563116A CN 111352915 A CN111352915 A CN 111352915A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- layer storage
- hazelcast
- kudu
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000010801 machine learning Methods 0.000 title claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 41
- 230000002085 persistent effect Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000005192 partition Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种机器学习系统、一种机器学习参数服务器及其实现方法。所述方法包括:接收工作节点发送的数据查询请求;在第一层存储中查询与所述数据查询请求对应的数据;若查询成功,则将查询出的数据返回给所述工作节点;若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中,以及将查询出的数据返回给所述工作节点。该技术方案通过两层存储的设置,提高了容错性,并且加快了查询速度,在保证稳定性的前提上也确保了训练效率,并且各部分可以在各类开源程序的基础上实现,充分应用了现有技术,并实现了创新。
Description
技术领域
本发明涉及机器学习领域,具体涉及一种机器学习系统、一种机器学习参数服务器及实现方法。
背景技术
在大数据时代,需要处理的数据都是TB级或PB级以上,对于数据常规处理,现有的MapReduce或者Spark(两种分布式计算框架)能够很好的完成任务。但是在机器学习领域,模型的规模也在不断的增大,模型参数的规模可以达到百亿,千亿甚至万亿级别,对现有的机器学习系统都有很大的挑战。
为了解决超大规模参数模型,现在业界流行的方案是采用PS(Parameter Server,参数服务器)架构,参数服务器节点(Server)负责模型的分布式存储,工作节点(Worker)负责分布式计算。工作节点从参数服务器节点拉取模型参数,根据训练数据计算梯度后上报,参数服务器节点将梯度合并至模型,实现模型更新。目前较流行的一些机器学习系统对于MPI(Message-Passing-Interface消息传递接口)架构的容错性较低,是需要解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种机器学习系统、一种机器学习参数服务器及其实现方法。
依据本发明的一个方面,提供了一种机器学习参数服务器的实现方法,包括:接收工作节点发送的数据查询请求;在第一层存储中查询与所述数据查询请求对应的数据;若查询成功,则将查询出的数据返回给所述工作节点;若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中,以及将查询出的数据返回给所述工作节点。
可选地,该方法还包括:预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
可选地,该方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;所述在第二层存储中查询与所述数据查询请求对应的数据包括:通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
可选地,该方法还包括:根据工作节点上传的数据对第一层存储进行更新;周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
可选地,该方法还包括:根据所述数据查询请求和/或所述持久化存储请求生成相应的读写任务;将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
可选地,该方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;所述将相应周期内第一层存储中变化的值更新至第二层存储中包括:通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
可选地,所述通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu包括:通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递所述键值对。
可选地,该方法还包括:通过HazelCast实现基于内存的第一层存储服务;各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
可选地,该方法还包括:基于LRU算法对所述第一层存储进行管理。
可选地,基于所述第一层存储和第二层存储传输和存储的数据为二进制形式。
可选地,所述第一层存储中存储的数据为模型参数中的非零项。
可选地,该方法还包括:通过布隆过滤器对频率低于预设阈值的特征进行过滤。
可选地,该方法还包括:根据各批拉取的模型参数自适应调整批尺寸。
依据本发明的另一方面,提供了一种机器学习参数服务器,包括:通信单元,适于接收工作节点发送的数据查询请求;数据处理单元,适于在第一层存储中查询与所述数据查询请求对应的数据;若查询成功,则将查询出的数据返回给所述工作节点;若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中;所述通信单元,还适于以及将查询出的数据返回给所述工作节点。
可选地,所述数据处理单元,适于预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
可选地,所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
可选地,所述数据处理单元,适于根据工作节点上传的数据对第一层存储进行更新;周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
可选地,所述数据处理单元,适于根据所述数据查询请求和/或所述持久化存储请求生成相应的读写任务;将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
可选地,所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
可选地,所述数据处理单元,适于通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递所述键值对。
可选地,所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务;各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
可选地,所述数据处理单元,还适于基于LRU算法对所述第一层存储进行管理。
可选地,基于所述第一层存储和第二层存储传输和存储的数据为二进制形式。
可选地,所述第一层存储中存储的数据为模型参数中的非零项。
可选地,所述数据处理单元,还适于通过布隆过滤器对频率低于预设阈值的特征进行过滤。
可选地,所述数据处理单元,适于根据各批拉取的模型参数自适应调整批尺寸。
依据本发明的又一方面,提供了一种机器学习系统,包括如上述所述的机器学习参数服务器、多个以分布式计算实现模型训练的工作节点和用于存储训练数据的分布式存储系统。
依据本发明的再一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,在接收到工作节点发送的数据查询请求后,先在第一层存储中进行查询,如果查到则返回相应的数据,如果查不到,再到第二层存储中进行查询。该技术方案通过两层存储的设置,提高了容错性,并且加快了查询速度,在保证稳定性的前提上也确保了训练效率,并且各部分可以在各类开源程序的基础上实现,充分应用了现有技术,并实现了创新。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种机器学习参数服务器的实现方法的流程示意图;
图2示出了根据本发明一个实施例的一种机器学习参数服务器的结构示意图;
图3示出了根据本发明一个实施例的一种机器学习系统的结构示意图;
图4示出了根据本发明一个实施例的电子设备的结构示意图;
图5示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
经过研究发现,容错性较低的原因在于很多机器学习系统在实现参数服务器时仅使用一层存储,这对于海量特征数据是十分不友好,效率不高或稳定性差,本发明的技术构思在于通过设置两层存储,对此进行改善。
图1示出了根据本发明一个实施例的一种机器学习参数服务器的实现方法的流程示意图。如图1所示,该方法包括:
步骤S110,接收工作节点发送的数据查询请求。一般来说,工作节点需要从参数服务器获取的是模型参数,例如与各维度特征对应的权重。
在PS架构下,参数服务器可以通过多个分布式节点来保存模型,具体来说,模型可以进行分区。而工作节点除了需要从参数服务器获取模型参数外,还需要从分布是存储系统中进行训练数据的获取,目前通常利用HDFS对训练数据进行存储。
步骤S120,在第一层存储中查询与数据查询请求对应的数据。由于第一层存储应对的查询请求数量大,可以采用内存实现,即通过内存缓存查询频繁的模型参数。
步骤S130,若查询成功,则将查询出的数据返回给工作节点。
步骤S140,若查询失败,则在第二层存储中查询与数据查询请求对应的数据,将查询出的数据保存在第一层存储中,以及将查询出的数据返回给工作节点。
可以看出,第一层存储中保存的数据并不一定是整个模型的全部数据,而第二层存储中保存的则是完整的模型。因此,第二层存储可以被其他业务调用,即提供机器学习模型的功能性应用,例如被验证程序、在线预测程序所调用。并且,为了实现持久化存储,可以采用磁盘存储来实现。
可见,图1所示的方法,在接收到工作节点发送的数据查询请求后,先在第一层存储中进行查询,如果查到则返回相应的数据,如果查不到,再到第二层存储中进行查询。该技术方案通过两层存储的设置,提高了容错性,并且加快了查询速度,在保证稳定性的前提上也确保了训练效率,并且各部分可以在各类开源程序的基础上实现,充分应用了现有技术,并实现了创新。
在本发明的一个实施例中,上述方法还包括:预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
如背景技术所述,模型参数的规模可以达到百亿,千亿甚至万亿级别,即特征的维度可以达到上万亿。当然,这么多特征并非都对提高模型精度有着足够多的帮助,很多特征也并不一定会在训练过程中频繁使用。那么,对于规模较大的模型,其常用的特征也就是高频特征,可以通过对训练数据的分析来确定,将相应的模型参数在初始化时就可以放入第一层存储。而对于规模较小的模型,则可以将全部模型参数都放入第一层存储。
但是,即使将全部模型参数都放入第一层存储,第一层存储中的数据与第二层存储中的数据也不是完全相同的,存在一定的更新延迟,并且,发挥的作用也是不同的;第二层存储偏重持久化,需要向外提供服务;第一层存储需要贴近训练过程,发挥出读取效率高的特点。
可见,由于模型完全在内存中的读写速度是最快的,对于超大模型来说,模型越大,需要的机器越多。引入缓存之后,一定规模的机器,也可以完成超大模型的训练。
在本发明的一个实施例中,上述方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;在第二层存储中查询与数据查询请求对应的数据包括:通过HazelCast的load接口调用Kudu的scan接口,查询与数据查询请求对应的数据。
模型存储在内存中,读写速度快,但是需要更多的机器,增加网络的负载;模型存储在磁盘,需要的机器少,但是会影响读写速度。通过引入Kudu和HazelCast,可以实现将低频特征对应权重值存储在磁盘,高频特征对应权重值存储在内存,因此可以实现利用少量机器完成超大规模模型的训练。
HazelCast是一个基于内存的数据网格,没有任何中心节点,可以非常便捷高效的将其嵌入到各种应用服务器中。如结合前述实施例,可以在训练之前,统计一下训练数据中每维特征出现的次数,把出现次数最多的在初始化HazelCast时直接批量写入,可以保证需要读取次数多的权重直接从内存中读。
HazelCast作为计算层(各工作节点)和持久化存储层(本实施例中采用Kudu实现相应服务)之间的缓存层,处理工作节点发送的各种push和pull类型的请求,其中,pull请求对应于数据查询请求。如果查询过程中,内存缓存没有命中,会调用load接口,从Kudu中读取对应的数据,并放到缓存中。
Kudu是一个分布式列式kv(键值对)存储引擎,在本发明的实施例中可以负责存储完整模型。采用Kudu做为模型持久化的存储引擎,可以节约存储空间;可以实现模型的实时共享,其他的验证程序,在线预测程序可以实时调用模型;模型存储在Kudu中,通过多副本,实现了模型的高可用,出现单点故障,不会影响模型所涉及到的服务。并且,Kudu作为模型的持久化存储,可以利用Kudu的高效的scan性能,快速把训练好的模型导出到HDFS。
而Kudu中的数据都是以lsmtree的格式存储在磁盘上,随机读的效率比较低;而且更新操作都记录在delta文件中,对于机器学习的模型更新,是一个非常频繁的过程,会产生大量的delta文件,导致了Kudu需要耗大量的CPU合并delta文件,同时进一步降低读的性能。引入缓存层之后,大量多次使用的值会被缓存在内存中,跳过Kudu磁盘IO的读过程,加快读性能。
然而,HazelCast暂不支持Kudu作为持久化存储。为解决这一问题,本发明的实施例采用继承HazelCast的MapStore来实现。通过HazelCast的load接口,可以实现从指定的存储中读取数据,而在load里调用Kudu的scan接口,就可以查询并返回满足条件的数据。
在本发明的一个实施例中,上述方法还包括:根据工作节点上传的数据对第一层存储进行更新;周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
如果通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务,则周期可以很短,使得模型的同步较快。除了上面实施例所介绍的优点外,更进一步由于更新操作直接可以在内存中完成,降低了对Kudu的直接修改,避免产生大量delta文件。Hazelcast后台异步定时把窗口时间内存变化的值更新到Kudu里,也就是实现增量更新,可以增加更新的速度。
在本发明的一个实施例中,上述方法还包括:根据数据查询请求和/或持久化存储请求生成相应的读写任务;将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
模型的每个分区可以对应一个消费线程,所有对分区的读写操作,都放到读写任务队列中,然后由消费线程处理,避免的频发的锁操作,提升处理性能。这里,数据查询请求对应的查询操作属于读操作,而持久化存储请求对应的写数据操作则属于写操作。另外,根据工作节点上传的数据对第一次存储进行对第一层存储进行更新也属于写操作。
模型的更新操作可以全部为异步操作,把负责更新的任务发送到对应的模型分区的消费线程,实现了计算和数据的完全本地化,避免了跨网络来回传数据,同时也充分利用多线程加速计算。
在本发明的一个实施例中,上述方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;将相应周期内第一层存储中变化的值更新至第二层存储中包括:通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
正如前面实施例所介绍的,由于HazelCast暂不支持Kudu作为持久化存储。为解决这一问题,本发明的实施例也采用继承HazelCast的MapStore来实现。具体地,在本发明的一个实施例中,上述方法中,通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu包括:通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递键值对。
在本发明的一个实施例中,上述方法还包括:通过HazelCast实现基于内存的第一层存储服务;各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
在一个具体实施例中,工作节点利用Spark的执行者executor来实现,而一个executor进程中可以启动一个HazelCast节点。可见,在这种情况下,每个HazelCast节点是直接和Spark的executor在一个进程中,HazelCast的集群管理直接依托于spark,直接复用spark集群资源,任务退出之后,HazelCast的资源随之释放;HazelCast容错也依托于spark,单点故障之后,会在Spark重新启动的executor进程中,自动启动HazelCast节点,然后加入已有的HazelCast集群中,高效快捷。并且,executor和HazelCast在同一个进程中,这样一些操作可以充分利用本地化,减少网络传输。
在本发明的一个实施例中,上述方法还包括:基于LRU算法对第一层存储进行管理。LRU是一种较成熟的内存管理算法,在此不再详细介绍。容易理解,对于稀疏模型,部分特征对于的模型参数高频使用放在内存,而其他模型参数低频使用放在磁盘,对于稳定性和效率的提升相较于其他模型是更为显著的。
在本发明的一个实施例中,上述方法中,基于第一层存储和第二层存储传输和存储的数据为二进制形式。这样提升了序列化及反序列化的性能。
在本发明的一个实施例中,上述方法中,第一层存储中存储的数据为模型参数中的非零项。有些算法得到的模型稀疏度很高,例如基于FTRL算法的模型,训练过程中,只存储模型参数中的非零项,可以节省存储空间和传输速度。
在本发明的一个实施例中,上述方法还包括:通过布隆过滤器对频率低于预设阈值的特征进行过滤。过滤出现频率很低的特征,可以进一步减少模型的大小。
在本发明的一个实施例中,上述方法还包括:根据各批拉取的模型参数自适应调整批尺寸。这样可以避免出现线程堵塞。
图2示出了根据本发明一个实施例的一种机器学习参数服务器的结构示意图。如图2所示,机器学习参数服务器200包括:
通信单元210,适于接收工作节点发送的数据查询请求。一般来说,工作节点需要从参数服务器获取的是模型参数,例如与各维度特征对应的权重。
在PS架构下,参数服务器可以通过多个分布式节点来保存模型,具体来说,模型可以进行分区。而工作节点除了需要从参数服务器获取模型参数外,还需要从分布是存储系统中进行训练数据的获取,目前通常利用HDFS对训练数据进行存储。
数据处理单元220,适于在第一层存储中查询与数据查询请求对应的数据;若查询成功,则将查询出的数据返回给工作节点;若查询失败,则在第二层存储中查询与数据查询请求对应的数据,将查询出的数据保存在第一层存储中。由于第一层存储应对的查询请求数量大,可以采用内存实现,即通过内存缓存查询频繁的模型参数。可以看出,第一层存储中保存的数据并不一定是整个模型的全部数据,而第二层存储中保存的则是完整的模型。因此,第二层存储可以被其他业务调用,即提供机器学习模型的功能性应用,例如被验证程序、在线预测程序所调用。并且,为了实现持久化存储,可以采用磁盘存储来实现。
通信单元210,还适于以及将查询出的数据返回给工作节点。
可见,图2所示的装置,通过各单元的相互配合,在接收到工作节点发送的数据查询请求后,先在第一层存储中进行查询,如果查到则返回相应的数据,如果查不到,再到第二层存储中进行查询。该技术方案通过两层存储的设置,提高了容错性,并且加快了查询速度,在保证稳定性的前提上也确保了训练效率,并且各部分可以在各类开源程序的基础上实现,充分应用了现有技术,并实现了创新。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
如背景技术所述,模型参数的规模可以达到百亿,千亿甚至万亿级别,即特征的维度可以达到上万亿。当然,这么多特征并非都对提高模型精度有着足够多的帮助,很多特征也并不一定会在训练过程中频繁使用。那么,对于规模较大的模型,其常用的特征也就是高频特征,可以通过对训练数据的分析来确定,将相应的模型参数在初始化时就可以放入第一层存储。而对于规模较小的模型,则可以将全部模型参数都放入第一层存储。
但是,即使将全部模型参数都放入第一层存储,第一层存储中的数据与第二层存储中的数据也不是完全相同的,存在一定的更新延迟,并且,发挥的作用也是不同的;第二层存储偏重持久化,需要向外提供服务;第一层存储需要贴近训练过程,发挥出读取效率高的特点。
可见,由于模型完全在内存中的读写速度是最快的,对于超大模型来说,模型越大,需要的机器越多。引入缓存之后,一定规模的机器,也可以完成超大模型的训练。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的load接口调用Kudu的scan接口,查询与数据查询请求对应的数据。
模型存储在内存中,读写速度快,但是需要更多的机器,增加网络的负载;模型存储在磁盘,需要的机器少,但是会影响读写速度。通过引入Kudu和HazelCast,可以实现将低频特征对应权重值存储在磁盘,高频特征对应权重值存储在内存,因此可以实现利用少量机器完成超大规模模型的训练。
HazelCast是一个基于内存的数据网格,没有任何中心节点,可以非常便捷高效的将其嵌入到各种应用服务器中。如结合前述实施例,可以在训练之前,统计一下训练数据中每维特征出现的次数,把出现次数最多的在初始化HazelCast时直接批量写入,可以保证需要读取次数多的权重直接从内存中读。
HazelCast作为计算层(各工作节点)和持久化存储层(本实施例中采用Kudu实现相应服务)之间的缓存层,处理工作节点发送的各种push和pull类型的请求,其中,pull请求对应于数据查询请求。如果查询过程中,内存缓存没有命中,会调用load接口,从Kudu中读取对应的数据,并放到缓存中。
Kudu是一个分布式列式kv(键值对)存储引擎,在本发明的实施例中可以负责存储完整模型。采用Kudu做为模型持久化的存储引擎,可以节约存储空间;可以实现模型的实时共享,其他的验证程序,在线预测程序可以实时调用模型;模型存储在Kudu中,通过多副本,实现了模型的高可用,出现单点故障,不会影响模型所涉及到的服务。并且,Kudu作为模型的持久化存储,可以利用Kudu的高效的scan性能,快速把训练好的模型导出到HDFS。
而Kudu中的数据都是以lsmtree的格式存储在磁盘上,随机读的效率比较低;而且更新操作都记录在delta文件中,对于机器学习的模型更新,是一个非常频繁的过程,会产生大量的delta文件,导致了Kudu需要耗大量的CPU合并delta文件,同时进一步降低读的性能。引入缓存层之后,大量多次使用的值会被缓存在内存中,跳过Kudu磁盘IO的读过程,加快读性能。
然而,HazelCast暂不支持Kudu作为持久化存储。为解决这一问题,本发明的实施例采用继承HazelCast的MapStore来实现。通过HazelCast的load接口,可以实现从指定的存储中读取数据,而在load里调用Kudu的scan接口,就可以查询并返回满足条件的数据。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于根据工作节点上传的数据对第一层存储进行更新;周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
如果通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务,则周期可以很短,使得模型的同步较快。除了上面实施例所介绍的优点外,更进一步由于更新操作直接可以在内存中完成,降低了对Kudu的直接修改,避免产生大量delta文件。Hazelcast后台异步定时把窗口时间内存变化的值更新到Kudu里,也就是实现增量更新,可以增加更新的速度。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于根据数据查询请求和/或持久化存储请求生成相应的读写任务;将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
模型的每个分区可以对应一个消费线程,所有对分区的读写操作,都放到读写任务队列中,然后由消费线程处理,避免的频发的锁操作,提升处理性能。这里,数据查询请求对应的查询操作属于读操作,而持久化存储请求对应的写数据操作则属于写操作。另外,根据工作节点上传的数据对第一次存储进行对第一层存储进行更新也属于写操作。
模型的更新操作可以全部为异步操作,把负责更新的任务发送到对应的模型分区的消费线程,实现了计算和数据的完全本地化,避免了跨网络来回传数据,同时也充分利用多线程加速计算。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
正如前面实施例所介绍的,由于HazelCast暂不支持Kudu作为持久化存储。为解决这一问题,本发明的实施例也采用继承HazelCast的MapStore来实现。具体地,在本发明的一个实施例中,上述服务器中,数据处理单元220,适于通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递键值对。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于通过HazelCast实现基于内存的第一层存储服务;各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
在一个具体实施例中,工作节点利用Spark的执行者executor来实现,而一个executor进程中可以启动一个HazelCast节点。可见,在这种情况下,每个HazelCast节点是直接和Spark的executor在一个进程中,HazelCast的集群管理直接依托于spark,直接复用spark集群资源,任务退出之后,HazelCast的资源随之释放;HazelCast容错也依托于spark,单点故障之后,会在Spark重新启动的executor进程中,自动启动HazelCast节点,然后加入已有的HazelCast集群中,高效快捷。并且,executor和HazelCast在同一个进程中,这样一些操作可以充分利用本地化,减少网络传输。
在本发明的一个实施例中,上述服务器中,数据处理单元220,还适于基于LRU算法对第一层存储进行管理。LRU是一种较成熟的内存管理算法,在此不再详细介绍。容易理解,对于稀疏模型,部分特征对于的模型参数高频使用放在内存,而其他模型参数低频使用放在磁盘,对于稳定性和效率的提升相较于其他模型是更为显著的。
在本发明的一个实施例中,上述服务器中,基于第一层存储和第二层存储传输和存储的数据为二进制形式。这样提升了序列化及反序列化的性能。
在本发明的一个实施例中,上述服务器中,第一层存储中存储的数据为模型参数中的非零项。有些算法得到的模型稀疏度很高,例如基于FTRL算法的模型,训练过程中,只存储模型参数中的非零项,可以节省存储空间和传输速度。
在本发明的一个实施例中,上述服务器中,数据处理单元220,还适于通过布隆过滤器对频率低于预设阈值的特征进行过滤。过滤出现频率很低的特征,可以进一步减少模型的大小。
在本发明的一个实施例中,上述服务器中,数据处理单元220,适于根据各批拉取的模型参数自适应调整批尺寸。这样可以避免出现线程堵塞。
图3示出了根据本发明一个实施例的一种机器学习系统的结构示意图。如图3所示,机器学习系统300包括如上述任一实施例的机器学习参数服务器200、多个以分布式计算实现模型训练的工作节点310和用于存储训练数据的分布式存储系统320。
需要说明的是,本发明实施例中的机器学习参数服务器可以是采用多个分布式节点来实现的,并且两层存储可以分别进行管理,例如前面实施例示出的,由Spark对HazelCast进行管理。分布式存储系统中也可以包括多个存储节点。另外,在训练数据量较大的情况下,也支持用户对训练数据进行采样,提供训练的速度。
综上所述,本发明的技术方案,在接收到工作节点发送的数据查询请求后,先在第一层存储中进行查询,如果查到则返回相应的数据,如果查不到,再到第二层存储中进行查询。该技术方案通过两层存储的设置,提高了容错性,并且加快了查询速度,在保证稳定性的前提上也确保了训练效率,并且各部分可以在各类开源程序的基础上实现,充分应用了现有技术,并实现了创新。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的机器学习参数服务器和机器学习系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图4示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备包括处理器410和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器420。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码431的存储空间430。例如,用于存储计算机可读程序代码的存储空间430可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码431。计算机可读程序代码431可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图5所述的计算机可读存储介质。图5示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质500存储有用于执行根据本发明的方法步骤的计算机可读程序代码431,可以被电子设备400的处理器410读取,当计算机可读程序代码431由电子设备400运行时,导致该电子设备400执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码431可以执行上述任一实施例中示出的方法。计算机可读程序代码431可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1、一种机器学习参数服务器的实现方法,包括:
接收工作节点发送的数据查询请求;
在第一层存储中查询与所述数据查询请求对应的数据;
若查询成功,则将查询出的数据返回给所述工作节点;
若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中,以及将查询出的数据返回给所述工作节点。
A2、如A1所述的方法,其中,该方法还包括:
预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;
其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
A3、如A1所述的方法,其中,该方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;
所述在第二层存储中查询与所述数据查询请求对应的数据包括:通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
A4、如A1所述的方法,其中,该方法还包括:
根据工作节点上传的数据对第一层存储进行更新;
周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
A5、如A4所述的方法,其中,该方法还包括:
根据所述数据查询请求和/或所述持久化存储请求生成相应的读写任务;
将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
A6、如A4所述的方法,其中,该方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;
所述将相应周期内第一层存储中变化的值更新至第二层存储中包括:
通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
A7、如A6所述的方法,其中,所述通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu包括:
通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递所述键值对。
A8、如A1所述的方法,其中,该方法还包括:通过HazelCast实现基于内存的第一层存储服务;
各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
A9、如A1所述的方法,其中,该方法还包括:
基于LRU算法对所述第一层存储进行管理。
A10、如A1所述的方法,其中,基于所述第一层存储和第二层存储传输和存储的数据为二进制形式。
A11、如A1所述的方法,其中,所述第一层存储中存储的数据为模型参数中的非零项。
A12、如A1所述的方法,其中,该方法还包括:
通过布隆过滤器对频率低于预设阈值的特征进行过滤。
A13、如A1所述的方法,其中,该方法还包括:
根据各批拉取的模型参数自适应调整批尺寸。
本发明的实施例还公开了B14、一种机器学习参数服务器,包括:
通信单元,适于接收工作节点发送的数据查询请求;
数据处理单元,适于在第一层存储中查询与所述数据查询请求对应的数据;若查询成功,则将查询出的数据返回给所述工作节点;若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中;
所述通信单元,还适于以及将查询出的数据返回给所述工作节点。
B15、如B14所述的服务器,其中,
所述数据处理单元,适于预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
B16、如B14所述的服务器,其中,
所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
B17、如B14所述的服务器,其中,
所述数据处理单元,适于根据工作节点上传的数据对第一层存储进行更新;周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
B18、如B17所述的服务器,其中,
所述数据处理单元,适于根据所述数据查询请求和/或所述持久化存储请求生成相应的读写任务;将生成的读写任务放入读写任务队列,由与各模型分区对应的消费线程完成相应的读写任务。
B19、如B17所述的服务器,其中,
所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的save接口将相应周期内第一层存储中变化的键值对传递给Kudu,使Kudu根据接收到的键值对第二次存储进行更新。
B20、如B19所述的服务器,其中,
所述数据处理单元,适于通过HazelCast周期性调用storeAll函数,以通过storeAll函数调用Kudu的Update接口传递所述键值对。
B21、如B14所述的服务器,其中,
所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务;各工作节点和各HazelCast节点通过Spark进行管理并具备对应关系。
B22、如B14所述的服务器,其中,
所述数据处理单元,还适于基于LRU算法对所述第一层存储进行管理。
B23、如B14所述的服务器,其中,基于所述第一层存储和第二层存储传输和存储的数据为二进制形式。
B24、如B14所述的服务器,其中,所述第一层存储中存储的数据为模型参数中的非零项。
B25、如B14所述的服务器,其中,
所述数据处理单元,还适于通过布隆过滤器对频率低于预设阈值的特征进行过滤。
B26、如B14所述的服务器,其中,
所述数据处理单元,适于根据各批拉取的模型参数自适应调整批尺寸。
本发明的实施例还公开了C27、一种机器学习系统,包括如B14至B26中任一项所述的机器学习参数服务器、多个以分布式计算实现模型训练的工作节点和用于存储训练数据的分布式存储系统。
本发明的实施例还公开了D28、一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如A1-A13中任一项所述的方法。
本发明的实施例还公开了E29、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如A1-A13中任一项所述的方法。
Claims (10)
1.一种机器学习参数服务器的实现方法,包括:
接收工作节点发送的数据查询请求;
在第一层存储中查询与所述数据查询请求对应的数据;
若查询成功,则将查询出的数据返回给所述工作节点;
若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中,以及将查询出的数据返回给所述工作节点。
2.如权利要求1所述的方法,其中,该方法还包括:
预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;
其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
3.如权利要求1所述的方法,其中,该方法还包括:通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;
所述在第二层存储中查询与所述数据查询请求对应的数据包括:通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
4.如权利要求1所述的方法,其中,该方法还包括:
根据工作节点上传的数据对第一层存储进行更新;
周期性地生成持久化存储请求,将相应周期内第一层存储中变化的值更新至第二层存储中。
5.一种机器学习参数服务器,包括:
通信单元,适于接收工作节点发送的数据查询请求;
数据处理单元,适于在第一层存储中查询与所述数据查询请求对应的数据;若查询成功,则将查询出的数据返回给所述工作节点;若查询失败,则在第二层存储中查询与所述数据查询请求对应的数据,将查询出的数据保存在所述第一层存储中;
所述通信单元,还适于以及将查询出的数据返回给所述工作节点。
6.如权利要求5所述的服务器,其中,
所述数据处理单元,适于预先将与高频特征对应的模型参数保存至第一层存储中,或者,将全部模型参数保存至第一层存储中;其中,所述高频特征是根据对训练数据中各维度特征出现的次数进行统计确定的。
7.如权利要求5所述的服务器,其中,
所述数据处理单元,适于通过HazelCast实现基于内存的第一层存储服务,通过Kudu实现基于磁盘的第二层存储服务;通过HazelCast的load接口调用Kudu的scan接口,查询与所述数据查询请求对应的数据。
8.一种机器学习系统,包括如权利要求5至7中任一项所述的机器学习参数服务器、多个以分布式计算实现模型训练的工作节点和用于存储训练数据的分布式存储系统。
9.一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811563116.0A CN111352915A (zh) | 2018-12-20 | 2018-12-20 | 一种机器学习系统、一种机器学习参数服务器及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811563116.0A CN111352915A (zh) | 2018-12-20 | 2018-12-20 | 一种机器学习系统、一种机器学习参数服务器及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111352915A true CN111352915A (zh) | 2020-06-30 |
Family
ID=71193721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811563116.0A Pending CN111352915A (zh) | 2018-12-20 | 2018-12-20 | 一种机器学习系统、一种机器学习参数服务器及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352915A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306682A (zh) * | 2020-10-29 | 2021-02-02 | 第四范式(北京)技术有限公司 | 一种模型参数的存储方法和系统以及一种参数服务器集群 |
CN112906825A (zh) * | 2021-03-30 | 2021-06-04 | 第四范式(北京)技术有限公司 | 实现机器学习模型的分布式训练的方法和计算节点 |
CN112906309A (zh) * | 2021-03-30 | 2021-06-04 | 第四范式(北京)技术有限公司 | 机器学习模型的分布式训练方法、装置和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363182A (zh) * | 2014-11-04 | 2015-02-18 | 浪潮(北京)电子信息产业有限公司 | 一种基于双层缓存的负载均衡方法及系统 |
CN106934001A (zh) * | 2017-03-03 | 2017-07-07 | 广州天源迪科信息技术有限公司 | 分布式快速清单查询系统及方法 |
CN107766355A (zh) * | 2016-08-17 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 层级数据管理方法、层级数据管理系统及即时通信系统 |
-
2018
- 2018-12-20 CN CN201811563116.0A patent/CN111352915A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363182A (zh) * | 2014-11-04 | 2015-02-18 | 浪潮(北京)电子信息产业有限公司 | 一种基于双层缓存的负载均衡方法及系统 |
CN107766355A (zh) * | 2016-08-17 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 层级数据管理方法、层级数据管理系统及即时通信系统 |
CN106934001A (zh) * | 2017-03-03 | 2017-07-07 | 广州天源迪科信息技术有限公司 | 分布式快速清单查询系统及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306682A (zh) * | 2020-10-29 | 2021-02-02 | 第四范式(北京)技术有限公司 | 一种模型参数的存储方法和系统以及一种参数服务器集群 |
WO2022089560A1 (zh) * | 2020-10-29 | 2022-05-05 | 第四范式(北京)技术有限公司 | 一种模型参数的存储方法和系统以及一种参数服务器集群 |
CN112306682B (zh) * | 2020-10-29 | 2022-08-16 | 第四范式(北京)技术有限公司 | 一种模型参数的存储方法和系统以及一种参数服务器集群 |
CN112906825A (zh) * | 2021-03-30 | 2021-06-04 | 第四范式(北京)技术有限公司 | 实现机器学习模型的分布式训练的方法和计算节点 |
CN112906309A (zh) * | 2021-03-30 | 2021-06-04 | 第四范式(北京)技术有限公司 | 机器学习模型的分布式训练方法、装置和系统 |
CN112906309B (zh) * | 2021-03-30 | 2024-04-30 | 第四范式(北京)技术有限公司 | 机器学习模型的分布式训练方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475349B (zh) | 用于稳健的大规模机器学习的系统和方法 | |
CN106202112B (zh) | 缓存目录刷新方法和装置 | |
US9195599B2 (en) | Multi-level aggregation techniques for memory hierarchies | |
JP5990192B2 (ja) | データストアにおけるクエリーデータのフィルタリング | |
CN109240946A (zh) | 数据的多级缓存方法及终端设备 | |
CN111352915A (zh) | 一种机器学习系统、一种机器学习参数服务器及实现方法 | |
CN105302840B (zh) | 一种缓存管理方法与设备 | |
US9262476B2 (en) | System and method for batch query processing | |
US20080177690A1 (en) | Rules Engine for Enterprise System | |
US7461057B2 (en) | Query plan execution by implementation of plan operations forming a join graph | |
Rendle et al. | Robust large-scale machine learning in the cloud | |
CN106557436A (zh) | 终端的内存压缩功能使能方法及装置 | |
US10642528B1 (en) | System and method of backup grouping with improved computational efficiency | |
CN113227999A (zh) | 微服务数据聚合搜索引擎更新 | |
US9584379B2 (en) | Sorted event monitoring by context partition | |
US11269784B1 (en) | System and methods for efficient caching in a distributed environment | |
Wang et al. | Improved intermediate data management for mapreduce frameworks | |
CN116860798A (zh) | 数据查询方法、电子设备及计算机可读存储介质 | |
Yu et al. | Stateful large language model serving with pensieve | |
CN106934044B (zh) | 一种数据处理方法及装置 | |
CN113986962A (zh) | 排行榜生成方法、装置、设备及存储介质 | |
CN109635042B (zh) | Oltp与olap一体化的汽车金融大数据系统 | |
CN117539915B (zh) | 一种数据处理方法及相关装置 | |
CN115774736B (zh) | 一种数据延迟发送的numa架构时变图处理方法与装置 | |
US20230409573A1 (en) | Adaptive data prefetch |
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 |