CN114626552A - 机器学习模型的切分方法和装置 - Google Patents
机器学习模型的切分方法和装置 Download PDFInfo
- Publication number
- CN114626552A CN114626552A CN202210303685.1A CN202210303685A CN114626552A CN 114626552 A CN114626552 A CN 114626552A CN 202210303685 A CN202210303685 A CN 202210303685A CN 114626552 A CN114626552 A CN 114626552A
- Authority
- CN
- China
- Prior art keywords
- segmentation
- machine learning
- learning model
- directed graph
- nodes
- 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
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
说明书披露一种机器学习模型的切分方法和装置。该方法包括:为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;基于所述切分节点确定机器学习模型的切分方式集合;针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
Description
技术领域
本说明书涉及人工智能领域,尤其涉及一种机器学习模型的切分方法和装置。
背景技术
随着人工智能技术的快速发展,机器学习模型的规模越来越大,很多机器学习模型的参数已经扩展到千亿级别,甚至万亿级别。而硬件的存储、计算资源是有限的,大型机器学习模型无法放到一台硬件设备中进行训练或推理,这就需要对机器学习模型进行切分,然后将切分后的机器学习模型部署到不同的硬件设备中进行训练或推理。目前,通常采用人工分析的方式,根据经验人为对模型进行切分,需要不断的测试和调整切分方式,费时费力、效率低下。
发明内容
有鉴于此,本说明书提供一种机器学习模型的切分方法和装置。
具体地,本说明书是通过如下技术方案实现的:
一种机器学习模型的切分方法,包括:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述连边连接的节点确定为所述有向图的切分节点。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述节点确定为所述有向图的切分节点。
可选的,还包括:
在查找到所述有向图的切分节点后,根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本切分方案;
所述基于所述切分节点确定机器学习模型的切分方式集合,包括:
在所述机器学习模型适用于本切分方案的情况下,基于所述切分节点确定机器学习模型的切分方式集合。
可选的,所述判断所述机器学习模型是否适用于本切分方案,包括:
计算硬件数量与1的差值,作为适用标准值;
判断所述切分节点的数量是否大于等于所述适用标准值;
在所述切分节点的数量大于等于所述适用标准值的情况下,确定所述机器学习模型适用于本切分方案。
可选的,所述硬件性能开销包括:耗时与内存占用量;所述选择硬件性能开销符合开销条件的切分方式作为目标切分方式,包括:
获取耗时最短的切分方式的内存占用量;
判断所述内存占用量是否小于等于占用量阈值;
在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式;
在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
可选的,还包括:
将切分后的机器学习模型部署给硬件进行分布式训练或推理。
一种机器学习模型的切分装置,包括:
有向图生成单元,为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
节点查找单元,在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
方式确定单元,基于所述切分节点确定机器学习模型的切分方式集合;
性能评估单元,针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
模型切分单元,选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
一种机器学习模型的切分装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与机器学习模型的切分逻辑对应的机器可执行指令,所述处理器被促使:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现前述机器学习模型的切分方法。
采用上述实施方式,利用图论理论,为机器学习模型生成对应的有向图,并在所述有向图中查找能够将有向图切分为弱连通图的切分节点,然后基于这些切分节点确定机器学习模型的切分方式集合,并从中选取硬件性能开销符合开销条件的目标切分方式对机器学习模型进行切分。一方面,采用能够将有向图切分为弱连通图的切分节点对机器学习模型进行切分,可确保切分后模型的分布式训练或推理时硬件之间的数据传输量较小。另一方面,选择硬件性能开销符合开销条件的切分方式进行切分,可充分利用硬件性能,提高整体吞吐率。
附图说明
图1是本说明书一示例性实施例示出的一种机器学习模型的切分方法的流程示意图。
图2是本说明书一示例性实施例示出的一种神经网络示意图。
图3是本说明书一示例性实施例示出的一种神经网络对应的有向图的示意图。
图4是本说明书一示例性实施例示出的一种目标切分方式的确定方法的流程示意图。
图5是本说明书一示例性实施例示出的一种有向图示意图。
图6是本说明书一示例性实施例示出的一种去掉有向图的连边后得到的两个有向图的示意图。
图7是本说明书一示例性实施例示出的另一种有向图示意图。
图8是本说明书一示例性实施例示出的另一种去掉有向图的节点后得到的两个有向图的示意图。
图9是本说明书一示例性实施例示出的一种机器学习模型的切分装置所在电子设备的一种硬件结构图。
图10是本说明书一示例性实施例示出的一种机器学习模型的切分装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书提供一种机器学习模型的切分方案,可实现机器学习模型的自动化切分,效率较高,并且大大节省了人力资源。
图1是本说明书一示例性实施例示出的一种机器学习模型的切分方法的流程示意图。
请参考图1,所述机器学习模型的切分方法可包括以下步骤:
步骤102,为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系。
在本说明书中,所述机器学习模型是需要进行切分的模型,在对机器学习模型进行切分后,可将机器学习模型部署到不同的硬件中进行分布式训练或推理。
其中,所述硬件指可独立执行训练或推理任务的硬件模块,其可以是物理意义上的一台独立的设备,也可以是IPU(Image Processing Unit,图像处理单元)、GPU(GraphicsProcessing Unit,图形处理器)等。
所述机器学习模型可以是神经网络模型,也可以是聚类模型等,本说明书对机器学习模型的类型与结构不作特殊限制。所述机器学习模型可应用在诸多领域,例如文本处理、图像处理、语音处理、自动驾驶等。机器学习模型的算子是模型中的计算单元,例如卷积神经网络(Convolutional Neural Networks,CNN)中的图卷积算子、激活算子等。
在本说明书中,可以将机器学习模型中的算子作为节点,算子之间的输入/输出关系作为连边为机器学习模型生成对应的有向图。
以图2所示的全连接神经网络为例,将该全连接网络中的算子作为节点,输入输出关系作为连边,可生成图3所示的有向图。
步骤104,在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点。
弱连通图(weakly connected components)是指将有向图的所有的有向边替换为无向边,所得到的图称为原图的基图,如果一个有向图的基图是连通图,则有向图是弱连通图(也称为弱连通分量)。
在本说明书中,可在所述机器学习模型对应的有向图中查找能够将所述有向图切分为弱连通图的节点作为切分节点。
例如,可基于所述有向图的连边进行切分节点的查找。
再例如,也可基于所述有向图的节点进行切分节点的查找。
上述切分节点的查找将在后续实施例中详细介绍。本说明书采用能够将有向图切分为弱连通图的节点作为切分节点,切分节点是切分后得到的弱连通图之间的枢纽,可使得弱连通图之间的数据传输量相对较少,后续采用这些切分节点进行机器学习模型的切分和分布式部署,可确保分布式训练或推理过程中硬件之间的数据传输量相对较少,继而节省网络资源和带宽,提升分布式训练或推理的效率。
步骤106,基于所述切分节点确定机器学习模型的切分方式集合。
基于前述步骤104,通常可查找到多个切分节点,本步骤中可从这些切分节点中提取出部分或全部的切分节点,以用于进行后续的机器学习模型切分,提取出的这些用于后续机器学习模型切分的切分节点形成切分节点组合。接着,针对每个切分节点组合,可确定该切分节点组合对应的切分方式,最终得到多种切分方式组成的切分方式集合。
在一个例子中,为了充分利用硬件资源,机器学习模型切分后得到的子模型的数量与硬件数量相同,提取出的切分节点组合中切分节点的数量是硬件数量与1的差值。
举例来说,假设硬件数量是4,在充分利用硬件资源的情况下,会将机器学习模型切分为4个子模型,这样,可将这4个子模型部署到4个不同的硬件中进行后续训练或推理。而将机器学习模型切分为4个子模型,需要3个切分节点,即切分节点组合中切分节点的数量是硬件数量4与1的差值。
在另一个例子中,机器学习模型切分后得到的子模型的数量可小于硬件数量,提取出的切分节点组合中切分节点的数量小于硬件数量与1的差值。
举例来说,仍假设硬件数量是4,可将机器学习模型切分为3个子模型,甚至更少。而将机器学习模型切分为3个子模型,需要2个切分节点,即切分节点组合中切分节点的数量小于硬件数量4与1的差值。
在本说明书中,以充分利用硬件资源,使得切分得到的子模型数量与硬件数量相同为例,在确定机器学习模型的切分节点组合时,可先确定切分节点组合中切分节点的数量,即计算硬件数量与1的差值,然后从前述步骤104中查找得到的所有切分节点中选取相应数量的切分节点,得到切分节点组合,在本说明书中,可得到多种切分节点组合。
较为简单的,在确定切分节点组合中切分节点的数量后,可基于组合公式确定切分节点组合的种类。
序号 | 切分节点组合 |
1 | 切分节点1、切分节点2、切分节点3 |
2 | 切分节点1、切分节点2、切分节点4 |
3 | 切分节点1、切分节点2、切分节点5 |
4 | 切分节点1、切分节点3、切分节点4 |
5 | 切分节点1、切分节点3、切分节点5 |
6 | 切分节点1、切分节点4、切分节点5 |
7 | 切分节点2、切分节点3、切分节点4 |
8 | 切分节点2、切分节点3、切分节点5 |
9 | 切分节点2、切分节点4、切分节点5 |
10 | 切分节点3、切分节点4、切分节点5 |
表1
请参考表1的示例,在5个切分节点中可确定10种包含3个切分节点的切分节点组合。
在确定出切分节点组合后,针对每个切分节点组合,确定该切分节点组合对应的切分方式。例如,假设切分节点1是切分节点组合中的一个切分节点,在对机器学习模型进行切分时,可将切分节点1与其上游节点划分到一起后进行切分,也可将切分节点1与其下游切分节点划分到一起后进行切分,即针对切分节点1就可以得到两种切分方式。而针对所述切分节点组合中的每个切分节点,都可以按照这样的方法确定切分方式,然后汇总该切分节点组合中所有切分节点可能的切分方式,得到切分方式集合。
表2
以前述切分节点组合:切分节点1、切分节点2和切分节点3为例,切分节点1-切分节点3各有两种切分方式,组合所有可能的切分方式,一共可以确定表2所示的8种切分方式。其中,切分节点后括号内的上代表在切分时,将该节点与其上游节点划分到一起,下代表在切分时,将该节点与其下游节点划分到一起。可选的,在本说明书中,为充分利用硬件资源,在前述步骤104中查找到机器学习模型对应的有向图的切分节点之后,可先根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本说明书记载的切分方案,即本说明书图1实施例所记载的切分方案。
在本例中,若机器学习模型切分后得到的子模型的数量与硬件数量相同,则后续可将子模型部署到所有硬件中进行训练或推理,充分利用硬件资源,进而可确定所述机器学习模型适用于本说明书记载的切分方案,可执行本步骤基于查找到的所述切分节点确定机器学习模型的切分方式集合。
若机器学习模型切分后得到的子模型的数量小于硬件数量,则后续模型部署会存在空闲硬件的情况,未充分利用硬件资源,进而可确定所述机器学习模型不适用于本说明书记载的切分方案,可采用其他方式进行切分,例如人工对机器学习模型进行切分等。
在本例中,先计算硬件数量与1的差值,并将该差值作为适用标准值,然后比较前述步骤104中查找到的切分节点的数量与该适用标准值之间的大小,进而确定所述机器学习模型是否适用于本说明书记载的切分方案。
若切分节点的数量大于等于所述适用标准值,可确定所述机器学习模型适用于本说明书记载的切分方案。
若切分节点的数量小于所述适用标准值,可确定所述机器学习模型不适用于本说明书记载的切分方案。
举例来说,仍假设硬件数量是4,适用标准值是3。若切分节点的数量大于等于3,则可实现将机器学习模型切分为4个子模型,进而确定所述机器学习模型适用于本说明书记载的切分方案。若切分节点的数量小于3,无法将机器学习模型切分为4个子模型,进而确定所述机器学习模型不适用于本说明书记载的切分方案。例如前述步骤104中查找到的切分节点的数量是2,则最多可将机器学习模型切分为3个子模型,后续部署到硬件上进行训练或推理时,会存在空闲硬件,无法充分利用硬件资源。
步骤108,针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销。
基于前述步骤106,在确定切分方式集合后,针对所述切分方式集合中的每种切分方式,可评估该种切分方式对应的硬件性能开销。
其中,所述硬件性能开销是指采用对应的切分方式对机器学习模型进行切分并部署到硬件上进行训练或推理所产生的性能开销。所述硬件性能开销可包括耗时和内存占用量。所述耗时可指硬件的计算时间。
在本说明书中,可采用硬件性能分析工具模拟机器学习模型切分后的分布式训练或者推理,进而评估对应的硬件性能开销,例如可采用Nsight Systems(一种全系统性能分析工具)等工具。
在本说明书中,可评估得到每种切分方式的耗时和内存占用量。
步骤110,选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
在本实施例中,可选择硬件性能开销较小的切分方式作为目标切分方式,进而确保采用目标切分方式对机器学习模型进行切分后分布式训练或推理的整体吞吐率。
请参考图4,目标切分方式的确定方法可包括以下步骤:
步骤402,获取耗时最短的切分方式的内存占用量。
在本说明书中,为提升后续机器学习模型训练或者推理的整体效率,可优选耗时最短的切分方式。
表3
以表2所示的前3种切分方式为例,假设前述步骤108可评估得到表3所示的硬件性能开销。在本步骤中,耗时最短的切分方式为切分方式C,然后可获取其内存占用量40M。
步骤404,判断所述内存占用量是否小于等于占用量阈值。
步骤406,在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式。
步骤408,在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
基于前述步骤402,可判断耗时最短的切分方式的内存占用量是否小于等于占用量阈值。
若耗时最短的切分方式的内存占用量小于等于占用量阈值,可说明采用这样的切分方式对机器学习模型进行切分既能满足后续训练或推理耗时最短,又符合硬件的内存容量限制,可将这种切分方式确定为目标切分方式。
若耗时最短的切分方式的内存占用量大于占用量阈值,则说明采用这样的切分方式对模型进行切分后续训练或推理耗时会超出硬件的内存容量限制,进而可获取耗时次短的切分方式的内存占用量,并进行该内存占用量和占用量阈值的比较。类似的,若耗时次短的切分方式的内存占用量小于等于占用量阈值,可将耗时次短的切分方式确定为目标切分方式,若耗时次短的切分方式的内存占用量仍大于占用量阈值,可继续获取耗时排列在第三小的切分方式的内存占用量,并进行内存占用量大小的比较,本说明书在此不再一一赘述。
仍以表3为例,假设占用量阈值是38M,耗时最短的切分方式C的内存占用量为40M,大于所述占用量阈值,可获取耗时次短的切分方式A的内存占用量,为35M,小于所述占用量阈值,可将切分方式A确定为目标切分方式。
当然,在其他例子中,也可采用其他策略进行目标切分方式的确定,例如,也可先优选内存占用量最小的切分方式,然后判断该切分方式的耗时是否超出耗时阈值等,本说明书对此不作特殊限制。
在本说明书中,在确定目标切分方式后,可采用目标切分方式对机器学习模型进行切分,并可将切分后的机器学习模型部署到不同的硬件中进行分布式训练或推理。
由以上描述可以看出,本说明书利用图论理论,为机器学习模型生成对应的有向图,并在所述有向图中查找能够将有向图切分为弱连通图的切分节点,然后基于这些切分节点确定机器学习模型的切分方式集合,并从中选取硬件性能开销符合开销条件的目标切分方式对机器学习模型进行切分。
一方面,采用能够将有向图切分为弱连通图的切分节点对机器学习模型进行切分,可确保切分后机器学习模型的分布式训练或推理时硬件之间的数据传输量较小。另一方面,选择硬件性能开销符合开销条件的切分方式进行切分,可充分利用硬件性能,提高整体吞吐率。
下面结合具体的例子分别介绍有向图切分点查找的两种实现方式。
一、基于连边进行切分节点的查找
在本说明书中,可遍历机器学习模型对应的有向图的每条连边,针对每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图。
若所述有向图在去掉某条连边后,被切分为两个弱连通图,可将被去掉的连边所连接的两个节点确定为所述有向图的切分节点。
请参考图5所示的某机器学习模型对应的有向图,针对连边AB,去掉该连边AB后,该有向图仍是一张图,未被切分为两个弱连通图。针对连边BC,去掉该连边BC后,该有向图仍是一张图,未被切分为两个弱连通图。针对连边CD,去掉该连边CD后,请参考图6,该有向图被切分为两个有向图,并且,这两个有向图都是弱连通图,即去掉连边CD之后,有向图被切分为两个弱连通图,则可将连边CD连接的节点C和节点D确定为切分节点。
其中,在判断有向图是否为弱连通图时,可将有向图的有向连边均替换为无方向的连边得到基图,然后判断得到的基图是否连通,若基图连通,可确定有向图为弱连通图,若基图不连通,可确定有向图不是弱连通图。
二、基于节点进行切分节点的查找
在本说明书中,还可遍历机器学习模型对应的有向图的每个节点,针对每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图。
若所述有向图在去掉某节点后,被切分为两个弱连通图,可将被去掉的节点确定为所述有向图的切分节点。
请参考图7所示的某机器学习模型对应的有向图,针对节点B,去掉该节点B后,该有向图仍是一张图,未被切分为两个弱连通图。针对节点C,去掉该节点C后,请参考图8,该有向图被切分为两个有向图,并且,这两个有向图都是弱连通图,即去掉节点C之后,有向图被切分为两个弱连通图,则可将节点C确定为切分节点。
在本说明书中,前述基于连边进行切分节点的查找方式可适用于ResNet(残差网络模型)等节点之间只有一条连边的机器学习模型。前述基于节点进行切分节点的查找方式可适用于Inception(一种谷歌网络模型)等节点之间存在多条连边的机器学习模型。
在实际实现中,可先采用去掉连边的方式进行切分节点的查找,若查找不到切分节点,可再采用去掉节点的方式进行切分节点的查找。也可先采用去掉节点的方式进行切分节点的查找,若查找不到切分节点,再采用去掉连边的方式进行切分节点的查找。可选的,还可既采用去掉连边的方式,又采用去掉节点的方式,然后综合这两种方式的查找结果,得到较为全面的切分节点。
由以上描述可以看出,本说明书采用能够将有向图切分为弱连通图的节点作为切分节点,在图论中这种切分节点之间的数据传输量相对较少,后续采用这些切分节点进行机器学习模型切分和分布式部署,可确保分布式训练或推理过程中硬件之间的数据传输量相对较少,进而节省网络资源和带宽,提升分布式训练或推理的效率。
与前述机器学习模型的切分方法的实施例相对应,本说明书还提供了机器学习模型的切分装置的实施例。
本说明书机器学习模型的切分装置的实施例可以应用在电子设备中。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图9所示,为本说明书机器学习模型的切分装置所在电子设备的一种硬件结构图,除了图9所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图10是本说明书一示例性实施例示出的一种机器学习模型的切分装置的框图。
请参考图10,所述机器学习模型的切分装置1000可以应用在前述图9所示的电子设备上,包括有:有向图生成单元1001、节点查找单元1002、方式确定单元1003、性能评估单元1004和模型切分单元1005。
其中,有向图生成单元1001,为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
节点查找单元1002,在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
方式确定单元1003,基于所述切分节点确定机器学习模型的切分方式集合;
性能评估单元1004,针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
模型切分单元1005,选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
可选的,所述节点查找单元1002:
针对所述有向图中的每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述连边连接的节点确定为所述有向图的切分节点。
可选的,所述节点查找单元1002:
针对所述有向图中的每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述节点确定为所述有向图的切分节点。
可选的,所述方式确定单元1003:
在查找到所述有向图的切分节点后,根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本切分方案;
在所述机器学习模型适用于本切分方案的情况下,基于所述切分节点确定机器学习模型的切分方式集合。
可选的,所述方式确定单元1003:
计算硬件数量与1的差值,作为适用标准值;
判断所述切分节点的数量是否大于等于所述适用标准值;
在所述切分节点的数量大于等于所述适用标准值的情况下,确定所述模型适用于本切分方案。
可选的,所述硬件性能开销包括:耗时与内存占用量;所述模型切分单元:
获取耗时最短的切分方式的内存占用量;
判断所述内存占用量是否小于等于占用量阈值;
在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式;
在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
可选的,所述模型切分单元:
将切分后的机器学习模型部署给硬件进行分布式训练或推理。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述机器学习模型的切分方法的实施例相对应,本说明书还提供一种机器学习模型的切分装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与机器学习模型的切分逻辑对应的机器可执行指令,所述处理器被促使:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述连边连接的节点确定为所述有向图的切分节点。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述节点确定为所述有向图的切分节点。
可选的,还包括:
在查找到所述有向图的切分节点后,根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本切分方案;
所述基于所述切分节点确定机器学习模型的切分方式集合,包括:
在所述机器学习模型适用于本切分方案的情况下,基于所述切分节点确定机器学习模型的切分方式集合。
可选的,所述判断所述机器学习模型是否适用于本切分方案,包括:
计算硬件数量与1的差值,作为适用标准值;
判断所述切分节点的数量是否大于等于所述适用标准值;
在所述切分节点的数量大于等于所述适用标准值的情况下,确定所述机器学习模型适用于本切分方案。
可选的,所述硬件性能开销包括:耗时与内存占用量;所述选择硬件性能开销符合开销条件的切分方式作为目标切分方式,包括:
获取耗时最短的切分方式的内存占用量;
判断所述内存占用量是否小于等于占用量阈值;
在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式;
在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
可选的,还包括:
将切分后的机器学习模型部署给硬件进行分布式训练或推理。
与前述机器学习模型的切分方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述连边连接的节点确定为所述有向图的切分节点。
可选的,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述节点确定为所述有向图的切分节点。
可选的,还包括:
在查找到所述有向图的切分节点后,根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本切分方案;
所述基于所述切分节点确定机器学习模型的切分方式集合,包括:
在所述机器学习模型适用于本切分方案的情况下,基于所述切分节点确定机器学习模型的切分方式集合。
可选的,所述判断所述机器学习模型是否适用于本切分方案,包括:
计算硬件数量与1的差值,作为适用标准值;
判断所述切分节点的数量是否大于等于所述适用标准值;
在所述切分节点的数量大于等于所述适用标准值的情况下,确定所述机器学习模型适用于本切分方案。
可选的,所述硬件性能开销包括:耗时与内存占用量;所述选择硬件性能开销符合开销条件的切分方式作为目标切分方式,包括:
获取耗时最短的切分方式的内存占用量;
判断所述内存占用量是否小于等于占用量阈值;
在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式;
在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
可选的,还包括:
将切分后的机器学习模型部署给硬件进行分布式训练或推理。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种机器学习模型的切分方法,包括:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
2.根据权利要求1所述的方法,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每条连边,判断去掉该连边后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述连边连接的节点确定为所述有向图的切分节点。
3.根据权利要求1所述的方法,所述在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点,包括:
针对所述有向图中的每个节点,判断去掉该节点后,所述有向图是否被切分为两个弱连通图;
在所述有向图被切分为两个弱连通图的情况下,将被去掉的所述节点确定为所述有向图的切分节点。
4.根据权利要求1所述的方法,还包括:
在查找到所述有向图的切分节点后,根据所述切分节点的数量与硬件数量,判断所述机器学习模型是否适用于本切分方案;
所述基于所述切分节点确定机器学习模型的切分方式集合,包括:
在所述机器学习模型适用于本切分方案的情况下,基于所述切分节点确定机器学习模型的切分方式集合。
5.根据权利要求4所述的方法,所述判断所述机器学习模型是否适用于本切分方案,包括:
计算硬件数量与1的差值,作为适用标准值;
判断所述切分节点的数量是否大于等于所述适用标准值;
在所述切分节点的数量大于等于所述适用标准值的情况下,确定所述机器学习模型适用于本切分方案。
6.根据权利要求1所述的方法,所述硬件性能开销包括:耗时与内存占用量;所述选择硬件性能开销符合开销条件的切分方式作为目标切分方式,包括:
获取耗时最短的切分方式的内存占用量;
判断所述内存占用量是否小于等于占用量阈值;
在所述内存占用量小于等于所述占用量阈值的情况下,将所述耗时最短的切分方式确定为目标切分方式;
在所述内存占用量大于所述占用量阈值的情况下,获取耗时次短的切分方式的内存占用量,并执行判断所述内存占用量是否小于等于占用量阈值的步骤。
7.根据权利要求1所述的方法,还包括:
将切分后的机器学习模型部署给硬件进行分布式训练或推理。
8.一种机器学习模型的切分装置,包括:
有向图生成单元,为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
节点查找单元,在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
方式确定单元,基于所述切分节点确定机器学习模型的切分方式集合;
性能评估单元,针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
模型切分单元,选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
9.一种机器学习模型的切分装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与机器学习模型的切分逻辑对应的机器可执行指令,所述处理器被促使:
为机器学习模型生成对应的有向图,所述有向图中的节点代表所述机器学习模型的算子,连边代表算子之间的输入或输出关系;
在所述有向图中查找能够将所述有向图切分为弱连通图的切分节点;
基于所述切分节点确定机器学习模型的切分方式集合;
针对所述切分方式集合中的每种切分方式,评估所述切分方式对应的硬件性能开销;
选择硬件性能开销符合开销条件的切分方式作为目标切分方式,并采用所述目标切分方式对所述机器学习模型进行切分。
10.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210303685.1A CN114626552A (zh) | 2022-03-24 | 2022-03-24 | 机器学习模型的切分方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210303685.1A CN114626552A (zh) | 2022-03-24 | 2022-03-24 | 机器学习模型的切分方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114626552A true CN114626552A (zh) | 2022-06-14 |
Family
ID=81904299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210303685.1A Pending CN114626552A (zh) | 2022-03-24 | 2022-03-24 | 机器学习模型的切分方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114626552A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617351A (zh) * | 2022-11-29 | 2023-01-17 | 上海燧原科技有限公司 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
CN116306943A (zh) * | 2023-03-16 | 2023-06-23 | 中国科学院软件研究所 | 一种面向AIoT的多任务本地协同推理方法及系统 |
WO2024098793A1 (zh) * | 2022-11-07 | 2024-05-16 | 华为技术有限公司 | 计算图的处理方法、装置、设备及存储介质 |
-
2022
- 2022-03-24 CN CN202210303685.1A patent/CN114626552A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024098793A1 (zh) * | 2022-11-07 | 2024-05-16 | 华为技术有限公司 | 计算图的处理方法、装置、设备及存储介质 |
CN115617351A (zh) * | 2022-11-29 | 2023-01-17 | 上海燧原科技有限公司 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
CN115617351B (zh) * | 2022-11-29 | 2023-03-21 | 上海燧原科技有限公司 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
CN116306943A (zh) * | 2023-03-16 | 2023-06-23 | 中国科学院软件研究所 | 一种面向AIoT的多任务本地协同推理方法及系统 |
CN116306943B (zh) * | 2023-03-16 | 2023-10-17 | 中国科学院软件研究所 | 一种面向AIoT的多任务本地协同推理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114626552A (zh) | 机器学习模型的切分方法和装置 | |
CN109376615B (zh) | 用于提升深度学习网络预测性能的方法、装置及存储介质 | |
CN111340237B (zh) | 数据处理和模型运行方法、装置和计算机设备 | |
CN110633745B (zh) | 一种基于人工智能的图像分类训练方法、装置及存储介质 | |
CN111126564B (zh) | 一种神经网络结构搜索方法、装置及设备 | |
CN113408634B (zh) | 模型推荐方法及装置、设备、计算机存储介质 | |
JP2019528502A (ja) | パターン認識に適用可能なモデルを最適化するための方法および装置ならびに端末デバイス | |
CN111062467B (zh) | 一种应用于ai异构编译器的自动切分神经网络子图方法 | |
CN111047563B (zh) | 一种应用于医学超声图像的神经网络构建方法 | |
CN113657421B (zh) | 卷积神经网络压缩方法和装置、图像分类方法和装置 | |
CN110046634A (zh) | 聚类结果的解释方法和装置 | |
CN113111804B (zh) | 一种人脸检测的方法、装置、电子设备及存储介质 | |
CN111008631A (zh) | 图像的关联方法及装置、存储介质和电子装置 | |
CN112132279A (zh) | 卷积神经网络模型压缩方法、装置、设备及存储介质 | |
CN113159188A (zh) | 一种模型生成方法、装置、设备及存储介质 | |
CN111368707B (zh) | 基于特征金字塔与密集块的人脸检测方法、系统、设备及介质 | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
CN112861780B (zh) | 一种行人重识别方法、装置、介质和移动机器人 | |
CN109376379A (zh) | 基于最小割向量的多状态流网络性能优化方法及装置 | |
CN116166967B (zh) | 基于元学习与残差网络的数据处理方法、设备和存储介质 | |
CN113392867A (zh) | 一种图像识别方法、装置、计算机设备及存储介质 | |
Arunadevi et al. | Comparison of feature selection strategies for classification using rapid miner | |
CN113157582B (zh) | 测试脚本执行序列确定方法及装置 | |
CN116629341A (zh) | 模型的结构调整方法及装置 | |
CN114547286A (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 |