CN107025205B - 一种分布式系统中的训练模型的方法及设备 - Google Patents
一种分布式系统中的训练模型的方法及设备 Download PDFInfo
- Publication number
- CN107025205B CN107025205B CN201610071145.XA CN201610071145A CN107025205B CN 107025205 B CN107025205 B CN 107025205B CN 201610071145 A CN201610071145 A CN 201610071145A CN 107025205 B CN107025205 B CN 107025205B
- Authority
- CN
- China
- Prior art keywords
- parameter
- training
- client
- node
- slave node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
Abstract
一种分布式系统中的训练模型的方法及设备,用于在进行模型时减轻主节点的负担。该方法包括:第一从节点中的参数服务器接收所述分布式系统中至少一个从节点中的参数客户端发送的训练结果;其中,所述第一从节点为所述分布式系统中的任一从节点,每个从节点的参数客户端通过执行与该从节点的参数服务器上存储的子模型对应的训练任务以得到训练结果;所述第一从节点中的参数服务器根据接收的训练结果更新其存储的子模型。
Description
技术领域
本发明涉及机器学习技术领域,特别涉及一种分布式系统中的训练模型的方法及设备。
背景技术
机器学习(machining learning,ML)中构建模型是数据挖掘(data mining,DM)任务的关键步骤。以一种通用并行框架(Spark)为例,在构建模型时,可以由主节点(Master)将任务下发到多个从节点(Slave)执行,在执行任务时一般都需要经历多轮迭代运算,每轮迭代运算完毕后,每个从节点都需要将迭代运算的结果上报给主节点,由主节点对模型进行更新,并将更新后的参数下发给各个从节点,各个从节点再开始执行下一轮迭代运算。
可见,主节点需要进行多次模型更新及参数下发,对于大规模训练场景来说,主节点的工作量较为繁重,给主节点带来了较大的负担,也容易使得主节点成为整个训练场景的瓶颈。
发明内容
本申请提供一种分布式系统中的训练模型的方法及设备,用于在进行模型训练时减轻主节点的负担,提高模型训练的效率。
第一方面,提供第一种分布式系统中的训练模型的方法,该分布式系统包括主节点和多个从节点;每个从节点包括至少一个参数服务器和至少一个参数客户端,其中每个参数服务器中存储有该模型对应的一个子模型,且每个参数服务器中存储的子模型不同,该模型对应的子模型为对该模型进行切分得到的,该方法包括:第一从节点中的参数服务器接收该分布式系统中至少一个从节点中的参数客户端发送的训练结果,第一从节点中的参数服务器根据接收的训练结果更新其存储的子模型。其中,第一从节点为分布式系统中的任一从节点,每个从节点的参数客户端通过执行与该从节点的参数服务器上存储的子模型对应的训练任务以得到训练结果。
在分布式系统的从节点中设置参数服务器和参数客户端,主节点可以将待训练的模型进行切分,将切分得到的子模型存储在不同的参数服务器中,参数客户端用于进行训练过程,参数服务器可以更新子模型,那么多个参数服务器可以分别更新子模型,也就相当于主模型得到了更新,这样,主节点只需切分模型,更新模型的工作就从主节点转移到了多个参数服务器,从而实现了模型训练的并行,提高了模型训练的效率,同时,主节点的负担也得到了较大幅度的减少。
结合第一方面,在第一方面的第一种可能的实现方式中,第一从节点中的参数服务器根据接收的训练结果更新其存储的子模型之后,还可以将存储的子模型更新后得到的参数发送给该分布式系统中的至少一个从节点中的参数客户端,该参数用于至少一个从节点中的参数客户端对相应的从节点中的参数服务器存储的子模型进行后续训练。
第一从节点中的参数服务器在更新存储的子模型后会得到一些参数,该参数服务器可以将得到的参数发给至少一个从节点中的参数客户端,这样可以使得这些参数客户端根据这些参数继续对模型进行训练,从而保证各个参数客户端能够对模型进行正常的训练,避免出错。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,第一从节点中的参数服务器接收的训练结果中包括第一训练结果,第一训练结果为第一从节点中的参数客户端对第一从节点中的参数服务器存储的子模型进行n次训练后得到的,n为正整数。
有一些有些训练结果对于全局来说可能不是很重要,或者可能无需每轮迭代都用这些训练结果来更新参数服务器中的子模型,因此,对于这类训练结果,参数客户端可以迭代多次之后再发送给参数服务器,减少了需传输的数据量,节省传输资源,也提高了训练效率。
结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:在第一从节点中的参数客户端进行第K轮训练完毕时,第一从节点中的参数客户端确定该分布式系统中训练速度最慢的参数客户端正在训练的轮数与K之间的差值大于预设差值,则第一参数客户端从工作状态切换为等待状态,以等待训练速度最慢的参数客户端进行训练,在训练速度最慢的参数客户端训练的轮数与K之间的差值小于等于预设差值时,第一从节点中的参数客户端可以从所述等待状态切换为工作状态,其中K为正整数。
通过这种方式,尽量保证各个参数客户端之间训练的轮数的差距不会太大,使得最终得到的模型收敛,最快的参数客户端无需等到最慢的参数客户端完全赶上后再进行后续工作,节省时间,提高训练效率,而且也尽量保证速度快的参数客户端可以保持训练速度,尽量减小对参数客户端的性能的影响。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,第一从节点中的参数客户端从所述等待状态切换为工作状态,可以是第一从节点中的参数客户端开始进行第K+1轮训练,或者也可以是第一从节点中的参数客户端将第K轮训练得到的训练结果发送给第一从节点中的参数服务器,该训练结果用于第一从节点中的参数服务器更新其存储的子模型。
第一从节点中的参数客户端可以继续进行下一轮训练,即可以无需将每一轮得到的训练结果都发送给参数服务器,以减少需传输的数据量,或者也可以将得到的训练结果发送给参数服务器,以使得参数服务器中存储的子模型得到较为及时的更新。至于第一从节点中的参数客户端究竟该如何操作,可以由分布式系统预先设定,或者也可以由参数客户端根据情况而定,较为灵活。
第二方面,提供第二种分布式系统中的训练模型的方法,该分布式系统包括主节点和多个从节点,每个从节点包括至少一个参数服务器和至少一个参数客户端,其中每个参数服务器中存储有该模型对应的一个子模型,且每个参数服务器中存储的子模型不同,该模型对应的子模型为对主节点对该模型进行切分得到的,该方法包括:主节点将用于训练该模型的原子任务分配给至少一个进程,主节点建立任务管理进程,任务管理进程用于对至少一个进程中的原子任务进行管理。其中,所述模型的每个子模型都对应至少一个训练任务,一个训练任务包括至少一个原子任务。
通过设置任务管理进程对各个原子任务进行统一调度,各个进程都在调度下工作,先执行完任务的进程不会窃取其他进程中的原子任务,有效解决了进程抢占的问题,节省性能开销,也避免了死锁的风险。
结合第二方面,在第二方面的第一种可能的实现方式中,该方法还可以包括:主节点通过任务管理进程接收第一原子任务发送的请求消息,请求消息用于请求执行第一原子任务,主节点通过任务管理进程为第一原子任务分配第一执行时长,并通过任务管理进程将第一原子任务分配给第一从节点进行处理;其中,第一原子任务为用于训练该模型的原子任务中的任意一个原子任务,第一执行时长为主节点根据第一原子任务的执行时长预估的。
主节点可以通过任务管理进行为原子任务分配执行时长,则基本上从节点会按照分配的执行时长去执行原子任务,主节点也知道为每个原子任务分配的执行时长,从而,在一个原子任务的执行时长还没到达的时候,主节点可以不为该原子任务所占据的进程分配新的原子任务,避免多个任务抢占同一个进程,进一步节省了性能的开销,避免了死锁的风险。
第三方面,提供第一种分布式系统中的计算节点,包括参数服务器和参数客户端。其中,计算节点中的参数服务器存储有待训练模型的一个或多个子模型,待训练模型的子模型是对待训练模型进行切分得到的,且参数服务器上存储的子模型与分布式系统中其它计算节点的参数服务器中存储的子模型不同;该计算节点中的参数客户端用于执行该计算节点的参数服务器中存储的所述一个或多个子模型对应的训练任务,以得到每个子模型的训练结果,其中,每个子模型对应至少一个训练任务。该计算节点中的参数服务器用于接收该分布式系统中的至少一个计算节点的参数客户端发送的训练结果,并可以根据接收的训练结果更新存储的子模型。
结合第三方面,在第三方面的第一种可能的实现方式中,该计算节点中的参数服务器还可以在根据接收的训练结果分别更新其存储的子模型之后,将存储的子模型更新后得到的参数分别发送给该分布式系统中的至少一个计算节点中的参数客户端,该参数用于至少一个计算节点中的参数客户端对相应的计算节点中的参数服务器存储的子模型进行后续训练。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该计算节点中的参数服务器接收的训练结果中包括第一训练结果,第一训练结果为该计算从节点中的参数客户端对该计算节点的参数服务器存储的子模型进行n次训练后得到的,n为正整数。
结合第三方面或第三方面的第一种可能的实现方式或第二种可能的实现方式,在第三方面的第三种可能的实现方式中,该计算节点中的参数客户端还用于:在该参数客户端进行第K轮训练完毕时,确定该分布式系统中训练速度最慢的参数客户端正在训练的轮数与K之间的差值大于预设差值,该参数客户端从工作状态切换为等待状态,以等待训练速度最慢的参数客户端进行训练,在训练速度最慢的参数客户端训练的轮数与K之间的差值小于等于预设差值时,该参数客户端可以从等待状态切换为工作状态,其中K为正整数。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,该计算节点中的参数客户端还可以用于开始进行第K+1轮训练,或者还可以用于将第K轮训练得到的训练结果发送给该计算节点中的参数服务器,该训练结果用于该计算节点中的参数服务器更新其存储的子模型。
第四方面,本发明实施例还提供另一种分布式系统中的计算节点,该计算节点可以通过物理主机实现,物理主机可以包括硬件器件以及软件器件两部分。其中,硬件器件的集合统称为硬件层,软件器件包括运行在硬件层上的宿主机,以及运行在宿主机上的虚拟机。虚拟机利用硬件层提供的计算、存储等资源实现以上任一方面或任一方面的任一种实现方式所描述的参数服务器及参数客户端的功能。计算节点包括的参数服务器和参数客户端等可以通过计算节点中的虚拟机来实现。
第五方面,提供第三种分布式系统中的计算节点,包括存储器和处理器,其中,存储器用于存储指令,处理器,用于执行存储器存储的指令,以实现以上任一方面或任一方面的任一种实现方式所描述的参数服务器及参数客户端的功能。
第六方面,本发明实施例还提供一种计算机可读存储介质,用于存储实现上述任一方面或任一方面的任一种实现方式所描述的参数服务器及参数客户端的功能的代码或可执行程序。本发明实施例中,将更新模型的工作从主节点转移到多个参数服务器,减轻了主节点的负担,每个参数服务器可能只承担对一部分子模型的更新工作,实现了模型训练的并行,尽量避免了主节点成为整个训练过程的瓶颈,提高了模型训练的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A-图1B为本发明实施例提供的两种分布式系统架构图;
图2为本发明实施例提供的第一种训练模型的方法的流程图;
图3为本发明实施例提供的第二种训练模型的方法的流程图;
图4为本发明实施例提供的从节点的一种实现方式示意图;
图5为本发明实施例提供的主节点的一种实现方式示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
还应当理解,尽管在本文中可能采用术语第一、第二等来描述各种组件,但这些术语仅用来将元件彼此区分开。本发明实施例中的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
请参见图1A,为本发明实施例提供的一种可能的分布式系统架构图。
在图1A中,该分布式系统包括主节点101及P个从节点102(图1A中的P大于等于3),P为正整数。主节点101可以通过物理机实现,或者也可以通过虚拟机实现,同样的,从节点102可以通过物理机实现,或者也可以通过虚拟机实现。主节点101维护有一个或多个任务队列,图1A中以维护L个任务队列为例(图1A中的L大于等于3)。主节点101接收用户通过客户端(Client)提交的任务列表(这里的客户端可以是服务器或个人计算机等设备),将接收的任务列表中包括的任务分配到任务队列中,主节点101可以包括调度器(Scheduler),该调度器用于调度任务队列中的任务,以将任务分发到各个从节点102,从而实现任务的并行处理。
其中,该分布式系统可以用于进行模型训练,一个模型可以对应至少一个训练任务,可以理解为,将一个模型对应的训练任务执行完毕后,该模型就训练完毕。一般来说,一个模型有几组超参,该模型就对应有几个训练任务。其中,超参也称为超参数,超参数是指机器学习模型里面的框架参数,比如聚类方法中类的个数,或者话题模型中话题的个数等等。比如模型1有2组超参,则可以确定模型1对应2个训练任务,把这2个训练任务执行完毕,模型1就完成了一次训练。那么主节点101在向从节点102下发训练任务的时候,可以把这两个训练任务都下发给从节点1-3,从节点1-3在执行这2个训练任务的过程中(从节点1-3可以分别完成这2个训练任务的不同部分)可以进行多次迭代,一次迭代可以认为是一次训练过程,等从节点1-3全部迭代完毕,则认为这2个训练任务执行完毕。那么,任务列表中包括的训练任务若对应于多个模型,则主节点101可以将多个模型对应的训练任务分别下发到从节点102执行,这样就实现了模型的并行训练。
从节点102中可以包括参数客户端(Parameter Client)1021,参数客户端1021可以执行主节点101分配的训练任务,比如可以根据训练数据进行多轮迭代运算。各个从节点102中的参数客户端1021接收主节点101分配的训练任务后,可以并发执行训练任务,如果这些训练任务属于不同的模型,那么就实现了模型的并行训练。为描述方便,以下将待训练的模型称为主模型,本发明实施例中,可以将主模型进行拆分,一个主模型可以拆分为多个子模型,拆分后的子模型可以存储到各个从节点的参数服务器(Parameter Server)1022上,而各个子模型对应的训练任务由各个从节点102中的参数客户端1021来执行。
在一个实施例中,一个从节点102中可以部署一个参数客户端1021和一个参数服务器1022,请参见图1A。进一步的,在一个实施例中,如果从节点102是物理机,那么参数客户端1021和参数服务器1022可以分别是该从节点102上运行的一台虚拟机或一个进程。可选的,系统中的各个参数服务器1022之间可以进行通信,各个参数服务器1022可以根据所有的参数服务器1022存储的子模型进行加权,以更好地更新本地的子模型。
每个参数服务器1022存储的子模型可以不同,且系统中的每个参数服务器1022存储的子模型可以对应于一个模型,或者也可以对应于多个模型。例如,每个参数服务器1022中可以只存储对应于一个主模型(例如为主模型1)的子模型,则将每个参数服务器1022中对应于主模型1的子模型汇总起来就可以得到完整的主模型1,或者例如,每个参数服务器1022中可以存储对应于主模型1和主模型2的子模型,则将每个参数服务器1022中对应于主模型1的子模型汇总起来就可以得到完整的主模型1,将每个参数服务器1022中对应于主模型2的子模型汇总起来就可以得到完整的主模型2。例如,若主节点101将多个模型对应的训练任务分别下发到从节点102执行,则主节点101可以预先将多个模型对应的子模型分别配置给各参数服务器1022。即,在进行模型训练时,可以单独训练一个模型,或者也可以对多个模型进行同时训练,从而实现对模型的并行训练,提高系统的训练效率。
参数客户端1021在执行训练任务后,即在进行模型训练后,可以得到训练结果,或者称为迭代运算结果,参数客户端1021可以将得到的迭代运算结果发送给对应的参数服务器1022,参数服务器1022根据迭代运算结果更新自身存储的子模型,并将更新后的结果(比如包括更新后的模型参数)再发送给参数客户端1021,从而参数客户端1021继续进行后续的训练过程。
该分布式系统可以包括多个参数服务器1022和多个参数客户端1021(参数服务器1022的数量与参数客户端1021的数量可以相等,或者也可以不等),那么主节点101可以首先设置参数服务器1022与参数客户端1021之间的对应关系,一个参数服务器1022可以对应至少一个参数客户端1021,同样的,一个参数客户端1021也可以对应至少一个参数服务器1022,相对应的参数服务器1022和参数客户端1021可以位于同一个从节点102中,或者也可以位于不同的从节点102中,具有对应关系的参数服务器1022与参数客户端1021可以进行通信。例如,第一参数服务器与第一参数客户端和第二参数客户端具有对应关系,那么如果第一参数服务器更新了本地的子模型1,则第一参数服务器可以将更新子模型1后得到的参数分别发送给第一参数客户端和第二参数客户端。再例如,第一参数客户端与第一参数服务器、第二参数服务器和第三参数服务器都具有对应关系,则第一参数客户端在进行一轮训练后,可以将得到的训练结果发送给第一参数服务器、第二参数服务器和第三参数服务器中的至少一个。
其中,参数服务器1022和参数客户端1021之间的对应关系可以存储在主节点101、参数服务器1022和参数客户端1021中的任意一个或多个中。比如,系统中包括第一参数服务器、第二参数服务器和第三参数服务器,以及包括第一参数客户端、第二参数客户端、第三参数客户端和第四参数客户端,那么主节点101中可以存储各个参数服务器1022和各个参数客户端1021之间的对应关系,对于第一参数服务器来说,可以存储各个参数服务器1022和各个参数客户端1021之间的对应关系,或者只存储第一参数服务器的对应关系,比如第一参数服务器与第一参数客户端和第二参数客户端具有对应关系,对于第一参数客户端来说,可以存储各个参数服务器1022和各个参数客户端1021之间的对应关系,或者只存储第一参数客户端的对应关系,比如第一参数客户端与第一参数服务器、第二参数服务器和第三参数服务器具有对应关系。
每个从节点102进行训练时,需要通过已知的数据进行训练,则可以为每个从节点102设置存储器103(当然也可以为多个从节点102设置同一个存储器103,本发明实施例不作限制),存储器103可以用于存储从节点102进行训练所需的数据,从节点102可以直接从相应的存储器103中获取数据进行训练,存储器103中的数据可以来自文件系统。比如在Spark平台下,存储器103可以通过弹性分布式数据集(Resilient Distributed Datasets,RDD)实现,各个RDD中的数据可以来自Hadoop分布式文件系统(Hadoop Distributed FileSystem,HDFS)。
可选的,请参见图1B,为本发明实施例提供的另一种可能的分布式系统架构图。
图1B中的P大于等于2,图1B中也以维护L个任务队列为例,L大于等于3。图1B相对于图1A,主要区别在于从节点102中分布的参数服务器1022和参数客户端1021的数量有所不同,在图1B中,一个从节点102中可以部署多个参数客户端1021和多个参数服务器1022。虽然参数服务器1022和参数客户端1021的设置方式有所不同,但图1B所示的分布式系统与图1A所示的分布式系统的工作方式相同,不多赘述。
下面结合附图介绍本发明实施例提供的方法。在下面的介绍过程中,第一参数服务器可以是图1A或图1B中的任意一个参数服务器1022,第一从节点即第一参数服务器所在的从节点,第一参数客户端可以是图1A或图1B中的任意一个参数客户端1021。其中,如下将介绍的图2-图4中的方法均可以基于图1A或图1B中的分布式系统。
请参见图2,本发明实施例提供一种训练模型的方法,该方法可以通过图1A或图1B所示的分布式系统实现,该方法的流程描述如下。
步骤201:第一从节点中的参数服务器接收该分布式系统中至少一个从节点102中的参数客户端发送的训练结果;
步骤202:第一从节点中的参数服务器根据接收的训练结果更新其存储的子模型。
其中,第一从节点为该分布式系统中的任一从节点102,每个从节点102的参数客户端通过执行与该从节点102的参数服务器上存储的子模型对应的训练任务以得到训练结果。
其中图2所提到的模型可以称为主模型,例如,将一个主模型拆分,可以得到多个子模型,得到的子模型的数量例如可以与分布式系统中的参数服务器的数量相同,这样可以将拆分得到的每个子模型分给一个参数服务器,即每个参数服务器都共同参与对主模型的训练过程,每个参数服务器中存储的同一主模型的不同子模型。图2是以一个主模型为例,而本发明实施例中的分布式系统可以同时对多个主模型进行训练,例如,如果将N个主模型拆分,对于系统中的一个参数服务器来说,就可以存储N个子模型,这N个子模型分别为N个主模型拆分得到的子模型。以下为了描述方便,将第一从节点中的参数服务器称为第一参数服务器,当然第一从节点中可能包括多个参数服务器,如果第一从节点中部署了多个参数服务器,则视为以其中的第一参数服务器为例。
可选的,一个从节点中的参数客户端除了要对该从节点中的参数服务器中存储的子模型进行训练之外,还可以对其他从节点中的参数服务器存储的子模型进行训练,本发明实施例不作限制。
比如第一参数服务器与该分布式系统中的至少一个从节点中的参数客户端具有对应关系,那么可以认为这些参数客户端都参与对第一参数服务器中存储的子模型的训练,这些参数客户端在进行一轮迭代运算后,全部或部分参数客户端会将迭代运算得到的结果(本发明实施例中称为训练结果)发送给第一参数服务器。第一参数服务器在接到各个参数客户端发送的训练结果后,可以根据训练结果更新第一参数服务器对应的子模型,比如第一参数服务器可以根据得到的训练结果更新存储的N个子模型,N个子模型可以是第一参数服务器存储的全部子模型,或者也可以是第一参数服务器存储的部分子模型。
可选的,在第一参数服务器更新N个子模型之后,可以得到一些参数,第一参数服务器可以将得到的参数发送给一个或多个参数客户端,比如第一参数服务器可以将得到的参数发送给向其第一参数服务器发送训练结果的各参数客户端,或者与第一参数服务器具有对应关系的全部或部分参数客户端,或者该分布式系统中所有参与对N个模型的训练的参数客户端。参数客户端接收到第一参数服务器发送的参数后,可以根据这些参数继续进行后续的训练过程,例如,对于其中的位于第一从节点中的参数客户端来说,在接收第一参数服务器发送的参数后,可以根据接收的参数对第一参数服务器中存储的子模型进行更新,可选的,如果该参数客户端还参与对其他从节点中的参数服务器中存储的子模型进行训练,则该参数客户端还可以根据接收的参数对相应的参数服务器中存储的子模型进行更新。
本发明实施例中,参数服务器负责进行子模型的更新,无需主节点每一轮进行模型更新,极大地减轻了主节点的负担。另外,若由主节点进行模型的更新,则在主节点每轮进行模型更新后,还需要将更新后得到的参数分别下发给每个从节点,在大规模的训练场景下,每一轮更新都可能产生大量的参数,主节点和从节点需要进行频繁而且数据量较大的通信过程,容易造成堵塞,也使得系统的性能受损。而本发明实施例中,参数服务器和参数客户端可以理解为从节点中的逻辑实体。
可选的,有些训练结果对于全局来说可能不是很重要,或者可能无需每轮迭代都用这些训练结果来更新参数服务器中的子模型,因此,对于这类训练结果,参数客户端可以迭代多次之后再发送给参数服务器,比如,第一参数服务器接收的训练结果中包括第一参数客户端发送的训练结果(例如称为第一训练结果),第一训练结果可以是第一参数客户端对第一参数服务器存储的子模型进行n次训练后得到的,或者也可以是第一参数客户端对包括第一参数服务器在内的多个参数服务器中存储的子模型进行n次训练得到的,n为正整数,即第一训练结果可以是进行一次迭代运算后得到的结果,或者也可以是进行多次迭代运算后得到的结果。其中,第一参数客户端例如可以是第一从节点中的任意一个参数客户端,或者也可以是该分布式系统中的其他从节点中的任意一个参数客户端。这样,对于非关键数据,参数客户端可以多次迭代之后再将训练结果发送给参数服务器,减少了需传输的数据量,节省传输资源,也提高了训练效率。当然,具体对于哪些数据可以这样处理,即对于哪个参数客户端执行的哪些训练任务可以迭代多次后再上报训练结果,可以由主节点、参数服务器或参数客户端预先配置。
比如,该分布式系统中的第一参数客户端和第二参数客户端共同训练主模型1,主模型1对应训练任务1和训练任务2,第一参数客户端执行训练任务1的一部分和训练任务2的一部分,第二参数客户端执行训练任务1的剩余部分和训练任务2的剩余部分。那么第一参数客户端和第二参数客户端可能都会进行多次迭代过程,即进行多次训练过程(第一参数客户端需进行的迭代次数和第二参数客户端需进行的迭代次数可能相同也可能不同),在第一参数客户端和第二参数客户端最后一次迭代完毕后,均可以将训练结果上报给参数服务器,比如第一参数客户端上报给第一参数服务器,第二参数客户端上报给第二参数服务器,第一参数服务器更新存储的主模型1的子模型1,第二参数服务器更新存储的主模型1的子模型2(在更新时,第一参数服务器可以获取第二参数服务器中的子模型2的信息,从而可以加权后对子模型1进行更新,对于第二参数服务器来说也是同样),这样就相当于主模型1得到了更新,即相当于主模型1训练完毕。如果要将训练完毕的主模型1发送给用户,那么第一参数服务器和第二参数服务器可以分别将子模型1和子模型2发送给主节点101,主节点101对子模型1和子模型2进行整合后发送给用户。
其中,参数客户端在对模型进行训练时,可能需要进行多次迭代,即可能需要进行多次训练过程,根据参数客户端的性能、以及所执行的训练任务等的不同,各个参数客户端的执行速度可能也有所不同,比如有的参数客户端的速度较快,有的参数客户端的速度较慢。因为目前的技术要求同步,因此可能需要执行速度较快的参数客户端停下来等待执行速度较慢的参数客户端,比如可能要等到所有参数客户端的步伐一致后再一起进行后续的过程。这样显然较为浪费时间,也影响了速度较快的参数客户端的性能。
为解决这些问题,本发明实施例提出:在第一从节点中的参数客户端(例如为第一参数客户端)进行第K轮训练完毕时,第一参数客户端确定该分布式系统中训练速度最慢的参数客户端(例如称为第二参数客户端)正在训练的轮数与K之间的差值,若该差值大于预设差值,则第一参数客户端可以从工作状态切换为等待状态,以等待第二参数客户端进行训练,在第二参数客户端训练的轮数与K之间的差值小于等于预设差值时,第一参数客户端再从等待状态切换为工作状态,其中,K为正整数。其中,第二参数客户端与第一参数客户端可以位于同一个从节点中,比如都位于第一从节点中,或者也可以位于不同的从节点中。
比如,每个参数客户端中都可以维护总共需要迭代的轮数(也可称为次数),还可以维护当前正在执行的迭代运算的轮数。比如,一个参数客户端总共需要迭代10轮,当前执行到其中的第3轮。那么,第一参数客户端在进行一轮训练完毕时,比如进行第K轮训练完毕时,可以确定其他参数客户端分别训练到了第几轮,比如第一参数客户端可以通过参数服务器获知其他参数客户端的训练情况,或者也可以通过直接与其他参数客户端通信的方式获知其他参数客户端的训练情况。比如系统中还包括第二参数客户端、第三参数客户端和第四参数客户端,其中第二参数客户端训练到第2轮,第三参数客户端训练到第3轮,第四参数客户端训练到第5轮,而K=8,则第一参数客户端确定第二参数客户端为系统中训练速度最慢的参数客户端。在每个参数客户端中可以预先设置轮数之间的最大差值,例如称为预设差值,每个参数客户端中设置的预设差值可以相同也可以不同,比如对于第一参数服务器来说,设置的预设差值为4,即第一参数客户端与系统中训练速度最慢的参数客户端之间的训练轮数的差值需小于等于4,那么此时,第一参数客户端和第二参数客户端的训练轮数之间的差值为6,显然大于4,则第一参数客户端可以停止工作,开始等待第二参数客户端的训练,直到第二参数客户端训练的轮数与K之间的差值小于等于4时,第一参数客户端再继续开始工作。这样,尽量保证各个参数客户端之间训练的轮数的差距不会太大,使得最终得到的模型收敛,最快的参数客户端无需等到最慢的参数客户端完全赶上后再进行后续工作,节省时间,提高训练效率,而且也尽量保证速度快的参数客户端可以保持训练速度,尽量减小对参数客户端的性能的影响。
可选的,第一参数客户端在重新开始工作后,可以继续进行下一轮训练,或者也可以将第K轮训练得到的训练结果发送给对应的参数服务器,例如可以将第K轮训练得到的训练结果发送给该分布式系统中的至少一个从节点102中的参数服务器(其中包括第一参数服务器),或者可以将第K轮训练得到的训练结果发送给第一参数服务器,具体如何操作可根据系统的需要而定。
在介绍图1A和图1B时介绍了,主节点101可以接收任务列表,并可以将任务列表中的训练任务分别分配给从节点102执行。下面提供第二种分布式系统中的模型训练方法,用于介绍主节点102如何为从节点102分配训练任务。
请参见图3,为本发明实施例提供的另一种分布式系统中的模型训练方法,同样的,该方法可以通过图1A或图1B所示的分布式系统实现,例如该方法的流程描述如下。
步骤301:主节点101将用于训练模型的原子任务分配给至少一个进程;其中,一个训练任务包括至少一个原子任务;
步骤302:主节点101建立任务管理进程,任务管理进程用于对至少一个进程中的原子任务进行管理。
主节点101在接收客户端发送的任务列表后,可以将任务列表中包括的原子任务(比如,一个模型对应于至少一个训练任务,这些训练任务都可以认为是大任务,而一个大任务又可以包括至少一个原子任务,例如,一个大任务包括5个原子任务,将这5个原子任务全部执行完毕,就认为将这个大任务执行完毕)分发到多个任务队列中,任务队列可以是主节点101在接收任务列表后生成的,或者也可以是之前就生成的。每个任务队列比如可以采用先入先出(FIFO)的规则,那么主节点101在将原子任务放到任务队列中时,可以对原子任务进行排序,比如可以按照原子任务的优先级进行排序,可以将优先级高的原子任务先放到任务队列中,以提前执行,或者比如可以按照原子任务的执行时间进行排序,可以将所需要的执行时间较长的原子任务先放到任务队列中,以提前执行,等等,这样可以充分考虑到将所需的执行时间较长的任务或重要任务优先执行,缩短整个任务执行的时间,提高模型训练效率。
可选的,主节点101在接收客户端发送的任务列表后,还可以划分两组进程,其中一组进程可以是单一进程,这组单一进程可以用于维护所有训练任务的标识(比如这组单一进程可以对应于图1A或图1B中的调度器),另一组进程可以是多进程,在这组多进程里可以包括多个进程,主节点101可以将所有的原子任务分配到这组多进程(比如图1A或图1B中的每个任务队列可以对应于多进程中的一个进程,一个任务队列中包括多个原子任务,一个任务队列里的原子任务可以由对应的进程处理)中。为了描述方便,将单一进程组称为任务管理进程组,将多进程组称为任务运行进程组。
任务管理进程组可以维护任务运行进程组中的每个原子任务的标识,还可以维护每个原子任务当前的状态,比如标识1所对应的原子任务1的状态是已处理还是未处理,等等,类似公告牌。
任务运行进程组中的任意一个原子任务可以向任务管理进程组申请执行,任务管理进程组在接收原子任务发送的执行请求后,可以为申请执行的原子任务分配执行时长,以及可以分配从节点102,从而可以将通过承载该原子任务的进程(即任务运行进程组中与该原子任务所在的任务队列对应的进程)下发到从节点102去执行,即下发到参数客户端1021中执行。比如一个大任务包括多个原子任务,那么这个大任务包括的原子任务可能被分配到不同的从节点102去执行,或者理解为这个大任务包括的原子任务可能被分配到不同的参数客户端中执行,其中每个原子任务由一个参数客户端执行,所以,可以理解为多个参数客户端分配了相同的任务(即大任务),而不同的参数客户端执行任务的不同部分(即执行不同的原子任务)。
可选的,比如任务运行进程组中的任务队列1中的原子任务1和原子任务2都申请执行,那么任务管理进程组在收到原子任务1和原子任务2发送的执行请求后,确定原子任务1在任务队列1中排在原子任务2前面,则任务管理进程组可以先让原子任务1执行,即为原子任务1分配执行时长以及分配从节点(或者理解为分配参数客户端),并通过承载原子任务1的进程将原子任务1下发到参数客户端去执行。这样就实现了任务队列中先入先出的原则。
由于一个任务队列对应于一个进程,因此本发明实施例中任务运行进程组中的每个进程在一个时刻可以只执行一个原子任务,有效利用了资源,使得原子任务的执行效率更高。
可选的,任务管理进程组可以在收到原子任务发送的执行请求后再预估该原子任务所需的执行时长,或者,任务管理进程组可以在主节点将原子任务分配到任务队列之后即预估每个原子任务所需的执行时长,这样,在原子任务申请执行时,无需再预估该原子任务所需的执行时长,能够尽快将该原子任务分配下去进行执行,提高执行效率。当然,如果主节点在将原子任务分配给任务队列时,按照原子任务的执行时长对多个原子任务进行排序,那么显然,任务管理进程组需要在主节点将原子任务分配到任务队列之后即预估每个原子任务所需的执行时长。
可选的,任务管理进程可以采用加权评估算法预估每个原子任务大概的执行时长。
可选的,在从节点将一个原子任务处理完成后,可以报告主节点101(例如,参数客户端将一个原子任务处理完毕后,可以通过参数服务器上报主节点101,或者也可以直接上报主节点101),则主节点101可以更新任务管理进程组里该原子任务的状态,比如可以将该原子任务的状态由未处理更新为已处理。任务管理进程组在处理原子任务发送的执行请求时,可以优先处理未处理过的原子任务发送的执行请求。
目前为了实现任务并行,是将原子任务分配到不同的进程上执行,在分配时可能是任意的,那么可能有些进程中的原子任务先执行完,有些进程中的原子任务后执行完,原子任务先执行完成的进程就会频繁地从原子任务未执行完的进程中窃取任务,导致进程间的频繁调度,性能开销较大,由于进程之间抢占资源,也会有死锁的风险。本发明实施例中,通过任务管理进程进行统一调度,各个进程都在调度下工作,先执行完任务的进程不会窃取其他进程中的原子任务,有效解决了进程抢占的问题,节省性能开销,也避免了死锁的风险。
下面结合附图介绍本发明实施例中的装置。
可选的,基于同一发明构思,本发明实施例提供一种分布式系统中的计算节点,该计算节点例如可以是图1A或图1B中的任意一个从节点102,该计算节点可以完成如图2-图3所介绍的功能。
在一个实施例中,该计算节点可以是一台物理机,如图4所示,该物理机1200包括硬件层100,运行在硬件层100之上的VMM(Virtual Machine Monitor,虚拟机监视器)110,以及运行在VMM 110之上的宿主机Host 1201和若干虚拟机(VM,Virtual Machine),其中,硬件层包括但不限于:I/O设备、CPU和memory。计算节点中的参数服务器和参数客户端分别可以为物理机1200中的一台虚拟机,比如VM 1202;或者参数服务器和参数客户端可以用运行在同一虚拟机上的不同进程或线程来实现。具体地,VM1202通过运行可执行程序,并在程序运行的过程中通过宿主机Host 1201来调用硬件层100的硬件资源,以实现以上各个实施例所描述的参数客户端和参数服务器的功能。
在另一个实施例中,参见图5,该计算节点可以包括存储器501和处理器502。
其中,处理器502可以是CPU或ASIC,可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA开发的硬件电路,可以是基带芯片。
存储器501的数量可以是一个或多个。存储器501可以包括只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)和磁盘存储器。
这些存储器501可以通过总线与处理器502相连接(图5以此为例),或者也可以通过专门的连接线分别与处理器502连接。
通过对处理器502进行设计编程,将前述实施例所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述图2-图3所示的方法。如何对处理器502进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
本发明实施例中可以在从节点中设置参数服务器和参数客户端,参数客户端用于进行训练过程,参数服务器可以更新子模型,那么,主节点只需负责将模型进行切分,并将切分后得到的子模型分别分配给多个参数服务器,多个参数服务器就可以分别更新子模型,也就相当于主模型得到了更新,这样,将更新模型的工作从主节点转移到多个参数服务器,在较大幅度上减少了主节点的工作量,减轻了主节点的负担,每个参数服务器可能只承担对一部分子模型的更新工作,对于参数服务器来说负担也不是很重,尽量避免模型的更新过程成为整个训练过程的瓶颈,提高模型训练的效率。
在本发明中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive)、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本发明的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。
Claims (8)
1.一种分布式系统中训练模型的方法,所述分布式系统包括主节点和多个从节点,所述多个从节点包括第一从节点和第二从节点;其特征在于,每个从节点包括至少一个参数服务器和至少一个参数客户端,其中每个参数服务器存储有所述模型对应的一个子模型,且每个参数服务器存储的子模型不同,所述模型对应的子模型为所述主节点对所述模型进行切分得到的,所述方法包括:
所述第一从节点中的参数服务器接收所述第一从节点的参数客户端发送的第一训练结果;其中,所述第一从节点的参数客户端通过执行与所述第一从节点的参数服务器上存储的子模型对应的训练任务以得到所述第一训练结果;
所述第一从节点中的参数服务器接收所述第二从节点的参数客户端发送的第二训练结果;其中,所述第二从节点的参数客户端通过执行与所述第一从节点的参数服务器上存储的子模型对应的训练任务以得到所述第二训练结果;
所述第一从节点中的参数服务器根据接收的所述第一训练结果和所述第二训练结果更新其存储的子模型。
2.如权利要求1所述的方法,其特征在于,所述第一从节点中的参数服务器根据接收的所述第一训练结果和所述第二训练结果更新其存储的子模型之后,还包括:
所述第一从节点中的参数服务器将存储的子模型更新后得到的参数发送给所述第一从节点中的参数客户端;所述参数用于所述第一从节点中的参数客户端对所述第一从节点中的参数服务器存储的子模型进行后续训练。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述第一从节点中的参数客户端完成第K轮训练时,所述第一从节点中的参数客户端确定所述分布式系统中训练速度最慢的参数客户端当前正在训练的轮数与K之间的差值大于预设差值;K为正整数;
所述第一参数客户端从工作状态切换为等待状态,以等待所述训练速度最慢的参数客户端进行训练;
在所述训练速度最慢的参数客户端训练的轮数与K之间的差值小于等于所述预设差值时,所述第一从节点中的参数客户端从所述等待状态切换为工作状态。
4.如权利要求3所述的方法,其特征在于,所述第一从节点中的参数客户端从所述等待状态切换为工作状态,包括:
所述第一从节点中的参数客户端开始进行第K+1轮训练;或
所述第一从节点中的参数客户端将所述第K轮训练得到的训练结果发送给所述第一从节点中的参数服务器,所述训练结果用于所述第一从节点中的参数服务器更新其存储的子模型。
5.一种分布式系统中的计算节点,其特征在于,所述计算节点包括:
参数服务器和参数客户端;其中,
所述计算节点中的参数服务器存储有待训练模型的一个或多个子模型,所述待训练模型的子模型是对所述待训练模型进行切分得到的,且所述参数服务器上存储的子模型与所述分布式系统中其它计算节点的参数服务器中存储的子模型不同;所述计算节点中的参数客户端用于执行所述计算节点的参数服务器中存储的所述一个或多个子模型对应的训练任务,以得到每个子模型的训练结果,其中,每个子模型对应至少一个训练任务;
所述计算节点中的参数服务器用于接收所述计算节点中的参数客户端发送的第一训练结果,以及所述分布式系统中的至少一个其它计算节点的参数客户端发送的第二训练结果,根据接收的所述第一训练结果和所述第二训练结果更新存储的子模型;其中,所述计算节点的参数客户端通过执行与所述计算节点的参数服务器上存储的子模型对应的训练任务以得到所述第一训练结果;所述其它计算节点的参数客户端通过执行与所述计算节点的参数服务器上存储的子模型对应的训练任务以得到所述第二训练结果。
6.如权利要求5所述的计算节点,其特征在于,所述计算节点中的参数服务器还用于:
在根据接收的所述第一训练结果和所述第二训练结果更新其存储的子模型之后,将存储的子模型更新后得到的参数分别发送给所述分布式系统中的至少一个计算节点中的参数客户端;所述参数用于所述至少一个计算节点中的参数客户端对所述至少一个计算节点中的参数服务器所存储的子模型进行后续训练。
7.如权利要求5或6所述的计算节点,其特征在于,所述计算节点中的参数客户端还用于:
在所述参数客户端进行第K轮训练完毕时,确定所述分布式系统中训练速度最慢的参数客户端正在训练的轮数与K之间的差值大于预设差值;K为正整数;
从工作状态切换为等待状态,以等待所述训练速度最慢的参数客户端进行训练;
在所述训练速度最慢的参数客户端训练的轮数与K之间的差值小于等于所述预设差值时,从所述等待状态切换为工作状态。
8.如权利要求7所述的计算节点,其特征在于,所述计算节点中的参数客户端还用于:
开始进行第K+1轮训练;或
将所述第K轮训练得到的训练结果发送给所述计算节点中的参数服务器,所述训练结果用于所述计算节点中的参数服务器更新其存储的子模型。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610071145.XA CN107025205B (zh) | 2016-01-30 | 2016-01-30 | 一种分布式系统中的训练模型的方法及设备 |
PCT/CN2017/071001 WO2017128961A1 (zh) | 2016-01-30 | 2017-01-12 | 一种分布式系统中的训练模型的方法及设备 |
EP17743576.5A EP3399426B1 (en) | 2016-01-30 | 2017-01-12 | Method and device for training model in distributed system |
US16/044,757 US10764125B2 (en) | 2016-01-30 | 2018-07-25 | Method and device for training model in distributed system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610071145.XA CN107025205B (zh) | 2016-01-30 | 2016-01-30 | 一种分布式系统中的训练模型的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025205A CN107025205A (zh) | 2017-08-08 |
CN107025205B true CN107025205B (zh) | 2021-06-22 |
Family
ID=59397334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610071145.XA Active CN107025205B (zh) | 2016-01-30 | 2016-01-30 | 一种分布式系统中的训练模型的方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10764125B2 (zh) |
EP (1) | EP3399426B1 (zh) |
CN (1) | CN107025205B (zh) |
WO (1) | WO2017128961A1 (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202017007517U1 (de) * | 2016-08-11 | 2022-05-03 | Twitter, Inc. | Aggregatmerkmale für maschinelles Lernen |
US11392133B2 (en) | 2017-06-06 | 2022-07-19 | Plusai, Inc. | Method and system for object centric stereo in autonomous driving vehicles |
US11042155B2 (en) * | 2017-06-06 | 2021-06-22 | Plusai Limited | Method and system for closed loop perception in autonomous driving vehicles |
CN107729353B (zh) * | 2017-08-30 | 2020-04-07 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN107622310B (zh) * | 2017-08-30 | 2019-03-26 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN109426701B (zh) * | 2017-08-30 | 2022-04-05 | 西门子(中国)有限公司 | 数据模型的运行方法、运行系统和存储介质 |
CN109754105B (zh) * | 2017-11-07 | 2024-01-05 | 华为技术有限公司 | 一种预测方法及终端、服务器 |
CN107944566B (zh) * | 2017-11-28 | 2020-12-22 | 杭州云脑科技有限公司 | 一种机器学习方法、主节点、工作节点及系统 |
EP3503117A1 (en) * | 2017-12-20 | 2019-06-26 | Nokia Technologies Oy | Updating learned models |
CN109993299B (zh) * | 2017-12-29 | 2024-02-27 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
CN108280522B (zh) * | 2018-01-03 | 2021-08-20 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
CN110324170B (zh) * | 2018-03-30 | 2021-07-09 | 华为技术有限公司 | 数据分析设备、多模型共决策系统及方法 |
CN112041860A (zh) * | 2018-04-25 | 2020-12-04 | 三星电子株式会社 | 区块链上的机器学习 |
CN108664116B (zh) * | 2018-04-27 | 2020-03-27 | 北京邮电大学 | 网络功能虚拟化的自适应省电方法、装置及cpu控制器 |
EP3565218B1 (en) | 2018-04-30 | 2023-09-27 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of multi-owner nodes using blockchain |
EP3564873B1 (en) | 2018-04-30 | 2022-11-30 | Hewlett Packard Enterprise Development LP | System and method of decentralized machine learning using blockchain |
WO2019211651A1 (en) * | 2018-05-02 | 2019-11-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Placement-aware acceleration of parameter optimization in a predictive model |
CN109190769B (zh) * | 2018-08-21 | 2021-12-24 | 深圳点宽网络科技有限公司 | 一种基于区块链的人工智能训练方法 |
US11429853B2 (en) * | 2018-11-13 | 2022-08-30 | Gyrfalcon Technology Inc. | Systems and methods for determining an artificial intelligence model in a communication system |
RU2743898C1 (ru) | 2018-11-16 | 2021-03-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ выполнения задач |
CN111274067A (zh) * | 2018-12-04 | 2020-06-12 | 北京京东尚科信息技术有限公司 | 执行计算任务的方法和装置 |
US11610110B2 (en) | 2018-12-05 | 2023-03-21 | Bank Of America Corporation | De-conflicting data labeling in real time deep learning systems |
US20220050918A1 (en) * | 2018-12-12 | 2022-02-17 | Hewlett-Packard Development Company, L.P. | Updates of machine learning models based on confidential data |
CN109559734B (zh) | 2018-12-18 | 2022-02-18 | 百度在线网络技术(北京)有限公司 | 声学模型训练的加速方法和装置 |
CN111445027B (zh) * | 2019-01-16 | 2024-01-16 | 顺丰科技有限公司 | 机器学习模型的训练方法和装置 |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US20200272945A1 (en) * | 2019-02-21 | 2020-08-27 | Hewlett Packard Enterprise Development Lp | System and method of decentralized model building for machine learning and data privacy preserving using blockchain |
RU2744032C2 (ru) | 2019-04-15 | 2021-03-02 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для определения результата выполнения задачи в краудсорсинговой среде |
CN110046048B (zh) * | 2019-04-18 | 2021-09-28 | 杭州电子科技大学 | 一种基于工作量自适应快速重分配的负载均衡方法 |
KR102224487B1 (ko) * | 2019-05-02 | 2021-03-08 | 숭실대학교산학협력단 | 머신 러닝 플랫폼 관리 시스템 및 방법 |
CN110110861B (zh) * | 2019-05-09 | 2021-11-26 | 北京市商汤科技开发有限公司 | 确定模型超参数及模型训练的方法和装置、存储介质 |
RU2744038C2 (ru) * | 2019-05-27 | 2021-03-02 | Общество С Ограниченной Ответственностью «Яндекс» | Способ и система для определения результата для задачи, выполняемой в краудсорсинговой среде |
US11061819B2 (en) | 2019-05-28 | 2021-07-13 | Micron Technology, Inc. | Distributed computing based on memory as a service |
US20200379809A1 (en) * | 2019-05-28 | 2020-12-03 | Micron Technology, Inc. | Memory as a Service for Artificial Neural Network (ANN) Applications |
US11100007B2 (en) | 2019-05-28 | 2021-08-24 | Micron Technology, Inc. | Memory management unit (MMU) for accessing borrowed memory |
CN112183757B (zh) * | 2019-07-04 | 2023-10-27 | 创新先进技术有限公司 | 模型训练方法、装置及系统 |
CN110472747B (zh) * | 2019-08-16 | 2022-07-05 | 第四范式(北京)技术有限公司 | 用于执行多机器学习任务的分布式系统及其方法 |
CN112448899A (zh) * | 2019-08-31 | 2021-03-05 | 深圳致星科技有限公司 | 一种基于流量调度的多任务训练集群网络优化方法 |
RU2019128272A (ru) | 2019-09-09 | 2021-03-09 | Общество С Ограниченной Ответственностью «Яндекс» | Способ и система для определения производительности пользователя в компьютерной краудсорсинговой среде |
CN110569911B (zh) * | 2019-09-11 | 2022-06-07 | 深圳绿米联创科技有限公司 | 图像识别方法、装置、系统、电子设备及存储介质 |
CN110647765B (zh) * | 2019-09-19 | 2022-04-12 | 济南大学 | 协同学习框架下基于知识迁移的隐私保护方法及系统 |
CN110673959A (zh) * | 2019-10-14 | 2020-01-10 | 京东数字科技控股有限公司 | 用于处理任务的系统、方法和装置 |
RU2019135532A (ru) | 2019-11-05 | 2021-05-05 | Общество С Ограниченной Ответственностью «Яндекс» | Способ и система для выбора метки из множества меток для задачи в краудсорсинговой среде |
CN115409198A (zh) * | 2019-12-11 | 2022-11-29 | 支付宝(杭州)信息技术有限公司 | 分布式预测方法及其系统 |
CN112988339A (zh) * | 2019-12-16 | 2021-06-18 | 深圳云天励飞技术有限公司 | 一种数据管理方法及装置 |
CN111190487A (zh) * | 2019-12-30 | 2020-05-22 | 中国科学院计算技术研究所 | 一种建立数据分析模型的方法 |
US11748835B2 (en) | 2020-01-27 | 2023-09-05 | Hewlett Packard Enterprise Development Lp | Systems and methods for monetizing data in decentralized model building for machine learning using a blockchain |
US11218293B2 (en) | 2020-01-27 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Secure parameter merging using homomorphic encryption for swarm learning |
RU2020107002A (ru) | 2020-02-14 | 2021-08-16 | Общество С Ограниченной Ответственностью «Яндекс» | Способ и система приема метки для цифровой задачи, исполняемой в краудсорсинговой среде |
CN111476403A (zh) * | 2020-03-17 | 2020-07-31 | 华为技术有限公司 | 预测模型构建方法和相关装置 |
CN111461207B (zh) * | 2020-03-30 | 2023-07-18 | 北京奇艺世纪科技有限公司 | 一种图片识别模型训练系统及方法 |
CN111510327B (zh) | 2020-04-08 | 2022-01-21 | 北京字节跳动网络技术有限公司 | 用于共同训练模型的训练参与端的网络连接方法、装置、系统和服务器 |
CN111639006B (zh) * | 2020-05-29 | 2023-03-21 | 深圳前海微众银行股份有限公司 | 一种集群的进程管理方法及装置 |
CN111753997B (zh) * | 2020-06-28 | 2021-08-27 | 北京百度网讯科技有限公司 | 分布式训练方法、系统、设备及存储介质 |
TWI777262B (zh) * | 2020-09-30 | 2022-09-11 | 財團法人資訊工業策進會 | 機器學習系統及機器學習方法 |
CN114945817A (zh) * | 2020-10-30 | 2022-08-26 | 京东方科技集团股份有限公司 | 基于缺陷检测的任务处理方法、装置及设备及存储介质 |
US11775667B2 (en) | 2020-11-04 | 2023-10-03 | Hewlett Packard Enterprise Development Lp | Virtualizing secure storage of a baseboard management controller to a host computing device |
US20220156111A1 (en) * | 2020-11-19 | 2022-05-19 | International Business Machines Corporation | Parallel file system scans with multiple shared queues |
CN112464278B (zh) * | 2020-11-24 | 2023-07-21 | 平安科技(深圳)有限公司 | 基于非均匀分布数据的联邦建模方法及相关设备 |
CN112561078B (zh) * | 2020-12-18 | 2021-12-28 | 北京百度网讯科技有限公司 | 分布式的模型训练方法及相关装置 |
CN112561079A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 分布式的模型训练装置、方法及计算机程序产品 |
CN112860393B (zh) * | 2021-01-20 | 2024-03-15 | 北京科技大学 | 一种分布式任务调度方法及系统 |
CN115249073A (zh) * | 2021-04-25 | 2022-10-28 | 华为技术有限公司 | 一种联邦学习方法以及装置 |
WO2022228679A1 (en) * | 2021-04-29 | 2022-11-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Developing machine-learning models |
CN113361598B (zh) * | 2021-06-04 | 2022-10-11 | 重庆大学 | 基于分布式学习的模型训练方法、服务器及分布式系统 |
CN113407410A (zh) * | 2021-06-15 | 2021-09-17 | 厦门理工学院 | 一种区块链网络异常检测方法 |
CN113792875A (zh) * | 2021-09-09 | 2021-12-14 | 曙光信息产业(北京)有限公司 | 一种分布式通信库的性能测试方法、装置、设备及介质 |
CN114024894B (zh) * | 2021-11-03 | 2023-04-25 | 苏州全时空信息技术有限公司 | 软件定义天地一体化网络中的动态传算方法及系统 |
CN114091672B (zh) * | 2021-11-29 | 2022-09-27 | 北京百度网讯科技有限公司 | 分布式模型推理方法及装置、电子设备和介质 |
EP4246323A1 (en) * | 2022-03-17 | 2023-09-20 | Tata Consultancy Services Limited | Method and system to process asynchronous and distributed training tasks |
CN114726861B (zh) * | 2022-04-02 | 2023-07-18 | 中国科学技术大学苏州高等研究院 | 基于空闲服务器的模型聚合加速方法和装置 |
CN116983656B (zh) * | 2023-09-28 | 2023-12-26 | 腾讯科技(深圳)有限公司 | 决策模型的训练方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005911A (zh) * | 2015-06-26 | 2015-10-28 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6883135B1 (en) * | 2000-01-28 | 2005-04-19 | Microsoft Corporation | Proxy server using a statistical model |
CN101526960B (zh) * | 2009-04-21 | 2012-02-08 | 王鹏 | 支持向量数据描述外壳算法 |
TWI476586B (zh) * | 2011-07-13 | 2015-03-11 | Inst Information Industry | 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體 |
CN102523249A (zh) * | 2011-11-24 | 2012-06-27 | 哈尔滨工业大学 | 基于Web的分布式远程仿真系统及仿真方法 |
CN102521056B (zh) * | 2011-12-28 | 2013-08-14 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
US9218573B1 (en) * | 2012-05-22 | 2015-12-22 | Google Inc. | Training a model using parameter server shards |
US9195475B2 (en) * | 2013-05-01 | 2015-11-24 | Hewlett-Packard Development Company, L.P. | Data relay by server |
CN104731702B (zh) * | 2013-12-23 | 2017-12-26 | 展讯通信(上海)有限公司 | 测试系统及其服务端 |
CN103745225A (zh) * | 2013-12-27 | 2014-04-23 | 北京集奥聚合网络技术有限公司 | 分布式ctr预测模型训练的方法和系统 |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
CN104714852B (zh) * | 2015-03-17 | 2018-05-22 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
-
2016
- 2016-01-30 CN CN201610071145.XA patent/CN107025205B/zh active Active
-
2017
- 2017-01-12 EP EP17743576.5A patent/EP3399426B1/en active Active
- 2017-01-12 WO PCT/CN2017/071001 patent/WO2017128961A1/zh active Application Filing
-
2018
- 2018-07-25 US US16/044,757 patent/US10764125B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005911A (zh) * | 2015-06-26 | 2015-10-28 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
Non-Patent Citations (1)
Title |
---|
More Effective Distributed ML via a Stale Synchronous Parallel Parameter Server;Qirong Ho et al;《Advances in Neural Information Processing Systems》;20131231;第2-3节 * |
Also Published As
Publication number | Publication date |
---|---|
US10764125B2 (en) | 2020-09-01 |
CN107025205A (zh) | 2017-08-08 |
EP3399426A1 (en) | 2018-11-07 |
EP3399426A4 (en) | 2019-01-23 |
WO2017128961A1 (zh) | 2017-08-03 |
EP3399426B1 (en) | 2021-09-01 |
US20180331897A1 (en) | 2018-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
US8694644B2 (en) | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds | |
CN109034396B (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
CN107222531B (zh) | 一种容器云资源调度方法 | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
KR101474872B1 (ko) | 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 | |
CN111367630A (zh) | 一种基于云计算的多用户多优先级的分布式协同处理方法 | |
CN109697120B (zh) | 用于应用迁移的方法、电子设备 | |
CN106411558B (zh) | 一种数据流量限制的方法及系统 | |
Lai et al. | Sol: Fast distributed computation over slow networks | |
EP3594809A1 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
CN112988346B (zh) | 任务处理方法、装置、设备及存储介质 | |
EP3358795B1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization (nfv) network | |
US10318456B2 (en) | Validation of correctness of interrupt triggers and delivery | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN114564302A (zh) | 一种gpu资源分配方法、系统、设备以及介质 | |
Lin et al. | {RingLeader}: Efficiently Offloading {Intra-Server} Orchestration to {NICs} | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
WO2020166423A1 (ja) | リソース管理装置およびリソース管理方法 | |
CN105653347A (zh) | 一种服务器、资源管理方法及虚拟机管理器 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
US10866833B2 (en) | Method and appratus for implementing microkernel architecture of industrial server | |
CN111522637A (zh) | 一种基于成本效益的storm任务调度方法 |
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 |