CN108009642A - 分布式机器学习方法和系统 - Google Patents
分布式机器学习方法和系统 Download PDFInfo
- Publication number
- CN108009642A CN108009642A CN201610968121.4A CN201610968121A CN108009642A CN 108009642 A CN108009642 A CN 108009642A CN 201610968121 A CN201610968121 A CN 201610968121A CN 108009642 A CN108009642 A CN 108009642A
- Authority
- CN
- China
- Prior art keywords
- parameter
- current
- global
- global parameter
- wheel number
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/043—Distributed expert systems; Blackboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种分布式机器学习方法,包括:接收当前计算节点的全局参数获取指令;判断当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内;若是,将全局参数发送给当前计算节点;接收当前计算节点根据全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数及更新参数对全局参数进行更新得到更新的全局参数进行存储,本申请进一步提供一种分布式机器学习系统。不同计算节点之间的速度差异限制在预设范围内,形成有限异步并行协议的分布式机器学习,避免了单点瓶颈,减小不同计算节点产生的更新对全局参数的扰动的影响,确保收敛稳定。
Description
技术领域
本发明涉及分布式计算和机器学习交叉技术领域,特别是涉及一种适合分布式机器学习的参数同步优化方法和系统。
背景技术
随着大数据时代的到来,机器学习算法尤其是适用于大规模数据的深度学习算法正得到越来越广泛的关注和应用,包括图像识别、推荐以及用户行为预测等。然而,随着输入训练数据(机器学习中用于求解神经网络模型的数据)和神经网络模型的增大,单节点进行机器学习训练存在内存限制以及数周甚至数月的训练耗时等问题,分布式机器学习应运而生。
已知的分布式机器学习包括基于同步并行协议的分布式机器学习和基于异步并行协议的分布式机器学习。典型的分布式机器学习系统包括参数服务器和计算节点。其中,基于同步并行协议的分布式机器学习是指在一个分布式机器学习任务中,所有的计算节点完成相同轮数的迭代后将参数更新发送给参数服务器,参数服务器根据所有计算节点的参数更新得到新的全局参数,并将新的全局参数广播给所有计算节点,计算节点接受到新的全局参数后才能开始下一轮迭代。基于异步并行协议的分布式机器学习是指在一个分布式机器学习任务中,每个计算节点在完成一轮迭代后将参数更新发送给参数服务器,参数服务器直接根据该参数更新得到新的全局参数,该计算节点直接从参数服务器获取更新的全局参数开始下一轮迭代而不需要等待其它计算节点。
然而以上分布式机器学习存在以下缺陷:
同步并行协议的分布式机器学习中参数服务器只能是一个物理服务器,在模型参数很大时会成为单点瓶颈,在工业界的分布式环境中,因为计算节点的性能差异和网络延迟,部分计算节点的速度会明显比其它计算节点慢,从而整个系统的速度会被最慢的计算节点所限制。异步并行协议的分布式机器学习中因为允许不同计算节点之间存在速度差别,参数服务器的全局参数和计算节点的参数副本之间会存在不一致性,不同计算节点用不一致的参数副本计算出的更新会扰乱全局参数,造成学习模型全局收敛的不稳定。
发明内容
基于此,有必要提供一种无单点瓶颈、收敛稳定的分布式机器学习方法和系统。
一种分布式机器学习方法,包括:
接收当前计算节点的全局参数获取指令;
判断所述当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内;
若是,将全局参数发送给所述当前计算节点;
接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收所述更新参数的时间戳与全局参数时间戳计算延迟参数,根据所述延迟参数及所述更新参数对所述全局参数进行更新得到更新的全局参数进行存储。
一种分布式机器学习系统,包括:
指令接收模块,用于接收当前计算节点的全局参数获取指令;
判断模块,用于判断所述当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内;
全局参数发送模块,当当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值在预设范围内时,将全局参数发送给所述当前计算节点;
更新模块,用于接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收所述更新参数的时间戳与全局参数时间戳计算延迟参数,根据所述延迟参数及所述更新参数对所述全局参数进行更新得到更新的全局参数进行存储。
一种分布式机器学习方法,包括:
向参数服务器发送全局参数获取指令;
接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数;
根据所述全局参数执行当前的迭代轮数的迭代学习得到更新参数;
将所述更新参数发送至参数服务器。
一种分布式机器学习系统,包括:
指令发送模块,用于向参数服务器发送全局参数获取指令;
全局参数接收模块,用于接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数;
学习模块,用于根据所述全局参数执行当前的迭代轮数的迭代学习得到更新参数;
更新参数发送模块,用于将所述更新参数发送至参数服务器。
上述分布式机器学习方法和系统,各个计算节点用分配的数据子集执行并行随机梯度下降算法迭代地学习训练机器学习模型,利用并行加速算法模型训练,避免了单点瓶颈,以保证能够处理TB级及以上的数据量,计算节点在开始每轮迭代之前向参数服务器获取最新的全局参数,接收参数服务器在判断当前计算节点的迭代速度符合预设范围内所发送的全局参数才开始本轮的迭代学习,从而不同计算节点之间的速度差异限制在预设范围内,形成有限异步并行协议的分布式机器学习,以减小不同计算节点产生的更新对全局参数的扰动的影响,确保收敛稳定。
附图说明
图1为一实施例中分布式机器学习方法的系统架构图;
图2为一实施例中参数服务器的内部结构示意图;
图3为一实施例中分布式机器学习方法的流程图;
图4为另一实施例中分布式机器学习方法的流程图;
图5为一实施例中分布式机器学习系统的结构示意图;
图6为另一实施例中分布式机器学习系统的结构示意图;
图7为一实施例中计算节点的内部结构示意图;
图8为另一实施例中分布式机器学习方法的流程图;
图9为又一实施例中分布式机器学习方法的流程图;
图10为另一实施例中分布式机器学习系统的结构示意图;
图11为又一实施例中分布式机器学习系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明实施例提供的分布式机器学习方法可应用于图1所示的系统中,如图1所示,主控节点100通过参数服务器200与计算节点300进行通信并组成分布式机器学习系统,主控节点100发送学习任务指令给参数服务器200,并对参数服务器200和计算节点300进行监控。参数服务器200接收到学习任务指令后发送全局参数给各计算节点300,各计算节点300根据全局参数执行迭代学习并将更新参数返回给参数服务器200。主控节点100可以为智能手机、平板电脑、个人数字助理(PDA)及个人计算机等。参数服务器200和计算节点300通常分别为物理服务器集群。
图1所示的参数服务器200的内部结构如图2所示,该参数服务器200包括通过系统总线链接的处理器、存储介质、内存和网络接口。其中,该服务器200的存储介质存储有操作系统、数据库和一种分布式机器学习系统。数据库用于存储数据,如全局参数、全局参数时间戳、计算节点的当前迭代轮数、计算节点的更新参数、允许计算节点的速度差值的预设范围等。该服务器200的处理器用于提供计算和控制能力,支撑整个接入服务器200的运行。该服务器200的内存为存储介质中的分布式机器学习系统的运行提供环境。该服务器200的网络接口用于与外部的主控节点和计算节点通过网络连接通信,比如接收主控节点100发送的学习任务指令、发送全局参数给计算节点300及接收计算节点300发送的更新参数等。
如图3所示,为本申请一实施例提供的一种分布式机器学习方法,该方法可应用于图2所示的参数服务器中,具体包括如下步骤:
步骤101,接收当前计算节点的全局参数获取指令。
分布式机器学习是指将机器学习任务在分布式环境中执行,将训练数据切分到多个计算节点,每个计算节点用分配的数据子集执行并行随机梯度下降算法(stochasticgradient descent,SGD)迭代地学习训练机器学习模型。其中随机梯度下降算法是迭代式机器学习中常用的优化算法,在此不赘述。计算节点的数量为多个,各计算节点在执行当前的迭代轮数的迭代学习之前,向参数服务器发送全局参数获取指令以获取当前最新的全局参数。
步骤103,判断当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内。
预设范围用于限制不同计算节点之间执行相应迭代学习的速度差异不超出相应的范围。通过将不同计算节点之间的速度差异限制在该预设范围内,以避免出现部分计算节点的迭代速度过快,从而不同计算节点迭代学习使用的全局参数副本的更新速度差异过大,导致不同计算节点用不一致的全局参数副本计算的出更新参数扰乱全局参数,将不同计算节点之间的速度差异限制在该预设范围内形成有限异步并行协议的分布式机器学习,以减小不同计算节点产生的更新对全局参数的扰动的影响。
步骤105,若是,将全局参数发送给当前计算节点。
当当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值在预设范围内时,将目前存储的最新的全局参数发送给当前计算节点。即当当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值在预设范围内时,表示该计算节点的当前迭代速度符合要求,可以开始当前轮数的迭代学习。当当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值超出预设范围时,表示该计算节点的当前迭代速度过快或者过慢,则等待至满足条件后才能开始当前轮数的迭代学习。在另一优选实施方式中,也可以将当前所有计算节点中最快的计算节点的全局参数副本作为最新的全局参数发送给当前计算节点,通常最快的计算节点的全局参数副本与实时协同更新的全局参数的差距最小,因此,将最快的计算节点的全局参数副本作为最新的全局参数可以提高训练准确率。
步骤107,接收当前计算节点根据全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数及更新参数对全局参数进行更新得到更新的全局参数进行存储。
参数服务器在当前计算节点每一轮迭代学习之前发送当前最新的全局参数给当前计算节点,以提供计算节点根据全局参数执行当前轮数的迭代学习之后得到更新参数返回给参数服务器。参数服务器接收到更新参数后即可对全局参数进行更新。其中,计算节点在不同轮数或者不同计算节点在同一轮数中接收到全局参数后执行迭代学习的过程会产生不同程度的延迟,通过根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数和更新参数共同对所述全局参数进行更新,其中延迟参数直接反映计算节点的延迟程度,通过将延迟与更新共同约束对全局参数的更新使得计算节点每一轮迭代学习产生不同延迟程度时对全局参数的更新有相应不同程度的影响,控制不同计算节点产生的更新对全局参数的扰动的影响。
以上分布式机器学习方法,各个计算节点用分配的数据子集执行并行随机梯度下降算法迭代地学习训练机器学习模型,利用并行加速算法模型训练,将原有数月的训练时间缩短为周或者数天,避免了单点瓶颈,以保证能够处理TB级及以上的数据量,通过将不同计算节点之间迭代轮数的差异控制在预设范围内,根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数及更新参数共同约束对全局参数进行更新,表示不同延迟程度的延迟参数对全局参数的更新可进行相应程度的调整,减小不同计算节点产生的更新对全局参数的扰动的影响,确保整体收敛的稳定性。
优选的,步骤103,判断当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内的步骤具体为:
判断当前计算节点当前的迭代轮数与所有计算节点中当前的最小迭代轮数的差值是否在第一预设范围内。
在分布式机器学习中,不同计算节点的迭代轮数之间的差值过大,会导致服务器和各个计算节点长时间不能得到对方最新的参数信息而损失部分更新数据,最终使得训练准确率下降。所有计算节点中当前的最小迭代轮数表示迭代最慢的计算节点的实时迭代情况,通过与最慢的计算节点的实时迭代情况进行比较判断差值是否在第一预设范围内,可以确保所有计算节点之间的迭代速度的差值不超过预设的范围。
在另一具体的实施例中,步骤103,判断当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内的步骤具体为:
判断当前计算节点当前的迭代轮数与所有计算节点中当前的最大迭代轮数的差值是否在第二预设范围内。
由于所有计算节点中当前的最大迭代轮数表示迭代最快的计算节点的实时迭代情况,通过与最快的计算节点的实时迭代情况进行比较判断差值是否在第二预设范围内,可以确保所有计算节点之间的迭代速度的差值不超过预设的范围。
优选的,步骤105,将全局参数发送给当前计算节点的步骤包括:
将全局参数发送给当前计算节点,并获取当前计算节点接收全局参数的时间戳作为更新的全局参数时间戳进行存储。
当前计算节点接收全局参数的时间戳表示计算节点执行当前轮数的迭代学习前读取全局参数的时间,由于每一轮迭代学习将产生更新参数,及表示全局参数将产生新的更新,因此获取当前计算节点接收全局参数的时间戳作为更新的全局参数时间戳进行存储,可便于将当前计算节点接收全局参数的时间戳作为计算当前轮数的迭代学习的延迟的起点时间,在后续根据接收更新参数的时间戳与全局参数时间戳计算延迟参数的步骤中,计算当前计算节点执行当前轮数的迭代学习的延迟程度时可以获得更为准确的结果。
在一具体的实施例中,以第m个计算节点开始第c轮迭代为例,第c轮迭代开始之前计算节点通过拉取(pull)函数向参数服务器发出全局参数获取指令,参数服务器获取计算节点m的全局参数获取指令,判断当前迭代轮数c是否符合预设范围之后发送全局参数给当前计算节点的具体实现方式示意性表示如下:
其中,当前计算节点为计算节点m,当前迭代轮数为c,Cmin是指所有计算节点中当前最小迭代轮数,r[]是指所有计算节点读取全局参数的时间戳,t是指全局参数时间戳,θ是指全局参数,S是指预设范围。可以理解的,以上判断当前迭代轮数c是否符合预设范围的步骤中Cmin也可以用所有计算节点中当前最大迭代轮数Cmax代替,相应具体实现方式可示意性表示如下:
参数服务器为计算节点提供pull接口。第m个计算节点在开始第c轮迭代时,通过pull接口向参数服务器获取全新的全局参数。参数服务器比较当前迭代轮数c与当前所有节点中最小迭代轮数的大小,检测迭代轮数的差值是否在预设范围内,实现在有限异步约束下开始第c轮迭代,如果能够开始第c轮迭代,则将当前计算节点的当前迭代轮数获取全局参数的时间戳r[m]更新为全局参数时间戳,并返回最新的全局参数给当前计算节点。
请参阅图4,在另一实施例中,步骤107,接收当前计算节点根据全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数及更新参数对全局参数进行更新得到更新的全局参数进行存储具体包括:
步骤1071,接收当前计算节点根据全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数。
步骤1072,获取接收更新参数的时间戳作为全局参数当前时间戳,计算全局参数当前时间戳与全局参数时间戳的差值作为延迟参数。
步骤1073,以更新参数与延迟参数的比值对全局参数进行更新得到更新的全局参数进行存储。
计算节点完成当前轮数的迭代后,向参数服务器发送对全局参数的更新参数。参数服务器将接收更新参数的时间戳作为全局参数当前时间戳,并计算全局参数当前时间戳与全局参数时间戳的差值作为延迟参数,该延迟参数与当前计算节点的当前轮数的更新相对应,反映了当前轮数迭代学习的延迟程度,以更新参数与延迟参数的比值对全局参数进行更新,其中延迟参数越大,则对应的更新参数对全局参数的更新影响越小,延迟参数越小,则对应的更新参数对全局参数的更新影响则越大,相当于通过延迟参数对更新参数施加惩罚后再对全局参数进行更新,从而智能感知在有限的异步并行学习过程中延迟并基于不同程度的延迟对全局参数的更新进行控制调整,进一步减小了在迭代速度差异范围内的不同计算节点的不同次数的迭代学习所产生的更新对于全局参数的扰动影响。
在一具体的实施例中,仍以第m个计算节点开始第c轮迭代为例,计算节点m完成第c轮迭代后将更新参数发送给参数服务,参数服务器获取接收更新参数的时间戳计算延迟参数并根据延迟参数和更新参数对全局参数进行更新的具体实现方式示意性表示如下:
其中,当前计算节点为计算节点m,当前迭代轮数为c,t是指全局参数时间戳,θ是指全局参数,r[]是指所有计算节点读取全局参数的时间戳,d是指延迟参数,u是指更新参数。参数服务器为计算节点提供push接口。第m个计算节点在完成第c轮迭代后,将本轮迭代所产生的更新参数u通过push接口发送给参数服务器。参数服务器将全局参数时间戳加1作为全局参数当前时间戳表示接收更新参数的时间戳,并将全局参数当前时间戳减去计算节点通过Pull接口获取全局参数的时间戳得到延迟参数u,通过将更新参数u除以延迟参数d作为对更新参数的惩罚然后增加到全局参数上,得到最新的全局参数。本实施例中,参数服务器用参数更新的次数作为全局参数当前时间戳。
如图5所示,在一个实施例中,提供了一种分布式机器学习系统,包括指令接收模块10、判断模块13、全局参数发送模块15和更新模块17。指令接收模块10用于接收当前计算节点的全局参数获取指令。判断模块13用于判断当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内。全局参数发送模块15用于当当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值在预设范围内时,将全局参数发送给当前计算节点。更新模块17用于接收当前计算节点根据全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收更新参数的时间戳与全局参数时间戳计算延迟参数,根据延迟参数及更新参数对全局参数进行更新得到更新的全局参数进行存储。
优选的,判断模块13具体用于判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最小迭代轮数的差值是否在第一预设范围内。作为另一可选的实施例中,判断模块13用于判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最大迭代轮数的差值是否在第二预设范围内。
优选的,全局参数发送模块15具体用于将所述全局参数发送给所述当前计算节点,并获取所述当前计算节点接收所述全局参数的时间戳作为更新的全局参数时间戳进行存储。
优选的,请参阅图6,更新模块17具体包括接收单元171、计算单元172和更新单元173。接收单元171用于接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数。计算单元172用于获取接收所述更新参数的时间戳作为全局参数当前时间戳,计算所述全局参数当前时间戳与所全局参数时间戳的差值作为延迟参数。更新单元173用于以所述更新参数与所述延迟参数的比值对所述全局参数进行更新得到更新的全局参数进行存储。
图1所示的计算节点300的内部结构如图7所示,该计算节点300包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该计算节点300的存储介质存储有操作系统、数据库和一种分布式机器学习系统。数据库用于存储本地数据,如存储从参数服务器200获得的全局参数作为全局参数副本等。该计算节点300的处理器用于提供计算和控制能力,支撑整个接入分布式机器学习系统的运行。该计算节点300的内存为存储介质中的分布式机器学习系统提供运行环境。该计算节点300的网络接口用于与外部的参数服务器200通过网络连接通信,比如向参数服务器200发送全局参数获取指令、接收参数服务器200发送的全局参数、将更新参数发送给参数服务器200等。
如图8所示,为本申请另一实施例提供的一种分布式机器学习方法,该方法可应用于图1所示的计算节点中,具体包括如下步骤:
步骤201,向参数服务器发送全局参数获取指令。
参数服务器为计算节点提供pull接口,计算节点在开始当前迭代轮数的迭代学习之前通过pull接口向参数服务器发送全局参数获取指令以获取最新的全局参数。
步骤203,接收参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数。
参数服务器根据计算节点的当前迭代轮数对其迭代速度是否满足要求进行判断,在判断符合要求的基础上将最新的全局参数发送给计算节点,从而在基于异步并行协议的分布式机器学习方法的同时对不同计算节点的迭代速度的差异进行控制,实现有限异步并行协议的分布式机器学习。因此,允许计算节点的速度之间存在一定差异,快的计算节点可以不等待慢的计算节点,避免了整个系统等待最慢的计算节点而有效减少了等待时间。本实施例中,参数服务器通过判断当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内以判断当前迭代轮数的迭代速度是否满足要求。最新的全局参数是指参数服务器根据计算节点的每一轮迭代学习所产生的更新对全局参数实时进行更新后得到的更新的全局参数,在另一实施例中,参数服务器根据当前计算节点的当前轮数的全局参数获取指令,在判断符合迭代速度差异范围内时将当前所有计算节点中最快的计算节点的全局参数副本作为最新的全局参数发送给当前计算节点,通常最快的计算节点的全局参数副本与实时协同更新的全局参数的差距最小,因此,将最快的计算节点的全局参数副本作为最新的全局参数可以提高训练准确率。
步骤205,根据全局参数执行当前的迭代轮数的迭代学习得到更新参数。
计算节点接收参数服务器所发送的全局参数,用分配的数据子集执行并行随机梯度下降算法迭代地学习训练机器学习模型得到更新参数。
步骤207,将更新参数发送至参数服务器。
完成当前轮数的迭代学习后,计算节点调用参数服务器的push接口将更新参数发送给参数服务器,以提供参数服务器对全局参数进行更新。
以上分布式机器学习方法,各个计算节点用分配的数据子集执行并行随机梯度下降算法迭代地学习训练机器学习模型,利用并行加速算法模型训练,避免了单点瓶颈,以保证能够处理TB级及以上的数据量,计算节点在开始每轮迭代之前向参数服务器获取最新的全局参数,接收参数服务器在判断当前计算节点的迭代速度符合预设范围内所发送的全局参数才开始本轮的迭代学习,从而不同计算节点之间的速度差异限制在预设范围内,形成有限异步并行协议的分布式机器学习,以减小不同计算节点产生的更新对全局参数的扰动的影响。
优选的,请参阅图9,步骤203,接收参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数是否在预设范围内的判断结果所发送的全局参数的步骤之后,还包括:
步骤204,将接收全局参数的时间戳发送至参数服务器。
计算节点将接收全局参数的时间戳发送至参数服务器,参数服务器根据接收全局参数的时间戳对全局参数时间戳进行更新并存储,以作为计算当前迭代学习产生的更新参数对应的延迟参数的起始时间,以支持参数服务器获取该接收全局参数的时间戳计算每次迭代学习的更新参数所对应的延迟参数,对延迟较大的迭代轮数所对应的更新施加相应程度的惩罚,以避免延迟较大的迭代轮数产生的更新扰乱全局参数,控制不同计算节点产生的更新对全局参数的扰动的影响。
在一具体的实施例中,以第m个计算节点开始第c轮迭代为例,第c轮迭代开始之前计算节点向参数服务器发出全局参数获取指令,计算节点m接收参数服务器根据当前迭代轮数符合预设范围之后发送的最新的全局参数进行迭代学习,得到更新参数返回参数服务器的具体实现方式示意性表示如下:
for c=0 to C:
θm=pull(m,c)//在开始第c轮迭代之前,向参数服务器获取最新的全局参数
um=0//初始化本地的参数更新为0
um=SGD(N,θm)//用SGD训练数据,得到更新参数
push(m,c,um)//调用参数服务器的Push接口,发送本地更新
其中,θm表示计算节点上保存的全局参数副本,C表示最大迭代数,um表示计算节点m的本地更新参数。计算节点在开始第c轮迭代之前,调用参数服务器的pull接口获取最新的全局参数,并初始化本地更新参数为0,计算节点获取到参数服务器发送的最新的全局参数并用并行随机梯度下降算法遍历分配的数据子集执行迭代地学习训练机器学习模型得到更新参数,再调用参数服务器的push接口发送更新参数至参数服务器,以支持参数据服务器根据更新参数对全局参数进行实时更新。
优选的,请参阅图10,在一个实施例中,提供了一种分布式机器学习系统,包括指令发送模块21、全局参数接收模块23、学习模块25及更新参数发送模块27。指令发送模块21用于向参数服务器发送全局参数获取指令。全局参数接收模块23用于接收参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数。学习模块25用于根据全局参数执行当前的迭代轮数的迭代学习得到更新参数。更新参数发送模块27用于将更新参数发送至参数服务器。
优选的,请参阅图11,该分布式机器学习系统还包括时间戳发送模块24。时间戳发送模块24用于在全局参数接收模块接收参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数是否在预设范围内的判断结果所发送的全局参数的步骤之后,将接收全局参数的时间戳发送至参数服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅库达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (12)
1.一种分布式机器学习方法,包括:
接收当前计算节点的全局参数获取指令;
判断所述当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内;
若是,将全局参数发送给所述当前计算节点;
接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收所述更新参数的时间戳与全局参数时间戳计算延迟参数,根据所述延迟参数及所述更新参数对所述全局参数进行更新得到更新的全局参数进行存储。
2.如权利要求1所述的分布式机器学习方法,其特征在于:所述判断所述当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内的步骤具体为:
判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最小迭代轮数的差值是否在第一预设范围内;或者
判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最大迭代轮数的差值是否在第二预设范围内。
3.如权利要求1所述的分布式机器学习方法,其特征在于:所述将全局参数发送给所述当前计算节点的步骤包括:
将所述全局参数发送给所述当前计算节点,并获取所述当前计算节点接收所述全局参数的时间戳作为更新的全局参数时间戳进行存储。
4.如权利要求1所述的分布式机器学习方法,其特征在于:所述接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收所述更新参数的时间戳与全局参数时间戳计算延迟参数,根据所述延迟参数及所述更新参数对所述全局参数进行更新得到更新的全局参数进行存储的步骤具体包括:
接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数;
获取接收所述更新参数的时间戳作为全局参数当前时间戳,计算所述全局参数当前时间戳与所全局参数时间戳的差值作为延迟参数;
以所述更新参数与所述延迟参数的比值对所述全局参数进行更新得到更新的全局参数进行存储。
5.一种分布式机器学习系统,包括:
指令接收模块,用于接收当前计算节点的全局参数获取指令;
判断模块,用于判断所述当前计算节点当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值是否在预设范围内;
全局参数发送模块,当当前的迭代轮数与其它计算节点当前的迭代轮数之间的差值在预设范围内时,将全局参数发送给所述当前计算节点;
更新模块,用于接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数,根据接收所述更新参数的时间戳与全局参数时间戳计算延迟参数,根据所述延迟参数及所述更新参数对所述全局参数进行更新得到更新的全局参数进行存储。
6.如权利要求5所述的分布式机器学习系统,其特征在于:所述判断模块,具体用于:
判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最小迭代轮数的差值是否在第一预设范围内;或
用于判断所述当前计算节点当前的迭代轮数与所有计算节点中当前的最大迭代轮数的差值是否在第二预设范围内。
7.如权利要求5所述的分布式机器学习系统,其特征在于:所述全局参数发送模块,具体用于将所述全局参数发送给所述当前计算节点,并获取所述当前计算节点接收所述全局参数的时间戳作为更新的全局参数时间戳进行存储。
8.如权利要求5所述的分布式机器学习系统,其特征在于:所述更新模块具体包括:
接收单元,用于接收所述当前计算节点根据所述全局参数执行当前的迭代轮数的迭代学习之后发送的更新参数;
计算单元,用于获取接收所述更新参数的时间戳作为全局参数当前时间戳,计算所述全局参数当前时间戳与所全局参数时间戳的差值作为延迟参数;
更新单元,用于以所述更新参数与所述延迟参数的比值对所述全局参数进行更新得到更新的全局参数进行存储。
9.一种分布式机器学习方法,包括:
向参数服务器发送全局参数获取指令;
接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数;
根据所述全局参数执行当前的迭代轮数的迭代学习得到更新参数;
将所述更新参数发送至参数服务器。
10.如权利要求9所述的分布式机器学习方法,其特征在于:所述接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数是否在预设范围内的判断结果所发送的全局参数的步骤之后,还包括:
将接收所述全局参数的时间戳发送至参数服务器。
11.一种分布式机器学习系统,包括:
指令发送模块,用于向参数服务器发送全局参数获取指令;
全局参数接收模块,用于接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数的差值是否在预设范围内的判断结果所发送的全局参数;
学习模块,用于根据所述全局参数执行当前的迭代轮数的迭代学习得到更新参数;
更新参数发送模块,用于将所述更新参数发送至参数服务器。
12.如权利要求11所述的分布式机器学习系统,其特征在于:还包括时间戳发送模块:用于在全局参数接收模块接收所述参数服务器根据当前的迭代轮数与其它计算节点的当前迭代轮数是否在预设范围内的判断结果所发送的全局参数的步骤之后,将接收所述全局参数的时间戳发送至参数服务器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610968121.4A CN108009642B (zh) | 2016-10-31 | 2016-10-31 | 分布式机器学习方法和系统 |
PCT/CN2017/108036 WO2018077236A1 (zh) | 2016-10-31 | 2017-10-27 | 分布式机器学习方法和系统 |
US16/266,559 US11263539B2 (en) | 2016-10-31 | 2019-02-04 | Distributed machine learning method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610968121.4A CN108009642B (zh) | 2016-10-31 | 2016-10-31 | 分布式机器学习方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009642A true CN108009642A (zh) | 2018-05-08 |
CN108009642B CN108009642B (zh) | 2021-12-14 |
Family
ID=62023145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610968121.4A Active CN108009642B (zh) | 2016-10-31 | 2016-10-31 | 分布式机器学习方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11263539B2 (zh) |
CN (1) | CN108009642B (zh) |
WO (1) | WO2018077236A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829517A (zh) * | 2018-05-31 | 2018-11-16 | 中国科学院计算技术研究所 | 一种用于在集群环境下进行机器学习的训练方法和系统 |
CN109102075A (zh) * | 2018-07-26 | 2018-12-28 | 联想(北京)有限公司 | 一种分布式训练中的梯度更新方法及相关设备 |
CN109445953A (zh) * | 2018-08-30 | 2019-03-08 | 北京大学 | 一种面向大规模机器学习系统的机器学习模型训练方法 |
CN111144584A (zh) * | 2019-12-31 | 2020-05-12 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN111158902A (zh) * | 2019-12-09 | 2020-05-15 | 广东工业大学 | 一种移动边缘分布式机器学习系统和方法 |
CN111210020A (zh) * | 2019-11-22 | 2020-05-29 | 清华大学 | 一种加速分布式机器学习的方法及系统 |
CN116704296A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625640B2 (en) * | 2018-10-05 | 2023-04-11 | Cisco Technology, Inc. | Distributed random forest training with a predictor trained to balance tasks |
CN110400064A (zh) * | 2019-07-10 | 2019-11-01 | 江苏博子岛智能科技有限公司 | 一种具备人工智能的物流控制系统及方法 |
CN113094180B (zh) * | 2021-05-06 | 2023-10-10 | 苏州联电能源发展有限公司 | 无线联邦学习调度优化方法及装置 |
CN113361598B (zh) * | 2021-06-04 | 2022-10-11 | 重庆大学 | 基于分布式学习的模型训练方法、服务器及分布式系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197753A (zh) * | 2007-12-26 | 2008-06-11 | 北京理工大学 | 基于全局最小访问代价的副本选择方法 |
US8027938B1 (en) * | 2007-03-26 | 2011-09-27 | Google Inc. | Discriminative training in machine learning |
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
US20140279748A1 (en) * | 2013-03-15 | 2014-09-18 | Georges Harik | Method and program structure for machine learning |
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
CN104980518A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 多学习主体并行训练模型的方法、装置和系统 |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
CN105956021A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和系统 |
CN106059972B (zh) * | 2016-05-25 | 2019-04-26 | 北京邮电大学 | 一种基于机器学习算法的mimo相关信道下的调制识别方法 |
-
2016
- 2016-10-31 CN CN201610968121.4A patent/CN108009642B/zh active Active
-
2017
- 2017-10-27 WO PCT/CN2017/108036 patent/WO2018077236A1/zh active Application Filing
-
2019
- 2019-02-04 US US16/266,559 patent/US11263539B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027938B1 (en) * | 2007-03-26 | 2011-09-27 | Google Inc. | Discriminative training in machine learning |
CN101197753A (zh) * | 2007-12-26 | 2008-06-11 | 北京理工大学 | 基于全局最小访问代价的副本选择方法 |
US20130290223A1 (en) * | 2012-04-27 | 2013-10-31 | Yahoo! Inc. | Method and system for distributed machine learning |
US20140279748A1 (en) * | 2013-03-15 | 2014-09-18 | Georges Harik | Method and program structure for machine learning |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
CN104980518A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 多学习主体并行训练模型的方法、装置和系统 |
CN105956021A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 |
Non-Patent Citations (4)
Title |
---|
ERIC P. XING等: "《Petuum:A New Platform for Distributed Machine Learning on Big Data》", 《IEEE TRANSACTIONS ON BIG DATA》 * |
LUCAS MELLO SCHNORR等: "《Multi-scale Analysis of Large Distributed Computing Systems》", 《LSAP"11》 * |
谭跃生等: "《Hadoop云平台下的聚类算法研究》", 《计算机工程与设计》 * |
黄宜华: "《大数据机器学习系统研究进展》", 《大数据》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829517A (zh) * | 2018-05-31 | 2018-11-16 | 中国科学院计算技术研究所 | 一种用于在集群环境下进行机器学习的训练方法和系统 |
CN108829517B (zh) * | 2018-05-31 | 2021-04-06 | 中国科学院计算技术研究所 | 一种用于在集群环境下进行机器学习的训练方法和系统 |
CN109102075A (zh) * | 2018-07-26 | 2018-12-28 | 联想(北京)有限公司 | 一种分布式训练中的梯度更新方法及相关设备 |
CN109445953A (zh) * | 2018-08-30 | 2019-03-08 | 北京大学 | 一种面向大规模机器学习系统的机器学习模型训练方法 |
CN111210020A (zh) * | 2019-11-22 | 2020-05-29 | 清华大学 | 一种加速分布式机器学习的方法及系统 |
CN111210020B (zh) * | 2019-11-22 | 2022-12-06 | 清华大学 | 一种加速分布式机器学习的方法及系统 |
CN111158902A (zh) * | 2019-12-09 | 2020-05-15 | 广东工业大学 | 一种移动边缘分布式机器学习系统和方法 |
CN111158902B (zh) * | 2019-12-09 | 2022-05-10 | 广东工业大学 | 一种移动边缘分布式机器学习系统和方法 |
CN111144584A (zh) * | 2019-12-31 | 2020-05-12 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN111144584B (zh) * | 2019-12-31 | 2024-01-19 | 深圳Tcl新技术有限公司 | 参数调优方法、装置及计算机存储介质 |
CN116704296A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116704296B (zh) * | 2023-08-04 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108009642B (zh) | 2021-12-14 |
US20190171952A1 (en) | 2019-06-06 |
US11263539B2 (en) | 2022-03-01 |
WO2018077236A1 (zh) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009642A (zh) | 分布式机器学习方法和系统 | |
CN107209872B (zh) | 用于训练强化学习系统的系统、方法和存储介质 | |
US11687832B1 (en) | Training a model using parameter server shards | |
US10540587B2 (en) | Parallelizing the training of convolutional neural networks | |
CN114756383B (zh) | 一种分布式计算方法、系统、设备及存储介质 | |
CN107944566B (zh) | 一种机器学习方法、主节点、工作节点及系统 | |
CN104980518B (zh) | 多学习主体并行训练模型的方法、装置和系统 | |
CN106991474B (zh) | 深度神经网络模型并行的全连接层数据交换方法及系统 | |
CN105956666B (zh) | 一种机器学习方法及系统 | |
US20210357816A1 (en) | System with hybrid communication strategy for large-scale distributed deep learning | |
EP3970012A1 (en) | Scheduling operations on a computation graph | |
WO2022042741A1 (zh) | 学习模型训练方法、工作节点、服务器、设备、介质 | |
WO2022217210A1 (en) | Privacy-aware pruning in machine learning | |
CN114356578A (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN108829415A (zh) | 模型加载方法、服务器及计算机可读存储介质 | |
Li et al. | Model-distributed dnn training for memory-constrained edge computing devices | |
CN112199154A (zh) | 一种基于分布式协同采样中心式优化的强化学习训练系统及方法 | |
CN105677456B (zh) | 一种进程信息的写方法及用户设备 | |
CN115688495B (zh) | 分布式lvc仿真体系协同筹划方法、服务器及存储介质 | |
CN111368060A (zh) | 对话机器人的自学习方法、装置、系统、电子设备及介质 | |
CN113821313A (zh) | 一种任务调度方法、装置及电子设备 | |
CN108304370B (zh) | 数据更新方法及装置 | |
CN107025099B (zh) | 一种基于双队列模型的异步图计算实现方法及系统 | |
CN115936095B (zh) | 一种参数梯度同步方法、装置、设备及存储介质 | |
CN115456194B (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 |