CN114841327A - 计算图的处理方法、装置、可读介质及电子设备 - Google Patents

计算图的处理方法、装置、可读介质及电子设备 Download PDF

Info

Publication number
CN114841327A
CN114841327A CN202210594641.9A CN202210594641A CN114841327A CN 114841327 A CN114841327 A CN 114841327A CN 202210594641 A CN202210594641 A CN 202210594641A CN 114841327 A CN114841327 A CN 114841327A
Authority
CN
China
Prior art keywords
graph
segmentation
operator
parallel
target
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
Application number
CN202210594641.9A
Other languages
English (en)
Inventor
彭杨华
荣懿
朱亦博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Lemon Inc Cayman Island
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Lemon Inc Cayman Island
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, Lemon Inc Cayman Island filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202210594641.9A priority Critical patent/CN114841327A/zh
Publication of CN114841327A publication Critical patent/CN114841327A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种计算图的处理方法、装置、可读介质及电子设备,该计算图的处理方法通过获取待训练的机器学习模型对应的目标计算图,对该目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;根据每种算子节点的多种预设切分方式,对该融合计算图中的算子节点进行有效切分,以得到该融合计算图对应的多种切分数据流图,该切分数据流图为带有有效切分方式的目标计算图;然后根据该切分数据流图搜索该目标计算图对应的并行配置策略,如此能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。

Description

计算图的处理方法、装置、可读介质及电子设备
技术领域
本公开涉及数据处理领域,具体地,涉及一种计算图的处理方法、装置、可读介质及电子设备。
背景技术
机器学习作为任务自动化的强大工具,能够使各种类型的应用实现任务自动化,也正是因此,近年来机器学习,尤其是深度神经网络被广泛应用于各种极具挑战性的任务处理中,如计算机视觉、自然语言处理、语音识别等,并且都取得了重大突破。然而,随着神经网络应用的进一步深化,神经网络模型的参数和计算量也越来越大,神经网络模型的训练时间也因此而延长,随之如何高效地训练神经网络模型成为了亟待解决的技术问题。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开提供一种计算图的处理方法、装置、可读介质及电子设备。
第一方面,本公开提供一种计算图的处理方法,所述方法包括:
获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
第二方面,本公开提供一种计算图的处理装置,所述装置包括:
获取模块,被配置为获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
图融合模块,被配置为对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
切分模块,被配置为根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
搜索模块,被配置为根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
第三方面,本公开提供一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现以上第一方面所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现以上第一方面所述方法的步骤。
上述技术方案,通过获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;然后根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型,能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。在附图中:
图1是本公开一示例性实施例示出的一种计算图的处理方法的流程图;
图2a是本公开一示例性实施例示出的节点融合处理示意图;
图2b为本公开一示例实施例示出的一种切分数据流图的示例图;
图3是根据图1所示实施例示出的一种计算图的处理方法的流程图;
图4是本公开一示例性实施例示出的一种有向边的标注示意图;
图5是根据图1所示实施例示出的另一种计算图的处理方法的流程图;
图6是本公开一示例性实施例中示出的算子节点的粗粒度处理示意图;
图7是本公开一示例性实施例示出的一种计算图的处理装置的框图;
图8是本公开一示例性实施例示出的一种电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
同时,可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
在详细介绍本公开的具体实施方式之前,首先对本公开的应用场景进行以下说明,本公开可以应用于确定机器学习模型并行训练策略的过程中,该机器学习模型可以是神经网络模型、决策树模型或者贝叶斯算法模型等,以神经网络为例,通常为了提升机器学习模型的训练效率,会在多个硬件加速器(如GPU(graphics processing unit,图形处理器)、TPU(Tensor Processing Unit,张量处理器)上并行地训练神经网络。目前主要有三种并行训练方式,分别是:Data Parallel(数据并行),Model Parallel(模型并行)、PipelineParallel(流水并行),其中,数据并行是指把数据划分成若干块分别映像到不同的处理器上,每一台处理器运行同样的处理程序对所分派的数据进行处理,即将训练数据集切分后映射在多个计算设备上,每个计算设备都有完整的模型,计算设备间通过一些通信原语来汇聚全局梯度,并更新参数。模型并行是对神经网络模型的参数(如Linear/Dense Layer里的变量)进行切分,将单个大的模型参数切分到多个计算设备上进行并行计算。流水并行是利用神经网络按层堆叠式的特点,将整个深度学习模型分段,不同段在不同的设备上,前后阶段流水分批工作,通过一种接力的方式并行。一个深度神经网络的分布式训练可以只用某一种并行方式,也可以混合使用不同并行方式(例如对于卷积分类网络,前面几层网络使用数据并行,最后一层使用模型并行)。
相关技术中,在确定模型训练的并行方案时,要么是人为手动设置,要么是对其中的两种并行方式进行混合,无法自动实现三种并行方式的全面混合并行,因此不利于更好地提升神经网络模型的训练效率,不能进一步缩短神经网络模型的训练时长。
为了解决以上技术问题,本公开提供一种计算图的处理方法、装置、可读介质及电子设备,该计算图的处理方法通过获取待训练的机器学习模型对应的目标计算图,对该目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;根据每种算子节点的多种预设切分方式,对该融合计算图中的算子节点进行有效切分,以得到该融合计算图对应的多种切分数据流图,该切分数据流图为带有有效切分方式的目标计算图;然后根据该切分数据流图搜索该目标计算图对应的并行配置策略,该并行配置策略包括流水并行集合,数据并行集合和模型并行集合,如此能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
下面结合具体实施例对本公开的技术方案进行详细阐述。
图1是本公开一示例性实施例示出的一种计算图的处理方法的流程图;如图1所示,该方法可以包括:
步骤101,获取待训练的机器学习模型对应的目标计算图,该目标计算图包括算子节点以及连接两个算子节点的有向边。
其中,该计算图的处理方法可以应用于终端,也可以应用于服务器上,该机器学习模型可以是神经网络模型、决策树模型或者贝叶斯算法模型,还可以是现有技术中的其他机器学习模型。该算子节点可以是卷积算子节点,激活函数节点,加法算子节点,减法算子节点,乘法算子节点,除法算子节点,乘方算子节点,对数算子节点,函数算子节点,数组算子节点,极限算子节点,导数算子节点,积分算子节点等。该有向边可以表征两个算子节点之间数据的传递方向。
本步骤中,可以通过预设接口获取该目标计算图,例如,通过预设接口访问外部存储设备,并从该外部存储设备中读取该目标计算图。
步骤102,对该目标计算图进行节点融合处理,以得到包括多个子图的融合计算图。
本步骤中,可以通过预设动态图融合算法,以该多个子图之间的通信数据量最少,不同子图对应的计算量均衡为优化目标,以每个子图为闭包图为约束条件,确定该目标计算图对应的多个目标子图,以得到包括该多个目标子图的该融合计算图。
其中,该预设动态图融合算法可以是Kernighan-Lin(KL)算法,多个子图之间的通信数据量为不同子图之间进行数据交互时产生的数据量。不同子图对应的计算量均衡可以通过不同的子图对应计算时长的差值确定,例如,在任两个子图的计算时长的差值均小于或者等于预设差值阈值的情况下,确定不同子图对应的计算量均衡。闭包图用于表征除输入和输出外,执行过程中无需与其他子图通信的子图。
示例地,图2a是本公开一示例性实施例示出的节点融合处理示意图,如图2a所示,可以将该整张计算图从第一个算子节点(dateinput,数据输入节点)到最后一个算子节点(loss,损失计算节点)划分为3个子图,其中,子图1的输出作为子图2的输入,子图2的输出作为子图3的输入,子图1,子图2,子图3均为闭包图,且子图1,子图2以及子图3中,子图1的计算时长与子图2的计算时长的差值小于预设差值阈值,子图2的计算时长与子图3的计算时长的差值小于预设差值阈值,子图1的计算时长与子图3的计算时长的差值小于预设差值阈值。
步骤103,根据每种算子节点的多种预设切分方式,对该融合计算图中的算子节点进行有效切分,以得到该融合计算图对应的多种切分数据流图。
其中,该切分数据流图为带有有效切分方式的目标计算图,该预设切分方式可以是任意维度的合法切分(有效切分),例如不切分(表示复制该张量)、沿着张量第一维切分、沿着张量第二维切分或者其他维度切分,或者混合维度切分(例如矩阵乘算子的第一个输入张量切第二维,第二个输入张量切第一维),还可以是现有技术中可行的其他切分方式。切分时可能需要通过集合通信来汇聚各分片的计算结果。只要切分后能保证算子语义的相同(即切分前后的计算结果相同),则都可视为合法切分(有效切分)。为将切分方式编码进数据流图,我们将目标计算图进行形式转换,以得到目标计算图对应的数据流图,并在该数据流图中添加切分维度属性,形成切分数据流图。该切分数据流图中的节点为融合计算图中算子节点对应的输入张量和输出张量,且该切分数据流图中的节点携带有张量可切分的维度属性。
示例地,该加法算子有两个输入张量,一个输出张量,每个张量可切分的维度包括(一维切分、二维切分和三维切分),则可以用图2b(图2b为本公开一示例实施例示出的一种切分数据流图的示例图;)中所示的标注方式标注该加法算子节点关联的所有张量(张量节点1和张量节点2,张量节点3),以及该加法算子节点关联的所有张量之间的连接。其中,不同的连线方式表征该加法算子不同的切分方式,例如,即在切分数据流图节点表示(张量,可切分的维度),连线表示(算子,切分方式)。例如,如果某种算子的合法切分方式是沿着第一个张量的第二维和沿着第二个张量的第一维进行切分,则我们在两个节点(张量1,维度2)和(张量2,维度1)之间加一条连线,即用该连线表征沿着第一个张量的第二维和沿着第二个张量的第一维进行切分的合法切分方式。不同的预设切分方式可以用不同的标注方式标注,例如用不同的线型标注(以加法算子节点为例,如图2b所示,加法算子节点的一维切分用虚线标注,这里加法算子节点对应的一维切分方式是指加法算子节点的每个张量都按第一维切分,二维切分用实线标注,即加法算子节点的每个张量都按第二维切分,三维切分用点画线标注,即加法算子节点的每个张量都按第三维切分),用不同的颜色标注(例如,加法算子节点的一维切分用红色标注,加法算子节点的二维切分用蓝色标注),也可以用同一种线型的不同线宽标注(例如,加法算子节点的一维切分用0.5cm的线宽标注,加法算子节点的二维切分用0.7cm的线宽标注)。
本步骤中,可以以每种算子节点对应的多种该预设切分方式分别切分该融合计算图中的算子节点,然后通过预设的有效切分判断策略,依次遍历该融合计算图中的每个算子节点,排除无效的切分方式,以得到该融合计算图对应的有效切分方式,从而得到该带有有效切分方式的切分数据流图。
需要说明的是,该预设的有效切分判断策略可以包括存在直接地数据依赖关系的两个算子节点需采用相同的切分方式切分,例如算子节点A为加法算子,该加法算子采用一维切分方式切分,即将算子节点A的输入张量和输出张量均切分为一维数组,那么若算子节点A的输出作为减法算子节点(算子节点B)的输入,那么该减法算子节点的切分方式应该为一维切分,且与该减法算子节点存在直接数据依赖关系的其他算子节点(例如算子节点C向该算子节点B提供另一个减法参数)也应该采用一维切分方式切分,如此,遍历每个算子节点,确定每个算子节点在该融合计算图中的有效切分方式,从而得到该切分数据流图。需要强调的是,每种算子节点的有效切分均为现有技术中的公知常识,本公开在此不再赘述。
步骤104,根据该切分数据流图搜索该目标计算图对应的并行配置策略,该并行配置策略包括流水并行集合,数据并行集合和模型并行集合,该并行配置策略用于并行训练该机器学习模型。
本步骤中,可以对每种该切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图;根据该待定数据流图通过动态规划算法确定该目标计算图对应的流水并行集合,数据并行集合和模型并行集合。其中,该动态规划算法可以是现有技术中的两层动态规划算法。
通过以上步骤101至步骤104所示的方案,能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
图3是根据图1所示实施例示出的一种计算图的处理方法的流程图;如图3所示,图1中步骤103所述的根据每种算子节点的多种预设切分方式,对该融合计算图中的算子节点进行有效切分,以得到该融合计算图对应的多种切分数据流图,可以包括:
步骤1031,将该融合计算图中每个算子节点的输入张量和输出张量表示为张量节点。
本步骤的实施方式,可以参见以上图2b所示的相关描述,本公开在此不再赘述。
步骤1032,在该张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示该算子节点的多种预设切分方式,以得到该切分数据流图。
其中,每种算子节点对应的每种预设切分方式包括对该算子节点中每个张量的切分维度属性。
示例地,若加法算子节点对应的多种预设切分方式包括切分第一维(即加法算子节点的每个张量都按第一维切分),切分第二维(即加法算子节点的每个张量都按第二维切分),切分第三维(即加法算子节点的每个张量都按第三维切分),则可以分别以切分第一维、切分第二维、切分第三维的方式分别对融合计算图中的加法算子节点进行切分。若矩阵乘算子节点对应的多种预设切分方式包括将第一个输入张量切第二维,并且第二个输入张量切第一维,则可以通过该切分方式对融合计算图中的矩阵乘算子节点进行切分。
以上步骤1032可以通过以下S11至S14所示方法实现:
S11,用同一种标注方式标注采用相同切分方式切分的同一个算子节点关联的所有张量节点之间的连线。
其中,该连线可以用于表征切分方式属性。一个算子节点所关联的张量包括该算子的所有输入张量和所有输出张量。
S12,用不同的标注方式区分每个算子对应不同切分方式的连接。
本步骤中,可以按照每个算子节点的切分方式属性标注该连线。
示例地,不同的切分方式属性可以用不同的线型标注,例如,如图4所示(图4是本公开一示例性实施例示出的一种边的标注示意图)第一种切分方式的连线用实线标注,第二种切分方式的连线用虚线标注,第三种切分方式的连线用点画线标注等,同一个连线可能被用多种标注方式同时标注;也可以给不同切分方式属性的连线着上不同的颜色,即用不同的颜色标注不同切分方式属性的连线,例如,第一种切分方式的连线用红色标注,第二种切分方式的连线用蓝色标注,第三种切分方式的连线用绿色标注等;还可以用同一种线型的不同线宽标注不同切分方式属性的连线。例如,第一种切分方式的连线用0.5cm的线宽标注,第二种切分方式的连线用0.7cm的线宽标注,第三种切分方式的连线用0.9cm的线宽标注等。其中,第一种切分方式可以是一个算子节点关联的所有张量节点都按第一维切分,第二种切分方式可以是一个算子节点关联的第一个张量节点按第一维切,第二张量节点按第二维切,第三种切分方式可以是一个算子节点关联的所有张量节点都按第二维切分。以上示例中的具体赋值仅用于示例性的说明如何用不同的标注方式区分每个算子节点对应不同切分方式的连线,并不用于限定具体的保护范围。
S13,根据标注有切分方式的连线确定所述融合计算图对应的多种有效切分方式。
其中,依次遍历该融合计算图中的每个算子节点,将不同算子节点的每种标注方式的连线组合,以得到多种有效切分方式。
S14,将所述融合计算图对应的每种有效切分方式作为一种切分数据流图,以得到多种所述切分数据流图。
示例地,若一个融合计算图中包括算子节点1,算子节点2至算子节点50,该50个算子节点包括加法算子节点,减法算子节点,乘法算子节点,以及除法算子节点,其中,预先设置了加法算子节点,减法算子节点,乘法算子节点,以及除法算子节点各自的多种预设切分方式(例如,均为一维切分、二维切分和三维切分)。那么每个算子节点均以一维切分方式、二维切分方式和三维切分方式进行切分,然后遍历每个算子节点,至少可以得到全部算子节点均采用一维切分方式切分的切分数据流图,全部算子节点均采用二维切分方式切分的切分数据流图,以及全部算子节点均采用三维切分方式切分的切分数据流图,还可能得到三种切分方式混合的其他切分数据流图,由于不同的计算图拓扑会对应不同的合法切分方式,因此本公开这里对具体得到哪些切分数据流图不作限定。
以上技术方案,通过用用同一种标注方式标注采用相同切分方式切分的同一个算子节点关联的所有张量节点之间的连线;用不同的标注方式区分每个算子节点对应不同切分方式的连线,然后根据标注有切分方式的连线确定所述融合计算图对应的多种有效切分方式;将所述融合计算图对应的每种有效切分方式作为一种切分数据流图,以得到多种所述切分数据流图,能够有效提升获取到整个计算图的有效切分方式的速度,有利于提升生成全面混合并行的模型训练策略的效率。
图5是根据图1所示实施例示出的另一种计算图的处理方法的流程图;如图5所示,图1中步骤104所述的根据该切分数据流图搜索该目标计算图对应的并行配置策略,该并行配置策略包括流水并行集合,数据并行集合和模型并行集合,可以包括以下步骤:
步骤1041,对每种该切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图。
本步骤中,一种可能的实施方式为,通过预设归约算法对切分数据流图进行归约处理,以得到该待定数据流图,该预设归约算法可以是现有技术中的任一数据归约算法,现有的专利和论文中涉及到的数据归约算法较多,本公开在此不再赘述。
另一种可能的实施方式可以包括以下S1至S3所示步骤:
S1,获取该目标计算图中每个算子节点对应的计算时间属性。
其中,该目标计算图中的算子节点为不带切分方式属性的算子节点,该计算时间属性为每个算子节点未切分时的执行时间。
需要说明的是,目前深度学习框架通常会自带工具,可以通过该自带工具测量每个算子节点的执行时间和内存消耗,以及每条有向边表示的数据量大小,在实施S1的过程中,可以用自带工具测量该目标计算图中每个算子节点对应的计算时间属性。
S2,根据该计算时间属性确定该切分数据流图中每个算子节点对应的消耗时间属性。
其中,根据该目标计算图中每个算子节点的切分方式和该计算时间属性,通过预设映射关系确定该节点算子在该切分数据流图中的目标计算时间属性;获取该切分数据流图中每个算子节点对应的通信时间属性;根据该目标计算时间属性和该通信时间属性确定该消耗时间属性。
需要说明的是,该预设映射关系用于表征目标计算图中未切分时每个算子节点的计算时间属性与按照预设切分方式切分后的算子节点的目标计算时间属性的函数关系,该函数关系可以是线性关系(例如,比例关系,一次函数关系,二次函数关系等),也可以是非线性关系。
示例地,若目标计算图中的算子节点A在未被切分时,执行时间(即计算时间属性)为20秒,将该算子节点A切分为维度相同的两半,则该切分后的算子节点A对应的目标计算时间属性可以是20秒的一半,即每个算子节点被切分之后,每个算子节点的计算时间可以是等比例的调整。
另外,还需说明的是,该算子节点对应的通信时间属性可以通过以下方式获取得到:一种获取方式是,将该目标计算图对应的融合计算图在待用的设备拓扑网络中试运行一下,以得到每个算子节点的通信时间,即得到该算子节点的通信时间属性;另一种获取方式是,先通过该深度学习框架的自带工具测量每个算子节点的数据量,然后根据预设的通信速度,计算传输该数据量需要的通信时间,从而得到该算子节点的通信时间属性。
再者,以上所述的根据该目标计算时间属性和该通信时间属性确定该消耗时间属性的实施方式可以是,将该目标计算时间属性对应的属性值(即切分后的执行时间)与该通信时间属性对应的属性值(通信时间)的和值作为该消耗时间属性的属性值。
S3,根据每个算子节点对应的消耗时间属性对该切分数据流图中的该算子节点进行粗粒度处理,以得到该待定数据流图。
示例地,图6是本公开一示例性实施例中示出的算子节点的粗粒度处理示意图,如图6中的第一行的左图所示,算子节点Vj至算子节点Vi再到算子节点Vk,若算子节点Vj到算子节点Vi的消耗时间属性的属性值为COSTji,算子节点Vi到算子节点Vk的消耗时间属性的属性值为COSTik,则该算子节点Vj至算子节点Vi再到算子节点Vk可以归约为算子节点Vj至算子节点Vk,算子节点Vj至算子节点Vk对应的消耗时间属性更新为COSTji+COSTik;同理按照消耗时间属性对应属性值等价的原理可以实现其他算子节点的粗粒度处理,如图6中的第一行的右图可以将原计算图中算子节点Vi到算子节点Vj中的两条有向边粗粒度化为一条有向边,该粗粒度化的有向边对应的消耗时间属性等于粗粒度之前两条有向边的消耗时间属性值的和值。
以上S1至S3所示的步骤,能够有效得到粗粒度处理后的待定数据流图,有利于为后续并行配置策略的生成提供可靠的数据依据。
步骤1042,根据该待定数据流图通过动态规划算法确定该目标计算图对应的流水并行集合,数据并行集合和模型并行集合。
本步骤中,可以通过以下S4至S6所示步骤实施,具体如下:
S4,根据预设拆分数量和该待定数据流图构建预设函数模型,
其中,该预设函数模型用于表征不同切分方式和拆分方式与训练该机器学习模型的总耗时的对应关系。
S5,求取该预设函数模型的最优解,以得到最优拆分方式和该最优拆分方式下的最优切分方式。
其中,可以获取每组解对应的内存消耗;将该内存消耗小于或者等于该预设内存消耗阈值,且该预设函数模型取最小函数值时的目标解作为该最优解。
示例地,让S表示为并行策略解的集合,S={(p1,t1,m1),(p2,t2,m2),...},其中p1表示并行策略中第一个并行分支的算子切分策略,t1表示第一个并行分支的算子切分策略对应的算子执行时间,m1表示第一个并行分支的算子切分策略对应的算子显存消耗;p2表示并行策略中第二个并行分支的算子切分策略,t2表示第二个并行分支的算子切分策略对应的算子执行时间,m2表示第二个并行分支的算子切分策略对应的算子显存消耗。假设有S和S'两个集合,每个集合大小为N和N',对S定义笛卡尔积操作进行解的合并:
Prod(S,S′)=U1≤n≤N,1≤n′≤N′{[p,p′],tn+tn′,mn+mn′}
需要说明的是,在搜索最优解的过程中可以先初始化解集为S,对图融合后的M2个子图使用动态规划算法求解流水并行,根据外层动态规划更新S,求解时会调用子过程,对每个规约的子图使用动态规划算法求解数据并行与模型并行。整个搜索算法外层动态规划复杂度为O(N2M2),内层动态规划复杂度为O(n2K2log(K)(log(n)+log(K))),因此整体复杂度为O(N2M2n2K2log(K)(log(n)+log(K))),其中,M为设备数量,S为解,N为图融合后子图个数,n为子图算子个数,K为单个算子并行策略个数。
S6,根据该最优拆分方式将该目标计算图拆分为多个流水并行集合,并根据该最优切分方式确定每个该流水并行集合中的数据并行集合和模型并行集合。
需要说明的是,在求取该预设函数模型的最优解后,可以展开规约图,记录原始计算图的数据并行与模型并行解,展开融合图,记录原始计算图的流水并行解,从而得到最优的流水并行集合、数据并行集合和模型并行集合。
示例地,若对算子节点1至算子节点50的最优拆分方式为算子节点1至算子节点15,算子节点16至算子节点23,算子节点24至算子节点37,算子节点38至算子节点50,则多个流水并行集合分别为:算子节点1至算子节点15对应的计算图集合,该算子节点16至算子节点23对应的计算图集合,算子节点24至算子节点37对应的计算图集合,算子节点38至算子节点50对应的计算图集合。该数据并行集合中包括该算子节点1至算子节点15中每个算子节点的切分方式,该算子节点16至算子节点23中每个算子节点的切分方式,算子节点24至算子节点37中每个算子节点的切分方式,算子节点38至算子节点50中每个算子节点的切分方式,该模型并行集合中包括该算子节点1至算子节点15中的模型并行的相关参数的切分方式,该算子节点16至算子节点23中模型并行的相关参数的切分方式,该算子节点24至算子节点37中模型并行的相关参数的切分方式,该算子节点38至算子节点50中模型并行的相关参数的切分方式。
需要说明的是,以上求取最优拆分方式和该最优拆分方式下的最优切分方式的过程中,可以采用动态规划算法,动态规划算法属于现有技术中成熟的算法,具体求解的实施细节可以参考现有技术中对动态规划算法的相关描述,本公开在此不再赘述。
以上步骤S4至S6,能够根据该待定数据流图高效准确地确定该目标计算图对应的流水并行集合,数据并行集合和模型并行集合。
以上技术方案,能够根据该切分数据流图自动高效地得到该目标计算图对应的并行配置策略,能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
图7是本公开一示例性实施例示出的一种计算图的处理装置的框图;如图7所示,该装置可以包括:
获取模块701,被配置为获取待训练的机器学习模型对应的目标计算图,该目标计算图包括算子节点以及连接两个算子节点的有向边;
图融合模块702,被配置为对该目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
切分模块703,被配置为根据每种算子节点的多种预设切分方式,对该融合计算图中的算子节点进行有效切分,以得到该融合计算图对应的多种切分数据流图,该切分数据流图为带有有效切分方式的目标计算图;
搜索模块704,被配置为根据该切分数据流图搜索该目标计算图对应的并行配置策略,该并行配置策略包括流水并行集合,数据并行集合和模型并行集合,该并行配置策略用于并行训练该机器学习模型。
以上技术方案,能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
可选地,该切分模块703,被配置为:
将所述融合计算图中每个算子节点的输入张量和输出张量表示为张量节点;
在所述张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示所述算子节点的多种预设切分方式,以得到切分数据流图。
可选地,该切分模块703,被配置为:
用同一种标注方式标注采用相同切分方式切分的同一个算子节点关联的所有张量节点之间的连线;
用不同的标注方式区分每个算子节点对应不同切分方式的连线;
根据标注有切分方式的连线确定所述融合计算图对应的多种有效切分方式;
将所述融合计算图对应的每种有效切分方式作为一种切分数据流图,以得到多种所述切分数据流图。
可选地,该搜索模块704,被配置为:
对每种该切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图;
根据该待定数据流图通过动态规划算法确定该目标计算图对应的流水并行集合,数据并行集合和模型并行集合。
可选地,该搜索模块704,被配置为:
获取该目标计算图中每个算子节点对应的计算时间属性;
根据该计算时间属性确定该切分数据流图中每个算子节点对应的消耗时间属性;
根据每个算子节点对应的消耗时间属性对该切分数据流图中的该算子节点进行粗粒度处理,以得到该待定数据流图。
可选地,该搜索模块704,被配置为:
根据该目标计算图中每个算子节点的切分方式和该计算时间属性,通过预设映射关系确定该节点算子在该切分数据流图中的目标计算时间属性;
获取该切分数据流图中每个算子节点对应的通信时间属性;
根据该目标计算时间属性和该通信时间属性确定该消耗时间属性。
可选地,该搜索模块704,被配置为:
根据预设拆分数量和该待定数据流图构建预设函数模型,该预设函数模型用于表征不同切分方式和拆分方式与训练该机器学习模型的总耗时的对应关系;
求取该预设函数模型的最优解,以得到最优拆分方式和该最优拆分方式下的最优切分方式;
根据该最优拆分方式将该目标计算图拆分为多个流水并行集合,并根据该最优切分方式确定每个该流水并行集合中的数据并行集合和模型并行集合。
可选地,该搜索模块704,被配置为:
获取每组解对应的内存消耗;
将该内存消耗小于或者等于该预设内存消耗阈值,且该预设函数模型取最小函数值时的目标解作为该最优解。
可选地,该图融合模块702,被配置为:
通过预设动态图融合算法,以该多个子图之间的通信数据量最少,不同子图对应的计算量均衡为优化目标,以每个子图为闭包图为约束条件,确定该目标计算图对应的多个目标子图,以得到包括该多个目标子图的该融合计算图。
以上技术方案,能够根据该切分数据流图自动高效地得到该目标计算图对应的并行配置策略,能够自动高效的生成由流水并行,数据并行以及模型并行三者混合并行的模型训练策略,能够有效提升机器学习模型的模型训练效率,缩短模型训练用时。
下面参考图8,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器)600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种计算图的处理方法,所述方法包括:
获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
根据本公开的一个或多个实施例,示例2提供了示例1所述的方法,所述根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,包括:
将所述融合计算图中每个算子节点的输入张量和输出张量表示为张量节点;
在所述张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示所述算子节点的多种预设切分方式,以得到切分数据流图。
根据本公开的一个或多个实施例,示例3提供了示例2所述的方法,所述在所述张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示所述算子节点的多种预设切分方式,以得到切分数据流图,包括:
用同一种标注方式标注采用相同切分方式切分的同一个算子节点关联的所有张量节点之间的连线;
用不同的标注方式区分每个算子节点对应不同切分方式的连线;
根据标注有切分方式的连线确定所述融合计算图对应的多种有效切分方式;
将所述融合计算图对应的每种有效切分方式作为一种切分数据流图,以得到多种所述切分数据流图。
根据本公开的一个或多个实施例,示例4提供了示例1所述的方法,所述根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,包括:
对每种所述切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图;
根据所述待定数据流图通过动态规划算法确定所述目标计算图对应的流水并行集合,数据并行集合和模型并行集合。
根据本公开的一个或多个实施例,示例5提供了示例4所述的方法,所述对每种所述切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图,包括:
获取所述目标计算图中每个算子节点对应的计算时间属性;
根据所述计算时间属性确定所述切分数据流图中每个算子节点对应的消耗时间属性;
根据每个算子节点对应的消耗时间属性对所述切分数据流图中的所述算子节点进行粗粒度处理,以得到所述待定数据流图。
根据本公开的一个或多个实施例,示例6提供了示例5所述的方法,所述根据所述计算时间属性确定所述切分数据流图中每个算子节点对应的消耗时间属性,包括:
根据所述目标计算图中每个算子节点的切分方式和所述计算时间属性,通过预设映射关系确定所述节点算子在所述切分数据流图中的目标计算时间属性;
获取所述切分数据流图中每个算子节点对应的通信时间属性;
根据所述目标计算时间属性和所述通信时间属性确定所述消耗时间属性。
根据本公开的一个或多个实施例,示例7提供了示例4所述的方法,所述根据所述待定数据流图通过动态规划算法确定流水并行集合,数据并行集合和模型并行集合,包括:
根据预设拆分数量和所述待定数据流图构建预设函数模型,所述预设函数模型用于表征不同切分方式和拆分方式与训练所述机器学习模型的总耗时的对应关系;
求取所述预设函数模型的最优解,以得到最优拆分方式和所述最优拆分方式下的最优切分方式;
根据所述最优拆分方式将所述目标计算图拆分为多个流水并行集合,并根据所述最优切分方式确定每个所述流水并行集合中的数据并行集合和模型并行集合。
根据本公开的一个或多个实施例,示例8提供了示例7所述的方法,所述求取所述预设函数模型的最优解,以得到最优拆分方式,和所述最优拆分方式下的最优切分方式,包括:
获取每组解对应的内存消耗;
将所述内存消耗小于或者等于所述预设内存消耗阈值,且所述预设函数模型取最小函数值时的目标解作为所述最优解。
根据本公开的一个或多个实施例,示例9提供了示例1所述的方法,所述对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图,包括:
通过预设动态图融合算法,以所述多个子图之间的通信数据量最少,不同子图对应的计算量均衡为优化目标,以每个子图为闭包图为约束条件,确定所述目标计算图对应的多个目标子图,以得到包括所述多个目标子图的所述融合计算图。
根据本公开的一个或多个实施例,示例10提供了一种计算图的处理装置,所述装置包括:
获取模块,被配置为获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
图融合模块,被配置为对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
切分模块,被配置为根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
搜索模块,被配置为根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
根据本公开的一个或多个实施例,示例11提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现以上示例1-9中任一项所述方法的步骤。
根据本公开的一个或多个实施例,示例12提供了一种电子设备,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现以上示例1-9中任一项所述方法的步骤。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

Claims (12)

1.一种计算图的处理方法,其特征在于,所述方法包括:
获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
2.根据权利要求1所述的方法,其特征在于,所述根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,得到所述融合计算图对应的切分数据流图,包括:
将所述融合计算图中每个算子节点的输入张量和输出张量表示为张量节点;
在所述张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示所述算子节点的多种预设切分方式,以得到所述切分数据流图。
3.根据权利要求2所述的方法,其特征在于,所述在所述张量节点中添加张量可切分的维度属性,并用张量节点之间的不同连线表示所述算子节点的多种预设切分方式,以得到所述切分数据流图,包括:
用同一种标注方式标注采用相同切分方式切分的同一个算子节点关联的所有张量节点之间的连线;
用不同的标注方式区分每个算子节点对应不同切分方式的连线;
根据标注有切分方式的连线确定所述融合计算图对应的多种有效切分方式;
将所述融合计算图对应的每种有效切分方式作为一种切分数据流图,以得到多种所述切分数据流图。
4.根据权利要求1所述的方法,其特征在于,所述根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,包括:
对每种所述切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图;
根据所述待定数据流图通过动态规划算法确定所述目标计算图对应的流水并行集合,数据并行集合和模型并行集合。
5.根据权利要求4所述的方法,其特征在于,所述对每种所述切分数据流图进行归约处理,以得到多种切分数据流图对应的多个粗粒度的待定数据流图,包括:
获取所述目标计算图中每个算子节点对应的计算时间属性;
根据所述计算时间属性确定所述切分数据流图中每个算子节点对应的消耗时间属性;
根据每个算子节点对应的消耗时间属性对所述切分数据流图中的所述算子节点进行粗粒度处理,以得到所述待定数据流图。
6.根据权利要求5所述的方法,其特征在于,所述根据所述计算时间属性确定所述切分数据流图中每个算子节点对应的消耗时间属性,包括:
根据所述目标计算图中每个算子节点的切分方式和所述计算时间属性,通过预设映射关系确定所述节点算子在所述切分数据流图中的目标计算时间属性;
获取所述切分数据流图中每个算子节点对应的通信时间属性;
根据所述目标计算时间属性和所述通信时间属性确定所述消耗时间属性。
7.根据权利要求4所述的方法,其特征在于,所述根据所述待定数据流图通过动态规划算法确定流水并行集合,数据并行集合和模型并行集合,包括:
根据预设拆分数量和所述待定数据流图构建预设函数模型,所述预设函数模型用于表征不同切分方式和拆分方式与训练所述机器学习模型的总耗时的对应关系;
求取所述预设函数模型的最优解,以得到最优拆分方式和所述最优拆分方式下的最优切分方式;
根据所述最优拆分方式将所述目标计算图拆分为多个流水并行集合,并根据所述最优切分方式确定每个所述流水并行集合中的数据并行集合和模型并行集合。
8.根据权利要求7所述的方法,其特征在于,所述求取所述预设函数模型的最优解,以得到最优拆分方式,和所述最优拆分方式下的最优切分方式,包括:
获取每组解对应的内存消耗;
将所述内存消耗小于或者等于所述预设内存消耗阈值,且所述预设函数模型取最小函数值时的目标解作为所述最优解。
9.根据权利要求1所述的方法,其特征在于,所述对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图,包括:
通过预设动态图融合算法,以所述多个子图之间的通信数据量最少,不同子图对应的计算量均衡为优化目标,以每个子图为闭包图为约束条件,确定所述目标计算图对应的多个目标子图,以得到包括所述多个目标子图的所述融合计算图。
10.一种计算图的处理装置,其特征在于,所述装置包括:
获取模块,被配置为获取待训练的机器学习模型对应的目标计算图,所述目标计算图包括算子节点以及连接两个算子节点的有向边;
图融合模块,被配置为对所述目标计算图进行节点融合处理,以得到包括多个子图的融合计算图;
切分模块,被配置为根据每种算子节点的多种预设切分方式,对所述融合计算图中的算子节点进行有效切分,以得到所述融合计算图对应的多种切分数据流图,所述切分数据流图为带有有效切分方式的目标计算图;
搜索模块,被配置为根据所述切分数据流图搜索所述目标计算图对应的并行配置策略,所述并行配置策略包括流水并行集合,数据并行集合和模型并行集合,所述并行配置策略用于并行训练所述机器学习模型。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现权利要求1-9中任一项所述方法的步骤。
12.一种电子设备,其特征在于,包括:
存储装置,其上存储有计算机程序;
处理装置,用于执行所述存储装置中的所述计算机程序,以实现权利要求1-9中任一项所述方法的步骤。
CN202210594641.9A 2022-05-27 2022-05-27 计算图的处理方法、装置、可读介质及电子设备 Pending CN114841327A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210594641.9A CN114841327A (zh) 2022-05-27 2022-05-27 计算图的处理方法、装置、可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210594641.9A CN114841327A (zh) 2022-05-27 2022-05-27 计算图的处理方法、装置、可读介质及电子设备

Publications (1)

Publication Number Publication Date
CN114841327A true CN114841327A (zh) 2022-08-02

Family

ID=82572938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210594641.9A Pending CN114841327A (zh) 2022-05-27 2022-05-27 计算图的处理方法、装置、可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN114841327A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115563508A (zh) * 2022-11-08 2023-01-03 北京百度网讯科技有限公司 模型训练方法、装置以及设备
CN115617351A (zh) * 2022-11-29 2023-01-17 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
CN115759232A (zh) * 2022-11-23 2023-03-07 北京百度网讯科技有限公司 深度学习框架的多任务并行处理方法、装置、设备和介质
CN116341642A (zh) * 2023-03-01 2023-06-27 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN116820524A (zh) * 2023-08-22 2023-09-29 腾讯科技(深圳)有限公司 模型更新方法、装置、计算机设备及存储介质
CN116862019A (zh) * 2023-07-06 2023-10-10 清华大学 基于数据并行范式的模型训练方法及装置
CN117785492A (zh) * 2024-02-28 2024-03-29 上海燧原智能科技有限公司 一种算子的切分方式确定方法、装置、设备及介质
WO2024131097A1 (zh) * 2022-12-20 2024-06-27 北京地平线信息技术有限公司 神经网络模型的编译方法、装置、电子设备和存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115563508A (zh) * 2022-11-08 2023-01-03 北京百度网讯科技有限公司 模型训练方法、装置以及设备
CN115759232A (zh) * 2022-11-23 2023-03-07 北京百度网讯科技有限公司 深度学习框架的多任务并行处理方法、装置、设备和介质
CN115759232B (zh) * 2022-11-23 2023-08-22 北京百度网讯科技有限公司 深度学习框架的多任务并行处理方法、装置、设备和介质
CN115617351A (zh) * 2022-11-29 2023-01-17 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
CN115617351B (zh) * 2022-11-29 2023-03-21 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
WO2024131097A1 (zh) * 2022-12-20 2024-06-27 北京地平线信息技术有限公司 神经网络模型的编译方法、装置、电子设备和存储介质
CN116341642A (zh) * 2023-03-01 2023-06-27 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN116341642B (zh) * 2023-03-01 2023-11-10 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN116862019B (zh) * 2023-07-06 2024-03-19 清华大学 基于数据并行范式的模型训练方法及装置
CN116862019A (zh) * 2023-07-06 2023-10-10 清华大学 基于数据并行范式的模型训练方法及装置
CN116820524A (zh) * 2023-08-22 2023-09-29 腾讯科技(深圳)有限公司 模型更新方法、装置、计算机设备及存储介质
CN116820524B (zh) * 2023-08-22 2023-11-28 腾讯科技(深圳)有限公司 模型更新方法、装置、计算机设备及存储介质
CN117785492A (zh) * 2024-02-28 2024-03-29 上海燧原智能科技有限公司 一种算子的切分方式确定方法、装置、设备及介质
CN117785492B (zh) * 2024-02-28 2024-05-17 上海燧原智能科技有限公司 一种算子的切分方式确定方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN114841327A (zh) 计算图的处理方法、装置、可读介质及电子设备
CN110084377B (zh) 用于构建决策树的方法和装置
US11755367B2 (en) Scheduling operations on a computation graph
EP4290824A1 (en) Task allocation method and apparatus based on internet-of-things device, and network training method and apparatus
US20240135191A1 (en) Method, apparatus, and system for generating neural network model, device, medium, and program product
US9824494B2 (en) Hybrid surfaces for mesh repair
CN111967339B (zh) 用于规划无人机路径的方法和装置
US20200389182A1 (en) Data conversion method and apparatus
WO2022217210A1 (en) Privacy-aware pruning in machine learning
CN110489955B (zh) 应用于电子设备的图像处理、装置、计算设备、介质
CN114462582A (zh) 基于卷积神经网络模型的数据处理方法及装置、设备
US11935271B2 (en) Neural network model compression with selective structured weight unification
Zhang et al. Af-dndf: Asynchronous federated learning of deep neural decision forests
CN111915689A (zh) 用于生成目标函数的方法、装置、电子设备和计算机可读介质
CN111815654A (zh) 用于处理图像的方法、装置、设备和计算机可读介质
CN111414343A (zh) 日志写入方法、装置、电子设备和介质
CN115827058A (zh) 数据处理方法、装置、设备及存储介质
CN110633596A (zh) 预测车辆方向角的方法和装置
CN116543273B (zh) 数据处理方法、装置、计算机、可读存储介质及程序产品
EP4443397A1 (en) Object processing method, device, readable medium and electronic device
CN115827526B (zh) 数据处理方法、装置、设备以及存储介质
CN112070163B (zh) 图像分割模型训练和图像分割方法、装置、设备
Gupta et al. EdgeAI: Concept and Architecture
CN115729613A (zh) 数据流图处理方法、装置和设备及计算机存储介质
CN116644346A (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
CB02 Change of applicant information

Country or region after: China

Address after: Room B-0035, 2nd Floor, Building 3, No. 30 Shixing Street, Shijingshan District, Beijing

Applicant after: Douyin Vision Co.,Ltd.

Country or region after: Britain

Applicant after: Face Meng Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Country or region before: China

Applicant before: Face Meng Ltd.

Country or region before: Britain

Country or region after: China

Address after: Room B-0035, 2nd Floor, Building 3, No. 30 Shixing Street, Shijingshan District, Beijing

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Country or region after: Britain

Applicant after: Face Meng Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

Applicant before: Face Meng Ltd.

Country or region before: Britain

CB02 Change of applicant information