CN116450312A - 面向流水线并行训练的调度策略确定方法及*** - Google Patents
面向流水线并行训练的调度策略确定方法及*** Download PDFInfo
- Publication number
- CN116450312A CN116450312A CN202310222902.9A CN202310222902A CN116450312A CN 116450312 A CN116450312 A CN 116450312A CN 202310222902 A CN202310222902 A CN 202310222902A CN 116450312 A CN116450312 A CN 116450312A
- Authority
- CN
- China
- Prior art keywords
- training
- computing node
- candidate
- computing
- scheduling strategy
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 421
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000004364 calculation method Methods 0.000 claims description 59
- 238000013136 deep learning model Methods 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 53
- 230000011218 segmentation Effects 0.000 claims description 39
- 230000006854 communication Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 241001417495 Serranidae Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种面向流向线并行训练的调度策略确定方法及***,属于云计算技术领域。所述方法包括:根据训练样本集和每个计算节点的属性信息,确定多种候选调度策略,候选调度策略包括一种将训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值;基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像;根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,确定出训练时长最短的目标调度策略。本申请能够在网络资源抢占的情况下,提高模型的训练效率。
Description
技术领域
本申请涉及云计算技术领域,特别涉及一种面向流向线并行训练的调度策略确定方法及***。
背景技术
随着深度学习的不断发展,深度学习模型的规模越来越大。对于大模型训练来说,分布式训练方式尤为关键。流水线并行训练作为一种重要的分布式训练方式,通过将深度学习模型按层切分成前后衔接的多个训练阶段(简称stage),进而将多个stage部署到多个计算节点上,通过采用合理的调度策略,控制多个计算节点的计算顺序,从而完成深度学习模型的训练任务。
目前,采用流水线并行训练方式进行训练时,通常会将用于每轮训练的训练样本集合均匀切分成多个训练样本子集,每个计算节点按照1F1B的调度策略进行训练。其中,F(即forward)是指深度学习训练的前向计算阶段,B(即backward)是指深度学习训练的后向计算阶段。1F1B的调度策略是指每个计算节点一次进行前向计算或后向计算的训练样本子集的数量为1个。采用1F1B的调度策略,网络资源占用较多,在网络资源抢占场景下,模型训练效率较低。
因此,亟需提供一种新的面向流水线并行训练的调度策略确定方法,从而能够在网络资源抢占场景下,也能获得较高的模型训练效率。
发明内容
本申请实施例提供了一种面向流水线并行训练的调度策略确定方法及***,能够在网络资源抢占场景下,获取较高的模型训练效率。所述技术方案如下:
第一方面,提供了一种面向流水线并行训练的调度策略确定方法,所述方法应用于网络资源抢占场景,所述方法包括:
根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略,所述计算节点上部署有深度学习模型所切分的训练阶段,所述候选调度策略用于指示每个计算节点基于所述训练样本集对所述深度学习模型进行训练的训练方式,所述候选调度策略包括一种将所述训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,所述最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值,所述最大K值大于等于2;
基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像;
根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,所述目标调度策略用于对每个计算节点的计算过程进行控制。
第二方面,提供了一种面向流水线并行训练的调度策略确定装置,所述装置应用于网络资源抢占场景,所述装置包括:
第一确定模块,用于根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略,所述计算节点上部署有深度学习模型所切分的训练阶段,所述候选调度策略用于指示每个计算节点基于所述训练样本集对所述深度学习模型进行训练的训练方式,所述候选调度策略包括一种将所述训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,所述最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值,所述最大K值大于等于2;
生成模块,用于基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像;
第二确定模块,用于根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,所述目标调度策略用于对每个计算节点的计算过程进行控制。
第三方面,提供了一种流水线并行训练***,所述***包括面向流水线并行训练的调度策略确定装置及多个计算节点;
所述调度策略确定装置,用于执行第一方面所述的面向流水线并行训练的调度策略确定方法;
每个计算节点,用于接收所述调度策略确定装置发送的目标调度策略,并按照所述目标调度策略进行模型训练。
第四方面,提供了一种计算设备,包括处理器以及存储器;所述存储器存储至少一条程序代码;所述至少一条程序代码用于被所述处理器调用并执行,以实现如第一方面所述的面向流水线并行训练的调度策略确定方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序被处理器执行时能够实现如第一方面所述的面向流水线并行训练的调度策略确定方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时能够实现如第一方面所述的面向流水线并行训练的调度策略确定方法。
本申请实施例提供的技术方案带来的有益效果是:
在采用流水线并行训练方式对深度学***。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种面向流水线并行训练的调度策略确定装置的结构示意图;
图2是本申请实施例提供的一种面向流水线并行训练的调度策略确定方法的流程图;
图3是本申请实施例提供的一种内存极限曲线的示意图;
图4是本申请实施例提供的一种面向流水线并行训练的调度策略确定方法在抢占网络下的优势对比图;
图5是本申请实施例提供的一种面向流水线并行训练的调度策略确定装置的结构示意图;
图6是本申请实施例提供的一种流水线并行训练***的结构示意图;
图7示出了本申请一个示例性实施例提供的一种计算设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请实施例所使用的术语“每个”、“多个”及“任一”等,多个包括两个或两个以上,每个是指对应的多个中的每一个,任一是指对应的多个中的任意一个。举例来说,多个词语包括10个词语,而每个词语是指这10个词语中的每一个词语,任一词语是指10个词语中的任意一个词语。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
在执行本申请实施例之前,首先对本申请实施例涉及的名词进行解释。
前向计算(forward,简称为F)和后向计算(backward,简称为B)为深度学习的两个计算阶段。前向计算是指将训练样本从输入到输出的顺序计算过程。后向计算是指将前向计算结果从输出反向传播到输入方向的计算过程。后向计算实质是由链式法则依次求出各层参数的梯度,所计算出的梯度用于对每层的参数进行梯度下降,从而通过更新每层的参数,达到模型收敛的状态。
计算节点为采用分布式训练方式对深度学习模型进行训练的一个计算节点,每个计算节点包括至少一个计算设备,每个计算设备拥有一个计算卡(如GPU(GraphicsProcessing Unit,图形处理器))。分布式训练方式包括数据并行计算和模型并行计算。在数据并行训练场景下,计算节点上部署有完整的深度学习模型,每个计算节点用于对部分训练样本进行。在模型并行计算场景下,深度学习模型按层进行切分,每个计算节点上部署深度学习模型的部分层级,每个计算节点用于对全部的训练样本进行计算。
任务图像为一种描述任务间关系的图。任务图像通常是有向图,图中的节点代表任务,节点值代表该任务的计算量,有向边代表任务间的依赖关系或通信关系,有向边的权值代表通信量。
batch(批次)为在模型训练时进行一轮训练的训练样本集,可通过对训练样本全集拆分得到。每个batch内包括多个训练样本,各个训练样本之间彼此独立,同时参与到同一轮训练过程中。当一个batch内的训练样本均完成计算,则称为完成对模型的一轮训练。
micro_batch(微型批次)为将batch中的训练样本进一步拆分得到的更微小的批次。简单来说,micro_batch为batch的子集,一个batch包括多个micro_batch,属于同一batch的不同micro_batch参与同一轮训练过程。micro_batch是计算节点进行一次前向计算或后向计算的最小单位,也即是,计算节点以micro_batch为单位对训练样本进行前向计算或后向计算。
bubble(气泡)为衡量pipeline(流水线)并行训练的计算效率的一项指标。通常pipeline并行训练可以让多个计算设备在时间上并行计算,当某个计算设备空闲时,该计算设备将在时间上变成了空白(形象的称为bubble)。通过计算一轮的bubble数量占比,可以得出pipeline并行训练的计算效率的高低。通常bubble占比越高,pipeline并行训练的计算效率越低。
stage(训练阶段)为流水线并行训练的计算单元。在采用流水线并行训练时,需要将深度学习模型按层切分成顺序衔接的多个stage。深度学习模型的训练包括前向计算阶段和后向计算阶段,前向计算阶段与后向计算阶段对应,也即是,前向计算阶段与后向计算阶段所采用的模型的层级是相同的,只是数据的传播方向不同。为便于对前向计算阶段和后向计算阶段进行控制,通常会针对不同的计算阶段,对深度学习模型进行切分,得到多个forward stage和多个backward stage,包含深度学习模型内相同层级的forward stage和backward stage彼此对应,且彼此对应的forward stage和backward stage被部署在同一计算节点上,从而可对每个计算节点上的forward stage和backward stage进行调度。
1F1B的调度策略是1forward stage+1backward stage的调度策略的简称。所谓的1F1B的调度策略是指每个计算节点上部署有一个forward stage和一个backward stage,通过对所部署的forward stage和backward stage进行交替调度,来完成模型的训练任务。由于每个计算节点上部署有一个forward stage和一个backward stage,而调度一次forward stage(或backward stage)只能对一个micro_batch进行前向计算(或后向计算),因而1F1B的调度策略限制了每个计算节点执行一次前向计算或后向计算所计算的micro_batch的数量一个。在1F1B的调度策略下,每个计算节点上部署的forward stage和backward stage是交替调度的,对于最后一个计算节点来说,交替调度的forward stage和backward stage所计算的micro_batch属于同一micro_batch,也即是,调用最后一个计算节点上的forward stage对某一micro_batch进行前向计算后,继续调用最后一个计算节点上的backward stage对该micro_batch进行后向计算;对于其他计算节点来说,交替调度的forward stage和backward stage所计算的micro_batch属于不同micro_batch,也即是,调用其他计算节点上的forward stage对某一micro_batch进行前向计算后,再次调用该计算节点进行计算时,将调用该计算节点上的backward stage对其他micro_batch进行计算。
云计算(Cloud Computing)指IT(Information Technology,信息技术)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。按照运营模式,云计算分为公有云(Public Cloud)、私有云(Private Clouds)及混合云(Hybrid Clouds)等。公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务,也即是在开放的公有网络中提供服务。随着云计算技术的发展,更多的深度学习模型使用公有云提供的计算资源进行训练。
深度学习是一类模式分析方法的总称,通过深度神经网络,利用多层非线性信息进行有监督或无监督的特征提取和转换。随着深度学习的不断发展,深度学习模型的规模越来越大。为缩短模型的训练时长,提高模型的训练效率,通常会采用采用流水线并行训练方式进行训练。而采用流水线并行训练方式,需要将深度学习模型切分成多个stage,并将多个stage部署在多个计算节点上。在前向计算过程中,后一个forward stage上的计算依赖于前一forward stage的计算结果,在后向计算过程,后一backward stage上的计算依赖于前一backward stage上的计算结果,因而需要跨越多个计算节点,在多个计算节点之间传输数据。这样,深度学习模型的训练效率不仅取决于每个计算节点的计算效率(而每个计算节点上的计算效率与stage之间的均匀程度及stage之间传输数据的数据量有关),还与各个计算节点之间的网络带宽有关。
然而,在公有云场景下,网络资源被云上的各个计算设备及应用共同使用,无法将网络资源独占分配给用于对深度学习模型进行训练的各个计算节点,这使得计算节点之间的网络带宽可能会低于每个计算节点内各个计算卡之间的带宽。当跨计算节点传输数据时,如果其他计算设备或应用使用网络资源,将导致网络拥堵,从而拖慢各个计算节点之间的通信速度。采用1F1B的调度策略,虽然每个计算节点需要缓存的数据量较少,且某一micro_batch完成前向计算之后,所缓存的前向计算结果能够及时释放,缓解了每个计算节点的显存压力,但是由于网络资源处于抢占状态,pipeline并行训练中计算节点的bubble较多,模型的训练效率较低。另外,由于网络状态经常发生变化,无法提前预估整个模型训练过程中的网络状态,因此,采用1F1B的调度策略无法获得较高的训练效率。
为了能够在网络资源抢占场景下,获取较高的训练效率,本申请实施例在采用流水线并行训练方式对深度学习模型进行训练时,对原有的1F1B的调度策略进行改进,提出了KFKB的调度策略。所谓的KFKB的调度策略是将K个forward stage或K个backward stage作为一个调度基本单元(K组内不可分割)进行交替调度。由于KFKB的调度策略将K个forward stage或K个backward stage作为一组同时调度,因此,每个计算节点执行一次前向计算或后向计算时可对K个micro_batch进行计算。其中,K为分组值,也是每个计算节点一次进行前向计算或后向计算的micro_batch的数量。K的取值大于等于1,不同K值对应不同的调度策略,例如,当K=1时,KFKB的调度策略即为1F1B的调度策略;当K=2时,KFKB的调度策略即为2F2B的调度策略。采用KFKB的调度策略(K大于等于2时),对于每个计算节点来说,无需等待其所依赖的数据传入,可以基于没有依赖项的数据或者已经准备好的数据进行计算,这样可使计算节点尽可能处于计算状态,从而缓解对网络资源的依赖,减少计算节点的bubble,达到提高计算节点的计算效率的目的。
基于所提出的KFKB的调度策略,本申请实施例在采用流水线并行训练方式对深度学习模型进行训练,包括以下两个过程:
第一个过程:调度策略的确定过程
在对深度学习模型进行某一轮训练时,根据该批次的训练样本集和各个计算节点的属性信息,确定出多种候选调度策略,每种调度策略包括一种将该训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,进而根据当前网络状态,选择出在当前网络状态下,训练时长最短的目标调度策略。
第二个过程:基于网络状态对调度策略的调整过程
基于第一个过程所确定的目标调度策略,在后续每轮训练过程中,监测当前网络的网络状态,进而根据当前网络状态,自适应调整每轮的调度策略,从而在网络抢占场景下始终维持较高的pipeline性能。
图1是本申请实施例提供的一种面向流水线并行训练的调度策略确定装置,该装置包括:自适应分组器、任务图像生成器及自适应分组调度器。该自适应分组器的输出端与任务图像生成器的输入端连接,该任务图像生成器的输出端与自适应分组调度器的输入端连接。
其中,自适应分组器(Adaptive Grouper Pass)用于根据训练样本集和各个计算节点的属性信息,确定出多种候选调度策略。其中,计算节点的属性信息包括每个计算节点包括的计算设备的数量、每台计算设备的存储空间(例如GPU等)、计算节点上所部署的stage等等。自适应分组器在确定多种候选调度策略时,用于根据训练样本集的样本数量,对该训练样本集进行均匀拆分,得到多种样本拆分方案,每种样本拆分方案包括所拆分的训练样本子集的子集数量及训练样本子集内的样本数量,进而根据各个计算节点的存储空间,搜索每种拆分方案对应的最大K值,该最大K值大于等于2,进而将一种样本拆分方案及对应的最大K值组成一种候选调度策略。通常来说,每种样本拆分方案下训练样本子集内的样本数量越多,其对应的最大K值越小;每种样本拆分方案下训练样本子集内的样本数量越少,其对应的最大K值越大。例如图1中MBS(micro batch size的简写)与K的比值成反比例,当MBS的比值为6时,K的比值为1;当MBS的比值为4时,K的比值为2;当MBS的比值为2时,K的比值为4。
任务图像生成器(Task Graph Builder)用于基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像。
自适应分组调度器(Adaptive Grouper scheduler)用于根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,进而将所确定的目标调度策略发送至各个计算节点,以使各个计算节点按照目标调度策略进行模型训练。
在本申请实施例中,该自适应分组调度器包括调度计划生成模块(SchedulePlanner)、自动调整模块(AutoTunner)及协调模块(Coordinator)等。该调度计划生成模块的输入端与任务图像生成器的输出端连接,该调度计划生成模块的输出端与自动调整模块的输入端连接,该自动调整模块的输出端与协调模块的输入端连接。该调度计划生成模块用于根据每种候选调度策略对应的任务图像与最大K值,生成每种候选调度策略对应的候选调度计划,该候选调度计划为每个计算节点按照相应的候选调度策略执行模型训练任务时的训练计划。自动调整模块用于根据当前网络状态,模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,以获取每种候选调度策略的训练时长,进而从多种候选调度策略中,选择出训练时长最短的目标调度策略。协调模块用于将目标调度策略发送至各个计算节点。
在本申请实施例中,参见图1,该装置还包括模型切分器(Auto Parallel Pass),该模型切分器的输出端与自适应分组器的输入端连接,用于根据深度学习模型的模型信息和集群内的各个计算设备的属性信息,确定多种模型切分方案,从多种模型切分方案中,选择出训练时长最短的目标切分方案,进而基于该目标切分方案,确定每个计算节点的属性信息。
在本申请实施例中,该装置还包括:网络状态监测器,该网络状态监测模块输出端与自动调整模块的输入端连接,用于在基于下一批次的训练样本集进行模型训练时,响应于自动调整模块发送的监测指令,对当前网络的网络状态进行监测,并将监测到的网络状态发送至自动调整模块。自动调整模块根据监测到的网络状态,从多种候选调度策略中,重新选择出训练时长最短的目标调度策略,进而将重新选择的目标调度策略发送至协调模块,协调模块接收重新选择的目标调度策略,并将重新选择的目标调度策略发送至每个计算节点,使得每个计算节点能够根据该重新选择的目标调度策略进行模型训练。
基于图1所示的装置,本申请实施例提供了一种面向流水线并行训练的调度策略确定方法,该方法应用于网络抢占场景,参见图2,本申请实施例提供的方法流程包括:
201、基于深度学习模型的模型信息和用于进行模型训练的各个计算设备的属性信息,确定每个计算节点的属性信息。
其中,深度学习模型的模型信息包括模型层数、各层之间的关联关系、每层上卷积核的数量等等。用于进行模型训练的各个计算设备的属性信息包括计算设备的数量、每台计算设备的GPU大小、每台计算设备之间的网络带宽等等。计算节点的属性信息包括该计算节点所包括的计算设备的数量、每台计算设备的GPU大小、该计算节点上所部署的stage等。基于深度学习模型的模型信息和用于进行模型训练的各个计算设备的属性信息,确定每个计算节点的属性信息时,可以采用如下方法:
2011、基于深度学习模型的模型信息和用于进行模型训练的各个计算设备的属性信息,确定多种模型切分方案。
其中,模型切分方案用于指示对深度学习模型的切分方式及切分后的训练阶段对应的计算节点。具体可采用如下步骤:
第一步,根据深度学习模型的模型信息,将深度学习模型切分成多个stage。
该步骤可按照深度学习模型的层数,对深度学习模型进行切分。由于深度学习的层数至少为两层,因而可以有多种切分方式,每种切分方式都能够得到多个stage。
根据深度学习模型的训练特点,训练阶段不仅包括前向计算阶段,还包括后向计算阶段,为便于后续基于前向计算的计算结果和后向计算的计算结果进行梯度下降,从而对模型参数进行更新,在按层对深度学习模型进行顺序切分,得到多个forward stage之后,还将根据所得到的多个forward stage对深度学习模型进行反序切分,得到多个backward stage,每个forward stage具有对应的backward stage,且相对应的forwardstage和backward stage包括的深度学习的层成镜像关系。通常相对应的forward stage和backward stage会部署在同一计算节点上,这对模型参数的存储和更新过程较为友好。
第二步,对于每种切分方式,根据用于进行模型训练的各个计算设备的属性信息及所切分的stage,为每个stage分配对应的计算设备。
在一种可能的实现方式中,如果计算设备的数量是所切分的stage数量的整数倍,则可根据所切分的stage的数量,为每个stage平均分配对应的计算设备。举例来说,用于进行模型训练的计算设备为8台,如果所切分的stage为2个,则为每个stage分配4台计算设备;如果所切分的stage为4个,则为每个stage分配2台计算设备。
在另一种可能的实现方式中,可根据每个stage上需要消耗的计算资源及各个计算设备的存储空间,例如GPU的大小,为每个stage分配对应的计算设备。举例来说,如果任一stage对应的层数较多,每层上的计算量较大,则确定该stage上需要消耗的计算资源较多,因而为该stage分配更多的计算资源,例如,分配具有较大存储空间的计算设备,或者分配较多的计算设备。例如,用于进行模型训练的计算设备为8台,如果所切分的stage为2个,其中stage1需要消耗的计算资源比stage2需要消耗的计算资源要多,则可为stage1分配5台计算设备,为stage2分配3台计算设备。
考虑到所切分的stage包括forward stage和backward stage,而每个forwardstage所消耗的计算资源在前向计算阶段的占比,与相应backward stage所消耗的计算资源在后向计算阶段的占比是一致,也即是,如果一个forward stage需要消耗的计算资源较多,则该forward stage对应的backward stage需要消耗的计算资源同样较多,这样在为每个stage分配对应的计算设备时,可基于前向计算阶段每个stage所消耗的计算资源进行分配,也可以基于后向计算阶段每个stage所消耗的计算资源进行分配。
第三步,将每种切分方式下每个stage对应的计算设备组成一个计算节点,进而将每种切分方式及相应切分方式下各个stage对应的计算节点,作为一种模型切分方案。
2012、从多种模型切分方案中,选择出训练时长最短的目标切分方案。
由于采取不同的切分方式对深度学习模型进行切分,所得到的stage是不同的,且不同stage对应的计算节点不同,后续对深度学习模型的训练效率也是不同的,因此,需要从多种模型切分方案中,选择出训练效率最高的切分方案。通常训练效率主要体现在训练时长上,训练时长越长,模型的训练效率越低;训练时长越短,模型的训练效率越高,因而基于训练时长所选择目标切分方案,也即是训练效率最高的模型切分方案。在获取每种模型切分方案的训练时长时,可通过模拟不同模型切分方案下模型的训练过程得到。
2013、基于目标切分方案,确定每个计算节点的属性信息。
当确定出目标切分方案后,即可基于该目标切分方案中每个stage与计算节点之间的对应关系,确定目标切分方案下每个计算节点的属性信息。
本申请实施例中,深度学习模型可采用HLO(High-Level Optimization,高级别优化)指令进行描述,因而目标切分方案下每个stage对应计算节点可以采用HLOComputation表示。
202、根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略。
其中,候选调度策略用于指示每个计算节点基于训练样本集对深度学习模型进行训练的训练方式。候选调度策略包括一种将训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值。最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值。根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略时,可采用如下方法:
2021、根据训练样本集包括的样本数量,对训练样本集进行均匀拆分,得到多种样本拆分方案。
其中,每种样本拆分方案包括所拆分的训练样本子集的子集数量和训练样本子集内的样本数量。根据训练样本集包括的样本数量,采用因式分解方法,对训练样本集进行均匀拆分,可得到多种样本拆分方案。所谓均匀拆分是指拆分后的每个训练样本子集内的样本数量相同。例如,训练样本集包括的样本数量为100个,对该训练样本集进行均匀拆分,可以有多种拆分方案:可拆分成100个训练样本子集,每个训练样本子集内的样本数量为1个;可拆分成50个训练样本子集,每个训练样本子集内的样本数量为2个;可拆分成25个训练样本子集,每个训练样本子集内的样本数量为4个;可拆分成20个训练样本子集,每个训练样本子集内的样本数量为5个;可拆分成10个训练样本子集,每个训练样本子集内的样本数量为10个;可拆分成5个训练样本子集,每个训练样本子集内的样本数量为20个;可拆分成4个训练样本子集,每个训练样本子集内的样本数量为25个;可拆分成2个训练样本子集,每个训练样本子集内的样本数量为50个。
对于每种样本拆分方案来说,所拆分的训练样本子集的子集数量与训练样本子集内的样本数量的乘积,等于训练样本集包括的样本数量。设定训练样本集的数量表示为batch_size,所拆分的训练样本子集的子集数量表示为num_micro_batches,所拆分的训练样本子集内的样本数量表示为micro_batch_size,则micro_batch_size*num_micro_batches=batch_size
2022、以每个计算节点的最大存储空间为约束条件,搜索每种样本拆分方案对应的最大K值,得到每种候选调度策略。
考虑到对于不同种样本拆分方案来说,训练样本子集内的样本数量越多,输入张量的尺寸越大,计算节点在对该训练样本子集进行计算时占用的显存越大;对于同一样本拆分方案来说,训练样本子集内的样本数量即micro_batch_size是固定的,每个计算节点一次进行前向计算或后向计算的训练样本子集的子集数量越多(即K值越大),则计算节点的存储压力越大,而每个计算节点的存储空间是有限的,因而针对不同的样本拆分方案,每个计算节点在调用forward stage或backward stage进行计算时,每个计算节点所能承受的最大K值是不同的,得到的候选调度策略也是不同的。对于每种样本拆分方案所对应的最大K值,可以每个计算节点的最大存储空间为约束条件进行搜索得到。
具体地,每种候选调度策略确定过程为:对于每种样本拆分方案,基于每个计算节点的存储空间及不同计算节点之间的网络带宽,模拟每个计算节点处理每种样本拆分方案下每个训练样本子集内训练样本的处理过程,在模拟每个计算节点处理每种样本拆分方案下每个训练样本子集内训练样本的过程中,如果没有达到任一计算节点的最大存储空间,则不断增加每个计算节点并行处理的训练样本子集的数量,直至达到任一计算节点的最大存储空间,将达到最大存储空间时该计算节点所处理训练样本子集的子集数量,作为相应样本拆分方案对应的最大K值,也即是相应拆分方案下训练样本子集内的样本数量对应的最大K值,然后将一种样本拆分方案及对应的最大K值组成一种候选调度策略。
需要说明的是,在对最大K值的搜索过程中,对于任一计算节点,如果前一轮搜索时的计算量未达到最大存储空间,在后一轮计算时的计算量超过最大存储空间,则将前一轮该计算节点处理的训练样本子集的子集数量作为最大K值。
举例来说,对于任一种样本拆分方案,该样本拆分方案内训练样本子集的样本数量为8个,在初次搜索时选取K=1,采用1F1B的调度策略模拟每个计算节点对训练样本子集的计算过程,即每个计算节点一次进行前向计算或后向计算的训练样本子集的子集数量为1个,如果未达到任一计算节点的最大存储空间,则选取K=2,采用2F2B的调度策略模拟每个计算节点对训练样本子集的计算过程可控制每个计算节点,即每个计算节点一次进行前向计算或后向计算的训练样本子集的子集数量为2个,如果达到某个计算节点的最大存储空间,则确定该种样本拆分方式对应的最大K值为2。
上述以固定训练样本子集内的样本数量,为每种样本拆分方案搜索对应的最大K值,当然,还可以固定K值,为每个K值搜索对应的训练样本子集内的最大样本数量,由于每种样本拆分方案对应的训练样本子集内的样本数量是确定的,因此,当搜索到每个K值对应的训练样本子集内的最大样本数量,即可确定出每种样本拆分方案对应最大K值。对于固定K值搜索K值对应的训练样本子集内的最大样本数量的方法,与上述为每种样本拆分方案搜索对应的最大K值的方法同理,具体参见上述内容,此处不再赘述。
上述搜索每种样本拆分方案对应的最大K值的方法也称为帕累托前沿剪枝方法。图3示出了采用帕累托前沿剪枝方法得到的内存极限曲线(Memory limit curve),在该曲线上的整数对都是达到计算节点的最大存储空间时候选调度策略的解,例如图中的C点位于曲线上,C点的整数对解为达到显存上界的解;在该曲线下方区域内的整数对为候选调度策略的可行解,例如图中的A点位于曲线下,A点的整数对解虽然是可行解,但是显存没有充分利用,应该继续增加micro_batch_size或K以充分利用显存;在曲线上方区域内的整数对为候选调度策略的不可行解,此时超过了计算节点的最大显存,计算节点无法实现该计算过程。
需要说明的是,本申请实施例提供的方法在搜索每种样本拆分方案对应的最大K值时,可以不用枚举所有的可行解,这为后续生成任务图像、对候选调度策略进行评价及测试网络性能减轻了压力。
203、基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像。
以每个计算节点作为任务图像上的一个任务节点,基于各个计算节点之间的关联关系,为每种候选调度策略下的每个训练样本子集生成对应的子任务图像,得到每种候选调度策略对应的多张子任务图像,该子任务图像的数量与每种候选调度策略下所拆分的训练样本子集的子集数量相同,且每张子任务图像均相同。对于一个训练任务来说,通常采用一张任务图像来表征各个计算节点的计算过程,在得到每种候选调度策略对应的多张子任务图像之后,需要将每种候选调度策略对应的多张子任务图像进行融合,得到每种候选调度策略对应的任务图像。
204、根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略。
通常模型的训练时长能够反映出模型的训练效率,训练时长越长,模型的训练效率越低,训练时长越短,模型的训练效率越高,当根据每种候选调度策略下模型的训练时长,从多种候选调度策略下,选择出训练时长最短的目标调度策略,该目标调度策略即为训练效率最高的调度策略。具体地,在根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略时,可采用如下方法:
2041、根据每种候选调度策略对应的任务图像与最大K值,生成每种候选调度策略对应的候选调度计划。
每种候选调度策略只是指示了各个计算节点在计算训练样本子集内的训练样本时数据流的走向,对于每个计算节点所计算的训练样本子集的子集数量及计算顺序并没有给出,需要根据每种候选调度策略对应的任务图像与最大K值,为每个计算节点制定出执行具体模型训练任务时的训练计划。对于任一种候选调度策略对应的任务图像,如果该候选调度策略对应的最大K值为2,则该候选调度计划为指示每个计算节点按照任务图像上的计算顺序,在前向计算阶段,调用两次forward stage对两个训练样本子集或上一forwardstage的两个计算结果进行计算;在后向计算阶段,调用两次backward stage对两个前向计算结果或上一backward stage的两个计算结果进行计算。
2042、根据当前网络状态,通过模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,得到每种候选调度策略的训练时长。
根据每个计算节点的最大存储空间和当前网络状态,模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,通过模拟模型训练过程,可以预估出每种候选调度策略下每个训练样本的计算时长,并在当前网络状态下,通过测量每个计算节点执行每种候选调度策略对应的候选调度计划时与其他计算节点的通信过程,得到每种候选调度策略下每个计算节点与其他计算节点的通信时长,进而调用开销模型,对每种候选调度策略下每个训练样本的计算时长及每个计算节点与其他计算节点的通信时长进行处理,得到每种候选调度策略的训练时长。
2043、从多种候选调度策略中,选择出训练时长最短的目标调度策略。
基于所确定的每种候选调度策略的训练时长,即可从多种候选调度策略中,选择出训练时长最短的目标调度策略。
图4示出了面向流水线并行训练时,采用本申请实施例提供的KFKB(选取K=2)的调度策略与现有的1F1B的调度策略的性能对比图。图4中的横坐标表示训练时间,横坐标的总长度表示采用不同调度策略的训练时长(pipeline),纵坐标表示不同的计算节点,每个小框中的数字表示训练样本集中的第几个micro batch,图中空白(bubble)表示计算节点处于空闲状态。
由图4可知,采用1F1B的调度策略的训练时长比采用2F2B的调度策略的训练时长要长,bubble数量更多。之所以出现这个结果原因如下:在网络抢占场景下,各个计算节点之间的网络通信传输时间不可忽略,只有尽可能的让不依赖于该通信的计算工作起来,才能overlap(重叠)掉各个计算节点之间的通信时间,达到网络和计算节点尽可能同时忙碌的状态。
对于1F1B的调度策略来说,由于各个计算节点之间的网络通信传输时间不可忽略,因而每个micro_batch在上一计算节点上完成计算之后,需要等待一段时间才能传输给下一计算节点,而下一计算节点由于此时没有计算任务,将处于空闲状态,例如图4中的micro batch 0在device 0上的计算完成后,device 1需要等待一段时间才可接收到device 0发送的对micro_batch 0的计算结果,然后进行进一步计算。对于device 0来说,虽然在前向计算阶段各个micro_batch没有依赖关系,只要空闲下来即可对未计算的micro_batch进行计算,能够将各个计算节点之间的通信时长overlap。但在后向计算阶段,由于遵循的是1F1B原则,大多数backward stage需要等待网络传输结束才能开始计算,因而也会形成了大量的bubble。对于其他device更是如此,无论前向计算阶段还是后向计算阶段,均会形成大量的bubble。
对于2F2B调度策略来说,由于2个forward stage或2个backward stage为一组,因此,相对于1F1B的调度策略来说,虽然某个backward stage由于其依赖的输入数据还在传输中,导致针对该输入数据的后向计算无法执行,但是该计算节点可以选择另一个没有依赖项或者输入已经准备好的数据进行计算,这样各个计算节点将充分忙碌起来,从而能够overlap掉各个计算节点之间的通信时长,减少训练过程中各个计算设备的bubble数量。
进一步地,在确定出训练时长最短的目标调度策略之后,本申请实施例还将目标调度策略对应的目标调度计划发送至每个计算节点,以使每个计算节点按照目标调度计划进行模型训练。
考虑到公有云场景下网络状态经常变化,而上述步骤中所确定的目标调度计划为根据上一轮训练过程中网络状态所选择的调度计划,在后续每一轮训练过程中,随着网络状态的变化,采用目标调度计划进行训练模型训练效率可能并高,因此,需要结合每一轮训练时的网络状态,调整训练计划。在每一批次的训练样本集包括的样本数量相同的情况下,由于样本拆分方案不变,且每个计算节点的属性信息不变,因而无需再次执行上述确定每种候选调度策略对应的候选调度计划的过程,可直接基于上述步骤确定的候选调度计划进行选择。具体地,在基于下一批次的训练样本集对深度学习模型进行训练时,对当前网络的网络状态进行监测,进而根据每个计算节点的最大存储空间和当前网络状态,模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,通过模拟模型训练过程,可以预估出每种候选调度策略下每个训练样本的计算时长,并在当前网络状态下,通过测量每个计算节点执行每种候选调度策略对应的候选调度计划时与其他计算节点的通信过程,得到每种候选调度策略下每个计算节点的通信时长,进而调用开销模型,对每种候选调度策略下每个训练样本的计算时长及每个计算节点的通信时长进行处理,得到每种候选调度策略的训练时长,进而基于所确定的每种候选调度策略的训练时长,从多种候选调度策略中,重新选择出训练时长最短的目标调度策略。
当然,如果每一轮的训练样本集包括的样本数量不同,则可按照上述步骤202~204所示的方法,重新为每一轮的训练过程选择出训练时长最短的目标候选调度策略,此处不再赘述。
本申请实施例提供的方法能够结合每轮训练时的网络状态,及时调整每轮训练时的调度策略,而不是采用固定的调度策略,无论当前网络状态如何,均能够在整个模型训练过程中获得较高的模型训练效率。尤其是在网络抢占场景下,采用流水线并行训练方式对大模型进行分布式训练时,本申请不用申请超算集群,也能维持较好的训练水平,节省了成本,为在公有云服务产品上训练大规模模型提供了可能。
本申请实施例提供的方法,在采用流水线并行训练方式对深度学***。
请参考图5,其示出了本申请实施例提供了一种面向流水线并行训练的调度策略确定装置的结构示意图,该装置用于网络资源抢占场景,该装置可以通过软件、硬件或者二者结合实现,成为计算设备的全部或一部分。该装置包括:
第一确定模块501,用于根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略,该计算节点上部署有深度学习模型所切分的训练阶段,该候选调度策略用于指示每个计算节点基于训练样本集对深度学习模型进行训练的训练方式,该候选调度策略包括一种将训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,该最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值,该最大K值大于等于2;
生成模块502,用于基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像;
第二确定模块503,用于根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,该目标调度策略用于对每个计算节点的计算过程进行控制。
在本申请的另一个实施例中,第一确定模块501,用于根据训练样本集包括的样本数量,对训练样本集进行均匀拆分,得到多种样本拆分方案,每种样本拆分方案包括所拆分的训练样本子集的子集数量和训练样本子集内的样本数量;以每个计算节点的最大存储空间为约束条件,搜索每种样本拆分方案对应的最大K值,得到每种候选调度策略。
在本申请的另一个实施例中,第一确定模块501,用于在模拟每个计算节点处理每种样本拆分方案下每个训练样本子集内训练样本的过程中,不断增加每个计算节点并行处理的训练样本子集的数量,直至达到任一计算节点的最大存储空间;将每种样本拆分方案下达到最大存储空间时计算节点所计算的子集数量,作为相应样本拆分方案对应的最大K值;将一种样本拆分方案及对应的最大K值组成一种候选调度策略。
在本申请的另一个实施例中,生成模块502,用于基于各个计算节点之间的关联关系,为每种候选调度策略下的每个训练样本子集生成对应的子任务图像,得到每种候选调度策略对应的多张子任务图像,该子任务图像的数量与每种候选调度策略下所拆分的训练样本子集的子集数量相同;将每种候选调度策略对应的多张子任务图像进行融合,得到每种候选调度策略对应的任务图像。
在本申请的另一个实施例中,第二确定模块503,用于根据每种候选调度策略对应的任务图像与最大K值,生成每种候选调度策略对应的候选调度计划,该候选调度计划为每个计算节点按照相应的候选调度策略执行具体的模型训练任务时的训练计划;根据当前网络状态,通过模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,获取每种候选调度策略的训练时长;从多种候选调度策略中,选择出训练时长最短的目标调度策略。
在本申请的另一个实施例中,第二确定模块503,用于在模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程中,根据每个计算节点的最大存储空间,预估每种候选调度策略下每个训练样本的计算时长;在当前网络状态下,通过模拟每个计算节点执行每种候选调度策略对应的候选调度计划时与其他计算节点的通信过程,得到每种候选调度策略下每个计算节点与其他计算节点的通信时长;调用开销模型,对每种候选调度策略下每个训练样本的计算时长及每个计算节点的通信时长进行处理,得到每种候选调度策略的训练时长。
在本申请的另一个实施例中,该装置还包括:
发送模块,用于将目标调度策略对应的目标调度计划发送至每个计算节点,以使每个计算节点按照目标调度计划进行模型训练。
在本申请的另一个实施例中,该装置还包括:
第三确定模块,用于基于深度学习模型的模型信息和用于进行模型训练的各个计算设备的属性信息,确定多种模型切分方案,该模型切分方案用于指示对深度学习模型的切分方式及切分后的训练阶段对应的计算节点,每个计算节点包括至少一个计算设备;
第一选择模块,用于从多种模型切分方案中,选择出训练时长最短的目标切分方案;
第四确定模块,用于基于目标切分方案,确定每个计算节点的属性信息。
在本申请的另一个实施例中,该装置还包括:
监测模块,用于监测当前网络的网络状态;
第二选择模块,用于根据监测到的网络状态,从多种候选调度策略中,重新选择出训练时长最短的目标调度策略;
发送模块,用于将重新选择的目标调度策略发送至每个计算节点,该重新选择的目标调度策略用于在基下一批次的训练样本集对所述深度学习模型进行训练时,对每个计算节点的计算过程进行控制。
需要说明的是,图1和图5所示的面向流水线并行训练的调度策略确定装置,均能够在面向流水线并行训练场景下,选择出适合当前网络的调度策略,从而在网络抢占场景下,获取较高的模型训练效率。二者的功能相同,当然,图1中包括的各个设备与图5包括的各个模块之间也必然存在一定的关系。具体来说,图1中自适应分组器与图5中的第一确定模块对应,该自适应分组器中可以包括第一确定模块,或者可以是第一确定模块;图1中的任务图像生成器与图5中的生成模块对应,该任务图像生成器可以包括生成模块,或者可以是生成模块;图1中的自适应分组调度器与图5中的第二确定模块及发送模块对应,该自适应分组调度器可以包括第二确定模块及发送模块;图1中的模型切分器与图5中的第三确定模块、第一选择模块及第四确定模块对应,该模型切分器可以包括第三确定模块、第一选择模块及第四确定模块。
本申请实施例提供的装置,在采用流水线并行训练方式对深度学***。
本申请实施例提供了一种流水线并行训练***,参见图6,该***包括面向流水线并行训练的调度策略确定装置601及多个计算节点602;
该调度策略确定装置601如图5所示的装置,用于执行上述面向流水线并行训练的调度策略确定方法;
每个计算节点602,用于接收调度策略确定装置601发送的目标调度策略,并按照目标调度策略进行模型训练。
图7示出了本申请一个示例性实施例提供的一种计算设备700的结构框图。通常,计算设备700包括有:处理器701和存储器702。
处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括人工智能处理器,该人工智能处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是CD-ROM(Compact Disc Read-Only Memory,只读光盘)、ROM、RAM(Random AccessMemory,随机存取存储器)、磁带、软盘和光数据存储设备等。该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序被执行时能够实现面向流水线并行训练的调度策略确定方法。
当然,上述计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理器和***接口模块之间提供接口,上述***接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
本领域技术人员可以理解,图7中示出的结构并不构成对计算设备700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序被处理器执行时能够实现面向流水线并行训练的调度策略确定方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时能够实现面向流水线并行训练的调度策略确定方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (13)
1.一种面向流水线并行训练的调度策略确定方法,其特征在于,所述方法应用于网络资源抢占场景,所述方法包括:
根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略,所述计算节点上部署有深度学习模型所切分的训练阶段,所述候选调度策略用于指示每个计算节点基于所述训练样本集对所述深度学习模型进行训练的训练方式,所述候选调度策略包括一种将所述训练样本集均匀拆分成多个训练样本子集的样本拆分方案及对应的最大K值,所述最大K值用于指示每个计算节点在相应样本拆分方案下进行一次前向计算或后向计算时子集数量的最大值,所述最大K值大于等于2;
基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像;
根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,所述目标调度策略用于对每个计算节点的计算过程进行控制。
2.根据权利要求1所述的方法,其特征在于,所述根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略,包括:
根据所述训练样本集包括的样本数量,对所述训练样本集进行均匀拆分,得到多种样本拆分方案,每种样本拆分方案包括所拆分的训练样本子集的子集数量和训练样本子集内的样本数量;
以每个计算节点的最大存储空间为约束条件,搜索每种样本拆分方案对应的最大K值,得到每种候选调度策略。
3.根据权利要求2所述方法,其特征在于,所述以每个计算节点的最大存储空间为约束条件,搜索每种样本拆分方案对应的最大K值,得到每种候选调度策略,包括:
在模拟每个计算节点处理每种样本拆分方案下每个训练样本子集内训练样本的过程中,不断增加每个计算节点并行处理的训练样本子集的数量,直至达到任一计算节点的最大存储空间;
将每种样本拆分方案下达到最大存储空间时计算节点所计算的子集数量,作为每种样本拆分方案对应的最大K值;
将一种样本拆分方案及对应的最大K值组成一种候选调度策略。
4.根据权利要求2所述的方法,其特征在于,所述基于每种候选调度策略中的样本拆分方案和各个计算节点之间的关联关系,生成每种候选调度策略对应的任务图像,包括:
基于各个计算节点之间的关联关系,为每种候选调度策略下的每个训练样本子集生成对应的子任务图像,得到每种候选调度策略对应的多张子任务图像,所述子任务图像的数量与每种候选调度策略下所拆分的训练样本子集的子集数量相同;
将每种候选调度策略对应的多张子任务图像进行融合,得到每种候选调度策略对应的任务图像。
5.根据权利要求1所述的方法,其特征在于,所述根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略,包括:
根据每种候选调度策略对应的任务图像与最大K值,生成每种候选调度策略对应的候选调度计划,所述候选调度计划为每个计算节点按照相应的候选调度策略执行模型训练任务时的训练计划;
根据所述当前网络状态,通过模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,获取每种候选调度策略的训练时长;
从多种候选调度策略中,选择出训练时长最短的目标调度策略。
6.根据权利要求5所述的方法,其特征在于,所述根据所述当前网络状态,通过模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程,获取每种候选调度策略的训练时长,包括:
在模拟每个计算节点按照每种候选调度策略对应的候选调度计划进行模型训练的过程中,根据每个计算节点的最大存储空间,预估每种候选调度策略下每个训练样本的计算时长;
在所述当前网络状态下,通过模拟每个计算节点执行每种候选调度策略对应的候选调度计划时与其他计算节点的通信过程,得到每种候选调度策略下每个计算节点与其他计算节点的通信时长;
调用开销模型,对每种候选调度策略下每个训练样本的计算时长及每个计算节点与其他计算节点的通信时长进行处理,得到每种候选调度策略的训练时长。
7.根据权利要求5所述的方法,其特征在于,所述根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略之后,还包括:
将所述目标调度策略对应的目标调度计划发送至每个计算节点,以使每个计算节点按照所述目标调度计划进行模型训练。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述根据任一批次的训练样本集和每个计算节点的属性信息,确定多种候选调度策略之前,还包括:
基于所述深度学习模型的模型信息和用于进行模型训练的各个计算设备的属性信息,确定多种模型切分方案,所述模型切分方案用于指示对所述深度学习模型的切分方式及切分后的训练阶段对应的计算节点,每个计算节点包括至少一个计算设备;
从多种模型切分方案中,选择出训练时长最短的目标切分方案;
基于所述目标切分方案,确定每个计算节点的属性信息。
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述根据当前网络状态和每种候选调度策略对应的任务图像与最大K值,从多种候选调度策略中,确定出训练时长最短的目标调度策略之后,还包括:
监测当前网络的网络状态;
根据监测到的网络状态,从多种候选调度策略中,重新选择出训练时长最短的目标调度策略;
将重新选择的目标调度策略发送至每个计算节点,所述重新选择的目标调度策略用于在基下一批次的训练样本集对所述深度学习模型进行训练时,对每个计算节点的计算过程进行控制。
10.一种流水线并行训练***,其特征在于,所述***包括面向流水线并行训练的调度策略确定装置及多个计算节点;
所述调度策略确定装置,用于执行权利要求1至9中任一项所述的面向流水线并行训练的调度策略确定方法;
每个计算节点,用于接收所述调度策略确定装置发送的目标调度策略,并按照所述目标调度策略进行模型训练。
11.一种计算设备,其特征在于,包括处理器以及存储器;所述存储器存储至少一条程序代码;所述至少一条程序代码用于被所述处理器调用并执行,以实现如权利要求1至9中任一项所述的面向流水线并行训练的调度策略确定方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序被处理器执行时能够实现如权利要求1至9中任一项所述的面向流水线并行训练的调度策略确定方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时能够实现如权利要求1至9中任一项所述的面向流水线并行训练的调度策略确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310222902.9A CN116450312A (zh) | 2023-03-02 | 2023-03-02 | 面向流水线并行训练的调度策略确定方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310222902.9A CN116450312A (zh) | 2023-03-02 | 2023-03-02 | 面向流水线并行训练的调度策略确定方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116450312A true CN116450312A (zh) | 2023-07-18 |
Family
ID=87121037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310222902.9A Pending CN116450312A (zh) | 2023-03-02 | 2023-03-02 | 面向流水线并行训练的调度策略确定方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450312A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974654A (zh) * | 2023-09-21 | 2023-10-31 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN117057411A (zh) * | 2023-10-11 | 2023-11-14 | 北京燧原智能科技有限公司 | 一种大语言模型训练方法、装置、设备及存储介质 |
CN117112145A (zh) * | 2023-10-16 | 2023-11-24 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
CN117311998A (zh) * | 2023-11-30 | 2023-12-29 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及*** |
CN118069375A (zh) * | 2024-04-18 | 2024-05-24 | 清华大学 | 数据中心大模型训练的流水线并行优化方法及装置 |
-
2023
- 2023-03-02 CN CN202310222902.9A patent/CN116450312A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974654A (zh) * | 2023-09-21 | 2023-10-31 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN116974654B (zh) * | 2023-09-21 | 2023-12-19 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN117057411A (zh) * | 2023-10-11 | 2023-11-14 | 北京燧原智能科技有限公司 | 一种大语言模型训练方法、装置、设备及存储介质 |
CN117057411B (zh) * | 2023-10-11 | 2024-01-09 | 北京燧原智能科技有限公司 | 一种大语言模型训练方法、装置、设备及存储介质 |
CN117112145A (zh) * | 2023-10-16 | 2023-11-24 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
CN117112145B (zh) * | 2023-10-16 | 2024-02-13 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
CN117311998A (zh) * | 2023-11-30 | 2023-12-29 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及*** |
CN117311998B (zh) * | 2023-11-30 | 2024-03-05 | 卓世未来(天津)科技有限公司 | 一种大模型部署方法及*** |
CN118069375A (zh) * | 2024-04-18 | 2024-05-24 | 清华大学 | 数据中心大模型训练的流水线并行优化方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116450312A (zh) | 面向流水线并行训练的调度策略确定方法及*** | |
Chen et al. | DNNOff: offloading DNN-based intelligent IoT applications in mobile edge computing | |
Liu et al. | A reinforcement learning-based resource allocation scheme for cloud robotics | |
CN112015536B (zh) | Kubernetes集群容器组调度方法、装置及介质 | |
US12008445B2 (en) | Black-box optimization using neural networks | |
CN106503791A (zh) | 用于有效神经网络部署的***和方法 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
Mostafa et al. | Fog resource selection using historical executions | |
CN103092683A (zh) | 用于数据分析的基于启发式的调度 | |
CN114915630A (zh) | 基于物联网设备的任务分配方法、网络训练方法及装置 | |
CN113918314A (zh) | 任务处理方法、边缘计算设备、计算机设备、介质 | |
CN114595049A (zh) | 一种云边协同任务调度方法及装置 | |
CN113472597A (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
CN114356540A (zh) | 一种参数更新方法、装置、电子设备和存储介质 | |
CN105740059A (zh) | 一种面向可分割任务的粒子群调度方法 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
CN116643877A (zh) | 算力资源调度方法、算力资源调度模型的训练方法和*** | |
CN114429195A (zh) | 混合专家模型训练的性能优化方法和装置 | |
CN114240506A (zh) | 多任务模型的建模方法、推广内容处理方法及相关装置 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
Poltronieri et al. | Value is king: the mecforge deep reinforcement learning solution for resource management in 5g and beyond | |
CN116367190A (zh) | 一种面向6g移动网络的数字孪生功能虚拟化方法 | |
Ahn et al. | Scissionlite: Accelerating distributed deep neural networks using transfer layer | |
CN113254200B (zh) | 资源编排方法及智能体 | |
CN115460700A (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 |