CN114169427B - 基于端到端自适应的分布式训练方法、装置、设备 - Google Patents
基于端到端自适应的分布式训练方法、装置、设备 Download PDFInfo
- Publication number
- CN114169427B CN114169427B CN202111471601.7A CN202111471601A CN114169427B CN 114169427 B CN114169427 B CN 114169427B CN 202111471601 A CN202111471601 A CN 202111471601A CN 114169427 B CN114169427 B CN 114169427B
- Authority
- CN
- China
- Prior art keywords
- training
- model
- trained
- determining
- computing resource
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Abstract
本公开提供了基于端到端自适应的分布式训练方法、装置、设备以及存储介质,涉及人工智能技术领域,尤其是深度学习、云计算等领域。具体实现方案为:对待训练的模型进行切分,得到切分结果;对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,分配给待训练的模型进行训练的计算资源是根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种;利用计算资源的属性,确定每个切分结果在计算资源中的分布策略;根据分布策略,利用计算资源对待训练的模型进行分布式训练。可以实现模型训练的端到端自适应调节。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及深度学习、云计算等领域,特别涉及一种基于端到端自适应的分布式训练方法、装置、设备以及存储介质。
背景技术
近年来,为了追求更好的效果,在计算机视觉、自然语言处理、个性化推荐等领域的模型都采用更大规模的模型参数或更大规模的训练数据。从训练框架的使用者角度来说,当前传统的分布式训练技术在易用性、鲁棒性、资源利用率几个维度上面临的问题还比较严峻。例如,常见问题包括自动化程度低、单点故障率高等。
发明内容
本公开提供了一种基于端到端自适应的分布式训练方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种基于端到端自适应的分布式训练方法,该方法可以包括以下过程:
对待训练的模型进行切分,得到切分结果;
对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,分配给待训练的模型进行训练的计算资源是根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种;
利用计算资源的属性,确定每个切分结果在计算资源中的分布策略;
根据分布策略,利用计算资源对待训练的模型进行分布式训练。
根据本公开的另一方面,提供了一种基于端到端自适应的分布式训练装置,该装置可以包括:
切分模块,用于对待训练的模型进行切分,得到切分结果;
计算资源的属性确定模块,用于对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,分配给待训练的模型进行训练的计算资源是根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种;
分布策略确定模块,用于利用计算资源的属性,确定每个切分结果在计算资源中的分布策略;
分布式训练模块,用于根据分布策略,利用计算资源对待训练的模型进行分布式训练。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本公开任一实施例中的方法。
根据本公开的技术对于待训练模型、计算资源进行自动分析。无需用户端进行其他操作,对于用户端而言,可以简化模型训练的过程。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开基于端到端自适应的分布式训练方法的流程图之一;
图2是根据本公开对待训练的模型进行切分的流程图;
图3是根据本公开模型的分布式训练方法的整体示意图;
图4是根据本公开确定计算资源的属性的流程图之一;
图5是根据本公开分布式属性信息的类别的确定方式的流程图;
图6是根据本公开确定计算资源的硬件拓扑关系的流程图;
图7是根据本公开计算资源的硬件拓扑关系示意图;
图8是根据本公开确定计算资源的属性的流程图之二;
图9是根据本公开确定分布策略的流程图;
图10是根据本公开分布式训练的流程图之一;
图11是根据本公开分布式训练的流程图之二;
图12是根据本公开分布式训练的流程图之三;
图13是根据本公开补救措施的示意图之一;
图14是根据本公开分布式训练的流程图之四;
图15是根据本公开补救措施的示意图之二;
图16是根据本公开分布式训练的流程图之五;
图17是根据本公开计算资源增容后的调整示意图;
图18是根据本公开基于端到端自适应的分布式训练方法的流程图之二;
图19是根据本公开基于端到端自适应的分布式训练装置的示意图;
图20是用来实现本公开实施例的基于端到端自适应的分布式训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本公开涉及一种基于端到端自适应的分布式训练方法,该方法可以包括以下过程:
S101:对待训练的模型进行切分,得到切分结果;
S102:对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,分配给待训练的模型进行训练的计算资源是根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种;
S103:利用计算资源的属性,确定每个切分结果在计算资源中的分布策略;
S104:根据分布策略,利用计算资源对待训练的模型进行分布式训练。
本公开的上述方法的执行主体可以是用于执行模型训练的云端服务器或模型训练平台等,示例性地,可以是基于k8s的异构训练平台。
可以在执行主体中加载执行上述方法的执行器。以模型训练平台为例,模型训练平台的作用在于接收用户端发起的模型训练请求,并为其分配计算资源。执行器通过与平台的交互,获取模型训练请求以及计算资源信息,从而执行模型训练过程。
待训练的模型可以包括视觉模型、语言模型、推荐模型、点击率预估模型等。待训练的模型的参数数量级和训练样本的数量级以亿为单位。
对模型的分布式训练过程可以是端到端的过程。例如,待训练模型可以是由模型训练平台对用户端发起的模型训练请求进行解析获取到的。通过对该训练请求进行解析,即可基于解析结果进行模型的训练过程,直至最终模型输出的结果收敛。
相关技术中,在模型训练过程中需要单独开发不同模型的切分策略。同时对于训练并行策略,需要在已有模型训练平台的框架基础上做兼容和组合,随着并行策略的增多,开发难度必将逐渐增大。若再考虑硬件侧不同硬件架构下的计算、存储、带宽资源和连接关系不同,模型训练平台的框架开发者还需要结合硬件特点定制化开发并行策略。例如,相关技术中需要开发者根据待训练模型和模型训练平台的硬件做手动适配开发,由此导致易用性差。由于不同的待训练模型的特点差异会很大,与之对应的训练策略方案也会因此不同,比如自然语言处理、计算机视觉等模型,需要多维混合并行策略组合应用来解决模型存储和高效通信问题。而推荐场景的模型需要模型并行来解决稀疏存储,并使用数据并行来提升吞吐效率。由此会导致对于开发者的门槛较高。
其次,相关技术的鲁棒性差。庞大数量的计算资源极易出现单节点故障,进而导致整个训练失败。如果重新经历模型训练任务提交、计算资源分配、待训练模型加载、训练启动这一过程,往往需要耗费几十分钟,不仅耽误了训练进度,而且这期间会导致大量的计算资源空闲。以千卡集群为例,空闲半个小时就相当于多出上万元的训练成本。
再次,相关技术中,一个训练任务仅能使用一种计算资源。但随着硬件发展和不断更新换代,计算资源的种类和型号会越来越多,而且也会产生大量闲置的计算资源。相关技术中并未充分考虑根据计算资源的特点匹配合适的并行策略,由此导致相关技术并未充分发挥每种硬件的优势。
对此,本公开的上述过程,可以配置自动化的模型切分过程,以对待训练的模型进行切分。示例性地,对待训练的模型进行切分可以以待训练模型的网络层为依据。例如,可以对同一网络层的张量进行切分,将同一网络层的N个张量切分为两组,每组N/2个张量。或者,可以以网络层为单位进行切分,将同属于一个网络层的张量切分为一个切片,或将具有相同功能的多个网络层的张量切分为一个切片等。对于待训练的模型进行切分,可以解耦分布式算子和分布式张量,由此可以灵活表示和组合各种并行策略,大幅提升分布式训练架构的扩展性与可维护性。
另外,可以利用硬件解析机制对分配给待训练模型的计算资源进行解析,得到计算资源的属性。其中,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种。例如,计算资源的拓扑关系可以是当前计算资源与其他计算资源的连接关系、带宽等信息。任务处理能力可以包括当前计算资源的任务处理速度和任务处理数量等。
一方面,计算资源的分配可以基于对用户端发起的模型训练请求的解析得到。例如,训练请求中请求计算资源的数量为a至b,其中,a和b为正整数,则可以根据计算资源的空闲情况,对应分配a至b中的数值。该数值即作为响应训练请求的计算资源的数量。
另一方面,分配给待训练的模型进行训练的计算资源还可以同时参考待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定。例如,在接收到用户端提交待训练模型的训练请求,从中解析出所需计算资源的最少算力数和最大算力数。根据解析出的算力需求,查找出来连接尽可能少的计算资源以分配给该待训练模型。
具体的,分配方式可以基于以下几种情况:
如果当前空闲的硬件资源不能满足当前用户需求,且当前用户没有训练任务占用更多的硬件资源,则当前用户的训练任务需要排队。
如果当前空闲的硬件资源不能满足当前用户需求,但当前用户有训练任务正在占用更多的硬件资源,且去掉多余的硬件资源后仍然能满足当前用户其他训练任务的算力需求,则会触发硬件资源的分配缩容。
如果当前空闲的硬件资源能满足当前用户需求,但空闲的硬件资源(例如卡)分散在多个机器上。此时会启动碎片整理,触发正在训练任务的容错功能,将正在执行训练的任务从一个机器的挪到另外一个机器继续训练,从而使当前用户获取整台机器进行任务训练。
如果当前空闲的硬件资源能满足当前用户需求,也超出了当前用户需求,且没有其他任务排队。会在满足当前用户的最大算力需求下分配给当前用户更多的硬件资源。
其中,计算资源的粒度可以包括多种,例如最小组件、由最小组件组成的机器组件,以及由机器组件组成的簇。示例性地,簇可以对应集群,机器组件可以对应单台机器,最小组件可以对应单台机器中的卡等。通过对分配给待训练模型的计算资源进行解析,可以实现集群之间、集群内部的单台机器之间、单台机器内部的最小组件之间具体连接关系。通过连接关系,可以确定不同计算资源之间的通信情况,做到将具有差异、通信效率低或无法兼容的计算资源之间的屏蔽。
在当前实施方式中,对于对待训练的模型进行切分以及计算资源的属性的确定(包括计算资源的分配),这两部分可以是并行执行的。从而可以提高模型训练的效率。例如,可以以接收到用户的模型训练请求为触发条件,一方面对模型训练请求进行解析,以获取待训练的模型,从而实现模型的切分。另一方面,可以基于触发条件对于训练平台可用的资源进行整体分析,根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定出响应于模型训练请求的计算资源分配结果。
根据计算资源的属性,可以确定每个切分结果在计算资源中的分布策略。示例性地,切分结果包括N个分片。可以以N个分片分配至对应数量的计算资源后的最优分配结果作为依据,确定分布策略。其中,最优分配结果可以包括训练速度最快、训练数据量最多、各个计算资源的利用率最高等。具体可以根据用户的训练需求进行对应设置。
根据分布策略,利用计算资源对待训练的模型进行分布式训练。其中,分布式训练可以包括使分配给待训练的模型并行执行计算过程,以提升训练效率。
本公开的上述过程可以应用于计算机视觉、自然语言处理、推荐搜索广告领域的超大模型训练场景。
以计算机视觉领域为例,上述过程可支撑千万或上亿人脸分类模型训练、数十亿视觉模型训练、百亿图片与文本等多模态模型训练,并进一步应用于下游任务,如人脸检测、车辆检测、图文搜索、图片生成等。
以自然语言处理为例,上述过程可支撑百亿对话模型训练,百亿、千亿、万亿语言模型训练,并进一步应用于对话系统,搜索语义相关性,智能写作等场景。
以推荐领域为例,上述过程可支撑万亿点击率模型训练,进一步应用于视频推荐、图文推荐等信息流场景、搜索排序、广告排序等场景。
总体而言,本公开的过程通过统一计算视图来通用化支持任意的模型的任意切分策略。通过统一资源视图来支持任意集群任意硬件,来通用化屏蔽异构硬件资源带来的差异。当模型和资源发生变化后,整个系统会自动的重新生成统一计算视图和统一资源视图,在任务不中断的情况下,自动触发后续子模块,重新进行切分、资源映射、将新分布的任务给各个设备,并启动进程执行任务分配和执行。
通过上述过程,对于用户端上传的待训练模型、计算资源进行自动分析。无需用户端进行其他操作,对于用户端而言,可以简化模型训练的过程。
如图2所示,在一种实施方式中,步骤S101可以包括以下过程:
S201:确定待训练的模型中的算子和张量;
S202:利用切分策略,对待训练的模型中的算子和张量进行切分,得到切分结果。
对应图3中所示的“通用自动切分策略”,图3中待训练的模型包含8个网络层。待训练的模型的首个网络层(图3中最左侧)可以作为待训练的模型的输入层,最后一个网络层(图3中最右侧)可以作为待训练的模型的输出层。中间的6个网络层可以作为待训练的模型的隐含层。以首个网络层为示例,该网络层包括4个张量。图3中连接各网络层的张量之间的连线可以作为算子。
通过对待训练模型进行解析,可以确定待训练模型中的算子和张量。切分策略可以是用户端发起的模型训练请求中所包含的。在用户端发起的模型训练请求中未包含切分策略的情况下,可以利用预先训练的切分策略模型确定出切分策略。
根据确定出的切分策略,可以完成对待训练的模型中的算子和张量进行切分,得到切分结果。由于切分结果可以进行分布式执行,因此可以切分结果又可以称为分布式算子和分布式张量。
通过上述过程,解耦了分布式算子和分布式张量,可以灵活表示和组合各种并行策略,大幅提升分布式训练架构的扩展性与可维护性。
如图4所示,在一种实施方式中,步骤S202可以包括以下过程:
S401:利用切分策略,对待训练的模型中的算子和张量进行切分,得到N个切片,N为正整数;
S402:对于每个切片,加载切片的分布式属性信息,分布式属性信息包括该切片在待训练的模型中的进程拓扑信息、该切片的切分映射信息、该切片的切片大小信息中的至少一类;
S403:将加载分布式属性信息的切片作为切分结果。
利用切分策略,对待训练的模型中的算子和张量进行切分后,可以对应得到N个切片。结合图3所示的切分示例,图3中的8个虚线框分别对应8个切片。首个网络层中的4个张量被平均切分为2个切片,每个切片中包含2个张量。首个隐含层至第5个隐含层中所各自对应的网络层,被切分为1个切片。第6个隐含层和待训练的模型的输出层被切分为1个切片。
切片的分布式属性信息可以表示切片的切分维度。以首个网络层中的4个张量被平均切分为2个切片为示例。2个切片的分布式属性信息相同,其中该切片在待训练的模型中的进程拓扑信息(process_mesh)可以表示该切片为待训练模型的输入层,其输入端为训练样本,输出端为首个隐含层。切片的切分映射信息(dims_mapping)可以用于表征单个网络层被切分的数量,例如首个网络层被切分为2个。示例性地,若首个网络层中的4个张量被切分为4个切片,则切片的切分映射信息可以用于表征单个网络层被切分为4个。切片的切片大小信息(shard_sizes)可以用于表征切片中包含的网络层数。示例性地,除图3中最右侧的切片大小信息为2以外,其余切片的大小信息可以为1。另外,切片的切片大小信息还可以用于表征每个切片中所包含的算子数量和张量数量。
通过上述过程,每个切片都可以携带各自分布式属性,并且支持切片中张量的分布式属性与使用这个张量的算子中的对应分布式属性不同,有利于存储和计算过程的分离。
如图5所示,在一种实施方式中,分布式属性信息的类别的确定方式,可以包括以下过程:
S501:利用预定方式接收分布式属性信息的多个候选类别;
S502:将在多个候选类别确定出的目标类别,作为分布式属性信息的类别。
预定方式可以是通过设置分布式属性类别的接收端口以进行类别接收的方式。分布式属性信息的类别的上传对象可以是有资质的用户或经过认证的第三方机构。可以利用人工或机器识别等方式,对接收到的分布式属性的类别进行甄别,将甄别合格的类别作为候选类别。
或者,预定方式也可以是开发人员编写的分布式属性信息的类别。具体的预定方式在此不进行穷举。
在多个候选类别中确定出目标类别的方式可以根据模型的训练需求确定,也可以根据目标类别的使用率确定,使用率可以是基于历史数据获取到的。
通过上述方式,可以开发分布式属性信息的类别扩展机制,从而可以支持对分布式属性信息进行粗粒度、细粒度的多种划分。
在一种实施方式中,还可以包括以下步骤:
利用每个切片的分布式属性,确定每个切片的放置信息,放置信息用于表征切片与计算资源的物理映射关系。
切片的放置信息(device_placement)可以表征切片所需的计算资源。示例性地,图3中首个网络层中的4个张量被平均切分为2个切片,则2个切片的放置信息可以相同,由此可以保证2个切片的完成时间基本一致。由此,2个切片对应的计算资源可以具有算力相当或通信链路短等特点,由此可以提高训练效率。
另外,若根据分布式属性确定出切片中的算子数量或张量数量较大,则可以选择算力较强的计算资源作为放置对象。
通过上述过程,可以实现训练模型的逻辑切分和物理映射之间的解耦,利用切片的放置信息,可以更好的兼容异构硬件,使得训练过程的效率更加优化。
在一种实施方式中,当切片位于待训练的模型的相邻网络层且切片的放置信息不同,可以包括以下步骤:
利用放置信息,确定通信辅助算子,通信辅助算子用于表征各切片之间的上下游逻辑运算关系。
仍以图3为示例,图3中的首个隐含层对应的切片和第2个隐含层对应的切片之间的关系可以对应为待训练的模型的相邻网络层。对于相邻网络层而言,上游网络层的输出数据可以作为下游网络层的输入数据。首个隐含层对应的计算资源为图3中的XPU0,第2个隐含层对应的计算资源为图3中的GPU0。
显然,上述2个切片位于待训练的模型的相邻网络层,且2个切片的放置信息彼此不同。在此情况下,可以确定通信辅助算子,用以告知2个切片以及对应的计算资源,示例性地,告知的信息可以包括在图3中的XPU0完成对应计算并得到计算结果的情况下,利用通信辅助算子将计算结果传输至GPU0,以实现计算的连续性以及保证跨设备切分的正确性。
在一种实施方式中,当所述切片位于待训练的模型的同一网络层,可以包括以下步骤:
确定重组转换算子,重组转换算子用于表征各切片之间的网络层一致性关系。
仍以图3为示例,图3中的首个网络层中的4个张量被平均切分为2个切片。图3所示示例中,2个切片中的第一切片对应的计算资源为图3中的CPU0,2个切片中的第二切片对应的计算资源为图3中的CPU1。在此情况下,可以确定重组转换算子,用以告知2个切片以及对应的计算资源。示例性地,告知的信息可以包括在图3中的CPU0、CPU1完成对应计算并得到计算结果的情况下,将计算结果进行合并,以对应首个网络层的输出数据。
不难理解,即便在图3所示的2个切片对应的计算资源相同的情况下,仍然可以利用重组转换算子对计算结果进行合并。
通过上述过程,可以保证计算的正确性。
在一种实施方式中,切分策略的确定方式包括:
对用户端发起的模型训练请求进行解析确定。
在一种实施方式中,切分策略的确定方式包括:
利用预先训练的切分策略模型确定。
可以根据用户端发起的模型训练请求,将待训练模型表示成一个逻辑计算视图,并对该逻辑计算视图进行属性标记。属性标记可以对应前述分布式属性信息。同时,根据训练平台分配的计算资源,构建资源视图。逻辑计算视图和资源视图可以如前述图3中所示的示例。
切分策略模型可以基于以下几种情况确定切分策略:
例如:对逻辑计算视图有N种切分方式,对硬件资源图有M种切分方式,通过代价模型来算N*M的代价值,选最小的作为最终的切分策略。
又例如:先对对逻辑计算视图有N种切分方式进行筛选,筛选规则可以是切分速度最快、切分结果的数量在对应阈值范围内等。筛选出的结果可以记为N1。通过代价模型来算N1*M的代价值,选最小的作为最终的切分策略。
再例如:将逻辑计算视图、硬件资源图,抽象成对应的数学表达式。通过对数学表达式求解,以得到进行求解,以得到最终的切分策略。
预先训练的切分策略模型可以是成本模型(cost-model)。成本模型可以包括搜索算法和代价模型。利用搜索算法得到不同的结果,利用代价模型对不同的结果进行评估。上述模型遵循的原则是切分策略满足利益最大化。示例性地,利益最大化可以包括利用该切分策略得到的切分结果满足计算时间最短、利用该切分策略得到的切分结果满足训练精准度高于预定阈值等。切分策略模型可以根据计算资源的数量,以及待训练模型的结构,对待训练模型进行切分操作。具体的切分策略可以根据训练样本的不同,实现对应的效果。对于成本模型的训练过程不再进行赘述。
在一种实施方式中,步骤S102可以包括以下步骤:
确定计算资源的硬件拓扑关系,将硬件拓扑关系作为计算资源的属性。
计算资源的硬件拓扑关系的确定方式可以通过对分配给待训练模型的计算资源进行解析以获得。
其中,计算资源的硬件拓扑关系可以包括计算资源的连接关系、带宽信息、任务处理能力等。示例性地,以当前计算资源作为源计算资源的情况下,计算资源的连接关系可以包括源计算资源与目标计算资源的连接关系。
示例性地,计算资源可以包括软件资源、硬件资源等。具体而言,计算资源可以包括CPU、GPU、XPU、Memory等。
通过对计算资源的属性的确认,可以将(集群)计算资源处理能力和拓扑连接关系进行抽象表示,从而可以屏蔽硬件之间的差异,支持各种异构硬件和集群环境,进一步降低了开发难度。
如图6所示,在一种实施方式中,确定计算资源的硬件拓扑关系,具体可以包括以下过程:
S601:确定计算资源中的最小组件,最小组件包括处理器或存储器;
S602:确定由至少一个最小组件组成的机器设备,每个机器设备中的最小组件不重复;
S603:确定由至少一个机器设备组成的簇,每个簇中的机器设备不重复;
S604:将最小组件、机器设备和簇作为计算资源的硬件拓扑关系。
结合图7所示为计算资源的硬件拓扑关系图。图7中所示的簇(图7中Cluster)由多个机器设备(图7中Machine)构成,每个Machine包含多个最小组件(图7中Component)。Component是组成Machine最小单元,可以是处理器(图7中Processor)或存储器(图7中Memory)。处理器的算力表示为每秒所执行的浮点运算次数(图7中flops)。存储器的存储能力在图7中记为capacity。
每个Component记录有其相关信息,例如Component的标识(图7中Component id)、Component的类型(图7中Component kind)。Component的类型对应为处理器或存储器。
每个Machine记录有其包含的Component(图7中components)。此外,还可以记录有该Machine的标识(图7中machine id)、该Machine的物理地址(图7中addr)、该Machine所包含的接口(图7中port)。
Cluster记录有其包含的Machine(图7中machines),以及拓扑图(图7中TopologyGraph)。Topology Graph中的每个顶点对应component,顶点还对应有密切关系列表(图7中Affinity)。
对应的,在一种实施方式中,确定计算资源的硬件拓扑关系,还包括:
确定每个最小组件的密切关系列表;密切关系列表包括源最小组件和目的最小组件之间的连接关系、带宽信息和延迟信息中的至少一种;
将密切关系列表作为计算资源的硬件拓扑关系。
图7中源最小组件可以表示为source component,目的最小组件可以表示为target component。源最小组件和目的最小组件之间的连接关系可以表示为link kind,带宽信息可以表示为bandwidth,延迟信息可以表示为latancy。其中,连接关系可以包括PCIE、IB、Shared Memory、NVLINK等。
通过上述过程,不仅包括设备间的拓扑信息,还包括了设备内的处理器、显存、带宽等处理能力相关信息,实现了集群之间、集群内部硬件之间、硬件内部的具体连接方式及差异的屏蔽,可以支持各种异构硬件和集群环境。
在一种实施方式中,分配给待训练的模型进行训练的计算资源是根据用户端发起的模型训练请求的内容,以及发起模型训练请求的用户端的数量中的至少一种确定的。
用户端在模型训练平台发起的模型训练请求。训练请求类型包括弹性训练任务和非弹性训练任务。本公开实施方式针对的类型主要为弹性训练任务,弹性训练任务又分为支持容错模式和弹性扩缩容模式,当指定所需计算资源的数量(计算节点)是固定的值时(例如node_nums=2或者node_nums=2:2),可以表示是容错模式。当指定所需计算资源的数量是一个范围时(例如node_nums=2:4),可以表示是弹性扩缩模式。
对于计算资源的分配,一方面可以基于用户端发起的模型训练请求的内容确定。另一方面,还可以基于发起模型训练请求的用户端的数量确定。示例性地,发起模型训练请求的用户端的数量多,则计算资源的需求量就会增加,由此计算资源可能会出现排队的情况。反之,发起模型训练请求的用户端的数量少,则计算资源的需求量就会减少,而计算资源可能会出现空闲的情况。
基于上述两方面的情况,可以对训练平台的计算资源进行整体调控,充分利用计算资源的同时,发挥每种计算资源的优势,进一步提升集群资源利用率。此外,通常夜间会有大量闲置资源,利用上述方式可以做到计算资源的分时复用,也会给用户端和训练平台带来更大的收益。
如图8所示,在一种实施方式中,对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,还可以包括以下过程:
S801:获取计算资源的通信路径;
S802:利用计算资源的通信路径,构建各计算资源之间的通信拓扑关系;
S803:将通信拓扑关系作为计算资源的属性。
计算资源的通信路径可以用于表征源通信资源和目标通信资源的通信连接状态、通信连接方式以及通信速度。
其中,通信连接状态可以包括已连接状态和未连接状态。在通信连接状态为已连接状态的情况下,通信连接方式可以对应源通信资源和目标通信资源的具体通信方式。通信速度可以根据通信方式的不同,进行对应的测算,以得到通信速度。
利用计算资源的通信路径,可以构建各计算资源之间的通信拓扑关系。示例性地,拓扑关系可以包括多个通信子域。通过不同的通信子域可以进行不同的并行模式。多种并行模式可以同时存在。
在一种实施方式中,还可以包括以下步骤:
根据通信拓扑关系,确定源计算资源与目标计算资源之间的最短通信路径。
利用通信拓扑关系,可以计算不同计算资源之间的通信时长。根据通信时长的比较,在需要进行源计算资源与目标计算资源通信的情况下,可以利用通信拓扑关系,确定源计算资源与目标计算资源之间的最短通信路径。
如图9所示,在一种实施方式中,步骤S103可以包括以下过程:
S901:获取各切分结果在计算资源中的候选分布策略;
S902:分别统计每个候选分布策略的效率;
S903:根据每个候选分布策略的效率,在候选分布策略中确定出目标分布策略。
以切分结果包括N个分片为例,可以利用穷举的方式,依次遍历N个分片与计算资源进行分配后的时间估计、效率估计等。即穷举结果可以对应候选分布策略。时间估计的结果、效率估计的结果等可以作为每个候选分布策略的代价。代价用于表征每个切分结果的训练效率,或待训练的模型的整体训练效率。
例如,在待训练模型的整体训练效率最高的情况所对应的分布策略,作为确定出的最终分布策略。或者,也可以遍历每个候选分布策略中,单个切分结果的训练效率达到最高或达到阈值的数量,将数量最多的候选分布策略确定为最终分布策略。将每个切分结果效率最多的分布策略作为确定出的最终分布策略。
根据上述过程,可以实现最优分布策略的确定。
在一种实施方式中,步骤S903可以具体包括以下过程:
利用预定规则,对每个所述候选分布策略进行排序;
根据排序的结果,在所述候选分布策略中确定出目标分布策略。
预先训练的分布策略确定模型同样可以是成本模型(cost-model)。成本模型遵循的原则是分布策略满足利益最大化。示例性地,利益最大化可以对应不同的预定规则,例如可以包括训练模型的整体训练效率最高,单个切分结果的训练效率达到最高或达到阈值的数量最多等。具体可以根据训练样本的不同,实现对应的效果。选定预定规则后,可以根据预定规则对每个候选分布策略进行排序,最终根据排序的结果,在候选分布策略中确定从目标分布策略。在当前实施方式中,对于成本模型的训练过程不再进行赘述。
如图10所示,在一种实施方式中,步骤S104可以包括以下过程:
S1001:定期检测计算资源的可用性;
S1002:在检测结果存在计算资源不可用的情况下,执行补救措施,不可用的情况包括计算资源故障或计算资源数量的缩容。
计算资源的可用性可以定期主动检测,也可以通过信息获取的方式被动检测。
计算资源的可用性的检测结果主要包括两类。其一是已有计算资源不可用,即对应已经分配给当前待训练模型的计算资源不可用。另一类可以是除了已经分配给当前待训练模型的计算资源外,还有其他资源处于闲置状态,即对应存在额外的计算资源可用的情况。
针对计算资源不可用的情况,可以细化为两类。其一是计算资源出现故障导致的不可用。另一类可以是由于发起模型训练请求的客户端数量增加而导致计算资源供不应求所对应的不可用,最终会引发计算资源缩容的情况。
在检测结果出现计算资源不可用的情况,由于已有的计算资源出现数量的减少,因此需要启动补救措施以使模型训练过程可以继续进行。
通过上述过程,可以设置对于意外情况的应对措施,最大程度满足模型训练的正常进行。
如图11所示,在一种实施方式中,在不可用的情况为计算资源故障的情况下,执行补救措施,可以包括以下过程:
S1101:获取用户端发起的模型训练请求中包含的训练模式;
S1102:在训练模式为容错训练模式的情况下,等待计算资源的故障恢复;
S1103:在预定时间内计算资源的故障未恢复的情况下,确定执行结束。
通过对模型训练请求进行解析,可以得到模型训练请求中包含的训练模式。前已述及,训练模式可以包括容错训练模式和弹性训练模式。
对于容错训练模式,在计算资源出现故障的情况下,补救措施可以包括当训练过程中遇到一个或者多个计算资源故障后,则整个训练任务不会退出,也不会释放当前的计算资源,等待故障节点(计算资源)在预定时间内恢复后,则继续训练,否则超时则任务结束退出。
其中,继续训练可以包括从故障状态继续训练,也可以包括从初始状态继续训练。
通过上述过程,在出现故障的情况下无需重新经历任务提交、资源分配、模型加载、训练启动这一过程,可以提高整个模型训练的效率。
如图12所示,在一种实施方式中,在不可用的情况为计算资源故障的情况下,执行补救措施,还包括:
S1201:在训练模式为弹性训练模式的情况下,确定候选计算资源;
S1202:在候选计算资源中进行训练的重试。
弹性训练模式可以对应计算资源数量支持动态调整的训练模式。即,在模型训练请求中已声明了请求计算资源的数量在一个范围内,进而可以根据数量范围,对计算资源的数量进行调整。
在此情况下,当计算资源出现故障,可以选择其他可用的计算资源作为候选计算资源。通过模型训练数据的迁移,在候选计算资源中进行训练重试。
结合图13所示,图13中Logical Distributed Graph可以对应切分结果(rank0至rank3对应切片),Cluster Object可以对应计算资源,Physical Distributed Graph可以对应分布策略。其中,计算资源包括D0至D4。图13左侧所示示例为在利用计算资源D0至D3进行模型训练过程中,计算资源D2出现故障。基于此,图13右侧所示示例采用计算资源D4作为候选计算资源,将原来在计算资源D2中进行训练的数据迁移至计算资源D4,在计算资源D4中进行重试。
在一种实施方式中,对于在候选计算资源中进行重试,可以包括以下几种情况:
其一:
获取计算资源故障发生时的训练状态;
基于训练状态,在候选计算资源中进行训练重试。
其二:
获取训练的初始状态;
基于初始状态,在候选计算资源中进行训练重试。
第一种情况,可以获取发生故障的计算资源在故障发生时的训练状态,从故障发生时进行训练的重试。从故障发生时进行训练的重试,优势在于可以节省整个训练过程的时间。
第二种情况下,可以在候选计算资源中重新开始训练,即从初始状态开始重新进行训练。基于初始状态,在候选计算资源中进行重试的优势在于,可以保证整个训练过程的正确率以及训练的完整性。
如图14所示,在一种实施方式中,在不可用的情况为计算资源数量的缩容的情况下,执行补救措施,包括:
S1401:确定缩容后计算资源的第一数量;
S1402:根据第一数量,对待训练的模型进行重新切分,得到重新切分的第一结果;
S1403:利用重新确定的缩容后剩余的计算资源的属性,确定每个重新切分的第一结果在缩容后的计算资源中的第一分布策略;
S1404:根据第一分布策略,利用缩容后的计算资源对待训练的模型进行分布式训练。
在发起模型训练请求的客户端数量增加,或者模型训练请求中申请的计算资源数量较大的情况,会导致计算资源供不应求。计算资源供不应求时,会引发的计算资源缩容的情况。
结合图15所示,图15中左侧所示Logical Distributed Graph可以对应切分结果(rank0至rank3对应切片),Cluster Object可以对应计算资源,Physical DistributedGraph可以对应分布策略。其中,在原始的训练过程中,计算资源包括D0至D3。图15中右侧所示,在引发计算资源缩容的情况下,计算资源D2和D3的状态变为不可用。由此,缩容后计算资源的第一数量变为2。由于分配给待训练模型进行训练的计算资源发生变化(减少),因此需要重新对分配给所述待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,并获取计算资源的拓扑信息。
根据第一数量,对待训练的模型进行重新切分。切分方式与前述过程相同,在此不再赘述。图15中右侧所示重新切分后,切分结果为2个切片,对应rank0和rank1。利用还剩下的计算资源(D0和D1)的属性,确定2个切片在缩容后的计算资源中的第一分布策略。即图15中右侧所示,根据第一分布策略,新的切片rank0被分配给计算资源D0,新的切片rank1被分配给计算资源D1。
在后续训练过程中,由剩下的计算资源(D0和D1)继续执行训练过程。整个过程仍然无需人工干预,以自动化的方式执行。
如图16所示,在一种实施方式中,在检测结果存在额外的计算资源可用的情况下,包括:
S1601:确定可用的额外的计算资源的第二数量;
S1602:根据第二数量,对待训练的模型进行重新切分,得到重新切分的第二结果;
S1603:利用重新确定的额外的计算资源的属性,确定每个重新切分的第二结果在增容后的计算资源中的第二分布策略;
S1604:根据第二分布策略,利用增容后的计算资源对待训练的模型进行分布式训练。
在发起模型训练请求的客户端数量减少,或者模型训练请求中申请的计算资源数量不大的情况,会导致计算资源供过于求。计算资源供过于求时,会引发的计算资源扩容的情况,即可以额外分配给模型训练任务更多的计算资源。由于分配给待训练模型进行训练的计算资源发生变化(增加),因此需要重新对分配给所述待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,并获取计算资源的拓扑信息。
结合图17所示,图17可以对应计算资源增容后的调整示意图。图17中左侧所示Logical Distributed Graph可以对应切分结果(rank0至rank3对应切片),ClusterObject可以对应计算资源,Physical Distributed Graph可以对应分布策略。其中,在原始的训练过程中,计算资源包括D0至D3。图17中右侧所示,在引发计算资源扩容的情况下,会有额外的计算资源D4和D5的状态变为可用。由此,扩容后计算资源的第二数量变为6。
根据第二数量,对待训练的模型进行重新切分。切分方式与前述过程相同,在此不再赘述。图17中右侧所示重新切分后,切分结果为6个切片,对应rank0至rank5。利用增容的计算资源(D0至D5)的属性,确定5个切片在增容后的计算资源中的第二分布策略。即图17中右侧所示,根据第二分布策略,新的切片rank0被分配给计算资源D0,新的切片rank1被分配给增加的计算资源D4,新的切片rank2被分配给计算资源D1,新的切片rank3被分配给计算资源D5,新的切片rank4被分配给增加的计算资源D5,新的切片rank5被分配给计算资源D3。
通过上述过程,在计算资源增容的情况下,可以对待训练的模型进行重新切分,从而达到对计算资源最大限度的利用。
在一种实施方式中,在计算资源的数量出现变化的情况下,还包括以下步骤:
根据变化后的数量,调整待训练模型的学习率和单次训练所选取的样本数量。
在执行弹性扩缩容时,会有一定的机制保证对学习率和单次训练所选取的样本数量(batch_size)进行调整。其中,学习率可以是用于更新待训练模型参数的一个超参数。
例如,可以通过接口触发对学习率和batch_size的调整,或者在检测到计算资源的数量出现变化的情况下,自动调整这两项,从而对训练收敛性和训练效果产生的影响最小化或者不产生影响。
在一种实施方式中,分布式训练包括:去中心化的异步流水训练。
去中心化的异步流水执行方式可以实现多个计算资源的并发执行,并且将具有上下游逻辑关系的数据进行自动关联,实现数据的并行化、动态化。由此,可以最大程度提高通信和计算的并发度,提升训练效率。同时通过解耦各个子任务,使得一个任务可以运行在多类设备上。
在计算资源发生变化的情况下,会引发切分策略的变化,需要重新启动进程,执行去中心化的异步流水训练。每个进程包含一个接受服务的线程、消息队列、以及多个处理消息的线程。
一个消息包含发送进程编号、接收进程编号,任务信息。
接收服务的线程,会不断接受消息,会放入消息队列。
处理服务的线程,会不断从消息队列读取一个消息,会按照消息的任务信息来执行。
执行完后会按照消息,将结果发给下一个设备。
相邻设备间是在同时并发的处理不同的子任务。
在容错、扩容或缩容的情况下,会触发重新构建统一计算视图、统一资源视图,重新切分,映射,并重新构建执行任务,启动进程,以执行训练过程。
在一种实施方式中,待训练的模型是根据用户端发起的模型训练请求得到的。
整个模型训练平台可以是端到端训练平台。对于用户端而言,仅需要确定待训练的模型的相关信息,以及所需的计算资源的数量和预期的训练效果即可。整个训练过程可以由端到端训练平台自动执行,对于用户端而言,仅需在模型训练请求中确定基本信息而无需进行其他操作。由此可以简化对于用户的难度要求,实现模型的全自动化。
如图18所示,本公开涉及一种基于端到端自适应的分布式训练方法,该方法可以包括以下过程:
1、用户提交训练任务:用户在训练平台上发起分布式深度学习(待训练模型)训练任务,训练任务类型包括弹性训练任务和非弹性训练任务,弹性训练任务又分为支持容错模式和弹性扩缩容模式,当指定计算节点数是固定的值时(例如node_nums=2或者node_nums=2:2)表示是容错模式,当指定计算节点数是一个范围时(例如node_nums=2:4)表示是弹性扩缩模式。
2、智能调度:训练平台的AI平台调度系统(例如基于k8s的paddle-operator)负责调度分布式深度学习训练任务,可将整个训练任务作为一个整体进行生命周期管理,提供对训练任务进行扩容和缩容操作的接口。从平台角度,可根据整体资源使用情况自主触发训练任务进行计算资源的扩容和缩容操作,也可或者基于碎片整理的考虑,对部分计算资源进行动态迁移操作。这些操作可在不中断当前训练任务的情况下进行。
3、弹性训练控制器:训练控制器负责对训练任务进行分发启动,分为弹性任务和非弹性任务两种。如果是弹性训练任务,则任务启动后,控制器会将自身及其监控的子进程注册到“发现服务”(ETCD)中,同时弹性训练控制器也通过“发现服务”感知其他控制器及其子进程的状态(节点宕机或者不可用、或者卡故障等情况)。当弹性训练控制器感知到其他节点变化(节点或者卡故障退出或者扩缩容),会保留已有节点,恢复训练进程(包含子进程)。
弹性训练任务包括两种模式:容错模式和弹性模式。
容错模式的任务,当训练过程中遇到一个或者多个计算资源故障(节点不可用或者GPU卡故障)后,则整个训练任务不会退出,也不会释放当前的计算资源,等待故障节点在超时时间内恢复后,则继续训练(从故障时刻继续训练),否则超时则任务失败退出。
弹性扩缩模式的任务,当训练过程中遇到一个或者多个训练计算资源故障(节点不可用或者GPU卡故障)或者遇到手动/自动的扩缩容操作,则整个训练任务不会退出,也不会释放当前的计算资源,而是以扩容或者缩容后的节点数,继续训练(从暂停时刻继续训练)。
同时在执行弹性扩缩容时,会有一定的机制保证对学习率和batch_size进行调整(会通过接口触发对学习率和batch_size的调整,或者自动调整这两项),从而对训练收敛性和效果产生的影响最小化或者不产生影响。
4、分布式计算视图分析:模型的训练过程可以描述为计算数据流图。只要将每个算子和张量并行化,就可以将整个模型中的网络层并行化,从顺序执行的计算图转换成分布式计算图。可以采用分布式张量、分布式算子和重组变换等概念以及更细粒度分布式属性来支持任意的切分策略,并最终得到待训练模型的切分结果。此外,还支持设备无关的切分策略和设备相关的放置策略解耦。其中分布式属性包含逻辑进程拓扑信息(process_mesh),张量每维切分映射信息(dims_mapping)、张量每维切片大小信息(shard_sizes)和切片物理设备放置信息(device_placement),每个分布式张量和分布式算子都可以携带各自分布式属性,并且支持一个张量的分布式属性与使用这个张量的算子中的对应分布式属性不同,有利于存算分离。
5、集群硬件拓扑探测:基于训练任务对应的集群硬件资源的属性信息生成集群资源视图,即对应计算资源的属性。即,可以对集群硬件资源(含机器、交换机等)采用抽象表示,不仅包括设备间的拓扑信息,还包括了设备内的处理器、显存、带宽等处理能力相关信息,实现了集群之间、集群内部硬件之间、硬件内部的具体连接方式及差异的屏蔽,可以支持各种异构硬件和集群环境。
6、分布式计算图和硬件通信拓扑映射:基于第4步的分布式计算视图和第5步的集群资源视图,确定分布式训练任务的放置策略,并产生放置策略映射文件。放置策略可以对应切分结果在计算资源中的分布策略。
拓扑映射完成之后就会正式开始调度任务训练任务的执行。
7、构建物理执行计划:根据第6步的放置策略映射文件,产生物理执行计划,物理执行计划包括计算进程(分布式计算图)与硬件放置策略。此外,物理执行计划还与弹性资源管理机制结合,能在计算资源空闲或紧张时实现弹性扩缩容,动态调整计算节点数量,并按需重切分。
此设计解耦了逻辑切分和物理映射,来更好的兼容异构硬件。另外,还解耦了分布式算子和分布式张量,来更好的扩展至不同的并行策略。当输入输出张量的定义和算子定义不匹配时,框架会自动插入重组转换算子,来保证计算的正确性。当输入输出张量的设备和算子的设备不一致时,框架会自动插入通信算子,来保证跨设备切分的正确性。用户使用时,不仅可以采用全自动模式让框架自动完成切分,还可以通过API接口来定义自己想要的切分策略。
8、异步流水线执行器:基于第7步的物理执行计划对待训练深度学习模型执行分布式训练。通过去中心化的异步流水执行器,可以最大程度提高通信和计算的并发度,提升训练效率。同时通过解耦各个子任务,使得一个任务可以运行在多类设备上。
9、拓扑感知通信:在执行阶段自动根据物理执行计划,自动构建出不同的计算图并行通信模式,通过不同的通信子域进行不同的并行模式,多种并行模式可以同时存在,例如:通信子域一采用数据并行、通信子域二采用模型并行。感知通信可以利用图18中的检测节点(checkpoint)进行。
总得来说,上述对待训练模型的训练过程是端到端自适应过程。由计算资源表示的节点变动会触发整个系统,含两个视图构建(分布式计算视图对应模型切分、集群资源视图对应计算资源的属性的确定)、具体要执行的任务构建(切分结果在计算资源中的分布策略),进程训练启动,训练任务分发,计算节点执行训练任务等。
如图19所示,本公开涉及一种基于端到端自适应的分布式训练装置,该装置可以包括:
切分模块1901,用于对待训练的模型进行切分,得到切分结果;
计算资源的属性确定模块1902,用于对分配给待训练的模型进行训练的计算资源进行解析,得到计算资源的属性,分配给待训练的模型进行训练的计算资源是根据待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,计算资源的属性用于表征计算资源的拓扑关系、任务处理能力中的至少一种;
分布策略确定模块1903,用于利用计算资源的属性,确定每个切分结果在计算资源中的分布策略;
分布式训练模块1904,用于根据分布策略,利用计算资源对待训练的模型进行分布式训练。
在一种实施方式中,切分模块1901,可以具体包括:
算子和张量的确定子模块,用于确定待训练的模型中的算子和张量;
切分执行子模块,用于利用切分策略,对待训练的模型中的算子和张量进行切分,得到切分结果。
在一种实施方式中,切分执行子模块,可以具体包括:
切分策略执行单元,用于利用切分策略,对待训练的模型中的算子和张量进行切分,得到N个切片,N为正整数;
分布式属性信息加载单元,用于对于每个切片,加载切片的分布式属性信息,分布式属性信息包括该切片在待训练的模型中的进程拓扑信息、该切片的切分映射信息、该切片的切片大小信息中的至少一类;
将加载分布式属性信息的切片作为切分结果。
在一种实施方式中,分布式属性信息加载单元,可以包括:
候选类别接收子单元,用于利用预定方式接收分布式属性信息的多个候选类别;
筛选子单元,用于将在多个候选类别确定出的目标类别,作为分布式属性信息的类别。
在一种实施方式中,还包括放置信息确定单元,具体可以用于:
利用每个切片的分布式属性,确定每个切片的放置信息,放置信息用于表征切片与计算资源的物理映射关系。
在一种实施方式中,当切片位于待训练的模型的相邻网络层且切片的放置信息不同的情况下,包括通信辅助算子确定单元,具体可以用于:
利用放置信息,确定通信辅助算子,通信辅助算子用于表征各切片之间的逻辑运算关系。
在一种实施方式中,当切片位于待训练的模型的同一网络层的情况下,包括重组转换算子确定单元,具体可以用于:
确定重组转换算子,重组转换算子用于表征各切片之间的网络层一致性关系。
在一种实施方式中,切分执行子模块可以包括:
切分策略确定单元,用于对用户端发起的模型训练请求进行解析确定。
在一种实施方式中,切分执行子模块可以包括:
切分策略确定单元,用于利用预先训练的切分策略模型确定。
在一种实施方式中,计算资源的属性确定模块1902,具体可以用于:
确定计算资源的硬件拓扑关系,将硬件拓扑关系作为计算资源的属性。
在一种实施方式中,计算资源的属性确定模块1902可以包括:
最小组件确定子模块,用于确定计算资源中的最小组件,最小组件包括处理器或存储器;
机器设备确定子模块,用于确定由至少一个最小组件组成的机器设备,每个机器设备中的最小组件不重复;
簇确定子模块,用于确定由至少一个机器设备组成的簇,每个簇中的机器设备不重复;
将最小组件、机器设备和簇作为计算资源的硬件拓扑关系。
在一种实施方式中,计算资源的属性确定模块1902,具体可以用于:
确定每个最小组件的密切关系列表;密切关系列表包括源最小组件和目的最小组件之间的连接关系、带宽信息和延迟信息中的至少一种;
将密切关系列表作为计算资源的硬件拓扑关系。
在一种实施方式中,分配给待训练的模型进行训练的计算资源可以是根据用户端发起的模型训练请求的内容,以及发起模型训练请求的用户端的数量中的至少一种确定的。
在一种实施方式中,计算资源的属性确定模块1902,可以包括:
通信路径获取子模块,用于获取计算资源的通信路径;
通信拓扑关系构建子模块,用于利用计算资源的通信路径,构建各计算资源之间的通信拓扑关系;
将通信拓扑关系作为计算资源的属性。
在一种实施方式中,还包括最短通信路径构建子模块,具体可以用于:
根据通信拓扑关系,确定源计算资源与目标计算资源之间的最短通信路径。
在一种实施方式中,分布策略确定模块1903,可以包括:
候选分布策略获取子模块,用于获取各切分结果在计算资源中的候选分布策略;
效率统计子模块,用于分别统计每个候选分布策略的效率;
目标分布策略确定子模块,用于根据每个候选分布策略的效率,在候选分布策略中确定出目标分布策略。
在一种实施方式中,目标分布策略确定子模块,包括:
排序单元,用于利用预定规则,对每个候选分布策略进行排序;
结果确定单元,用于根据排序的结果,在候选分布策略中确定出目标分布策略。
在一种实施方式中,分布式训练模块1904,可以包括:
可用性检测子模块,用于定期检测计算资源的可用性;
补救措施执行子模块,用于在检测结果存在计算资源不可用的情况下,执行补救措施,不可用的情况包括计算资源故障或计算资源数量的缩容。
在一种实施方式中,在不可用的情况为计算资源故障的情况下,补救措施执行子模块,可以包括:
训练模式获取单元,用于获取用户端发起的模型训练请求中包含的训练模式;
等待单元,用于在训练模式为容错训练模式的情况下,等待计算资源的故障恢复;
结果确定单元,用于在预定时间内计算资源的故障未恢复的情况下,确定执行结束。
在一种实施方式中,在不可用的情况为计算资源故障的情况下,补救措施执行子模块,还可以包括:
候选计算资源确定单元,用于在训练模式为弹性训练模式的情况下,确定候选计算资源;
重试单元,用于在候选计算资源中进行训练的重试。
在一种实施方式中,重试单元可以包括:
训练状态获取子单元,用于获取计算资源故障发生时的训练状态;
重试执行子单元,用于基于训练状态,在候选计算资源中进行训练重试。
在一种实施方式中,重试单元可以包括:
初始状态获取子单元,用于获取训练的初始状态;
重试执行子单元,用于基于初始状态,在候选计算资源中进行训练重试。
在一种实施方式中,在不可用的情况为计算资源数量的缩容的情况下,补救措施执行子模块,可以包括:
第一数量确定单元,用于确定缩容后计算资源的第一数量;
第一重新切分单元,用于根据第一数量,对待训练的模型进行重新切分,得到重新切分的第一结果;
第一分布策略确定单元,用于利用重新确定的缩容后剩余的计算资源的属性,确定每个重新切分的第一结果在缩容后的计算资源中的第一分布策略;
分布式训练执行单元,用于根据第一分布策略,利用缩容后的计算资源对待训练的模型进行分布式训练。
在一种实施方式中,在检测结果存在额外的计算资源可用的情况下,可以包括:
第二数量确定单元,用于确定可用的额外的计算资源的第二数量;
第二重新切分单元,用于根据第二数量,对待训练的模型进行重新切分,得到重新切分的第二结果;
第二分布策略确定单元,用于利用重新确定的额外的计算资源的属性,确定每个重新切分的第二结果在增容后的计算资源中的第二分布策略;
分布式训练执行单元,用于根据第二分布策略,利用增容后的计算资源对待训练的模型进行分布式训练。
在一种实施方式中,在计算资源的数量出现变化的情况下,还包括调整子单元,具体可以用于:
根据变化后的数量,调整待训练模型的学习率和单次训练所选取的样本数量。
在一种实施方式中,分布式训练包括:去中心化的异步流水训练。
在一种实施方式中,待训练的模型是根据用户端发起的模型训练请求得到的。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图20示出了可以用来实施本公开的实施例的示例电子设备2000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图20所示,设备2000包括计算单元2010,其可以根据存储在只读存储器(ROM)2020中的计算机程序或者从存储单元2080加载到随机访问存储器(RAM)2030中的计算机程序,来执行各种适当的动作和处理。在RAM 2030中,还可存储设备2000操作所需的各种程序和数据。计算单元2010、ROM 2020以及RAM 2030通过总线2040彼此相连。输入/输出(I/O)接口2050也连接至总线2040。
设备2000中的多个部件连接至I/O接口2050,包括:输入单元2060,例如键盘、鼠标等;输出单元2070,例如各种类型的显示器、扬声器等;存储单元2080,例如磁盘、光盘等;以及通信单元2090,例如网卡、调制解调器、无线通信收发机等。通信单元2090允许设备2000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2010可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2010的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2010执行上文所描述的各个方法和处理,例如基于端到端自适应的分布式训练方法。例如,在一些实施例中,基于端到端自适应的分布式训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2080。在一些实施例中,计算机程序的部分或者全部可以经由ROM 2020和/或通信单元2090而被载入和/或安装到设备2000上。当计算机程序加载到RAM 2030并由计算单元2010执行时,可以执行上文描述的基于端到端自适应的分布式训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元2010可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于端到端自适应的分布式训练方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (56)
1.一种基于端到端自适应的分布式训练方法,包括:
对待训练的模型进行切分,得到切分结果;
对分配给所述待训练的模型进行训练的计算资源进行解析,得到所述计算资源的属性,所述分配给所述待训练的模型进行训练的计算资源是根据所述待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,所述计算资源的属性用于表征所述计算资源的拓扑关系、任务处理能力中的至少一种;
利用所述计算资源的属性,确定每个所述切分结果在所述计算资源中的分布策略;
根据所述分布策略以及定期检测到的所述计算资源的可用情况,利用可用的计算资源对所述待训练的模型进行分布式训练。
2.根据权利要求1所述的方法,其中,所述对待训练的模型进行切分,得到切分结果,包括:
确定所述待训练的模型的算子和张量;
利用所述切分策略,对所述待训练的模型中的算子和张量进行切分,得到所述切分结果。
3.根据权利要求2所述的方法,其中,所述利用所述切分策略,对所述待训练的模型中的算子和张量进行切分,得到所述切分结果,包括:
利用所述切分策略,对所述待训练的模型中的算子和张量进行切分,得到N个切片,所述N为正整数;
对于每个所述切片,加载所述切片的分布式属性信息,所述分布式属性信息包括该切片在所述待训练的模型中的进程拓扑信息、该切片的切分映射信息、该切片的切片大小信息中的至少一类;
将加载所述分布式属性信息的切片作为所述切分结果。
4.根据权利要求3所述的方法,其中,所述分布式属性信息的类别的确定方式,包括:
利用预定方式接收所述分布式属性信息的多个候选类别;
将在所述多个候选类别确定出的目标类别,作为所述分布式属性信息的类别。
5.根据权利要求3所述的方法,还包括:
利用每个所述切片的分布式属性,确定每个所述切片的放置信息,所述放置信息用于表征所述切片与所述计算资源的物理映射关系。
6.根据权利要求5所述的方法,当所述切片位于所述待训练的模型的相邻网络层且所述切片的放置信息不同,包括:
利用所述放置信息,确定通信辅助算子,所述通信辅助算子用于表征各所述切片之间的逻辑运算关系。
7.根据权利要求5所述的方法,当所述切片位于所述待训练的模型的同一网络层,包括:
确定重组转换算子,所述重组转换算子用于表征各所述切片之间的网络层一致性关系。
8.根据权利要求2至7任一所述的方法,其中,所述切分策略的确定方式包括:
对所述用户端发起的模型训练请求进行解析确定。
9.根据权利要求2至7任一所述的方法,其中,所述切分策略的确定方式包括:
利用预先训练的切分策略模型确定。
10.根据权利要求1所述的方法,其中,所述对分配给所述待训练的模型进行训练的计算资源进行解析,得到所述计算资源的属性,包括:
确定所述计算资源的硬件拓扑关系,将所述硬件拓扑关系作为所述计算资源的属性。
11.根据权利要求10所述的方法,其中,所述确定所述计算资源的硬件拓扑关系,包括:
确定所述计算资源中的最小组件,所述最小组件包括处理器或存储器;
确定由至少一个所述最小组件组成的机器设备,每个所述机器设备中的最小组件不重复;
确定由至少一个所述机器设备组成的簇,每个所述簇中的机器设备不重复;
将所述最小组件、所述机器设备和所述簇作为所述计算资源的硬件拓扑关系。
12.根据权利要求11所述的方法,所述确定所述计算资源的硬件拓扑关系,还包括:
确定每个所述最小组件的密切关系列表;所述密切关系列表包括源最小组件和目的最小组件之间的连接关系、带宽信息和延迟信息中的至少一种;
将所述密切关系列表作为所述计算资源的硬件拓扑关系。
13.根据权利要求1或10所述的方法,其中,所述分配给所述待训练的模型进行训练的计算资源是根据所述用户端发起的模型训练请求的内容,以及发起模型训练请求的用户端的数量中的至少一种确定的。
14.根据权利要求1或10所述的方法,所述对分配给所述待训练的模型进行训练的计算资源进行解析,得到所述计算资源的属性,包括:
获取所述计算资源的通信路径;
利用所述计算资源的通信路径,构建各所述计算资源之间的通信拓扑关系;
将所述通信拓扑关系作为所述计算资源的属性。
15.根据权利要求14所述的方法,还包括:
根据所述通信拓扑关系,确定源计算资源与目标计算资源之间的最短通信路径。
16.根据权利要求1所述的方法,其中,所述利用所述计算资源的属性,确定每个所述切分结果在所述计算资源中的分布策略,包括:
获取各所述切分结果在所述计算资源中的候选分布策略;
分别统计每个所述候选分布策略的效率;
根据每个所述候选分布策略的效率,在所述候选分布策略中确定出目标分布策略。
17.根据权利要求1或16所述的方法,其中,所述根据每个所述候选分布策略的效率,在所述候选分布策略中确定出目标分布策略,包括:
利用预定规则,对每个所述候选分布策略进行排序;
根据排序的结果,在所述候选分布策略中确定出目标分布策略。
18.根据权利要求1所述的方法,其中,所述根据所述分布策略,利用所述计算资源对所述待训练的模型进行分布式训练,包括:
定期检测所述计算资源的可用性;
在检测结果存在所述计算资源不可用的情况下,执行补救措施,所述不可用的情况包括计算资源故障或计算资源数量的缩容。
19.根据权利要求18所述的方法,其中,在所述不可用的情况为计算资源故障的情况下,所述执行补救措施,包括:
获取所述用户端发起的模型训练请求中包含的训练模式;
在所述训练模式为容错训练模式的情况下,等待计算资源的故障恢复;
在预定时间内所述计算资源的故障未恢复的情况下,确定执行结束。
20.根据权利要求19所述的方法,其中,在所述不可用的情况为计算资源故障的情况下,所述执行补救措施,还包括:
在所述训练模式为弹性训练模式的情况下,确定候选计算资源;
在所述候选计算资源中进行训练的重试。
21.根据权利要求20所述的方法,其中,所述在所述候选计算资源中进行训练的重试,包括:
获取所述计算资源故障发生时的训练状态;
基于所述训练状态,在所述候选计算资源中进行训练重试。
22.根据权利要求20所述的方法,其中,所述在所述候选计算资源中进行重试,包括:
获取训练的初始状态;
基于所述初始状态,在所述候选计算资源中进行训练重试。
23.根据权利要求18所述的方法,其中,在所述不可用的情况为计算资源数量的缩容的情况下,所述执行补救措施,包括:
确定缩容后所述计算资源的第一数量;
根据所述第一数量,对所述待训练的模型进行重新切分,得到重新切分的第一结果;
利用重新确定的缩容后剩余的所述计算资源的属性,确定每个所述重新切分的第一结果在缩容后的所述计算资源中的第一分布策略;
根据所述第一分布策略,利用缩容后的所述计算资源对所述待训练的模型进行分布式训练。
24.根据权利要求18所述的方法,在检测结果存在额外的计算资源可用的情况下,包括:
确定可用的所述额外的计算资源的第二数量;
根据所述第二数量,对所述待训练的模型进行重新切分,得到重新切分的第二结果;
利用重新确定的额外的所述计算资源的属性,确定每个所述重新切分的第二结果在增容后的所述计算资源中的第二分布策略;
根据所述第二分布策略,利用增容后的所述计算资源对所述待训练的模型进行分布式训练。
25.根据权利要求23或24所述的方法,在所述计算资源的数量出现变化的情况下,还包括:
根据变化后的数量,调整所述待训练模型的学习率和单次训练所选取的样本数量。
26.根据权利要求1、18、23或24任一所述的方法,所述分布式训练包括:去中心化的异步流水训练。
27.根据权利要求1、2、3、6、7、10、18、23、24任一所述的方法,所述待训练的模型是根据用户端发起的模型训练请求得到的。
28.一种基于端到端自适应的分布式训练装置,包括:
切分模块,用于对待训练的模型进行切分,得到切分结果;
计算资源的属性确定模块,用于对分配给所述待训练的模型进行训练的计算资源进行解析,得到所述计算资源的属性,所述分配给所述待训练的模型进行训练的计算资源是根据所述待训练模型的计算资源需求、其他正在训练的模型所占用的计算资源以及空闲的计算资源确定的,所述计算资源的属性用于表征所述计算资源的拓扑关系、任务处理能力中的至少一种;
分布策略确定模块,用于利用所述计算资源的属性,确定每个所述切分结果在所述计算资源中的分布策略;
分布式训练模块,用于根据所述分布策略以及定期检测到的所述计算资源的可用情况,利用可用的计算资源对所述待训练的模型进行分布式训练。
29.根据权利要求28所述的装置,其中,所述切分模块,包括:
算子和张量的确定子模块,用于确定所述待训练的模型中的算子和张量;
切分执行子模块,用于利用所述切分策略,对所述待训练的模型中的算子和张量进行切分,得到所述切分结果。
30.根据权利要求29所述的装置,其中,所述切分执行子模块,包括:
切分策略执行单元,用于利用所述切分策略,对所述待训练的模型中的算子和张量进行切分,得到N个切片,所述N为正整数;
分布式属性信息加载单元,用于对于每个所述切片,加载所述切片的分布式属性信息,所述分布式属性信息包括该切片在所述待训练的模型中的进程拓扑信息、该切片的切分映射信息、该切片的切片大小信息中的至少一类;
将加载所述分布式属性信息的切片作为所述切分结果。
31.根据权利要求30所述的装置,其中,所述分布式属性信息加载单元,包括:
候选类别接收子单元,用于利用预定方式接收所述分布式属性信息的多个候选类别;
筛选子单元,用于将在所述多个候选类别确定出的目标类别,作为所述分布式属性信息的类别。
32.根据权利要求30所述的装置,还包括放置信息确定单元,具体用于:
利用每个所述切片的分布式属性,确定每个所述切片的放置信息,所述放置信息用于表征所述切片与所述计算资源的物理映射关系。
33.根据权利要求32所述的装置,当所述切片位于所述待训练的模型的相邻网络层且所述切片的放置信息不同的情况下,包括通信辅助算子确定单元,具体用于:
利用所述放置信息,确定通信辅助算子,所述通信辅助算子用于表征各所述切片之间的逻辑运算关系。
34.根据权利要求32所述的装置,当所述切片位于所述待训练的模型的同一网络层的情况下,包括重组转换算子确定单元,具体用于:
确定重组转换算子,所述重组转换算子用于表征各所述切片之间的网络层一致性关系。
35.根据权利要求29至34任一所述的装置,所述切分执行子模块,包括:
切分策略确定单元,用于对所述用户端发起的模型训练请求进行解析确定。
36.根据权利要求29至34任一所述的装置,所述切分执行子模块,包括:
切分策略确定单元,用于利用预先训练的切分策略模型确定。
37.根据权利要求28所述的装置,其中,所述计算资源的属性确定模块,具体用于:
确定所述计算资源的硬件拓扑关系,将所述硬件拓扑关系作为所述计算资源的属性。
38.根据权利要求37所述的装置,其中,所述计算资源的属性确定模块,包括:
最小组件确定子模块,用于确定所述计算资源中的最小组件,所述最小组件包括处理器或存储器;
机器设备确定子模块,用于确定由至少一个所述最小组件组成的机器设备,每个所述机器设备中的最小组件不重复;
簇确定子模块,用于确定由至少一个所述机器设备组成的簇,每个所述簇中的机器设备不重复;
将所述最小组件、所述机器设备和所述簇作为所述计算资源的硬件拓扑关系。
39.根据权利要求38所述的装置,其中,所述计算资源的属性确定模块,具体用于:
确定每个所述最小组件的密切关系列表;所述密切关系列表包括源最小组件和目的最小组件之间的连接关系、带宽信息和延迟信息中的至少一种;
将所述密切关系列表作为所述计算资源的硬件拓扑关系。
40.根据权利要求28或37所述的装置,其中,所述分配给所述待训练的模型进行训练的计算资源是根据所述用户端发起的模型训练请求的内容,以及发起模型训练请求的用户端的数量中的至少一种确定的。
41.根据权利要求28或37所述的装置,其中,所述计算资源的属性确定模块,包括:
通信路径获取子模块,用于获取所述计算资源的通信路径;
通信拓扑关系构建子模块,用于利用所述计算资源的通信路径,构建各所述计算资源之间的通信拓扑关系;
将所述通信拓扑关系作为所述计算资源的属性。
42.根据权利要求41所述的装置,还包括最短通信路径构建子模块,具体用于:
根据所述通信拓扑关系,确定源计算资源与目标计算资源之间的最短通信路径。
43.根据权利要求28所述的装置,其中,所述分布策略确定模块,包括:
候选分布策略获取子模块,用于获取各所述切分结果在所述计算资源中的候选分布策略;
效率统计子模块,用于分别统计每个所述候选分布策略的效率;
目标分布策略确定子模块,用于根据每个所述候选分布策略的效率,在所述候选分布策略中确定出目标分布策略。
44.根据权利要求28或43所述的装置,其中,所述目标分布策略确定子模块,包括:
排序单元,用于利用预定规则,对每个所述候选分布策略进行排序;
结果确定单元,用于根据排序的结果,在所述候选分布策略中确定出目标分布策略。
45.根据权利要求28所述的装置,其中,所述分布式训练模块,包括:
可用性检测子模块,用于定期检测所述计算资源的可用性;
补救措施执行子模块,用于在检测结果存在所述计算资源不可用的情况下,执行补救措施,所述不可用的情况包括计算资源故障或计算资源数量的缩容。
46.根据权利要求45所述的装置,其中,在所述不可用的情况为计算资源故障的情况下,所述补救措施执行子模块,包括:
训练模式获取单元,用于获取所述用户端发起的模型训练请求中包含的训练模式;
等待单元,用于在所述训练模式为容错训练模式的情况下,等待计算资源的故障恢复;
结果确定单元,用于在预定时间内所述计算资源的故障未恢复的情况下,确定执行结束。
47.根据权利要求46所述的装置,其中,在所述不可用的情况为计算资源故障的情况下,所述补救措施执行子模块,还包括:
候选计算资源确定单元,用于在所述训练模式为弹性训练模式的情况下,确定候选计算资源;
重试单元,用于在所述候选计算资源中进行训练的重试。
48.根据权利要求47所述的装置,其中,所述重试单元,包括:
训练状态获取子单元,用于获取所述计算资源故障发生时的训练状态;
重试执行子单元,用于基于所述训练状态,在所述候选计算资源中进行训练重试。
49.根据权利要求47所述的装置,其中,所述重试单元,包括:
初始状态获取子单元,用于获取训练的初始状态;
重试执行子单元,用于基于所述初始状态,在所述候选计算资源中进行训练重试。
50.根据权利要求45所述的装置,其中,在所述不可用的情况为计算资源数量的缩容的情况下,所述补救措施执行子模块,包括:
第一数量确定单元,用于确定缩容后所述计算资源的第一数量;
第一重新切分单元,用于根据所述第一数量,对所述待训练的模型进行重新切分,得到重新切分的第一结果;
第一分布策略确定单元,用于利用重新确定的缩容后剩余的所述计算资源的属性,确定每个所述重新切分的第一结果在缩容后的所述计算资源中的第一分布策略;
分布式训练执行单元,用于根据所述第一分布策略,利用缩容后的所述计算资源对所述待训练的模型进行分布式训练。
51.根据权利要求45所述的装置,其中,在检测结果存在额外的计算资源可用的情况下,包括:
第二数量确定单元,用于确定可用的所述额外的计算资源的第二数量;
第二重新切分单元,用于根据所述第二数量,对所述待训练的模型进行重新切分,得到重新切分的第二结果;
第二分布策略确定单元,用于利用重新确定的额外的所述计算资源的属性,确定每个所述重新切分的第二结果在增容后的所述计算资源中的第二分布策略;
分布式训练执行单元,用于根据所述第二分布策略,利用增容后的所述计算资源对所述待训练的模型进行分布式训练。
52.根据权利要求50或51所述的装置,在所述计算资源的数量出现变化的情况下,还包括调整子单元,具体用于:
根据变化后的数量,调整所述待训练模型的学习率和单次训练所选取的样本数量。
53.根据权利要求28、45、50或51任一所述的装置,所述分布式训练包括:去中心化的异步流水训练。
54.根据权利要求28、29、30、33、34、50、51任一所述的装置,所述待训练的模型是根据用户端发起的模型训练请求得到的。
55.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至27中任一项所述的方法。
56.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至27中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111471601.7A CN114169427B (zh) | 2021-12-06 | 2021-12-06 | 基于端到端自适应的分布式训练方法、装置、设备 |
KR1020220155291A KR20220161234A (ko) | 2021-12-06 | 2022-11-18 | 단대단 자체 적응에 기반한 분산식 훈련 방법, 장치, 기기 |
JP2022192338A JP7430237B2 (ja) | 2021-12-06 | 2022-11-30 | エンドツーエンドの自己適応に基づく分散型トレーニング方法、装置、及び機器 |
US18/060,705 US20230169351A1 (en) | 2021-12-06 | 2022-12-01 | Distributed training method based on end-to-end adaption, and device |
EP22211341.7A EP4191411A1 (en) | 2021-12-06 | 2022-12-05 | Distributed training method based on end-to-end adaption, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111471601.7A CN114169427B (zh) | 2021-12-06 | 2021-12-06 | 基于端到端自适应的分布式训练方法、装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114169427A CN114169427A (zh) | 2022-03-11 |
CN114169427B true CN114169427B (zh) | 2022-10-04 |
Family
ID=80482979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111471601.7A Active CN114169427B (zh) | 2021-12-06 | 2021-12-06 | 基于端到端自适应的分布式训练方法、装置、设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230169351A1 (zh) |
EP (1) | EP4191411A1 (zh) |
JP (1) | JP7430237B2 (zh) |
KR (1) | KR20220161234A (zh) |
CN (1) | CN114169427B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114418127B (zh) * | 2022-03-23 | 2022-07-12 | 阿里云计算有限公司 | 机器学习计算优化方法和平台 |
CN114841315A (zh) * | 2022-04-22 | 2022-08-02 | 北京百度网讯科技有限公司 | 混合专家模型实现方法、系统、电子设备及存储介质 |
CN115114927A (zh) * | 2022-04-22 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种模型训练方法和相关装置 |
CN117278554A (zh) * | 2022-06-14 | 2023-12-22 | 华为云计算技术有限公司 | 一种基于云管理平台的数据处理方法以及云管理平台 |
CN117828341A (zh) * | 2022-09-27 | 2024-04-05 | 华为技术有限公司 | 一种模型训练管理的方法、装置和系统 |
CN116382599B (zh) * | 2023-06-07 | 2023-08-29 | 之江实验室 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
CN116501502B (zh) * | 2023-06-25 | 2023-09-05 | 电子科技大学 | 一种基于Pytorch框架的数据并行优化方法 |
CN116501505B (zh) * | 2023-06-27 | 2023-09-12 | 上海燧原科技有限公司 | 负载任务的数据流生成方法、装置、设备及介质 |
CN116755941B (zh) * | 2023-08-21 | 2024-01-09 | 之江实验室 | 一种节点故障感知的分布式模型训练的方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052130A (zh) * | 2012-11-20 | 2013-04-17 | 南京邮电大学 | 一种基于粗糙集的无线多媒体传感器网络数据融合方法 |
CN109062700A (zh) * | 2018-08-21 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种基于分布式系统的资源管理方法及服务器 |
CN110889492A (zh) * | 2019-11-25 | 2020-03-17 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
CN111064633A (zh) * | 2019-11-28 | 2020-04-24 | 国网甘肃省电力公司电力科学研究院 | 一种云边协同电力信息通信设备自动化测试资源分配方法 |
CN111310934A (zh) * | 2020-02-14 | 2020-06-19 | 北京百度网讯科技有限公司 | 一种模型生成方法、装置、电子设备和存储介质 |
CN111950859A (zh) * | 2020-07-21 | 2020-11-17 | 北京航空航天大学 | 航空通信数据链动态适配方法、装置和存储介质 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | 中国银联股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113434302A (zh) * | 2021-08-12 | 2021-09-24 | 阿里云计算有限公司 | 分布式作业执行方法、主节点、系统、物理机及存储介质 |
CN113472597A (zh) * | 2021-08-16 | 2021-10-01 | 东北大学 | 分布式卷积神经网络细粒度的参数传输调度方法及装置 |
CN113592209A (zh) * | 2021-02-04 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种模型训练任务管理方法、装置、终端和存储介质 |
CN113656175A (zh) * | 2021-08-18 | 2021-11-16 | 北京百度网讯科技有限公司 | 基于分布式系统训练模型的方法、设备及程序产品 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938731B (zh) * | 2012-11-22 | 2015-01-21 | 北京锐易特软件技术有限公司 | 一种基于代理缓存适配模型的交换集成装置及方法 |
CN108322937B (zh) * | 2017-01-18 | 2020-08-11 | 上海诺基亚贝尔股份有限公司 | 无线接入网中用于网络切片的资源分配方法和编排器 |
EP3614260A4 (en) | 2017-11-20 | 2020-10-21 | Shanghai Cambricon Information Technology Co., Ltd | METHOD, DEVICE AND SYSTEM FOR PARALLEL PROCESSING OF TASKS, STORAGE MEDIUM AND COMPUTER DEVICE |
EP3502975A1 (en) | 2017-12-20 | 2019-06-26 | Fujitsu Limited | Methods and apparatus for model parallelism in artificial neural networks |
CN109993299B (zh) * | 2017-12-29 | 2024-02-27 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
EP3640856A1 (en) | 2018-10-19 | 2020-04-22 | Fujitsu Limited | A method, apparatus and computer program to carry out a training procedure in a convolutional neural network |
CA3088261A1 (en) * | 2019-12-19 | 2021-06-19 | Sandvine Corporation | System and method for intent based network slice assignment |
CN111242282B (zh) * | 2020-01-09 | 2023-03-28 | 中山大学 | 基于端边云协同的深度学习模型训练加速方法 |
CN111882060A (zh) * | 2020-07-20 | 2020-11-03 | 中国人民解放军国防科技大学 | 用于机器学习的单步延迟随机梯度下降训练方法 |
CN112037326B (zh) * | 2020-08-11 | 2023-09-05 | 北京梦之岩科技有限公司 | 一种精确描述地质体边界相邻空间属性状况的方法 |
-
2021
- 2021-12-06 CN CN202111471601.7A patent/CN114169427B/zh active Active
-
2022
- 2022-11-18 KR KR1020220155291A patent/KR20220161234A/ko unknown
- 2022-11-30 JP JP2022192338A patent/JP7430237B2/ja active Active
- 2022-12-01 US US18/060,705 patent/US20230169351A1/en active Pending
- 2022-12-05 EP EP22211341.7A patent/EP4191411A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103052130A (zh) * | 2012-11-20 | 2013-04-17 | 南京邮电大学 | 一种基于粗糙集的无线多媒体传感器网络数据融合方法 |
CN109062700A (zh) * | 2018-08-21 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种基于分布式系统的资源管理方法及服务器 |
CN110889492A (zh) * | 2019-11-25 | 2020-03-17 | 北京百度网讯科技有限公司 | 用于训练深度学习模型的方法和装置 |
CN111064633A (zh) * | 2019-11-28 | 2020-04-24 | 国网甘肃省电力公司电力科学研究院 | 一种云边协同电力信息通信设备自动化测试资源分配方法 |
CN111310934A (zh) * | 2020-02-14 | 2020-06-19 | 北京百度网讯科技有限公司 | 一种模型生成方法、装置、电子设备和存储介质 |
CN111950859A (zh) * | 2020-07-21 | 2020-11-17 | 北京航空航天大学 | 航空通信数据链动态适配方法、装置和存储介质 |
CN112000473A (zh) * | 2020-08-12 | 2020-11-27 | 中国银联股份有限公司 | 深度学习模型的分布式训练方法以及装置 |
CN113592209A (zh) * | 2021-02-04 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种模型训练任务管理方法、装置、终端和存储介质 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113434302A (zh) * | 2021-08-12 | 2021-09-24 | 阿里云计算有限公司 | 分布式作业执行方法、主节点、系统、物理机及存储介质 |
CN113472597A (zh) * | 2021-08-16 | 2021-10-01 | 东北大学 | 分布式卷积神经网络细粒度的参数传输调度方法及装置 |
CN113656175A (zh) * | 2021-08-18 | 2021-11-16 | 北京百度网讯科技有限公司 | 基于分布式系统训练模型的方法、设备及程序产品 |
Non-Patent Citations (4)
Title |
---|
Effective Elastic Scaling of Deep Learning Workloads;Vaibhav Saxena;《 2020 28th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems》;20201221;论文全文 * |
Elastic Deep Learning in Multi-Tenant GPU Clusters;Yidi Wu;《 IEEE Transactions on Parallel and Distributed Systems 》;20210309;论文全文 * |
基于微服务的MES–MSA架构研究;欧阳森山;《航空制造技术》;20211015;论文全文 * |
飞桨:源于产业实践的开源深度学习平台;马艳军;《数据与计算发展前沿》;20191030;论文全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114169427A (zh) | 2022-03-11 |
JP2023025146A (ja) | 2023-02-21 |
JP7430237B2 (ja) | 2024-02-09 |
EP4191411A1 (en) | 2023-06-07 |
US20230169351A1 (en) | 2023-06-01 |
KR20220161234A (ko) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114169427B (zh) | 基于端到端自适应的分布式训练方法、装置、设备 | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
WO2020258290A1 (zh) | 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统 | |
US20160299795A1 (en) | Parallel computing control apparatus and parallel computing system | |
CN110782122B (zh) | 数据处理方法、装置及电子设备 | |
US11221943B2 (en) | Creating an intelligent testing queue for improved quality assurance testing of microservices | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN112948279A (zh) | 管理存储系统中的访问请求的方法、设备和程序产品 | |
WO2020206699A1 (en) | Predicting virtual machine allocation failures on server node clusters | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
CN113760522A (zh) | 一种任务处理方法和装置 | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN109067649B (zh) | 节点处理方法及装置、存储介质和电子设备 | |
CN112817687A (zh) | 一种数据同步方法和装置 | |
US20230229675A1 (en) | Methods and systems that continuously optimize sampling rates for metric data in distributed computer systems by preserving metric-data-sequence information content | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN114237902A (zh) | 一种服务部署方法、装置、电子设备及计算机可读介质 | |
CN113253924A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN114116790A (zh) | 数据处理的方法及装置 | |
CN113535346A (zh) | 线程数量调整的方法、装置、设备及计算机存储介质 | |
CN110022348B (zh) | 用于动态备份会话的系统和方法 | |
CN116541190A (zh) | 分布式集群的性能测试方法及系统、存储介质和电子设备 | |
CN117725271A (zh) | 业务处理方法、装置、电子设备及存储介质 | |
CN115269130A (zh) | 算力资源调度方法与装置、介质及电子设备 | |
CN114598705A (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 |