基于容器的深度学习模型测试评估全流程自动管理方法

文档序号:24550929发布日期:2021-04-06 12:03阅读:148来源:国知局
基于容器的深度学习模型测试评估全流程自动管理方法

本公开涉及智能平台开发领域,具体涉及一种基于容器的深度学习模型测试评估全流程自动管理方法。



背景技术:

近年来,深度学习技术得到快速发展,深度学习算法在图像处理、自然语言处理等方面实现了重大的突破。为促进深度学习的创新性研究,已有广泛的针对不同领域、不同应用任务的深度学习比赛展开。

然而,传统的深度学习模型测试评估平台需要大量的人工工作量,需要测评人员逐个下载参赛团队提交的程序代码,然后选择合适的运行环境对代码进行实现,利用测试样本完成模型的测试任务,并对输出结果进行人工评估打分。这种方式不仅会耗费大量的人工和时间成本,而且下载到本地的程序代码会占用大量内存资源。因此,程序测试评估自动管理系统的开发具有重要意义。



技术实现要素:

本公开的一个方面提供了一种基于容器的深度学习模型测试评估全流程自动管理方法,包括:获取参赛镜像文件、微服务镜像文件和测试任务,其中,微服务镜像文件包括出题微服务镜像、比对微服务镜像和评估微服务镜像;获取测试任务对应的任务信息,根据任务信息自动调度出题微服务镜像进行随机出题;根据参赛镜像文件生成测试容器,利用测试容器运行出题微服务镜像给出的测试题目,输出对应的测试值;利用比对微服务镜像对比测试值和样本真值,输出评价参赛镜像文件的核心指标,获取评价参赛镜像文件的通用指标;其中,样本真值为出题微服务镜像中携带的测试题目对应的预设值;利用评估微服务镜像根据核心指标和通用指标输出参赛镜像文件的测试评分,并将测试评分发布至目标栏目。

可选地,上述方法还包括:利用报告微服务镜像根据测试评分生成参赛镜像文件的测评报告,并发布至目标栏目,其中,报告微服务镜像从微服务镜像文件获取。

可选地,上述方法还包括:监控参赛镜像文件执行测试任务的运行,如果运行出现错误,则反馈错误信息。

可选地,在测评报告发布至目标栏目之后,上述方法还包括:将参赛镜像文件执行测试任务的运行过程及输出结果生成运行日志,并存储参赛镜像文件、微服务镜像文件、测试任务、出题微服务镜像给出的测试题目、测评报告以及运行日志。

本公开的另一方面提供了一种基于容器的深度学习模型测试评估全流程自动管理系统,包括:获取模块,用于获取参赛镜像文件、微服务镜像文件和测试任务,其中,微服务镜像文件包括出题微服务镜像、比对微服务镜像、评估微服务镜像和报告微服务镜像;测试模块,用于获取测试任务对应的任务信息,根据任务信息自动调度出题微服务镜像进行随机出题;根据参赛镜像文件生成测试容器,利用测试容器运行出题微服务镜像给出的测试题目,输出对应的测试值;比对模块,用于利用比对微服务镜像对比测试值和样本真值,输出评价参赛镜像文件的核心指标,其中,样本真值为出题微服务镜像中携带的测试题目对应的预设值;监控模块,用于监控参赛镜像文件执行测试任务的运行,输出评价参赛镜像文件的通用指标;以及在运行出现错误时,反馈错误信息;评估模块,用于利用评估微服务镜像根据核心指标和通用指标输出参赛镜像文件的测试评分;发布模块,用于在评估模块输出测评分数后,将测评分数发布至目标栏目。

可选地,上述系统还包括:第一生成模块,用于利用报告微服务镜像根据测试评分生成参赛镜像文件的测评报告;发布模块还用于将测评报告发布至目标栏目。

可选地,上述系统还包括:第二生成模块,用于将参赛镜像文件执行测试任务的运行过程及输出结果生成运行日志。

可选地,上述系统还包括:存储模块,用于存储参赛镜像文件、微服务镜像文件、测试任务、出题微服务镜像给出的测试题目、测评报告以及运行日志。

本公开的另一方面提供了一种电子设备,包括处理器和存储器,存储器中存储有至少一条指令,指令在被处理器执行时实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令在被处理器执行时实现如上所述的方法。

附图说明

图1示意性示出了根据本公开实施例的基于容器的深度学习模型测试评估全流程自动管理方法的流程图;

图2示意性示出了根据本公开另一实施例的基于容器的深度学习模型测试评估全流程自动管理方法的流程图;

图3示意性示出了根据本公开实施例的基于容器的深度学习模型测试评估全流程自动管理系统的框图;

图4示意性示出了根据本公开另一实施例的基于容器的深度学习模型测试评估全流程自动管理系统的框图;

图5示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

现有技术中,对于举办深度学习大型比赛的应用场景,深度学习模型测试评估需要大量的人工工作量,测评人员需要逐个下载参赛团队提交的程序代码,然后选择合适的运行环境对代码进行实现,利用测试样本完成模型的测试任务,并对输出结果进行人工评估打分。这种方式不仅会耗费大量的人工和时间成本,而且下载到本地的程序代码会占用大量内存资源。

为了解决现有技术中所存在的耗费大量人力和时间资源成本等问题,本公开提出了一种基于容器的深度学习模型测试评估全流程自动管理方法、系统、电子设备和计算机可读存储介质。

该方法解决技术问题的思路为:提前要求参赛队伍在开发机器上将深度学习模型训练好,并写好模型推理过程,然后利用docker技术快捷方便地构建一个包含已训练的深度学习模型的镜像,这样对于非开发机器,执行docker镜像即可完成模型推理过程,而无需安装复杂的依赖库,以此实现测试评估全流程自动管理,无需人工操作,有效节省了人工和时间成本。

本公开的实施例提供了一种基于容器的深度学习模型测试评估全流程自动管理方法包括创建测评任务阶段、测试阶段、评估阶段和发布阶段。

在创建测评任务阶段之前,需要先在具有运行软件能力的电子设备上创建用户账户。该电子设备例如可以是个人计算机、台式电脑等等,在此不做限定。管理员、测试人员和参赛队伍分别根据用户信息(例如,用户名、所属单位、密码、确认密码、手机号、邮箱等信息)通过登录/注册界面完成对应账户的注册,以便能够在各自对应的账户上进行相应的操作。

在管理员、参赛队伍和测试人员创建账户完成之后,管理员登录账户并创建测评任务。然后参赛队伍登录账户提交制作好的参赛镜像文件或者与参赛镜像文件对应的镜像链接,该镜像链接中包括镜像名称、仓库地址、用户、密码、镜像id和启动命令等信息,测试评估全流程自动管理系统通过该镜像链接可以自动获取参赛镜像文件。随后,测试人员登录账户,在测试任务对应的栏目中给出具体任务说明,上传相应测试任务的微服务镜像文件。在创建测评任务阶段,测试评估全流程自动管理系统自动获取参赛镜像文件、微服务镜像文件和测试任务,并启动测试任务,进入测试阶段,测试阶段运行结束后输出对应的评价指标,在评估阶段根据评价指标对参赛镜像文件进行评分,在发布阶段将评估结果发布至目标栏目。

图1和图2示意性示出了根据本公开实施例的基于容器的深度学习模型测试评估全流程自动管理方法的流程图。

如图1所示,该方法包括操作s101~s105。

在操作s101,获取参赛镜像文件、微服务镜像文件和测试任务。

其中,系统根据参赛队伍上传的参赛镜像文件和镜像名称或者与参赛镜像文件对应的镜像链接自动获取参赛镜像文件,该参赛镜像文件为利用docker技术构建的包含已训练的深度学习模型的镜像。微服务镜像文件包括出题微服务镜像、比对微服务镜像和评估微服务镜像。系统利用对应的微服务镜像文件可以执行相应的操作。

在操作s102,获取测试任务对应的任务信息,根据任务信息自动调度出题微服务镜像进行随机出题。

其中,系统自动调度出题微服务镜像进行随机出题,出题微服务镜像所出题目的数量可以根据测试评估任务目的自行设定,例如可以是100个或者200个测试题目,甚至更多,在此不做限定。针对每个测试题目(也可以称之为“测试样本”),出题微服务镜像同时会给出与之对应的唯一的样本真值。这里可以理解为,出题微服务镜像给出每一个测试题目的同时也会相应给出唯一的“标准答案”(即样本真值)。

在操作s103,根据参赛镜像文件生成测试容器,利用测试容器运行出题微服务镜像给出的测试题目,输出对应的测试值。

其中,参赛镜像文件是已经利用docker技术制作好的镜像,利用参赛镜像文件生成测试容器,测试容器是参赛队伍上传参赛镜像的实例化,作为一个运行环境,用于自动运行程序。利用测试容器运行出题微服务镜像随机给出的多个测试题目,然后输出与之对应的多个测试值。

在操作s104,利用比对微服务镜像对比测试值和样本真值,输出评价参赛镜像文件的核心指标,获取评价参赛镜像文件的通用指标。

其中,比对微服务镜像将每个测试题目测试值与对应的样本真值进行对比,然后输出评价参赛镜像文件的核心指标。从监控模块中获取评价参赛镜像文件的通用指标。针对不同测试任务,其核心指标和通用指标可能不同,具体视测试任务情况而定。例如,该核心指标例如可以用测试精度表示,通用指标例如可以包括:资源占用率(表示参赛镜像运行测试任务时对cpu、内存和gpu的占用情况)、故障率(表示参赛镜像运行出题微服务镜像随机给出的多个测试题目时失败次数占比运行总次数的比率)、响应时间(表示参赛镜像运行整个测试任务的运行时间)、实时性(表示参赛镜像运行一个测试题目占用的时间)。

在操作s105,利用评估微服务镜像根据核心指标和通用指标输出参赛镜像文件的测试评分,并将测试评分发布至目标栏目。

其中,评估微服务镜像根据核心指标和通用指标输出参赛镜像文件采用加权算法计算参赛镜像文件的测试评分,并将该测试评分发布至测试任务对应的栏目。

如图2所示,根据本公开实施例,上述方法还包括操作s106~s108。

在操作s106,利用报告微服务镜像根据测试评分生成参赛镜像文件的测评报告,并发布至目标栏目,其中,报告微服务镜像从微服务镜像文件获取。

在本公开实施例中,上述基于容器的深度学习模型测试评估全流程自动管理方法还包括报告阶段。在报告阶段,利用微服务镜像文件中的报告微服务镜像根据测试评分生成参赛镜像文件的测评报告,并发布至测试任务对应的栏目,以便管理员查看测评内容和测评状态,并下载测评报告。

在操作s107,监控参赛镜像文件执行测试任务的运行,如果运行出现错误,则反馈错误信息。

在参赛镜像文件执行测试任务运行过程中,通过监控cpu和内存的使用情况以及运行时间来判断当前的运行状态,并根据运行状态执行下一步操作。其中,当处于运行阶段时,则执行继续等待的操作,当运行结束时,则执行生成运行日志并存储运行日志的操作,当运行出现错误时,则反馈错误信息,其中错误信息中包括出错的原因、出错的位置等等,以便参赛队伍和测试人员能够及时获取相关错误信息。

在操作s108,在测评报告发布至目标栏目之后,上述方法还包括:

将参赛镜像文件执行测试任务的运行过程及输出结果生成运行日志,并存储参赛镜像文件、微服务镜像文件、测试任务、出题微服务镜像给出的测试题目、测评报告以及运行日志。

在参赛镜像文件执行测试任务的运行完成之后,将参赛镜像文件、微服务镜像文件的运行过程和输出结果生成对应的运行日志,并将运行日志以及参赛镜像文件、微服务镜像、测试任务、出题微服务镜像给出的测试题目、测评报告等与参赛镜像文件执行测试任务相关的文件和信息全部存储至系统,这样便于测试人员和参赛队伍后续查看测评运行记录,获取相应的运行信息。例如,可以在运行出现错误时,可以通过查询运行记录的方式获取出错的位置以及出错的原因。

与现有技术相比,本公开实施例提出了基于容器的深度学习模型测试评估全流程自动管理方法,该方法基于容器技术获取参赛队伍的模型镜像,创建测试容器和评估容器,实现了参赛模型测试评估全流程自动管理以及测试评分自动生成,替代了大量人工工作量,有效节省了人工和时间成本。

图3示意性示出了根据本公开实施例的基于容器的深度学习模型测试评估全流程自动管理系统的框图。

如图3所示,该系统300包括获取模块310、测试模块320、比对模块330、监控模块340、评估模块350、发布模块360。

获取模块310,用于获取参赛镜像文件、微服务镜像文件和测试任务,其中,微服务镜像文件包括出题微服务镜像、比对微服务镜像、评估微服务镜像和报告微服务镜像。

测试模块320,用于获取测试任务对应的任务信息,根据任务信息自动调度出题微服务镜像进行随机出题。以及根据参赛镜像文件生成测试容器,利用测试容器运行出题微服务镜像给出的测试题目,输出对应的测试值。

比对模块330,用于利用比对微服务镜像对比测试值和样本真值,输出评价参赛镜像文件的核心指标。其中,样本真值为出题微服务镜像中携带的测试题目对应的预设值。针对不同测试任务,其核心指标可能不同,具体视测试任务情况而定。例如,核心指标例如可以用测试精度表示。

监控模块340,用于监控参赛镜像文件执行测试任务的运行,输出评价参赛镜像文件的通用指标;以及在运行出现错误时,反馈错误信息。

评估模块350,用于利用评估微服务镜像根据核心指标和通用指标输出参赛镜像文件的测试评分。

发布模块360,用于在评估模块350输出测评分数后,将测评分数发布至目标栏目。

图4示意性示出了根据本公开另一实施例的基于容器的深度学习模型测试评估全流程自动管理系统的框图。

如图4所示,该系统400包括获取模块410、测试模块420、比对模块430、监控模块440、评估模块450、发布模块460、第一生成模块470、第二生成模块480、存储模块490。其中,获取模块410、测试模块420、比对模块430、监控模块440、评估模块450分别具有与获取模块310、测试模块320、比对模块330、监控模块340、评估模块350对应相同的功能,重复的部分不再赘述。

发布模块460,用于将评估模块450输出的测评分数和第一生成模块470输出的测评报告发布至目标栏目。

第一生成模块470,用于利用报告微服务镜像根据测试评分生成参赛镜像文件的测评报告。

第二生成模块480,用于将参赛镜像文件执行测试任务的运行过程及输出结果生成运行日志。

存储模块490,用于存储获取模块410获取的参赛镜像文件、微服务镜像文件、测试任务、出题微服务镜像给出的测试题目、第一生成模块470输出的测评报告以及第二生成模块480输出的运行日志。

在本公开的一个实施例中,监控模块440还包括:第一监控模块441和第二监控模块442。其中,第一监控模块441用于监控参赛镜像文件执行测试任务的运行,输出评价参赛镜像文件的通用指标至评估模块450中进行加权运算。第二监控模块442用于监控参赛镜像文件执行测试任务的运行,在运行出现错误时,反馈错误信息。

在本公开的一个实施例中,发布模块460还包括:第一发布模块461和第二发布模块462。其中,第一发布模块461用于在获得测试评分后,将测试评分发布至目标栏目。第二发布模块462用于在获得测评报告后,将测评报告发布至目标栏目。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块410、测试模块420、比对模块430、监控模块440、评估模块450、发布模块460、第一生成模块470、第二生成模块480、存储模块490中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、测试模块420、比对模块430、监控模块440、评估模块450、发布模块460、第一生成模块470、第二生成模块480、存储模块490中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、测试模块420、比对模块430、监控模块440、评估模块450、发布模块460、第一生成模块470、第二生成模块480、存储模块490中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的方框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行根据本公开实施例的方法。

具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。

计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括模块521a、模块521b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。

根据本发明的实施例,获取模块410、测试模块420、比对模块430、监控模块440、评估模块450、发布模块460、第一生成模块470、第二生成模块480、存储模块490中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1