掌桥专利:专业的专利平台
掌桥专利
首页

模型测试方法、设备、存储介质及程序产品

文献发布时间:2023-06-19 12:13:22


模型测试方法、设备、存储介质及程序产品

技术领域

本发明涉及人工智能技术领域,尤其涉及一种模型测试方法、设备、存储介质及程序产品。

背景技术

随着人工智能技术的不断发展,越来越多的非计算机行业的人员投入到算法研究和数据科研中,但是大部分算法工程师都主要是基于本地环境研究,输出算法研究结果。如果有些算法模型需要工程化或者部署后持续提供服务,就需要对算法模型的性能进行评估,否则很难达到预期效果。然而算法工程师要进行模型性能的评估,就只能针对单个算法模型单独编写脚本进行模型性能的测试,测试效率低。

发明内容

本发明的主要目的在于提供一种模型测试方法、设备、存储介质及程序产品,旨在解决现有的算法模型测试方法效率低的技术问题。

为实现上述目的,本发明提供一种模型测试方法,所述方法应用于测试节点,所述测试节点与多个模型节点通信连接,所述方法包括以下步骤:

当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点;

将所述待测试模型的模型信息发送给所述目标模型节点,以供所述目标模型节点根据所述模型信息部署并启动所述待测试模型;

调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果;

根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

可选地,所述当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点的步骤包括:

当检测到对待测试模型进行测试的测试任务时,将所述多个模型节点中机型为所述测试任务中指定机型的节点作为备选模型节点;

从处于空闲状态的备选模型节点中确定目标模型节点。

可选地,所述当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点的步骤之前,还包括:

当检测到用户触发的任务配置操作时,根据所述任务配置操作所配置的信息创建所述测试任务,其中,所述任务配置操作所配置的信息包括所述模型信息、所述测试数据对应的测试集信息、所述待测试指标和指定机型中的一项或多项。

可选地,当所述待测试指标为模型性能类型的指标时,所述调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果的步骤包括:

根据所述测试任务对应的测试集信息获取目标测试集;

将所述目标测试集中的各条测试数据分别发送给所述目标模型节点,以调用所述目标模型节点采用所述待测试模型对所述各条测试数据分别进行处理,并获取所述目标模型节点返回的所述各条测试数据分别对应的模型输出结果;

所述根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果的步骤包括:

根据各所述模型输出结果和所述目标测试集中所述各条测试数据分别对应的真实标注数据,计算得到所述测试任务中待测试指标的测试结果。

可选地,所述目标模型节点的个数为多个,所述调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果的步骤包括:

按照预设负载策略调用各所述目标模型节点采用所述待测试模型分别对所述测试任务对应的不同测试数据进行处理,并获取各所述目标模型节点返回的模型输出结果。

为实现上述目的,本发明还提供一种模型测试方法,所述方法应用于模型节点,多个所述模型节点分别与测试节点通信连接,所述方法包括以下步骤:

接收所述测试节点发送的待测试模型的模型信息,其中,所述测试节点在检测到对所述待测试模型进行测试的测试任务时,从多个所述模型节点中确定目标模型节点,并将所述模型信息发送给所述目标模型节点;

根据所述模型信息部署并启动所述待测试模型;

当接受到所述测试节点的调用时,采用所述待测试模型对所述测试任务对应的测试数据进行处理得到模型输出结果;

将所述模型输出结果返回给所述测试节点,以供所述测试节点根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

可选地,所述模型信息包括所述待测试模型的模型文件、依赖环境信息和训练框架类型,

所述根据所述模型信息部署并启动所述待测试模型的步骤包括:

根据所述依赖环境信息安装启动所述待测试模型时所需的依赖环境;

检测所述训练框架类型是否为所述模型节点中通用框架所支持的类型;

若是,则在所述通用框架中加载所述模型文件以启动所述待测试模型。

为实现上述目的,本发明还提供一种模型测试装置,所述装置部署于测试节点,所述测试节点与多个模型节点通信连接,所述装置包括:

确定模块,用于当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点;

发送模块,用于将所述待测试模型的模型信息发送给所述目标模型节点,以供所述目标模型节点根据所述模型信息部署并启动所述待测试模型;

调用模块,用于调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果;

计算模块,用于根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

为实现上述目的,本发明还提供一种模型测试装置,所述装置部署于模型节点,多个所述模型节点分别与测试节点通信连接,所述装置包括:

接收模块,用于接收所述测试节点发送的待测试模型的模型信息,其中,所述测试节点在检测到对所述待测试模型进行测试的测试任务时,从多个所述模型节点中确定目标模型节点,并将所述模型信息发送给所述目标模型节点;

部署模块,用于根据所述模型信息部署并启动所述待测试模型;

处理模块,用于当接受到所述测试节点的调用时,采用所述待测试模型对所述测试任务对应的测试数据进行处理得到模型输出结果;

返回模块,用于将所述模型输出结果返回给所述测试节点,以供所述测试节点根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

为实现上述目的,本发明还提供一种模型测试设备,所述模型测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的模型测试程序,所述模型测试程序被所述处理器执行时实现如上所述的模型测试方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有模型测试程序,所述模型测试程序被处理器执行时实现如上所述的模型测试方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的模型测试方法的步骤。

本发明中,通过当测试节点检测到对待测试模型进行测试的测试任务时,从多个模型节点中确定目标模型节点,将待测试模型的模型信息发送给目标模型节点,以供目标模型节点根据模型信息部署并启动待测试模型;通过测试节点调用目标模型节点采用待测试模型对测试任务对应的测试数据进行处理,并获取目标模型节点返回的模型输出结果,根据模型输出结果计算得到测试任务中待测试指标的测试结果。相比于现有的人工针对单个模型编写测试代码进行测试的方案,本发明中,通过设置包括测试节点和模型节点的分布式架构,测试节点基于测试任务自动发布模型信息,模型节点自动进行模型部署、加载,测试节点自动获取模型处理结果进行指标的测试,提供了一个自动化的模型测试方案,提高了模型测试的效率。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明模型测试方法第一实施例的流程示意图;

图3为本发明实施例涉及的一种测试节点与模型节点的交互示意图;

图4为本发明实施例涉及的一种模型测试整体流程示意图;

图5为本发明实施例涉及的一种空闲机器选择场景示意图;

图6为本发明实施例涉及的一种多节点模型部署场景示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

需要说明的是,本发明实施例模型测试设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。模型测试设备可以是测试节点或模型节点,测试节点与多个模型节点通信连接。

如图1所示,该模型测试设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对模型测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及模型测试程序。操作系统是管理和控制设备硬件和软件资源的程序,支持模型测试程序以及其它软件或程序的运行。

当模型测试设备是测试节点时,在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与模型节点建立通信连接;而处理器1001可以用于调用存储器1005中存储的模型测试程序,并执行以下操作:

当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点;

将所述待测试模型的模型信息发送给所述目标模型节点,以供所述目标模型节点根据所述模型信息部署并启动所述待测试模型;

调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果;

根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点的步骤包括:

当检测到对待测试模型进行测试的测试任务时,将所述多个模型节点中机型为所述测试任务中指定机型的节点作为备选模型节点;

从处于空闲状态的备选模型节点中确定目标模型节点。

进一步地,所述当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点的步骤之前,处理器1001还可以用于调用存储器1005中存储的模型测试程序执行以下操作:

当检测到用户触发的任务配置操作时,根据所述任务配置操作所配置的信息创建所述测试任务,其中,所述任务配置操作所配置的信息包括所述模型信息、所述测试数据对应的测试集信息、所述待测试指标和指定机型中的一项或多项。

进一步地,当所述待测试指标为模型性能类型的指标时,所述调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果的步骤包括:

根据所述测试任务对应的测试集信息获取目标测试集;

将所述目标测试集中的各条测试数据分别发送给所述目标模型节点,以调用所述目标模型节点采用所述待测试模型对所述各条测试数据分别进行处理,并获取所述目标模型节点返回的所述各条测试数据分别对应的模型输出结果;

所述根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果的步骤包括:

根据各所述模型输出结果和所述目标测试集中所述各条测试数据分别对应的真实标注数据,计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述目标模型节点的个数为多个,所述调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果的步骤包括:

按照预设负载策略调用各所述目标模型节点采用所述待测试模型分别对所述测试任务对应的不同测试数据进行处理,并获取各所述目标模型节点返回的模型输出结果。

当模型测试设备是模型节点时,在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与测试节点建立通信连接;而处理器1001可以用于调用存储器1005中存储的模型测试程序,并执行以下操作:

接收所述测试节点发送的待测试模型的模型信息,其中,所述测试节点在检测到对所述待测试模型进行测试的测试任务时,从多个所述模型节点中确定目标模型节点,并将所述模型信息发送给所述目标模型节点;

根据所述模型信息部署并启动所述待测试模型;

当接受到所述测试节点的调用时,采用所述待测试模型对所述测试任务对应的测试数据进行处理得到模型输出结果;

将所述模型输出结果返回给所述测试节点,以供所述测试节点根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述模型信息包括所述待测试模型的模型文件、依赖环境信息和训练框架类型,所述根据所述模型信息部署并启动所述待测试模型的步骤包括:

根据所述依赖环境信息安装启动所述待测试模型时所需的依赖环境;

检测所述训练框架类型是否为所述模型节点中通用框架所支持的类型;

若是,则在所述通用框架中加载所述模型文件以启动所述待测试模型。

基于上述的结构,提出模型测试方法的各个实施例。

参照图2,图2为本发明模型测试方法第一实施例的流程示意图。

本发明实施例提供了模型测试方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,模型测试方法应用于测试节点,测试节点与多个模型节点通信连接,测试节点和模型节点可以是智能手机、个人计算机和服务器等设备,在本实施例中具体不做限制。在本实施例中,模型测试方法包括:

步骤S10,当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点;

在本实施例中,测试系统可以包括测试节点和模型节点,模型节点的个数有多个,用于部署和启动运行模型,测试节点则用于调用模型节点获得模型输出结果,进而完成测试任务。具体地,测试任务可以是测试节点基于用户触发的任务配置操作或者其他机器发送的测试任务建立指令而建立的,也可以是由其他节点直接发送给测试节点的。测试任务是指对待测试模型进行测试的任务,具体地,测试任务可以包含对待测试模型的模型信息、测试数据集(或称为测试集)的相关信息、测试时所要求采用的模型节点的相关信息和/或待测试指标等信息的规定。其中,待测试模型是通过机器学习算法所训练得到的模型,例如决策树模型、逻辑回归模型、神经网络模型等,在本实施例中对模型的类型并不做限制。模型信息可以包括待测试模型的模型名称或编号等能够唯一指示模型的标识信息;或者,模型信息可以包括待测试模型的模型文件,模型文件即经过训练所得到的能够实现模型任务的代码文件,加载该模型文件后,即可输入数据进行处理得到模型输出结果;或者,模型信息在包括标识信息或模型文件的基础上,进一步还可包括模型训练时所使用的框架类型(以下称为训练框架类型),或进一步还可包括启动待测试模型时所需的依赖环境的信息。测试集的相关信息可以是测试集存储位置的索引信息或测试集的文件名等能够标识测试集的信息。模型节点的相关信息可以是模型节点的机型或模型节点的编号等信息。待测试指标可以是模型性能指标或压测性能指标;其中,模型性能指标是与模型的预测性能相关的指标,例如准确率、精准率、召回率等;压测性能指标是指与模型的服务性能相关的指标,例如TPS(每秒事务数)、RT(响应时间)、CPU利用率、内存占有率等。

当测试节点检测到对待测试模型进行测试的测试任务后,可从多个模型节点中确定目标模型节点。具体地,测试节点从多个模型节点中确定一个模型节点作为目标模型节点,也可以从多个模型节点中确定多个模型节点作为目标模型节点,也即,目标模型节点的数量可以是一个也可以是多个,在本实施例中并不做限制。从多个模型节点中确定目标模型节点的方法有多种;例如,可以是从多个模型节点中随机选取目标模型节点;或者,可以是从处于空闲状态的模型节点中随机选取目标模型节点;或者,可以是根据测试任务中规定的测试时所要求采用的模型节点的相关信息来确定目标模型节点,比如相关信息是模型节点的编号,则测试节点可直接将该编号对应的模型节点作为目标模型节点。

进一步地,在一实施方式中,所述步骤S10之前,还包括:

步骤a,当检测到用户触发的任务配置操作时,根据所述任务配置操作所配置的信息创建所述测试任务,其中,所述任务配置操作所配置的信息包括所述模型信息、所述测试数据对应的测试集信息、所述待测试指标和指定机型中的一项或多项。

测试节点可以设置供用户进行任务配置的交互功能,基于该交互功能,用户可以进行任务配置。当测试节点检测到用户触发的任务配置操作时,即可根据任务配置操作所配置的信息创建测试任务。任务配置操作所配置的信息可以包括模型信息、测试数据对应的测试集信息、待测试指标和指定机型中的一项或多项。例如,在一实施方式中,用户可以上传待测试模型的模型文件和测试集,并在测试节点中配置待测试模型的训练框架类型、依赖环境等其他模型信息,以及配置想要测试的指标(也即待测试指标)和指定使用哪一种机型的模型节点来测试。

步骤S20,将所述待测试模型的模型信息发送给所述目标模型节点,以供所述目标模型节点根据所述模型信息部署并启动所述待测试模型;

测试节点在确定目标模型节点后,可将待测试模型的模型信息发送给目标模型节点。模型节点在接收到测试节点发送的模型信息后,可根据该模型信息部署待测试模型。具体地,若模型信息中包括的是待测试模型的标识信息,例如待测试模型的模型名称,则模型节点可以根据标识信息从测试节点或云存储中获取待测试模型的模型文件;其中,模型文件可以预先由用户上传至测试节点或云存储中。若模型信息中包括的是待测试模型的模型文件,则模型节点可直接从模型信息中获取模型文件。在一实施方式中,模型节点将模型文件进行保存,并记录存储路径,根据存储路径启动待测试模型或者在接收到测试节点发送的启动指令后启动待测试模型。其中,启动待测试模型即加载模型文件以启动待测试模型的进程。进一步地,针对使用不同类型的框架训练得到的模型,需要使用不同的框架来加载模型文件,在一些实施方式中,为扩大测试系统所能测试的模型种类,可在模型节点中部署用于加载模型文件的通用框架,通用框架支持多种主流的训练框架类型,也即,通用框架中设置了不同的训练框架类型所对应的加载方法;测试节点发送的模型信息中还包括待测试模型的训练框架类型,模型节点确定该训练框架类型是否是通用框架所支持的类型,如果是,则在通用框架中按照该训练框架类型对应的加载方法加载模型文件以启动待测试模型,如果不支持,则模型节点可以向测试节点反馈,测试节点接收到反馈后可输出提示信息提示人工部署框架。进一步地,在一些实施方式中,为进一步提高模型测试的效率,测试节点发送的模型信息中还可包括依赖环境信息,依赖环境信息也即启动待测试模型所需的依赖环境的信息,具体地,可以包括启动待测试模型时所需要使用到的一些库,例如数据库或算法库等;模型节点根据模型信息中的依赖环境信息安装依赖环境,在安装之后,即可加载模型文件,以启动待测试模型。

步骤S30,调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果;

在模型节点启动待测试模型后,测试节点调用目标模型节点采用待测试模型对测试任务对应的测试数据进行处理。其中,测试任务对应的测试数据可以是测试任务中规定的测试集中的测试数据,也可以是在测试任务没有规定时,采用默认的测试集进行测试,测试数据即默认的测试集中的测试数据。在一实施方式中,测试节点可以获取测试任务对应的测试集,将测试集中的测试数据分别发送给目标模型节点,以调用目标模型节点采用待测试模型对各个测试数据进行处理。在另一实施方式中,也可以是模型节点从测试节点或云存储中获取测试集,接收到测试节点的调用后,采用待测试模型对测试集中的数据进行处理。模型节点将采用待测试模型处理测试数据得到的模型输出结果返回给测试节点。进一步地,在一实施方式中,模型节点在启动待测试模型后,可返回一个调用接口给测试节点,测试节点通过该调用接口来调用模型节点对测试数据进行处理。

步骤S40,根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

测试节点在获取到目标模型节点返回的模型输出结果后,即可根据模型输出结果计算测试任务中待测试指标的测试结果。具体地,测试节点中预先部署了不同的指标所对应的计算方法,测试节点调用待测试指标相应的计算方法基于模型输出结果进行计算,即可得到待测试模型关于待测试指标的测试结果。具体地,当待测试指标是模型性能指标时,测试节点可以根据模型输出结果以及测试数据对应的真实标注数据来调用相应的计算方法进行计算;例如,对于准确率指标,测试节点可将每条测试数据对应的模型输出结果和真实标注数据进行比对,判断模型输出结果是否正确,也即判断待测试模型对该条测试数据是否预测准确,将预测准确的测试数据的数据量处以总共的测试数据的数据量得到准确率,也即得到待测试模型关于准确率指标的测试结果。当待测试指标是压测性能指标时,测试节点可以根据模型输出结果和一些其他信息来调用相应的计算方法进行计算。例如,测试节点可以根据发送测试数据的时间和接收到模型输出结果的时间计算RT,可以根据并发数和平均响应时间计算TPS,还可以根据目标模型节点处理测试数据时的内存占用数据计算内存占用率,根据目标模型节点处理测试数据时的CPU利用数据来计算CPU利用率等。

在本实施例中,通过当测试节点检测到对待测试模型进行测试的测试任务时,从多个模型节点中确定目标模型节点,将待测试模型的模型信息发送给目标模型节点,以供目标模型节点根据模型信息部署并启动待测试模型;通过测试节点调用目标模型节点采用待测试模型对测试任务对应的测试数据进行处理,并获取目标模型节点返回的模型输出结果,根据模型输出结果计算得到测试任务中待测试指标的测试结果。相比于现有的人工针对单个模型编写测试代码进行测试的方案,本实施例中,通过设置包括测试节点和模型节点的分布式架构,测试节点基于测试任务自动发布模型信息,模型节点自动进行模型部署、加载,测试节点自动获取模型处理结果进行指标的测试,提供了一个自动化的模型测试方案,提高了模型测试的效率。

进一步地,在一实施方式中,测试节点可以将测试结果进行可视化输出,例如,以性能报告的形式输出。例如,如图3所示,测试节点中的应用服务可以按照一定的测试计划(例如各条测试数据的发送先后顺序)调用模型节点处理测试数据(对应图中第1步),模型节点将处理结果返回(对应图中第2步),应用服务将模型输出结果进行记录,再根据最终记录的各个测试数据对应的模型输出结果计算待测试指标的测试结果,得到性能报告并输出。若待测试指标是模型性能类型的指标,则测试节点可以根据测试结果绘制模型性能曲线,例如,P-R曲线(Precision Recall曲线,查准率-查全率曲线)、ROC曲线(ReceiverOperating Characteristic Curve,一种评价分类模型的曲线)或AUC曲线(Area underthe ROC curve,一种用于评价模型分类性能的曲线)等,将模型性能曲线包含在性能报告中输出。通过将测试结果可视化输出,可以使得用户能够直观地获取到待测试模型的测试结果,进而快速地根据测试结果对待测试模型进行调整和优化。

在一实施方式中,如图4所示,用户可将算法模型和数据集(也即测试集)上传至测试节点或云存储,在需要测试时,在数据集存储池中选择要使用的数据集,以及配置需要测试的模型性能指标和测试机器(也即模型节点),测试节点基于用户的配置操作生成模型测试任务,并执行测试任务得到性能报告,最后输出性能报告。

进一步地,基于上述第一实施例,提出本发明模型测试方法第二实施例,在本实施例中,所述步骤S10包括:

步骤S101,当检测到对待测试模型进行测试的测试任务时,将所述多个模型节点中机型为所述测试任务中指定机型的节点作为备选模型节点;

当模型文件的大小、待测试模型的类型等不同,测试是所需要得机器机型可能不同,因此,在本实施例中,测试任务可以对测试所采用的模型节点的机型进行指定,也即,测试任务中可包括指定机型。机型可以是指机器的型号、内存大小、处理器型号等等机器相关的类型信息。用户可以在配置任务时配置所需的机型,测试节点将任务配置操作所配置的机型作为测试任务的指定机型。当测试节点检测到对待测试模型进行测试的测试任务时,将多个模型节点中机型为测试任务中指定机型的节点作为备选模型节点。例如,如图5所示,有2C4G、4C8G、8C16G和8C32G四种不同的机型(其中,C表示CPU的核数单位,G表示内存大小单位),指定机型是8C16G,则可以将机型为8C16G的模型节点作为备选模型节点。

步骤S102,从处于空闲状态的备选模型节点中确定目标模型节点。

测试节点确定备选模型节点后,可从处于空闲状态的备选模型节点中确定目标模型节点。具体地,当有多个处于空闲状态的备选模型节点是,可以从中选取一个或多个节点作为目标模型节点;当处于空闲状态的备选模型节点的数量不够时,例如需要确定一个目标模型节点但当前没有处于空闲状态的备选模型节点,则可以进行等待,例如将测试任务加入等待队列,直到处于空闲状态的备选模型节点数量达标后,将其确定为目标模型节点。进一步地,在一实施方式中,测试节点可以向模型节点发送询问消息,以确定模型节点是否处于空闲状态,或者模型节点可以定时向测试节点发送汇报消息,以汇报自己当前的状态。进一步地,模型节点处于空闲状态可以是模型节点已关闭所有此前测试任务对应的待测试模型的进程。

在本实施例中,通过设置不同机型的模型节点供选择,进一步扩大了测试系统能够测试的模型种类,使得测试系统能够适应于测试更多种类的算法模型。通过选取处于空闲状态的模型节点作为目标模型节点,使得目标模型节点在运行待测试模型时不被其他进程所干扰,进而提高了测试结果的准确性。

进一步地,基于上述第一和/或第二实施例,提出本发明模型测试方法第三实施例,在本实施例中,当所述待测试指标为模型性能类型的指标时,所述步骤S30包括:

步骤S301,根据所述测试任务对应的测试集信息获取目标测试集;

测试节点可根据测试任务对应的测试集信息获取目标测试集。其中,测试集信息即测试集的相关信息,可以是测试集存储位置的索引信息或测试集的文件名等能够标识测试集的信息,根据测试信息可以从测试节点的本地存储中或者是云存储中获取测试集,将获取到的测试集作为目标测试集。目标测试集中包括多条测试数据以及每条测试数据分别对应的真实标注数据。

步骤S302,将所述目标测试集中的各条测试数据分别发送给所述目标模型节点,以调用所述目标模型节点采用所述待测试模型对所述各条测试数据分别进行处理,并获取所述目标模型节点返回的所述各条测试数据分别对应的模型输出结果;

测试节点可以将目标测试集中的各条测试数据分别发送给目标模型节点,以调用目标模型节点采用待测试模型对各条测试数据分别进行处理,得到各条测试数据分别对应的模型输出结果,并返回给测试节点。

所述步骤S40包括:

步骤S401,根据各所述模型输出结果和所述目标测试集中所述各条测试数据分别对应的真实标注数据,计算得到所述测试任务中待测试指标的测试结果。

测试节点在接收到目标模型节点返回的模型输出结果后,即得到了每条测试数据对应的模型输出结果和真实标注数据。测试节点可以根据模型输出结果以及测试数据对应的真实标注数据来调用相应的计算方法进行计算;例如,对于准确率指标,测试节点可将每条测试数据对应的模型输出结果和真实标注数据进行比对,判断模型输出结果是否正确,也即判断待测试模型对该条测试数据是否预测准确,将预测准确的测试数据的数据量处以总共的测试数据的数据量得到准确率,也即得到待测试模型关于准确率指标的测试结果。

在本实施例中,通过测试节点根据测试任务对应的测试集信息获取目标测试集,调用目标模型节点采用待测试模型分别处理目标测试集中的各条测试数据得到模型输出结果,再根据各模型输出结果和各条测试数据分别对应的真实标注数据,计算得到测试任务中待测试指标的测试结果,实现了对模型性能类型指标的自动化测试,提高了模型性能类型指标的测试效率。

进一步地,基于上述第一、第二和/或第三实施例,提出本发明模型测试方法第四实施例,在本实施例中,所述目标模型节点的个数为多个,所述步骤S30包括:

步骤S303,按照预设负载策略调用各所述目标模型节点采用所述待测试模型分别对所述测试任务对应的不同测试数据进行处理,并获取各所述目标模型节点返回的模型输出结果。

在本实施例中,目标模型节点的个数可以是多个,也即,测试节点将待测试模型的模型信息发送给多个模型节点,各个模型节点分别部署待测试模型。测试节点可以按照预设负载策略来调用各个目标模型节点处理不同的测试数据,也即,测试节点根据预设负载策略来确定调用哪个目标模型节点来处理那些测试数据。其中,预设负载策略可以根据需要进行设置,例如,按照各个测试节点的响应时长,对响应时长较短的目标模型节点可以设置更快的测试数据发送速率,对响应时长较长的目标模型节点可以设置较慢的发送速率,以使得响应时长较短的目标模型节点能够处理更多的测试数据,进而提高模型输出结果的获取效率,提高整体的测试效率。

进一步地,在一实施方式中,如图6所示,测试节点可以包括应用服务(图中未示出)和网关,由应用服务向网关发送请求,网关接收请求后按照定制化负载策略来调用各个模型节点处理测试数据,并获取到模型输出结果后计算测试结果,将测试结果返回给应用服务。

在本实施例中,通过选取多个模型节点作为目标模型节点,按照预设负载策略来调用各个目标模型节点采用待测试模型处理不同的测试数据,获得各个目标模型节点返回的模型输出结果,提高了测试数据的处理效率,进而提高了整体的测试效率。

进一步地,基于上述第一、第二、第三和/或第四实施例,提出本发明模型测试方法第五实施例,在本实施例中,所述模型测试方法应用于模型节点,多个模型节点与测试节点分别通信连接,测试节点和模型节点可以是智能手机、个人计算机和服务器等设备,在本实施例中具体不做限制。在本实施例中,模型测试方法包括:

步骤A10,接收所述测试节点发送的待测试模型的模型信息,其中,所述测试节点在检测到对所述待测试模型进行测试的测试任务时,从多个所述模型节点中确定目标模型节点,并将所述模型信息发送给所述目标模型节点;

模型节点接收测试节点发送的待测试模型的模型信息,其中,测试节点根据测试任务向目标模型节点发送模型信息的具体实施方式可参照上述各实施例,在此不进行详细赘述。

步骤A20,根据所述模型信息部署并加载所述待测试模型;

模型节点在接收到模型信息后,根据模型信息部署并加载待测试模型的具体实施方式可参照上述各实施例,在此不进行详细赘述。

步骤A30,当接受到所述测试节点的调用时,采用所述待测试模型对所述测试任务对应的测试数据进行处理得到模型输出结果;

当接收到测试节点的调用时,模型节点采用待测试模型对测试任务对应的测试数据进行处理得到模型输出结果,具体实施方式可参照上述各实施例,在此不进行详细赘述。

步骤A40,将所述模型输出结果返回给所述测试节点,以供所述测试节点根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

模型节点将模型输出结果返回给测试节点。测试节点根据模型输出结果计算测试任务中待测试指标的测试结果的具体实施方式可参照上述各实施例,在此不进行详细赘述。

进一步地,在一实施方式中,所述模型信息包括所述待测试模型的模型文件、依赖环境信息和训练框架类型,所述步骤A20包括:

步骤A201,根据所述依赖环境信息安装加载所述待测试模型时所需的依赖环境;

模型节点根据依赖环境信息安装加载待测试模型时所需的依赖环境的具体实施方式可参照上述各实施例,在此不进行详细赘述。

步骤A202,检测所述训练框架类型是否为所述模型节点中通用框架所支持的类型;

步骤A203,若是,则在所述通用框架中加载所述模型文件以启动所述待测试模型。

模型节点检测待测试模型的训练框架类型是否为模型节点中通用框架所支持的类型,如果是,则在通用框架中加载模型文件以启动待测试模型,具体实施方式可参照上述各实施例,在此不进行详细赘述。进一步地,如果待测试模型的训练框架类型不是模型节点中通用框架所支持的类型,则模型节点可以输出提示信息提示人工部署框架。

在本实施例中,通过模型节点接收到模型信息后,根据模型信息部署并启动待测试模型,其中,当测试节点检测到对待测试模型进行测试的测试任务时,从多个模型节点中确定目标模型节点,将待测试模型的模型信息发送给目标模型节点;模型节点接收到调用时,采用待测试模型对测试任务对应的测试数据进行处理,并将处理得到的模型输出结果返回给测试节点,以供测试节点根据模型输出结果计算得到测试任务中待测试指标的测试结果。相比于现有的人工针对单个模型编写测试代码进行测试的方案,本实施例中,通过设置包括测试节点和模型节点的分布式架构,测试节点基于测试任务自动发布模型信息,模型节点自动进行模型部署、加载,测试节点自动获取模型处理结果进行指标的测试,提供了一个自动化的模型测试方案,提高了模型测试的效率。

此外本发明实施例还提出一种模型测试装置,所述装置部署于测试节点,所述测试节点与多个模型节点通信连接,所述装置包括:

确定模块,用于当检测到对待测试模型进行测试的测试任务时,从所述多个模型节点中确定目标模型节点;

发送模块,用于将所述待测试模型的模型信息发送给所述目标模型节点,以供所述目标模型节点根据所述模型信息部署并启动所述待测试模型;

调用模块,用于调用所述目标模型节点采用所述待测试模型对所述测试任务对应的测试数据进行处理,并获取所述目标模型节点返回的模型输出结果;

计算模块,用于根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述确定模块包括:

当检测到对待测试模型进行测试的测试任务时,将所述多个模型节点中机型为所述测试任务中指定机型的节点作为备选模型节点;

从处于空闲状态的备选模型节点中确定目标模型节点。

进一步地,所述装置还包括:

生成模块,用于当检测到用户触发的任务配置操作时,根据所述任务配置操作所配置的信息创建所述测试任务,其中,所述任务配置操作所配置的信息包括所述模型信息、所述测试数据对应的测试集信息、所述待测试指标和指定机型中的一项或多项。

进一步地,当所述待测试指标为模型性能类型的指标时,所述调用模块包括:

获取单元,用于根据所述测试任务对应的测试集信息获取目标测试集;

第一调用单元,用于将所述目标测试集中的各条测试数据分别发送给所述目标模型节点,以调用所述目标模型节点采用所述待测试模型对所述各条测试数据分别进行处理,并获取所述目标模型节点返回的所述各条测试数据分别对应的模型输出结果;

所述计算模块包括:

计算单元,用于根据各所述模型输出结果和所述目标测试集中所述各条测试数据分别对应的真实标注数据,计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述目标模型节点的个数为多个,所述调用模块包括:

第二调用单元,用于按照预设负载策略调用各所述目标模型节点采用所述待测试模型分别对所述测试任务对应的不同测试数据进行处理,并获取各所述目标模型节点返回的模型输出结果。

此外本发明实施例还提出一种模型测试装置,所述装置部署于模型节点,多个所述模型节点分别与测试节点通信连接,所述装置包括:

接收模块,用于接收所述测试节点发送的待测试模型的模型信息,其中,所述测试节点在检测到对所述待测试模型进行测试的测试任务时,从多个所述模型节点中确定目标模型节点,并将所述模型信息发送给所述目标模型节点;

部署模块,用于根据所述模型信息部署并启动所述待测试模型;

处理模块,用于当接受到所述测试节点的调用时,采用所述待测试模型对所述测试任务对应的测试数据进行处理得到模型输出结果;

返回模块,用于将所述模型输出结果返回给所述测试节点,以供所述测试节点根据所述模型输出结果计算得到所述测试任务中待测试指标的测试结果。

进一步地,所述模型信息包括所述待测试模型的模型文件、依赖环境信息和训练框架类型,所述部署模块包括:

安装单元,用于根据所述依赖环境信息安装启动所述待测试模型时所需的依赖环境;

检测单元,用于检测所述训练框架类型是否为所述模型节点中通用框架所支持的类型;

加载单元,用于若是,则在所述通用框架中加载所述模型文件以启动所述待测试模型。

本发明模型测试装置的具体实施方式的拓展内容与上述模型测试方法各实施例基本相同,在此不做赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有模型测试程序,所述模型测试程序被处理器执行时实现如下所述的模型测试方法的步骤。

本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的模型测试方法的步骤。

本发明模型测试设备、计算机可读存储介质和计算机程序产品的各实施例,均可参照本发明模型测试方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 模型测试方法、设备、存储介质及程序产品
  • 小程序测试方法、装置、电子设备、存储介质及程序产品
技术分类

06120113212798