CN115629879B - 分布式模型训练的负载均衡方法和装置 - Google Patents
分布式模型训练的负载均衡方法和装置 Download PDFInfo
- Publication number
- CN115629879B CN115629879B CN202211309632.7A CN202211309632A CN115629879B CN 115629879 B CN115629879 B CN 115629879B CN 202211309632 A CN202211309632 A CN 202211309632A CN 115629879 B CN115629879 B CN 115629879B
- Authority
- CN
- China
- Prior art keywords
- load
- network
- computing
- computing node
- computing nodes
- 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
Classifications
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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
- G06F9/505—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 considering the load
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了分布式模型训练的负载均衡方法和装置,涉及人工智能领域,尤其涉及深度学习领域。具体实现方案为:统计分布式模型的各个计算节点上的负载量;根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的网络参数的梯度与所述目标计算节点上的网络参数的梯度进行同步。该实施方式实现了通过增加或减少计算节点的数量,有效地均衡各个计算节点的负载,充分利用计算和存储资源。
Description
技术领域
本公开涉及人工智能领域,尤其涉及深度学习领域,具体为一种分布式模型训练的负载均衡方法和装置。
背景技术
在近年来的深度学习模型训练中,使用更多的训练数据和更大的模型趋势未改。更大的模型和数据量意味着更多的计算量和存储需求,也意味着更久的训练时间。那么如何将计算和存储需求分布到多个训练设备来提升训练速度,是关键问题。
数据并行(data parallelism)是解决上述问题的一种并行策略,在数据并行的模型训练中,训练任务被切分到多个进程(设备)上,每个进程维护相同的模型参数和相同的计算任务,但是处理不同的数据(batch data)。通过这种方式,同一全局数据(globalbatch)下的数据和计算被切分到了不同的进程,从而减轻了单个设备上的计算和存储压力。
分布式模型训练(例如,MoE(Mixure-of-Experts,混合专家模型))是实现超大规模模型训练的技术路径之一。该模型的思想是训练多个神经网络(分布在多个计算节点中),每个计算节点训练数据集的不同部分。由于每个计算节点的输入数据量不同,计算时间不均匀,造成严重的负载不平衡:一方面,因为单个计算节点可能处理过量的数据,导致内存超出限制;在另一方面,同步通信必须等待最慢计算节点,导致计算利用率下降,类似于“木桶效应”。
发明内容
本公开提供了一种分布式模型训练的负载均衡方法、装置、设备、存储介质以及计算机程序产品。
根据本公开的第一方面,提供了一种分布式模型训练的负载均衡方法,包括:统计分布式模型的各个计算节点上的负载量;根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的网络参数的梯度与所述目标计算节点上的网络参数的梯度进行同步。
根据本公开的第二方面,提供了一种分布式模型训练的负载均衡装置,包括:统计单元,被配置成统计分布式模型的各个计算节点上的负载量;确定单元,被配置成根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;增加单元,被配置成若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;同步单元,被配置成在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的网络参数的梯度与所述目标计算节点上的网络参数的梯度进行同步。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的方法。
本公开的实施例提供的分布式模型训练的负载均衡方法和装置,通过增加或减少计算节点的数量,有效地均衡各个计算节点的负载,充分利用计算和存储资源。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1a-1d是本公开的一个实施例可以应用于其中的示例性系统架构的示意图;
图2是根据本公开的分布式模型训练的负载均衡方法的一个实施例的流程图;
图3是根据本公开的分布式模型训练的负载均衡方法的一个应用场景的示意图;
图4是根据本公开的分布式模型训练的负载均衡方法的又一个实施例的流程图;
图5是根据本公开的分布式模型训练的负载均衡方法的又一个应用场景的示意图;
图6是根据本公开的分布式模型训练的负载均衡装置的一个实施例的结构示意图;
图7是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的分布式模型训练的负载均衡方法或分布式模型训练的负载均衡装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括服务器(Server)和多个客户端(Worker,即计算节点)。
系统架构100是分布式训练领域普遍采用的编程架构,主要解决以下两类问题:
1、模型参数过大:单机内存空间不足,需要采用分布式存储。
2、训练数据过多:单机训练太慢,需要加大训练节点,来提高并发训练速度。
如图1所示,系统架构100主要包含Server和Worker两个部分,其中Server负责参数的存储和更新,而Worker负责训练。简单来说,基于该系统架构进行模型训练的基本思路:当训练数据过多,一个Worker训练太慢时,可以引入多个Worker同时训练,这时Worker之间需要同步模型参数。直观想法是,引入一个Server,Server充当Worker间参数交换的媒介。当模型参数过大以至于单机存储空间不足时或Worker过多导致一个Server是瓶颈时,就需要引入多个Server。
模型训练的具体流程如下:
1、将训练数据(样本集)均匀的分配给不同的Worker。
2、将模型参数分片,存储在不同的Server上。
3、Worker端:读取一个minibatch训练数据,从Server端拉取最新的参数,计算梯度,并根据分片上传给不同的Server。
4、Server端:接收Worker端上传的梯度,根据优化算法更新参数。根据Server端每次参数更新是否需要等待所有Worker端的梯度,分为同步训练和异步训练两种机制。
MoE模型可采用系统架构100来训练。在MoE模型中,数据经过骨干网络(Backbone网络)(一般为一些全联接层)的计算后得到中间结果,经过top-k Gate(门控网络)的选择后,为结果中的每个token(字符)选择k个Expert(专家网络);如图1b所示,选取top-1的Gate,为每个token选择1个Expert。数据H_0经过路由后,选择Expert_0后,进过该神经网络训练得到输出m。
MoE+数据并行方法(即MoE+DP)与传统数据并行不同,MoE模型参数分为两种,一种是Backbone层的Dense(稠密)参数,一种是Expert层的Sparse(稀疏)参数。就数据并行而言,Dense参数在各个卡(计算设备,例如GPU)上相同,该类参数与普通数据并行下参数更新一致,在反向阶段结束后,各个卡同步该类参数梯度;对于Sparse参数,MoE+DP下,每张卡的Sparse参数初始化不同值,如图1c所示,每张卡3个Expert,2张卡总共6个Expert,这里的top_1gate是在total Expert=6下,选择评分最高的1个Expert进行路由选择,再按照单卡MoE的方式进行计算,如果出现跨卡,那么就需要调用send/recv实现跨卡通信。如图1c所示,Rank-0(卡的编号)上Backbone的输出张量H_0,通过Top-1 Gate之后,选择第4个Expert,则将H_0发送至Rank-1,在经过Expert_4计算后,发送回Rank-0,得到最终的输出Output_0。
在MoE模型中,由于Gate的选择不同,会造成不同的Expert节点处理的数据量不同。如图1d所示,总共三个设备,每个设备一个Expert节点。同时每个设备都读入4份不同数据,如Rank-0读入数据编号0,1,2,3;Rank-1读入数据编号4,5,6,7;Rank-2读入数据编号8,9,10,11。经过Top1-Gate路由之后,数据编号0,4,8由Expert_0节点处理;数据编号1,5,9由Expert_1节点处理;数据编号2,3,6,7,10,11由Expert_2节点处理。显然Expert_2处理了6份数据,而其他Expert只处理了3份数据,造成严重的负载不均。一方面,模型大小受限于Expert_2所在的Rank-2设备的存储;另一方面,整体的计算性能受限于Expert_2所在的Rank-2设备的计算能力。
需要说明的是,本公开的实施例所提供的分布式模型训练的负载均衡的方法可以由服务器执行。相应地,分布式模型训练的负载均衡的装置可以设置于服务器中。在此不做具体限定。
应该理解,图1中的服务器和客户端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器和客户端。
继续参考图2,示出了根据本公开的分布式模型训练的负载均衡的方法的一个实施例的流程200。该分布式模型训练的负载均衡的方法,包括以下步骤:
步骤201,统计分布式模型的各个计算节点上的负载量。
在本实施例中,分布式模型训练方法的执行主体(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从进行分布式模型训练的计算节点(图1所示的客户端)接收负载量。负载量可以是计算节点上预定网络结构(例如专家网络)处理的训练数据的数量,例如,多少张照片、多少条文本信息、多少段语音信息、多少段视频信息等。
步骤202,根据各个计算节点上的负载量之间的比值确定分布式模型是否负载均衡。
在本实施例中,如图1d负载不均衡下,各个设备处理数据的比值为,Rank-0:Rank-1:Rank-2=3:3:6。当任意两个计算节点之间的负载量的比值在预定范围内负载才均衡。不需要完全是1:1,可以稍微浮动,例如1:[0.95-1.05]范围内都可视为均衡。
步骤203,若负载不均衡且有空闲的计算节点,则为分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点。
在本实施例中,针对负载最重的计算节点,增加多个同类节点,参数保持一致。
如图3所示,由于Rank-2处理了更多的数据,增加设备Rank-3,同时Rank-3上的组网和Rank-2上的参数保持一致,因此Rank-3上的Expert和Rank-2上的Expert是同一个Expert。由于增加了一个相同设备Rank-3之后,数据编号10,11,14,15将发送到Rank-3上的Expert_2进行处理。因此,各个设备处理数据的比值,Rank-0:Rank-1:Rank-2:Rank-3=4:4:4:4,显然,这样各个设备处理是均衡的。
步骤204,在各个计算节点上进行梯度反向计算后,将同类计算节点上的网络参数的梯度与目标计算节点上的网络参数的梯度进行同步。
在本实施例中,在增加了计算节点后,所有计算节点开始进行模型训练,输入的样本集的数量比原来的分布式模型增加了。各计算节点先从骨干网张开始向专家网络方向进行前向计算,计算出损失值,然后再根据损失值计算出梯度。再从专家网络向骨干网络方向进行梯度反向计算,每一次计算出的梯度都会上报给服务器存储。实际处理过程中负载最重的计算节点的网络参数的梯度与新增的计算节点的网络参数的梯度是不一致的。但为了保持两个计算节点的网络参数一致,则进行两个计算节点的梯度同步,保证参数一致性。这一个梯度同步过程可以用一个Allreduce sum同步通信操作实现的,对梯度使用Allreducesum操作后每个进程上得到的梯度是相同的,这时候的梯度值等于所有进程上梯度对应位置相加的和,然后每个进程用Allreduce后的梯度和除以数据并行中的进程数,这样得到的梯度是同步之前所有进程上梯度的平均值。
如图3所示,由于Rank-2和Rank-3上的Expert是相同参数,因此在反向传播之后,Rank-2和Rank-3上的Expert的参数的梯度需要allreduce_sum同步,保证这两个参数的梯度是相同的。
本公开的上述实施例提供的方法,针对高负载的计算节点,额外增加相同的计算节点,平分该高负载的计算节点的负载。通过增加计算节点,实现整体的负载均衡,进而提升整体模型训练性能,节省存储资源,提高了训练速度。
在本实施例的一些可选的实现方式中,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络。骨干网络为一些全连接以,门控网络可以将骨干网络的处理结果路由到专家网络。这里的门控网络在路由时有一些偏好,才会导致负载不均衡。对于混合专家模型使用上述负载均衡方法,不需要修改门控网络,也能够显著提高专家网络的处理效率,节省存储资源,提高了训练速度。
在本实施例的一些可选的实现方式中,所述统计分布式模型的各个计算节点上的负载量,包括:统计分布式模型的各个计算节点上的专家网络的负载量。由于训练的重点是专家网络,因此只要保证专家网络的均衡性就能提高MoE模型的训练效率,并且忽略了骨干网络和门控网络的负载量可以简化计算过程,提高负载均衡调控速度。
进一步参考图4,其示出了分布式模型训练的负载均衡方法的又一个实施例的流程400。该分布式模型训练的负载均衡方法的流程400,包括以下步骤:
步骤401,统计分布式模型的各个计算节点上的负载量。
步骤402,根据各个计算节点上的负载量之间的比值确定分布式模型是否负载均衡。
步骤401-402基本相同,因此不再赘述。
步骤403,若负载不均衡且没有空闲的计算节点,则将负载量最小的至少2个计算节点合并成1个计算节点。
在本实施例中,可根据负载的比值关系,对负载量最小的计算节点进行合并,使得合并后的计算节点的负载量与负载量最大的目标计算节点的负载量大致相当。如图5所示,由于Rank-0和Rank-1相比Rank-2处理的数据量更少,将Rank-0和Rank-1两个设备合并成一个设备。同时,原设备Rank-0和Rank-1上的Expert_0和Expert_1均重新放置在新设备Rank-0上。由于减少一个计算节点之后,数据编号0,4,1,5将发送到Rank-0上的Expert_0和Expert_1处理。因此,各个设备处理数据的比值,Rank-0:Rank-1=4:4,显然,这样各个设备处理是均衡的。
本公开的上述实施例提供的方法,针对低负载的专家节点,可以减少计算节点,将多个专家节点放置在同一个计算节点上。通过减少计算节点,实现整体的负载均衡,进而提升整体模型训练性能,节省存储资源。
在本实施例的一些可选的实现方式中,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络;以及所述将负载量最小的至少2个计算节点合并成1个计算节点,包括:将负载量最小的至少2个计算节点的骨干网络和门控网络的参数分别合并后作为公共骨干网络和公共门控网络;将所述公共门控网络的输出结果分别作为所述负载量最小的至少2个计算节点的专家网络的输入。计算节点合并时,将合并前每层网络对应的参数的平均值作为合并后对应网络的参数。在混合专家模型的合并过程中,骨干网络和门控网络是合并后共享的,而专家网络仍是独立的,专家网络的参数不合并。这样可以减少训练过程中调参量,从而提高训练速度。
在本实施例的一些可选的实现方式中,所述将所述同类计算节点上的网络参数的梯度与所述目标计算节点上的网络参数的梯度进行同步,包括:将所述同类计算节点上的专家网络的参数的梯度与所述目标计算节点上的专家网络的参数的梯度进行同步。仅进行专家网络的参数的梯度同步,不会损失MoE模型的性能,却能提高模型整体的训练速度。
在本实施例的一些可选的实现方式中,所述方法还包括:在将负载量最小的至少2个计算节点合并成1个计算节点后空出的计算节点中,加载与负载量最大的目标计算节点的模型参数相同的模型。计算节点合并后就会有空闲的计算节点,则可执行与步骤203相同的步骤,增加了新的计算节点。这种方式不仅能使得负载均衡,还提高了每次处理的样本集的数量,从而提高了训练速度,也充分利用了计算节点的资源。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种分布式模型训练的负载均衡装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的分布式模型训练的负载均衡装置600包括:统计单元601、确定单元602、增加单元603、同步单元604。其中,统计单元601,被配置成统计分布式模型的各个计算节点上的负载量;确定单元602,被配置成根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;增加单元603,被配置成若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;同步单元604,被配置成在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的网络参数的梯度与所述目标计算节点上的网络参数的梯度进行同步。
在本实施例中,分布式模型训练的负载均衡装置600的统计单元601、确定单元602、增加单元603、同步单元604的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
在本实施例的一些可选的实现方式中,装置600还包括减少单元(附图中未示出),被配置成:若负载不均衡且没有空闲的计算节点,则将负载量最小的至少2个计算节点合并成1个计算节点。
在本实施例的一些可选的实现方式中,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络。
在本实施例的一些可选的实现方式中,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络;以及减少单元进一步被配置成:将负载量最小的至少2个计算节点的骨干网络和门控网络的参数分别合并后作为公共骨干网络和公共门控网络;将所述公共门控网络的输出结果分别作为所述负载量最小的至少2个计算节点的专家网络的输入。
在本实施例的一些可选的实现方式中,统计单元601进一步被配置成:统计分布式模型的各个计算节点上的专家网络的负载量。
在本实施例的一些可选的实现方式中,同步单元604进一步被配置成:将所述同类计算节点上的专家网络的参数的梯度与所述目标计算节点上的专家网络的参数的梯度进行同步。
在本实施例的一些可选的实现方式中,增加单元603进一步被配置成:在将负载量最小的至少2个计算节点合并成1个计算节点后空出的计算节点中,加载与负载量最大的目标计算节点的模型参数相同的模型。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行流程200或400所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行流程200或400所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现流程200或400所述的方法。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如分布式模型训练的负载均衡方法。例如,在一些实施例中,分布式模型训练的负载均衡方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的分布式模型训练的负载均衡方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式模型训练的负载均衡方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (8)
1.一种分布式模型训练的负载均衡方法,包括:
统计分布式模型的各个计算节点上的负载量,其中,负载量是计算节点上预定网络结构处理的训练数据的数量,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络;
根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;
若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;
在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的专家网络的参数的梯度与所述目标计算节点上的专家网络的参数的梯度进行同步,其中,梯度同步过程通过Allreduce sum同步通信操作实现,得到的梯度是同步之前所有进程上梯度的平均值;
若负载不均衡且没有空闲的计算节点,则将负载量最小的至少2个计算节点的骨干网络和门控网络的参数分别合并后作为公共骨干网络和公共门控网络;将所述公共门控网络的输出结果分别作为所述负载量最小的至少2个计算节点的专家网络的输入。
2.根据权利要求1所述的方法,其中,所述统计分布式模型的各个计算节点上的负载量,包括:
统计分布式模型的各个计算节点上的专家网络的负载量。
3.根据权利要求1所述的方法,其中,所述方法还包括:
在将负载量最小的至少2个计算节点合并成1个计算节点后空出的计算节点中,加载与负载量最大的目标计算节点的模型参数相同的模型。
4.一种分布式模型训练的负载均衡装置,包括:
统计单元,被配置成统计分布式模型的各个计算节点上的负载量,其中,负载量是计算节点上预定网络结构处理的训练数据的数量,分布式模型为混合专家模型,每个计算节点包括:骨干网络、门控网络和专家网络;
确定单元,被配置成根据各个计算节点上的负载量之间的比值确定所述分布式模型是否负载均衡;
增加单元,被配置成若负载不均衡且有空闲的计算节点,则为所述分布式模型增加与负载量最大的目标计算节点的模型参数相同的同类计算节点;
同步单元,被配置成在各个计算节点上进行梯度反向计算后,将所述同类计算节点上的专家网络的参数的梯度与所述目标计算节点上的专家网络的参数的梯度进行同步,其中,梯度同步过程通过Allreduce sum同步通信操作实现,得到的梯度是同步之前所有进程上梯度的平均值;
减少单元,被配置成若负载不均衡且没有空闲的计算节点,则将负载量最小的至少2个计算节点的骨干网络和门控网络的参数分别合并后作为公共骨干网络和公共门控网络;将所述公共门控网络的输出结果分别作为所述负载量最小的至少2个计算节点的专家网络的输入。
5.根据权利要求4所述的装置,其中,所述统计单元进一步被配置成:
统计分布式模型的各个计算节点上的专家网络的负载量。
6.根据权利要求4所述的装置,其中,所述增加单元进一步被配置成:
在将负载量最小的至少2个计算节点合并成1个计算节点后空出的计算节点中,加载与负载量最大的目标计算节点的模型参数相同的模型。
7. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3中任一项所述的方法。
8.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211309632.7A CN115629879B (zh) | 2022-10-25 | 2022-10-25 | 分布式模型训练的负载均衡方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211309632.7A CN115629879B (zh) | 2022-10-25 | 2022-10-25 | 分布式模型训练的负载均衡方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115629879A CN115629879A (zh) | 2023-01-20 |
CN115629879B true CN115629879B (zh) | 2023-10-10 |
Family
ID=84906256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211309632.7A Active CN115629879B (zh) | 2022-10-25 | 2022-10-25 | 分布式模型训练的负载均衡方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629879B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137128A (zh) * | 2010-01-27 | 2011-07-27 | 腾讯科技(深圳)有限公司 | 一种集群服务的负载均衡方法和装置 |
CN114143326A (zh) * | 2021-12-08 | 2022-03-04 | 深圳前海微众银行股份有限公司 | 负载调节方法、管理节点以及存储介质 |
CN114816728A (zh) * | 2022-03-07 | 2022-07-29 | 浪潮云信息技术股份公司 | 一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561078B (zh) * | 2020-12-18 | 2021-12-28 | 北京百度网讯科技有限公司 | 分布式的模型训练方法及相关装置 |
-
2022
- 2022-10-25 CN CN202211309632.7A patent/CN115629879B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137128A (zh) * | 2010-01-27 | 2011-07-27 | 腾讯科技(深圳)有限公司 | 一种集群服务的负载均衡方法和装置 |
CN114143326A (zh) * | 2021-12-08 | 2022-03-04 | 深圳前海微众银行股份有限公司 | 负载调节方法、管理节点以及存储介质 |
CN114816728A (zh) * | 2022-03-07 | 2022-07-29 | 浪潮云信息技术股份公司 | 一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115629879A (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112561078B (zh) | 分布式的模型训练方法及相关装置 | |
US10679145B2 (en) | System and method for balancing computation with communication in parallel learning | |
CN113516250A (zh) | 一种联邦学习方法、装置、设备以及存储介质 | |
EP4016398A1 (en) | Apparatus and method for distributed training model, and computer program product | |
CN115880132B (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN115203126B (zh) | 一种算子融合处理方法、装置、设备及存储介质 | |
US20130205158A1 (en) | Decision method considering time and power consumption for offloading computation and computing system | |
CN114548426A (zh) | 异步联邦学习的方法、业务服务的预测方法、装置及系统 | |
US11023825B2 (en) | Platform as a service cloud server and machine learning data processing method thereof | |
CN107608788A (zh) | 一种控制方法、装置及设备 | |
CN115629879B (zh) | 分布式模型训练的负载均衡方法和装置 | |
CN116680060B (zh) | 面向异构计算系统的任务分配方法、装置、设备和介质 | |
CN115617859A (zh) | 基于知识图谱集群的数据查询方法和装置 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN115660034B (zh) | 分布式模型训练的方法、装置和系统 | |
CN114860341B (zh) | 线程配置方法、设备、装置、存储介质 | |
CN111461340A (zh) | 权重矩阵的更新方法、装置及电子设备 | |
CN115965070B (zh) | 计算图处理方法、装置、设备、存储介质以及程序产品 | |
CN116579400B (zh) | 深度学习模型的量化方法、数据处理方法和装置 | |
CN116560817B (zh) | 任务执行方法、装置、电子设备和存储介质 | |
CN115292662B (zh) | 一种卷积加速运算方法、装置、电子设备及存储介质 | |
CN115049051A (zh) | 一种模型权重的压缩方法、装置、电子设备及存储介质 | |
CN117371498A (zh) | 数据处理方法、乘累加器、计算架构、设备及存储介质 | |
CN117193857A (zh) | 一种输出信号生成方法、装置、设备和存储介质 | |
CN115563508A (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 |