CN115237428A - Ai应用部署方法及相关平台、集群、介质、程序产品 - Google Patents
Ai应用部署方法及相关平台、集群、介质、程序产品 Download PDFInfo
- Publication number
- CN115237428A CN115237428A CN202110444943.3A CN202110444943A CN115237428A CN 115237428 A CN115237428 A CN 115237428A CN 202110444943 A CN202110444943 A CN 202110444943A CN 115237428 A CN115237428 A CN 115237428A
- Authority
- CN
- China
- Prior art keywords
- model
- application
- inference
- deployment
- development system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 441
- 238000011161 development Methods 0.000 claims abstract description 127
- 230000006978 adaptation Effects 0.000 claims abstract description 101
- 230000006870 function Effects 0.000 claims description 48
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000009434 installation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 146
- 238000012549 training Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 25
- 230000003044 adaptive effect Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000012805 post-processing Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000009466 transformation Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种人工智能(AI)应用部署方法,包括:开发***将训练后的AI模型转换成至少一个适配模型,每个适配模型适配一个推理框架,开发***还生成模型配置文件,模型配置文件包括推理框架基于对应的适配模型进行推理时需要的配置信息,然后开发***根据AI功能单元组和模型配置文件生成AI应用,AI功能单元用于基于其中一个适配模型获得推理结果,部署管理***可以基于由适配模型生成的AI功能单元和模型配置文件将AI应用统一部署至不同设备,无需手动修改推理代码,降低了AI应用的部署难度,提高了AI应用的部署效率。
Description
技术领域
本申请涉及人工智能(artificial intelligence,AI)技术领域,尤其涉及一种AI应用部署方法、AI应用管理平台、计算机集群以及计算机可读存储介质、计算机程序产品。
背景技术
目前,为了方便AI应用的开发,涌现了许多AI应用开发与管理***(也可以称为AI应用开发与管理平台)。开发者可以通过该AI应用开发与管理平台进行应用开发和部署管理。
AI应用表示针对特定应用场景开发的、包括至少一个算子的应用程序,其中,AI应用中的算子是用于实现部分功能的操作集合,AI应用中的一些算子的功能可以由训练后的AI模型来实现,也即,AI应用在启动的过程中,可以调用训练后的AI模型进行推理,获得训练后的AI模型的输出结果。AI模型进行推理需要依赖推理框架。推理框架是一种可被AI应用所调用,以驱动AI应用中的AI模型进行推理,得到AI模型的输出结果的软件。
为了满足多场景的需求,通常一项AI应用需要部署到多个不同的环境(例如终端环境、边缘环境、云环境)中的不同设备。这些设备可以具有不同的推理硬件。该推理硬件是指具有计算能力,能够用于实现推理功能的硬件。该推理硬件可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或者是神经网络处理器(neural-network processing unit,NPU)等芯片。硬件厂商针对自身开发的推理硬件通常会提供特定的推理框架,以使得基于特定的推理框架调用对应的推理硬件执行AI应用中的推理操作时能够实现较高的推理性能。基于上述背景,当一个AI应用部署到不同类型的设备时,为了保证AI应用中AI模型的推理性能,需要使用不同的推理框架。这导致需要对AI应用的推理代码分别进行修改,以适配不同的推理框架。如此,提高了AI应用的部署难度,也降低了AI应用的部署效率。
发明内容
本申请提供了一种AI应用部署方法。该方法通过将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,该模型配置文件中包括推理框架基于对应的适配模型进行推理需要的配置信息,基于适配模型和模型配置文件可以将AI应用统一部署至不同设备,无需手动修改推理代码,降低了AI应用的部署难度,提高了AI应用的部署效率。本申请还提供了上述方法对应的AI应用管理平台、计算机集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种AI应用部署方法。该方法可以由AI应用管理平台执行。AI应用管理平台具体是用于实现AI应用开发、部署等功能的***,该***可以是软件***,也可以是硬件***。
具体地,AI应用管理平台包括开发***和部署管理***。其中,开发***将训练后的AI模型转换成至少一个适配模型,每个适配模型适配一个推理框架。推理框架具体是一种可被AI应用所调用,以驱动AI应用中的AI模型进行推理,从而得到AI模型的输出结果的软件。开发***还生成模型配置文件。模型配置文件包括推理框架基于对应的适配模型进行推理时需要的配置信息。接着开发***生成AI应用。该AI应用包括AI功能单元和模型配置文件,其中,该AI功能单元用于基于所述至少一个适配模型中的一个适配模型获得推理结果。然后部署管理***将所述AI应用部署至目标设备。
该方法通过将训练后的AI模型转换成至少一个适配模型,每个适配模型适配一个推理框架,并生成携带有推理框架基于对应的适配模型进行推理时需要的配置信息的模型配置文件,由此实现屏蔽模型差异。基于由上述适配模型生成的AI功能单元和模型配置文件生成AI应用,即使将AI应用部署到具有不同推理硬件的设备,也无需修改推理驱动(具体是推理驱动的代码,也可以称作推理代码)以适配不同推理硬件的推理框架,降低了AI应用的部署难度,提高了AI应用的部署效率。
在一些可能的实现方式中,目标设备包括至少一个,每个目标设备对应不同的推理框架。如此可以实现将AI应用统一部署到不同设备(例如是具有不同推理硬件、采用不同推理框架的设备),提高了AI应用的部署效率,降低了AI应用的部署成本,满足了业务需求。
在一些可能的实现方式中,在所述部署管理***将所述AI应用部署至目标设备之前,部署管理***可以与多个部署设备建立连接,然后部署管理***根据所述AI应用的需求参数,从所述多个部署设备中选择符合所述需求参数的所述目标设备。
进一步地,部署管理***根据需求参数确定出多个符合需求参数的设备时,部署管理***还可以分别计算部署到不同设备的成本,该成本可以包括设备自身的能耗比,部署AI应用到该设备消耗的网络带宽等,部署管理***可以根据上述成本确定符合需求参数的目标设备。在一些实施例中,部署管理***可以从多个符合需求参数的设备中确定成本最小的设备为目标设备。在另一些实施例中,部署管理***可以从多个符合需求参数的设备中确定成本小于预设值的设备为目标设备。
部署管理***也可以在确定出多个符合需求参数的设备时,确定多个符合需求参数的设备的优先级,例如部署管理***可以根据部署AI应用到该设备的成本确定该设备的优先级。对应地,部署管理***也可以根据优先级从资源池中确定目标设备。
需要说明,不同应用场景中,需求参数可以是不同的。例如,多路视频传输应用中,需求参数可以包括多路视频的路数和帧率;又例如,数据库查询应用中,需求参数可以包括每秒查询率。
该方法通过选择符合需求参数的目标设备,可以实现在保证AI应用正常运行的情况下,充分利用资源,实现资源的灵活调度,避免资源浪费。
在一些可能的实现方式中,部署管理***可以采用镜像部署方式部署AI应用。其中,镜像部署方式包括全量镜像部署方式和增量镜像部署方式。考虑到部署效率,部署管理***可以构建AI应用的增量镜像,例如部署管理***可以通过镜像构建工具,将AI应用的模型配置文件和功能单元组打包成镜像格式,从而构建AI应用的增量镜像。然后部署管理***根据所述AI应用的增量镜像部署所述AI应用至目标设备,例如部署管理***将增量镜像发送至目标设备,目标设备基于该增量镜像启动容器,从而实现启动AI应用。
一方面,该方法可以通过AI应用的镜像减少环境差异(如操作***差异)的影响,另一方面,该方法通过发送增量镜像进行AI应用部署,如此可以减少部署AI应用时的传输开销,提高AI应用的部署效率。
在一些可能的实现方式中,所述开发***将训练后的AI模型转换成至少一个适配模型可以有多种实现方式。第一种实现方式为:训练后的AI模型是通过开发***预置的模型模板训练得到时,开发***基于该预置的模型模板将训练后的AI模型转换成至少一个适配模型。模型模板是指对具有相同功能的模型的配置信息进行整合,形成的模板。通过使用模型模板可以方便快捷地导入模型。开发***预置的模型模板具有模型转换的能力,开发***可以基于该能力自动将训练后的AI模型转换为至少一个适配模型。第二种实现方式为:训练后的AI模型是通过AI模型开发者自定义的模型模板训练得到时,开发***基于AI模型开发者定义的至少一个转换脚本将所述训练后的AI模型转换成至少一个适配模型。
通过上述方法可以将训练后的AI模型转换为至少一个适配模型,每个适配模型适配一个推理框架,如此避免了AI应用部署到具有不同推理硬件的设备时,需要手动修改推理代码以适配推理硬件对应的推理框架的问题,为实现统一部署提供帮助。
在一些可能的实现方式中,开发***还可以生成功能单元组,基于功能单元组和模型配置文件生成AI应用。其中,功能单元组可以由包括AI功能单元在内的多个功能单元组织形成。根据组织方式不同,功能单元组可以表现为不同形式,并且不同形式的功能单元组的生成方式可以不同。下面对功能单元组的生成进行详细说明。
第一种方式:开发***提供编排工具,例如是可视化的编排界面。其中,编排是指对规范化的组件如上述功能单元进行灵活组装,得到业务流程。开发***可以响应于AI应用开发者的编排操作,对包括所述AI功能单元在内的多个功能单元进行编排,生成功能单元组。该功能单元组表现为图形式,为了便于描述,本申请实施例称之为业务逻辑图。由于可以通过简单的编排获得业务逻辑图,实现了零代码编程。
第二种方式:开发***提供代码编辑界面。AI应用开发者通过代码编辑界面触发代码编写操作。具体地开发***响应于AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。相应地,该功能单元组表现为代码形式,例如是包括接口调用的代码形式。当AI应用部署到目标设备时,目标设备可以通过接口加载上述功能单元组。所述开发***响应于所述AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。其中,通过接口生成的功能单元组支持动态执行/加载,能够满足业务需求。
在一些可能的实现方式中,不同业务场景中输入格式和/或输出格式可以是不同的,开发***还可以支持AI应用开发者自定义AI应用的输入格式和/或输出格式,以增加AI应用的适应性。具体地,开发***可以向AI应用开发者呈现用户界面,例如是可视化的编排界面,通过编排界面接收AI应用开发者配置的AI应用的输入格式和/或输出格式。如此可以实现适配不同格式的输入或输出,增强了适应性,满足了个性化的需求。
在一些可能的实现方式中,开发***在生成模型配置文件之前,还将至少一个适配模型存储至存储***。该存储***可以是AI应用管理平台中的存储***,也可以是AI应用管理平台外接的存储***。相应地,所述模型配置文件还包括所述至少一个适配模型的存储路径。如此,当AI应用被部署到目标设备,目标设备未检测到对应的适配模型时,目标设备可以根据该模型配置文件中存储的适配模型的存储路径,获得对应的适配模型。由于模型配置文件存储适配模型的路径,而不是存储适配模型本身,因而可以大幅缩小模型配置文件的规模,提高AI应用的部署效率。
在一些可能的实现方式中,所述AI功能单元包括推理驱动,所述推理驱动用于驱动所述至少一个适配模型中的一个适配模型的推理。具体地,推理驱动是指AI功能单元(也可以称作推理功能单元)中与适配模型协同实现推理的代码,也称作推理代码。该推理代码用于驱动至少一个适配模型中一个适配模型的推理。基于此,即使AI应用部署到具有不同推理硬件的设备,也可以基于由AI功能单元形成的功能单元组实现AI应用的统一部署,而不需要修改AI功能单元中的推理代码,降低了AI应用的部署难度,提高了AI应用的部署效率。
在一些可能的实现方式中,所述部署管理***发送基础库至所述目标设备,其中,所述基础库包括以下信息中的一种或多种:推理框架安装包、操作***文件、驱动文件和并行计算库。其中,部署管理***可以通过镜像构建工具将基础库封装为基础镜像,在部署AI应用至目标设备之前,预先根据基础镜像进行应用部署,然后AI应用部署被触发时,可以根据相应的增量镜像进行部署。如此可以提高AI应用的部署效率。
在一些可能的实现方式中,AI应用启动后还可以向部署管理***上报AI应用的运行状况。AI应用的运行状况具体可以通过运行性能指标等进行表征。其中,不同AI应用的运行性能指标可以不同,例如AI应用为数据库查询应用时,运行性能指标可以包括每秒查询率。当应用部署到多个目标设备时,部署管理***可以根据多个目标设备上的应用运行状况,对多个设备进行管理。例如,根据多个目标设备的每秒查询率确定每秒总查询率,当每秒总查询率表征至少有一个目标设备故障时,部署管理***可以在另外一个或多个目标设备上启动AI应用,避免服务中断,满足业务需求。
在一些可能的实现方式中,所述目标设备为终端设备、边缘设备或云设备中的任意一个或多个。由此可以实现端、边、云统一部署,满足应用部署到不同环境的需求。
需要说明的是,上述云设备、边缘设备可以是云服务提供商提供的设备,租户在购买或租赁这些设备后,可以通过该云服务提供商的AI应用管理平台(例如是AI应用管理平台中的部署管理***)部署AI应用。在一些可能的实现方式中,云设备、边缘设备、终端设备也可以是各租户自有数据中心中的设备。这些设备可以与AI应用管理平台建立连接,例如建立长连接,相应地,通过云服务提供商的AI应用管理平台可以部署AI应用至自有数据中心。
第二方面,本申请提供了一种AI应用管理平台。该AI应用管理平台包括:
开发***,用于将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,其中,每个适配模型适配一个推理框架,所述模型配置文件包括推理框架基于对应的适配模型进行推理时需要的配置信息;
所述开发***,还用于生成AI应用,其中,所述AI应用包括AI功能单元和所述模型配置文件,所述AI功能单元用于基于所述至少一个适配模型中的一个适配模型获得推理结果;
部署管理***,用于将所述AI应用部署至目标设备。
在一些可能的实现方式中,所述目标设备包括至少一个,每个目标设备对应不同的推理框架。
在一些可能的实现方式中,所述部署管理***还用于:
在所述部署管理***将所述AI应用部署至目标设备之前,与多个部署设备建立连接;
根据所述AI应用的需求参数,从所述多个部署设备中选择符合所述需求参数的所述目标设备。
在一些可能的实现方式中,所述部署管理***具体用于:
构建所述AI应用的增量镜像,根据所述AI应用的增量镜像部署所述AI应用至目标设备。
在一些可能的实现方式中,所述开发***具体用于:
基于模型模板将所述训练后的AI模型转换成至少一个适配模型;或者,
基于AI模型开发者定义的至少一个转换脚本将所述训练后的AI模型转换成至少一个适配模型。
在一些可能的实现方式中,所述开发***还用于:
响应于AI应用开发者的编排操作,对包括所述AI功能单元在内的多个功能单元进行编排,生成功能单元组;或者,
响应于所述AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。
在一些可能的实现方式中,所述开发***具体用于:
通过用户界面接收AI应用开发者配置的所述AI应用的输入格式或输出格式;
根据所述AI应用的输入格式或输出格式生成所述AI应用。
在一些可能的实现方式中,所述模型配置文件还包括所述至少一个适配模型的存储路径;所述开发***还用于:
在生成模型配置文件之前,存储所述至少一个适配模型至存储***。
在一些可能的实现方式中,所述AI功能单元包括推理驱动,所述推理驱动用于驱动所述至少一个适配模型中的一个适配模型的推理。
在一些可能的实现方式中,所述部署管理***还用于:
发送基础库至所述目标设备,其中,所述基础库包括以下信息中的一种或多种:推理框架安装包、操作***文件、驱动文件和并行计算库。
在一些可能的实现方式中,所述目标设备为终端设备、边缘设备或云设备中的任意一个或多个。
第三方面,本申请提供一种计算机集群。所述计算机集群包括至少一台计算机,所述计算机包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如第一方面或第一方面的任一种实现方式中的AI应用部署方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第一方面的任一种实现方式所述的AI应用部署方法中由开发***执行的步骤或者由部署管理***执行的步骤。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的AI应用部署方法中由开发***执行的步骤或者由部署管理***执行的步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种AI应用管理平台的***架构图;
图2为本申请实施例提供的一种AI应用管理平台的***架构图;
图3为本申请实施例提供的一种模型配置文件的示意图;
图4为本申请实施例提供的一种编排界面的示意图;
图5为本申请实施例提供的一种AI应用部署方法的交互流程图;
图6为本申请实施例提供的一种计算机集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
AI应用是指利用机器学习等AI技术实现的应用。AI应用表示针对特定应用场景开发的、包括至少一个算子的应用程序。其中,AI应用中的算子是用于实现部分功能的操作集合。AI应用中的一些算子的功能可以由AI模型来实现。
AI模型是指通过机器学习等AI技术(例如是深度学习技术)开发和训练得到的模型。AI模型具体可以是神经网络模型。神经网络模型可以从数据中自动分析获得规律,并利用规律对未知数据进行推理。
为了便于理解,下面结合图1所示的AI应用管理平台100的***架构图进行示例说明。如图1所示,AI应用管理平台100包括开发***102,该开发***102可以部署在云环境中。云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群。云环境中包括至少一个云设备。云设备可以是中心计算设备集群中的计算设备,例如为中心服务器。客户端200与云环境中的开发***102建立有通信连接,该通信连接可以是长连接。其中,客户端200可以是浏览器或者是专用客户端。
AI模型开发者可以通过客户端200与开发***102交互,从而在开发***102上构建、训练AI模型,并在训练好AI模型后发布上述AI模型。进一步地,AI应用开发者可以通过客户端200与开发***102交互,从而实现基于训练后的AI模型生成AI功能单元,根据AI功能单元以及相关的前处理功能单元、后处理功能单元生成AI应用。AI应用管理平台100还支持将AI应用部署到终端设备、边缘设备或云设备。
在一些实现方式中,AI应用开发者还可以通过客户端200与AI应用管理平台100交互,以将AI应用发布至应用市场300。如此,AI应用使用者可以通过应用市场300触发AI应用部署操作,应用市场300可以将该AI应用部署到终端设备、边缘设备或云设备,例如应用市场300可以通过AI应用管理平台100将AI应用部署到上述终端设备、边缘设备或云设备。
其中,AI模型开发者与AI应用开发者可以是相同的开发者,也可以是不同的开发者。终端设备包括但不限于台式机、笔记本电脑、平板电脑或者智能手机等等。边缘设备为边缘环境中的计算设备。边缘环境中的计算设备可以为边缘服务器、计算盒子等。其中,边缘环境指示在地理位置上距离终端设备较近的,用于提供计算、存储、通信资源的边缘计算设备集群。云设备为云环境中的计算设备,例如是中心服务器。
AI应用通过AI模型进行推理通常需要依赖推理框架。推理框架是一种可被AI应用所调用,以驱动AI应用中的AI模型进行推理,从而得到AI模型的输出结果的软件。具体地,推理框架提供有应用程序编程接口(application programming interface,API)。AI应用通过调用上述API,以驱动AI应用中的AI模型进行推理。推理框架通常由硬件厂商发布推理硬件时提供。不同硬件厂商可以发布不同类型的推理硬件,例如CPU、GPU、NPU或者是其他AI芯片等,为了充分发挥推理硬件的性能,硬件厂商还可以提供与该推理硬件适配的推理框架。
AI应用可以用于不同领域的不同场景中。例如AI应用可以为智慧城市管理应用,用于实现自动化城市管理。又例如AI应用可以为内容审核应用,用于对平台上待发布的内容进行自动审核,提高审核效率。
目前,很多AI应用存在部署到不同环境的需求。例如智慧城市管理应用通常要求部署到不同环境,以满足在不同环境中协同进行城市管理的业务需求。然而,不同环境中设备的推理硬件类型也通常是不同的,例如一些设备的推理硬件为CPU,另一些设备的推理硬件为GPU,还有一些设备的推理硬件为NPU。其中,硬件厂商针对自身开发的推理硬件通常会提供特定的推理框架,以使得基于特定的推理框架调用对应的推理硬件执行AI应用中的推理操作能够实现较高的推理性能。当AI应用部署到不同类型的设备(例如是具有不同推理硬件的设备)时,为了保证AI应用中AI模型的推理性能,需要对AI应用的推理驱动(例如是推理驱动的代码,也称作推理代码)分别进行修改,以适配不同的推理框架。如此,提高了AI应用的部署难度,降低了AI应用的部署效率。
有鉴于此,本申请实施例提供了一种AI应用管理平台100,该AI应用管理平台100可以是具有AI应用管理功能的软件***或者是硬件***,用于实现AI应用的统一部署,无需修改推理代码以适配不同设备类型对应的推理框架,提高了推理效率,降低了推理成本。
为了便于理解,下面结合附图对本申请实施例提供的AI应用管理平台100以及通过该AI应用管理平台100进行应用开发、部署的过程进行示例说明。
参见图2所示的AI应用管理平台100的结构示意图,在图1所示AI应用管理平台100的基础上,本申请实施例中的AI应用管理平台100还包括部署管理***104。开发***102和部署管理***104建立有通信连接。该通信连接包括有线通信连接或者是无线通信连接。其中,AI应用管理平台100的各个部分如开发***102和部署管理***104可以集中部署在云环境中,或者是分布式地部署在云环境中。图2以开发***102和部署管理***104集中部署进行示例说明。
具体地,开发***102用于将训练后的AI模型转换成至少一个适配模型,并成模型配置文件。其中,每个适配模型适配一个推理框架。模型配置文件包括推理框架基于对应的适配模型进行推理时需要的配置信息。参见图2所示的模型配置文件的示意图,如图2所示,模型配置文件包括推理框架1基于对应的适配模型1进行推理时需要的配置信息1、推理框架2基于对应的适配模型2进行推理时需要的配置信息2…推理框架N基于对应的适配模型N进行推理时需要的配置信息N。其中,N为正整数。
如图2所示,配置信息具体可以包括推理框架对应的推理硬件类型(devicetype),如此推理框架可以基于推理硬件类型匹配到对应的配置信息,基于该配置信息进行推理。进一步地,配置信息还可以包括其他推理配置项,如适配模型的输入格式、适配模型的输入标识、适配模型的输出标识、适配模型的均方期望mean、适配模型的缩放系数scale、图像空间变换信息等。其中,输入标识可以是输入名称,输出标识可以是输出名称。图像空间变换信息用于表征是否包括图像空间变换。需要说明,根据应用场景不同,推理配置项可以是不同的。上文以视频应用进行示例说明,并不构成对本申请技术方案的限定。
在一些可能的实现方式中,模型配置文件还包括至少一个适配模型。在另一些可能的实现方式中,开发***可以在生成模型配置文件之前,存储至少一个适配模型至存储***。对应地,模型配置文件还包括至少一个适配模型的存储路径。如图2所示,模型配置文件还包括适配模型1的存储路径、适配模型2的存储路径…适配模型N的存储路径。如此,当AI应用部署到目标设备时,目标设备可以根据该模型配置文件中的存储路径获取对应的适配模型。在一些实施例中,目标设备也可以向部署管理***104发送模型获取请求,部署管理***可以响应于模型获取请求,根据适配模型的存储路径,获取响应的适配模型,然后返回至目标设备。
其中,AI模型具体可以由AI模型开发者通过客户端200与开发***102交互,进行模型训练得到。具体地,开发***102可以包括云上集成开发环境(cloud integrateddevelopment environment,cloud IDE)。cloud IDE提供有用于模型训练的算法、数据,cloud IDE可以根据数据通过上述算法(如深度学习算法)进行模型训练,从而得到训练后的AI模型。
进一步地,开发***102还可以通过cloud IDE提供工具服务(tool services),该工具服务具有如下功能:数据管理、训练管理、部署管理等等。其中,训练管理包括推荐用户(如AI模型开发者)使用预置的模型模板进行模型的构建和训练,基于这些模型模板训练后的AI模型可以自动转换成适配不同推理框架的适配模型。
cloud IDE还提供有文件包(packages),该文件包中包括用于训练的算法包。AI模型开发者从算法包中选择算法,通过该算法训练好AI模型后,可以利用tool services提供的转换能力自动转换AI模型,进而产生模型配置文件。例如AI模型开发者可以点击用户界面上的模型转换控件,以触发模型转换操作,cloud IDE可以通过tool services自动将训练后的AI模型转换成至少一个适配模型,每个适配模型适配一个推理框架。如此可以实现屏蔽模型差异。
在一些可能的实现方式中,AI模型开发者也可以使用自定义的模型模板进行模型训练。当采用自定义的模型模板进行训练时,开发***102可以基于AI模型开发者定义的至少一个转换脚本,将训练后的AI模型转换成至少一个适配模型。其中,转换脚本与适配模型可以一一对应。
开发***102还用于生成AI应用。该AI应用包括AI功能单元和模型配置文件。该AI功能单元用于基于至少一个适配模型中的一个适配模型获得推理结果。其中,功能单元(也称作算子)是指包括一系列操作、用于实现独立业务功能的程序代码集合。例如,功能单元可以包括用于推理的AI功能单元,用于在推理之前进行处理的前处理功能单元,或者用于在推理之后处理的后处理功能单元。其中,前处理功能单元包括用于图像缩放的缩放功能单元、用于视频解码的解码功能单元等。后处理功能单元包括用于业务判决的判决功能单元等。
其中,用于推理的AI功能单元包括推理驱动,该推理驱动用于驱动至少一个适配模型中的一个适配模型的推理,由此可以屏蔽模型差异,即使AI应用部署到不同设备,也无需手动修改推理驱动(即推理代码),实现了AI应用的统一部署。
具体地,开发***102可以根据AI功能单元生成功能单元组,根据功能单元组和模型配置文件生成AI应用。上述功能单元组可以由包括AI功能单元在内的多个功能单元组织形成。根据组织方式不同,功能单元组可以表现为不同形式。下面对功能单元组及其生成方式进行详细说明。
第一种实现方式:AI应用开发者通过开发***102中的编排工具,例如为可视化的编排界面触发编排操作。编排是指对规范化的组件如上述功能单元进行灵活组装,得到业务流程。开发***102响应于AI应用开发者的编排操作,对包括AI功能单元在内的多个功能单元进行编排,生成功能单元组。如此可以实现零代码编程。相应地,该功能单元组表现为图形式,为了便于描述,本申请实施例称之为业务逻辑图。当AI应用部署到目标设备时,目标设备可以通过图引擎加载上述业务逻辑图形式的功能单元组。
第二种实现方式:AI应用开发者通过开发***102触发代码编写操作,具体地,功能单元提供有API,AI应用开发者可以通过编写代码调用功能单元的API,开发***102响应于AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。相应地,该功能单元组表现为代码形式,例如是包括API调用的代码形式。当AI应用部署到目标设备时,目标设备可以通过API加载上述功能单元组。
考虑到不同业务场景中输入格式和/或输出格式可以是不同的,开发***102还可以支持AI应用开发者自定义AI应用的输入格式和/或输出格式,以增加AI应用的适应性。具体地,开发***102可以向AI应用开发者呈现用户界面,例如是可视化的编排界面,通过编排界面接收AI应用开发者配置的AI应用的输入格式和/或输出格式。
图4示出了可视化的编排界面的示意图,如图4所示,界面40包括工具栏402和编辑区404,工具栏402承载有若干功能单元,AI应用开发者可以选中工具栏402中的功能单元,然后拖拽至编辑区404,例如依次选中解封装功能单元、解码功能单元、业务分支功能单元、图像缩放(resize)功能单元、推理功能单元、后处理功能单元、业务判决功能单元,拖拽选中的功能单元至编辑区404。由于存在业务分支,AI应用开发者可以选择多次图像缩放功能单元,并分别选择推理1工作单元和推理2工作单元以及后处理1工作单元、后处理2工作单元。然后在编辑区304连接上述功能单元,添加输入节点和输出节点,并在输入节点配置AI应用的输入格式,在输出节点配置AI应用的输出格式,从而形成业务逻辑图。该业务逻辑图可以被打包以形成AI应用,并利用图引擎加载运行。
上述业务逻辑图通常是静态的,一旦被打包成AI应用,AI应用的业务流程通常不执行动态修改。基于此,当业务流程存在动态修改的需求时,可以生成动态的业务逻辑图(以下简称动态图),图引擎可以通过函数调用方式加载动态图。
开发***102还可以提供调试功能,以对AI应用的业务逻辑进行调试。需要说明的是,针对一些业务逻辑,开发***102并未提供对应的功能单元时,开发***102还支持AI应用开发者手动编写该业务逻辑对应的代码。
部署管理***104用于将AI应用部署到目标设备。其中,目标设备可以是资源池中的一个或多个设备。资源池具体是终端设备、边缘设备和云设备中的至少一个形成。需要说明的是,终端设备、边缘设备和云设备预先安装有部署代理。该部署代理与部署管理***104建立有长连接,部署代理用于和部署管理***104协作,从而完成AI应用的统一部署。
具体地,部署管理***104可以通过打包工具或封装工具,例如是持续集成/持续交付(Continuous Integration/Continuous Delivery,CI/CD)工具将模型配置文件和业务逻辑图打包,生成设定格式的文件包,将该文件包部署到目标设备。当目标设备以容器方式对外提供服务时,部署管理***104还可以根据AI应用通过镜像构建工具构建AI应用的镜像,然后部署管理***104根据该AI应用的镜像部署AI应用到目标设备,例如是目标设备的容器中,如此可以通过镜像减少环境差异的影响。
需要说明,部署管理***104在打包文件时,还可以打包其他需要的文件,例如打包基础库(basic libs)。该基础库包括推理框架安装包、操作***(operation system,OS)文件、驱动(driver)文件和并行计算库中的一种或多种。推理框架安装包括多种推理框架,例如包括Pytorch、Mindspre、TensorFlow、求解器、科学计算、DASK等中的一个或多个的组合。
进一步地,部署管理***104可以生成基础镜像和增量镜像。例如部署管理***104可以根据基础库生成基础镜像,根据AI应用(例如是AI应用的模型配置文件和功能单元组)生成增量镜像。部署管理***104可以预先将基础镜像部署到目标设备,然后在AI应用部署被触发时,将AI应用的增量镜像部署到所述目标设备,以实现所述AI应用的部署。
考虑到不同AI应用的需求可以是不同的,部署管理***104可以在将所述AI应用部署至目标设备之前,与多个部署设备建立连接,然后根据AI应用的需求参数,从多个部署设备中选择符合该需求参数的目标设备。以多路视频传输应用为例,多路视频传输应用的需求参数包括多路视频的路数和帧率(frame per second,FPS)中的至少一个,部署管理***104可以根据多路视频的路数和FPS以及资源池中多个设备支持的视频的路数和设备的刷新率,确定符合需求参数的目标设备。其中,目标设备支持的路数不小于多路视频的路数,目标设备的刷新率不小于多路视频的FPS。需要说明的是,目标设备可以是单个设备,也可以是多个设备,多个设备支持的路数之和不小于多路视频的路数。以上仅为本申请的一些示例,在本申请其他可能的实现方式中,部署管理***104还可以基于其他参数例如每秒查询率(query per second,QPS)确定符合需求参数的目标设备。
进一步地,部署管理***104根据需求参数确定出多个符合需求参数的设备时,部署管理***104还可以分别计算部署到不同设备的成本,该成本可以包括设备自身的能耗比,部署AI应用到该设备消耗的网络带宽等,部署管理***104可以根据上述成本确定符合需求参数的目标设备。在一些实施例中,部署管理***104可以从多个符合需求参数的设备中确定成本最小的设备为目标设备。在另一些实施例中,部署管理***104可以从多个符合需求参数的设备中确定成本小于预设值的设备为目标设备。
在一些可能的实现方式中,部署管理***104也可以在确定出多个符合需求参数的设备时,确定多个符合需求参数的设备的优先级,例如部署管理***104可以根据部署AI应用到该设备的成本确定该设备的优先级。对应地,部署管理***104也可以根据优先级从资源池中确定目标设备。
由于模型配置文件中包括推理硬件类型等配置信息,因此在将AI应用部署到不同设备时,目标设备可以通过该目标设备的推理硬件类型与模型配置文件进行匹配,从而获取与目标设备的推理硬件类型对应的推理框架相匹配的适配模型。其中,开发***102转换的至少一个适配模型被打包部署到目标设备时,目标设备可以直接从本地获取适配模型;开发***102转换的至少一个适配模型未被打包部署到目标设备时,目标设备可以根据适配模型的存储路径获取适配模型。
如此屏蔽了模型差异,无需开发者手动修改推理代码,实现了AI应用的统一部署,降低了AI应用的部署难度,提高了AI应用的部署效率,降低了AI应用的部署成本。而且,资源调度比较方便,一个任务可以被分发到各种设备上,例如可以被分发到终端设备、边缘设备和云设备,如此可以同时在终端设备、边缘设备和云设备上推理,充分利用已有的AI硬件资源,提高任务处理效率以及资源利用率。
在图2所示实施例中,AI应用开发者还可以将开发好的AI应用发布至应用市场300。如此,AI应用使用者可以通过应用市场300触发应用部署操作,应用市场300响应于该应用部署操作,生成应用部署请求,然后向部署管理***104发送上述应用部署请求,以请求将AI应用部署在目标设备。
图1至4对本申请实施例提供的AI应用管理平台100进行了详细介绍,接下来将从AI应用管理平台100中开发***102、部署管理***104交互的角度对本申请实施例提供的方法进行详细说明。
参见图5所示的AI应用部署方法的流程图,该方法包括:
S502:开发***102根据AI模型开发者配置的训练参数进行模型训练,获得训练后的AI模型。
训练参数可以包括模型模板。模型模板是指对具有相同功能的模型的配置信息进行整合,形成的模板。通过使用模型模板可以方便快捷地导入模型。其中,AI模型开发者配置的模型模板可以是开发***102预置的模型模板,也可以是AI模型开发者自定义的模型模板。
具体地,开发***102预置至少一种模型模板,AI模型开发者可以根据业务需求选择合适的模型模板,开发***102响应于AI模型开发者的选择操作,通过被选中的模型模板进行模型训练,获得训练后的AI模型。在一些实施例中,AI模型开发者可以自定义模型模板,并基于该自定义的模型模板进行模型训练,获得训练后的AI模型。
训练参数还包括训练算法、训练数据集。其中,训练算法是指模型训练所采用的算法,例如为梯度下降(gradient descent,GD)法、反向传播(back propagation,BP)算法等。训练数据集可以是开源数据集,例如可以是开源社区提供的开源图像集、开源文本集等等,也可以是AI模型开发者预先上传的数据集。开发***102可以提供至少一种训练算法以及至少一个训练数据集,以便AI模型开发者从开发***102中选择合适的训练算法、训练数据集,从而实现配置训练参数。
在一些可能的实现方式中,训练参数还可以包括学习率、批尺寸(batch size)等超参数中的任意一种或多种。本申请实施例对此不作限定。
S504:开发***102将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件。
开发***102针对基于预置的模型模板训练的AI模型提供模型转换能力。具体地,开发***102可以将训练后的AI模型自动转换成至少一个适配模型,每个适配模型适配一种推理框架。例如,开发***102可以将训练后的AI模型自动转换成openvino模型和pb模型,其中,openvino模型为适配CPU对应的推理框架的模型,pb模型为适配GPU对应的推理框架的模型。
当训练后的AI模型是基于自定义的模型模板训练得到时,开发***102可以接收AI模型开发者编写的不同推理框架对应的适配模型的转换脚本,然后利用该转换脚本生成至少一个适配模型。其中,每个适配模型适配一种推理框架。
考虑到适配模型的安全性,开发***102还可以对适配模型加密,得到加密后的适配模型。具体地,开发***102可以通过对称密钥,采用对称加密算法对适配模型(具体是适配模型的权重等)进行加密,从而得到加密后的适配模型。相应地,当AI应用部署到目标设备时,目标设备(例如是目标设备中的部署代理)可以下载证书license,该license可以包括用于解密的密钥,然后通过该密钥从加密后的适配模型中解密出适配模型。
通过对称密钥加密仅仅是对适配模型进行保护的一种示意性实施方式,在一些可能的实现方式中,还可以通过通用串行总线(universal serial bus,USB)加密狗、可信平台模块(trusted platform module,TPM)硬件对模型进行加密保护,本申请实施例对此不作限定。
然后,开发***102可以根据每个推理框架基于对应的适配模型进行推理时需要的配置信息生成模型配置文件。模型配置文件包括不同适配模型的配置信息,其中,配置信息具体可以包括推理框架对应的推理硬件类型,在一些实施例中,配置信息还可以包括其他推理配置项,例如适配模型的输入格式、适配模型的输入标识、适配模型的输出标识、适配模型的均方期望、适配模型的缩放系数、图像空间变换信息等中的任意一种或多种。根据应用场景不同,推理配置项可以是不同的。
在一些可能的实现方式中,模型配置文件还包括至少一个适配模型或者至少一个适配模型的存储路径。当模型配置文件包括至少一个适配模型时,该模型配置文件被打包部署到目标设备后,目标设备可以直接获取适配模型,无需远程下载,提高了AI应用的启动效率。当模型配置文件包括至少一个适配模型的存储路径时,该模型配置文件的规模将大幅减小,如此可以减少传输该模型配置文件所消耗的资源,提高资源利用率。
为了便于理解,本申请实施例还提供了模型配置文件的示例,如下所示:
在该示例中,模型配置文件包括3个推理框架基于对应的适配模型进行推理时需要的配置信息以及对应的适配模型的存储路径。其中,配置信息包括推理硬件类型,如上述示例中的注释所示。配置信息还可以包括其他配置项,例如包括应用输入(frame workinput)格式、模型输入(model input)格式、模型输入名称(input name)、模型输出名称(output name)、网络宽度(network width)、网络高度(network height)、网络通道数、缩放期望使能(ScaleMeanEnable)模式、缩放系数、在各通道(如R_Y、G、B通道)的均方期望。
需要说明的是,上述模型配置文件的实例仅仅是示意性地展示模型配置文件,该示例中的部分内容进行了脱敏处理,仅供参考。
还需要说明的是,开发***102训练的AI模型可以是可伸缩模型,其中,可伸缩模型可以是规模(例如网络深度、网络宽度)能够弹性伸缩的模型,如此,开发***102可以实现基于该可伸缩模型适配不同的推理框架。
S506:开发***102响应于AI应用开发者的编排操作,对包括AI功能单元在内的多个功能单元进行编排,生成功能单元组。
功能单元组包括AI功能单元。AI功能单元用于基于至少一个适配模型中的一个实现训练后的AI模型的功能。AI功能单元通常用于推理,因此,也可以称作推理功能单元,AI功能单元中包括推理驱动,推理驱动执行时驱动推理框架对适配模型进行推理,获得推理结果。功能单元组还可以包括其他功能单元,例如包括用于在推理之前进行处理的前处理功能单元,或者用于在推理之后处理的后处理功能单元。该前处理功能单元可以包括用于图像缩放的缩放功能单元、用于视频解码的解码功能单元等,该后处理功能单元包括用于业务判决的判决功能单元等。
功能单元组可以由包括AI功能单元在内的多个功能单元组织形成。根据组织方式不同,功能单元组可以表现为不同形式。具体地,AI应用开发者可以通过开发***102中的编排工具,例如为可视化的编排界面触发编排操作。编排是指对规范化的组件如上述功能单元进行灵活组装,得到业务流程。开发***102响应于AI应用开发者的编排操作,对包括AI功能单元在内的多个功能单元进行编排,生成功能单元组。如此可以实现零代码编程。相应地,该功能单元组表现为图形式,为了便于描述,本申请实施例称之为业务逻辑图。
需要说明的是,执行本申请实施例的AI应用部署方法也可以不执行上述S506,在本申请实施例其他可能的实现方式中,开发***102也可以通过其他方式生成功能单元组。例如,AI应用开发者通过开发***102触发代码编写操作,其中,功能单元提供有API,AI应用开发者可以通过编写代码调用功能单元的API,开发***102响应于AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。相应地,该功能单元组表现为代码形式,例如是包括API调用的代码形式。
需要说明的是,上述S506中的AI应用开发者和S502中的AI模型开发者可以是相同开发者,也可以是不同开发者。AI应用的业务逻辑和AI应用所使用的AI模型可以解耦,由专业的AI模型开发者进行模型训练,由专业的AI应用开发者进行业务逻辑的开发,如此可以保障AI应用的性能,而且可以实现并行开发,提高AI应用的开发效率。
进一步地,通过模型配置文件可以对AI应用开发者屏蔽一些AI模型的细节,例如屏蔽AI模型的图像空间变换信息、AI模型的均方期望、AI模型的缩放系数,如此可以保证AI模型的数据安全,提高AI应用的健壮性。
AI应用管理平台100可以部署AI应用至多个目标设备,基于此,AI应用管理平台100中的开发***102还可以根据多个目标设备的推理硬件对应的推理框架,确定对应的适配模型,根据对应的适配模型生成相应的AI功能单元,并根据该AI功能单元生成相应的功能单元组。例如多个目标设备包括第一目标设备和第二目标设备,第一目标设备对应的推理框架不同于第二目标设备对应的推理框架时,开发***102可以分别生成不同的AI功能单元,并根据AI功能单元分别生成功能单元组。为了便于描述,本申请将第一目标设备的推理框架对应的功能单元组记作第一功能单元组,第二目标设备的推理框架对应的功能单元组记作第二功能单元组。
S508:开发***102根据功能单元组和模型配置文件生成AI应用。
具体地,开发***102可以将功能单元组和模型配置文件利用封装工具或打包工具,例如是CI/CD工具,进行封装或打包,从而生成AI应用。该AI应用具体表现为文件包,该文件包可以是安装文件包(也即安装包)。其中,基于功能单元组不同,开发***102可以生成不同的安装包。
S510:开发***102向部署管理***104发送AI应用。
S512:部署管理***104构建AI应用的第一镜像和第二镜像。
S514:部署管理***104发送AI应用的第一镜像至第一目标设备,发送AI应用的第二镜像至第二目标设备。
部署管理***104可以采用镜像部署方式部署AI应用。基于此,部署管理***104可以利用镜像构建工具,构建AI应用的镜像。其中,AI应用的镜像封装有功能单元组和模型配置文件。在将AI应用部署到多个目标设备,例如部署到上述第一目标设备和第二目标设备时,则部署管理***104可以根据第一功能单元组和模型配置文件构建AI应用的第一镜像,根据第二功能单元组和模型配置文件构建AI应用的第二镜像。
进一步地,部署管理***104可以采用增量镜像部署AI应用。具体地,部署管理***104可以根据基础库生成基础镜像。其中,基础库包括推理框架安装包、操作***(operation system,OS)文件、驱动(driver)文件和并行计算库中的一种或多种。推理框架安装包括多种推理框架,例如包括Mindspore、求解器、科学计算、DASK等中的一个或多个的组合。部署管理***104可以根据AI应用(例如是AI应用的模型配置文件和功能单元组)生成增量镜像。部署管理***104预先将基础镜像部署到目标设备,然后在AI应用部署被触发时,将AI应用的增量镜像部署到所述目标设备。
根据业务需求不同,部署管理***104可以将AI应用部署到一个或多个目标设备。每个目标设备可以对应不同的推理框架。部署管理***将AI应用部署至目标设备之前,部署管理***104可以与多个部署设备建立连接,然后根据AI应用的需求参数,从多个部署设备中选择符合该需求参数的目标设备。其中,不同应用场景中,需求参数可以是不同的。例如,多路视频传输应用中,需求参数可以包括多路视频的路数和FPS;又例如,数据库查询应用中,需求参数可以包括QPS。
进一步地,部署管理***104根据需求参数确定出多个符合需求参数的设备时,部署管理***104还可以分别计算部署到不同设备的成本,该成本可以包括设备自身的能耗比,部署AI应用到该设备消耗的网络带宽等,部署管理***104可以根据上述成本确定符合需求参数的目标设备。在一些实施例中,部署管理***104可以从多个符合需求参数的设备中确定成本最小的设备为目标设备。在另一些实施例中,部署管理***104可以从多个符合需求参数的设备中确定成本小于预设值的设备为目标设备。
在一些可能的实现方式中,部署管理***104也可以在确定出多个符合需求参数的设备时,确定多个符合需求参数的设备的优先级,例如部署管理***104可以根据部署AI应用到该设备的成本确定该设备的优先级。然后部署管理***104可以根据优先级从资源池中确定目标设备。
上述S512至S514是以镜像部署方式进行示例说明,在本申请实施例其他可能的实现方式中,部署管理***104也可以不执行上述S512至S514,而是直接通过AI应用的安装文件包部署AI应用。
基于上述内容的描述,本申请实施例提供了一种AI应用部署方法。该方法通过将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,该模型配置文件包括每个推理框架基于对应的适配模型进行推理时需要的配置信息,如此可以屏蔽模型差异,无需手动修改推理代码即可将通过模型配置文件生成的AI应用部署到目标设备,实现了AI应用的统一部署,降低了部署难度,提高了部署效率。
基于本申请的上述方案,当AI应用部署到目标设备后,目标设备还可以启动AI应用。例如AI应用管理平台100将AI应用部署至第一目标设备和第二目标设备时,在图5所示的方法流程基础上,该方法还可以包括:
S516:第一目标设备根据AI应用的第一镜像启动AI应用,第二目标设备根据AI应用的第二镜像启动AI应用。
具体地,第一目标设备和第二目标设备中的部署代理可以在未检测到启动AI应用所需要的组件时,获取对应的组件。该组件可以包括驱动适配层中的组件、功能单元组中的组件和适配模型中的至少一个。以获取适配模型为例,第一目标设备中的部署代理可以根据第一镜像内模型配置文件中第一适配模型的存储路径获取第一适配模型,第二目标设备中的部署代理可以根据第二镜像内模型配置文件中第二适配模型的存储路径获取第二适配模型。当启动AI应用所需要的组件获取完成,第一目标设备和第二目标设备可以启动AI应用。
上文结合图1至图5对本申请实施例提供的AI应用部署方法进行了详细介绍,下面将结合附图对本申请实施例提供的AI应用管理平台100进行介绍。
参见图2所示的AI应用管理平台100的结构示意图,该AI应用管理平台100具体是对AI应用进行开发、部署的***,该***可以是软件***,或者是硬件***,因此该AI应用管理平台100也可以称为AI应用管理***。该AI应用管理平台100包括:
开发***102,用于将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,其中,每个适配模型适配一个推理框架,所述模型配置文件包括推理框架基于对应的适配模型进行推理时需要的配置信息;
所述开发***102,还用于生成AI应用,其中,所述AI应用包括AI功能单元和所述模型配置文件,所述AI功能单元用于基于所述至少一个适配模型中的一个适配模型获得推理结果;
部署管理***104,用于将所述AI应用部署至目标设备。
在一些可能的实现方式中,所述目标设备包括至少一个,每个目标设备对应不同的推理框架。
在一些可能的实现方式中,所述部署管理***104还用于:
在所述部署管理***将所述AI应用部署至目标设备之前,与多个部署设备建立连接;
根据所述AI应用的需求参数,从所述多个部署设备中选择符合所述需求参数的所述目标设备。
在一些可能的实现方式中,所述部署管理***104具体用于:
构建所述AI应用的增量镜像,根据所述AI应用的增量镜像部署所述AI应用至目标设备。
在一些可能的实现方式中,所述开发***102具体用于:
基于模型模板将所述训练后的AI模型转换成至少一个适配模型;或者,
基于AI模型开发者定义的至少一个转换脚本将所述训练后的AI模型转换成至少一个适配模型。
在一些可能的实现方式中,所述开发***102还用于:
响应于AI应用开发者的编排操作,对包括所述AI功能单元在内的多个功能单元进行编排,生成功能单元组;或者,
响应于所述AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。
在一些可能的实现方式中,所述开发***102具体用于:
通过用户界面接收AI应用开发者配置的所述AI应用的输入格式或输出格式;
根据所述AI应用的输入格式或输出格式生成所述AI应用。
在一些可能的实现方式中,所述模型配置文件还包括所述至少一个适配模型的存储路径,所述开发***102还用于:
在生成模型配置文件之前,存储所述至少一个适配模型至存储***。
在一些可能的实现方式中,所述AI功能单元包括推理驱动,所述推理驱动用于驱动所述至少一个适配模型中的一个适配模型的推理。
在一些可能的实现方式中,所述部署管理***104还用于:
发送基础库至所述目标设备,其中,所述基础库包括以下信息中的一种或多种:推理框架安装包、操作***文件、驱动文件和并行计算库。
在一些可能的实现方式中,所述目标设备为终端设备、边缘设备或云设备中的任意一个或多个。
根据本申请实施例的AI应用管理平台100可对应于执行本申请实施例中描述的方法,并且AI应用管理平台100的各个***的上述和其它操作和/或功能分别为了实现图5所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机集群。该计算机集群可以是云环境、边缘环境或者终端设备中的至少一台计算机形成的计算机集群。该计算机集群具体用于实现如图2所示实施例中AI应用管理平台100的功能。
图6提供了一种计算机集群的结构示意图,如图6所示,计算机集群60包括至少一台计算机600,计算机600包括总线601、处理器602、通信接口603和存储器604。处理器602、存储器604和通信接口603之间通过总线601通信。
总线601可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器602可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口603用于与外部通信。例如,通信接口603可以用于和目标设备通信,向目标设备发送AI应用的镜像等等。
存储器604可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器604还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器604中存储有可执行代码,处理器602执行该可执行代码以执行前述AI应用部署方法。
具体地,在实现图2所示实施例的情况下,且图2实施例中所描述的AI应用管理平台100的各***为通过软件实现的情况下,图2中开发***102、部署管理***104的软件或程序代码可以存储在存储器604中。处理器602执行存储器604中存储的开发***102、部署管理***104对应的程序代码,以执行前述AI应用部署方法。
本申请还提供另一种计算设备,该计算设备也可以包括多个计算机,每个计算机的结构可以与前述图6所示的计算机600的结构相同。该计算设备用于执行前述开发***102所执行的方法,实现开发***102的功能。本申请还提供另一种计算设备,该计算设备也可以包括多个计算机,每个计算机的结构可以与前述图6所示的计算机600的结构相同。该计算设备用于执行前述部署管理***104所执行的方法,实现部署管理***104的功能。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述AI应用部署方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品可以为一个软件安装包,在需要使用前述AI应用部署方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (25)
1.一种人工智能AI应用部署方法,其特征在于,AI应用管理平台包括开发***和部署管理***,所述方法包括:
所述开发***将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,其中,每个适配模型适配一个推理框架,所述模型配置文件包括所述推理框架基于对应的适配模型进行推理时需要的配置信息;
所述开发***生成AI应用,其中,所述AI应用包括AI功能单元和所述模型配置文件,所述AI功能单元用于基于所述至少一个适配模型中的一个适配模型获得推理结果;
所述部署管理***将所述AI应用部署至目标设备。
2.根据权利要求1所述的方法,其特征在于,所述目标设备包括至少一个,每个目标设备对应不同的推理框架。
3.根据权利要求1或2所述的方法,其特征在于,在所述部署管理***将所述AI应用部署至目标设备之前,所述方法还包括:
所述部署管理***与多个部署设备建立连接;
所述部署管理***根据所述AI应用的需求参数,从所述多个部署设备中选择符合所述需求参数的所述目标设备。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述部署管理***将所述AI应用部署至目标设备,具体包括:
所述部署管理***构建所述AI应用的增量镜像,根据所述AI应用的增量镜像部署所述AI应用至目标设备。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述开发***将训练后的AI模型转换成至少一个适配模型,包括:
所述开发***基于模型模板将所述训练后的AI模型转换成至少一个适配模型;或者,
所述开发***基于AI模型开发者定义的至少一个转换脚本将所述训练后的AI模型转换成至少一个适配模型。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述开发***响应于AI应用开发者的编排操作,对包括所述AI功能单元在内的多个功能单元进行编排,生成功能单元组;或者,
所述开发***响应于所述AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述开发***生成AI应用,包括:
所述开发***通过用户界面接收AI应用开发者配置的所述AI应用的输入格式或输出格式;
所述开发***根据所述AI应用的输入格式或输出格式生成所述AI应用。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述模型配置文件还包括所述至少一个适配模型的存储路径;在生成模型配置文件之前,所述方法还包括:
存储所述至少一个适配模型至存储***。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述AI功能单元包括推理驱动,所述推理驱动用于驱动所述至少一个适配模型中的一个适配模型的推理。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
所述部署管理***发送基础库至所述目标设备,其中,所述基础库包括以下信息中的一种或多种:推理框架安装包、操作***文件、驱动文件和并行计算库。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述目标设备为终端设备、边缘设备或云设备中的任意一个或多个。
12.一种AI应用管理平台,其特征在于,包括:
开发***,用于将训练后的AI模型转换成至少一个适配模型,并生成模型配置文件,其中,每个适配模型适配一个推理框架,所述模型配置文件包括所述推理框架基于对应的适配模型进行推理时需要的配置信息;
所述开发***,还用于生成AI应用,其中,所述AI应用包括AI功能单元和所述模型配置文件,所述AI功能单元用于基于所述至少一个适配模型中的一个适配模型获得推理结果;
部署管理***,用于将所述AI应用部署至目标设备。
13.根据权利要求12所述的平台,其特征在于,所述目标设备包括至少一个,每个目标设备对应不同的推理框架。
14.根据权利要求12或13所述的平台,其特征在于,所述部署管理***还用于:
在所述部署管理***将所述AI应用部署至目标设备之前,与多个部署设备建立连接;
根据所述AI应用的需求参数,从所述多个部署设备中选择符合所述需求参数的所述目标设备。
15.根据权利要求12至14任一项所述的平台,其特征在于,所述部署管理***具体用于:
构建所述AI应用的增量镜像,根据所述AI应用的增量镜像部署所述AI应用至目标设备。
16.根据权利要求12至15任一项所述的平台,其特征在于,所述开发***具体用于:
基于模型模板将所述训练后的AI模型转换成至少一个适配模型;或者,
基于AI模型开发者定义的至少一个转换脚本将所述训练后的AI模型转换成至少一个适配模型。
17.根据权利要求12至16任一项所述的平台,其特征在于,所述开发***还用于:
响应于AI应用开发者的编排操作,对包括所述AI功能单元在内的多个功能单元进行编排,生成功能单元组;或者,
响应于所述AI应用开发者的代码编写操作,根据编写的代码生成功能单元组。
18.根据权利要求12至17任一项所述的平台,其特征在于,所述开发***具体用于:
通过用户界面接收AI应用开发者配置的所述AI应用的输入格式或输出格式;
根据所述AI应用的输入格式或输出格式生成所述AI应用。
19.根据权利要求12至18任一项所述的平台,其特征在于,所述模型配置文件还包括所述至少一个适配模型的存储路径;
在生成模型配置文件之前,所述方法还包括:
存储所述至少一个适配模型至存储***。
20.根据权利要求12至19任一项所述的平台,其特征在于,所述AI功能单元包括推理驱动,所述推理驱动用于驱动所述至少一个适配模型中的一个适配模型的推理。
21.根据权利要求12至20任一项所述的平台,其特征在于,所述部署管理***还用于:
发送基础库至所述目标设备,其中,所述基础库包括以下信息中的一种或多种:推理框架安装包、操作***文件、驱动文件和并行计算库。
22.根据权利要求12至21任一项所述的平台,其特征在于,所述目标设备为终端设备、边缘设备或云设备中的任意一个或多个。
23.一种计算机集群,其特征在于,所述计算机集群包括至少一台计算机,所述计算机包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如权利要求1至11任一项所述的方法中由开发***执行的步骤或者由部署管理***执行的步骤。
24.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至11任一项所述的方法中由开发***执行的步骤或者由部署管理***执行的步骤。
25.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至11任一项所述的方法中由开发***执行的步骤或者由部署管理***执行的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444943.3A CN115237428A (zh) | 2021-04-24 | 2021-04-24 | Ai应用部署方法及相关平台、集群、介质、程序产品 |
EP21937759.5A EP4310667A1 (en) | 2021-04-24 | 2021-12-29 | Ai application deployment method, and related platform, cluster, medium and program product |
PCT/CN2021/142275 WO2022222537A1 (zh) | 2021-04-24 | 2021-12-29 | Ai应用部署方法及相关平台、集群、介质、程序产品 |
US18/493,281 US20240054366A1 (en) | 2021-04-24 | 2023-10-24 | AI Application Deployment Method and Related Platform, Cluster, Medium, and Program Product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110444943.3A CN115237428A (zh) | 2021-04-24 | 2021-04-24 | Ai应用部署方法及相关平台、集群、介质、程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237428A true CN115237428A (zh) | 2022-10-25 |
Family
ID=83666534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110444943.3A Pending CN115237428A (zh) | 2021-04-24 | 2021-04-24 | Ai应用部署方法及相关平台、集群、介质、程序产品 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240054366A1 (zh) |
EP (1) | EP4310667A1 (zh) |
CN (1) | CN115237428A (zh) |
WO (1) | WO2022222537A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627392A (zh) * | 2023-07-25 | 2023-08-22 | 杭州比智科技有限公司 | 一种基于交互式ide的模型开发方法及*** |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117908847A (zh) * | 2024-01-19 | 2024-04-19 | 北京三维天地科技股份有限公司 | 一种可编程式ai开发平台 |
CN117971251A (zh) * | 2024-04-01 | 2024-05-03 | 深圳市卓驭科技有限公司 | 软件部署方法、设备、存储介质及产品 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176705B (zh) * | 2023-11-03 | 2024-01-26 | 成都阿加犀智能科技有限公司 | 一种工业相机视频流展示方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3128418A1 (en) * | 2015-08-03 | 2017-02-08 | Wipro Limited | System and method for provisioning and deployment of application environment on hybrid cloud platform |
US20190156246A1 (en) * | 2017-11-21 | 2019-05-23 | Amazon Technologies, Inc. | Generating and deploying packages for machine learning at edge devices |
EP3671571A1 (en) * | 2018-12-20 | 2020-06-24 | Siemens Aktiengesellschaft | A method and system for generating an artificial intelligence model |
US20210117859A1 (en) * | 2019-10-20 | 2021-04-22 | Nvidia Corporation | Live updating of machine learning models |
CN111966361B (zh) * | 2020-09-25 | 2024-04-05 | 北京百度网讯科技有限公司 | 用于确定待部署模型的方法、装置、设备及其存储介质 |
CN112230911B (zh) * | 2020-09-27 | 2023-12-29 | 北京通付盾人工智能技术有限公司 | 模型部署方法、装置、计算机设备和存储介质 |
-
2021
- 2021-04-24 CN CN202110444943.3A patent/CN115237428A/zh active Pending
- 2021-12-29 WO PCT/CN2021/142275 patent/WO2022222537A1/zh active Application Filing
- 2021-12-29 EP EP21937759.5A patent/EP4310667A1/en active Pending
-
2023
- 2023-10-24 US US18/493,281 patent/US20240054366A1/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627392A (zh) * | 2023-07-25 | 2023-08-22 | 杭州比智科技有限公司 | 一种基于交互式ide的模型开发方法及*** |
CN116627392B (zh) * | 2023-07-25 | 2023-11-10 | 杭州比智科技有限公司 | 一种基于交互式ide的模型开发方法及*** |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117008923B (zh) * | 2023-09-28 | 2023-12-29 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117908847A (zh) * | 2024-01-19 | 2024-04-19 | 北京三维天地科技股份有限公司 | 一种可编程式ai开发平台 |
CN117971251A (zh) * | 2024-04-01 | 2024-05-03 | 深圳市卓驭科技有限公司 | 软件部署方法、设备、存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
EP4310667A1 (en) | 2024-01-24 |
WO2022222537A1 (zh) | 2022-10-27 |
US20240054366A1 (en) | 2024-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868231B2 (en) | System and method for evaluating code by a hybrid of local and cloud-based computers | |
CN115237428A (zh) | Ai应用部署方法及相关平台、集群、介质、程序产品 | |
US12001818B2 (en) | Extensible IDE platform with open APIs | |
US11681502B2 (en) | Industrial automation domain-specific language programming paradigm | |
US20230367559A1 (en) | Development environment for real-time dataflow programming language | |
US11822906B2 (en) | Industrial programming development with a converted industrial control program | |
US10635433B2 (en) | Cross application behavior customization | |
US11667033B2 (en) | Systems and methods for robotic process automation | |
Wettinger et al. | Unified invocation of scripts and services for provisioning, deployment, and management of cloud applications based on TOSCA | |
EP3712764B1 (en) | Fpga cloud host development method and system | |
US20180210768A1 (en) | Api-based service command invocation | |
WO2022095412A1 (zh) | 微服务开发方法、装置、存储介质及电子设备 | |
CN113805882A (zh) | 应用程序开发的方法、装置、电子设备及存储介质 | |
US20190114168A1 (en) | Framework for supporting multiple analytic runtimes | |
CN113849156A (zh) | OpenHarmony操作***应用的无代码智能开发***及其使用方法 | |
Phung et al. | P4SINC-an execution policy framework for IoT services in the edge | |
US20220405068A1 (en) | Managing asset packages for interactive bot development | |
EP3872625A1 (en) | Method and system for managing an app | |
CN115237457A (zh) | 一种ai应用的运行方法及相关产品 | |
US20230153178A1 (en) | System and method for standardized provider instance interaction | |
CN113608801A (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
Queirós | Azure Iot Edge Proof of Concept | |
CN118043804A (zh) | 对来自软件库中的暴露的公共api进行混淆 | |
KR20240009129A (ko) | 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 | |
CN115237383A (zh) | 生成sdk的方法、装置、计算设备和存储介质 |
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 |