CN114667507A - 使用基于应用的剖析的机器学习工作负载的弹性执行 - Google Patents
使用基于应用的剖析的机器学习工作负载的弹性执行 Download PDFInfo
- Publication number
- CN114667507A CN114667507A CN202080076568.5A CN202080076568A CN114667507A CN 114667507 A CN114667507 A CN 114667507A CN 202080076568 A CN202080076568 A CN 202080076568A CN 114667507 A CN114667507 A CN 114667507A
- Authority
- CN
- China
- Prior art keywords
- execution
- application
- profile
- resource
- computer
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 246
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 39
- 238000013473 artificial intelligence Methods 0.000 claims description 33
- 238000013468 resource allocation Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 27
- 238000007726 management method Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 12
- 230000002829 reductive effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims 2
- 238000012544 monitoring process Methods 0.000 claims 2
- 230000000875 corresponding effect Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 239000008186 active pharmaceutical agent Substances 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000001902 propagating effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- IAXXETNIOYFMLW-UHFFFAOYSA-N (4,7,7-trimethyl-3-bicyclo[2.2.1]heptanyl) 2-methylprop-2-enoate Chemical compound C1CC2(C)C(OC(=O)C(=C)C)CC1C2(C)C IAXXETNIOYFMLW-UHFFFAOYSA-N 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
实施例涉及用于使用基于应用的剖析来支持机器学习(ML)工作负载的弹性执行的系统、程序产品和方法。生成包括ML应用执行和资源使用数据两者的联合简档。从联合简档识别一个或多个特征和签名,并且构建用于ML应用执行和资源使用的ML执行模型。ML执行模型利用特征和签名,并且被应用来向后续应用执行提供一个或多个指令。ML执行模型的应用支持并使得ML执行能够弹性地分配并从资源管理组件请求一个或多个资源,其中弹性分配支持应用执行。
Description
背景技术
本实施例涉及训练机器学习模型以剖析机器学习工作负载的执行。更具体地,实施例涉及生成应用执行和资源使用的联合简档,以及利用封装在经训练的机器学习模型中的执行模型来与资源管理系统交互以支持机器学习应用执行和对应的性能。
人工智能(AI)涉及针对计算机和与人类相关的计算机行为的计算机科学领域。AI是指机器基于信息能够做出决策时的智能,其最大化了在给定主题中成功的机会。更具体地说,AI能够从数据集学习以解决问题并提供相关的推荐。例如,在人工智能计算机系统领域中,自然语言系统(诸如IBM人工智能计算机系统或其它自然语言问答系统)基于系统获得的知识处理自然语言。为了处理自然语言,可以利用从知识语料库导出的数据来训练系统,但是由于各种原因,产生的结果可能具有不同程度的准确性。
机器学习(ML)是人工智能(AI)的子集,其利用算法来从数据学习并基于该数据创建前瞻。ML是通过创建模型的AI应用,包括能够通过执行未明确编程的任务来证明学习行为的神经网络。ML工作负载需要大的数据集、对数据的快速和并行访问以及用于训练以支持学习的算法。支持ML工作负载的硬件的示例包括但不限于加速器,诸如图形处理单元(GPU)、中央处理单元(CPU)基础结构和存储解决方案。用于ML工作负载的资源使用特性具有通常被收集用于调试和执行时序研究的资源剖析。资源剖析集合当前使用独立于应用或工作负载执行的时序框架。使用相同的时序框架来联合剖析工作负载执行和资源使用以改进工作负载执行和资源使用的相关性将是有利的。此外,联合剖析将使得能够利用不同的ML参数集实现诸如在任务级或在迭代级的细粒度的相关性。因此,在具有支持ML工作负载的适当数量的资源的情况下,联合剖析可以是支持有效和高效的资源使用和工作负载执行的途径。
发明内容
实施例包括用于采用人工智能平台来将高效且有效的ML应用执行与计算资源分配相融合的系统、计算机程序产品和方法。
在一个实施例中,提供了一种用于与人工智能(AI)平台一起使用的系统,以训练和维护ML应用执行建模器,以使用基于应用的剖析来弹性地执行机器学习工作负载。如所示,该系统具有操作地耦合到存储器的处理单元,例如处理器,以及与处理单元通信的AI平台。AI平台嵌入有简档管理器、ML管理器和指导器形式的工具。简档管理器用于生成包括ML应用执行和资源使用数据两者的联合简档。ML管理器用于从联合简档识别一个或多个特征和签名,并且构建用于ML应用执行和资源使用的ML执行模型。ML执行模型利用(一个或多个)特征和(一个或多个)签名。指导器用于应用ML执行模型并向随后的应用执行提供一个或多个指令。指导器的应用支持并使ML执行能够弹性地分配并从资源管理组件请求一个或多个资源,其中所述弹性分配支持应用执行。
在另一个实施例中,提供了一种计算机程序产品,以使用基于应用的剖析来支持ML工作负载的弹性执行。该计算机程序产品包括具有随其实施的程序代码的计算机可读存储介质,其中该程序代码可由处理器执行以训练和维护ML应用执行建模器以使用基于应用的剖析来弹性地执行ML工作负载。提供程序代码以生成包括ML应用执行和资源使用数据两者的联合简档。提供程序代码以从联合简档识别一个或多个特征和签名,并且构建用于ML应用执行和资源使用的ML执行模型。ML执行模型利用(一个或多个)特征和(一个或多个)签名。程序代码应用ML执行模型并向随后的应用执行提供一个或多个指令。程序代码的应用支持并使ML执行能够弹性地分配并从资源管理部件请求一个或多个资源,其中弹性分配支持应用执行。
在又一个实施例中,提供了一种用于使用基于应用的剖析来支持ML工作负载的弹性执行的方法,包括训练和维护ML执行模型以使用基于应用的剖析来弹性地执行ML工作负载。生成包括ML应用执行和资源使用数据两者的联合简档。识别来自联合简档的一个或多个特征和一个或多个签名,并且构建用于ML应用执行和资源使用的ML执行模型。ML执行模型利用(一个或多个)特征和(一个或多个)签名。应用ML执行模型,并且ML执行模型向随后的应用执行提供一个或多个指令。ML执行模型的应用支持并使得ML执行能够弹性地分配并从资源管理组件请求一个或多个资源,其中弹性分配支持应用执行。
根据一个方面,提供了一种计算机系统,包括:处理单元,操作地耦合到存储器;人工智能(AI)平台,与所述处理单元通信,具有使用基于应用的剖析来弹性地执行一个或多个机器学习工作负载的工具,工具包括:简档管理器,用于生成包括机器学习(ML)应用执行和资源使用的联合简档;机器学习管理器,用于从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,ML执行模型利用所识别的一个或多个特征和一个或多个签名;以及指导器,用于应用ML执行模型并且向随后的应用执行提供一个或多个指令,包括ML执行模型弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
根据另一方面,提供了一种使用基于应用的剖析来支持机器学习工作负载的弹性执行的计算机程序产品,计算机程序产品包括具有随其实施的程序代码的计算机可读存储介质,所述程序代码可由处理器执行以:生成包括机器学习(ML)应用执行和资源使用的联合简档;从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,ML执行模型利用所识别的一个或多个特征和一个或多个签名;以及应用ML执行模型并向随后的应用执行提供一个或多个指令,包括弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
根据另一方面,提供了一种方法,包括:生成包括机器学习(ML)应用执行和资源使用的联合简档;从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,ML执行模型利用所识别的一个或多个特征和一个或多个签名;应用ML执行模型并向随后的应用执行提供指令,包括弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
从下面结合附图对当前优选实施例的详细描述中,这些和其它特征和优点将变得显而易见。
附图说明
现在将仅通过示例的方式并参考以下附图来描述本发明的优选实施例:
图1根据优选实施例描绘了用于图示ML联合简档的概述的框图,该ML联合简档用于支持ML应用的高效执行以及对资源的有效使用。
图2根据优选实施例描绘了具有人工智能平台的计算机系统的示意图,该人工智能平台用于支持ML程序的高效执行和计算资源的有效分配和使用。
图3根据优选实施例描绘了图示如图2中所示和所描述的人工智能平台和对应工具及其关联应用程序接口的框图。
图4根据优选实施例描绘了用于图示用于ML建模和计算资源分配的弹性的过程的流程图。
图5根据优选实施例描绘了图示基于云的支持系统的计算机系统/服务器的示例的框图,以实现以上关于图1-4描述的系统和过程。
图6根据优选实施例描绘了图示云计算机环境的框图。
图7根据优选实施例描绘了示出由云计算环境提供的一组功能抽象模型层的框图。
附图中所示的特征仅是一些实施例的说明,而不是所有实施例的说明,除非另有明确指示。
具体实施方式
容易理解,如在这里的附图中一般性描述和示出的,本实施例的部件可以以各种不同的配置来布置和设计。因此,如附图中所呈现的,以下对本实施例的装置、系统、方法和计算机程序产品的实施例的详细描述不旨在限制如所要求保护的实施例的范围,而仅仅是所选实施例的代表。
在整个说明书中,对“选择实施例”、“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在本说明书中各处出现的短语“选择实施例”、“在一个实施例中”或“在实施例中”不一定是指同一实施例。
通过参考附图,将更好地理解所示实施例,其中,相同的部件始终由相同的附图标记表示。以下描述仅意在作为示例,并且仅示出与本文要求保护的实施例一致的设备、系统和过程的某些所选实施例。
机器学习遵循准备数据、训练算法和生成机器学习模型、然后做出和细化预测的过程。机器学习模型通常属于以下基本类别之一:监督机器学习、非监督机器学习、增强机器学习和深度学习。例如,深度学习采用神经网络作为人脑处理信息的方式的模型。神经网络的基本单元被称为神经元,其通常被组织成层。神经网络通过模拟大量类似神经元的抽象版本的互连处理单元来工作。在神经网络中通常有三个部分,包括具有表示输入场的单元的输入层、一个或多个隐藏层、以及具有表示目标场的一个或多个单元的输出层。这些单元以不同的连接强度或权重连接。输入数据被提供给第一层,并且值从每个神经元传播到下一层中的每个神经元。最终,结果从输出层被递送。深度学习复杂神经网络被设计为模仿人脑如何工作,因此可以训练计算机以支持定义不佳的抽象和问题。神经网络和深度学习经常用于图像识别、语音和计算机视觉应用。机器学习可以基于数据学习和创建前瞻。机器学习还可以使用联合剖析数据来获得对以细粒度间隔有效分配资源的洞察,以影响高效的工作负载执行。
可以理解,ML模型具有广泛的硬件要求以适当地支持模型的处理需求。这种硬件资源需求的示例包括但不限于RAM、磁盘空间、GPU和CPU。资源的管理可以被分配以支持在多个ML模型之间共享资源。如这里所示和所描述以及附图中所示,ML工作负载信息与资源信息相关以适当地分配资源来支持应用执行。在执行期间监视和收集ML例程上的资源使用,然后将其用于预测和分配用于随后ML工作负载的资源。因此,ML技术被用于随后的ML工作负载的资源分配。
参考图1,提供了框图(100)来图示支持ML应用的高效执行以及资源的有效使用的ML联合简档的概览。如图所示,开发ML执行模型(110)用于ML应用执行和资源使用。ML执行模型(110)使用机器学习技术来学习、预测和分配用于其它ML应用的资源。更具体地说,ML执行模型(110)是基于ML技术的性能预测模型。使用来自ML应用(120)的先前执行的历史数据和来自先前ML执行模型迭代(130)的最近收集的数据来构建执行模型。ML执行模型(110)的功能是将应用执行性能与适当的计算资源相关。如这里所示,ML执行模型(110)与资源管理系统(140)交互以有效地和高效地将资源定向到一个或多个ML模型以用于应用执行(150)。因此,如本文所示,ML执行模型(110)用作生成或收集应用和资源管理的联合简档的组件。
参考图2,描绘了具有人工智能平台以支持ML程序的高效执行和计算资源的有效分配和使用的计算机系统(200)的示意图。如图所示,提供了通过网络连接(205)与多个计算设备(280)、(282)、(284)、(286)、(288)和(290)通信的服务器(210)。服务器(210)配置有处理单元(212),例如处理器,其通过总线(214)与存储器(216)通信。处理器可以是CPU或GPU。服务器(210)被示为具有人工智能(AI)平台(250)以支持协作来训练机器学习模型作为应用执行和资源使用的联合简档。计算设备(280)、(282)、(284)、(286)、(288)和(290)经由一个或多个有线和/或无线数据通信链路彼此通信并且与其他设备或组件通信,其中每个通信链路可以包括导线、路由器、交换机、发射机、接收机等中的一个或多个。在这种网络化的布置中,服务器(210)和网络连接(205)使得能够进行通信检测、识别和解析。服务器(210)的其它实施例可以与除了这里描述的那些之外的组件、系统、子系统和/或设备一起使用。
AI平台(250)在此被示出为被配置为从各种源接收输入(202)。例如,AI平台(250)可以从网络(205)接收输入,并利用数据源(270),这里也称为语料库或知识库,来创建输出或响应内容。AI平台(250)设置有工具,以支持和实现机器学习协作,并使用基于应用的剖析来弹性地执行机器学习工作负载。
AI平台(250)用作平台以实现和支持应用执行与资源分配和管理之间的协作。在一个实施例中,AI平台(250)将响应输出传送到操作地耦合到服务器(210)的成员,诸如跨网络(205)的计算设备(280)-(290)中的一个或多个。
AI平台(250)在此被示为具有支持神经模型协作的若干工具,包括简档管理器(252)、机器学习(ML)管理器(254)、指导器(256)和资源管理器(258)。简档管理器(252)用于生成或收集包括ML应用执行和资源使用的联合简档。联合简档组合ML应用执行细节和对应于ML执行的资源使用数据。ML应用执行细节的示例包括但不限于批大小、学习速率、迭代次数、模型准确度等。资源的示例包括但不限于所利用的CPU的数量、CPU类型、所利用的GPU的数量、GPU类型等。简档管理器(252)监视或接收来自ML简档的信号,并收集相应ML模型的资源使用,且在一个实施例中,收集作为ML模型的一部分的ML例程的资源使用。更具体地,在本领域中可以理解,ML模型构建或训练以及ML模型内的相应ML例程需要使用包括物理和虚拟资源的计算资源,以便支持例程功能和相应处理。简档管理器(252)从对应的ML模型和作为ML模型的一部分的ML例程收集与这些资源相关联的数据和相关联的资源消耗。所收集的数据被用来预测用于随后ML应用执行的资源分配,无论随后的应用相比之下是相同的、增加的还是减少的,或者具有与当前工作负载不同的一组参数或配置。如这里所示,简档管理器(252)利用至少一个回调,这里示出为回调函数A(252A),来利用一个或多个相关参数对应用执行进行剖析,并且对资源使用信息进行剖析。在一个实施例中,资源使用信息的简档的创建是被使用或需要来支持应用的执行的计算资源的识别,并且在一个实施例中是其概要。因此,简档管理器(252)用于捕获所使用的计算资源的特性和与利用其参数集的应用执行一起的使用。
如这里所示,服务器(210)可操作地耦合到数据源(270)。数据源(270)在此被示出具有从ML应用得到的ML模型库(272)。尽管仅示出了一个库,但是应当理解,数据源(270)可以配置有多个库,并且库(272)是出于说明性目的。库(272)被示出具有ML模型,包括ML模型A(274A)和ML模型B(274B)。ML模型的数量是用于说明性目的,而不应被认为是限制性的。在一个实施例中,ML模型基于主题或功能被组织在库中。ML模型中的每一个被示出为具有操作地耦合或相关联的简档,在本文中也被称为联合简档。更具体地说,ML模型A(274A)用简档A(276A)示出,ML模型B(274B)用简档B(276B)示出。库(272)中的ML模型(274A)和(274B)不必与一个特定简档耦合。ML模型可以用多个联合简档来构建。例如,如图所示,ML模型(274N)被示出为简档的组合,例如,简档X(276C)、简档Y(276D)和简档N(276N)的组合。每个简档将对应的或操作地耦合的模型的执行与资源使用或需求结合以支持操作地耦合的模型的执行。例如,在一个实施例中,ML模型可以用相同的参数但不同的计算资源集合来构建。虽然所得模型是相同的,但由于资源约束,完成的模型收敛时序将是不同的。
此处所示的操作地耦合到简档管理器(252)的ML管理器(254)用于从简档(例如(276A)和(276B))中识别一个或多个特征和签名。特征和签名的示例是机器学习框架、学习批大小、分配的CPU的数量、使用的存储器的大小、每次迭代的执行时间或算法收敛时间。ML管理器(254)在此被示出具有操作地耦合的ML执行模型(254A)。更具体地,模型(254A)是使用ML技术来预测用于ML应用执行的计算资源使用的ML模型。ML管理器(254)构建并管理模型(254A),并执行模型(254A)以通过利用来自对应简档(例如,(276A))的一个或多个特征和签名来评估和预测对应ML模型(例如,(274A))的计算资源需求。在一个实施例中,利用用户输入来得到用于生成联合简档和构建ML模型(254A)的特征和特性(例如签名)的识别。因此,ML管理器(254)用于创建对诸如模型(274A)和(274B)之类的其他ML模型的功能和处理进行建模的ML模型,以促进计算资源分配以支持ML模型处理。
指导器(256)用于应用ML执行模型(254A),并利用来自模型的输出(254B)来向随后的应用执行提供指令。输出(254B)是支持高效和有效地执行一个或多个ML应用所需的计算资源的形式。资源的分配是弹性的,例如动态的,并且在执行期间经受改变。指导器(256)利用基于ML执行模型(254A)的输出(254B)来弹性地分配并从资源管理组件请求一个或多个计算资源以支持应用执行。如这里所示,资源管理器(258)被示为操作地耦合到指导器(256)。在一个实施例中,输出(254B)被转发到资源管理器(258),其具有指示计算资源和对资源的指定以支持应用执行的指令。如这里所讨论的,资源分配被定义为弹性的,例如非静态的。类似地,对应于输出(254B)的指令是资源分配动作的形式。ML执行模型(254A)执行资源分配动作,例如指令,以请求可用资源来支持应用处理。资源分配动作可以相对于先前的应用处理和执行来减少或扩展资源,或者在一个实施例中,资源分配动作可以维护资源请求。类似地,所请求的资源具有相应的属性。资源分配动作识别资源属性以支持应用处理和执行,这与资源分配是弹性的类似。因此,指导器(256)用于支持和处理来自ML模型(254A)的输出。
迭代是ML应用中使用的术语,并且指示算法参数被更新的次数。训练相应的神经网络需要多次迭代。关于本文描述的功能,计算资源分配可以基于ML执行模型的要求以及资源的可用性而跨迭代改变。ML执行模型(254A)响应于ML模型的动态特性和迭代,并且对应的输出(254B)反映该动态性质。指导器(256)可以跨ML应用迭代改变计算资源分配。在一个实施例中,资源分配改变可以基于应用执行模式、资源使用模式或两者的组合。对资源分配的任何改变被反映在ML模型迭代的输出(254B)中,以及相应的资源分配动作,例如指令中。
在一些说明性实施例中,服务器(210)可以是可从纽约Armonk的国际商业机器公司获得的IBM系统,可以用此后描述的说明性实施例的机制来扩充。本文示出和描述的系统包括基于迭代优化算法实现机器学习的工具。该工具使用基于应用的剖析来实现ML工作负载的弹性执行,由此跨模型建立或训练的多次迭代地将计算资源有效且高效地分配给ML应用及其相应的神经网络。
简档管理器(252)、ML管理器(254)、指导器(256)和资源管理器(258)(下文中统称为AI工具或AI平台工具)被示为被实施在服务器(210)的AI平台(250)中或被集成在其中。AI工具可在跨网络(205)连接到服务器(210)的单独的计算系统(例如290)中实现。无论在何处体现,AI工具都以迭代方式起作用以支持和启用ML应用执行建模和资源分配的对应弹性。来自ML执行模型(254)的输出(254A)可以是被转发到资源管理器(258)以引导和指定计算资源来支持模型(274A)和(274B)中的一个或多个模型的执行结果的可执行指令的形式。
可以利用AI平台(250)的信息处理系统的类型的范围从诸如手持计算机/移动电话(280)的小型手持设备到诸如大型计算机(282)的大型系统。手持计算机(280)的例子包括个人数字助理(PDA)、个人娱乐设备,例如MP4播放器、便携式电视和光盘播放器。信息处理系统的其它例子包括笔或平板计算机(284)、膝上型或笔记本计算机(286)、个人计算机系统(288)和服务器(290)。如图所示,各种信息处理系统可以使用计算机网络(205)联网在一起。可以用于互连各种信息处理系统的计算机网络(205)的类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网(PSTN)、其他无线网络、以及可以用于互连信息处理系统的任何其他网络拓扑。许多信息处理系统包括非易失性数据储存器,例如硬盘驱动器和/或非易失性存储器。一些信息处理系统可以使用单独的非易失性数据储存器(例如,服务器(290)使用非易失性数据储存器(290A),而大型计算机(282)使用非易失性数据储存器(282A)。非易失性数据储存器(282A)可以是在各种信息处理系统外部的组件,或者可以在信息处理系统之一的内部。
用于支持AI平台(250)的信息处理系统可以采取许多形式,其中一些在图2中示出。例如,信息处理系统可以采取台式机、服务器、便携式计算机、膝上型计算机、笔记本计算机或其它形状因子的计算机或数据处理系统的形式。此外,信息处理系统可以采用其他形状因子,例如个人数字助理(PDA)、游戏设备、ATM机、便携式电话设备、通信设备或包括处理器和存储器的其他设备。
应用程序接口(API)在本领域中被理解为两个或更多应用之间的软件中介。关于图2中示出和描述的AI平台(250),一个或多个API可被用于支持工具(252)-(258)中的一个或多个及其相关联的功能。参考图3,提供了示出工具(252)-(258)及其相关联的API的框图(300)。如图所示,多个工具被嵌入在AI平台(305)内,其中工具包括与API0(312)相关联的简档管理器(352)、与API1(322)相关联的ML管理器(354)、与API2(332)相关联的指导器(356)以及与API3(342)相关联的资源管理器(358)。每个API可以用一种或多种语言和接口规范来实现。API0(312)提供功能支持以生成联合简档作为应用执行细节和应用执行资源使用的组合;API1(322)提供构建和维护针对表征和识别ML应用执行和计算资源使用的ML执行模型的功能支持;API2(332)基于来自ML执行模型的输出来提供对弹性应用和请求计算资源的功能支持;以及API3(342)提供功能支持以指示和指定计算资源来支持由一个或多个模型及其相应的神经网络产生的执行。
如图所示,API(312)、(322)、(332)和(342)中的每一个都操作地耦合到API协调器(360),或者称为协调层,其在本领域中被理解为用作抽象层以透明地将单独的API作为线程集中在一起。在一个实施例中,可以结合或组合单独API的功能。这样,此处所示的API的配置不应被认为是限制性的。因此,如此处所示,工具的功能可由其各自的API来实施或支持。在另一实施例中,可以在分布式计算资源中处理单独的API以实现弹性、可扩展性和可用性。
参考图4,提供了流程图(400)以示出用于ML建模和计算资源分配的弹性的过程。如图所示,接收(402)执行应用的请求,在此也称为运行请求,其具有用于应用细节和系统剖析细节的参数。基于从步骤(402)接收的请求并且基于ML执行建模器(450)来创建(404)执行指令,ML执行建模器需要(一个或多个)模型的历史处理和应用参数。在一个实施例中,如果历史执行是未知的或不可用的,则可以单独地利用用户指定的输入。可能的执行指令包括但不限于设置存储器使用的限制,以及分配资源以供利用。关于存储器使用,可以基于来自一个或多个先前运行的一个或多个先前迭代或历史数据来为应用实例设置限制。关于资源利用,先前的历史数据可以包含关于针对训练模型的相同调谐参数但是在不同计算平台上的资源利用的信息,不同计算平台例如具有不同数量的CPU、CPU类型、不同数量的GPU、GPU类型和NVLink(基于有线通信协议)连接。这些指令是用于说明性目的,而不应被认为是限制性的。因此,基于ML执行模型和与运行请求相对应的参数来创建指令。
在步骤(404)创建的指令被用于与资源管理交互以获得支持运行请求的所需资源并执行请求参数内的资源分配(406)。更具体地,在步骤(404)获得的指令被用于分配计算资源。例如,在一个实施例中,分配可以针对指定大小的容器,以便灵活地执行,从而相对于CPU核的数量、CPU存储器、GPU类型和GPU的数量进行潜在的动态扩展。类似地,在一个实施例中,如果可能或需要,分配可以针对相同机器上的包装容器。在另一实施例中,分配可针对GPU共享。在已经分配资源之后,执行(408)一个或多个ML应用,并且收集(410)所执行的ML应用的简档信息。在一个实施例中,该集合使用关于ML应用细节和资源使用信息的回调函数。所收集的ML应用执行数据(在此被称为动态应用信息)被传送到ML执行建模器(450)。在步骤(410)和简档信息收集之后,确定是否已经达到终止阈值(412)。对步骤(410)的确定的否定响应之后是返回到步骤(404),并且肯定响应结束简档收集和开发过程。
ML执行建模器(450)从应用执行和与资源管理的交互接收输入。ML执行建模器(450)接收静态输入数据(460)和动态输入数据(470)两者。静态输入数据是输入数据信息(462)、调谐参数范围(464)和静态计算信息的形式,静态计算信息例如CPU和GPU结构、存储器和存储装置(466)。动态输入数据470采用参数472和资源使用信息474的设置的形式。因此,ML执行建模器(450)利用应用执行信息和资源信息来识别最优资源并构建对支持ML应用的需求的预测。
如图4所示,回调函数由所执行或正在执行的ML应用用来识别ML应用数据和ML应用资源使用,由此生成ML工作负载和资源使用的联合简档。在一个实施例中,联合简档可以包含具有ML应用特定特征或签名和资源使用的时间戳数据。在ML执行建模器中构建的ML执行模型利用包含应用执行细节的(一个或多个)所生成的联合简档。更具体地,ML执行模型是动态的,因为它接收并应用来自(一个或多个)联合简档的更新。使用来自先前执行运行的数据或来自同一运行中的先前迭代的最近收集的数据来构建ML执行模型。包含在联合简档中的特征和签名以及联合简档内动态应用的更新向迭代的后续应用执行提供指令,并且将应用执行性能与适当的计算资源(在一个实施例中是异构的计算资源)相关。在一个实施例中,使用一组API来支持来自所执行或正在执行的ML程序的回调函数。API集合可从任何ML框架中的应用调用。因此,(一个或多个)联合简档被用来在ML执行建模器中构建ML执行模型,并且一旦被构建,(一个或多个)联合简档就被ML执行建模器应用来从资源管理组件请求有效资源以用于在各种迭代中高效地执行ML应用。
以下是从API输出的示例跟踪,以捕捉应用如何运行的细节。
2018-05-1702:51:34.288301在具有28个核和架构类型的机器上运行:X86_64
2018-05-1702:51:34.288305在CPU核上运行-[3]用于该过程:psutil.Process(pid=4954,name='python',started='22:51:26')CUDA_VISIBLE_DEVICES:[7];CudaV.:384.81;Device[7]Type K80
2018-05-1702:51:34.288301批大小1024
2018-05-1702:51:34.288352时段1开始
2018-05-1702:51:35.959277CPU利用率:68.4%×1核
2018-05-1702:51:35.959277CPU存储器利用率:1562587136(RSS)567708688384(VMS)
2018-05-1702:51:35.959277GPU[7]总存储器:11995578368
2018-05-1702:51:35.959277GPU[7]使用的存储器:11485577216
2018-05-1702:51:35.959277GPU[7]利用率:99%
2018-05-1702:51:35.959277GPU[7]存储器利用率:27%
2018-05-1702:51:35.960202时段1的已经过时间-0:00:01.671845;精度-0.6077724358974359
如图所示,API捕获应用如何运行的细节,包括批大小、输入信息、数据类型、存储器利用率和执行ML应用迭代所花费的时间。API可以是时间或逻辑驱动的。因此,在该示例中示出的API捕获ML应用执行数据和资源使用,并且将所捕获的数据传送到ML执行建模器以用于随后ML应用迭代的ML应用指令。
功能工具(252)-(258)及其相关联的功能的各方面可在单个位置的计算机系统/服务器中体现,或者在一个实施例中,可在共享计算资源的基于云的系统中配置。参考图5,提供了示出计算机系统/服务器(502)的示例的框图(500),该计算机系统/服务器在下文中被称为与基于云的支持系统通信以实现以上参考图1-4描述的过程的主机(502)。主机(502)可以与众多其它通用或专用计算系统环境或配置一起操作。适合与主机(502)一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括上述系统、设备及其等效物中的任一个的文件系统(例如,分布式存储环境和分布式云计算环境)。
主机(502)可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。主机(502)可以在分布式云计算环境(580)中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图5所示,主机(502)以通用计算设备的形式示出。主机(502)的组件可以包括但不限于一个或多个处理器或处理单元(504),例如硬件处理器、系统存储器(506)以及将包括系统存储器(506)的各种系统组件耦合到处理器(504)的总线(508)。总线(508)表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。主机(502)通常包括各种计算机系统可读介质。这种介质可以是可由主机(502)访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
存储器(506)可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)(530)和/或高速缓冲存储器(532)。仅作为示例,存储系统(534)可被提供用于从不可移动、非易失性磁介质(未示出,且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个可以通过一个或多个数据介质接口连接到总线(508)。
具有一组(至少一个)程序模块(542)的程序/实用程序(540)以及操作系统、一个或多个应用程序、其它程序模块和程序数据可被存储在存储器(506)中,这是作为示例而非限制。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块(542)通常执行实施例的功能和/或方法,以动态地传送评估询问识别和处理。例如,该组程序模块(542)可包括如图1中所述的工具(252)-(258)。
主机(502)还可以与一个或多个外部设备(514)通信,诸如键盘、指示设备等;显示器(524);一个或多个设备,其使得用户能够与主机(502)交互;和/或使主机(502)能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口(522)发生。此外,主机(502)可以经由网络适配器(520)与一个或多个网络通信,该一个或多个网络诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)。如所描述的,网络适配器(520)经由总线(508)与主机(502)的其他组件通信。在一个实施例中,分布式文件系统(未示出)的多个节点经由I/O接口(522)或经由网络适配器(520)与主机(502)通信。应当理解,尽管未示出,但是可以结合主机(502)使用其他硬件和/或软件组件。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
在本文档中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用于一般地指代诸如主存储器(506)之类的介质,包括RAM(530)、高速缓存(532)和存储系统(534),诸如可移动存储驱动器和安装在硬盘驱动器中的硬盘。
计算机程序(也称为计算机控制逻辑)存储在存储器(506)中。计算机程序也可以通过通信接口,例如网络适配器(520)接收。当运行时,这样的计算机程序使计算机系统能够执行如本文所讨论的本实施例的特征。特别地,当运行时,计算机程序使处理单元(504)能够执行计算机系统的特征。因此,这样的计算机程序代表计算机系统的控制器。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、动态或静态随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、磁存储设备、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如其上记录有指令的打孔卡或凹槽中的凸起结构之类的机械编码设备、以及上述的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本实施例的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言,例如Java、Smalltalk、C++等,以及常规的过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器集群上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便执行实施例的方面。
在一个实施例中,主机(502)是云计算环境的节点。如本领域所公知的,云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理工作或与服务提供商的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
这些特性的例子如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供商进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:提供商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关性的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够指定在较高抽象层(例如国家、州或数据中心)的位置。
快速弹性:能力能够被快速并且弹性地供应,在一些情况下是自动地,以快速扩展,并且被快速释放以快速收缩。对于消费者,可用于供应的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
经计量的服务:云系统通过利用在适于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象层处的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供商和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端接口从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储装置的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是供应处理、存储装置、网络和消费者能够部署和运行任意软件的其它基本计算资源,该任意软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储装置、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,该云保持唯一实体,但是通过使能数据和应用可移植性(例如,用于云之间的负载平衡的云突发)的标准化或私有技术绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图6,说明性云计算网络(600)。如图所示,云计算网络(600)包括具有一个或多个云计算节点(610)的云计算环境(650),云消费者使用的本地计算设备可以与该云计算节点通信。这些本地计算设备的示例包括但不限于个人数字助理(PDA)或蜂窝电话(654A)、台式计算机(654B)、膝上型计算机(654C)和/或汽车计算机系统(654N)。节点(610)内的各个节点还可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境(600)提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图6中所示的计算设备(654A-N)的类型仅旨在说明,并且云计算环境(650)可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图7,示出了由图6的云计算网络提供的一组功能抽象层(700)。应当预先理解,图7中所示的组件、层和功能仅旨在说明,并且实施例不限于此。如所描绘的,提供了以下层和相应的功能:硬件和软件层(710)、虚拟层(720)、管理层(730)和工作负载层(740)。
硬件和软件层(710)包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中是系统;基于RISC(精简指令集计算机)架构的服务器,在一个示例中是系统;IBM系统;IBM系统;存储设备;网络和联网组件。软件组件的示例包括网络应用服务器软件,在一个示例中为IBM应用服务器软件;以及数据库软件,在一个实例中为IBM数据库软件。(IBM、zSeries、pSeries、xSeries、BladeCerter、WebSphere和DB2是在全世界许多管辖区注册的国际商业机器公司的商标)。
虚拟化层(720)提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器;虚拟存储装置;虚拟网络,包括虚拟专用网络;虚拟应用和操作系统;以及虚拟客户端。
在一个示例中,管理层(730)可以提供以下功能:资源供应、计量和定价、用户门户、服务层管理以及SLA规划和履行。资源供应提供了对被用来在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开账单或开发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户为消费者和系统管理员提供对云计算环境的访问。服务层管理提供云计算资源分配和管理,使得满足所需的服务层。服务层协议(SLA)规划和履行提供了云计算资源的预安排和采购,其中根据SLA来预计未来需求。
工作负载层(740)提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括但不限于:地图绘制和导航;软件开发和生命周期管理;虚拟课堂教育交付;数据分析处理;事务处理;ML执行建模。
将理解,本文公开了一种用于评估自然语言输入、检测对应通信中的询问、以及用回答和/或支持性内容来解决所检测到的询问的系统、方法、装置和计算机程序产品。
尽管已经示出和描述了本发明的具体实施例,但是对于本领域技术人员来说显而易见的是,基于本文的教导,在不背离本发明及其更广泛方面的情况下可以进行改变和修改。因此,所附权利要求将在其范围内涵盖在实施例的真实精神和范围内的所有这样的改变和修改。此外,应当理解,实施例仅由所附权利要求限定。本领域技术人员将理解,如果所引入的权利要求元素的具体数目是有意的,则这样的意图将在权利要求中明确地叙述,并且在没有这样的叙述的情况下,不存在这样的限制。对于非限制性示例,为了帮助理解,所附权利要求包含使用引导性短语“至少一个”和“一个或多个”来介绍权利要求元素。然而,这种短语的使用不应被解释为暗示通过不定冠词“一”或“一个”引入权利要求要素将包含这种引入的权利要求要素的任何特定权利要求限制为仅包含一个这种要素的实施例,即使当同一权利要求包括引导性短语“一个或多个”或“至少一个”和诸如“一”或“一个”的不定冠词时;这同样适用于定冠词在权利要求中的使用。
本发明的实施例可以是系统、方法和/或计算机程序产品。另外,本实施例的所选方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和/或硬件方面的实施例的形式,这些实施例在本文中可以全部统称为“电路”、“模块”或“系统”。此外,本发明的实施例的方面可以采取在计算机可读存储介质(或多个介质)中实现的计算机程序产品的形式,该计算机可读存储介质(或多个介质)上具有用于使处理器执行本发明的实施例的方面的计算机可读程序指令。如此实现的所公开的系统、方法和/或计算机程序产品可操作以改进人工智能平台的功能和操作以对ML应用执行和资源使用进行建模,包括高效且有效的ML应用性能和资源管理。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、动态或静态随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、磁存储设备、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如其上记录有指令的打孔卡或凹槽中的凸起结构之类的机械编码设备、以及上述的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本实施例的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,诸如Java、Smalltalk、C++等,以及常规的过程式编程语言,诸如“C”编程语言,以及功能编程语言,诸如Haskell、Lisp或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器集群上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本实施例的方面。
本文参照根据实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本实施例的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明实施例的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
应当理解,尽管为了说明的目的在此描述了具体实施例,但是在不脱离实施例的精神和范围的情况下可以进行各种修改。因此,实施例的保护范围仅由所附权利要求及其等同物限定。
Claims (22)
1.一种计算机系统,包括:
处理单元,操作地耦合到存储器;
人工智能(AI)平台,与所述处理单元通信,具有使用基于应用的剖析来弹性地执行一个或多个机器学习工作负载的工具,所述工具包括:
简档管理器,用于生成包括机器学习(ML)应用执行和资源使用的联合简档;
机器学习管理器,用于从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,所述ML执行模型利用所识别的一个或多个特征和一个或多个签名;以及
指导器,所述指导器应用所述ML执行模型并且向随后的应用执行提供一个或多个指令,包括所述ML执行模型弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
2.根据权利要求1所述的计算机系统,其中弹性分配包括所述ML执行模型执行关于资源可用性和对应用处理的支持的资源分配动作,所述资源分配动作用于减少或扩展任何资源,并且进一步地,其中所减少或扩展的所述一个或多个资源具有相同或不同的属性。
3.根据权利要求2所述的计算机系统,还包括所述指导器跨一个或多个ML应用的迭代而改变计算分配,包括基于应用执行模式和资源使用模式而调用所述资源分配动作。
4.根据权利要求1所述的计算机系统,其中所述联合简档生成进一步包括所述简档管理器监视和收集关于一个或多个ML例程的资源使用数据,并且使用所监视的数据来预测用于未来ML应用的分配。
5.根据权利要求1所述的计算机系统,其中所述简档管理器利用一个或多个回调函数来用一个或多个应用相关参数和简档资源使用信息来剖析应用执行。
6.根据权利要求5所述的计算机系统,其中针对分布式计算系统中的分布式ML应用收集所生成的联合简档。
7.根据权利要求1所述的计算机系统,其中用于联合简档生成和执行模型的构建的一个或多个特征和一个或多个签名的识别是利用用户输入来获得的。
8.一种用于使用基于应用的剖析来支持机器学习工作负载的弹性执行的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随该计算机可读存储介质体现的程序代码,所述程序代码可由处理器执行以:
生成包括机器学习(ML)应用执行和资源使用的联合简档;
从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,所述ML执行模型利用所识别的一个或多个特征和一个或多个签名;以及
应用所述ML执行模型并向随后的应用执行提供一个或多个指令,包括弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
9.根据权利要求8所述的计算机程序产品,其中弹性分配包括用于执行关于资源可用性和对应用处理的支持的资源分配动作的程序代码,所述资源分配动作用于减少或扩展任何资源,并且进一步地,其中所减少或扩展的资源具有相同或不同的属性。
10.根据权利要求9所述的计算机程序产品,还包括所述处理器用以跨一个或多个ML应用的迭代而改变计算资源分配,包含基于应用执行模式和资源使用模式而调用所述资源分配动作。
11.根据权利要求8所述的计算机程序产品,其中所述联合简档生成进一步包括用于监视和收集关于一个或多个ML例程的资源使用数据以及使用所监视的数据来预测用于未来ML应用的分配的程序代码。
12.根据权利要求8所述的计算机程序产品,其中用以生成所述联合简档的程序代码利用一个或多个回调函数来用一个或多个应用相关参数和简档资源使用信息来剖析应用执行。
13.根据权利要求12所述的计算机程序产品,其中针对分布式计算系统中的分布式ML应用收集所生成的联合简档。
14.根据权利要求8所述的计算机程序产品,其中用于联合简档生成和执行模型的构建的一个或多个特征和一个或多个签名的识别能够利用用户输入来获得。
15.一种方法,包括:
生成包括机器学习(ML)应用执行和资源使用的联合简档;
从所生成的联合简档识别一个或多个特征和一个或多个签名,并且构建用于ML应用执行性能和资源使用的ML执行模型,所述ML执行模型利用所识别的一个或多个特征和一个或多个签名;
应用所述ML执行模型并向随后的应用执行提供指令,包括弹性地分配并从资源管理组件请求一个或多个资源以支持应用执行。
16.根据权利要求15所述的方法,其中弹性分配包括执行关于资源可用性和对应用处理的支持的资源分配动作,所述资源分配动作用于减少或扩展任何资源,并且进一步地,其中所减少或扩展的资源具有相同或不同的属性。
17.根据权利要求16所述的方法,还包括跨一个或多个ML应用的一个或多个迭代而改变计算资源分配,包含基于应用执行模式和资源使用模式而调用所述资源分配动作。
18.根据权利要求15所述的方法,其中生成所述联合简档还包括监视和收集关于一个或多个ML例程的资源使用数据,并且使用所监视的数据来预测用于未来ML应用的分配。
19.根据权利要求15所述的方法,其中生成所述联合简档利用一个或多个回调函数来用一个或多个应用相关参数和简档资源使用信息来剖析应用执行。
20.根据权利要求19所述的方法,其中针对分布式计算系统中的分布式ML应用收集所生成的联合简档。
21.根据权利要求15所述的方法,其中用于联合简档生成和执行模型的构建的一个或多个特征和一个或多个签名的识别是利用用户输入来获得的。
22.一种计算机程序,包括程序代码装置,当所述程序在计算机上运行时,所述程序代码装置适于执行权利要求15至21中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/724,613 US11429434B2 (en) | 2019-12-23 | 2019-12-23 | Elastic execution of machine learning workloads using application based profiling |
US16/724,613 | 2019-12-23 | ||
PCT/IB2020/061886 WO2021130596A1 (en) | 2019-12-23 | 2020-12-14 | Elastic execution of machine learning workloads using application based profiling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114667507A true CN114667507A (zh) | 2022-06-24 |
Family
ID=76437475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080076568.5A Pending CN114667507A (zh) | 2019-12-23 | 2020-12-14 | 使用基于应用的剖析的机器学习工作负载的弹性执行 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11429434B2 (zh) |
JP (1) | JP2023508076A (zh) |
CN (1) | CN114667507A (zh) |
DE (1) | DE112020005323B4 (zh) |
GB (1) | GB2605922B (zh) |
WO (1) | WO2021130596A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210255886A1 (en) * | 2020-02-14 | 2021-08-19 | SparkCognition, Inc. | Distributed model execution |
US11605147B2 (en) * | 2020-03-27 | 2023-03-14 | Tata Consultancy Services Limited | Method and system for tuning graphics processing unit (GPU) parameters of a GPU kernel |
US11516311B2 (en) * | 2021-01-22 | 2022-11-29 | Avago Technologies International Sales Pte. Limited | Distributed machine-learning resource sharing and request routing |
US11789774B2 (en) * | 2021-02-22 | 2023-10-17 | International Business Machines Corporation | Optimization of workload scheduling in a distributed shared resource environment |
US12117917B2 (en) * | 2021-04-29 | 2024-10-15 | International Business Machines Corporation | Fair simultaneous comparison of parallel machine learning models |
US11928518B2 (en) * | 2021-08-10 | 2024-03-12 | Kyndryl, Inc. | Noisy-neighbor detection and remediation |
CN115904740B (zh) * | 2023-02-23 | 2023-05-30 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560465B2 (en) | 2009-07-02 | 2013-10-15 | Samsung Electronics Co., Ltd | Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments |
US8631458B1 (en) | 2011-09-29 | 2014-01-14 | Symantec Corporation | Method and apparatus for elastic (re)allocation of enterprise workloads on clouds while minimizing compliance costs |
US20150242483A1 (en) | 2012-08-03 | 2015-08-27 | Syddansk Universitet | Elastic execution of continuous mapreduce jobs over data streams |
US9323577B2 (en) * | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9760351B2 (en) * | 2013-04-02 | 2017-09-12 | Google Inc. | Framework for user-directed profile-driven optimizations |
US9645848B2 (en) | 2013-05-20 | 2017-05-09 | International Business Machines Corporation | Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment |
GB2519517A (en) | 2013-10-22 | 2015-04-29 | Ibm | Managing virtual appliances supporting multiple profiles |
CN105095230A (zh) * | 2014-04-29 | 2015-11-25 | 国际商业机器公司 | 确定目标数据分析应用的性能预测模型的方法及装置 |
US9715663B2 (en) * | 2014-05-01 | 2017-07-25 | International Business Machines Corporation | Predicting application performance on hardware accelerators |
US10171313B2 (en) | 2015-01-23 | 2019-01-01 | International Business Machines Corporation | Managing workload to meet execution criterion in a hybrid cloud environment |
US20170017576A1 (en) | 2015-07-16 | 2017-01-19 | Qualcomm Incorporated | Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications |
US9972063B2 (en) | 2015-07-30 | 2018-05-15 | International Business Machines Corporation | Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units |
US10412155B2 (en) * | 2015-10-29 | 2019-09-10 | Capital One Services, Llc | Automated server workload management using machine learning |
US11449365B2 (en) | 2016-01-04 | 2022-09-20 | Trilio Data Inc. | Ubiquitous and elastic workload orchestration architecture of hybrid applications/services on hybrid cloud |
US10733532B2 (en) | 2016-01-27 | 2020-08-04 | Bonsai AI, Inc. | Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence |
US10063493B2 (en) | 2016-05-16 | 2018-08-28 | International Business Machines Corporation | Application-based elastic resource provisioning in disaggregated computing systems |
US10140164B2 (en) * | 2016-07-25 | 2018-11-27 | Accenture Global Solutions Limited | Computer resource allocation to workloads in an information technology environment |
US10176550B1 (en) | 2017-03-20 | 2019-01-08 | Nutanix, Inc. | GPU resource usage display and dynamic GPU resource allocation in a networked virtualization system |
US11397887B2 (en) * | 2017-09-26 | 2022-07-26 | Amazon Technologies, Inc. | Dynamic tuning of training parameters for machine learning algorithms |
JP6947981B2 (ja) * | 2017-12-21 | 2021-10-13 | 富士通株式会社 | 推定方法、推定装置および推定プログラム |
US11200512B2 (en) * | 2018-02-21 | 2021-12-14 | International Business Machines Corporation | Runtime estimation for machine learning tasks |
US11567807B2 (en) | 2018-03-30 | 2023-01-31 | EMC IP Holding Company LLC | Allocation of shared computing resources using source code feature extraction and machine learning |
EP3557418B1 (en) | 2018-04-17 | 2022-03-16 | Nokia Solutions and Networks Oy | Resource management of resource-controlled system |
CN110390387B (zh) * | 2018-04-20 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
US10452441B1 (en) * | 2018-10-15 | 2019-10-22 | Accenture Global Solutions Limited | Determining an allocation of computing resources for a job |
US12067009B2 (en) * | 2018-12-10 | 2024-08-20 | Teradata Us, Inc. | Predictive query parsing time and optimization |
US11429895B2 (en) * | 2019-04-15 | 2022-08-30 | Oracle International Corporation | Predicting machine learning or deep learning model training time |
-
2019
- 2019-12-23 US US16/724,613 patent/US11429434B2/en active Active
-
2020
- 2020-12-14 DE DE112020005323.7T patent/DE112020005323B4/de active Active
- 2020-12-14 GB GB2209994.9A patent/GB2605922B/en active Active
- 2020-12-14 CN CN202080076568.5A patent/CN114667507A/zh active Pending
- 2020-12-14 WO PCT/IB2020/061886 patent/WO2021130596A1/en active Application Filing
- 2020-12-14 JP JP2022538947A patent/JP2023508076A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11429434B2 (en) | 2022-08-30 |
US20210191759A1 (en) | 2021-06-24 |
JP2023508076A (ja) | 2023-02-28 |
DE112020005323B4 (de) | 2024-10-10 |
GB2605922B (en) | 2023-04-26 |
GB202209994D0 (en) | 2022-08-24 |
DE112020005323T5 (de) | 2022-08-18 |
WO2021130596A1 (en) | 2021-07-01 |
GB2605922A (en) | 2022-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12093837B2 (en) | Building a federated learning framework | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
AU2021273796B2 (en) | Dynamic automation of selection of pipeline artifacts | |
AU2021264961B2 (en) | Multi objective optimization of applications | |
WO2021224720A1 (en) | Determining multivariate time series data dependencies | |
US20210216904A1 (en) | Knowledge Aided Feature Engineering | |
US11061739B2 (en) | Dynamic infrastructure management and processing | |
US11294884B2 (en) | Annotation assessment and adjudication | |
US20200410106A1 (en) | Optimizing Operating System Vulnerability Analysis | |
WO2022022571A1 (en) | Resource allocation for tuning hyperparameters of large-scale deep learning workloads | |
US20230222004A1 (en) | Data locality for big data on kubernetes | |
US11614963B2 (en) | Machine learning based runtime optimization | |
US12026613B2 (en) | Transfer learning across automated machine learning systems | |
WO2023077989A1 (en) | Incremental machine learning for a parametric machine learning model | |
US20230325256A1 (en) | Deep neural network management of overbooking in a multi-tenant computing environment | |
US11789774B2 (en) | Optimization of workload scheduling in a distributed shared resource environment | |
US11269625B1 (en) | Method and system to identify and prioritize re-factoring to improve micro-service identification | |
JP2024512455A (ja) | プログラム・コンテキストの移行 | |
US20230168923A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics | |
US20230169354A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking | |
US20230169408A1 (en) | Annotation of a Machine Learning Pipeline with Operational Semantics | |
US20220198268A1 (en) | Estimated online hard negative mining via probabilistic selection and scores history consideration | |
US20210406689A1 (en) | Random Action Replay for Reinforcement Learning | |
CN115935177A (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 |