logo好方法网

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


技术摘要:
提供一种用于执行机器学习的分布式系统及其方法。所述分布式系统包括:参数服务器,用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式,所述参数服务器按照单个键对应于多个值的形式来保存具有相同键的多个键值对;以及多个计算装置,被配置为并行地执  全部
背景技术:
随着数据规模的迅速增长,机器学习被广泛应用于各种领域以挖掘数据的价值。 然而,为了执行机器学习,一般物理机的内存已经远远不足,为此,实践中往往需要利用分 布式机器学习系统来完成机器学习模型的训练或相应的预估。在现有的分布式机器学习系 统中,通常由多个计算装置并行地执行关于同一机器学习模型的训练或预估,由参数服务 器来存储该机器学习模型的参数,并支持各个计算装置对该机器学习模型的参数的读写。 参数服务器具有支持海量维度、高并发度、负载均衡等优点,但也存在内存占用 大、运算量大、网络带宽占用大等缺点。通常一个参数服务器仅用于存储一个机器学习模型 的参数,如果想要同时进行关于多个机器学习模型的训练和/或预估,则需要参数服务器存 储多个机器学习模型的参数,那么存储开销也会呈线性增长。
技术实现要素:
本发明的示例性实施例在于提供一种用于执行机器学习的分布式系统及其方法, 以解决在同时执行多个机器学习模型的运算时参数服务器的存储开销过大的问题。 根据本发明的示例性实施例,提供一种用于执行机器学习的分布式系统,包括:参 数服务器,用于维护多个机器学习模型的参数,其中,所述参数具有键值对的形式,所述参 数服务器按照单个键对应于多个值的形式来保存具有相同键的多个键值对;以及多个计算 装置,被配置为并行地执行关于所述多个机器学习模型的算法,其中,所述算法为关于机器 学习模型的训练算法或关于机器学习模型的预估算法,其中,所述参数服务器将计算装置 为了执行关于机器学习模型的训练算法而需要读取的参数提供给所述计算装置,以使所述 计算装置利用读取的参数来执行所述训练算法,并且,所述参数服务器根据所述计算装置 执行所述训练算法的结果来更新所述机器学习模型的参数;并且/或者,所述参数服务器将 计算装置为了执行关于机器学习模型的预估算法而需要读取的参数提供给所述计算装置, 以使所述计算装置利用读取的参数来执行所述预估算法。 可选地,所述参数服务器包括至少一个服务器端和多个客户端,其中,客户端与计 算装置一一对应,并且,对应的客户端和计算装置集成为一体,其中,所述至少一个服务器 端用于保存所述多个机器学习模型的参数;每个客户端用于与一个或多个服务器端之间传 送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客 户端对应的计算装置被配置为执行关于所述至少一个机器学习模型的算法,其中,在所述 4 CN 111597187 A 说 明 书 2/9 页 参数操作指令中,相同键被压缩和/或合并。 可选地,所述参数服务器使用映射数据结构来存储键值对。 可选地,所述参数服务器按照数据分片来存储键值对。 可选地,服务器端、客户端与计算装置一一对应,并且,对应的服务器端、客户端和 计算装置集成为一体。 可选地,相同键通过分桶方式或排序方式被合并。 可选地,客户端与对应的计算装置之间针对每个算法,采用单独的句柄来进行交 互。 根据本发明的另一示例性实施例,提供一种利用分布式系统来执行机器学习的方 法,其中,所述分布式系统中的参数服务器用于维护多个机器学习模型的参数,其中,所述 参数具有键值对的形式;所述分布式系统中的多个计算装置被配置为并行地执行关于所述 多个机器学习模型的算法,其中,所述算法为关于机器学习模型的训练算法或关于机器学 习模型的预估算法,所述方法包括:所述参数服务器将计算装置为了执行关于机器学习模 型的训练算法而需要读取的参数提供给所述计算装置,所述计算装置利用读取的参数来执 行所述训练算法,所述参数服务器根据所述计算装置执行所述训练算法的结果来更新所述 机器学习模型的参数;并且/或者,所述参数服务器将计算装置为了执行关于机器学习模型 的预估算法而需要读取的参数提供给所述计算装置,所述计算装置利用读取的参数来执行 所述预估算法,其中,所述参数服务器按照单个键对应于多个值的形式来保存具有相同键 的多个键值对。 可选地,所述参数服务器包括至少一个服务器端和多个客户端,其中,客户端与计 算装置一一对应,并且,对应的客户端和计算装置集成为一体,其中,所述至少一个服务器 端用于保存所述多个机器学习模型的参数;每个客户端用于与一个或多个服务器端之间传 送关于至少一个机器学习模型的算法所涉及的参数的参数操作指令,其中,与所述每个客 户端对应的计算装置被配置为执行关于所述至少一个机器学习模型的算法,其中,在所述 参数操作指令中,相同键被压缩和/或合并。 可选地,所述参数服务器使用映射数据结构来存储键值对。 可选地,所述参数服务器按照数据分片来存储键值对。 可选地,服务器端、客户端与计算装置一一对应,并且,对应的服务器端、客户端和 计算装置集成为一体。 可选地,相同键通过分桶方式或排序方式被合并。 可选地,客户端与对应的计算装置之间针对每个算法,采用单独的句柄来进行交 互。 在根据本发明示例性实施例的用于执行机器学习的分布式系统及其方法中,通过 参数服务器来维护多个机器学习模型的参数,并且,参数服务器按照单个键对应于多个值 的形式来保存具有相同键的多个键值对,从而能够有效减少在同时进行关于多个机器学习 模型的训练和/或预估时参数服务器的存储开销。进一步地,还能够有效减少参数服务器的 运算量和网络传输开销。 将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部 分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。 5 CN 111597187 A 说 明 书 3/9 页 附图说明 通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上 述和其他目的和特点将会变得更加清楚,其中: 图1示出根据本发明示例性实施例的用于执行机器学习的分布式系统的框图; 图2示出根据本发明示例性实施例的保存机器学习模型的参数的示例; 图3示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框 图; 图4示出根据本发明的另一示例性实施例的用于执行机器学习的分布式系统的框 图; 图5示出根据本发明示例性实施例的客户端与关于机器学习模型的算法交互的示 例; 图6示出根据本发明示例性实施例的利用分布式系统来执行机器学习的方法的流 程图; 图7示出根据本发明的另一示例性实施例的利用分布式系统来执行机器学习的方 法的流程图; 图8示出根据本发明示例性实施例的客户端向服务器端请求计算装置为了执行关 于机器学习模型的算法而需要读取的参数的方法的流程图; 图9示出根据本发明示例性实施例的客户端从服务器端获取计算装置需要读取的 参数的方法的流程图。
下载此资料需消耗2积分,
分享到:
收藏