CN114186633A - 模型的分布式训练方法、装置、设备以及存储介质 - Google Patents
模型的分布式训练方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114186633A CN114186633A CN202111505374.5A CN202111505374A CN114186633A CN 114186633 A CN114186633 A CN 114186633A CN 202111505374 A CN202111505374 A CN 202111505374A CN 114186633 A CN114186633 A CN 114186633A
- Authority
- CN
- China
- Prior art keywords
- strategy
- model
- description information
- operator
- segmentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了模型的分布式训练方法、装置、设备以及存储介质,涉及人工智能技术领域,尤其涉及深度学习、云计算等领域。具体实现方案为:基于待训练模型,生成初始切分策略;确定待训练模型在初始切分策略下的第一属性描述信息;第一属性描述信息用于表征待训练模型在初始切分策略下的存储空间占用情况和运行时长中的至少一项;基于第一属性描述信息,对初始切分策略进行优化,得到符合预设条件的目标切分策略;基于目标切分策略对待训练模型进行切分,得到切分结果,切分结果用于对待训练模型进行分布式训练。根据本公开的技术,针对模型的分布式训练场景,缩短了训练时长、提高了训练效率、并且降低了训练成本。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及深度学习、云计算等领域,特别涉及模型的分布式训练方法、装置、设备以及存储介质。
背景技术
目前现有的在异构设备上求解最优设备切分方法的实现主要通过动态规划的方法,动态规划方法一般将问题拆解为子问题进行求解。但动态规划方法求解的范围有限,一旦改变建模方法,增加模型约束,就很难求得最优值。
发明内容
本公开提供了一种模型的分布式训练方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种模型的分布式训练方法,包括:
基于待训练模型,生成初始切分策略;初始切分策略用于表征待训练模型包含的算子和张量分别对应的分布式属性;
确定待训练模型在初始切分策略下的第一属性描述信息;第一属性描述信息用于表征待训练模型在初始切分策略下的存储空间占用情况和运行时长中的至少一项;
基于第一属性描述信息,对初始切分策略进行优化,得到符合预设条件的目标切分策略;
基于目标切分策略对待训练模型进行切分,得到切分结果,切分结果用于对待训练模型进行分布式训练。
根据本公开的另一方面,提供了一种模型的分布式训练装置,包括:
初始切分策略生成模块,用于基于待训练模型,生成初始切分策略;初始切分策略用于表征待训练模型包含的算子和张量分别对应的分布式属性;
属性描述信息确定模块,用于确定待训练模型在初始切分策略下的第一属性描述信息;第一属性描述信息用于表征待训练模型在初始切分策略下的存储空间占用情况和运行时长中的至少一项;
优化模块,用于基于第一属性描述信息,对初始切分策略进行优化,得到符合预设条件的目标切分策略;
切分模块,用于基于目标切分策略对待训练模型进行切分,得到切分结果,切分结果用于对待训练模型进行分布式训练。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。
根据本公开实施例的模型的分布式训练方法,可以结合待训练模型在相应切分策略下的存储空间占用情况和运行时长这两个因素之中的至少一个,对切分策略不断进行优化,确定出训练时长最少和/或存储空间占用情况最小的目标切分策略,最终利用目标切分策略对待训练模型进行切分得到的多个切分结果对待训练模型进行分布式训练,由此,本公开实施例的方法针对模型的分布式训练场景,可以得到训练成本最低的目标切分策略,缩短了训练时长、提高了训练效率、并且降低了训练成本,从而解决了相关技术采用自动搜索算法确定模型切分策略过程中,不能结合模型的存储空间占用情况和/或运行时长给出最优并行策略的技术问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示出根据本公开实施例的模型的分布式训练方法的流程图;
图2示出根据本公开实施例的方法的确定第一属性描述信息的具体流程图;
图3示出根据本公开实施例的方法的确定子属性描述信息的具体流程图;
图4示出根据本公开实施例的方法的生成初始切分策略的具体流程图;
图5示出根据本公开实施例的方法的对初始切分策略进行优化的具体流程图;
图6示出根据本公开实施例的方法的确定目标切分策略的具体流程图;
图7示出根据本公开实施例的方法的确定目标切分策略的具体流程图;
图8示出根据本公开实施例的方法的对待训练模型进行切分的具体流程图;
图9示出根据本公开实施例的方法的确定目标切分策略的具体流程图;
图10示出根据本公开实施例的方法的按照预设规则对目标切分策略进行剪枝处理的具体流程图;
图11示出执行本公开实施例的方法的执行主体的架构图;
图12示出根据本公开实施例的方法的成本估计模型的架构图;
图13示出根据本公开实施例的方法的成本估计模型的确定属性描述信息的具体流程图;
图14示出根据本公开实施例的方法的对初始切分策略进行优化的具体流程图;
图15示出根据本公开实施例的模型的分布式训练装置的框图;
图16是用来实现本公开实施例的模型的分布式训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着数据和算力的持续增长,深度学习模型的参数规模不断扩大,在自然语言处理领域,预训练模型的参数目前可达到千亿甚至万亿的规模。单机硬件资源无法满足超大规模模型训练的要求,利用多台机器进行分布式并行训练则成为大模型训练的必然选择。相关技术中,常用的分布式并行策略包括数据并行、模型并行和流水线并行和多种并行策略的组合等。
分布式并行训练技术使超大模型成为可能,但分布式训练程序的编写门槛较高,并行算法较为复杂,开发者需同时具有较好的工程能力和算法功底。为了降低分布式训练的难度,自动并行成为新的研究热点,受到学术界和工业界的广泛关注。自动并行通常分为半自动并行和全自动并行。半自动并行指的是开发者开发模型的单机脚本,在单机脚本的基础上额外添加少量代码即可表达并行逻辑。而全自动并行则无需开发者添加任何并行逻辑,根据单机脚本自动搜索出高效的并行策略,实现分布式训练。
相关技术中,在异构设备上求解最优设备切分方法的实现主要通过动态规划的方法,比如PipeDream和DAPPLE提出的流水线并行训练方法中,均使用动态规划求解。动态规划方法一般将问题拆解为子问题进行求解。但动态规划方法求解的范围有限,一旦改变建模方法,增加模型约束,就很难求得最优值。深度强化学习来求解问题不需要目标函数可微,对带约束的问题能够很好的求解,可泛化性强,适用于解决更加通用的问题。
自动搜索方法的目的是为了搜寻出最优的分布式划分方案,在巨大的搜索空间中高效且准确地找到切分方式,相关技术中提出了多种自动搜索方法,例如:Flexflow(一种数据流架构)在SOAP(Sample,Operation,Attribute,Parameter)的并行方案搜索空间,使用马尔可夫-蒙特卡罗算法(Markov chain Monte Carlo,MCMC)得到搜索策略;MindSpore(一种全栈AI计算基础设施及应用)旨在于得到一组通用的并行策略集合,对于不同内存给出最短运行时间的并行策略;使用动态规划,得到通用的Cost Frontier(成本边缘模型),在Cost Frontier上可以找到对应内存下运行时间最短的策略。Mesh Tensorflow(一种语言库)的自动搜索使用贪心算法,旨在于最小化计算峰值内存。
上述列举的多种自动搜索方法分别存在以下缺陷:
(1)FlexFlow在层里其他维度做并行SOAP(sample,operator,attribute,parameter),切分维度语义重复,不够完备;
(2)Mesh Tensorflow最小化计算峰值内存没有考虑运行时间,不够高效;
(3)MindSpore针对不同的内存给出对应的最优并行策略,组成集合。是一个通用的方案。使用动态规划,一旦更改建模函数,需要重新构建整个动态规划过程。
为了解决相关技术中存在的上述缺陷中的至少一个,本公开实施例提供了一种模型的分布式训练方法。
本公开实施例的方法可以基于对待训练模型的静态分析以及运行时的动态分析,得到待训练模型在相应的切分策略下的存储空间占用情况和/或运行时长,然后根据存储空间占用情况和/或运行时长,利用自动搜索算法进行新并行策略的选择,给用户提供最优选的目标切分策略,并根据目标切分策略对待训练模型进行切分,并利用切分得到的切分结果对待训练模型进行分布式训练。并且,具有完备的搜索空间,相比于相关技术中的动态搜索方法只关注常用数据并行、模型并行,或是忽略物理映射,还有一些没考虑非均匀切。本公开的搜索空间所针对的分布式属性可以包括进程拓扑信息(process_mesh)、切分映射信息(dims_mapping)、大小信息(shard_sizes)和设备部署信息(device_placement),对于用户发起的分布式训练请求,将所有算子和张量的分布式属性的标记作为搜索空间,并在其中删去一些不合理的组合剪枝,使得搜索空间更加的完备和通用。
下面参照图1至图14描述根据本公开实施例的模型的分布式训练方法。
图1示出了根据本公开实施例的模型的分布式训练方法。如图1所示,该方法具体包括以下步骤:
S101:基于待训练模型,生成初始切分策略;初始切分策略用于表征待训练模型包含的算子和张量分别对应的分布式属性;
S102:确定待训练模型在初始切分策略下的第一属性描述信息;第一属性描述信息用于表征待训练模型在初始切分策略下的存储空间占用情况和运行时长中的至少一项;
S103:基于第一属性描述信息,对初始切分策略进行优化,得到符合预设条件的目标切分策略;
S104:基于目标切分策略对待训练模型进行切分,得到切分结果,切分结果用于对待训练模型进行分布式训练。
本公开的上述方法的执行主体可以是用于执行模型训练的云端服务器或模型训练平台等,例如,可以是基于k8s的异构训练平台。
可以在执行主体中加载执行上述方法的执行器。以模型训练平台为例,模型训练平台的作用在于接收用户端发起的模型训练请求,并为其分配计算资源。执行器通过与平台的交互,获取模型训练请求以及计算资源信息,从而执行模型训练过程。
对模型的分布式训练过程可以是端到端的过程。例如,待训练模型可以是由模型训练平台对用户端发起的模型训练请求进行解析获取到的。通过对该训练请求进行解析,即可基于解析结果进行模型的训练过程,直至最终模型输出的结果收敛。
示例性地,在步骤S101中,待训练模型可以是神经网络模型。更为具体地,待训练模型可以包括视觉模型、语言模型、推荐模型、点击率预估模型等。其中,待训练模型的参数数量级和训练样本的数量级以亿为单位。
可以理解的是,待训练模型包含多个算子以及各算子对应的张量。初始切分策略的生成过程可以包括:对待训练模型进行解析,以确定出待训练模型所包含的算子和张量;然后针对算子和张量,分别初始化各个算子以及张量的分布式属性,以得到待训练模型的初始切分策略。
其中,算子和张量分别对应的分布式属性,具体可以包括进程拓扑信息(process_mesh)、切分映射信息(dims_mapping)以及大小信息(shard_sizes)。
基于算子和张量分别对应的分布式属性,可以对待训练模型进行切分,以得到多个切分结果。
示例性地,在步骤S102中,可以利用预先设置的成本估计模型,确定待训练模型在初始切分策略下的第一属性描述信息。
具体地,可以将神经网络模型在初始切分策略下对应的分布式计算图和硬件图输入成本估计模型,并通过成本估计模型输出第一属性描述信息。其中,第一属性描述信息可以用于表征待训练模型在初始切分策略下的存储空间占用情况和/或运行时长。
可以理解的是,存储空间占用情况指的是待训练模型对计算资源的内存占用情况,运行时长指的是对待训练模型进行分布式训练所经历的时长。
示例性地,在步骤S103中,可以根据待训练模型在初始切分策略下的存储空间占用情况和运行时长,对初始切分策略不断进行优化,以得到符合预设条件的目标切分策略。
其中,符合预设条件可以理解为,待训练模型在目标切分策略下的属性描述信息中,待训练模型的存储空间占用情况和/或运行时长符合预设条件。
在一个示例中,可以利用搜索模型生成初始切分策略并对初始切分策略不断进行优化,最终得到符合预设条件的目标切分策略。
具体地,将待训练模型和计算资源输入搜索模型,搜索模型生成初始切分策略;然后,根据成本估计模型输出待训练模型在初始切分策略下的第一属性描述信息,对初始切分策略进行优化,以得到优化后的至少一个预选切分策略;根据待训练模型在预选切分策略下的属性描述信息和第一属性描述信息的比较结果,进行多次优化,最终得到符合预设条件的目标切分策略。
更为具体地,搜索模型还可以包括剪枝模块和搜索模块,剪枝模块可以根据预先设置的剪枝规则对多种预选切分策略中不合理的切分策略进行剪枝,搜索模型利用马尔科夫-蒙特卡罗算法对剪枝后的预选切分策略进行搜索和优化,最终得到符合预设条件的目标切分策略。
示例性地,在步骤S104中,基于目标切分策略对待训练模型进行切分,具体可以根据算子和张量的分布式属性,将待训练模型切分为多个切分结果。
可以理解的是,在后续的分布式训练中,可以根据计算资源所包含的多个计算单元,为各切分结果分别分配目标计算单元,并利用多个目标计算单元执行相应的切分结果,从而实现对待训练模型进行分布式训练。
图11示出用于执行本公开实施例的模型的分布式训练方法的执行主体的框架图。下面参照图11以一个具体示例描述根据本公开实施例的模型的分布式训练方法。
如图11所示,该执行主体包括搜索模型和成本估计模型(cost model)。搜索模型包括剪枝模块和搜索模块,剪枝模块在巨大的搜索空间中丢弃不合理的切分策略,目的是节约搜索时间,提高搜索效率。其中,搜索模块采用马尔可夫-蒙特卡罗算法。成本估计模型包括算子级别代价模块和图级别代价模块,成本估计模型根据输入的待训练模型的分布式计算图和硬件图,输出待训练模型在相应切分策略下的存储空间占用情况(常驻存储占用和峰值占用)和运行时长。
首先,将待训练模型(即单机组网)和计算资源的硬件拓扑图输入搜索模型。搜索模型根据待训练模型的模型特征和计算资源的硬件拓扑图,生成多种初始切分策略,并利用成本估计模型,得到待训练模型在各种初始切分策略下的属性描述信息。
其次,将各种初始切分策略下的属性描述信息中的存储空间占用情况作为约束条件,利用剪切模块对多种初始切分策略进行剪枝,例如,如果初始切分策略所需的存储空间大于当前计算资源所能提供的存储空间,则将策略丢弃。搜索模块利用各种切分策略下的运行时长作为自动搜索的决策依据,按照马尔可夫-蒙特卡罗算法对初始切分策略进行替换或丢弃,并不断更新和优化初始切分策略,最终得到符合预设条件的目标切分策略(即搜索策略)。
根据本公开实施例的模型的分布式训练方法,可以结合待训练模型在相应切分策略下的存储空间占用情况和运行时长这两个因素之中的至少一个,对切分策略不断进行优化,确定出训练时长最少和/或存储空间占用情况最小的目标切分策略,最终利用目标切分策略对待训练模型进行切分得到的多个切分结果对待训练模型进行分布式训练,由此,本公开实施例的方法针对模型的分布式训练场景,可以得到训练成本最低的目标切分策略,缩短了训练时长、提高了训练效率、并且降低了训练成本,从而解决了相关技术采用自动搜索算法确定模型切分策略过程中,不能结合模型的存储空间占用情况和/或运行时长给出最优并行策略的技术问题。
如图2所示,在一种实施方式中,步骤S102包括:
S201:基于初始切分策略,确定待训练模型的计算图和硬件图;
S202:基于计算图和硬件图,确定计算图中各节点的子属性描述信息,子属性描述信息包含子存储空间占用情况或子运行时长;
S203:基于各节点的子属性描述信息,确定待训练模型的第一属性描述信息。
示例性地,在步骤S201中,可以基于初始切分策略,对待训练模型进行解析,得到待训练模型的计算图和硬件图。具体而言,根据待训练模型的特点,将待训练模型的训练过程描述为计算数据流图,然后将待训练模型中的节点和张量并行化,以将整个模型中的网络层并行化,从而将顺序执行的计算图转换为分布式计算图。基于训练任务对应的集群硬件计算资源的属性信息生成硬件图,即可以对集群硬件资源(含机器、交换机等)采用抽象表示,不仅包括设备间的拓扑信息,还包括了设备内的处理器、显存、带宽等处理能力相关信息,实现了集群之间、集群内部硬件之间、硬件内部的具体连接方式及差异的屏蔽,可以支持各种异构硬件和集群环境。
示例性地,在步骤S102中,基于计算图和硬件图,通过确定各个节点的子属性描述信息,可以得到各个节点的存储空间占用情况或者子运行时长。
例如,针对种类为算子的节点,节点的子属性描述信息可以为子运行时长;针对种类为变量的节点,节点的子属性描述信息可以为子存储空间占用情况。
示例性地,在步骤S103中,针对各个节点的子属性描述信息,通过对各个节点之间的相互关系,对全部节点的子属性描述信息进行归约处理,最终得到待训练模型在初始切分策略下的第一属性描述信息。
在一个具体示例中,可以将分布式计算图和硬件图输入预先训练的成本估计模型。成本估计模型根据计算图和硬件图,通过算子级别代价的估计得到计算算子和通信算子分别对应的子属性描述信息;以及,通过图级别代价的估计,基于全部算子的子属性描述信息,得到待训练模型在初始切分策略下的运行时长和存储空间占用情况。其中,成本估计模型包括静态分析模块、统计模块和模拟模块,用于执行图级别代价的估计。
通过上述实施方式,可以确定出待训练模型在初始切分策略下的存储空间占用情况和/或运行时长,从而实现了对初始切分策略的评估,使得后续对于初始切分策略进行优化所考虑的因素更加全面。并且,由于本公开实施例的方法解决的是在实际应用中,找到运行时间最少的目标切分策略。所以可以将存储空间占用情况作为约束条件,即将所需内存超过实际拥有的切分策略丢弃即可,相比于相关技术中的MindSpore求解多种内存下最优策略的方案,本公开实施例的方法具有更好的泛化性,实现了对带约束问题的求解。
在一种实施方式中,步骤S202包括:
S301:获取计算图中各节点的节点种类;
S302:在节点种类为算子的情况下,根据算子的类型,确定节点的子运行时长;以及,在节点种类为变量的情况下,根据变量的数据信息,确定节点的子存储空间占用情况。
可以理解的是,节点的种类具体包括算子和变量。其中,算子用于执行相应的计算过程和/或通信过程,例如计算算子用于执行计算过程,通信算子用于执行计算过程和通信过程。变量本质上代表可操作的存储空间,具体可以包括局部变量和静态变量等。
通过上述实施方式,可以根据节点的类型,确定出节点的子属性描述信息的计算方式,例如,针对节点种类为算子的节点,则将算子的子运行时长确定为节点的子属性描述信息,针对节点种类为变量的节点,则将变量的自存储空间占用情况确定为节点的子属性描述信息。由此,基于各个节点的子属性描述信息,可以得到待训练模型的第一属性描述信息。
在一种实施方式中,步骤S302包括:
在算子的类型为计算类型的情况下,根据算子的计算时间,得到节点的子运行时长。
示例性地,可以利用成本估计模型的模拟模块执行相应的模拟计算,得到计算类型的算子的计算时间。其中,模拟模块可以根据计算算子执行计算过程的特性,按一定规律用计算机程序语言模拟计算算子的数学方程。
通过上述实施方式,针对节点为计算类型的算子,可以得到节点的子运行时长。
在一种实施方式中,根据算子的类型,确定节点的子运行时长,包括:
在算子的类型为通信类型的情况下,根据算子的计算时间和通信时间,得到节点的子运行时长。
示例性地,可以利用成本估计模型的模拟模块执行相应的模拟计算,得到通信类型的算子的计算时间。
在一个具体示例中,成本估计模型遍历计算图中的各个节点,根据各个节点的节点种类,确定出各个节点的子属性描述信息。成本估计模型的具体执行步骤如下:
判断节点的节点类型是否为算子;
在节点的节点类型为算子的情况下,则判断算子的种类是否为通信算子;
如果算子的种类为通信算子,则根据通信算子的计算时间和通信时间,得到节点的子运行时长;如果算子的种类不是通信算子,则算子为计算算子,并根据计算算子的计算时间得到节点的子运行时长;
如果节点的节点类型不是算子,则节点的节点类型为变量,则根据变量的数据信息得到节点的子存储空间占用情况。
通过上述实施方式,针对节点为通信类型的算子,可以得到节点的子运行时长。
在一种实施方式中,算子的通信时间的确定方式,包括:
根据硬件图中与算子对应的计算单元的宽带信息,确定算子的通信时间。
可以理解的是,硬件图中包含与通信算子相对应的计算单元与其他计算单元进行通信的带宽信息,根据该通信算子的输入张量的规模以及该通信算子的前置计算算子的具体计算逻辑,得到该通信算子的输出张量的规模,根据该通信算子的输出张量的规模以及对应的硬件单元的带宽信息,根据通信公式计算得到该通信算子的通信时间。
通过上述实施方式,可以确定出算子的通信时间,进而得到节点为通信算子的子运行时长。
在一种实施方式中,步骤S203包括:
基于各节点的子属性描述信息,对所有的节点进行归约处理,得到待训练模型的第一属性描述信息;其中,第一属性描述信息包含待训练模型在初始切分策略下的存储空间占用情况和运行时长。
示例性地,在成本估计模型遍历完所有的节点得到各个节点的子属性描述信息后,利用模拟模块对所有的节点进行归约处理,以得到待训练模型的第一属性描述信息。
针对所有节点中的通信算子,由于异构设备(即不同的计算单元)在执行进程时存在依赖关系,因此针对不同的计算单元所对应的通信算子需要分别进行归约。具体地,根据通信算子的进程拓扑信息,区分通信算子所代表的节点,并将参与同一通信进程的通信算子归约为一个节点。即,针对参与同一轮通信的通信算子,将所有的通信算子的通信时间归约为一个通信算子的通信时间。
针对所有节点中的计算算子,则根据不同的计算算子之间的相互关系,对不同的计算算子进行归约。
进一步地,在对所有的通信算子以及所有的计算算子进行归约处理后,对计算资源的内存进行检查,判断待训练模型在当前的初始切分策略下的存储空间占用情况是否小于当前的计算资源的内存情况,并对所有的算子进行去中心化的异步流水的模拟执行方式,将具有上下游逻辑关系的数据进行自动关联,实现数据的并行化、动态化,进而得到待训练模型的运行时长。
通过上述实施方式,可以针对不同类型的节点的子属性描述信息,进行相应的归约处理,从而得到待训练模型在初始切分策略下的存储空间占用情况以及运行时长。
在一种实施方式中,对所有的节点进行归约处理,包括:
根据不同的节点之间的相互关系,对所有的节点进行归约处理,其中,相互关系为依赖关系或并行关系。
示例性地,针对所有的计算算子,根据不同的计算算子之间的相互关系,进行相应的归约处理。
在一个示例中,归约处理包括归约线处理。针对相互关系为依赖关系的不同的计算算子,即具有先后执行顺序的不同的计算算子,例如ResNet、Transformer等线性结构网络中的计算算子,则将多个计算算子归约为同一个线性处理链路,该线性处理链路的运行时长通过对不同的计算算子的子运行时长进行累加得到。
在另一个示例中,归约处理包括归约边处理。针对相互关系为并行关系的不同的计算算子,即计算算子分属于不同的线性处理链路,则对不同的线性处理链路进行归约处理。例如,DeepLabv3+或者ResNet Block网络中的Residual Connection(残差链接)下的不同的计算算子。也就是说,在不同的线性处理链路分别被映射至不同的计算单元、或者映射至具有并行能力的同一个计算单元、又或者是映射至采用了多线程执行器的情况下,针对这些线性处理链路,取其中数值最大的运行时长作为这些线性处理链路的运行时长。
基于上述示例中得到的某个线性处理链路的运行时长或者多个线性处理链路的运行时长,经过去中心化的异步流水的模拟执行方式,最终得到第一属性描述信息中的运行时长。
通过上述实施方式,可以根据不同的计算算子之间的相互关系,针对性地进行归约处理,从而得到分布式训练场景下,待训练模型在初始切分策略下的运行时长。
如图4所示,在一种实施方式中,张量包括算子对应的输入张量和输出张量,步骤S101包括:
S401:初始化各算子和张量分别对应的分布式属性,分布式属性包括进程拓扑信息和切分映射信息;
S402:利用预设剪枝规则对各算子和张量分别对应的分布式属性进行剪枝处理,生成初始切分策略。
示例性地,在步骤S401中,进程拓扑信息用于表征算子或张量的切分位置,例如,针对维度为(6,6)的输出张量,其进程拓扑信息为(2,3),则输出张量的切分位置为第2行以及第3列。切分映射信息用于表征算子或张量是否切分以及切分方向,例如进程拓扑信息为(-1,-1),则表示不对算子或张量进行切分,又例如进程拓扑信息为(-1,0),则表示仅对算子或张量的列方向进行切分。
根据上述实施方式,通过对算子和张量分别对应的进程拓扑信息以及切分映射信息进行初始化,提升了切分策略的搜索范围,使得切分策略的生成范围更加完备。并且,通过利用预先设置的剪枝规则进行剪枝,缩小了搜索空间,去掉了不合理的分布式属性,提高了搜索效率。
在一种实施方式中,预设剪枝规则包括:
在算子的进程拓扑信息与算子对应的输出张量的进程拓扑信息相同的情况下,根据算子的计算方式确定输出张量的切分映射信息。
可以理解的是,在算子的进程拓扑信息与算子对应的输出张量的进程拓扑信息相同的情况下,如果对输出张量的切分映射信息进行随机赋值,则很大概率上会导致算子的输入张量与输出张量不匹配的情况。
由此,通过根据算子的计算方式确定出输出张量的切分方式,可以提升输出张量的切分映射信息的合理性,并且降低了搜索空间,提高了搜索效率。
在一种实施方式中,预设剪枝规则包括:
在算子对应的输入张量未设置分布式属性的情况下,将算子的分布式属性确定为输入张量的分布式属性。
可以理解的是,在算子对应的输入张量不具备进程拓扑信息和切分映射信息的情况下,为了确保算子的输入张量可以作为被切分后的算子的适格输入,则需要参照算子的切分方式对输入张量进行相应切分,即,将算子的进程拓扑信息和切分映射信息赋值给算子对应的输入张量。
由此,可以确保输入张量的切分方式与算子的切分方式一致,以使切分后的输入张量可以作为切分后的算子的适格输入,并且省去了对于输入张量的分布式属性的搜索过程,提高了搜索效率。
在一种实施方式中,预设剪枝规则包括:
在待训练模型具备预先设置的批处理参数(batch_size)的情况下,将预先设置的批处理参数确定为初始切分策略下的批处理参数;或者,
在待训练模型不具备预先设置的批处理参数的情况下,根据计算资源的存储空间,生成初始切分策略下的批处理参数。
可以理解的是,批处理参数用于表征分布式训练过程中单次输入的样本数量。
示例性地,在待训练模型不具备预先设置的批处理参数的情况下,则以2的整数次幂的方式增大批处理参数,直至计算资源的存储空间无法满足当前的批处理参数。
通过上述实施方式,可以对待训练模型的批处理参数进行快速设置,并且在用户未预先设置批处理参数的情况下,可以参照计算资源的实际存储空间最大化的生成批处理参数,从而结合计算资源的实际存储情况尽可能地提高待训练模型的训练效率。
如图5所示,在一种实施方式中,步骤S103包括:
S501:对初始切分策略进行至少一次优化处理,得到至少一个预选切分策略;
S502:确定待训练模型在各预选切分策略下的第二属性描述信息,第二属性描述信息用于表征待训练模型在预选切分策略下的存储空间占用情况和运行时长中的至少一项;
S503:根据第二属性描述信息和第一属性描述信息的比较结果,在预选切分策略中确定目标切分策略。
示例性地,在步骤S502中,可以采用与步骤S102相同或相似的方法,得到待训练模型在各预选切分策略下的第二属性描述信息。例如,可以待训练模型在预选切分策略下的计算图和硬件图输入成本估计模型,得到待训练模型在该预选切分策略下的第二属性描述信息。
示例性地,在步骤S503中,比较结果可以包括第二属性描述信息中的运行时长与第一属性描述信息中的运行时长的比较结果,也可以包括第二属性描述信息中的存储空间占用情况与第一属性描述信息中的存储空间占用情况的比较结果。
在一个示例中,步骤S103包括的上述步骤可以通过搜索模型来执行。具体地,搜索模型采用马尔可夫-蒙特卡罗算法,每一步基于目前的初始切分策略,对某一个算子和张量的进程拓扑信息(process_mesh)或切分映射信息(dims_mapping)进行一定的随机化修改,得到新的预选切分策略。然后利用成本估计模型对新的预选切分策略进行运行时长的预测,根据预选切分策略与初始切分策略对应的运行时长的比较结果,以一定的概率来接受新的预选切分策略。其中,搜索过程的终止条件是,预设的搜索时间耗尽,或者超过一半的预设搜索时间都没有得到新的改进。
在一个具体示例中,对初始切分策略进行优化处理后得到一个预选切分策略后,确定第二属性描述信息和第一属性描述信息的比较结果。在比较结果不符合预设条件的情况下,则继续对初始切分策略进行优化,直至得到符合预设条件的目标切分策略。在比较结果符合预设条件的情况下,则以一定的概率将当前的预选切分策略确定为目标切分策略,停止对初始切分策略的优化。
通过上述实施方式,根据预选切分策略的第二属性描述信息与初始切分策略的第一属性描述信息的比较结果,可以从多个预选切分策略中选择存储空间占用情况和/运行时长符合预设条件的预选切分策略作为目标切分策略,从而确保最终确定的目标切分策略的训练成本最低、训练效率最高。
在一种实施方式中,步骤S501包括:
对初始切分策略中所表征的至少一个算子和/或张量的分布式属性进行随机化处理。
示例性地,可以对初始切分策略中的至少一个算子和或张量的分布式属性的赋值进行随机修改,以得到新的预选切分策略。
通过上述实施方式,可以增大生成的预选切分策略的随机性,扩大预选切分策略的搜索范围。
在一种实施方式中,步骤S503包括:
在第二属性描述信息中的存储空间占用情况不小于计算资源的存储空间的情况下,和/或在第二属性描述信息中的运行时长小于第一属性描述信息中的运行时长的情况下,继续对初始切分策略进行优化处理。
示例性地,如图14所示,在得到预选切分策略后,判断预选切分策略下的存储空间占用情况是否小于计算资源的存储空间。在预选切分策略下的存储空间占用情况大于或等于计算资源的存储空间的情况下,则对初始切分策略进行随机化处理,以优化得到新的预选切分策略。在预选切分策略下的存储空间占用情况小于计算资源的存储空间的情况下,则判断预选切分策略下的运行时长是否小于初始切分策略下的运行时长,如果预选切分策略下的运行时长大于或等于初始切分策略下的运行时长,则对初始切分策略进行随机化处理,以优化得到新的预选切分策略。
以此循环,直至得到存储空间占用情况和运行时长均满足预设条件的预选切分策略。
根据上述实施方式,通过采用循环的优化策略,利用预选切分策略的存储空间占用情况和运行时长作为约束条件,可以减少对初始切分策略的优化次数,提高对目标切分策略的确定效率。
在一种实施方式中,步骤S503包括:
在第二属性描述信息中的存储空间占用情况小于计算资源的存储空间、且第二属性描述信息中的运行时长小于第一属性描述信息中的运行时长的情况下,按照预设概率将当前的预选切分策略确定为目标切分策略。
示例性地,如图14所示,在得到预选切分策略后,判断预选切分策略下的存储空间占用情况是否小于计算资源的存储空间。在预选切分策略下的存储空间占用情况小于计算资源的存储空间的情况下,判断预选切分策略下的运行时长是否小于初始切分策略下的运行时长,如果预选切分策略下的运行时长小于初始切分策略下的运行时长,则以一定的概率将当前的预选切分策略确定为目标切分策略。
由此,确保了最终得到的预选切分策略下待训练模型的存储空间占用情况小于计算资源的占用情况,且进一步缩短了运行时长。
如图6所示,在一种实施方式中,按照预设概率将当前的预选切分策略确定为目标切分策略,包括:
S601:随机生成参考值α,参考值α大于0且小于1;
S602:在参考值α大于0.05的情况下,将当前的预选切分策略确定为目标切分策略。
可以理解的是,参考值α大于0.05的概率为95%,也就是说,以95%的概率直接将当前的预选切分策略确定为目标切分策略。
需要说明的是,0.05作为预设的参考阈值,可以根据实际情况进行调整。参考阈值的大小将对最大优化次数产生影响。如果需要对初始切分策略进行多次优化,以提高最终确定的目标切分策略的优化效果,则参考阈值可以取较小的值;如果需要限制优化次数,提高优化效率,则参考阈值可以取较大的值。
通过上述实施方式,可以利用贪心思想,将符合条件的预选切分策略以一定的概率作为目标切分策略,并以一定的概率再次进行优化,从而对优化次数加以限制,提高对初始切分策略的优化效果或者优化效率。
如图7所示,在一种实施方式中,按照预设概率将当前的预选切分策略确定为目标切分策略,还包括:
S701:在参考值α不大于0.05的情况下,获取当前的优化处理次数;
S702:在当前的优化处理次数不小于预设次数阈值的情况下,将当前的预选切分策略确定为目标切分策略。
示例性地,优化处理次数在生成初始切分策略后的取值为0,之后每进行依次优化处理则优化处理次数累加1。
例如,预设次数阈值可以设置为15,在参考值α小于或等于0.05的情况下,获取当前的优化处理次数。如果当前的优化处理次数小于15,则对初始切分策略进行优化处理得到新的预选切分策略,并根据新的预选切分策略的第二属性描述信息和第一属性描述信息的比较结果,执行上述的循环步骤。如果当前的优化处理次数等于或大于15,则终止优先处理,并将当前的预选切分策略确定为目标切分策略。
通过上述实施方式,可以利用优化处理的预设次数阈值,对最大优化次数进行限制,避免低概率但可能发生的无限进行优化处理的情况,确保目标切分策略的确定过程在可控的时间范围内。
在一种实施方式中,按照预设概率将当前的预选切分策略确定为目标切分策略,还包括:
在当前的优化处理次数小于预设次数阈值的情况下,继续对初始切分策略进行优化处理。
示例性地,在当前的优化处理次数小于预设次数阈值的情况下,则继续对初始切分策略进行优化处理,得到新的预选切分策略后,继续利用新的预选切分策略下的第二属性描述信息与第一属性描述信息的比较结果,执行循环判断的后续步骤,直至得到满足预设条件且参考值α符合预设次数阈值的预选切分策略,最终得到目标切分策略。
由此,可以确保对初始切分策略的优化次数满足预设的次数阈值,从而可以实现对优化次数的限定,保证优化过程中对于预选切分策略的完备搜索,增大搜索范围。
如图8所示,在一种实施方式中,步骤S103还包括:
S801:按照预设规则对目标切分策略进行剪枝处理,得到剪枝后的目标切分策略;
S802:按照剪枝后的目标切分策略对待训练模型进行切分,得到多个切分结果。
示例性地,预设规则可以为判断目标切分策略下,各个算子以及张量的分布式属性是否符合均匀切分的切分要求。如果某个算子以及张量的分布式属性不符合均匀切分的切分要求,则将该算子以及张量的分布式属性进行剪枝处理。如果符合均匀切分的切分要求,则保留该算子以及张量的分布式属性。
可以理解的是,对待训练模型进行切分后得到的多个切分结果,具体可以为网络切片。其中,网络切片中包含至少一个算子以及张量,且各算子以及张量的分布式属性相同,即每个切片都有与其所包含的算子以及张量相一致的分布式属性。
进一步地,根据得到的多个切分结果,利用计算资源中与各个切分结果相对应的目标计算单元,分别执行相应的计算处理,以实现对待训练模型的分布式训练。
通过上述实施方式,可以在得到的目标切分策略的基础上,通过根据算子以及张量的分布式属性是否符合均匀切分的切分要求,进一步提高目标切分策略的切分合理性。
在一种实施方式中,步骤S802包括:
S901:根据目标切分策略中所表征的第i个算子的计算方式,判断第i个算子的分布式属性是否合理;
S902:在第i个算子的分布式属性不合理的情况下,对第i个算子的分布式属性进行剪枝处理。
需要说明的是,第i个算子可以为目标切分策略下待训练模型中的随机选取的一个算子,通过获取该算子的计算方式以及其分布式属性中的进程拓扑信息和切分映射信息,可以判断该算子当前的分布式属性是否合理。
通过上述实施方式,可以实现对目标切分策略下不合理的算子的分布式属性进行剪枝,确保最终得到的目标切分策略中所有算子的分布式属性均合理。
在一种实施方式中,该方法还包括:
从计算资源包括的多个计算单元中,为每个切分结果分别匹配目标计算单元,利用目标计算单元对待训练模型进行分布式训练。
其中,为每个切分结果分别匹配目标计算单元,可以根据多个计算单元所处的计算资源的硬件拓扑关系进行确定匹配关系。其中,计算资源的硬件拓扑关系的确定方式可以通过对分配给待训练模型的计算资源进行解析以获得。
其中,计算资源的硬件拓扑关系可以包括计算资源的连接关系、带宽信息、任务处理能力等。示例性地,以当前计算资源作为源计算资源的情况下,计算资源的连接关系可以包括源计算资源与目标计算资源的连接关系。
示例性地,计算资源可以包括软件资源、硬件资源等。具体而言,计算资源可以包括CPU、GPU、XPU、Memory等。
通过为每个切分结果分别匹配目标计算单元,可以将(集群)计算资源处理能力和拓扑连接关系进行抽象表示,从而可以屏蔽硬件之间的差异,支持各种异构硬件和集群环境,进一步降低了开发难度。
在一种实施方式中,为每个切分结果分别匹配目标计算单元,包括:
S1001:根据切分结果对应的进程信息,确定切分结果对应的目标计算单元;进程信息用于表征切分结果中包含的至少一个算子的计算过程;
S1002:将切分结果映射至对应的目标计算单元。
示例性地,切分结果对应的进程信息,可以根据切分结果对应的进程拓扑信息得到。其中,进程拓扑信息可以表示切分结果当前所处的网络层以及其输入端和输出端分别对应的网络层,根据切分结果当前所处的网络层,可以确定切分结果所对应的计算单元。
进一步地,为各切分结果匹配目标计算单元,可以根据各个计算单元的任务处理能力、带宽信息等属性,选取与切分结果相匹配的计算单元作为目标计算单元。
通过上述实施方式,可以确保为各切分结果所匹配的目标计算单元在任务处理能力维度、通信维度以及存储空间维度上,均能满足各切分结果的处理要求,从而确保待训练模型的分布式训练的稳定性和可靠性。
下面参照图11至图14以一个具体示例描述根据本公开实施例的模型的分布式训练方法。
如图11所示,执行本公开实施例的模型的分布式训练方法的主体包括搜索模型和成本估计模型(cost model)。成本估计模型根据输入的待训练模型的分布式计算图和硬件图,得到待训练模型在相应切分策略下的存储空间占用情况(常驻存储占用和峰值占用)和运行时长,并将其输送至搜索模型。搜索模型根据输入的待训练模型(即单机组网)和计算资源的硬件拓扑图,利用成本估计模型输出的待训练模型在各种初始切分策略下的属性描述信息,对初始切分策略进行优化,最终得到目标切分策略(搜索策略)。其中,搜索模型包括剪枝模块和搜索模块,剪枝模块在巨大的搜索空间中,根据预设的剪枝规则丢弃不合理的切分策略,目的是节约搜索时间,提高搜索效率。搜索模块采用马尔可夫-蒙特卡罗算法。
进一步地,剪枝模块在进行剪枝处理过程中,遵循以下预设的剪枝规则:
在算子的进程拓扑信息与算子对应的输出张量的进程拓扑信息相同的情况下,根据算子的计算方式确定输出张量的切分映射信息;
在算子对应的输入张量未设置分布式属性的情况下,将算子的分布式属性确定为输入张量的分布式属性;
在待训练模型具备预先设置的批处理参数的情况下,将预先设置的批处理参数确定为初始切分策略下的批处理参数;或者,在待训练模型不具备预先设置的批处理参数的情况下,根据计算资源的存储空间,生成初始切分策略下的批处理参数;以及,
若算子的输入张量具有进程拓扑信息和切分映射信息,则可能会发生重定向(reshard)操作,但需要尽量避免重定向操作。
如图12所示,成本估计模型包括算子级别代价模块和图级别代价模块。首先,基于输入的分布式计算图,针对算子级别,对计算图中的计算算子和通信算子计算算子级别代价,得到计算算子以及通信算子的子属性描述信息。然后,针对图级别,利用静态分析模块、模拟模块以及统计建模模块,计算图级别代价。最终得到待训练模型在初始切分策略以及预选切分策略下的内存占用情况和运行时长。
如图13所示,成本估计模型在估计待训练模型的属性描述信息的具体步骤如下:
(1)执行算子级别代价的计算
遍历分布式计算图中的所有节点,判断节点的节点类型是否为算子;
在节点的节点类型为算子的情况下,判断算子的种类是否为通信算子;
如果算子的种类为通信算子,则根据通信算子的计算时间和通信时间,得到节点的子运行时长;如果算子的种类不是通信算子,则算子为计算算子,并根据计算算子的计算时间得到节点的子运行时长;
如果节点的节点类型不是算子,则节点的节点类型为变量,则根据变量的数据信息得到节点的子存储空间占用情况。
(2)执行图级别代价的计算
在对计算图中的所有节点进行遍历后,对所有的算子进行归约处理。
针对所有节点中的通信算子,由于异构设备(即不同的计算单元)在执行进程时存在依赖关系,因此针对不同的计算单元所对应的通信算子需要分别进行归约。具体地,根据通信算子的进程拓扑信息,区分通信算子所代表的节点,并将参与同一通信进程的通信算子归约为一个节点。即,针对参与同一轮通信的通信算子,将所有的通信算子的通信时间归约为一个通信算子的通信时间。
针对相互关系为依赖关系的不同的计算算子,即具有先后执行顺序的不同的计算算子,将多个计算算子归约为同一个线性处理链路,该线性处理链路的运行时长通过对不同的计算算子的子运行时长进行累加得到。
针对相互关系为并行关系的不同的计算算子,即计算算子分属于不同的线性处理链路,则对不同的线性处理链路进行归约处理。也就是说,在不同的线性处理链路分别被映射至不同的计算单元、或者映射至具有并行能力的同一个计算单元、又或者是映射至采用了多线程执行器的情况下,针对这些线性处理链路,取其中数值最大的运行时长作为这些线性处理链路的运行时长。
(3)最后,通过模拟模型对待训练模型进行内存检查,得到待训练模型的内存占用情况;以及,通过模拟模型对待训练模型进行去中心化流水模拟执行,得到待训练模型的运行时长。
如图14所示,搜索模型生成初始切分策略以及对初始切分策略的具体优化步骤如下:
(1)在搜索空间对待训练模型的算子和张量的分布式属性进行初始化赋值,生成初始切分策略S0;
(2)利用成本估计模型,得到待训练模型在初始切分策略S0下的第一属性描述信息,第一属性描述信息包含待训练模型在初始切分策略S0下的存储空间占用情况和运行时长;判断第一属性描述信息中的存储空间占用情况是否小于计算资源当前的内存情况;如果否,则返回步骤(1),重新生成初始切分策略S0;
(3)如果是,则获取第一属性描述信息中的运行时长t0,并从0开始记录优化运行次数ni;
(4)判断当前的优化运行次数ni是否小于预设的优化总次数N;
(5)如果当前的优化运行次数ni小于预设的优化总次数N,则对初始切分策略S0的至少一个算子和张量的进程拓扑信息以及切分映射信息进行随机更改,得到新的预选切分策略S’;
(6)利用成本估计模型,得到预选切分策略S’下的待训练模型的第二属性描述信息,第二属性描述信息包含待训练模型在预选切分策略S’下的存储空间占用情况和运行时长t’;依次判断第二属性描述信息中的存储空间占用情况是否小于计算资源当前的内存情况,以及判断第二属性描述信息中的运行时长t’是否小于第一属性描述信息中的运行时长t0;如果两个判断结果中的任一个为否,则返回步骤(5),重新生成新的预选切分策略S’;
(7)如果两个判断结果均为是,则生成随机数α,其中,随机数α大于0小于1;然后,判断随机数α是否小于概率阈值0.05;如果随机数α小于概率阈值0.05,则对优化运行次数ni累加1,并执行上述步骤(4);
(8)如果随机数α不小于概率阈值0.05,则将第一属性描述信息中的运行时长t0替换为第二属性描述信息中的t’以及将初始切分策略S0替换为预选切分策略S’,并对优化运行次数ni累加1,然后执行上述步骤(4);
(9)针对步骤(4)的判断结果,如果当前的优化运行次数ni不小于预设的优化总次数N,则对当前的预选切分策略S’进行shard_sizes规则剪枝处理,得到目标切分策略。
(10)根据目标切分策略,对待训练模型进行切分处理得到多个切分结果,并根据目标切分策略中的设备地址信息(device_placement),为各切分结果分配计算单元。
基于得到的目标切分策略,对待训练模型进行切分,得到多个切分结果。其中,切分结果具体可以为网络切片,网络切片中包含至少一个算子以及张量,且各算子以及张量的分布式属性相同,即每个切片都有与其所包含的算子以及张量相一致的分布式属性。基于切分得到的多个切分结果,根据切分结果对应的进程信息,确定切分结果对应的目标计算单元;将切分结果映射至对应的目标计算单元。最后,利用分配后的目标计算单元,分别执行对相应的切分结果的执行策略,以对待训练模型进行分布式训练,最终得到符合收敛条件的目标模型。
根据上述示例,本公开实施例模型的分布式训练方法提出了一种基于成本估计模型(cost model)的自动搜索方法,搜索空间完备且通用,针对算子和张量的分布式属性包含进程拓扑信息(process_mesh)、切分映射信息(dims_mapping)、大小信息(shard_sizes)和设备地址信息(device_placement)。在确定目标切分策略的过程中,考虑运行时长因素和存储空间占用情况因素,通过预设的剪枝规则对搜索空间进行剪枝处理,以及利用马尔可夫-蒙特卡罗搜索算法,可以得到每个算子和张量的最佳切分方式。并且,考虑了切分后的大小信息并进行了合理化规则剪枝,最后根据切分结果选择合适的计算单元,最终得到最优的分布式训练方案。
根据本公开的另一方面,还提供了一种模型的分布式训练装置。
如图15所示,该装置包括:
初始切分策略生成模块1501,用于基于待训练模型,生成初始切分策略;初始切分策略用于表征待训练模型包含的算子和张量分别对应的分布式属性;
第一属性描述信息确定模块1502,用于确定待训练模型在初始切分策略下的第一属性描述信息;第一属性描述信息用于表征待训练模型在初始切分策略下的存储空间占用情况和运行时长中的至少一项;
优化模块1503,用于基于第一属性描述信息,对初始切分策略进行优化,得到符合预设条件的目标切分策略;
切分模块1504,用于基于目标切分策略对待训练模型进行切分,得到切分结果,切分结果用于对待训练模型进行分布式训练。
在一种实施方式中,第一属性描述信息确定模块1502包括:
图确定子模块,用于基于初始切分策略,确定待训练模型的计算图和硬件图;
子属性描述信息确定子模块,用于基于计算图和硬件图,确定计算图中各节点的子属性描述信息,子属性描述信息包含子存储空间占用情况或子运行时长;
第一属性描述信息确定子模块,用于基于各节点的子属性描述信息,确定待训练模型的第一属性描述信息。
在一种实施方式中,图确定子模块包括:
节点种类获取单元,用于获取计算图中各节点的节点种类;
节点属性确定单元,用于在节点种类为算子的情况下,根据算子的类型,确定节点的子运行时长;以及,在节点种类为变量的情况下,根据变量的数据信息,确定节点的子存储空间占用情况。
在一种实施方式中,节点属性确定单元还用于:
在算子的类型为计算类型的情况下,根据算子的计算时间,得到节点的子运行时长。
在一种实施方式中,节点属性确定单元还用于:
在算子的类型为通信类型的情况下,根据算子的计算时间和通信时间,得到节点的子运行时长。
在一种实施方式中,算子的通信时间的确定方式,包括:
根据硬件图中与算子对应的计算单元的宽带信息,确定算子的通信时间。
在一种实施方式中,第一属性描述信息确定子模块还用于:
基于各节点的子属性描述信息,对所有的节点进行归约处理,得到待训练模型的第一属性描述信息;其中,第一属性描述信息包含待训练模型在初始切分策略下的存储空间占用情况和运行时长。
在一种实施方式中,第一属性描述信息确定子模块还用于:
根据不同的节点之间的相互关系,对所有的节点进行归约处理,其中,相互关系为依赖关系或并行关系。
在一种实施方式中,张量包括算子对应的输入张量和输出张量;
初始切分策略生成模块1501包括:
属性初始化子模块,用于初始化各算子和张量分别对应的分布式属性,分布式属性包括进程拓扑信息和切分映射信息;
剪枝子模块,用于利用预设剪枝规则对各算子和张量分别对应的分布式属性进行剪枝处理,生成初始切分策略。
在一种实施方式中,预设剪枝规则,包括:
在算子的进程拓扑信息与算子对应的输出张量的进程拓扑信息相同的情况下,根据算子的计算方式确定输出张量的切分映射信息。
在一种实施方式中,预设剪枝规则,包括:
在算子对应的输入张量未设置分布式属性的情况下,将算子的分布式属性确定为输入张量的分布式属性。
在一种实施方式中,预设剪枝规则,包括:
在待训练模型具备预先设置的批处理参数的情况下,将预先设置的批处理参数确定为初始切分策略下的批处理参数;或者,
在待训练模型不具备预先设置的批处理参数的情况下,根据计算资源的存储空间,生成初始切分策略下的批处理参数。
在一种实施方式中,优化模块1503包括:
预选切分策略生成子模块,用于对初始切分策略进行至少一次优化处理,得到至少一个预选切分策略;
第二属性描述信息确定子模块,用于确定待训练模型在各预选切分策略下的第二属性描述信息,第二属性描述信息用于表征待训练模型在预选切分策略下的存储空间占用情况和运行时长中的至少一项;
目标切分策略确定子模块,用于根据第二属性描述信息和第一属性描述信息的比较结果,在预选切分策略中确定目标切分策略。
在一种实施方式中,预选切分策略生成子模块还用于:
对初始切分策略中所表征的至少一个算子和/或张量的分布式属性进行随机化处理。
在一种实施方式中,目标切分策略确定子模块还用于:
在第二属性描述信息中的存储空间占用情况不小于计算资源的存储空间的情况下,和/或在第二属性描述信息中的运行时长小于第一属性描述信息中的运行时长的情况下,继续对初始切分策略进行优化处理。
在一种实施方式中,目标切分策略确定子模块还用于:
在第二属性描述信息中的存储空间占用情况小于计算资源的存储空间、且第二属性描述信息中的运行时长小于第一属性描述信息中的运行时长的情况下,按照预设概率将当前的预选切分策略确定为目标切分策略。
在一种实施方式中,目标切分策略确定子模块,包括:
参考值生成单元,用于随机生成参考值α,参考值α大于0且小于1;
比较单元,用于在参考值α大于0.05的情况下,将当前的预选切分策略确定为目标切分策略。
在一种实施方式中,目标切分策略确定子模块还包括:
优化处理次数获取单元,用于在参考值α不大于0.05的情况下,获取当前的优化处理次数;
比较单元还用于在当前的优化处理次数不小于预设次数阈值的情况下,将当前的预选切分策略确定为目标切分策略。
在一种实施方式中,比较单元还用于
在当前的优化处理次数小于预设次数阈值的情况下,继续对初始切分策略进行优化处理。
在一种实施方式中,切分模块1504还包括:
剪枝子模块,用于按照预设规则对目标切分策略进行剪枝处理,得到剪枝后的目标切分策略;
切分子模块,用于按照剪枝后的目标切分策略对待训练模型进行切分,得到多个切分结果。
在一种实施方式中,剪枝子模块还用于:
根据目标切分策略中所表征的第i个算子的计算方式,判断第i个算子的分布式属性是否合理;
在第i个算子的分布式属性不合理的情况下,对第i个算子的分布式属性进行剪枝处理。
在一种实施方式中,该装置还包括:
匹配模块,用于从计算资源包括的多个计算单元中,为每个切分结果分别匹配目标计算单元,利用目标计算单元对待训练模型进行分布式训练。
在一种实施方式中,匹配模块包括:
目标计算单元确定子模块,用于根据切分结果对应的进程信息,确定切分结果对应的目标计算单元;进程信息用于表征切分结果中包含的至少一个算子的计算过程;
映射子模块,用于将切分结果映射至对应的目标计算单元。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图16示出了可以用来实施本公开的实施例的示例电子设备1600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图16所示,设备1600包括计算单元1601,其可以根据存储在只读存储器(ROM)1602中的计算机程序或者从存储单元1608加载到随机访问存储器(RAM)1603中的计算机程序,来执行各种适当的动作和处理。在RAM 1603中,还可存储设备1600操作所需的各种程序和数据。计算单元1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
设备1600中的多个部件连接至I/O接口1605,包括:输入单元1606,例如键盘、鼠标等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1601执行上文所描述的各个方法和处理,例如方法XXX。例如,在一些实施例中,方法XXX可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1602和/或通信单元1609而被载入和/或安装到设备1600上。当计算机程序加载到RAM 1603并由计算单元1601执行时,可以执行上文描述的方法XXX的一个或多个步骤。备选地,在其他实施例中,计算单元1601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法XXX。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (49)
1.一种模型的分布式训练方法,包括:
基于待训练模型,生成初始切分策略;所述初始切分策略用于表征所述待训练模型包含的算子和张量分别对应的分布式属性;
确定所述待训练模型在所述初始切分策略下的第一属性描述信息;所述第一属性描述信息用于表征所述待训练模型在所述初始切分策略下的存储空间占用情况和运行时长中的至少一项;
基于所述第一属性描述信息,对所述初始切分策略进行优化,得到符合预设条件的目标切分策略;
基于所述目标切分策略对所述待训练模型进行切分,得到切分结果,所述切分结果用于对所述待训练模型进行分布式训练。
2.根据权利要求1所述的方法,其中,确定所述待训练模型在所述初始切分策略下的第一属性描述信息,包括:
基于所述初始切分策略,确定所述待训练模型的计算图和硬件图;
基于所述计算图和所述硬件图,确定所述计算图中各节点的子属性描述信息,所述子属性描述信息包含子存储空间占用情况或子运行时长;
基于各所述节点的子属性描述信息,确定所述待训练模型的第一属性描述信息。
3.根据权利要求2所述的方法,其中,基于所述计算图和所述硬件图,确定所述计算图中各节点的子属性描述信息,包括:
获取所述计算图中各所述节点的节点种类;
在所述节点种类为算子的情况下,根据所述算子的类型,确定所述节点的子运行时长;以及,在所述节点种类为变量的情况下,根据所述变量的数据信息,确定所述节点的子存储空间占用情况。
4.根据权利要求3所述的方法,其中,根据所述算子的类型,确定所述节点的子运行时长,包括:
在所述算子的类型为计算类型的情况下,根据所述算子的计算时间,得到所述节点的子运行时长。
5.根据权利要求3所述的方法,其中,根据所述算子的类型,确定所述节点的子运行时长,包括:
在所述算子的类型为通信类型的情况下,根据所述算子的计算时间和通信时间,得到所述节点的子运行时长。
6.根据权利要求5所述的方法,其中,所述算子的通信时间的确定方式,包括:
根据所述硬件图中与所述算子对应的计算单元的宽带信息,确定所述算子的通信时间。
7.根据权利要求2所述的方法,其中,基于各所述节点的子属性描述信息,确定所述待训练模型的第一属性描述信息,包括:
基于各所述节点的子属性描述信息,对所有的节点进行归约处理,得到所述待训练模型的第一属性描述信息;其中,所述第一属性描述信息包含所述待训练模型在所述初始切分策略下的存储空间占用情况和运行时长。
8.根据权利要求7所述的方法,其中,对所有的节点进行归约处理,包括:
根据不同的节点之间的相互关系,对所有的节点进行归约处理,其中,所述相互关系为依赖关系或并行关系。
9.根据权利要求1至8任一项所述的方法,其中,所述张量包括所述算子对应的输入张量和输出张量;
基于待训练模型,生成初始切分策略,包括:
初始化各所述算子和所述张量分别对应的分布式属性,所述分布式属性包括进程拓扑信息和切分映射信息;
利用预设剪枝规则对各所述算子和所述张量分别对应的分布式属性进行剪枝处理,生成初始切分策略。
10.根据权利要求9所述的方法,其中,所述预设剪枝规则,包括:
在所述算子的进程拓扑信息与所述算子对应的输出张量的进程拓扑信息相同的情况下,根据所述算子的计算方式确定所述输出张量的切分映射信息。
11.根据权利要求9所述的方法,其中,所述预设剪枝规则,包括:
在所述算子对应的输入张量未设置分布式属性的情况下,将所述算子的分布式属性确定为所述输入张量的分布式属性。
12.根据权利要求9所述的方法,其中,所述预设剪枝规则,包括:
在所述待训练模型具备预先设置的批处理参数的情况下,将所述预先设置的批处理参数确定为所述初始切分策略下的批处理参数;或者,
在所述待训练模型不具备预先设置的批处理参数的情况下,根据计算资源的存储空间,生成所述初始切分策略下的批处理参数。
13.根据权利要求1至8任一项所述的方法,其中,基于所述第一属性描述信息,对所述初始切分策略进行优化,得到符合预设条件的目标切分策略,包括:
对所述初始切分策略进行至少一次优化处理,得到至少一个预选切分策略;
确定所述待训练模型在各所述预选切分策略下的第二属性描述信息,所述第二属性描述信息用于表征所述待训练模型在所述预选切分策略下的存储空间占用情况和运行时长中的至少一项;
根据所述第二属性描述信息和所述第一属性描述信息的比较结果,在所述预选切分策略中确定目标切分策略。
14.根据权利要求13所述的方法,其中,对所述初始切分策略进行优化处理,包括:
对所述初始切分策略中所表征的至少一个算子和/或张量的分布式属性进行随机化处理。
15.根据权利要求13所述的方法,其中,根据所述第一属性描述信息和所述第二属性描述信息的比较结果,在所述预选切分策略中确定目标切分策略,包括:
在所述第二属性描述信息中的存储空间占用情况不小于计算资源的存储空间的情况下,和/或在所述第二属性描述信息中的运行时长小于所述第一属性描述信息中的运行时长的情况下,继续对所述初始切分策略进行优化处理。
16.根据权利要求13所述的方法,其中,在所述第二属性描述信息和所述第一属性描述信息的比较结果符合预设条件的情况下,将当前的预选切分策略确定为目标切分策略,包括:
在所述第二属性描述信息中的存储空间占用情况小于计算资源的存储空间、且所述第二属性描述信息中的运行时长小于所述第一属性描述信息中的运行时长的情况下,按照预设概率将当前的预选切分策略确定为所述目标切分策略。
17.根据权利要求16所述的方法,其中,按照预设概率将当前的预选切分策略确定为目标切分策略,包括:
随机生成参考值α,所述参考值α大于0且小于1;
在所述参考值α大于0.05的情况下,将所述当前的预选切分策略确定为所述目标切分策略。
18.根据权利要求17所述的方法,其中,按照预设概率将当前的预选切分策略确定为目标切分策略,还包括:
在所述参考值α不大于0.05的情况下,获取当前的优化处理次数;
在所述当前的优化处理次数不小于预设次数阈值的情况下,将所述当前的预选切分策略确定为目标切分策略。
19.根据权利要求18所述的方法,其中,按照预设概率将当前的预选切分策略确定为目标切分策略,还包括:
在所述当前的优化处理次数小于预设次数阈值的情况下,继续对所述初始切分策略进行优化处理。
20.根据权利要求1至8任一项所述的方法,其中,基于所述目标切分策略对所述待训练模型进行切分,还包括:
按照预设规则对所述目标切分策略进行剪枝处理,得到剪枝后的目标切分策略;
按照所述剪枝后的目标切分策略对所述待训练模型进行切分,得到多个切分结果。
21.根据权利要求20所述的方法,其中,按照预设规则对所述目标切分策略进行剪枝处理,得到剪枝后的目标切分策略,包括:
根据所述目标切分策略中所表征的第i个算子的计算方式,判断所述第i个算子的分布式属性是否合理;
在所述第i个算子的分布式属性不合理的情况下,对所述第i个算子的分布式属性进行剪枝处理。
22.根据权利要求20所述的方法,其中,还包括:
从计算资源包括的多个计算单元中,为每个所述切分结果分别匹配目标计算单元,利用所述目标计算单元对所述待训练模型进行分布式训练。
23.根据权利要求22所述的方法,其中,为每个所述切分结果分别匹配目标计算单元,包括:
根据所述切分结果对应的进程信息,确定所述切分结果对应的目标计算单元;所述进程信息用于表征所述切分结果中包含的至少一个算子的计算过程;
将所述切分结果映射至对应的目标计算单元。
24.一种模型的分布式训练装置,包括:
初始切分策略生成模块,用于基于待训练模型,生成初始切分策略;所述初始切分策略用于表征所述待训练模型包含的算子和张量分别对应的分布式属性;
第一属性描述信息确定模块,用于确定所述待训练模型在所述初始切分策略下的第一属性描述信息;所述第一属性描述信息用于表征所述待训练模型在所述初始切分策略下的存储空间占用情况和运行时长中的至少一项;
优化模块,用于基于所述第一属性描述信息,对所述初始切分策略进行优化,得到符合预设条件的目标切分策略;
切分模块,用于基于所述目标切分策略对所述待训练模型进行切分,得到切分结果,所述切分结果用于对所述待训练模型进行分布式训练。
25.根据权利要求24所述的装置,其中所述第一属性描述信息确定模块包括:
图确定子模块,用于基于所述初始切分策略,确定所述待训练模型的计算图和硬件图;
子属性描述信息确定子模块,用于基于所述计算图和所述硬件图,确定所述计算图中各节点的子属性描述信息,所述子属性描述信息包含子存储空间占用情况或子运行时长;
第一属性描述信息确定子模块,用于基于各所述节点的子属性描述信息,确定所述待训练模型的第一属性描述信息。
26.根据权利要求25所述的装置,其中,所述图确定子模块包括:
节点种类获取单元,用于获取所述计算图中各所述节点的节点种类;
节点属性确定单元,用于在所述节点种类为算子的情况下,根据所述算子的类型,确定所述节点的子运行时长;以及,在所述节点种类为变量的情况下,根据所述变量的数据信息,确定所述节点的子存储空间占用情况。
27.根据权利要求26所述的装置,其中,所述节点属性确定单元还用于:
在所述算子的类型为计算类型的情况下,根据所述算子的计算时间,得到所述节点的子运行时长。
28.根据权利要求26所述的装置,其中,所述节点属性确定单元还用于:
在所述算子的类型为通信类型的情况下,根据所述算子的计算时间和通信时间,得到所述节点的子运行时长。
29.根据权利要求28所述的装置,其中,所述算子的通信时间的确定方式,包括:
根据所述硬件图中与所述算子对应的计算单元的宽带信息,确定所述算子的通信时间。
30.根据权利要求25所述的装置,其中,所述第一属性描述信息确定子模块还用于:
基于各所述节点的子属性描述信息,对所有的节点进行归约处理,得到所述待训练模型的第一属性描述信息;其中,所述第一属性描述信息包含所述待训练模型在所述初始切分策略下的存储空间占用情况和运行时长。
31.根据权利要求30所述的装置,其中,所述第一属性描述信息确定子模块还用于:
根据不同的节点之间的相互关系,对所有的节点进行归约处理,其中,所述相互关系为依赖关系或并行关系。
32.根据权利要求24至31任一项所述的装置,其中,所述张量包括所述算子对应的输入张量和输出张量;
所述初始切分策略生成模块包括:
属性初始化子模块,用于初始化各所述算子和所述张量分别对应的分布式属性,所述分布式属性包括进程拓扑信息和切分映射信息;
剪枝子模块,用于利用预设剪枝规则对各所述算子和所述张量分别对应的分布式属性进行剪枝处理,生成初始切分策略。
33.根据权利要求32所述的装置,其中,所述预设剪枝规则,包括:
在所述算子的进程拓扑信息与所述算子对应的输出张量的进程拓扑信息相同的情况下,根据所述算子的计算方式确定所述输出张量的切分映射信息。
34.根据权利要求32所述的装置,其中,所述预设剪枝规则,包括:
在所述算子对应的输入张量未设置分布式属性的情况下,将所述算子的分布式属性确定为所述输入张量的分布式属性。
35.根据权利要求32所述的装置,其中,所述预设剪枝规则,包括:
在所述待训练模型具备预先设置的批处理参数的情况下,将所述预先设置的批处理参数确定为所述初始切分策略下的批处理参数;或者,
在所述待训练模型不具备预先设置的批处理参数的情况下,根据计算资源的存储空间,生成所述初始切分策略下的批处理参数。
36.根据权利要求24至31任一项所述的装置,其中,所述优化模块包括:
预选切分策略生成子模块,用于对所述初始切分策略进行至少一次优化处理,得到至少一个预选切分策略;
第二属性描述信息确定子模块,用于确定所述待训练模型在各所述预选切分策略下的第二属性描述信息,所述第二属性描述信息用于表征所述待训练模型在所述预选切分策略下的存储空间占用情况和运行时长中的至少一项;
目标切分策略确定子模块,用于根据所述第二属性描述信息和所述第一属性描述信息的比较结果,在所述预选切分策略中确定目标切分策略。
37.根据权利要求36所述的装置,其中,所述预选切分策略生成子模块还用于:
对所述初始切分策略中所表征的至少一个算子和/或张量的分布式属性进行随机化处理。
38.根据权利要求36所述的装置,其中,所述目标切分策略确定子模块还用于:
在所述第二属性描述信息中的存储空间占用情况不小于计算资源的存储空间的情况下,和/或在所述第二属性描述信息中的运行时长小于所述第一属性描述信息中的运行时长的情况下,继续对所述初始切分策略进行优化处理。
39.根据权利要求36所述的装置,其中,所述标切分策略确定子模块还用于:
在所述第二属性描述信息中的存储空间占用情况小于计算资源的存储空间、且所述第二属性描述信息中的运行时长小于所述第一属性描述信息中的运行时长的情况下,按照预设概率将当前的预选切分策略确定为所述目标切分策略。
40.根据权利要求39所述的装置,其中,所述目标切分策略确定子模块包括:
参考值生成单元,用于随机生成参考值α,所述参考值α大于0且小于1;
比较单元,用于在所述参考值α大于0.05的情况下,将所述当前的预选切分策略确定为所述目标切分策略。
41.根据权利要求40所述的装置,其中,所述目标切分策略确定子模块还包括:
优化处理次数获取单元,用于在所述参考值α不大于0.05的情况下,获取当前的优化处理次数;
所述比较单元还用于在所述当前的优化处理次数不小于预设次数阈值的情况下,将所述当前的预选切分策略确定为目标切分策略。
42.根据权利要求41所述的装置,其中,所述比较单元还用于:
在所述当前的优化处理次数小于预设次数阈值的情况下,继续对所述初始切分策略进行优化处理。
43.根据权利要求24至31任一项所述的装置,其中,所述切分模块还包括:
剪枝子模块,用于按照预设规则对所述目标切分策略进行剪枝处理,得到剪枝后的目标切分策略;
切分子模块,用于按照所述剪枝后的目标切分策略对所述待训练模型进行切分,得到多个切分结果。
44.根据权利要求43所述的装置,其中,所述剪枝子模块还用于:
根据所述目标切分策略中所表征的第i个算子的计算方式,判断所述第i个算子的分布式属性是否合理;
在所述第i个算子的分布式属性不合理的情况下,对所述第i个算子的分布式属性进行剪枝处理。
45.根据权利要求43所述的装置,其中,所述装置还包括:
匹配模块,用于从计算资源包括的多个计算单元中,为每个所述切分结果分别匹配目标计算单元,利用所述目标计算单元对所述待训练模型进行分布式训练。
46.根据权利要求45所述的装置,其中,所述匹配模块包括:
目标计算单元确定子模块,用于根据所述切分结果对应的进程信息,确定所述切分结果对应的目标计算单元;所述进程信息用于表征所述切分结果中包含的至少一个算子的计算过程;
映射子模块,用于将所述切分结果映射至对应的目标计算单元。
47.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至23中任一项所述的方法。
48.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至23中任一项所述的方法。
49.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至23中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505374.5A CN114186633B (zh) | 2021-12-10 | 2021-12-10 | 模型的分布式训练方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505374.5A CN114186633B (zh) | 2021-12-10 | 2021-12-10 | 模型的分布式训练方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114186633A true CN114186633A (zh) | 2022-03-15 |
CN114186633B CN114186633B (zh) | 2023-04-07 |
Family
ID=80604309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111505374.5A Active CN114186633B (zh) | 2021-12-10 | 2021-12-10 | 模型的分布式训练方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114186633B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114548830A (zh) * | 2022-04-18 | 2022-05-27 | 支付宝(杭州)信息技术有限公司 | 选择算子确定方法、策略组合优化方法及装置 |
CN114598631A (zh) * | 2022-04-28 | 2022-06-07 | 之江实验室 | 面向神经网络计算的分布式数据路由的建模方法和装置 |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN114862656A (zh) * | 2022-05-18 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
CN114968520A (zh) * | 2022-05-19 | 2022-08-30 | 北京百度网讯科技有限公司 | 任务搜索方法及装置、服务器和存储介质 |
CN115250253A (zh) * | 2022-06-22 | 2022-10-28 | 西南交通大学 | 带宽感知的归约处理方法以及ai模型的训练方法 |
CN115328541A (zh) * | 2022-07-04 | 2022-11-11 | 北京中科思创云智能科技有限公司 | 不同框架下模型转换方法和装置、设备及存储介质 |
CN115796284A (zh) * | 2023-02-08 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 基于tvm编译器的推理方法、装置、存储介质及设备 |
CN116341642A (zh) * | 2023-03-01 | 2023-06-27 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN116502680A (zh) * | 2023-06-30 | 2023-07-28 | 清华大学 | 一种用于混合专家模型的并行训练方法及装置 |
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
WO2023201981A1 (zh) * | 2022-04-22 | 2023-10-26 | 北京百度网讯科技有限公司 | 混合专家模型实现方法、系统、电子设备及存储介质 |
CN117634711A (zh) * | 2024-01-25 | 2024-03-01 | 北京壁仞科技开发有限公司 | 张量维度切分方法、系统、设备和介质 |
CN117634711B (zh) * | 2024-01-25 | 2024-05-14 | 北京壁仞科技开发有限公司 | 张量维度切分方法、系统、设备和介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156010A (zh) * | 2015-04-20 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 翻译训练方法、装置、系统、以及在线翻译方法及装置 |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN111222556A (zh) * | 2019-12-31 | 2020-06-02 | 中国南方电网有限责任公司 | 一种基于决策树算法识别用电类别的方法及系统 |
CN111368911A (zh) * | 2020-03-03 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种图像分类方法、装置和计算机可读存储介质 |
CN112132287A (zh) * | 2020-09-04 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种分布式的量子计算仿真方法和装置 |
CN112241789A (zh) * | 2020-10-16 | 2021-01-19 | 广州云从凯风科技有限公司 | 用于轻量化神经网络的结构化剪枝方法、装置、介质及设备 |
CN112465114A (zh) * | 2020-11-25 | 2021-03-09 | 重庆大学 | 基于优化通道剪枝的快速目标检测方法及系统 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113449857A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种数据处理方法和数据处理设备 |
CN113568860A (zh) * | 2021-07-23 | 2021-10-29 | 北京百度网讯科技有限公司 | 基于深度学习的拓扑映射方法、装置、介质及程序产品 |
-
2021
- 2021-12-10 CN CN202111505374.5A patent/CN114186633B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156010A (zh) * | 2015-04-20 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 翻译训练方法、装置、系统、以及在线翻译方法及装置 |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN111222556A (zh) * | 2019-12-31 | 2020-06-02 | 中国南方电网有限责任公司 | 一种基于决策树算法识别用电类别的方法及系统 |
CN111368911A (zh) * | 2020-03-03 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种图像分类方法、装置和计算机可读存储介质 |
CN113449857A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种数据处理方法和数据处理设备 |
CN112132287A (zh) * | 2020-09-04 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种分布式的量子计算仿真方法和装置 |
CN112241789A (zh) * | 2020-10-16 | 2021-01-19 | 广州云从凯风科技有限公司 | 用于轻量化神经网络的结构化剪枝方法、装置、介质及设备 |
CN112465114A (zh) * | 2020-11-25 | 2021-03-09 | 重庆大学 | 基于优化通道剪枝的快速目标检测方法及系统 |
CN113128702A (zh) * | 2021-04-15 | 2021-07-16 | 杭州电子科技大学 | 一种基于强化学习的神经网络自适应分布式并行训练方法 |
CN113568860A (zh) * | 2021-07-23 | 2021-10-29 | 北京百度网讯科技有限公司 | 基于深度学习的拓扑映射方法、装置、介质及程序产品 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114548830A (zh) * | 2022-04-18 | 2022-05-27 | 支付宝(杭州)信息技术有限公司 | 选择算子确定方法、策略组合优化方法及装置 |
WO2023201981A1 (zh) * | 2022-04-22 | 2023-10-26 | 北京百度网讯科技有限公司 | 混合专家模型实现方法、系统、电子设备及存储介质 |
CN114598631A (zh) * | 2022-04-28 | 2022-06-07 | 之江实验室 | 面向神经网络计算的分布式数据路由的建模方法和装置 |
US11805025B1 (en) | 2022-04-28 | 2023-10-31 | Zhejiang Lab | Neural network computing-oriented modeling method and apparatus for distributed data routing |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN114840322B (zh) * | 2022-05-17 | 2022-12-09 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN114862656A (zh) * | 2022-05-18 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于多gpu的分布式深度学习模型训练代价的获取方法 |
CN114968520A (zh) * | 2022-05-19 | 2022-08-30 | 北京百度网讯科技有限公司 | 任务搜索方法及装置、服务器和存储介质 |
CN114968520B (zh) * | 2022-05-19 | 2023-11-24 | 北京百度网讯科技有限公司 | 任务搜索方法及装置、服务器和存储介质 |
CN115250253A (zh) * | 2022-06-22 | 2022-10-28 | 西南交通大学 | 带宽感知的归约处理方法以及ai模型的训练方法 |
CN115250253B (zh) * | 2022-06-22 | 2024-02-27 | 西南交通大学 | 带宽感知的归约处理方法以及ai模型的训练方法 |
CN115328541A (zh) * | 2022-07-04 | 2022-11-11 | 北京中科思创云智能科技有限公司 | 不同框架下模型转换方法和装置、设备及存储介质 |
CN115796284B (zh) * | 2023-02-08 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 基于tvm编译器的推理方法、装置、存储介质及设备 |
CN115796284A (zh) * | 2023-02-08 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 基于tvm编译器的推理方法、装置、存储介质及设备 |
CN116341642A (zh) * | 2023-03-01 | 2023-06-27 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN116341642B (zh) * | 2023-03-01 | 2023-11-10 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
CN116502680A (zh) * | 2023-06-30 | 2023-07-28 | 清华大学 | 一种用于混合专家模型的并行训练方法及装置 |
CN116502680B (zh) * | 2023-06-30 | 2023-09-19 | 清华大学 | 一种用于混合专家模型的并行训练方法及装置 |
CN116862019A (zh) * | 2023-07-06 | 2023-10-10 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
CN116862019B (zh) * | 2023-07-06 | 2024-03-19 | 清华大学 | 基于数据并行范式的模型训练方法及装置 |
CN117634711A (zh) * | 2024-01-25 | 2024-03-01 | 北京壁仞科技开发有限公司 | 张量维度切分方法、系统、设备和介质 |
CN117634711B (zh) * | 2024-01-25 | 2024-05-14 | 北京壁仞科技开发有限公司 | 张量维度切分方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114186633B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114186633B (zh) | 模型的分布式训练方法、装置、设备以及存储介质 | |
Kabiljo et al. | Social hash partitioner: a scalable distributed hypergraph partitioner | |
CN113220457A (zh) | 模型部署方法、模型部署装置、终端设备及可读存储介质 | |
CN111258767A (zh) | 复杂系统仿真应用的云计算资源智能分配方法与装置 | |
Cai et al. | mrMoulder: A recommendation-based adaptive parameter tuning approach for big data processing platform | |
WO2022043798A1 (en) | Automated query predicate selectivity prediction using machine learning models | |
US20230394110A1 (en) | Data processing method, apparatus, device, and medium | |
Badri et al. | A sample average approximation-based parallel algorithm for application placement in edge computing systems | |
Miao et al. | Adaptive DNN partition in edge computing environments | |
CN110263917B (zh) | 一种神经网络压缩方法及装置 | |
Yang et al. | Betty: Enabling large-scale gnn training with batch-level graph partitioning | |
CN113158435B (zh) | 基于集成学习的复杂系统仿真运行时间预测方法与设备 | |
CN111914285B (zh) | 一种基于差分隐私的地理分布式图计算方法及系统 | |
Lopez et al. | A GPU-based algorithm for a faster hypervolume contribution computation | |
Ediger et al. | Computational graph analytics for massive streaming data | |
CN114091686B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN106844037B (zh) | 一种基于knl的测试方法及系统 | |
Yang et al. | Parallel heuristics for balanced graph partitioning based on richness of implicit knowledge | |
Perozzi et al. | Scalable graph clustering with parallel approximate PageRank | |
Tan et al. | Parallel max-min ant system using mapreduce | |
Guo et al. | Hierarchical design space exploration for distributed CNN inference at the edge | |
Lv et al. | A Survey of Graph Pre-processing Methods: From Algorithmic to Hardware Perspectives | |
Yao | A Multi-Objective Cloud Workflow Scheduling Optimization Based on Evolutionary Multi-objective Algorithm with Decomposition | |
Xu et al. | A survey on deep neural network partition over cloud, edge and end devices | |
CN112492612B (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 |