一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

异构集群中的机器学习工作负载编排的制作方法

2022-07-22 22:53:08 来源:中国专利 TAG:

异构集群中的机器学习工作负载编排


背景技术:

1.机器学习工作负载可以分布在多个计算节点之间。一些工作负载可以彼此独立地被并行处理,而其他工作负载可以被顺序地处理。大规模的机器学习应用可以分布在许多计算节点当中。
2.机器学习应用的工作负载分配的数据并行性、模型并行性和流水线并行性方法通常假定具有同构计算资源的专用计算节点是容易地可获得的。因此,恒定的超参数与给定机器学习应用的所有分布式工作负载相关联。
附图说明
3.本文中的书面公开内容描述了非限制性和非详尽的说明性示例。对下面描述的各图中描绘的此类说明性示例中的某些进行参考。
4.图1图示了在异构计算集群当中编排机器学习工作负载的工作负载编排系统的示例框图。
5.图2a图示了经由内部部署(on-premises)计算设备的异构网络中的工作负载编排系统对人工智能应用的集群管理的特定示例。
6.图2b图示了图2a的人工智能调度器的示例子系统的框图。
7.图3图示了在计算机系统中实现的示例工作负载编排系统的框图。
8.图4图示了基于所发现的资源和所估计的资源需求将机器学习应用的工作负载分配到异构计算集群的方法的流程图。
具体实施方式
9.大规模数据处理和复杂应用的执行可以通过将数据处理任务或复杂应用划分成一组离散的工作负载来执行,其中一些工作负载可以被并行地执行或以其他方式处理。如特定工作流可能规定的那样,并行或顺序地编排各种工作流的执行可以由多个计算节点或计算节点集群(计算集群)来执行。每个计算节点可以就可用的计算资源而言来定义。类似地,计算集群可以就多个计算节点的集体可用计算资源而言来定义。如本文中所使用的,计算集群包括至少一个计算节点,但是可以包括多个计算节点。在云计算环境中,可以选择各种计算节点来具有同构或接近同构的计算资源。一些任务(诸如,大规模数据处理)可以基于可用计算资源和离散计算节点的数目被划分成任何数目的越来越小且越来越简单的并行处理工作流。
10.相比之下,一些复杂的应用(诸如,人工智能应用和机器学习应用)可以被划分成有限数目的工作负载,以用于由分布式计算集群执行。例如,在不破坏工作负载的功能的情况下,机器学习应用内相关联的工作负载中的一些不能够被进一步细分。如本文中所使用,术语工作负载包括特定的计算作业或任务以及相关联或基础的数据集。每个计算作业或任务可以包括针对关于相关联数据集要采取的动作的指令。
11.编排和/或调度系统编排其中工作负载中每一个被不同计算集群执行的次序,并
且随着学习进展,控制各种工作负载之间的所计算数据(诸如,所学习或训练的参数)的交换。在云计算环境中,其中计算集群可以具有同构或接近同构的计算资源,假设每个工作流正在以相同的速度来学习或以其他方式进展。因此,计算节点可以同步地传送和交换机器学习参数,而没有任何一个计算节点的显著资源碎片或未充分利用。
12.高效地管理与人工智能和机器学习应用相关联的工作负载变得越来越重要。人工智能和机器学习模型可以在专用的高端服务器或工作站中被训练,该高端服务器或工作站具有多个gpu或机器学习加速器(mla),作为集群或数据中心的一部分(例如,在云中)。所述模型稍后被部署在云中或边缘处以用于推理,并且它们为了更好的数据驱动决策来生成见识。
13.例如,一些人工智能或其他机器学习模型利用成组调度(gang scheduling),在其中,该应用的所有工作负载被调度用于由一组分布式计算集群来并发执行。由一个计算节点执行的工作负载的一些部分可依赖于或以其他方式利用由执行其他工作负载的其他计算集群提供的机器学习参数。在同构计算集群的网络中,每个计算节点可以同时准备好例如彼此交换机器学习参数。
14.然而,在许多实例中,成组调度可能导致共享集群中的资源碎片和/或低利用率。考虑到图形处理单元(gpu)通常被建模为不能够以精细粒度被共享的整体式资源(monolithic resource),这个尤其是正确的。此外,一些人工智能或其他机器学习模型(诸如,基于随机梯度下降(sgd)的那些)利用计算集群之间和/或个体计算设备之间的参数的交换。
15.在一些实例中,可能期望使用内部部署计算设备和/或边缘设备来执行人工智能或其他机器学习应用。与云计算环境中不同,内部部署计算设备和边缘设备可以每个具有广泛不同的计算资源。因此,虽然云计算环境可以被建模为具有同构计算资源的多个分布式计算集群,但是内部部署和/或边缘设备网络被更准确地描述为具有异构计算资源的多个分布式计算集群。
16.计算资源的示例在没有限制的情况下包括中央处理单元(cpu)资源、gpu资源、易失性存储器资源、网络通信能力、持久性存储资源等。其计算资源相同或相差小于1.5倍的计算集群可以被描述为同构的,而其计算资源相差大于1.5倍的计算集群可以被描述为异构的。例如,可以就可用易失性存储器、可用持久性存储装置、处理器时钟速度、每秒浮点运算(“flops”)、计算核心或处理器的数目、存储器速度、网络带宽等中的一个或多个的函数而言来量化和比较同构或异构计算资源的计算资源。异构计算网络中的机器学习工作负载的指派可能导致一些计算集群的利用不足和/或计算集群之间的异步学习参数交换。
17.当前描述的系统和方法为异构计算集群提供了机器学习模型感知和资源感知的工作负载调度,该异构计算集群诸如在内部部署计算设备和边缘设备的许多网络中找到的那些。该系统可以基于与每个相应工作负载相关联的计算需求和每个相应计算集群的可用计算资源来将工作负载与计算集群进行匹配。为了补偿每个计算集群的不同处理速度,可以基于工作负载被指派到的计算集群的计算资源来定义或调整与每个工作负载相关联的超参数。
18.作为简单的示例,如果第一计算集群具有两个gpu,并且被指派了具有批大小超参数6,000的工作负载,则具有四个相同的gpu的第二计算集群可以被指派具有批大小超参数
12,000的类似工作负载。更一般地,机器学习模型中的每个工作负载的批大小、时期和/或学习速度超参数可以基于每个相应工作负载被指派到的计算集群的计算资源以及与每个相应工作负载相关联的数据集被单独地定义和/或调整。
19.在各种示例中,可以选择指派到每个计算集群的(多个)工作负载的超参数,以改进整体学习结果,减少训练时间,使开销通信最小化,使通信和机器学习参数交换同步,和/或使计算资源利用率或效率最大化。在一些示例中,该系统可以执行定义成无状态或有状态的工作负载,以便于迁移和碎片整理。
20.在许多实例中,内部部署计算设备和/或边缘设备的网络不仅具有异构计算资源,它们还可以由若干用户和/或组织共享。例如,异构计算环境可以包括部署在相同子网中的工作站/服务器池。作为另一示例,异构计算环境可以包括经由内联网或经由互联网连接的多个边缘设备,诸如物联网(iot)设备、网关、自主汽车等。
21.用于异构计算集群的网络中的工作流的模型感知和资源感知调度的当前描述的系统和方法可以被应用于或用于修改用于集群管理、机器学习、深度学习、计算机视觉等的各种各样的现有技术和方法。例如,在apache mesos
tm
、kubernetes
tm
、分层支配资源公平性(drf)和分层最大-最小公平性架构中阐述的基本集群管理方法可以被修改以并入本文中公开的概念。本文中描述的概念可以被添加到现有的集群管理架构。因此,集群管理架构的现有功能可以被增强,以允许基于每个不同计算集群的所标识的可用计算资源以及数据集将超参数动态指派到工作负载。
22.在一个示例中,工作负载编排系统包括发现子系统,以标识异构计算集群的网络中的每个计算集群的特定计算资源。清单子系统接收或生成清单,该清单描述了与诸如人工智能应用或其他机器学习应用之类的应用相关联的每个工作负载的资源需求。该清单可以例如指定对于特定工作负载所需求的计算资源(例如,就cpu核心的数目、gpu资源、存储器资源、策略等而言)。放置子系统可以通过匹配或映射每个工作负载的资源需求和每个计算集群的计算资源来将每个工作负载指派到计算集群中的一个。放置子系统可以在进一步考虑亲和性、反亲和性和/或同地性约束和策略的情况下指派每个工作负载。自适应建模子系统可以根据每个相应工作负载被指派到的计算集群的所标识的计算资源以及数据集来动态地定义(例如,建立、设置或修改)每个工作负载的超参数。
23.各种模块、系统和子系统在本文中被描述为实现功能和/或执行各种动作。在许多实例中,模块、系统和子系统可以被划分成子模块、子系统,或者甚至作为子系统的子部分。模块、系统和子系统可以在硬件中实现,或者作为存储在例如非暂时性计算机可读介质中的处理器可执行指令来实现。一些示例可以被具体实施为计算机程序产品,该计算机程序产品包括其上具有存储的指令的非暂时性计算机和/或机器可读介质,所述指令可以用于对计算机(或另一电子设备)进行编程以执行本文中描述的过程。
24.可以通过参考附图来进一步理解本公开的示例。容易理解的是,如在本文中的附图中一般地描述和图示的所公开的示例的部件可以以各种各样不同的配置来布置和设计。因此,对本公开的系统和方法的示例的以下详细描述并不旨在限制如所要求保护的本公开的范围,而仅仅是代表本公开的可能示例。此外,方法的元素不一定需要以任何特定的次序执行,或者甚至不一定需要顺序地执行,元素也不需要仅执行一次,除非另有指定。在一些情况下,没有详细地示出或描述公知的特征、结构或操作。
25.图1图示了在异构计算集群130当中编排机器学习工作负载的工作负载编排系统150的示例框图100。诸如人工智能应用或其他机器学习应用之类的应用服务105可以与工作负载编排系统150通信以用于分布式执行。工作负载编排系统150包括发现子系统152、自适应建模子系统154、放置子系统156和清单子系统158。
26.发现子系统152标识或以其他方式概述作为异构计算集群130的一部分的计算集群a、b、c和z(131、132、133和139)中的每一个的个体计算资源。异构计算集群130的网络可以包括任何数目的计算集群,但是在该示例中仅图示了四个。计算集群a、b、c和z(131、132、133和139)可以具有计算资源的各种组合,由每个计算集群131-139的右下角中的条形图以图形方式来说明。例如,每个计算集群131-139可以具有不同的cpu资源、gpu资源、易失性存储器资源、网络带宽、网络时延特性、持久性存储资源等。
27.在一些示例中,发现子系统152可以标识每个计算集群131-139的总(例如,理论上的)计算资源、每个计算集群131-139的当前可用计算资源、和/或每个计算集群131-139的计算资源在未来时间窗口期间的预期的或所调度的可用性。一些计算集群可具有彼此相同的计算资源,而其他集群可能是异构的。
28.清单子系统158可以维持描述或指定了实现应用服务105的多个工作负载中的每一个的资源需求的清单。在一些示例中,清单子系统158基于由发现子系统152标识的计算集群131-139的计算资源将应用服务105划分成多个工作负载。例如,工作负载可以被有意地选择成具有对应于计算集群131-139的所标识的计算资源的资源需求。在其他实施例中,清单子系统158可以接收描述了例如由应用服务105独立于计算集群131-139的所标识的计算资源而指定的预定义工作负载的资源需求的清单。
29.放置子系统156将每个工作负载分配到计算集群131-139中的一个。例如,放置子系统156可以通过将每个相应工作负载的资源需求与计算集群131-139中的每一个的所标识的计算资源进行匹配来将清单子系统158中定义的应用服务105的工作负载与计算集群131-139进行匹配。
30.在一些示例中,放置子系统156实现资源感知的工作负载调度,在其中资源需求包括对应于计算集群131-139的所标识的计算资源的度量(例如,cpu资源、gpu资源、vcpu、易失性存储器资源、网络带宽、网络时延特性、持久性存储资源等)。在其他示例中,放置系统156附加地实现了模型感知的工作负载调度,在其中对计算集群131-139的工作负载的分配进一步基于工作负载的同地性、反亲和性和/或亲和性约束和策略。
31.在一些示例中,放置子系统156可以基于可用的计算资源来放松或忽略局部性约束。如本文中所描述,可以通过迁移和碎片整理来解决结果得到的碎片。也就是说,虽然放置子系统156可以实现资源感知和模型感知的工作负载指派,但是有时基于可用计算资源的限制,模型感知的约束可能被放松或者甚至被忽略。在部分或完全执行之后,工作负载编排系统150可以将工作负载从一个计算集群131-139迁移到另一计算集群131-139,以满足亲和性和/或同地性约束。工作负载编排系统150可以实现允许恢复机器学习模型的检查点方法,以避免重新运行,例如从开始来训练。
32.自适应建模子系统154根据每个相应工作负载被指派到的计算集群131-139的所标识的计算资源来设置、调整或以其他方式定义每个工作负载的超参数。由于计算集群a和b(分别为131和132)的不同计算资源,指派到计算集群a 131的工作负载的超参数可能不同
于指派到计算集群b 132的工作负载的超参数。例如,与指派到计算集群b-z(132-139)的(多个)工作负载相比,可以向指派到计算集群a 131的(多个)工作负载指派不同的批大小、时期数目、学习速度和/或其他超参数。该系统可以通过动态地修改指派到各种异构计算集群131-139的工作负载的超参数来减少掉队问题,以同步或更紧密地同步工作负载的执行。
33.图2a图示了经由工作负载编排系统200的人工智能应用204的集群管理的特定示例,该工作负载编排系统200包括清单202、人工智能调度器206、集群管理器210和注册表214。工作负载编排系统200可以在内部部署计算设备212的异构网络中实现集群管理。清单202可以指定与人工智能应用204相关联的多个工作负载中的每一个的资源需求。集群管理器210、消息队列208和人工智能调度器206可以是放置子系统的部件,该放置子系统通过例如将每个相应工作负载的资源需求与每个相应计算设备的所标识的计算资源进行匹配来将人工智能应用204的每个工作负载分配到内部部署计算设备212的网络中的计算设备中的一个。
34.如先前所描述,注册表214可以由发现子系统来维持。在一些示例中,注册表214可以是标识内部部署计算设备212的网络中的计算设备中的每一个的计算资源的动态数据库。工作负载编排系统200还可以根据内部部署计算设备212的网络中的计算设备的所标识的计算资源来设置、调整或以其他方式定义每个所指派的工作负载的超参数。当计算资源变得可用时,发现子系统可以获取或保留计算资源。因此,因为计算资源可用性是动态的,所以工作负载编排系统200可以使用滞后裕度来获取具有适当的局部性和/或亲和性的资源,以满足工作负载的对应资源需求。
35.工作负载编排系统200可以以资源感知的方式将工作负载指派到内部部署计算设备212的网络中的计算设备。也就是说,工作负载编排系统200可以通过将每个计算设备的计算资源与每个工作负载的资源需求进行匹配或映射来将工作负载指派到计算设备。在一些示例中,工作负载编排系统200还可以以模型感知的方式将工作负载指派到计算设备。也就是说,工作负载编排系统200可以在进一步考虑工作负载的同地性约束、反亲和性和/或亲和性约束和策略的情况下将工作负载指派到计算设备。
36.工作负载编排系统200可以隔离人工智能应用201的工作负载(例如,机器学习训练和干扰作业)。工作负载编排系统200可以至少部分地基于与将工作负载指派到具有增加的gpu资源和/或其他加速器资源的计算益处的分布式计算设备相关联的网络通信成本的评估来将工作负载指派到内部部署计算设备212的网络中的计算设备。
37.在一些示例中,工作负载编排系统200可以针对内部部署计算设备212的网络中的计算设备的计算资源实现抢占策略,以实施资源共享(例如,共享文件系统216)。可以设置抢占策略,以避免使用任何一个计算设备的全部容量和/或减轻队头阻塞(head-of-line)问题。在一些示例中,如果较高优先级的作业到达消息队列208中,同时存在运行的较低优先级作业,则系统200可以释放内部部署计算设备212的网络中的计算设备的计算资源,以集中于较高优先级作业。例如,较低优先级作业可能被暂时挂起,而较高优先级作业被执行。
38.图2b图示了图2a的人工智能调度器206的示例子系统230-238的框图。清单202、集群管理器210、内部部署计算设备212的网络以及寄存器214在上面图2a的上下文中被描述。在所图示的示例中,人工智能调度器206包括作业服务子系统230、资源管理器子系统232、
人工智能或机器学习模型调整器子系统234、放置引擎子系统236和剖析器(profiler)引擎子系统238。各种子系统230-238可以是本文中(例如,结合图1)描述的发现、自适应建模和放置子系统的一部分。
39.图3图示了在计算机系统中实现的示例工作负载编排系统300的框图。如所图示,工作负载编排系统300可以包括经由通信总线320连接到计算机可读存储介质370的处理器330、存储器340和网络接口350。处理器330可以执行或以其他方式处理存储在计算机可读存储介质370中的指令。存储在计算机可读存储介质370中的指令包括实现本文中描述的子系统的操作模块380-386。
40.例如,发现子系统模块380可以发现多个计算集群中的每个计算集群的计算资源。计算集群中的至少一些可以具有不同的计算资源。例如,不同计算集群之间的计算资源在量值上可以相差至少1.5倍(例如,相差2、10、100、1000倍等),并且被认为是异构计算集群。自适应建模子系统模块382可以至少部分地基于每个相应工作负载被指派到的计算集群的计算资源来将超参数与关联于应用(诸如,人工智能或其他机器学习应用)的每个工作负载相关联。
41.放置子系统模块384可以将每个工作负载指派到具有与每个相应工作负载的资源需求相对应的计算资源的计算集群。清单子系统模块386可以标识应用的预定义工作负载的资源需求。替代地,清单子系统模块386可以将诸如机器学习应用之类的应用划分成多个工作负载,其中每个工作负载具有对应于计算集群的计算资源的资源需求。
42.可以从所图示的特定示例来修改子系统和模块的特定布置。因此,各种各样的计算系统、电子设备、计算机可执行指令、网络配置等中的任一个可以被适配成实现本文中描述的概念。
43.图4图示了基于个体计算集群的所发现的计算资源和所估计的工作负载资源需求将诸如人工智能应用之类的应用的工作负载分配到异构计算集群的方法的流程图400。该系统可以在405处标识具有异构计算资源的计算集群的网络中的每个计算集群的可用计算资源。该系统可以标识应用的预定义工作负载的资源需求。替代地,在410处,该系统可以将诸如机器学习应用之类的应用划分成多个工作负载,其中每个工作负载具有对应于计算集群的计算资源的资源需求。
44.在415处,该系统可以将每个工作负载指派到计算集群中的一个。例如,可以基于每个工作负载的资源需求与每个工作负载被指派到的相应计算集群的可用计算资源之间的匹配来将每个工作负载指派到计算集群中的一个。在420处,该系统可以根据每个相应计算集群的所标识的计算资源以及数据集来动态地定义每个工作负载的超参数。
45.上面描述了并且在各图中图示了本公开的特定示例。然而,要领会的是,可以对上面详述的特定配置和部件进行许多适配和修改。在一些情况下,没有详细示出或描述公知的特征、结构和/或操作。此外,所描述的特征、结构或操作可以以任何合适的方式被组合。还要领会的是,如一般描述的以及如结合本文中的各图描述的示例的部件可以以各种各样不同的配置来布置和设计。因此,设想了示例的所有可行的排列和组合。此外,要领会的是,可以对上面描述的示例的细节进行改变,而不脱离其基本原理。
46.在上面的描述中,出于简化本公开的目的,有时将各种特征聚集在单个示例、图或其描述中。然而,这个公开方法不要被解释为反映了如下意图:即,现在提出或未来提出的
任何权利要求要求比那个权利要求中明确记载的特征更多的特征。更确切地说,要领会的是,发明的方面在于比任何单个前述公开示例的所有特征更少特征的组合。权利要求在此明确被并入到本详细描述中,其中每个权利要求独立地作为单独的示例。本公开包括独立权利要求及其从属权利要求的所有排列和组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献