CN114116481A - 基于Kubernetes系统的人工智能算法模型的测试方法和系统 - Google Patents
基于Kubernetes系统的人工智能算法模型的测试方法和系统 Download PDFInfo
- Publication number
- CN114116481A CN114116481A CN202111424294.7A CN202111424294A CN114116481A CN 114116481 A CN114116481 A CN 114116481A CN 202111424294 A CN202111424294 A CN 202111424294A CN 114116481 A CN114116481 A CN 114116481A
- Authority
- CN
- China
- Prior art keywords
- artificial intelligence
- algorithm
- algorithm model
- mirror image
- intelligence algorithm
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本申请的目的在于提供一种基于Kubernetes系统的人工智能算法模型的测试方法、系统、计算机可读存储介质和电子设备。该方法中,基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并推送至镜像仓库中进行存储;在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行;基于Kubernetes集群中容器化部署的算法测试引擎,根据算法容器镜像中更包含的算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果。籍此,基于Kubernetes系统实现了一种人工智能算法模型的性能测试方法,无需手动对算法模型进行部署和运行,提升了测试效率,测试过程中没有人工干预,测试结果更加准确。
Description
技术领域
本申请涉及云原生技术领域,特别涉及一种基于Kubernetes系统的人工智能算法模型的测试方法、系统、计算机可读存储介质和电子设备。
背景技术
人工智能技术是模拟、延伸和扩展人的智能的相关技术的统称,常见的人工智能技术产品和应用有AI音箱、人脸识别、语义识别和人脸支付等,这些产品和应用所依赖的核心技术就是各种不同的人工智能算法模型。比如,AI音箱依赖语音识别模型、自然语义处理模型;人脸识别依赖图像处理模型、人脸识别模型。在人工智能算法模型的开发过程中,需要不断地对人工智能算法模型进行性能测试、修改和调参,以提升人工智能算法模型的性能。
现有的人工智能算法模型性能测试通常使用物理机或者虚拟机作为人工智能算法模型的运行环境,且无论是使用物理机还是虚拟机作为人工智能算法模型的运行环境,现有的人工智能算法模型的性能测试方案,都需要算法工程师人为地将人工智能算法模型在运行环境中进行部署和运行,这不可避免地会影响人工智能算法模型的测试过程和测试结果。
因而,现有的人工智能算法模型性能测试采用物理机或者虚拟机作为人工智能算法模型的运行环境,由算法工程师将人工智能算法模型在运行环境中进行部署和运行,不可避免地带来测试效率低、性能损耗严重、测试过程受影响和测试结果不准确等问题。
发明内容
本申请的目的在于提供一种基于Kubernetes系统的人工智能算法模型的测试方法、系统、计算机可读存储介质和电子设备,以解决或缓解上述现有技术中存在的问题。
为了实现上述目的,本申请提供如下技术方案:
本申请提供了一种基于Kubernetes系统的人工智能算法模型的测试方法,包括:基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将所述算法容器镜像推送至镜像仓库进行存储;其中,所述算法容器镜像包括算法指标采集处理单元;在Kubernetes集群中容器化部署所述算法容器镜像,以将所述人工智能算法模型在所述Kubernetes集群中的算法模型部署容器中运行;基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果;其中,所述运行指标信息与所述人工智能算法模型的类型相关。
优选的,所述基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,具体为:调用预设的镜像构建引擎对所述人工智能算法模型及对应的基础镜像、运行环境、配置参数进行打包,封装为所述算法容器镜像。
优选的,在所述调用预设的镜像构建引擎对所述人工智能算法模型及对应的基础镜像、运行环境、配置参数进行打包,封装为所述算法容器镜像之前,还包括:根据所述人工智能算法模型的框架类型,确定与所述人工智能算法模型相对应的所述基础镜像、所述运行环境和所述配置参数。
优选的,所述在Kubernetes集群中容器化部署所述算法容器镜像,包括:响应于用户输入的待测试的人工智能算法模型的标识信息和资源配置信息,创建算法测试任务,并将所述算法测试任务添加至预设的任务队列;根据所述资源配置信息,在所述Kubernetes集群中选择测试节点,并将所述算法测试任务与所述测试节点进行绑定;根据所述算法测试任务中包含的所述人工智能算法模型标识信息,从所述镜像仓库获取所述算法容器镜像,并将所述算法容器镜像部署在所述算法模型部署容器中;其中,所述算法模型部署容器由所述测试节点根据所述算法测试任务中包含的所述资源配置信息创建。
优选的,所述算法测试任务还包括用户输入的任务权重信息,所述将所述算法测试任务添加至预设的任务队列,包括:如果将多个所述算法测试队列同时添加至所述预设的任务队列,则根据所述任务权重信息,对多个所述算法测试任务进行排序。
优选的,所述基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果,包括:所述算法测试引擎从所述算法指标采集处理单元获取所述人工智能算法模型的运行指标信息;并调用与所述人工智能算法模型相对应的测试框架和测试模型,对所述运行指标信息进行运算,生成所述人工智能算法模型的测试结果。
优选的,所述算法模型部署容器为资源强制隔离容器,所述资源强制隔离容器具有独立的操作系统内核。
本申请实施例还提供一种基于Kubernetes系统的人工智能算法模型的测试系统,包括:镜像单元,配置为基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将所述算法容器镜像推送至镜像仓库进行存储;其中,所述算法容器镜像包括算法指标采集处理单元;部署单元,配置为在Kubernetes集群中容器化部署所述算法容器镜像,以将所述人工智能算法模型在所述Kubernetes集群中的算法模型部署容器中运行;测试单元,配置为基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果;其中,所述运行指标信息与所述人工智能算法模型的类型相关。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序为如上述任一所述的基于Kubernetes系统的人工智能算法模型的测试方法。
本申请实施例还提供一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上述任一所述的基于Kubernetes系统的人工智能算法模型的测试方法。
有益效果:
本申请实施例的提供的技术方案中,基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将制作完成的算法容器镜像推送至镜像仓库中进行存储;然后,在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行;基于Kubernetes集群中容器化部署的算法测试引擎,根据算法容器镜像中更包含的算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果,其中,运行指标信息与人工智能算法模型的类型相关。籍此,基于Kubernetes系统实现了一种人工智能算法模型的性能测试方法,使用容器作为人工智能算法模型的运行环境,几乎不存在性能损耗的问题;借助Kubernetes系统所具有的特性,对人工智能算法模型的性能测试任务、算法模型部署容器进行自动化管理,算法工程师无需手动对算法模型进行部署和运行,提升了测试效率,测试过程中没有人工干预,测试结果更加准确。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。其中:
图1为根据本申请的一些实施例提供的一种基于Kubernetes系统的人工智能算法模型的测试方法的流程示意图;
图2为根据本申请的一些实施例提供的算法容器镜像的制作流程示意图;
图3为根据本申请的一些实施例提供的人工智能算法模型的性能测试的流程示意图;
图4为在基础容器中部署人工智能算法模型的结构示意图;
图5为根据本申请的一些实施例提供的在资源强制隔离容器中部署人工智能算法模型的结构示意图;
图6为根据本申请的一些实施例提供的资源强制隔离容器与Kubernetes 系统结合的示意图;
图7为根据本申请的一些实施例提供的一种各模块容器化部署的结构示意图;
图8为根据本申请的一些实施例提供的另一种各模块容器化部署的结构示意图;
图9为根据本申请的一些实施例提供的一种基于Kubernetes系统的人工智能算法模型的测试系统的结构示意图;
图10为根据本申请的一些实施例提供的一种基于Kubernetes系统的人工智能算法模型的测试系统的结构示意图;
图11为根据本申请的一些实施例提供的一种电子设备的结构示意图;
图12为根据本申请的一些实施例提供的一种电子设备的硬件示意图。
具体实施方式
下面将参考附图并结合实施例来详细说明本申请。各个示例通过本申请的解释的方式提供而非限制本申请。实际上,本领域的技术人员将清楚,在不脱离本申请的范围或精神的情况下,可在本申请中进行修改和变型。例如,示为或描述为一个实施例的一部分的特征可用于另一个实施例,以产生又一个实施例。因此,所期望的是,本申请包含归入所附权利要求及其等同物的范围内的此类修改和变型。
目前,在使用物理机运行人工智能算法模型时,为了防止不同人工智能算法模型之间在使用物理机硬件资源时相互干扰,通常只在每台物理机上运行一个人工智能算法模型,以确保性能测试结果的准确性。因此,当需要测试多个人工智能算法模型的性能或者需要重复多次测试单个人工智能算法模型的性能时,只能采取在单台物理机上依次运行,或者在多台物理机上同时运行的方案。在单台物理机上依次运行的方案,需要花费大量时间,效率低;而在多台物理机上同时运行的方案,由于不同物理机的硬件差异,会影响人工智能算法模型的测试结果。
在使用虚拟机运行人工智能算法模型时,通常会在物理机上运行多台虚拟机,为每台虚拟机分配硬件资源,将人工智能算法模型同时运行在多台虚拟机上,虽然节省了时间,提升了效率,但是在物理机上运行多台虚拟机时,虚拟机管理平台将占用物理机的性能,对物理机的性能造成损耗,不能充分利用硬件资源。
虚拟机作为虚拟化技术的一种具体应用,已经成为一种被大家广泛认可的服务器资源共享方式,可以在按照需求构建操作系统实例的过程中为系统管理员提供极大的灵活性。容器技术作为一种新型的虚拟化技术,克服了前述虚拟机技术存在的性能损耗和资源使用效率问题,可以有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源需求。
为此,本申请提出基于Kubernetes系统的人工智能算法模型的测试技术,实现对发布到Kubernetes系统的人工智能算法模型进行容器化封装、版本管理、发布以及性能测试等操作,以便于算法工程师对人工智能算法模型进行快速验证和持续改进。
示例性方法
如图1-图3所示,该基于Kubernetes系统的人工智能算法模型的测试方法包括:
步骤S101、基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将算法容器镜像推送至镜像仓库进行存储。
其中,算法容器镜像包括算法指标采集处理单元,算法指标采集处理单元用于采集人工智能算法模型在容器中运行时的运行指标信息。需要说明的是,容器作为一个较为封闭的运行环境,要采集运行其中的人工智能算法模型的运行指标信息,只能通过运行在同一个容器内的算法指标采集处理单元实现,运行在容器外部的采集单元无法采集容器内部的信息。因此,在制作算法容器镜像时,需要将算法指标采集处理单元作为算法容器镜像的组成部分。
在本申请实施例中,制作人工智能算法模型对应的算法容器镜像,就是使用镜像构建引擎对人工智能算法模型进行处理,生成能够直接在容器中部署和运行该算法模型的镜像。
需要说明的是,容器作为一种新型的虚拟化技术,其运行原理不同于虚拟机,因此传统应用需要进行容器化处理后才能部署和运行在容器中。此外,在Kubernetes系统中容器化部署应用通常先将该应用的镜像上传至镜像仓库, Kubernetes系统通过访问该应用的镜像所在的镜像仓库,即可下载该应用的镜像,并将该应用容器化部署在Kubernetes系统中。
本申请实施例中,在人工智能算法模型开发完成后,使用镜像构建引擎生成人工智能算法模型对应的算法容器镜像,并将算法容器镜像推送至镜像仓库,以在算法性能测试过程中以访问镜像仓库的方式下载算法容器镜像,在容器组(Pod)中部署和运行该算法容器镜像,即完成人工智能算法模型的容器化部署。
可以理解,在生产实践中,人工智能算法模型的开发需要不断地改进、迭代优化,生成多个版本的算法模型,每个版本的算法模型都需要生成对应的算法容器镜像,推送至镜像仓库。由此镜像仓库中保存了各种版本的算法模型所对应的算法容器镜像,可供算法工程师查询、下载、使用。
此外,人工智能算法模型的开发和测试可以由算法工程师独立完成,也可以由算法开发工程师和算法测试工程师分工合作完成,因此负责算法模型开发的工程师在完成算法模型的开发工作后,将对应的算法容器镜像推送至镜像仓库后,负责算法模型测试的工程师指示Kubernetes系统访问镜像仓库即可获取开发完成的算法模型,为负责不同工作的工程师提供了良好的协作工具。
在一些可选实施例中,基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,具体为:调用预设的镜像构建引擎对人工智能算法模型及其对应的基础镜像、运行环境、配置参数进行打包,封装为算法容器镜像。
在本申请实施例中,在Kubernetes集群中容器化部署有镜像制作器,并且允许用户通过客户端与Kubernetes集群中部署的应用进行交互。也就是说,用户可以在客户端上编辑人工智能算法模型的代码,并将人工智能算法模型的代码及其运行环境、配置参数一起提交至前述的镜像制作器。镜像制作器从客户端接收人工智能算法模型和用户指定的基础镜像和基本设置(比如:运行环境、配置参数等)后,调用镜像构建引擎,结合人工智能算法模型及对应的基础镜像,运行环境、配置参数等基本设置,打包、封装为对应的算法容器镜像,并自动推送到镜像仓库进行存储。其中,算法容器镜像中包括人工智能算法模型及其依赖的基础镜像、运行环境、配置参数。
如果用户未指定前述基础镜像和基本设置,本申请实施例还可根据人工智能算法模型的框架类型,确定与人工智能算法模型相对应的基础镜像、运行环境和配置参数。具体的,镜像制作器对人工智能算法模型的框架类型进行识别,并根据人工智能算法模型的框架类型,确定制作算法容器镜像所需的基础镜像和人工智能算法模型依赖的运行环境、配置参数等基本设置,进而生成对应的算法容器镜像,此处不再赘述。
步骤S102、在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行。
基于前述说明,可以知道,将算法容器镜像推送至镜像仓库和将算法容器镜像在Kubernetes集群中进行容器化部署可以通过同一个客户端完成,也可以由不同的用户在不同客户端进行操作,本申请实施例对此不做限定。
应当理解,本申请实施例的实现基于将容器作为人工智能算法模型的运行环境,在将算法容器镜像推送至镜像仓库后,再由Kubernetes系统将算法容器镜像部署在容器中,即可实现让人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行。
具体的,首先,用户可以在Kubernetes集群的客户端中输入待测试的人工智能算法模型的标识信息(比如:人工智能算法模型的名称、版本号、ID) 和分配给该人工智能算法模型进行测试的资源配置,响应于用户输入的待测试的人工智能算法模型的标识信息和资源配置信息,创建算法测试任务,并将算法测试任务添加至预设的任务队列,即任务调度器的任务队列。其中,资源配置信息包括人工智能算法模型所需的GPU资源、CPU资源、内存资源、磁盘资源中的至少一种。
本申请实施例中,具体由Kubernetes集群中容器化部署的任务发布器创建算法测试任务,并将算法测试任务添加至任务调度器的任务队列。需要说明的是,任务发布器既支持多种默认的发布策略,也支持用户自定义扩展的发布策略。
然后,根据资源配置信息,在Kubernetes集群中选择测试节点,并将算法测试任务与测试节点进行绑定。
在本申请实施例中,通过任务调度器实现测试节点的选择以及算法测试任务与测试节点的绑定。具体的,对Kubernetes系统的kube-scheduler组件进行功能拓展后得到任务调度器,任务调度器可以支持多种调度模式,以适应不同场景下的需求,调度模式包括但不限于组调度、公平调度、抢占式调度和预留回填等。需要说明的是,本申请实施例还允许用户Kubernetes集群的客户端中输入任务权重信息,因此前述算法测试任务中还包括用户输入的任务权重信息。
本申请实施例中,由于Kubernetes集群允许多个客户端同时访问,也就是说,可以有多个用户同时在Kubernetes集群中的不同镜像部署容器中运行不同的人工智能算法模型。因此无论是单个用户同时创建多个算法测试任务,还是多个用户同时创建多个算法测试任务的情况,都可能造成多个算法测试任务被同时添加至预设的任务队列的结果。本申请实施例中,在将多个算法测试任务添加至预设的任务队列时,根据算法测试任务对应的任务权重信息,对多个算法测试任务进行排序。
由此,用户在客户端上输入人工智能算法模型运行所需的资源配置信息以及任务权重信息,并提交给任务发布器,由任务发布器据此创建人工智能算法模型测试任务,并将任务添加至任务队列。任务权重信息用于在多个算法测试任务发布时,对多个算法测试任务加入任务队列后的顺序进行确定。
任务调度器根据任务队列头部的算法测试任务所需的资源,对 Kubernetes集群中的工作节点进行筛选,并对筛选后的工作节点进行评分,选择评分最高的工作节点作为测试节点。具体地,可以根据筛选后的工作节点的空闲资源情况、运行历史数据、运行日志等信息对工作节点进行评分,本申请实施例对此不做限定。在确定测试节点后,任务调度器将该算法测试任务与该测试节点进行绑定。在此,需要说明的是,如果Kubernetes集群中没有能够提供足够资源(满足资源配置需求信息)的工作节点,则将该算法测试任务移至任务队列的尾部。
最后,根据算法测试任务中包含的人工智能算法模型标识信息,从镜像仓库中获取算法容器镜像,并将算法容器镜像部署在算法模型部署容器中。其中,算法模型部署容器由测试节点根据算法测试任务中包含的资源配置信息创建。
在本申请实施例中,测试节点上的kubelet通过访问API-server获取与该测试节点绑定的算法测试任务,并根据算法测试任务中的资源配置信息创建算法模型部署容器;而后,根据算法测试任务中的人工智能算法模型标识信息从镜像仓库中下载算法容器镜像,部署在算法部署容器中,以在算法模型部署容器中运行该人工智能算法模型。
步骤S103、基于在Kubernetes集群中容器化部署的算法测试引擎,根据算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果。
其中,运行指标信息与人工智能算法模型的类型相关。
具体的,算法测试引擎从算法指标采集处理单元获取人工智能算法模型的运行指标信息,并调用与人工智能算法模型相对应的测试框架和测试模型,对运行指标信息进行运算,生成人工智能算法模型的测试结果。
在本申请实施例中,运行指标信息与人工智能算法模型的类型相关。对于不同类型的人工智能算法模型(比如:图像识别模型、自然语义识别模型等),用于运算、生成算法模型性能所需的运行指标信息不同。可以理解,不同类型的人工智能算法模型的性能评价标准存在区别。比如,图像识别模型的性能评价主要看图像识别准确度和图像识别速率等,自然语义识别模型的性能评价主要看断句准确度,文本匹配度等。相应地,用于性能评价的运行指标信息的类型也不一样,用户可以对算法指标采集处理单元进行自定义设置,采集所需的运行指标信息。在此,不再一一赘述。
在本申请实施例中,算法测试引擎中内置了不同人工智能算法模型的基准测试框架和测试模型,并且支持通过配置的方式自定义测试框架和测试模型,以实现更好的延展性。由算法指标采集处理单元对人工智能算法模型运行过程中的运行指标信息进行采集,算法测试引擎再从算法指标采集处理单元处获取其采集到的运行指标信息,并使用内置的与该人工智能算法模型对应的测试框架和测试模型,对人工智能算法模型的运行指标信息进行运算,得到该人工智能算法模型的测试结果,以由客户端对人工智能算法模型进行验证和改进。
籍此,本申请实施例基于Kubernetes系统实现了一种人工智能算法模型的性能测试方法,使用容器作为人工智能算法模型的运行环境,几乎不存在性能损耗的问题;借助Kubernetes系统所具有的特性,对人工智能算法模型的性能测试任务、算法模型部署容器进行自动化管理,算法工程师无需手动对算法模型进行部署和运行,提升了测试效率,测试过程中没有人工干预,测试结果更加准确。
在本申请实施例中,如图4所示,算法模型部署容器可采用基础容器,在宿主机(测试节点)上运行多个基础容器(算法模型部署容器),每个基础容器上部署运行人工智能算法模型时,由于多个基础容器共用宿主机的操作系统内核,因而,存在算法模型部署容器之间在内核层面互相影响的风险,可能会对人工智能算法模型的测试结果产生一定的影响。
进一步地,为了规避上述算法模型部署容器之间在内核层面的互相影响的风险,如图5所示,本申请的算法模型部署容器可以采用资源强制隔离容器,资源强制隔离容器具有独立的操作系统内核。具体的,在测试节点中采用资源强制隔离容器(比如,可以使用支持强隔离模式的Kata容器或者 Firecraker容器)作为算法模型部署容器。每一个资源强制隔离容器均可以看作一个轻量级的虚拟机,但性能损耗又比虚拟机小,且能达到比基础容器更好的资源和内核隔离,同时,也能够符合标准的CRI运行时规范,纳入 Kubernetes统一资源调度编排体系中。籍此,在资源强制隔离容器中部署人工智能算法模型,每个资源强制隔离容器具有可以独立使用的操作系统内核,资源隔离更加严格,为人工智能算法模型的测试提供了更加标准的测试环境,以确保测试结果的准确性。
在本申请实施例中,资源强制隔离容器与Kubernetes系统相结合,将资源强制隔离容器部署在Kubernetes集群中的工作节点(测试节点)上, Kubernetes系统作为集群的容器编排引擎,对资源强制隔离容器进行调度,如图6所示。
在本申请实施例中,可以将镜像制作器、任务发布器、任务调度器、算法测试引擎等模块部署在Kubernetes集群的控制节点上,将镜像仓库、资源强制隔离容器等模块部署在Kubernetes集群的工作节点(测试节点)上,如图7所示;也可以将镜像制作器、任务发布器、任务调度器、算法测试引擎、镜像仓库等模块部署在Kubernetes集群的控制节点上,将资源强制隔离容器等模块部署在Kubernetes集群的工作节点(测试节点)上,如图8所示。在此,需要说明的是,也可以将镜像制作器、任务发布器、任务调度器、算法测试引擎、镜像仓库、资源强制隔离容器等模块部署在一个Kubernetes集群的一个节点上,也可以分别将镜像制作器、任务发布器、任务调度器、算法测试引擎、镜像仓库、资源强制隔离容器等模块部署在多个Kubernetes集群的不同节点上。
在本申请实施例中,用户在客户端上编辑人工智能算法模型的代码,并将人工智能算法模型的代码及对应的基础镜像、运行环境、配置参数等一起提交至镜像制作器;镜像制作器调用镜像构建引擎,将人工智能算法模型的代码及对应的基础镜像、运行环境、配置参数,以及算法指标采集处理单元等一并打包封装为算法容器镜像,并推送到镜像仓库中进行存储。
用户在客户端上输入人工智能算法模型所需的资源配置和任务对应的权重信息,并提交至任务发布器,任务发布器由此创建测试任务,并将任务添加至任务队列,如图9所示。
然后,任务调度器按顺序从任务队列中提取待执行的测试任务,根据人工智能算法模型所需的资源配置,对Kubernetes集群中的工作节点进行筛选,默认对筛选后的工作节点进行评分,选择评分最高的工作节点作为测试节点,将该测试任务与该测试节点进行绑定,并将测试任务和绑定关系存储在 ETCD中。如果用户有特殊需求,也可以在任务调度器中设置特定的调度策略,从筛选后的工作节点中确定测试节点。
接着,测试节点上的kubelet通过API-server访问ETCD获取与测试节点绑定的测试任务,根据测试任务中的资源需求创建资源强制隔离容器,并根据测试任务中的算法模型信息从镜像仓库中下载算法容器镜像,部署在资源强制隔离容器中,并运行该人工智能算法模型。
最后,由算法容器镜像中预设的算法指标采集处理单元获取人工智能算法模型运行过程中的运行指标信息;算法测试引擎使用内置的与该人工智能算法模型对应的算法基准测试框架和测试模型,对采集的运行指标信息进行运算,得出该人工智能算法模型的测试结果,并将测试结果反馈给客户端。用户能够根据测试结果在客户端上修改人工智能算法模型的代码,对人工智能算法模型进行改进,并重复前述步骤,不断改进人工智能算法模型的性能。
籍此,使得各种人工智能算法模型均可以在云原生场景下进行基准性能测试,通过资源强制隔离容器来运行人工智能算法模型,资源隔离更严格,能够为人工智能算法模型的测试提供更标准的测试环境,使得测试结果更加准确;基于Kubernetes系统来实现人工智能算法模型的基准测试,将系统中的主要模块以容器化的形式部署在Kubernetes集群中的节点上,利用 Kubernetes系统可靠性高、易扩缩等优势,进一步提高了人工智能算法模型在Kubernetes系中进行测试的可用性、可靠性。
此外,还通过对Kubernetes系统核心组件kube-scheduler进行功能拓展,作为任务调度器,对Kubernetes系统的侵入性很低,不会影响Kubernetes系统的正常运行;引入任务权重信息,支持多任务同时发布,允许同一个用户在同一个客户端上同时提交多个人工智能算法模型的测试任务和不同用户在多个客户端上同时提交人工智能算法模型的测试任务。
进一步构建了端到端的人工智能算法基准测试流程体系,使用户可以在一个平台上完成从算法编写到模型发布和性能测试的全过程,通过持续改进、实时反馈、迭代优化的支撑体系提高算法工程师的效率;用户使用客户端提交人工智能算法模型,生成算法容器镜像、创建人工智能算法模型测试任务、接收人工智能算法模型测试结果反馈,对算法工程师更加的方便友好。
示例性系统
图10为根据本申请的一些实施例提供的一种基于Kubernetes系统的人工智能算法模型的测试系统的结构示意图;如图10所示,该基于Kubernetes 系统的人工智能算法模型的测试系统包括:镜像单元1001,配置为基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将算法容器镜像推送至镜像仓库进行存储;其中,算法容器镜像包括算法指标采集处理单元;部署单元1002,配置为在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行;测试单元1003,配置为基于在Kubernetes集群中容器化部署的算法测试引擎,根据算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果;其中,运行指标信息与人工智能算法模型的类型相关。
本申请实施例提供的基于Kubernetes系统的人工智能算法模型的测试系统能够实现上述任一基于Kubernetes系统的人工智能算法模型的测试方法实施例的步骤、流程,并达到相同的技术效果,在此不再一一赘述。
示例性设备
图11为根据本申请的一些实施例提供的电子设备的结构示意图;如图 11所示,该电子设备包括:
一个或多个处理器1101;
计算机可读介质,可以配置为存储一个或多个程序1102,一个或多个处理器1101执行一个或多个程序1102时,实现如下步骤:基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将算法容器镜像推送至镜像仓库进行存储;其中,算法容器镜像包括算法指标采集处理单元;在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在 Kubernetes集群中的算法模型部署容器中运行;基于在Kubernetes集群中容器化部署的算法测试引擎,根据算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果;其中,运行指标信息与人工智能算法模型的类型相关。
图12为根据本申请的一些实施例提供的电子设备的硬件结构图;如图 12所示,该电子设备的硬件结构可以包括:处理器1201、通信接口1202、计算机可读介质1203和通信总线1204。
其中,处理器1201、通信接口1202、计算机可读介质1203通过通信总线804完成相互间的通信。
可选地,通信接口1202可以为通信模块的接口,如GSM模块的接口。
其中,处理器1201具体可以配置为:基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将算法容器镜像推送至镜像仓库进行存储;其中,算法容器镜像包括算法指标采集处理单元;在Kubernetes集群中容器化部署算法容器镜像,以将人工智能算法模型在Kubernetes集群中的算法模型部署容器中运行;基于在Kubernetes集群中容器化部署的算法测试引擎,根据算法指标采集处理单元采集的人工智能算法模型的运行指标信息,生成人工智能算法模型的测试结果;其中,运行指标信息与人工智能算法模型的类型相关。
处理器可以是通用处理器,包括中央处理器(central processing unit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如:IPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC 设备等,例如Ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如:iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可以将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器存储介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的基于Kubernetes系统的人工智能算法模型的测试方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和涉及约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述得设备及系统实施例仅仅是示意性的,其中作为分离不见说明的单元可以使或者也可以不是物理上分开的,作为单元提示的不见可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,包括:
基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将所述算法容器镜像推送至镜像仓库进行存储;其中,所述算法容器镜像包括算法指标采集处理单元;
在Kubernetes集群中容器化部署所述算法容器镜像,以将所述人工智能算法模型在所述Kubernetes集群中的算法模型部署容器中运行;
基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果;其中,所述运行指标信息与所述人工智能算法模型的类型相关。
2.根据权利要求1所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,所述基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,具体为:
调用预设的镜像构建引擎对所述人工智能算法模型及对应的基础镜像、运行环境、配置参数进行打包,封装为所述算法容器镜像。
3.根据权利要求2所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,在所述调用预设的镜像构建引擎对所述人工智能算法模型及对应的基础镜像、运行环境、配置参数进行打包,封装为所述算法容器镜像之前,还包括:
根据所述人工智能算法模型的框架类型,确定与所述人工智能算法模型相对应的所述基础镜像、所述运行环境和所述配置参数。
4.根据权利要求1所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,所述在Kubernetes集群中容器化部署所述算法容器镜像,包括:
响应于用户输入的待测试的人工智能算法模型的标识信息和资源配置信息,创建算法测试任务,并将所述算法测试任务添加至预设的任务队列;
根据所述资源配置信息,在所述Kubernetes集群中选择测试节点,并将所述算法测试任务与所述测试节点进行绑定;
根据所述算法测试任务中包含的所述人工智能算法模型标识信息,从所述镜像仓库中获取所述算法容器镜像,并将所述算法容器镜像部署在所述算法模型部署容器中;其中,所述算法模型部署容器由所述测试节点根据所述算法测试任务中包含的所述资源配置信息创建。
5.根据权利要求4所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,所述算法测试任务还包括用户输入的任务权重信息,所述将所述算法测试任务添加至预设的任务队列,包括:
如果将多个所述算法测试任务同时添加至所述预设的任务队列,则根据所述任务权重信息,对多个所述算法测试任务进行排序。
6.根据权利要求1所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,所述基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果,包括:
所述算法测试引擎从所述算法指标采集处理单元获取所述人工智能算法模型的运行指标信息,并调用与所述人工智能算法模型相对应的测试框架和测试模型,对所述运行指标信息进行运算,生成所述人工智能算法模型的测试结果。
7.根据权利要求1-6任一所述的基于Kubernetes系统的人工智能算法模型的测试方法,其特征在于,所述算法模型部署容器为资源强制隔离容器,所述资源强制隔离容器具有独立的操作系统内核。
8.一种基于Kubernetes系统的人工智能算法模型的测试系统,其特征在于,包括:
镜像单元,配置为基于预设的镜像构建引擎,制作人工智能算法模型对应的算法容器镜像,并将所述算法容器镜像推送至镜像仓库进行存储;其中,所述算法容器镜像包括算法指标采集处理单元;
部署单元,配置为在Kubernetes集群中容器化部署所述算法容器镜像,以将所述人工智能算法模型在所述Kubernetes集群中的算法模型部署容器中运行;
测试单元,配置为基于在所述Kubernetes集群中容器化部署的算法测试引擎,根据所述算法指标采集处理单元采集的所述人工智能算法模型的运行指标信息,生成所述人工智能算法模型的测试结果;其中,所述运行指标信息与所述人工智能算法模型的类型相关。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序为如权利要求1-7任一所述的基于Kubernetes系统的人工智能算法模型的测试方法。
10.一种电子设备,其特征在于,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如权利要求1-7任一所述的基于Kubernetes系统的人工智能算法模型的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424294.7A CN114116481A (zh) | 2021-11-26 | 2021-11-26 | 基于Kubernetes系统的人工智能算法模型的测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424294.7A CN114116481A (zh) | 2021-11-26 | 2021-11-26 | 基于Kubernetes系统的人工智能算法模型的测试方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116481A true CN114116481A (zh) | 2022-03-01 |
Family
ID=80370419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111424294.7A Pending CN114116481A (zh) | 2021-11-26 | 2021-11-26 | 基于Kubernetes系统的人工智能算法模型的测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911492A (zh) * | 2022-05-17 | 2022-08-16 | 北京百度网讯科技有限公司 | 推理服务部署方法、装置、设备以及存储介质 |
-
2021
- 2021-11-26 CN CN202111424294.7A patent/CN114116481A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911492A (zh) * | 2022-05-17 | 2022-08-16 | 北京百度网讯科技有限公司 | 推理服务部署方法、装置、设备以及存储介质 |
CN114911492B (zh) * | 2022-05-17 | 2024-03-08 | 北京百度网讯科技有限公司 | 推理服务部署方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102501992B1 (ko) | 데이터 처리방법 및 관련제품 | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
CN104580519B (zh) | 一种快速部署openstack云计算平台的方法 | |
CN106802807B (zh) | 基于容器平台的应用交付方法、容器平台及应用交付系统 | |
CN108279892B (zh) | 一种拆分大型应用服务为微服务的方法、装置及设备 | |
US20140245319A1 (en) | Method for enabling an application to run on a cloud computing system | |
CN108786112B (zh) | 一种应用场景配置方法、装置和存储介质 | |
CN111105006B (zh) | 一种深度学习网络训练系统及方法 | |
CN102725733A (zh) | 在平台之间移植虚拟机映像 | |
CN106610839B (zh) | 发布升级包的方法、轻量升级方法、装置及系统 | |
KR101548160B1 (ko) | 워게임 모델의 연동 시스템 및 방법 | |
CN110187912A (zh) | 一种节点选择方法和装置 | |
CN103577207A (zh) | 一种自定义界面系统中界面组件的加载方法和装置 | |
CN107133064A (zh) | 原生应用的页面热更新方法及装置 | |
CN113553140B (zh) | 资源调度方法、设备及系统 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN111459621B (zh) | 云仿真集成与调度方法、装置、计算机设备和存储介质 | |
CN111159265B (zh) | 一种etl数据迁移方法和系统 | |
CN113885935A (zh) | 资源打包方法、装置、电子设备及计算机可读存储介质 | |
CN114116481A (zh) | 基于Kubernetes系统的人工智能算法模型的测试方法和系统 | |
CN109821240B (zh) | 一种基于Unity实现资源LOD分级的方法及其装置 | |
CN113535411B (zh) | 资源调度方法、设备及系统 | |
CN108804120A (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN113434255A (zh) | 虚拟设备的创建方法及其装置 | |
JP6001199B2 (ja) | アンドロイドアプリケーションのタイゼン導入可能パッケージ自動変換方法及びこのためのコンピュータ読み取り可能な記録媒体 |
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 |