基于多面体模型建模的自动并行策略搜索方法及相关设备

文档序号:31184134发布日期:2022-08-19 18:54阅读:60来源:国知局
基于多面体模型建模的自动并行策略搜索方法及相关设备

1.本发明涉及人工智能技术领域,特别涉及一种基于多面体模型建模的自动并行策略搜索方法及相关设备。


背景技术:

2.近十年来,深度学习技术不断刷新视觉、自然语言、语音、搜索、推荐等领域各种任务的纪录。这其中的原因,用一个关键词描述就是“大规模”。大规模的数据使得模型有足够的知识可以记忆,大规模参数量的模型使得模型本身有能力记忆更多的数据,大规模高性能的算力(以gpu为典型代表)使得模型的训练速度有百倍甚至千倍的提升。数据、模型、算力的发展催生了大规模深度学习这个领域,如何进行多机任务的拆分、如何配置集群训练资源、如何平衡训练速度和收敛速度、如何训练单机无法训练的模型、弹性训练与容错等都是这个方向重点研究的问题。分布式训练正是解决上述问题,提升训练效率的最有效手段,分布式训练的核心目的是加快模型的训练速度。
3.目前主流深度学习框架如tensorflow(tensorflow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现)、pytorch(pytorch是一个开源的python机器学习库,基于torch,用于自然语言处理等应用程序)、mindspore(mindspore是一种适用于端边云场景的新型开源深度学习训练/推理框架)、paddlepaddle(飞桨(paddlepaddle)是集深度学习核心框架、工具组件和服务平台为一体的技术先进、功能完备的开源深度学习平台)都具备了多机分布式训练功能,主要并行方式有数据并行(数据并行,是指ai模型在分布式训练时,把训练数据样本且分到多个计算设备进行分布式计算的过程)、算子并行、流水线并行(流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术)等模式,然而这些并行模式需要算法开发者根据算法模型特点调用ai框架提供的并行切分api实现,这种方式提高了ai算法分布式训练的技术难度,同时由于算法开发者对于ai框架和计算设备特点掌握不足,导致模型并行训练效率低下,具体的分布式调优工作提高了算法开发的难度同时降低了算法研究的效率。
4.针对这一难题,mindspore框架提出具备了模型的自动并行训练功能,flexflow框架也提出了一种基于4维度并行策略空间建模的搜索策略,rannc框架提出了一种支持pytorch前端的流水线并行策略自动搜索中间件,然而由于并行策略搜索空间规模大(与计算图规模与资源空间规模相关),上述这些工作在自动并行搜索效率方面很难做到实用,比如rannc框架在实现4.9b参数量bert-enlarge模型在4节点32卡上的流水线并行策略搜索时,所需的策略搜索时间达到了4小时以上,这在一定程度上提高了模型训练开发时的调试和训练时间,降低了效率。因而现有技术还有待改进和提高。


技术实现要素:

5.本发明的主要目的在于提供一种基于多面体模型建模的自动并行策略搜索方法及相关设备,旨在解决现有技术中在对大规模的深度学习的模型进行训练时,需要算法开
发者自行配置并行策略,这样就会造成训练效率低,开发难度大的问题。
6.为了达到上述目的,本发明采取了以下技术方案:
7.一种基于多面体模型建模的自动并行策略搜索方法,包括:
8.根据用户输入的模型对象得到深度学习算法的模型计算图;
9.对所述模型计算图进行转换,得到转换后的模型计算图;
10.将转换后的模型计算图进行均衡处理,得到均衡计算图;
11.根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略;
12.调用底层框架执行所述并行策略。
13.在所述基于多面体模型建模的自动并行策略搜索方法中,所述根据用户输入的模型对象得到深度学习算法的模型计算图的步骤具体包括:
14.根据用户输入的模型对象得到一个算法模型;
15.随机输入一个数值至所述算法模型后,记录所述算法模型的计算过程,得到所述模型计算图;
16.或通过python解释器对所述模型对象解析后生成语法树,再对所述语法树进行分析,得到所述模型计算图。
17.在所述基于多面体模型建模的自动并行策略搜索方法中,所述对所述模型计算图进行转换,得到转换后的模型计算图的步骤具体包括:
18.用预先定义的中间表示法对所述模型计算图重新进行表示,得到转换后的模型计算图。
19.在所述基于多面体模型建模的自动并行策略搜索方法中,所述将转换后的模型计算图进行均衡处理,得到均衡计算图的步骤具体包括:
20.设定节点的平均计算量阈值,将转换后的模型计算图中的计算量节点与所述平均计算量阈值进行比较;
21.将小于所述平均计算阈值的相邻计算量节点进行融合,并将大于所述平均计算阈值的计算量节点进行拆分,得到均衡计算图。
22.在所述基于多面体模型建模的自动并行策略搜索方法中,所述根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略的步骤具体包括:
23.将均衡计算图映射在多面体模型上,得到一个多面体优化模型;
24.将均衡计算图输入到所述多面体优化模型,得到一个多面体模型实例;
25.根据所述多面体模型实例和用户输入的计算资源数量,输出并行策略。
26.在所述基于多面体模型建模的自动并行策略搜索方法中,所述调用底层框架执行所述并行策略的步骤具体包括:
27.调用底层框架的执行api来执行所述并行策略。
28.在所述基于多面体模型建模的自动并行策略搜索方法中,所述模型对象是指用户预先定义的深度学习算法的单机训练代码。
29.在所述基于多面体模型建模的自动并行策略搜索方法中,所述预先定义的中间表示法包括:irtype、irvalue、irnode和irgraph。
30.在所述基于多面体模型建模的自动并行策略搜索方法中,所述并行策略包括数据
并行切分维度和流水线并行切分维度。
31.在所述基于多面体模型建模的自动并行策略搜索方法中,所述执行api为底层ai框架中的运行管理器。
32.一种自动并行策略搜索系统,所述自动并行策略搜索系统还包括:
33.计算图生成模块,用于根据用户输入的模型对象得到深度学习算法的模型计算图;
34.计算图转换模块,用于对所述模型计算图进行转换,得到转换后的模型计算图;
35.计算图均衡模块,用于将转换后的模型计算图进行均衡处理,得到均衡计算图;
36.并行策略搜索模块,用于根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略;
37.并行策略执行模块,用于调用底层框架执行所述并行策略。
38.一种控制器,所述控制器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于多面体模型建模的自动并行策略搜索程序,所述基于多面体模型建模的自动并行策略搜索程序被所述处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤。
39.一种计算机可读存储介质,所述计算机可读存储介质存储有基于多面体模型建模的自动并行策略搜索程序,所述基于多面体模型建模的自动并行策略搜索程序被处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤。
40.相较于现有技术,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法及相关设备,所述基于多面体模型建模的自动并行策略搜索方法包括:根据用户输入的模型对象得到深度学习算法的模型计算图;对所述模型计算图进行转换,得到转换后的模型计算图;将转换后的模型计算图进行均衡处理,得到均衡计算图;根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略;调用底层框架执行所述并行策略。本发明中通过将生成的模型计算图进行转换及均衡处理,并基于多面体模型的框架创建多面体模型实例,以便根据多面体模型实例自动输出并行策略,实现了在多面体模型下将不同框架下的算法逻辑进行建模,并自动输出可高效执行的并行策略的过程,从而有效地提升了搜索并行策略的效率,同时降低了深度学习算法的分布式训练开发和效率调优难度。
附图说明
41.图1为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例的流程图;
42.图2为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤s100的流程图;
43.图3为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤s300的流程图;
44.图4为本发明提供的节点拆分和节点聚合示意图;
45.图5为本发明提供的基于多面体模型建模的自动并行策略搜索方法的较佳实施例中步骤s400的流程图;
46.图6为本发明提供的数据并行模式下的计算图切分示意图;
47.图7为本发明提供的流水线并行模式下的计算图切分示意图;
48.图8为本发明提供的自动并行策略搜索系统的原理框图;
49.图9为本发明提供的pytorch框架与自动并行策略搜索系统的架构关系图;
50.图10为本发明提供的控制器的较佳实施例的运行环境示意图。
具体实施方式
51.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
52.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
53.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
54.首先,基于多机多卡分布式训练深度学习模型成为目前加速模型训练效率的最重要的一个技术方案,主要的分布式训练模式包括数据并行、模型并行、优化器并行、流水线并行、混合并行等,这些并行方式也是目前主流深度学习框架(如tensorflow、pytorch、mindspore、paddlepaddle)主要支持的并行功能,不同的ai框架只有易用性、效率方面的差异,然而上述并行方式几乎都需要算法开发者通过调用框架api进行实现,同时进行手工进行训练效率调优,这对不太了解底层ai框架实现机制、集群通信特征的算法开发者来说十分困难,复杂的实现和调试带来效率的大幅度降低。
55.另外一方面由于自动并行策略搜索效率与ai模型计算图、集群资源规模呈指数增长关系,现有一些自动并行搜索工作在搜索效率难以满足大参数量模型在大规模集群上的效率要求,因此需要设计实现一种高效率的多机多卡分布式训练并行策略搜索方法,以解决大模型的自动并行训练策略搜索问题,让算法开发者能够只专注于算法逻辑的开发,而快速的实现在ai集群上的分布式训练。
56.为了解决上述现有技术问题,本发明提供了一种基于多面体模型建模的自动并行策略搜索方法及相关设备。本发明中通过将生成的模型计算图进行转换及均衡处理,均衡计算图,并在多面体模型的框架下,根据均衡计算图创建多面体模型实例,以便根据多面体模型实例自动输出并行策略,实现了在多面体模型下将不同框架下的算法逻辑进行建模,并自动输出可高效执行的并行策略的过程,从而有效地提升了搜索并行策略的效率,同时
降低了深度学习算法的分布式训练开发和效率调优难度。
57.下面通过具体示例性的实施例对基于多面体模型建模的自动并行策略搜索方法设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
58.请参阅图1,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法,包括:
59.s100、根据用户输入的模型对象得到深度学习算法的模型计算图。
60.其中,所述模型对象是指用户预先定义的深度学习算法的单机训练代码,比如bert模型、gpt3模型(gpt-3由独立的ai研究和部署公司openai构建,是一种大规模的自然语言模型,目前在微软azure上运行)等。
61.具体地,在不同的深度学习模型的框架(如tensorflow、pytorch、mindspore、paddlepaddle)下,对应的模型对象(用户预先定义的算法逻辑)不同,所以需要在采用相应的方法的基础上,根据用户输入的基于ai框架定义的深度学习算法的单机训练代码代码得到深度学习算法的模型计算图。其中,模型计算图是指深度学习算法在ai框架中的一种表示形式,目前一般采用一个有向无环图(dag)来表示一个深度学习算法的计算过程,计算图的节点表示一个计算操作,边表示算法计算操作之间的张量数据依赖。上述生成所述模型计算图的过程的作用就是用于表示一个算法的计算过程。
62.进一步地,请参阅图2,步骤100具体包括:
63.s110、根据用户输入的模型对象得到一个算法模型;
64.s120、随机输入一个数值至所述算法模型后,记录所述算法模型的计算过程,得到所述模型计算图;
65.s130、或通过python解释器对所述模型对象解析后生成语法树,再对所述语法树进行分析,得到所述模型计算图。
66.具体地,本发明中以pytorch框架为例,通过jit.trace(跟踪技术)或者jit.script(源码转换技术)两种方法,可以得到算法开发者定义的模型计算图;其中,jit.trace方法是基于向量计算跟踪的方式,根据用户输入的模型对象得到一个算法模型后,按照算法的输入类型要求随机输入一个数值,然后记录算法的每个计算过程,这些记录下的计算过程就构建成了一个计算图;比如算法模型是输入一张32x32的图片,输出是这张图片的分类标签,那么所述随机输入就是指随机输入一个32x32的数据。jit.script方法是基于源码转换的方式,其基本原理是首先通过python解释器将所述模型对象(用户定义的算法逻辑)解析成语法树(计算机描述世界真理的树状结构),然后通过分析语法树得到模型计算图。
67.请继续参阅图1,s200、对所述模型计算图进行转换,得到转换后的模型计算图。
68.具体地,由于不同框架下的计算图有多种定义方式,即不同框架下的计算图表示差异,比如pytorch框架使用的就是torch计算图(torch graph),所以需要将不同框架计算图转换为一种通用的中间表示形式的计算图,而通常情况下,计算图中间表示方法是由专家人工定义的,是一个人工建立规则映射的过程,因此不同的计算图中间表示转换基于各自规则的方式进行,本发明中针对并行策略搜索定义一种新的计算图表示方法,因此需要将上层框架计算图转换为并行策略搜索时使用的计算图。
69.进一步地,步骤s200具体包括:
70.s210、用预先定义的中间表示法对所述模型计算图重新进行表示,得到转换后的模型计算图。
71.具体地,将不同框架下计算图用用户预先定义的中间表示法重新进行表示,从而将不同框架下计算图转换为本发明中的并行策略搜索时使用的计算图,通过中间表示法是一种通用的方法,具体定义在c++实现中分别就是4个类定义;其中,所述预先定义的中间表示法为:irtype(类型)、irvalue(值)、irnode(节点)和irgraph(图)。
72.请继续参阅图1,s300、将转换后的模型计算图进行均衡处理,得到均衡计算图。
73.具体地,由于计算图中许多不同节点操作的计算量不一样,导致了计算图不均衡,为了在后面步骤中对节点进行切分时能够得到均衡大小的小节点,以及为了提高自动搜索并行策略的效率,需要对计算图中的节点进行均衡处理,即进行节点拆分和节点聚合操作;其中,计算图均衡过程的目的是将计算图在横向和纵向维度进行计算均衡,计算均衡的目的是指对计算图中的节点进行重新聚合或拆分,能够使得转换后的计算图在两个维度上达到计算均衡,避免并行策略搜索时的计算分配出现不均。
74.进一步地,请参阅图3,步骤s300具体包括:
75.s310、设定节点的平均计算量阈值,将转换后的模型计算图中的计算量节点与所述平均计算量阈值进行比较;
76.s320、将小于所述平均计算阈值的相邻计算量节点进行融合,并将大于所述平均计算阈值的计算量节点进行拆分,得到均衡计算图。
77.具体地,均衡处理主要包括对模型计算图中的节点进行聚合或拆分操作;在节点聚合或节点差分操作之前,首先,需要设定一个节点的平均计算量阈值,按照节点先后顺序遍历转换后的模型计算图中的计算量节点,将转换后的模型计算图中的计算量节点与所述平均计算量阈值进行比较;然后,节点聚合操作就是:将小于所述平均计算阈值的相邻计算量节点进行融合;而节点拆分操作则是:根据所述平均计算量阈值,将大于所述平均计算阈值的计算量节点拆分为多个节点,通常是对大于所述平均计算阈值的矩阵乘法算子拆分,以使融合和拆分后的节点计算量与所述平均计算量阈值相当;完成了节点聚合或节点拆分操作后,就能得到均衡计算图。
78.本发明中通过将计算图中的大节点进行拆分,或者将相邻的多个小节点进行聚合,得到均衡后的节点,即得到所述均衡计算图,使得各节点间的计算量得到均衡,能够有效地避免并行策略搜索时的计算分配出现不均的问题,同时提高了节点切分的效率。
79.其中,节点聚合就是把多个节点的计算过程在表示上转换成一个节点,比如3个计算节点进行聚合,聚合前3个节点分别是三个irnode对象,聚合后形成了一个新的irnode对象;并且大计算量节点切分是需要根据具体节点的算子类型来决定,不是所有节点都能拆分,比如矩阵乘法就是一个可以拆分的节点,也是ai模型中常用的一个基础算子。具体进行节点拆分和节点聚合的操作过程如图4所示,表示的是大计算量节点切分和相邻小计算量节点聚合到的过程。
80.请继续参阅图1,s400、根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略。
81.具体地,该过程属于基于多面体优化的模型下的训练建模,以及并行策略搜索过
程,该训练建模过程是指根据均衡计算图,在已经建立好的多面体优化模型框架下进行初始化,创建多面体优化模型实例,即建模成一个具体的对象;然后,并行策略搜索是指基于多面体优化模型实例,根据指定的并行模式(指定的并行模式是指开发者需要进行的并行模式,例如数据并行、模型并行、优化器并行、流水线并行、混合并行等),以流水线并行策略搜索为例:则根据开发者指定的流水线模式,搜索流水线的数量和mini-batch的数量的策略值,并生成最终的并行策略。其中,并行模式是一个大的框架,比如数据并行,是指ai模型在分布式训练时,把训练数据样本且分到多个计算设备进行分布式计算的过程,而并行策略是指某一个具体算法模型在执行时的分布式训练切分策略。
82.多面体模型建模是编译器中针对for循环进行编译优化的常见方法,通过将循环表示到多面体模型空间,能够直接通过多面体模型的映射表实现循环的并行计算优化,以提高训练的效率;在本发明中,将一个深度学习模型的训练计算过程表示成多层循环操作,然后定义了如何通过多面体模型来对这个训练过程进行表示,最后将常见的数据并行、模型并行、流水线并行在多面体建模框架下进行了统一。
83.假设一个深度学习模型通过有向无环图(dag)表示为计算图d(n,e),其中n是计算图节点集合,e是计算图的边集合。因此深度学习模型训练计算过程(实则也是一种建模过程)表示如下(以python编程语言表示),从而实现了将for循环映射到多面体优化模型上:
84.for e in range(epoch_num)://epoch_num:模型训练轮数,即for循环的轮数范围(域);
85.for b in range(batch_num)://batch_num:模型训练一轮的样本批数,即for循环的批数范围;
86.for node in nodes://node:模型的一个节点;nodes:模型计算图的节点集合;
87.out=forward(node,b)//forward():表示模型的前向计算;
88.for node in reverse(nodes)://reverse():表示将模型计算节点进行反向排序;
89.grad=backward(node,b)//grad:表示模型参数的梯度;backward():表示模型的反向梯度计算;
90.update(node)//update():表示模型的参数更新过程。
91.进一步地,请参阅图5,步骤s400具体包括:
92.s410、创建一个多面体优化模型;
93.s420、根据所述均衡计算图初始化所述多面体优化模型,得到一个多面体模型实例;
94.s430、根据所述多面体模型实例和用户输入的计算资源数量,输出并行策略。其中,并行策略包括数据并行切分维度、流水线并行切分维度以及流水线的排布等。
95.具体地,首先将均衡计算图映射在多面体模型上,得到一个多面体优化模型,其中,这里的“映射”可以理解为坐标空间的仿射变换,如平移、旋转等操作,然后将均衡计算图输入到所述多面体优化模型,得到一个多面体模型实例(具体的对象),也即将for循环映射到多面体优化模型上,得到一个多面体模型实例(寻找分布式优化的计算模型),再经过几何上的线性变换找到分布式训练的数据并行切分维度或者流水线并行切分维度,并结合用户输入的计算资源数量,比如计算资源是8张gpu卡,所以数据并行会从数据并行的切分
维度切分为8个mini-batch分别在8张卡上计算,最后综合输出并行策略(数据并行切分维度、流水线并行切分维度以及流水线的排布等)。具体的数据并行切分维度和流水线并行切分维度的切分过程分别如图6和图7所示,其中,横坐标表示模型训练的样本批数,纵坐标表示模型参数的层数,如bert基础模型计算过程有24层;第一象限中的点表示某一样本batch在模型某一层上的计算过程,箭头表示模型训练计算过程的数据依赖或时间依赖;虚线框内表示模型在分布式训练时的一个切分示例;图6表示的是数据并行模式下的计算图切分示例,直接从batch方向上进行切分;图7表示流水线并行模式下的计算图切分示例,在错位地横向方向上进行切分。
96.本发明中将深度学习模型的训练计算过程进行了统一描述,并将该计算过程描述到多面体模型中,通过多面体模型,常用的数据并行、流水线并行等分布式并行训练模式能够通过所得到的多面体优化模型进行统一,因此能够通过简单的多面体模型的映射变换来搜索出可行的并行策略。
97.请继续参阅图1,s500、调用底层框架执行所述并行策略。其中,所述执行api为底层ai框架中的运行管理器(runtime接口)。
98.具体地,在多面体模型下找到分布式训练的数据并行切分维度或者流水线并行切分维度,并结合用户输入的计算资源数量,会自动输出并行策略,最后需要通过调用底层框架执行api来执行所述并行策略。其中所述api为交互接口。
99.进一步地,步骤s500具体包括:
100.s510、调用底层框架的执行api来执行所述并行策略。其中,所述执行api为底层ai框架中的运行管理器。
101.具体地,在多面体模型下创建多面体模型实例后,通过多面体模型的实例找到分布式训练的数据并行切分维度或者流水线并行切分维度,并结合用户输入的计算资源数量,自动输出算法模型的分布式训练执行策略,然后需要调用底层框架执行api实现算法模型的分布式训练策略的执行。
102.更进一步地,请参阅图8,基于上述基于多面体模型建模的自动并行策略搜索方法,本发明还相应地提供了一种自动并行策略搜索系统,所述自动并行策略搜索系统还包括:计算图生成模块100、计算图转换模块200、计算图均衡模块300、并行策略搜索模块400和并行策略执行模块500。
103.具体地,所述计算图生成模块100,用于根据用户输入的模型对象得到深度学习算法的模型计算图;所述计算图转换模块200,用于对所述模型计算图进行转换,得到转换后的模型计算图;所述计算图均衡模块300,用于将转换后的模型计算图进行均衡处理,得到均衡计算图;所述并行策略搜索模块400,用于根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略;所述并行策略执行模块500,用于调用底层框架执行所述并行策略。
104.本发明提出的基于多面体模型建模的自动并行策略搜索方法的实现可以看成是支撑ai框架实现自动并行功能的一个中间件,如图9所示为其功能与pytorch框架的关系图。首先,用户采用pytorch前端api进行算法定义,其实用户无需考虑算法的并行切分,而是只需要考虑算法单机实现逻辑即可;因此用户只需要关注pytorch框架针对算法提供的api使用方法,通过api来实现单机算法,如图9所示,左边竖排为pytorch框架基本架构,右
边部分为自动并行策略搜索系统,自动并行策略搜索系统与pytorch框架的主要接口是算法的计算图表示及底层框架运行时接口,用户对于自动并行策略搜索系统几乎是无感知的。
105.然后用户定义的算法会通过pytorch的jit(即时编译)模块输出计算图,计算图输入到自动并行策略搜索系统后相继输入计算图生成模块、计算图转换模块、计算图均衡模块和并行策略搜索模块,最后输出根据并行策略完成切分的计算子图,并将计算子图通过调用pytorch的底层runtime api(pytorch框架的内部的功能api)来执行。
106.更进一步地,本发明还提供一种控制器,所述控制器包括处理器10、存储器20及显示器30。图10仅示出了控制器的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
107.所述存储器20在一些实施例中可以是所述控制器的内部存储单元,例如控制器的硬盘或内存。所述存储器20在另一些实施例中也可以是所述控制器的外部存储设备,例如所述控制器上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器20还可以既包括所述控制器的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述控制器的应用软件及各类数据。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有自动并行策略搜索程序40,该自动并行策略搜索程序40可被处理器10所执行,从而实现本发明中基于多面体模型建模的自动并行策略搜索方法。
108.所述处理器10在一些实施例中可以是一中央处理器(central processing unit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于多面体模型建模的自动并行策略搜索方法等。
109.所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述装置的信息以及用于显示可视化的用户界面。所述装置的部件10-30通过系统总线相互通信。
110.在一实施例中,当处理器10执行所述存储器20中自动并行策略搜索程序40时实现以下步骤:
111.根据用户输入的模型对象得到深度学习算法的模型计算图;
112.对所述模型计算图进行转换,得到转换后的模型计算图;
113.将转换后的模型计算图进行均衡处理,得到均衡计算图;
114.根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略;
115.调用底层框架执行所述并行策略。
116.其中,所述根据用户输入的模型对象得到深度学习算法的模型计算图的步骤具体包括:
117.随机输入一个数值至所述算法模型后,记录所述算法模型的计算过程,得到所述模型计算图;其中,所述模型对象是指用户预先定义的深度学习算法的单机训练代码。
118.或通过python解释器对所述模型对象解析后生成语法树,再对所述语法树进行分析,得到所述模型计算图。
119.其中,所述对所述模型计算图进行转换,得到转换后的模型计算图的步骤具体包括:
120.用预先定义的中间表示法对所述模型计算图重新进行表示,得到转换后的模型计算图。
121.其中,所述将转换后的模型计算图进行均衡处理,得到均衡计算图的步骤具体包括:
122.通过将转换后的模型计算图中的大节点进行拆分操作,以及将转换后的模型计算图中的相邻小节点进行聚合操作,得到均衡计算图。
123.其中,所述根据所述均衡计算图,创建多面体模型实例,并根据所述多面体模型实例输出并行策略的步骤具体包括:
124.创建一个多面体优化模型;根据所述均衡计算图初始化所述多面体优化模型,得到一个多面体模型实例;
125.根据所述多面体模型实例和用户输入的计算资源数量,输出并行策略。
126.其中,所述调用底层框架执行所述并行策略的步骤具体包括:
127.调用底层框架的执行api来执行所述并行策略。
128.进一步地,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有自动并行策略搜索程序40,所述自动并行策略搜索程序40被处理器执行时实现如上所述的基于多面体模型建模的自动并行策略搜索方法的步骤;由于上述对该所述基于多面体模型建模的自动并行策略搜索方法的步骤进行了详细的描述,在此不再赘述。
129.综上所述,本发明提供的一种基于多面体模型建模的自动并行策略搜索方法及相关设备,所述基于多面体模型建模的自动并行策略搜索方法包括:根据用户输入的模型对象得到深度学习算法的模型计算图;对模型计算图进行转换,得到转换后的模型计算图;将转换后的模型计算图进行均衡处理,得到均衡计算图;根据所述均衡计算图,创建多面体模型实例,并根据多面体模型实例输出并行策略;调用底层框架执行并行策略。本发明中通过将模型计算图进行转换及均衡处理,并在多面体模型的框架下创建多面体模型实例后,自动输出并行策略,实现了在多面体模型下将不同的算法逻辑进行建模,并自动输出并行策略过程,提升了并行策略搜索的效率,降低了深度学习算法的分布式训练开发和效率调优难度。
130.可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1