CN114638373A - 管理机器学习环境 - Google Patents

管理机器学习环境 Download PDF

Info

Publication number
CN114638373A
CN114638373A CN202111524592.3A CN202111524592A CN114638373A CN 114638373 A CN114638373 A CN 114638373A CN 202111524592 A CN202111524592 A CN 202111524592A CN 114638373 A CN114638373 A CN 114638373A
Authority
CN
China
Prior art keywords
model
runtime
execution
instance
runner
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
Application number
CN202111524592.3A
Other languages
English (en)
Inventor
M·A·阿吉拉尔
P·德拉甘
C·普雷迪格尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aptiv Technologies Ltd
Original Assignee
Aptiv Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aptiv Technologies Ltd filed Critical Aptiv Technologies Ltd
Publication of CN114638373A publication Critical patent/CN114638373A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及管理机器学习环境。本文公开了一种管理机器学习环境ML环境的方法和计算设备,所述方法包括以下步骤:由ML控制器从ML应用接收ML模型信息,所述ML模型信息包括ML模型定义和ML模型元数据,所述ML模型元数据包括指定执行ML模型的ML运行时的信息;以及由ML控制器使用接收到的ML模型信息在所述ML控制器处的抽象层中生成模型运行器实例,所述模型运行器实例被配置成与由目标ML平台托管的所指定的ML运行时交互,以使所述ML运行时执行所述ML模型。

Description

管理机器学习环境
技术领域
本说明书涉及管理机器学习环境。
背景技术
近年来,机器学习(ML)算法已经被接受作为解决多个应用域中的广泛问题的解决方案。结果,现在经常要求电子设备支持众多应用,这些应用使用需要在单个系统上同时执行的多个不同ML模型。
在第一种现有方法中,已经开发了安卓神经网络API(NNAPI)。这是用于在安卓设备上运行基于机器学习的算法和应用的低级后端。NNAPI包括低级声明式API和运行时系统,该低级声明式API定义机器学习算法结构并描述相关联的元信息(即,与存储器管理、执行优先级和到硬件单元的映射相关的信息),该运行时系统通过经由硬件抽象层(HAL)利用可用硬件单元来执行机器学习算法。
NNAPI要求用户使用所提供的低级API来重新实现机器学习算法,或者使用能够利用NNAPI的机器学习库。NNAPI还要求硬件供应商设计、实现和维护NNAPI特定的HAL。
另一种现有方法涉及机器学习编译器堆栈。例如,TVM编译器堆栈包括:中间表示(IR);编译器前端,该编译器前端将以外部格式(例如,Tensorflow Protobuf、ONNX、PyTorch)给出的机器学习算法转换成内部TVM IR;编译器后端,该编译器后端实现IR级优化并发出可执行代码;运行时系统,该运行时系统执行所生成的代码并管理存储器;以及其它资源。然而,这种方法需要硬件供应商设计、实现和维护TVM特定的编译器后端。
发明内容
根据本公开的第一方面,提供了一种管理机器学习(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运行时接收输出数据,其中,所述输出数据已经从所述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模型信息在所述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工作负载调度器可以被配置成使用从所述ML工作负载监测器接收到的信息来对所述ML模型的执行进行调度。
所述ML应用和所述目标ML平台可以被嵌入在所述计算设备内。
附图说明
现在将参考附图仅通过示例的方式描述示例实施方式,在附图中:
图1是计算设备的示意性框图;
图2是例示了计算设备的进一步细节的示意性框图;
图3是例示了在机器学习运行器实例的生成期间执行的示例操作的流程图;
图4是例示了在执行机器学习模型期间执行的示例操作的流程图;以及
图5是例示了处理资源的分配的图。
具体实施方式
申请人已经设计了一种管理机器学习(ML)环境的方法,在ML环境中,可以容纳ML模型的复杂生态系统。支持在不同ML框架(即ML运行时)方面和在执行这些ML框架所需的不同处理资源方面存在高度异构的系统。
为了利用这些高度异构设备的全部潜力,需要一种有效管理ML资源的执行和使用的系统。申请人借助在确保ML应用满足严格的定时和资源使用要求的同时有效地抽象和协调ML资源的使用的运行时架构来解决先前描述的挑战。
申请人通过设计一种运行时架构解决了在高度异构嵌入式系统上有效地执行ML应用的全生态系统的挑战,该运行时架构:(1)将与ML资源的交互抽象到ML控制器;(2)监测正在所述系统上执行的ML工作负载;以及3)协调ML模型在可用资源上的执行。
特别地,本文描述的示例允许支持使用不同ML模型的不同应用。由于应用编程接口(API)的功能被抽象到位于应用层与ML运行时软件之间的中间控制器,所以本文描述的方法从应用的角度简化了应用与ML框架(或运行时)之间的交互。
图1是例示了根据本公开的示例的计算设备100的组件的示意性框图。计算设备100可以是任何类型的计算设备,包括例如,台式计算机、膝上型计算机、平板计算设备或智能手机。计算设备100可以是汽车控制系统的一部分。
计算设备100包括存储器110和一个或更多个处理器115。
存储器110可以包括一个或更多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存存储器设备、磁盘等及其组合。存储器110可以存储由处理资源115执行以使计算设备100执行操作的数据和指令。
存储器110还包括用于由计算设备100的组件临时存储数据的一个或更多个缓冲器。
计算设备100还可以包括能够通过一个或更多个网络(例如,互联网)进行通信的网络接口130。
计算设备100包括一个或更多个ML运行时140。ML运行时(在本文也被称为ML框架)是安装在计算设备100上以实现ML功能的软件。一个或更多个ML运行时140充当软件层,该软件层可以在工作中与诸如处理资源之类的硬件交互以执行ML模型。示例ML运行时包括Tensorflow、TFLite、TVM、SNPE和TIDL。然而,除了这些示例ML框架中的任一者之外或作为这些示例ML框架中的任一者的另选方式,可以实现其它ML框架。各个ML运行时可以在工作中执行一个或更多个特定的ML模型。
各个ML运行时或框架140在执行机器学习模型时使用一个或更多个ML处理资源120,如将在下文中更详细地描述的。处理资源120可以包括一个或更多个处理核心,诸如GPU、CPU、FPGA、DSP或NPU。然而,可以另外或作为本文所述的处理资源的一个或更多个另选方式来提供对本领域的技术人员显而易见的其它处理资源。处理器115和ML处理资源120被示为分离的功能元件,因为处理器115针对一般处理任务,而ML处理资源是专用于执行本文描述的ML功能的那些资源。然而,在一些实施方式中,处理器115和ML处理资源可以被集成。
处理资源120和ML运行时140一起形成目标平台150。
还可以在计算设备100上安装利用机器学习模型的一个或更多个应用。这样的应用在本文被称为ML应用160。根据所讨论的ML应用的要求,不同的ML应用160可以使用不同的ML模型161。各个特定的ML模型161可以与相应的ML运行时140相关联并由该相应的ML运行时140执行。ML模型还可以指定应当用于执行该ML模型的特定处理资源120。
在计算设备100是汽车控制系统的一部分的情况下,则在其中运行的ML应用160可以涉及汽车控制系统的功能,诸如,用于无人驾驶车辆的车道引导或内部传感器的监测以确定驾驶员是否不再能够控制车辆。
在本公开的示例中,各个ML应用160经由ML控制器与ML运行时140交互,该ML控制器在本文中被称为ML模型运行器控制器(MRC)170。如将在下文中更详细描述的,MRC充当ML运行时140与ML应用160之间的中介。
ML运行时140与ML应用160之间的直接交互(在现有技术中将通过ML应用160的应用编程接口(API)提供)替代地由MRC 170提供,MRC 170提供应用与ML运行时之间的中间抽象层。这样,ML应用的编程被简化,因为不必在ML应用160与ML运行时140之间提供代表ML应用160执行ML模型的API。
图2是更详细地示出了计算设备100的组件的示意性框图。
MRC 170可以在工作中从一个或多个ML应用160接收输入。各个ML应用可以包括一个或更多个ML模型161。
ML模型161包括模型定义162,模型定义162可以采用包含模型架构和参数(即,训练的权重)的图形定义文件的形式。
另外,ML模型161包括元数据163,元数据163向MRC 170提供相关信息,以使得能够生成ML运行器实例并随后执行ML模型161。元数据163包括但不限于以下关于ML模型161的细节:
·到模型定义文件的路径;
·要用于执行ML模型的特定ML运行时的名称;
·要执行ML模型的处理器核心类型;
·ML模型的针对一个或多个处理器核心类型的评测(profiling)信息;
·ML模型的存储器需求,即用于模型参数的存储器和运行时存储器;
·ML模型的优先级;以及
·ML模型的功率要求或能量要求。
MRC 170包括核心模块,该核心模块包括模型运行器实例生成器171、ML工作负载监测器172和ML模型调度器173。
模型运行器实例生成器171被配置成创建模型运行器实例175,以与由ML应用160指定的ML运行时140交互。模型运行器实例生成器171可以访问一个或更多个集中式API库180,该一个或更多个集中式API库180包含用于由ML应用160指定的ML运行时的API信息。API库180可以存储在设备100的存储器110中。可以为支持的ML运行时140中的每一者提供API库。模型运行器实例175充当应用160与ML运行时140之间的接口。模型运行器实例175占据位于MRC 170处的API抽象层190。
使用API信息,ML运行器实例175可以根据该ML运行时的API来与ML运行时140交互。换言之,运行器实例175充当应用160与ML运行时140之间的接口。
这种布置是有益的,因为ML应用的编码由于与ML运行时API一致(compliance)的管理被抽象到MRC 170而被简化。这是因为ML应用仅需要提供用于缓冲输入和输出数据的通用输入缓冲器以及利用元数据指定模型定义。在MRC 170处使用接收到的信息和从集中的一个或更多个API库获得的信息来创建运行器实例。
这与现有技术方法相反,在现有技术方法中,ML运行时根据运行时140的API来直接与ML应用交互。在现有系统中,应用必须被编程以使用ML运行时API,从而增加了编程复杂度。
ML工作负载监测器172是负责跟踪ML模型对硬件平台资源使用的模块。由ML工作负载监测器172执行的监测可以涉及监测执行核心(ML处理资源120)的使用和/或存储器使用。也可以监测其它系统参数,例如功率消耗或带宽消耗。然而,应当理解,可以监测指示系统对资源使用的任何系统参数。由ML工作负载监测器172获得的信息可以被输出到ML模型调度器173以帮助调度决策。此外,该信息可以经由用户接口(未示出)输出给用户,使得开发者可以了解正在部署的工作负载。
ML模型调度器173是负责协调ML模型161对平台资源使用的模块。ML模型调度器173采取的调度决策可以基于由ML应用160提供给MRC 170的ML模型161的元数据163。在做出调度决策时使用的元数据的示例尤其包括评测信息、存储器要求、模型优先级、功率要求等。如将在下文中更详细地描述的,当多个ML应用要求同时执行ML模型时,对由不同ML应用和ML模型对处理资源的使用进行调度是重要的。如上所述,ML模型调度器还可以使用从ML工作负载监测器接收的信息来对ML模型的执行进行调度。
只要存储器预算允许,就可以存在与在计算设备100上运行的应用160所要求的一样多的ML运行器实例。这样,ML工作负载监测器172被配置成跟踪当前存储器使用。如果存储器预算被完全使用,则ML模型调度器173可以对现有运行器实例(例如,空闲的或具有较低优先级的运行器实例)解除分配以容纳其它运行器实例。
在一些实施方式中,传统ML应用160可以直接与ML运行时140交互,而不是经由MRC170的抽象层190中的运行器实例175与ML运行时交互。在这种情况下,应用使用合适的现有技术方法来访问ML运行时140的API。然而,在这种情况下,ML应用160可以被配置成当ML模型在给定核心上开始和结束执行时,借助适当的API向MRC 170报告。以这种方式,MRC 170仍知道那些ML模型的执行和资源使用,使得ML模型调度器173可以做出适当的调度决策。
如上所述,MRC 170被配置成针对具有多个ML运行时和执行核心类型的高度异构平台150。通常,MRC 170及其抽象层190允许ML应用160与任何ML运行时140一起工作,包括开放源(诸如但不限于,Tensorflow、TFLite、TVM)或专有解决方案(诸如但不限于,来自Qualcomm的SNPE或来自Texas Instruments的TIDL)。所提及的开放源和专有ML运行时仅是示例,并且实施方式借助抽象层190以通用方式提供与ML运行时的接口。换句话说,系统不被绑定到任何特定的ML运行时系统。就处理核心而言,MRC 170不限于特定类型。MRC 170可以针对包括CPU、GPU、DSP、FPGA和/或NPU或其它核心类型的处理资源。
MRC 170的ML模型调度器173为了创建调度决策而使用的相关信息可以在创建包括多个运行器实例的最终运行时环境之前被收集。可以采取多种类型的静态代码分析和评测步骤,以便创建包括特定网络部分在一个或更多个ML运行时上执行的典型执行时间的模型元数据。
静态信息创建
当执行ML模型时,性能信息可以从其中获得并由ML工作负载监测器172和ML模型调度器173分析。关于ML模型中的各个节点的存储器要求信息可以在其ML运行时生态系统内的编译时间期间被分析。ML运行时140可以列出本地需要的峰值存储器(包括运行时期间以及由输入和输出缓冲器使用的所有相关存储器),以及每个节点的参数(例如,权重)。然后可以将该信息输出到MRC 170。随后,该信息可以在列表中表示为在运行时调度决策的准备,并且当创建运行器实例时在元数据163内输出。
评测信息创建
为了使调度决策的实际执行时间在执行之前可用,可以获得凭经验收集的信息。现在将解释该信息的创建。在执行ML模型之前,可以发生基准化过程,其中,自动例程在所有相关目标ML运行时140上独立地执行整个ML模型的子图,该子图可以与单个运算符一样小。此外,可以执行完整图的执行基准并收集结果。另外,可以测量初始化时间。
可以将执行时间测量结果与附加信息(例如,平均运行时、最坏情况运行时和最好情况运行时的预计算)一起组合在列表中,并输出到元数据163。
接口
一方面,在MRC 170与用户级ML应用160之间,另一方面,在MRC 170与目标平台150之间,提供了相应的接口。
为了与MRC 170通信,各个用户级ML应用160使用相应的MRCI接口。MRCI接口由MRC170实现。为了生成ML运行器实例,以下交互发生在ML应用160与MRC 170之间。
ML运行器实例生成
该过程在图3的流程图中例示。
在步骤3.1,由用户级应用160作出注册请求,用户级应用160将所需运行器实例的配置参数传递给MRC 170。如上所述,配置参数可以由元数据163指定。在步骤3.2,MRC 170接收配置参数。
基于这些参数,在步骤3.3,MRC 170可以向ML运行时140发送请求,以请求创建运行器实例175。该请求可以包含从元数据获得的参数,诸如ML模型定义或预期的存储器使用。
然而,用于调度的元数据不需要被发送到ML运行时140,因为调度在MRC 170处被管理。在步骤3.4,在ML运行时140处接收初始化运行器实例175的请求。如果请求成功并且ML运行时140允许在MRC 170处创建运行器实例,则在步骤3.5,模型运行器实例生成器171在MRC 170的抽象层190中创建运行器实例175。对应的运行器实例引用也由MRC 170创建。然后,在步骤3.6,运行器实例引用被发送到ML应用160以进行存储。
ML模型执行
发起运行器实例175的注册的用户级应用160可以随后请求对到指定要使用的运行器实例的ML模型中的输入数据进行处理。该过程在图4的流程图中例示。
用户级ML应用160可以向MRC 170发送由ML运行时140执行ML模型的请求,该ML运行时140可以经由运行器实例175来访问。
该过程响应于ML应用160确定ML模型将由ML运行时140执行而开始。在步骤4.1,ML应用160通过获得在上述注册过程中创建的运行器引用来准备执行ML模型。另外,ML应用160获得要输入到ML模型中的输入数据。在步骤4.2,该信息被发送到MRC 170。在步骤4.3,对应于运行器引用的运行器实例175从ML应用160接收输入数据。
在步骤4.4,由运行器实例175将ML模型的输入数据转发到目标ML运行时140。在步骤4.5,目标ML运行时140使用为该运行器实例指定的处理资源执行ML模型。ML运行时对ML模型的执行是根据ML模型的规则以及ML运行时本身的任何一般规则来执行的。
步骤4.4和步骤4.5的执行可以由ML模型调度器173控制,使得ML模型的执行定时是根据由一个或更多个调度算法定义的规则。此外,ML工作负载监测器172可以监测在执行ML模型时使用的计算资源。
在步骤4.6,ML运行时140将来自所执行的ML模型的输出数据提供给MRC 170。在步骤4.7,输出数据然后由MRC 170转发到ML应用160。
运行器实例175可以保持活动并等待来自ML应用160的另外的输入数据,或者可以由ML调度器173去初始化。在步骤4.8,ML应用160根据应用的要求来处理接收到的输出数据。
ML工作负载监测器
MRC 170了解正被执行的各种ML模型对目标平台150的资源使用(例如,在执行时间、处理核心使用、存储器需求和功率消耗等细节方面)是有利的。该信息可以在ML模型执行期间由ML工作负载监测器172收集。该信息可以被提供给ML模型调度器173以做出有效的调度决策。这在多个ML应用寻求同时执行相应ML模型的情况下是有利的。
此外,由ML工作负载监测器172获得的信息可以经由用户接口(未示出)输出,因为该信息有助于开发者更好地了解正被部署的工作负载的行为和要求。以这种方式,可以做出关于如何以及在哪部署和优化目标系统上的ML模型的明智的设计决策。
ML工作负载监测器172可以以方便的方式为开发者提供资源使用的文本和可视报告。例如,可以生成甘特图,如图5所示。该甘特图在y轴上显示了执行ML模型的核心类型,并且在x轴上是时间线。特定ML模型在给定核心上的执行被描绘为甘特图中的框。该图有助于使模型在给定核心上运行的时间帧以及哪些模型并行运行可视化。这种图可以经由显示设备(未示出)显示给用户。
在图5的图中显示的信息可以被输出到ML模型调度器173,使得可以使用一个或更多个调度算法自动进行调度决策。
ML模型调度器
MRC 170的ML模型调度器173可以使用从ML应用160接收的元数据来决定何时应该执行ML模型。ML模型调度器173可以支持静态调度场景和动态调度场景二者。调度决策可以基于各种目标,诸如但不限于,模型优先级、系统的存储器预算、待实现的目标帧率或性能、功率消耗等。因此,在MRC 170中,可以根据系统的要求来提供多种调度算法。这些特征使得ML模型调度器173灵活且可扩展。
如前所述,如果存储器预算被完全使用,则ML模型调度器173可以对现有运行器实例(例如,空闲的或具有较低优先级的运行器实例)解除分配以容纳其它运行器实例。这样,可以同时容纳多个ML应用,并且可以根据计算设备100的相应优先级和操作条件来管理资源。
如前所述,在传统应用通过直接与ML运行时交互(即,不使用运行器实例)来触发ML模型的情况下,应用仍可以经由给定API调用来将此执行报告给MRC 170。以这种方式,无论是经由MRC 170执行还是直接在应用160与ML运行时140之间执行,可以监测和协调所有模型的执行。
根据前面的描述,本公开的示例的多个益处和优点对于本领域技术人员将是显而易见的:
·MRC在允许针对具有多个ML运行时和执行核心类型的高度异构平台的抽象级别上工作。
·本文描述的示例通过将特定ML运行时的API实现细节从应用抽象到MRC来实现ML应用的高便携性。
·MRC根据执行核心和存储器要求以及诸如(但不限于)带宽消耗或功率消耗的其它参数来监测ML资源使用。这在开发阶段对于更好地了解正在部署的ML工作负载是有用的。此外,该信息是ML调度器模块采取最佳资源管理决策的关键。
·可以在MRC中使用模型的元信息作为输入来启用多个调度方案,所述模型的元信息包括但不限于优先级、评测信息、存储器要求和功率消耗等。
·由于ML运行时API的细节被抽象在MRC可以访问的共享库中,所以应用代码的大小变得更轻量级(lighter)。
·MRC允许(由不同应用供应商提供的)不同应用与由不同ML运行时供应商提供的不同ML运行时的直接集成。
在前面的描述中,参考多个示例实施方式描述了示例方面。因此,说明书应被认为是例示性的,而不是限制性的。类似地,附图中例示的突出了示例实施方式的功能和优点的图仅出于示例目的而呈现。示例实施方式的架构是足够灵活和可配置的,使得它可以以不同于附图中所示的方式来利用。
在一个示例性实施方式中,本文所呈现的示例的软件实施方式可以被提供为计算机程序或软件,诸如,包含或存储在诸如机器可访问介质或机器可读介质之类的制品、指令存储部或计算机可读存储设备(这些中的每一者可以是非暂时性的)中的具有指令或指令序列的一个或更多个程序。非暂时性机器可访问介质、机器可读介质、指令存储部或计算机可读存储设备上的程序或指令可以用于对计算机系统或其它电子设备进行编程。机器或计算机可读介质、指令存储部和存储设备可以包括但不限于软盘、光盘和磁光盘或适合用于存储或传输电子指令的其它类型的介质/机器可读介质/指令存储部/存储设备。本文描述的技术不限于任何特定的软件配置。它们可以在任何计算环境或处理环境中找到适用性。本文所使用的术语“计算机可读介质”、“机器可访问介质”、“机器可读介质”、“指令存储部”和“计算机可读存储设备”应包括能够存储、编码或传输指令或指令序列以供机器、计算机或计算机处理器执行并使机器/计算机/计算机处理器执行本文所述方法中的任一方法的任何介质。此外,本领域中通常以一种形式或另一种形式(例如,程序、进程、过程、应用、模块、单元、逻辑等)来将软件称为采取动作或导致结果。这样的表述仅仅是陈述由处理系统执行软件使得处理器执行动作以产生结果的速记方式。
一些实施方式还可以通过准备专用集成电路、现场可编程门阵列或通过互连常规组件电路的适当网络来实现。
一些实施方式包括计算机程序产品。计算机程序产品可以是存储有指令的存储介质或多个存储介质、指令存储部或多个指令存储部或者存储设备或多个存储设备,这些指令可以用于控制或使计算机或计算机处理器执行本文描述的示例实施方式的程序中的任何程序。存储介质/指令存储部/存储设备可以包括,例如但不限于,光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器、闪存卡、磁卡、光卡、纳米系统、分子存储器集成电路、RAID、远程数据存储部/存档/仓储,和/或适合用于存储指令和/或数据的任何其它类型的设备。
存储在计算机可读介质或多个计算机可读介质、指令存储部或多个指令存储部或者存储设备或多个存储设备中的任一者上的一些实现方式包括用于控制系统的硬件和用于使系统或微处理器能够利用本文描述的示例实施方式的结果与人类用户或其它机制交互的软件。这种软件可以包括但不限于设备驱动程序、操作系统和用户应用。最后,这种计算机可读介质或存储设备还包括用于执行如上所述的本公开的示例方面的软件。
包括在系统的编程和/或软件中的是用于实现本文描述的过程的软件模块。在本文的一些示例实施方式中,模块包括软件,尽管在本文的其它示例实施方式中,模块包括硬件或者硬件和软件的组合。
虽然上面已经描述了本公开的各种示例实施方式,但是应当理解,它们是通过示例的方式而非限制地来呈现的。对于相关领域的技术人员显而易见的是,可以在其中进行形式和细节上的各种改变。因此,本公开不应受上述示例实施方式中的任一者的限制,而应仅根据所附权利要求及其等同物来限定。
此外,摘要的目的是使专利局和公众并且尤其是不熟悉专利或法律术语或措辞的本领域的科学家、工程师和从业者能够从粗略的检查中快速地确定本申请的技术公开的本质和实质。摘要不旨在以任何方式限制本文呈现的示例实施方式的范围。还应当理解,在权利要求中叙述的任何过程不需要以所呈现的顺序执行。
尽管本说明书包含许多特定实施方式细节,但这些细节不应被解释为对所要求保护的范围的限制,而是作为对本文所述的特定实施方式特定的特征的描述。在本说明书中在单独实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独地或以任何合适的子组合来实现。此外,尽管特征可能在上文中被描述为在某些组合中起作用并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或更多个特征在某些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。
在某些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
现在已经描述了一些例示性实施方式和多个实施方式,显然前述是例示性的而非限制性的,已经通过示例的方式呈现。特别地,尽管本文呈现的许多示例涉及装置或软件元件的特定组合,但是这些元件可以以其它方式组合以实现相同的目的。仅结合一个实施方式讨论的动作、元件和特征不旨在排除在其它实施方式中的类似作用之外。
在不脱离本文描述的装置的特征的情况下,这些装置可以以其它具体形式实施。上述实施方式是例示性的而不是对所描述的系统和方法的限制。因此,本文描述的装置的范围由所附权利要求而不是前面的描述来指示,并且落入权利要求的等同物的含义和范围内的改变包含在其中。

Claims (15)

1.一种管理机器学习环境ML环境的方法,所述方法包括以下步骤:
由ML控制器从ML应用接收ML模型信息,所述ML模型信息包括ML模型定义和ML模型元数据,所述ML模型元数据包括指定执行ML模型的ML运行时的信息;以及
由所述ML控制器使用接收到的ML模型信息在所述ML控制器处的抽象层中生成模型运行器实例,所述模型运行器实例被配置成与由目标ML平台托管的所指定的ML运行时交互,以使所述ML运行时执行所述ML模型。
2.根据权利要求1所述的方法,所述方法还包括以下步骤:
从请求执行所述ML模型的所述ML应用接收ML执行请求,所述ML执行请求指定对应于要使用的所述ML运行时的模型运行器实例,所述ML执行请求还包括要输入到所述ML模型的输入数据;
在执行所述ML模型期间,将所述输入数据从所指定的模型运行器实例发送到对应的ML运行时,以输入到所述ML模型;
由所述模型运行器实例从所述对应的ML运行时接收输出数据,其中,所述输出数据已经从所述ML模型输出;以及
向所述ML应用提供所述输出数据。
3.根据权利要求1或2所述的方法,其中,所述ML模型元数据还包括指定用于执行所述ML模型的处理资源类型的信息。
4.根据前述权利要求中任一项所述的方法,所述方法还包括以下步骤:
执行所述ML模型的一个或更多个子图以确定用于所述ML模型的一个或更多个执行时间测量结果;以及
在所述ML模型元数据内提供所述一个或更多个执行时间测量结果。
5.根据前述权利要求中任一项所述的方法,所述方法还包括在执行所述ML模型期间监测系统性能参数。
6.根据权利要求5所述的方法,所述方法还包括使用所监测的系统性能参数来对所述ML模型的执行进行调度。
7.根据前述权利要求中任一项所述的方法,其中,所述ML模型元数据还包括用于该ML模型的调度信息,所述方法还包括使用所述调度信息来对所述ML模型的执行进行调度。
8.根据权利要求7所述的方法,其中,所述调度信息包括ML模型优先级、所述ML模型的存储器要求、计算设备的存储器预算、目标帧率和所述ML模型的功率要求中的至少一者。
9.一种包含计算机可读指令的计算机程序产品,所述计算机可读指令在由计算机执行时使所述计算机执行前述权利要求中任一项所述的方法。
10.一种管理机器学习环境ML环境的计算设备,所述计算设备包括:
存储器,所述存储器存储计算机可读指令;以及
ML控制器,所述ML控制器被配置成从ML应用接收ML模型信息,所述ML模型信息包括ML模型定义和ML模型元数据,所述ML模型元数据包括指定执行ML模型的ML运行时的信息,
其中,所述ML控制器包括模型运行器实例生成器,所述模型运行器实例生成器被配置成使用接收到的ML模型信息在所述ML控制器处的抽象层中生成模型运行器实例,所述模型运行器实例被配置成与由目标ML平台托管的所指定的ML运行时交互,以使所述ML运行时执行所述ML模型。
11.根据权利要求10所述的计算设备,其中,所述ML控制器还被配置成:
从请求执行所述ML模型的所述ML应用接收ML执行请求,所述ML执行请求指定对应于要使用的所述ML运行时的模型运行器实例,所述ML执行请求还包括要输入到所述ML模型的输入数据;
在执行所述ML模型期间,将所述输入数据从所指定的模型运行器实例发送到对应的ML运行时,以输入到所述ML模型;
由所述模型运行器实例从所述对应的ML运行时接收输出数据,其中,所述输出数据已经从所述ML模型输出;以及
向所述ML应用提供所述输出数据。
12.根据权利要求10或11所述的计算设备,其中,所述ML控制器还包括ML工作负载监测器,所述ML工作负载监测器被配置成在执行所述ML模型期间监测一个或更多个系统性能参数。
13.根据权利要求10至12中任一项所述的计算设备,其中,所述ML控制器还包括ML工作负载调度器,所述ML工作负载调度器被配置成对所述ML模型的执行进行调度。
14.根据从属于权利要求12时的权利要求13所述的计算设备,其中,所述ML工作负载调度器被配置成使用从所述ML工作负载监测器接收到的信息来对所述ML模型的执行进行调度。
15.根据权利要求10至14中任一项所述的计算设备,其中,所述ML应用和所述目标ML平台被嵌入在所述计算设备内。
CN202111524592.3A 2020-12-15 2021-12-14 管理机器学习环境 Pending CN114638373A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20214293.1 2020-12-15
EP20214293.1A EP4016295A1 (en) 2020-12-15 2020-12-15 Managing a machine learning environment

Publications (1)

Publication Number Publication Date
CN114638373A true CN114638373A (zh) 2022-06-17

Family

ID=73854637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111524592.3A Pending CN114638373A (zh) 2020-12-15 2021-12-14 管理机器学习环境

Country Status (3)

Country Link
US (1) US20220188704A1 (zh)
EP (1) EP4016295A1 (zh)
CN (1) CN114638373A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11782815B2 (en) * 2022-01-21 2023-10-10 Zoox, Inc. Tool for offline perception component evaluation
WO2024029789A1 (ko) * 2022-08-03 2024-02-08 엘지전자 주식회사 무선 통신 시스템에서 신호 송수신 방법 및 장치
EP4439290A1 (en) * 2023-03-29 2024-10-02 Aptiv Technologies AG Asynchronous machine learning model execution

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081598A1 (en) * 2013-09-17 2015-03-19 Xamarin Inc. Generating application models based on discovery based machine learning
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service
US20160012350A1 (en) * 2014-07-12 2016-01-14 Microsoft Technology Licensing, Llc Interoperable machine learning platform
CN105955709A (zh) * 2016-04-16 2016-09-21 浙江大学 基于机器学习的预取能效优化自适应装置及方法
US20160358101A1 (en) * 2015-06-05 2016-12-08 Facebook, Inc. Machine learning system interface
CN106575246A (zh) * 2014-06-30 2017-04-19 亚马逊科技公司 机器学习服务
CN106663038A (zh) * 2014-06-30 2017-05-10 亚马逊科技公司 用于机器学习的特征处理配方
EP3376441A1 (en) * 2017-03-15 2018-09-19 Siemens Aktiengesellschaft A method for execution of a machine learning model on memory restricted industrial device
CN108881446A (zh) * 2018-06-22 2018-11-23 深源恒际科技有限公司 一种基于深度学习的人工智能平台系统
CN108985459A (zh) * 2018-05-30 2018-12-11 华为技术有限公司 训练模型的方法和装置
CN109343995A (zh) * 2018-10-25 2019-02-15 金税信息技术服务股份有限公司 基于多源异构数据融合、机器学习及客服机器人的智能运维分析系统
CN110245003A (zh) * 2019-06-06 2019-09-17 中信银行股份有限公司 一种机器学习单机算法编排系统及方法
CN110389763A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于调度专用处理资源的方法、设备和计算机可读介质
CN110414187A (zh) * 2019-07-03 2019-11-05 北京百度网讯科技有限公司 模型安全交付自动化的系统及其方法
CN111083722A (zh) * 2019-04-15 2020-04-28 中兴通讯股份有限公司 模型的推送、模型的请求方法及装置、存储介质
CN111242309A (zh) * 2020-01-03 2020-06-05 支付宝(杭州)信息技术有限公司 形成机器学习应用系统的方法、装置及电子设备
US20200334544A1 (en) * 2019-04-19 2020-10-22 EMC IP Holding Company LLC Method, device and computer program product for processing machine learning model
CN111913715A (zh) * 2020-07-30 2020-11-10 上海数策软件股份有限公司 基于微服务的机器学习自动化过程管理及优化系统和方法
US20200356415A1 (en) * 2019-05-07 2020-11-12 Nutanix, Inc. Apparatus and method for depoying a machine learning inference as a service at edge systems
CN112052014A (zh) * 2019-06-06 2020-12-08 阿里巴巴集团控股有限公司 服务处理方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303492B1 (en) * 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081598A1 (en) * 2013-09-17 2015-03-19 Xamarin Inc. Generating application models based on discovery based machine learning
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service
CN106575246A (zh) * 2014-06-30 2017-04-19 亚马逊科技公司 机器学习服务
CN106663038A (zh) * 2014-06-30 2017-05-10 亚马逊科技公司 用于机器学习的特征处理配方
US20160012350A1 (en) * 2014-07-12 2016-01-14 Microsoft Technology Licensing, Llc Interoperable machine learning platform
US20160358101A1 (en) * 2015-06-05 2016-12-08 Facebook, Inc. Machine learning system interface
CN105955709A (zh) * 2016-04-16 2016-09-21 浙江大学 基于机器学习的预取能效优化自适应装置及方法
EP3376441A1 (en) * 2017-03-15 2018-09-19 Siemens Aktiengesellschaft A method for execution of a machine learning model on memory restricted industrial device
CN110389763A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于调度专用处理资源的方法、设备和计算机可读介质
CN108985459A (zh) * 2018-05-30 2018-12-11 华为技术有限公司 训练模型的方法和装置
CN108881446A (zh) * 2018-06-22 2018-11-23 深源恒际科技有限公司 一种基于深度学习的人工智能平台系统
CN109343995A (zh) * 2018-10-25 2019-02-15 金税信息技术服务股份有限公司 基于多源异构数据融合、机器学习及客服机器人的智能运维分析系统
CN111083722A (zh) * 2019-04-15 2020-04-28 中兴通讯股份有限公司 模型的推送、模型的请求方法及装置、存储介质
US20200334544A1 (en) * 2019-04-19 2020-10-22 EMC IP Holding Company LLC Method, device and computer program product for processing machine learning model
CN111832736A (zh) * 2019-04-19 2020-10-27 伊姆西Ip控股有限责任公司 用于处理机器学习模型的方法、设备和计算机程序产品
US20200356415A1 (en) * 2019-05-07 2020-11-12 Nutanix, Inc. Apparatus and method for depoying a machine learning inference as a service at edge systems
CN110245003A (zh) * 2019-06-06 2019-09-17 中信银行股份有限公司 一种机器学习单机算法编排系统及方法
CN112052014A (zh) * 2019-06-06 2020-12-08 阿里巴巴集团控股有限公司 服务处理方法、装置及电子设备
CN110414187A (zh) * 2019-07-03 2019-11-05 北京百度网讯科技有限公司 模型安全交付自动化的系统及其方法
CN111242309A (zh) * 2020-01-03 2020-06-05 支付宝(杭州)信息技术有限公司 形成机器学习应用系统的方法、装置及电子设备
CN111913715A (zh) * 2020-07-30 2020-11-10 上海数策软件股份有限公司 基于微服务的机器学习自动化过程管理及优化系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SEBASTIAN SCHELTER ET AL.: "Declarative Metadata Management : A Missing Piece in End-To-End Machine Learning", 《IN PROCEEDINGS OF SYSML CONFERENCE》, 31 December 2018 (2018-12-31) *

Also Published As

Publication number Publication date
EP4016295A1 (en) 2022-06-22
US20220188704A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
CN114638373A (zh) 管理机器学习环境
Garrido Object-oriented discrete-event simulation with java: A practical introduction
US8204732B1 (en) Modeling communication interfaces for multiprocessor systems
Johnsen et al. Integrating deployment architectures and resource consumption in timed object-oriented models
Kounev et al. The descartes modeling language
US9729610B2 (en) Method for intercepting an instruction produced by an application on a computer
Mendoza et al. Interference-aware scheduling for inference serving
JP2021034023A (ja) アクセラレータにおいてヘテロジニアスコンポーネントを設定する方法及び装置
Bhattacharjee et al. Stratum: A bigdata-as-a-service for lifecycle management of iot analytics applications
US11010144B2 (en) System and method for runtime adaptable applications
Chen et al. Task partitioning and offloading in IoT cloud-edge collaborative computing framework: a survey
Paunicka et al. A CORBA-based middleware solution for UAVs
US20210397482A1 (en) Methods and systems for building predictive data models
Pomante et al. Design and management of image processing pipelines within CPS: 2 years of experience from the FitOptiVis ECSEL Project
Krawczyk et al. Automated distribution of software to multi-core hardware in model based embedded systems development
Rouxel et al. PReGO: a generative methodology for satisfying real-time requirements on cots-based systems: Definition and experience report
Florescu et al. Probabilistic modelling and evaluation of soft real-time embedded systems
Berardinelli et al. fUML-driven design and performance analysis of software agents for wireless sensor network
De Bock Hard real-time scheduling on virtualized embedded multi-core systems
Oberthür Towards an RTOS for self-optimizing mechatronic systems
Shi et al. Co-located and orchestrated network fabric (CONF): an automated cloud virtual infrastructure for social network applications
Andrade et al. Principles for Re-architecting Software for Heterogeneous Platforms
Hnetynka et al. Guaranteed latency applications in edge-cloud environment
Feist et al. Evaluating the Comprehensive Adaptive Chameleon Middleware for Mixed-Critical Cyber-Physical Networks
US20240160471A1 (en) Deep Learning Scheduler Toolkit

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: Luxembourg

Address after: Luxembourg

Applicant after: Aptiv Technology (2) Co.

Address before: Babado J San Michael

Applicant before: Aptiv Technologies Ltd.

Country or region before: Barbados

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240301

Address after: Luxembourg

Applicant after: Aptiv Manufacturing Management Services Co.

Country or region after: Luxembourg

Address before: Luxembourg

Applicant before: Aptiv Technology (2) Co.

Country or region before: Luxembourg

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240320

Address after: Schaffhausen

Applicant after: APTIV Technology Co.,Ltd.

Country or region after: Switzerland

Address before: Luxembourg

Applicant before: Aptiv Manufacturing Management Services Co.

Country or region before: Luxembourg