CN116128019A - Transformer模型的并行训练方法及装置 - Google Patents
Transformer模型的并行训练方法及装置 Download PDFInfo
- Publication number
- CN116128019A CN116128019A CN202211441633.7A CN202211441633A CN116128019A CN 116128019 A CN116128019 A CN 116128019A CN 202211441633 A CN202211441633 A CN 202211441633A CN 116128019 A CN116128019 A CN 116128019A
- Authority
- CN
- China
- Prior art keywords
- parallel training
- training strategy
- parallel
- strategy
- transducer
- 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
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/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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Abstract
本发明提供一种Transformer模型的并行训练方法及装置,涉及计算机技术领域;其中所述Transformer模型的并行训练方法包括:基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;基于各预设并行训练策略,构建至少一棵决策树;决策树用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合;基于训练策略集合,确定目标并行训练策略组合;利用目标并行训练策略组合对初始Transformer模型进行训练,得到目标Transformer模型。利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对模型的训练效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Transformer模型的并行训练方法及装置。
背景技术
随着人工智能技术的发展,Transformer模型在如计算机视觉(computer vision,CV)、自然语言处理(natural language processing,NLP)、图学习、推荐系统等领域得到了广泛的应用。
在实际应用中,扩大模型参数规模能够有效提升模型性能,例如拥有15亿模型参数的第二代生成式预训练Transformer(GPT-2)模型性能远优于仅有百万模型参数的原始Transformer。但是这种大规模模型参数使得模型训练的计算开销和内存开销巨大。
因此,如何高效地进行Transformer训练成为目前业界亟待解决的重要课题。
发明内容
针对现有技术存在的问题,本发明提供一种Transformer模型的并行训练方法及装置。
本发明提供一种Transformer模型的并行训练方法,包括:
基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;
基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;
基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;
利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
可选地,所述预设并行训练策略包括以下至少一项:
数据并行训练策略;
分片数据并行训练策略;
张量并行训练策略;
流水并行训练策略。
可选地,所述基于各所述预设并行训练策略,构建至少一棵决策树,包括:
利用所述流水并行训练策略,对所述初始Transformer模型进行切分,得到多个Transformer子模型;每一个所述Transformer子模型对应有至少一个设备组,所述设备组包括至少一个图形处理器设备;
针对每一个所述Transformer子模型,基于决策树构建规则构建与所述Transformer子模型对应的决策树;
其中,所述决策树构建规则包括以下至少一项:
所述决策树的根结点为所述数据并行训练策略;
所述决策树的每一层表示所述数据并行训练策略、所述分片数据并行训练策略及所述张量并行训练策略中的任一项;
所述决策树各层之间的预设并行训练策略不同;
所述决策树非叶结点的度数为2的指数次幂;
所述决策树叶节点的总数为每一个所述设备组中所述图形处理器设备的数量。
可选地,所述方法还包括:
在所述数据并行训练策略和所述分片数据并行训练策略存在于同一棵所述决策树的情况下,基于所述数据并行训练策略和所述分片数据并行训练策略对所述决策树进行剪枝处理。
可选地,所述基于所述训练策略集合,确定目标并行训练策略组合,包括:
针对每一个所述Transformer子模型,利用动态规划搜索算法,从所述并行训练策略集合中确定各所述Transformer子模型的第一并行训练策略组合;所述第一并行训练策略组合为时间开销最小的并行训练策略;
在各所述第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为所述目标并行训练策略组合。
可选地,所述动态规划搜索算法通过以下公式(1)表示:
其中,L表示所述Transformer子模型的层数;E表示所述图形处理器设备的内存限制;S表示所述训练策略集合;Sj表示所述Transformer子模型中第L层使用的并行训练策略;C(L,E)表示所述Transformer子模型中第L层在所述图形处理器设备的内存限制下的总执行时间;O(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的内存开销;c(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的执行时间;R(L,Si,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj、第L-1层使用并行训练策略Si带来的转换开销。
本发明还提供一种Transformer模型的并行训练装置,包括:
第一确定模块,用于基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;
构建模块,用于基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;
第二确定模块,用于基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;
训练模块,用于利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述Transformer模型的并行训练方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述Transformer模型的并行训练方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述Transformer模型的并行训练方法。
本发明提供的Transformer模型的并行训练方法及装置,通过将各预设并行策略进行组合,可以扩大初始Transformer模型的并行训练策略搜索空间,从而能够为初始Transformer模型提供更多可选地的并行训练策略组合;然后基于各预设并行训练策略组合,构建出至少一棵用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合的决策树,基于各决策树对并行训练策略搜索空间进行分解,减小了并行训练策略搜索空间中并行训练策略组合的选择范围,从而确定出初始Transformer模型的并行训练策略集合;基于训练策略集合,可以确定出并行训练策略集合中吞吐率最高的目标并行训练策略组合,利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对Transformer模型的训练效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的Transformer模型的并行训练方法的流程示意图之一;
图2是本发明提供的Transformer模型的并行训练方法的流程示意图之二;
图3是本发明提供的Transformer模型的并行训练装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于更加清晰地理解本申请各实施例,首先对一些相关知识进行如下介绍。
由于大规模模型参数使得模型训练的计算开销和内存开销巨大,因此构建和设计大规模Transformer模型对系统优化提出了更高的要求,如何高效地进行Transformer训练变得越来越具有挑战性。
现有的分布式深度学习系统通常使用多图形处理器设备(Graphics ProcessingUnit,GPU)设备采用并行训练策略进行分布式训练;其中,并行训练策略如下:
a)数据并行;
具体地,数据并行训练策略是将大量的输入数据分成多个部分,每个GPU设备只负责部分数据,GPU设备间需要同步梯度。数据并行要求每个GPU设备存储一个完整的模型副本,因此容易受到大模型规模的限制;
b)模型并行;
模型并行将模型划分为多个部分,使每个GPU设备存储一个模型参数的子集,根据切分维度的不同,主要有两种模型并行训练策略:张量并行和流水并行;
其中,张量并行,是指将Transformer模型中的全连接层和注意力层纵向切分到多个GPU设备上,并插入通信算子(All-Reduce)来保证计算一致性。
流水并行,是指将Transformer模型视作连续的层并将模型横向切分为若干个包含连续层的流水阶段,每个GPU设备负责一个流水阶段的计算,各个设备被组织为流水线并传输中间计算结果;
c)自动并行训练策略;
具体地,自动并行训练策略是指通过细粒度地对Transformer模型中每个算子进行数据并行和模型并行的组合,自动寻找并行策略。自动并行训练策略的提出背景如下所述。
在分布式训练大规模Transformer模型时,使用数据并行、张量并行、流水并行等各种并行策略的选择会导致不同的内存消耗、通信开销和执行效率。由于在不同的硬件设备条件(例如不同的通信带宽、计算效率、显卡内存容量)和不同的模型配置(例如不同序列长度,层数,隐层宽度等)下,没有哪种并行技术能总是获得最佳训练效率,故直接将这些单一的并行技术应用于大规模Transformer模型训练,在系统效率和可用性方面都面临着严峻挑战。
为了解决以上问题,研究者们提出了更先进的自动并行方法,将数据并行和模型并行相结合,搜索更优的分布式训练策略。然而,现有的自动并行方法只支持有限的并行维度(即数据并行和最多一个模型并行维度),这种有限的决策空间不能为许多训练场景提供足够高效的并行策略,这是现有的自动并行训练策略存在的局限性。
综上所述,针对上述技术存在的问题,为了高效地对大规模的Transformer模型进行训练,提高对Transformer模型的训练效率,本发明提供一种Transformer模型的并行训练方法及装置。
下面结合图1-图2对本发明提供的数据传输方法进行具体描述。图1是本发明提供的Transformer模型的并行训练方法的流程示意图之一,参见图1所示,包括步骤101-步骤104,其中:
步骤101、基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数。
首先需要说明的是,本发明的执行主体可以是能够实现对Transformer模型进行并行训练的任何电子设备,例如可以为智能手机、智能手表、台式电脑、手提电脑等任何一种。
为了高效地对大规模的Transformer模型进行训练,提高对Transformer模型的训练效率,在本实施例中,首先需要基于至少一种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间。
可选地,所述预设并行训练策略包括以下至少一项:
a)数据并行训练策略;(data parallelism,DP);
b)分片数据并行训练策略(sharded data parallelism,SDP);
c)张量并行训练策略(tensor parallelism,TP);
d)流水并行训练策略(pipeline parallelism,PP)。
需要说明的是,并行训练策略搜索空间包括各预设并行训练策略的任意组合,在多GPU设备的场景下这种组合生成的训练策略搜索空间十分庞大。
例如,对于双机四卡的场景,一种可行的训练策略是在机内使用2-way TP,机间使用2-way PP;另一种可行的训练策略是在机内使用2-way PP,机间使用2-way DP。
当GPU设备数量扩展到8卡时,Transformer模型每一层的候选训练策略都多达上百种,而对于一个给定的Transformer模型,其并行训练策略搜索空间的规模是随着层数指数增长的,因此,在多GPU设备的场景下训练策略搜索空间十分庞大。
在上述实施方式中,通过将各预设并行策略进行组合,可以扩大初始Transformer模型的并行训练策略搜索空间,从而能够为初始Transformer模型提供更多可选地的并行训练策略组合。
步骤102、基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1。
在本实施例中,由于基于各预设并行训练策略,确定出的并行训练策略搜索空间十分庞大,因此,为了能够高效地在复杂庞大的并行训练策略搜索空间内,为给定的Transformer模型和分布式环境生成最佳的并行训练策略组合,需要基于各预设并行训练策略,构建至少一棵用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合的决策树,其中,决策树用于对并行训练策略搜索空间进行分解。
需要说明的是,决策树的构建遵循以下经验指导:
指导1)、PP倾向于被跨设备岛放置
具体地,设备岛是指具有高内部带宽的一组GPU设备,由于相比于其它并行,PP的通信量显著更少,因此横向切分Transformer模型后将PP放置于低通信带宽的设备岛之间是合理的。
指导2)、在同构设备的场景下,并行训练策略倾向于将GPU设备均匀切分
例如,对于4卡GPU的2-way DP,倾向于将GPU设备切分2组2卡的设备,而不是1组1卡和1组3卡的GPU设备。因此,一个设备组内的最优混合并行训练策略与其他组内的最优并行训练策略是相同的。
指导3)、单独使用SDP比混合使用DP和SDP更优
具体地,根据理论分析可得,N-way SDP的通信开销和内存开销均优于N1-way DP和N2-way SDP的组合,其中N=N1×N2。
步骤103、基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合。
在本实施例中,在基于各决策树,从并行训练策略搜索空间中确定出初始Transformer模型的并行训练策略集合之后,需要从并行训练策略集合中确定出吞吐率最高的目标并行训练策略组合。
步骤104、利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
本发明提供的Transformer模型的并行训练方法,通过将各预设并行策略进行组合,可以扩大初始Transformer模型的并行训练策略搜索空间,从而能够为初始Transformer模型提供更多可选地的并行训练策略组合;然后基于各预设并行训练策略组合,构建出至少一棵用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合的决策树,基于各决策树对并行训练策略搜索空间进行分解,减小了并行训练策略搜索空间中并行训练策略组合的选择范围,从而确定出初始Transformer模型的并行训练策略集合;基于训练策略集合,可以确定出并行训练策略集合中吞吐率最高的目标并行训练策略组合,利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对Transformer模型的训练效率。
可选地,所述基于各所述预设并行训练策略,构建至少一棵决策树,具体通过以下步骤1)-步骤2)实现:
步骤1)、利用所述流水并行训练策略,对所述初始Transformer模型进行切分,得到多个Transformer子模型;每一个所述Transformer子模型对应有至少一个设备组,所述设备组包括至少一个图形处理器设备;
步骤2)、针对每一个所述Transformer子模型,基于决策树构建规则构建与所述Transformer子模型对应的决策树;
其中,所述决策树构建规则包括以下至少一项:
a)所述决策树的根结点为所述数据并行训练策略;
b)所述决策树的每一层表示所述数据并行训练策略、所述分片数据并行训练策略及所述张量并行训练策略中的任一项;需要说明的是,决策树的高度表示可用的并行训练策略的数量;
c)所述决策树各层之间的预设并行训练策略不同;也就是说,并行训练策略在决策树不同层间不可重复使用;
d)所述决策树非叶结点的度数为2的指数次幂;例如,非叶结点的度数应该在2的指数次幂{2,4,8...}中选择;
e)所述决策树叶节点的总数为每一个所述设备组中所述图形处理器设备的数量。
具体地,针对一个给定的初始Transformer模型,基于上文提及的指导1)和指导2),首先利用PP,对初始Transformer模型切分成多个阶段,得到多个Transformer子模型,即一个阶段对应一个Transformer子模型;
同时,将多个GPU设备均匀且连续地切分为多个设备组,每一个Transformer子模型对应有至少一个设备组,设备组包括至少一个图形处理器设备。
例如在8卡场景下,初始Transformer模型被切分为1/2/4/8-way PP,则分别对应设备组大小为8/4/2/1。
需要说明的是,每种PP切分类型对应着一棵决策树及一个子搜索空间,所有子搜索空间共同构成并行训练策略搜索空间。
在将初始Transformer模型进行切分,得到多个Transformer子模型之后,便针对每一个Transformer子模型,基于决策树构建规则构建与Transformer子模型对应的决策树。
在上述实施方式中,通过利用流水并行训练策略,对初始Transformer模型进行切分,得到多个Transformer子模型;然后针对每一个Transformer子模型,基于决策树构建规则构建与Transformer子模型对应的决策树;各决策树能表示以上并行训练策略的任意组合且不重不漏。也就是说,基于各决策树对并行训练策略搜索空间进行分解,减小了并行训练策略搜索空间中并行训练策略的选择范围,从而确定出初始Transformer模型的并行训练策略集合。
可选地,根据上文提及的指导3)可知,单独使用SDP比混合使用DP和SDP更优,因此,在所述数据并行训练策略和所述分片数据并行训练策略存在于同一棵所述决策树的情况下,基于所述数据并行训练策略和所述分片数据并行训练策略对所述决策树进行剪枝处理。
在实际应用中,对于8卡GPU训练一层模型的场景,基于以上决策树构建规则,将生成34种候选的并行训练策略;
然后,使用指导3)将DP和SDP同时出现在一棵决策树的情形剪枝后,8卡候选并行训练策略的数量降至22种。
在上述实施方式中,在数据并行训练策略和分片数据并行训练策略存在于同一棵所述决策树的情况下,基于数据并行训练策略和分片数据并行训练策略对决策树进行剪枝处理,可以有效规避低效的并行训练策略组合,进一步减小并行训练策略搜索空间中并行训练策略的选择范围,进而确定出更精确的并行训练策略集合。
可选地,在基于各决策树,从并行训练策略搜索空间中确定出初始Transformer模型的并行训练策略集合之后,需要从并行训练策略集合中确定出吞吐率最高的目标并行训练策略,具体可以通过以下步骤[1]-步骤[2]实现:
步骤[1]、针对每一个所述Transformer子模型,利用动态规划搜索算法,从所述并行训练策略集合中确定各所述Transformer子模型的第一并行训练策略组合;所述第一并行训练策略组合为时间开销最小的并行训练策略;
步骤[2]、在各所述第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为所述目标并行训练策略组合。
在本实施例中,对于给定的L层Transformer子模型M和内存容量为E的N个GPU设备,需要确定出吞吐率最高的并行训练策略组合作为最优的目标并行训练策略组合;其中,吞吐率等于批量大小(batch size)与执行时间的比值。由于不同并行训练策略在不同batch size下有着不同的内存、计算、通信开销,最高吞吐率的目标并行训练策略组合不一定出现在最大的batch size处,因此需要对batch size进行遍历搜索。
具体地,在利用PP对初始Transformer模型进行切分,生成P个阶段(即P个Transformer子模型)之后,初始Transformer模型对应的GPU设备也分切分为P组,每组含有N/P个GPU设备。
然后针对每一个Transformer子模型,基于决策树构建规则构建与各Transformer子模型对应的决策树,由于决策树能够不重不漏地表示出DP、SDP、TP的任意组合,因此,基于各决策树能够从并行训练策略搜索空间中确定出初始Transformer模型的并行训练策略集合S。
在得到并行训练策略集合S之后,针对每一个Transformer子模型,利用动态规划搜索算法,从并行训练策略集合中确定各Transformer子模型对应的时间开销最小的第一并行训练策略组合;
最后在各第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为目标并行训练策略。
可选地,所述动态规划搜索算法通过以下公式(1)表示:
其中,L表示所述Transformer子模型的层数;E表示所述图形处理器设备的内存限制;S表示所述训练策略集合;Sj表示所述Transformer子模型中第L层使用的并行训练策略;C(L,E)表示所述Transformer子模型中第L层在所述图形处理器设备的内存限制下的总执行时间;O(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的内存开销;c(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的执行时间;R(L,Si,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj、第L-1层使用并行训练策略Si带来的转换开销;其中,C(L,E)为开销函数,设定初始值C(0,.)=0,C(.,0)=∞;在状态转移过程中,当内存开销超过设备内存限制E的情况下,开销函数C返回无穷大。
需要说明的是,Transformer子模型每一层的子搜索空间的大小对于整体并行训练策略搜索空的搜索复杂度非常重要,基于决策树的搜索空间分解能够显著减小搜索空间,控制搜索开销在合理范围内。
在本发明实施例一种可能的实现方式中,Transformer子模型中第L层使用并行训练策略Sj的内存开销可以基于张量的形状和数据类型来确定。
Transformer子模型中第L层使用并行训练策略Sj的执行时间可以通过以下方式得到:
首先,需要对使用并行训练策略Sj的计算时间、通信开销进行估计。
1)对于计算时间:
需要基于batch size和逐样本计算时间的乘积来模拟总计算时间,其中,逐样本计算时间可以在单设备上profiling测量得到;另外,由于Transformer模型主要由矩阵乘法组成,故其反向传播计算时间通常为正向计算的两倍。
2)对于通信开销:
通过通信量除以GPU设备通信带宽得到预估的通信开销,其中通信量由理论计算得到,通信带宽由profiling测量得到。
然后,基于计算时间及通信开销,确定出Transformer子模型中第L层使用并行训练策略Sj的执行时间c(L,Sj),其包含两个步骤,即正向传播和反向传播。
对于正向传播,将预估的计算时间和通信开销(例如SDP中的all-gather和TP中的all-reduce)相加即可。
对于反向传播,考虑了计算时间和通信开销的重叠,并考虑到了这种重叠带来的GPU性能下降,反向传播取计算时间和通信开销的最大值,这也使开销估计更加准确,并行优化效果更佳。
可选地,在本发明实施例一种可能的实现方式中,本发明提供的Transformer模型的并行训练方法可以应用在一个逐层的混合并行大规模Transformer模型训练框架,该Transformer模型训练框架允许模型每一层使用不同的并行训练策略。
需要说明的是,由于该Transformer模型训练框架支持复杂的并行训练策略,不同并行训练策略需要在不同的GPU设备组内通信,这使得通信组数量非常庞大,因此需要维护一个全局通信组池,所有通信组在训练前创建并为所有层共享。
该Transformer模型训练框架可以进行层间并行训练策略的转换,从而支持不同层使用不同的并行训练策略。
实际应用中,在前一层使用并行训练策略A、当前层使用并行训练策略B的情况下,需要确保当前层的输入激活值根据并行训练策略B的需求放置在正确的GPU设备上。
具体而言,需要将前一层的输出激活值切分为若干份并根据并行训练策略B的需求移除冗余部分;然后使用all-gather通信让各GPU设备从其他GPU设备上收集需要用到的激活值。
在上述实施方式中,针对每一个Transformer子模型,通过利用动态规划搜索算法,从并行训练策略集合中确定各Transformer子模型时间开销最小的第一并行训练策略组合;然后在各第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为目标并行训练策略组合;通过上述方法,基于训练策略集合,可以确定出并行训练策略集合中吞吐率最高的目标并行训练策略组合,利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对Transformer模型的训练效率。
图2是本发明提供的Transformer模型的并行训练方法的流程示意图之二,参见图2所示,包括步骤201-步骤207,其中:
步骤201、基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;其中,并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数。
具体地,预设并行训练策略包括以下至少一项:a)数据并行训练策略;b)分片数据并行训练策略;c)张量并行训练策略;d)流水并行训练策略。
步骤202、利用流水并行训练策略,对初始Transformer模型进行切分,得到多个Transformer子模型;每一个Transformer子模型对应有至少一个设备组,其中,设备组包括至少一个图形处理器设备。
步骤203、针对每一个Transformer子模型,基于决策树构建规则构建与Transformer子模型对应的决策树,其中,各决策树用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合;并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1。
具体地,决策树构建规则包括以下至少一项:
a)决策树的根结点为数据并行训练策略;
b)决策树的每一层表示数据并行训练策略、分片数据并行训练策略及张量并行训练策略中的任一项;
c)决策树各层之间的预设并行训练策略不同;
d)决策树非叶结点的度数为2的指数次幂;
e)决策树叶节点的总数为每一个设备组中图形处理器设备的数量。
步骤204、在数据并行训练策略和分片数据并行训练策略存在于同一棵决策树的情况下,基于数据并行训练策略和分片数据并行训练策略对决策树进行剪枝处理。
步骤205、针对每一个Transformer子模型,利用动态规划搜索算法,从并行训练策略集合中确定各Transformer子模型的第一并行训练策略组合。
具体地,第一并行训练策略组合为时间开销最小的并行训练策略组合。
步骤206、在各第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为目标并行训练策略组合。
步骤207、利用目标并行训练策略组合对初始Transformer模型进行训练,得到目标Transformer模型。
本发明提供的Transformer模型的并行训练方法,通过将各预设并行策略进行组合,可以扩大初始Transformer模型的并行训练策略搜索空间,从而能够为初始Transformer模型提供更多可选地的并行训练策略组合;然后基于各预设并行训练策略组合,构建出至少一棵用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合的决策树,基于各决策树对并行训练策略搜索空间进行分解,减小了并行训练策略搜索空间中并行训练策略组合的选择范围,从而确定出初始Transformer模型的并行训练策略集合;同时,在数据并行训练策略和分片数据并行训练策略存在于同一棵所述决策树的情况下,基于数据并行训练策略和分片数据并行训练策略对决策树进行剪枝处理,可以有效规避低效的并行训练策略组合,进一步减小并行训练策略搜索空间中并行训练策略组合的选择范围,进而确定出更精确的并行训练策略集合;基于训练策略集合,可以确定出并行训练策略集合中吞吐率最高的目标并行训练策略组合,利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对Transformer模型的训练效率。
下面对本发明提供的Transformer模型的并行训练装置进行描述,下文描述的Transformer模型的并行训练装置与上文描述的Transformer模型的并行训练方法可相互对应参照。图3是本发明提供的Transformer模型的并行训练装置的结构示意图,如图3所示,该Transformer模型的并行训练装置300包括:第一确定模块301、构建模块302、第二确定模块303、训练模块304,其中:
第一确定模块301,用于基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;
构建模块302,用于基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;
第二确定模块303,用于基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;
训练模块304,用于利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
本发明提供的Transformer模型的并行训练装置,通过将各预设并行策略进行组合,可以扩大初始Transformer模型的并行训练策略搜索空间,从而能够为初始Transformer模型提供更多可选地的并行训练策略组合;然后基于各预设并行训练策略组合,构建出至少一棵用于从并行训练策略搜索空间中确定初始Transformer模型的并行训练策略集合的决策树,基于各决策树对并行训练策略搜索空间进行分解,减小了并行训练策略搜索空间中并行训练策略组合的选择范围,从而确定出初始Transformer模型的并行训练策略集合;基于训练策略集合,可以确定出并行训练策略集合中吞吐率最高的目标并行训练策略组合,利用吞吐率最高的目标并行训练策略组合对初始Transformer模型进行训练,提高了对Transformer模型的训练效率。
可选地,所述预设并行训练策略包括以下至少一项:
数据并行训练策略;
分片数据并行训练策略;
张量并行训练策略;
流水并行训练策略。
可选地,构建模块302,进一步用于:
利用所述流水并行训练策略,对所述初始Transformer模型进行切分,得到多个Transformer子模型;每一个所述Transformer子模型对应有至少一个设备组,所述设备组包括至少一个图形处理器设备;
针对每一个所述Transformer子模型,基于决策树构建规则构建与所述Transformer子模型对应的决策树;
其中,所述决策树构建规则包括以下至少一项:
所述决策树的根结点为所述数据并行训练策略;
所述决策树的每一层表示所述数据并行训练策略、所述分片数据并行训练策略及所述张量并行训练策略中的任一项;
所述决策树各层之间的预设并行训练策略不同;
所述决策树非叶结点的度数为2的指数次幂;
所述决策树叶节点的总数为每一个所述设备组中所述图形处理器设备的数量。
可选地,所述装置还包括:
处理模块,用于在所述数据并行训练策略和所述分片数据并行训练策略存在于同一棵所述决策树的情况下,基于所述数据并行训练策略和所述分片数据并行训练策略对所述决策树进行剪枝处理。
可选地,第二确定模块303,进一步用于:
针对每一个所述Transformer子模型,利用动态规划搜索算法,从所述并行训练策略集合中确定各所述Transformer子模型的第一并行训练策略组合;所述第一并行训练策略组合为时间开销最小的并行训练策略组合;在各所述第一并行训练策略组合中,将吞吐率最高的并行训练策略组合确定为所述目标并行训练策略。
可选地,所述动态规划搜索算法通过以下公式(1)表示:
其中,L表示所述Transformer子模型的层数;E表示所述图形处理器设备的内存限制;S表示所述训练策略集合;Sj表示所述Transformer子模型中第L层使用的并行训练策略;C(L,E)表示所述Transformer子模型中第L层在所述图形处理器设备的内存限制下的总执行时间;O(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的内存开销;c(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的执行时间;R(L,Si,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj、第L-1层使用并行训练策略Si带来的转换开销。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行Transformer模型的并行训练方法,该方法包括:基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;基于所述训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的Transformer模型的并行训练方法,该方法包括:基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;基于所述训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的Transformer模型的并行训练方法,该方法包括:基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;基于所述训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Transformer模型的并行训练方法,其特征在于,包括:
基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;
基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;
基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;
利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
2.根据权利要求1所述的Transformer模型的并行训练方法,其特征在于,所述预设并行训练策略包括以下至少一项:
数据并行训练策略;
分片数据并行训练策略;
张量并行训练策略;
流水并行训练策略。
3.根据权利要求2所述的Transformer模型的并行训练方法,其特征在于,所述基于各所述预设并行训练策略,构建至少一棵决策树,包括:
利用所述流水并行训练策略,对所述初始Transformer模型进行切分,得到多个Transformer子模型;每一个所述Transformer子模型对应有至少一个设备组,所述设备组包括至少一个图形处理器设备;
针对每一个所述Transformer子模型,基于决策树构建规则构建与所述Transformer子模型对应的决策树;
其中,所述决策树构建规则包括以下至少一项:
所述决策树的根结点为所述数据并行训练策略;
所述决策树的每一层表示所述数据并行训练策略、所述分片数据并行训练策略及所述张量并行训练策略中的任一项;
所述决策树各层之间的预设并行训练策略不同;
所述决策树非叶结点的度数为2的指数次幂;
所述决策树叶节点的总数为每一个所述设备组中所述图形处理器设备的数量。
4.根据权利要求3所述的Transformer模型的并行训练方法,其特征在于,所述方法还包括:
在所述数据并行训练策略和所述分片数据并行训练策略存在于同一棵所述决策树的情况下,基于所述数据并行训练策略和所述分片数据并行训练策略对所述决策树进行剪枝处理。
5.根据权利要求3或4所述的Transformer模型的并行训练方法,其特征在于,所述基于所述并行训练策略集合,确定目标并行训练策略组合,包括:
针对每一个所述Transformer子模型,利用动态规划搜索算法,从所述并行训练策略集合中确定各所述Transformer子模型的第一并行训练策略组合;所述第一并行训练策略为时间开销最小的并行训练策略组合;
在各所述第一并行训练策略组合中,将吞吐率最高的并行训练策略确定为所述目标并行训练策略组合。
6.根据权利要求5所述的Transformer模型的并行训练方法,其特征在于,所述动态规划搜索算法通过以下公式(1)表示:
其中,L表示所述Transformer子模型的层数;E表示所述图形处理器设备的内存限制;S表示所述训练策略集合;Sj表示所述Transformer子模型中第L层使用的并行训练策略;C(L,E)表示所述Transformer子模型中第L层在所述图形处理器设备的内存限制下的总执行时间;O(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的内存开销;c(L,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj的执行时间;R(L,Si,Sj)表示所述Transformer子模型中第L层使用并行训练策略Sj、第L-1层使用并行训练策略Si带来的转换开销。
7.一种Transformer模型的并行训练装置,其特征在于,包括:
第一确定模块,用于基于M种预设并行训练策略,确定初始Transformer模型的并行训练策略搜索空间;所述并行训练策略搜索空间包括N1个并行训练策略组合,每个并行训练策略组合包括N2种预设并行训练策略;M、N1为大于1的正整数,N2为大于或等于1且小于或等于M的正整数;
构建模块,用于基于各所述预设并行训练策略,构建至少一棵决策树;各所述决策树用于从所述并行训练策略搜索空间中确定所述初始Transformer模型的并行训练策略集合;所述并行训练策略集合中包括N3个并行训练策略组合,N3为大于或等于1的正整数,N3小于N1;
第二确定模块,用于基于所述并行训练策略集合,确定目标并行训练策略组合;所述目标并行训练策略组合为所述并行训练策略集合中吞吐率最高的并行训练策略组合;
训练模块,用于利用所述目标并行训练策略组合对所述初始Transformer模型进行训练,得到目标Transformer模型。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述Transformer模型的并行训练方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述Transformer模型的并行训练方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述Transformer模型的并行训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211441633.7A CN116128019A (zh) | 2022-11-17 | 2022-11-17 | Transformer模型的并行训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211441633.7A CN116128019A (zh) | 2022-11-17 | 2022-11-17 | Transformer模型的并行训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116128019A true CN116128019A (zh) | 2023-05-16 |
Family
ID=86301614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211441633.7A Pending CN116128019A (zh) | 2022-11-17 | 2022-11-17 | Transformer模型的并行训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116128019A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112145A (zh) * | 2023-10-16 | 2023-11-24 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
-
2022
- 2022-11-17 CN CN202211441633.7A patent/CN116128019A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112145A (zh) * | 2023-10-16 | 2023-11-24 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
CN117112145B (zh) * | 2023-10-16 | 2024-02-13 | 之江实验室 | 训练模型分配方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659728B (zh) | 神经网络优化方法、装置、计算机设备及存储介质 | |
EP4036724A1 (en) | Method for splitting neural network model by using multi-core processor, and related product | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
EP4036803A1 (en) | Neural network model processing method and apparatus, computer device, and storage medium | |
CN110533183B (zh) | 流水线分布式深度学习中异构网络感知的任务放置方法 | |
US20180260710A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
US20190332731A1 (en) | Method and system for quantum computing | |
EP3979143A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
CN111242282A (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN106156851B (zh) | 面向深度学习业务的加速装置及方法 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN111401510A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111401538A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN111401539A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN116644804B (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
Tanaka et al. | Automatic graph partitioning for very large-scale deep learning | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN116128019A (zh) | Transformer模型的并行训练方法及装置 | |
WO2020103883A1 (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
CN116755876A (zh) | 一种大模型混合并行训练加速方法和系统 | |
EP4009240A1 (en) | Method and apparatus for performing deep learning operations | |
CN109213592B (zh) | 一种基于自动选择副本因子模型的图计算方法 | |
CN113033827B (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 |