处理机器学习模型的方法、电子设备和计算机程序产品技术

技术编号:33066017 阅读:14 留言:0更新日期:2022-04-15 09:56
本公开的实施例涉及处理机器学习模型的方法、电子设备和计算机程序产品。该方法包括:获取计算图,其中节点表示与机器学习模型有关的函数,有向边表示函数之间的依赖关系;确定计算图的有顺序的多个部分,它们将按照该顺序被执行并且每个部分中的节点所对应的函数能够被并行执行;以及向多个部分分配用于执行相应部分中的节点所对应的函数的执行实例,被分配给每个部分的执行实例的数目与执行该部分中的节点所对应的函数所需的时间相关联。使用本公开的技术方案,可以通过动态调节每个部分中的执行实例的数目、充分利用每个处理单元的计算资源以及尽可能保存更少的模型参数来促进机器学习模型的并行计算以及提高处理机器学习模型的效率。学习模型的效率。学习模型的效率。

【技术实现步骤摘要】
处理机器学习模型的方法、电子设备和计算机程序产品


[0001]本公开的实施例总体上涉及人工智能领域,具体地涉及处理机器学习模型的方法、电子设备和计算机程序产品。

技术介绍

[0002]近年来,随着人工智能技术的进步,机器学习或深度学习(DL)已经推动了许多领域的发展。与此同时,机器学习模型也变得越来越复杂,需要使用数据集越大,因此执行这样的机器学习模型需要更多的计算资源。目前,由于诸如中央处理单元等处理单元的计算能力以及与外围计算设备之间通信带宽的限制,单个机器的计算资源往往难以满足大规模机器学习模型的要求,从而无法有效地部署机器学习模型。

技术实现思路

[0003]本公开的实施例提供了管理磁盘的方法、电子设备和计算机程序产品。
[0004]在本公开的第一方面中,提供了一种处理机器学习模型的方法。该方法包括:获取计算图,所述计算图中的节点表示与所述机器学习模型有关的函数,所述计算图中的有向边表示所述函数之间的依赖关系;确定所述计算图的有顺序的多个部分,所述多个部分将按照所述顺序被执行并且每个部分中的节点所对应的函数能够被并行执行;以及向所述多个部分分配用于执行相应部分中的节点所对应的函数的执行实例,被分配给每个部分的执行实例的数目与执行所述部分中的节点所对应的函数所需的时间相关联。
[0005]在本公开的第二方面中,提供了一种电子设备。该设备包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:获取计算图,所述计算图中的节点表示与所述机器学习模型有关的函数,所述计算图中的有向边表示所述函数之间的依赖关系;确定所述计算图的有顺序的多个部分,所述多个部分将按照所述顺序被执行并且每个部分中的节点所对应的函数能够被并行执行;以及向所述多个部分分配用于执行相应部分中的节点所对应的函数的执行实例,被分配给每个部分的执行实例的数目与执行所述部分中的节点所对应的函数所需的时间相关联。
[0006]在本公开的第三方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
[0007]提供
技术实现思路
部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的实施例的关键特征或必要特征,也无意限制本公开的实施例的范围。
附图说明
[0008]通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开的示例性实施例中,相同的参考标号通常代表相同部件。
[0009]图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图;
[0010]图2示出了根据本公开的实施例的处理机器学习模型的方法200的流程图;
[0011]图3示出了根据本公开的实施例的将计算图划分为多个部分的方法300的流程图;
[0012]图4A至图4D分别示出了根据本公开的实施例的执行实例分配过程401至404的示意图;以及
[0013]图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。
[0014]在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
[0015]下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以按照各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0016]在本文中使用的术语“包括”及其变形表示开放性包括,例如,“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0017]在使用机器学习模型处理数据时,推理应用可以同时针对许多用户设备,例如,移动电话或自动驾驶车辆,提供服务。从推理应用的角度来看,所有这些数据帧都是在来自相同或不同用户设备的其他数据帧上具有独立推理结果的应用程序的独立样本。
[0018]在传统的机器学习模型处理中,可以采取N实例解决方案或者诸如流水线并行解决方案。然而,在采取N实例解决方案时,需要将整个模型加载到每个执行实例中,因此这种解决方案即使在具有充足的计算资源时,例如,在具有充足的中央处理单元核心或者诸如图形处理单元(GPU)的专用处理单元核心时,可以可能导致没有足够的存储器用于新的推理应用实例。尽管有些传统解决方案涉及对机器学习模型进行划分,但所采用的划分算法是基于每秒浮点运算次数(FLOP)的计算成本,但由于估计偏差或者由于计算图所限定的计算输入/输出限制,有可能导致所划分的不同部分的负载无法被平衡,从而导致流水线的停滞。同时,针对不同处理单元,例如,中央处理单元、专用处理单元或者现场可编程门阵列,用于每秒浮点运算次数计算的时间也是不同的。因此,这样的传统解决方案只能在同种类计算单元中使用。再者,这样的传统解决方案中的所划分的部分的数目是通过计算单元的数目而被静态确定的,因此有时由于计算图所限定的计算输入/输出限制,对部分的划分将非常难以实现。此外,上述传统解决方案中的流水线对于每个所划分的部分仅使用单个执行实例,因此即使在计算设备中具有充足的计算资源,这些计算资源也无法被流水线充分
使用。
[0019]为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,本公开的实施例提出了一种处理机器学习模型的方案。采用这种方案,处理机器学习模型的流水线中的所划分的部分的数目是基于对计算图的划分,从而对于不同的计算图,流水线中的所划分的部分的数目是动态地。因此,本公开的处理机器学习模型的方案能够适应性地处理不同的机器学习模型,并且能够针对不同的机器学习模型向所划分出的不同部分分配与执行各个部分中的节点所对应的函数所需数目的执行实例。
[0020]图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图。根据本公开的实施例,图1中所示的计算图102是示例环境100中的初始输入数据。计算图102包括节点A 104、节点B 106、节点C 108、节点D 110和节点E 112。计算图102中的节点表示与机器学习模型有关函数。计算图102还包括函数之间的依赖关系,例如,计算图102中的有向边表示与有向边的终点相对应的函数的输入依赖于与有向边的起点相对应的函数的输出。
[0021]计算图102中每个节点表示机器学习模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理计算图的方法,所述方法包括:获取计算图,所述计算图中的节点表示与所述机器学习模型有关的函数,所述计算图中的有向边表示所述函数之间的依赖关系;确定所述计算图的有顺序的多个部分,所述多个部分将按照所述顺序被执行并且每个部分中的节点所对应的函数能够被并行执行;以及向所述多个部分分配用于执行相应部分中的节点所对应的函数的执行实例,被分配给每个部分的执行实例的数目与执行所述部分中的节点所对应的函数所需的时间相关联。2.根据权利要求1所述的方法,其中向所述多个部分分配执行实例包括:基于所述多个部分中的第一部分中的节点所对应的函数,确定用于提供被分配给所述第一部分的执行实例的处理单元的类型;以及向所述第一部分分配由所述类型的处理单元提供的执行实例。3.根据权利要求1所述的方法,其中向所述多个部分分配执行实例包括:确定待分配给所述多个部分中的第一部分的执行实例;如果待分配给所述第一部分的执行实例来自多个处理单元,将所述第一部分分为多个子部分;以及向每个子部分分配执行实例,被分配给每个子部分的执行实例来自不同的处理单元,被分配给每个子部分的执行实例的数目与执行所述子部分中的节点所对应的函数所需的时间相关联。4.根据权利要求1所述的方法,其中向所述多个部分分配执行实例包括:向所述多个部分中的第一部分分配预定数目的执行实例;并且其中所述方法还包括:在执行所述第一部分中的节点所对应的函数期间,调整被分配给所述第一部分的执行实例。5.根据权利要求4所述的方法,其中调整被分配给所述第一部分的执行实例包括:回收所述预定数目的执行实例中的、在执行所述第一部分中的节点所对应的函数期间未被使用的执行实例。6.根据权利要求4所述的方法,其中调整被分配给所述第一部分的执行实例包括:如果确定所述预定数目少于执行所述第一部分中的节点所对应的函数所需要的执行实例的数目,确定需要向所述第一部分增加的执行实例的数目;向所述第一部分分配所确定的数目的执行实例。7.根据权利要求1所述的方法,其中确定所述计算图的所述多个部分包括:确定所述计算图的多个节点的入度,一个节点的入度表示指向该节点的有向边的数目;以及基于所述入度来确定所述计算图的所述多个部分。8.根据权利要求7所述的方法,其中基于所述入度来确定所述计算图的所述多个部分包括迭代地执行如下动作:选择所述计算图的第一部分,使得所述第一部分中的每个节点具有预定的阈值入度;以及移除所述计算图中与所述第一部分中的节点有关的有向边和所述第一部分,以更新计
算图。9.根据权利要求1至8中的任一项所述的方法,其中所述执行实例由以下至少一项提供:中央处理单元;以及专用处理单元。10.一种电子设备,包括:至少一个处理单元;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动...

【专利技术属性】
技术研发人员:刘金鹏李锦
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1