用于执行机器学习的分布式系统及其方法与流程

文档序号:22041877发布日期:2020-08-28 18:13阅读:130来源:国知局
用于执行机器学习的分布式系统及其方法与流程

本申请是申请日为2017年8月30日、申请号为201710762586.9、题为“用于执行机器学习的分布式系统及其方法”的专利申请的分案申请。

本发明的示例性实施例总体说来涉及人工智能领域,更具体地讲,涉及一种用于执行机器学习的分布式系统以及利用所述分布式系统来执行机器学习的方法。



背景技术:

随着数据规模的迅速增长,机器学习被广泛应用于各种领域以挖掘数据的价值。然而,为了执行机器学习,一般物理机的内存已经远远不足,为此,实践中往往需要利用分布式机器学习系统来完成机器学习模型的训练或相应的预估。在现有的分布式机器学习系统中,通常由多个计算装置并行地执行关于同一机器学习模型的训练或预估,由参数服务器来存储该机器学习模型的参数,并支持各个计算装置对该机器学习模型的参数的读写。

参数服务器具有支持海量维度、高并发度、负载均衡等优点,但也存在内存占用大、运算量大、网络带宽占用大等缺点。通常一个参数服务器仅用于存储一个机器学习模型的参数,如果想要同时进行关于多个机器学习模型的训练和/或预估,则需要参数服务器存储多个机器学习模型的参数,那么存储开销也会呈线性增长。



技术实现要素:

本发明的示例性实施例在于提供一种用于执行机器学习的分布式系统及其方法,以解决在同时执行多个机器学习模型的运算时参数服务器的存储开销过大的问题。

根据本发明的示例性实施例,提供一种用于执行机器学习的分布式系统,包括:参数服务器,用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式,所述参数服务器按照单个键对应于多个值的形式来保存具有相同键的多个键值对;以及多个计算装置,被配置为并行地执行关于所述多个机器学习模型的算法,其中,所述算法为关于机器学习模型的训练算法或关于机器学习模型的预估算法,其中,所述参数服务器将计算装置为了执行关于机器学习模型的训练算法而需要读取的参数提供给所述计算装置,以使所述计算装置利用读取的参数来执行所述训练算法,并且,所述参数服务器根据所述计算装置执行所述训练算法的结果来更新所述机器学习模型的参数;并且/或者,所述参数服务器将计算装置为了执行关于机器学习模型的预估算法而需要读取的参数提供给所述计算装置,以使所述计算装置利用读取的参数来执行所述预估算法。

可选地,所述参数服务器包括至少一个服务器端和多个客户端,其中,客户端与计算装置一一对应,并且,对应的客户端和计算装置集成为一体,其中,所述至少一个服务器端用于保存所述多个机器学习模型的参数;每个客户端用于与一个或多个服务器端之间传送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客户端对应的计算装置被配置为执行关于所述至少一个机器学习模型的算法,其中,在所述参数操作指令中,相同键被压缩和/或合并。

可选地,所述参数服务器使用映射数据结构来存储键值对。

可选地,所述参数服务器按照数据分片来存储键值对。

可选地,服务器端、客户端与计算装置一一对应,并且,对应的服务器端、客户端和计算装置集成为一体。

可选地,相同键通过分桶方式或排序方式被合并。

可选地,客户端与对应的计算装置之间针对每个算法,采用单独的句柄来进行交互。

根据本发明的另一示例性实施例,提供一种利用分布式系统来执行机器学习的方法,其中,所述分布式系统中的参数服务器用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式;所述分布式系统中的多个计算装置被配置为并行地执行关于所述多个机器学习模型的算法,其中,所述算法为关于机器学习模型的训练算法或关于机器学习模型的预估算法,所述方法包括:所述参数服务器将计算装置为了执行关于机器学习模型的训练算法而需要读取的参数提供给所述计算装置,所述计算装置利用读取的参数来执行所述训练算法,所述参数服务器根据所述计算装置执行所述训练算法的结果来更新所述机器学习模型的参数;并且/或者,所述参数服务器将计算装置为了执行关于机器学习模型的预估算法而需要读取的参数提供给所述计算装置,所述计算装置利用读取的参数来执行所述预估算法,其中,所述参数服务器按照单个键对应于多个值的形式来保存具有相同键的多个键值对。

可选地,所述参数服务器包括至少一个服务器端和多个客户端,其中,客户端与计算装置一一对应,并且,对应的客户端和计算装置集成为一体,其中,所述至少一个服务器端用于保存所述多个机器学习模型的参数;每个客户端用于与一个或多个服务器端之间传送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客户端对应的计算装置被配置为执行关于所述至少一个机器学习模型的算法,其中,在所述参数操作指令中,相同键被压缩和/或合并。

可选地,所述参数服务器使用映射数据结构来存储键值对。

可选地,所述参数服务器按照数据分片来存储键值对。

可选地,服务器端、客户端与计算装置一一对应,并且,对应的服务器端、客户端和计算装置集成为一体。

可选地,相同键通过分桶方式或排序方式被合并。

可选地,客户端与对应的计算装置之间针对每个算法,采用单独的句柄来进行交互。

在根据本发明示例性实施例的用于执行机器学习的分布式系统及其方法中,通过参数服务器来维护多个机器学习模型的参数,并且,参数服务器按照单个键对应于多个值的形式来保存具有相同键的多个键值对,从而能够有效减少在同时进行关于多个机器学习模型的训练和/或预估时参数服务器的存储开销。进一步地,还能够有效减少参数服务器的运算量和网络传输开销。

将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。

附图说明

通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:

图1示出根据本发明示例性实施例的用于执行机器学习的分布式系统的框图;

图2示出根据本发明示例性实施例的保存机器学习模型的参数的示例;

图3示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框图;

图4示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框图;

图5示出根据本发明示例性实施例的客户端与关于机器学习模型的算法交互的示例;

图6示出根据本发明示例性实施例的利用分布式系统来执行机器学习的方法的流程图;

图7示出根据本发明的另一示例性实施例的利用分布式系统来执行机器学习的方法的流程图;

图8示出根据本发明示例性实施例的客户端向服务器端请求计算装置为了执行关于机器学习模型的算法而需要读取的参数的方法的流程图;

图9示出根据本发明示例性实施例的客户端从服务器端获取计算装置需要读取的参数的方法的流程图。

具体实施方式

现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。

本发明的示例性实施例所涉及的用于执行机器学习的分布式系统可由参数服务器和多个计算装置组成,其中,参数服务器通过与各个计算装置进行交互来维护多个机器学习模型的参数,多个计算装置并行地进行关于所述多个机器学习模型的训练和/或预估。应注意,这里所说的计算装置和/或参数服务器均由其所执行的处理或所实现的功能来限定,既可指示物理实体,也可指示虚拟实体,例如,计算装置可指示实际的计算机器,也可指示部署在该计算机器上的逻辑实体,同样,参数服务器既可指示实际的计算机器,也可作为一个或多个逻辑实体而与计算装置部署在同样和/或不同的计算机器上。

图1示出根据本发明示例性实施例的用于执行机器学习的分布式系统的框图。参照图1,根据本发明示例性实施例的用于执行机器学习的分布式系统可包括:参数服务器1000和多个计算装置2000(例如,2000-1、2000-2、…、2000-n(其中,n为大于1的整数))。

具体说来,参数服务器1000用于维护多个机器学习模型的参数,其中,所述参数具有键值对(key-value)的形式。这里,机器学习模型可看作关于机器学习样本特征的函数,可通过针对全部机器学习样本不断地迭代训练,逐渐收敛到该函数的参数最优解,相应地,一个key-value中的key可对应于一个特征的标识,value可对应于该函数的参数之中与该特征相关的参数的值。

多个计算装置2000被配置为并行地执行关于所述多个机器学习模型的算法,其中,所述算法为关于机器学习模型的训练算法或关于机器学习模型的预估算法。具体说来,参数服务器1000将计算装置2000为了执行关于机器学习模型的训练算法而需要读取的参数提供给计算装置2000,以使计算装置2000利用读取的参数来执行所述关于机器学习模型的训练算法,并且,参数服务器1000根据计算装置2000执行所述关于机器学习模型的训练算法的结果来更新所述机器学习模型的参数;并且/或者,参数服务器1000将计算装置2000为了执行关于机器学习模型的预估算法而需要读取的参数提供给计算装置2000,以使计算装置2000利用读取的参数来执行所述关于机器学习模型的预估算法。

应注意,各个计算装置2000可执行至少一个关于机器学习模型的算法。作为示例,不同计算装置2000可针对各自的数据记录(这里,不同计算装置2000所针对的数据记录各不相同)执行相同的关于机器学习模型的算法(也即,关于同一机器学习模型的训练算法或关于同一机器学习模型的预估算法);不同计算装置2000也可执行不同的关于机器学习模型的算法。

作为示例,参数服务器1000可按照单个键对应于多个值的形式来保存具有相同键的多个键值对。具体说来,每一个机器学习模型会对应一套键值对,在这套键值对中,不同键值对的键各不相同,每个键对应各自的值,参数服务器1000在保存多个机器学习模型的参数时,将具有相同键的对应于不同机器学习模型的键值对合并保存为单个键对应于多个值的形式,从而避免了在同时存储多个机器学习模型的参数时存储开销呈线性增长。如图2所示,机器学习模型a对应一套键值对,其中至少包括键k1、k2、k3、…、km,分别对应值v11、v12、v13、…、v1m;机器学习模型b对应另一套键值对,其中至少包括键k1、k2、k3、…、km,分别对应值v21、v22、v23、…、v2m,其中,m为大于1的整数,可以看出,两套键值对之中的至少一部分键值对具有完全相同的键,因此,根据本发明的示例性实施例,参数服务器1000可按照单个键对应于多个值的形式来保存具有相同键的所述至少一部分键值对,例如,保存为键k1对应于值v11和v21两者的形式。

作为示例,参数服务器1000可部署在单个计算机器上;或者,参数服务器1000可同时部署在多个计算机器上。

图3示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框图。如图3所示,参数服务器1000可具有分布式结构,其中,在所述分布式结构下,参数服务器1000可包括至少一个服务器端1001(图3中仅示出包括一个服务器端1001的情况)和多个客户端1002(例如,1002-1、1002-2、…、1002-n),其中,客户端1002与计算装置2000一一对应,并且,对应的客户端1002和计算装置2000集成为一体。具体说来,对应的客户端1002-1和计算装置2000-1可集成在相同的虚拟机或物理机上,对应的客户端1002-2和计算装置2000-2可集成在相同的虚拟机或物理机上,以此类推,对应的客户端1002-n和计算装置2000-n可集成在相同的虚拟机或物理机上。

所述至少一个服务器端1001用于保存所述多个机器学习模型的参数。具体地,当存在单个服务器端1001时,该服务器端1001保存所述多个机器学习模型的参数;当存在多个服务器端1001时,每个服务器端1001分别保存所述多个机器学习模型的参数的一部分,并且,不同服务器端1001保存的参数无交集。作为示例,当存在多个服务器端1001时,可将键相同的键值对保存在同一参数服务器端1001中,以使服务器端1001能够按照单个键对应于多个值的形式来保存具有相同键的多个键值对。

每个客户端1002用于与一个或多个服务器端1001之间传送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客户端1002对应的计算装置2000被配置为执行所述关于至少一个机器学习模型的算法。作为优选示例,在所述参数操作指令中,相同键可被压缩和/或合并,避免了相同键的重复传输,从而能够有效减少客户端1002与服务器端1001之间传送参数操作指令的网络开销。进一步地,当服务器端1001按照单个键对应于多个值的形式来保存具有相同键的多个键值对时,还能够避免在接收到参数操作指令之后重复查找相同键,从而有效减少服务器端1001在接收到参数操作指令之后查找所涉及的参数的运算量。

作为示例,参数操作指令中的相同键,可通过分桶方式或排序方式被合并。应该理解,参数操作指令中的相同键也可通过其他方式被合并,本发明对此不作限制。

作为示例,参数操作指令中的相同键可被直接压缩。作为另一示例,在客户端1002与服务器端1001之间传送的参数操作指令也可以是压缩形式的参数操作指令,从而实现参数操作指令中的相同键被压缩。压缩算法能够隐式地合并相同数据,例如,可使用snappy压缩算法、lz4压缩算法等各种适合的压缩算法。

此外,作为示例,参数操作指令中的相同键可先被合并,然后相同键被合并的参数操作指令可再被压缩,从而实现参数操作指令中的相同键被合并和压缩。

作为示例,每个客户端1002可从对应的计算装置2000接收所述关于至少一个机器学习模型的算法所涉及的参数的参数操作请求,针对保存所述参数的一个或多个服务器端1001分别生成与所述参数操作请求相应的参数操作指令,并将生成的参数操作指令分别传送到所述一个或多个服务器端1001。

进一步地,作为示例,每个客户端1002从所述一个或多个服务器端1001接收与所述参数的参数操作结果相应的参数操作指令,基于接收到的参数操作指令生成与所述参数操作请求之中的每一个对应的参数操作结果,并将生成的参数操作结果传送到对应的计算装置2000。

作为示例,所述参数操作请求可包括拉取(pull)操作请求和/或推送(push)操作请求。具体说来,pull操作请求用于请求读取机器学习模型的参数,例如,pull操作请求中可指定请求读取的机器学习模型及请求读取的参数的key。相应地,与pull操作请求对应的参数操作结果为请求读取的参数的具体内容。push操作请求用于请求更新机器学习模型的参数,例如,push操作请求可指定请求更新的机器学习模型、请求更新的参数的key、以及对与key对应的value的具体更新操作。相应地,与push操作请求对应的参数操作结果是参数服务器已完成更新操作的通知。

作为示例,参数服务器1000所包括的全部或部分服务器端1001之中的每一个可和对应的一个计算装置2000集成为一体。图4示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框图。如图4所示,服务器端1001、客户端1002与计算装置2000可一一对应,并且,对应的服务器端1001、客户端1002和计算装置2000可集成为一体。具体说来,对应的服务器端1001-1、客户端1002-1和计算装置2000-1可集成在相同的虚拟机或物理机上,对应的服务器端1002-1、客户端1002-2和计算装置2000-2可集成在相同的虚拟机或物理机上,以此类推,对应的服务器端1001-n、客户端1002-n和计算装置2000-n可集成在相同的虚拟机或物理机上。

应注意:在根据本发明的另一示例性实施例的用于执行机器学习的分布式系统中,每个计算装置2000为了执行关于机器学习模型的算法,可在本地使用与其集成为一体的对应的客户端1001所保存的参数,也可在需要使用其他客户端1001所维护的参数时,与所述其他客户端1001进行交互以得到执行关于机器学习模型的算法所需的参数。

作为示例,参数服务器1000可使用映射(map)数据结构来存储键值对。作为示例,当参数服务器1000包括至少一个服务器端1001和多个客户端1002时,每个服务器端1001可使用映射(map)数据结构来存储键值对。

作为示例,参数服务器1000可按照数据分片(shard)来存储键值对,从而提高参数服务器1000对参数进行读写操作的效率。作为示例,当参数服务器1000包括至少一个服务器端1001和多个客户端1002时,每个服务器端1001可按照数据分片来存储键值对。此外,作为示例,可针对每一个数据分片内的键值对,使用映射数据结构来进行存储。

作为示例,客户端1002与对应的计算装置2000之间针对每个算法,可采用单独的句柄(handler)来进行交互。参照图5,计算装置2000所执行的关于机器学习模型的算法可不与对应的客户端1002直接进行交互,每个算法可通过一个单独的句柄与对应的客户端1002进行交互,例如,每个算法可通过对应的句柄向客户端1002发送pull操作请求、push操作请求、wait操作请求等参数操作请求,客户端1002也将与参数操作请求对应的参数操作结果发送到对应的句柄,算法可从句柄获知参数操作结果。由于关于机器学习模型的算法只需和句柄交互,因此,对于所述分布式系统的使用而言:同一计算装置2000执行的关于机器学习模型的算法彼此之间相对独立执行、并无影响,是纯透明的。

图6示出根据本发明示例性实施例的利用分布式系统来执行机器学习的方法的流程图。所述方法涉及的步骤可由之前描述的分布式系统中的计算装置和/或参数服务器(例如,参数服务器1000;或者,服务器端1001和客户端1002)来执行,例如,可由计算装置和/或参数服务器根据预先设定的配置来执行,其中,所述分布式系统中的参数服务器用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式;所述分布式系统中的多个计算装置被配置为并行地执行关于所述多个机器学习模型的训练算法。

参照图6,在步骤s100中,参数服务器将计算装置为了执行关于机器学习模型的训练算法而需要读取的参数提供给所述计算装置。

在步骤s200中,所述计算装置利用读取的参数来执行所述训练算法。

在步骤s300中,所述参数服务器根据所述计算装置执行所述训练算法的结果来更新所述机器学习模型的参数。

作为示例,所述参数服务器可按照单个键对应于多个值的形式来保存具有相同键的多个键值对。

本领域技术人员应该理解,在针对机器学习样本对机器学习模型进行训练的过程中,计算装置需要从本地或外部获取作为机器学习样本的数据记录。此外,在针对大量机器学习样本对机器学习模型进行训练的过程中,往往需要多次重复执行步骤s100-s300。步骤s100到s300所涉及的操作已经参照图1到图5进行了详细描述,这里将不再赘述相关细节。

图7示出根据本发明的另一示例性实施例的利用分布式系统来执行机器学习的方法的流程图。所述方法涉及的步骤可由之前描述的分布式系统中的计算装置和/或参数服务器(例如,参数服务器1000;或者,服务器端1001和客户端1002)来执行,例如,可由计算装置和/或参数服务器根据预先设定的配置来执行,其中,所述分布式系统中的参数服务器用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式;所述分布式系统中的多个计算装置被配置为并行地执行关于所述多个机器学习模型的预估算法。

参照图7,在步骤s110中,参数服务器将计算装置为了执行关于机器学习模型的预估算法而需要读取的参数提供给所述计算装置。

在步骤s210中,所述计算装置利用读取的参数来执行所述预估算法。

作为示例,所述参数服务器可按照单个键对应于多个值的形式来保存具有相同键的多个键值对。

本领域技术人员应该理解,在针对数据记录执行机器学习模型的预估(或测试)的过程中,需要从本地或外部获取用于预估的数据记录。此外,在针对大量数据记录执行机器学习模型的预估的过程中,往往需要多次重复执行步骤s110和s210。步骤s110和s210所涉及的操作已经参照图1到图5进行了详细描述,这里将不再赘述相关细节。

此外,应该理解,图6和图7示出的根据本发明示例性实施例的利用分布式系统来执行机器学习的方法可以同时执行。

图8示出根据本发明示例性实施例的客户端向服务器端请求计算装置为了执行关于机器学习模型的算法而需要读取的参数的方法的流程图。所述方法可在步骤s100和/或步骤s110之前来执行。

这里,参数服务器可包括至少一个服务器端和多个客户端,其中,客户端与计算装置一一对应,并且,对应的客户端和计算装置集成为一体,其中,所述至少一个服务器端用于保存所述多个机器学习模型的参数;每个客户端用于与一个或多个服务器端之间传送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客户端对应的计算装置被配置为执行所述关于至少一个机器学习模型的算法。

参照图8,在步骤s400中,每个客户端从对应的计算装置接收所述关于至少一个机器学习模型的算法所涉及的参数的参数操作请求。

根据本发明的示例性实施例,每个计算装置在执行机器学习算法的过程中会向其对应的客户端请求获取和/或更新算法参数,这里,所述参数会分布地保存在一个或多个服务器端。为此,客户端在接收到任何参数操作请求之后,会将其拆分为与各个服务器端对应的参数操作请求部分,并将拆分后的各个部分保存在相应的队列中。例如,可针对每一个服务器端设置相应的队列。

在步骤s500中,针对保存所述参数的一个或多个服务器端分别生成与所述参数操作请求相应的参数操作指令。

作为示例,客户端每次生成参数操作指令所基于的参数操作请求可以是队列中缓存的各个部分,即,从该客户端上一次生成参数操作指令之后,到本次生成参数操作指令之前,从对应的计算装置接收到的针对相应服务器端的至少一个参数操作请求部分。作为示例,可每隔预定时间段执行一次生成参数操作指令的操作;也可每接收到预定数量的参数操作请求执行一次生成参数操作指令的操作。此外,作为示例,也可根据网络状况和/或服务器端的运行状态来确定每次执行生成参数操作指令的操作的时机。应该理解,也可根据其他预定策略来确定每次执行生成参数操作指令的操作的时机。

由于基于各个队列来分别生成与各个服务器端对应的参数操作指令,因此,考虑到每个队列中缓存有与至少一个机器学习算法相关的参数操作请求,相应生成的参数操作指令可基于相同或不同类型的参数操作请求,这些参数操作请求可针对相同或不同的机器学习算法。相应地,作为示例,在生成的参数操作指令中,相同键可被压缩和/或合并。

在步骤s600中,将生成的参数操作指令分别传送到所述一个或多个服务器端。

图9示出根据本发明示例性实施例的客户端从服务器端获取计算装置需要读取的参数的方法的流程图。作为示例,该方法可对应于步骤s100和/或步骤s110,在步骤s600之后被相应执行。具体说来,所述一个或多个服务器端在接收到所述每个客户端在步骤s600传送的参数操作指令之后,响应于接收到的参数操作指令对所述参数执行相应的操作,并返回与所述参数的参数操作结果相应的参数操作指令,其中,在返回的参数操作指令中,相同键可被压缩和/或合并。

参照图9,在步骤s111中,所述每个客户端从所述一个或多个服务器端接收与所述参数的参数操作结果相应的参数操作指令。

在步骤s112中,基于接收到的参数操作指令生成与所述参数操作请求之中的每一个对应的参数操作结果。

在步骤s113中,将生成的参数操作结果传送到对应的计算装置。

例如,客户端可从对应的计算装置接收关于算法a的pull操作请求1(所涉及的参数的键为k1-k100)和关于算法b的push操作请求2(所涉及的参数的键为k20-k80),其中,键为k1-k50的参数保存在服务器端1001-1,键为k51-k100的参数保存在服务器端1001-2,根据本发明的示例性实施例,在按照预定策略将针对上述两个参数操作请求来生成参数操作指令的情况下,客户端1002可先根据pull操作请求1和push操作请求2所涉及的参数确定服务器端1001-1和服务器端1001-2,然后针对服务器端1001-1生成与pull操作请求1和push操作请求2相应的关于键为k1-k50的参数的参数操作指令c(这里,参数操作指令c可指示对算法a对应的机器学习模型的键为k1-k50的参数执行pull操作,对算法b对应的机器学习模型的键为k20-k50的参数执行push操作),并且,在该参数操作指令中,相同键k20-k50被合并和/或压缩;相应地,针对服务器端1001-2生成与pull操作请求1和push操作请求2相应的关于键为k51-k100的参数的参数操作指令d(这里,参数操作指令d可指示对算法a对应的机器学习模型的键为k51-k100的参数执行pull操作,对算法b对应的机器学习模型的键为k51-k80的参数执行push操作),并且,在该参数操作指令中,相同键k51-k80被合并和/或压缩。服务器端1001-1和服务器端1001-2分别响应于接收到的参数操作指令c和d对相应的参数执行相应的操作,并返回参数操作指令c’(这里,参数操作指令c’可指示针对算法a对应的机器学习模型的键为k1-k50的参数的pull操作结果,针对算法b对应的机器学习模型的键为k20-k50的参数的push操作结果)和参数操作指令d’(这里,参数操作指令d’可指示针对算法a对应的机器学习模型的键为k51-k100的参数的pull操作结果,针对算法b对应的机器学习模型的键为k51-k80的参数的push操作结果),其中,在参数操作指令c’和d’中,相同键被合并和/或压缩。客户端基于接收到的参数操作指令c’和d’分别生成与pull操作请求1和push操作请求2相应的参数操作结果1’(即,针对算法a对应的机器学习模型的键为k1-k100的参数的pull操作结果)和2’(即,针对算法b对应的机器学习模型的键为k20-k80的参数的push操作结果)。这里,应注意,参与合并的参数操作请求不仅可来自不同的算法,而且可来自相同的算法。此外,在每个参数操作请求内部,也可进行相同键的合并和/或压缩。

根据本发明示例性实施例的用于执行机器学习的分布式系统及其方法能够有效减少在同时进行关于多个机器学习模型的训练和/或预估时参数服务器的存储开销。进一步地,还能够有效减少参数服务器的运算量和网络传输开销。

根据本发明示例性实施例的用于执行机器学习的分布式系统及其方法尤其适用于模型参数调优、多用户共享集群执行机器学习任务等同时训练的多个机器学习模型的参数之间存在至少部分重叠的key的情况。

应理解,根据本发明示例性实施例的分布式系统中的参数服务器、计算装置或组成它们的装置或单元等组成部分可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些组成部分可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。当它们以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。此外,这些组成部分所实现的一个或多个功能也可由物理实体设备(例如,计算机器等)中的组件来统一执行。

应注意,根据本发明示例性实施例的分布式系统可完全依赖计算机程序的运行来实现相应的功能,即,各个组成部分在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。

虽然已表示和描述了本发明的一些示例性实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1