CN113590484A - 算法模型服务测试方法、系统、设备及存储介质 - Google Patents

算法模型服务测试方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN113590484A
CN113590484A CN202110871674.9A CN202110871674A CN113590484A CN 113590484 A CN113590484 A CN 113590484A CN 202110871674 A CN202110871674 A CN 202110871674A CN 113590484 A CN113590484 A CN 113590484A
Authority
CN
China
Prior art keywords
test
algorithm
tested
model service
input data
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.)
Granted
Application number
CN202110871674.9A
Other languages
English (en)
Other versions
CN113590484B (zh
Inventor
韦家强
王国印
吴文渊
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.)
Shanghai Xunmeng Information Technology Co Ltd
Original Assignee
Shanghai Xunmeng Information Technology Co 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 Shanghai Xunmeng Information Technology Co Ltd filed Critical Shanghai Xunmeng Information Technology Co Ltd
Priority to CN202110871674.9A priority Critical patent/CN113590484B/zh
Publication of CN113590484A publication Critical patent/CN113590484A/zh
Application granted granted Critical
Publication of CN113590484B publication Critical patent/CN113590484B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种算法模型服务测试方法、系统、设备及存储介质,该方法包括:根据待测试的算法引擎构建被测试的算法引擎;获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。本发明实现了快速、准确地评估升级后的算法引擎和算法模型对线上产生的效果。

Description

算法模型服务测试方法、系统、设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种算法模型服务测试方法、系统、设备及存储介质。
背景技术
目前互联网企业大范围利用算法模型服务来对业务作出更好的决策。算法模型服务通常划分为算法引擎和算法模型,算法引擎将算法打包成服务提供使用,算法模型专注提升自身效果。
随着业务的迅速发展,算法引擎和算法模型都要进行迭代升级,在升级后需要对升级后的效果进行评估。
目前,针对算法模型的效果进行测试评估的方法已经较为成熟,对算法引擎服务的测试也有了较完整的测试链路。
然而由于两者的测试是分开进行,难以评估合在一起后对线上环境会造成什么样的影响,缺少一种统一、快速的测试解决方案。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种算法模型服务测试方法、系统、设备及存储介质,快速、准确地评估升级后的算法引擎和算法模型对线上产生的效果。
本发明实施例提供一种算法模型服务测试方法,包括如下步骤:
根据待测试的算法引擎构建被测试的算法引擎;
获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;
获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
在一些实施例中,所述根据待测试的算法引擎构建被测试的算法引擎,包括如下步骤:
确定算法引擎的测试版本,将对应的算法引擎作为待测试的算法引擎;
获取所述待测试的算法引擎的镜像,根据所述镜像构建被测试的算法引擎。
在一些实施例中,所述获取待测试的算法模型的数据,包括如下步骤:
获取算法模型的测试版本,将对应的算法模型作为待测试的算法模型;
获取所述待测试的算法模型的特征数据和模型文件。
在一些实施例中,所述从测试数据库中获取测试输入数据,包括如下步骤:
将测试数据库中的测试输入数据导入到消息队列中;
从所述消息队列中依次消费消息获取对应的测试输入数据。
在一些实施例中,所述将测试数据库中的测试输入数据导入到消息队列中,包括:根据预设的输入分配规则,将测试数据库中的测试输入数据分别导入到多个消息队列中;
从所述消息队列中依次消费消息获取对应的测试输入数据,包括:根据预设的测试输入数据与算法模型服务系统的映射关系,从与所述被测试的算法模型服务系统相对应的消息队列依次消费消息获取对应的测试输入数据。
在一些实施例中,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法模型的版本和/或算法引擎的版本的映射关系;
所述输入分配规则包括测试输入数据在多个版本的算法模型和/或多个版本的算法引擎之间的分配规则。
在一些实施例中,所述生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果。
在一些实施例中,所述获取待测试的算法模型的数据之前,还包括如下步骤:
采集运行中的线上算法模型服务系统的线上输入数据和线上输出数据;
将所述线上输入数据和线上输出数据存储于所述测试数据库中,将所述线上输入数据作为测试输入数据,将所述线上输出数据作为对应的标准输出数据。
在一些实施例中,将所述线上输入数据和线上输出数据存储于所述测试数据库中,包括如下步骤:
将所述线上输入数据和线上输出数据通过消息队列存储于所述测试数据库中。
在一些实施例中,将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,分别统计测试输出数据与标准输出数据相匹配的测试次数和不匹配的测试次数,得到统计结果;
根据预设的测试指标算法,基于所述统计结果计算得到测试指标值。
本发明实施例还提供一种算法模型服务测试系统,应用于所述的算法模型服务测试方法,所述系统包括:
算法引擎构建模块,用于根据待测试的算法引擎构建被测试的算法引擎;
服务系统构建模块,用于获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
服务系统输入模块,用于从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;
测试结果生成模块,用于获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
本发明实施例还提供一种算法模型服务测试设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的算法模型服务测试方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的算法模型服务测试方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明的算法模型服务测试方法、系统、设备及存储介质具有如下有益效果:
本发明首先构建被测试的算法引擎,并将算法模型导入到被测试的算法引擎中,得到被测试的算法模型服务系统,然后基于测试输入数据来获取算法模型服务系统的测试输出数据,以得到能够评估算法模型服务是否可用的测试结果,通过模拟测试,可以快速、准确地评估升级后的算法引擎和算法模型对线上产生的效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的算法模型服务测试方法的流程图;
图2是本发明一实施例的构建被测试的算法引擎的流程图;
图3是本发明一实施例的获取待测试的算法模型的数据的流程图;
图4是本发明一实施例的从测试数据库中获取测试输入数据的流程图;
图5是本发明一实施例的采集测试输入数据的流程图;
图6是本发明一实施例的算法模型服务测试的时序图;
图7是本发明一实施例的算法模型服务测试系统的结构示意图;
图8是本发明一实施例的算法模型服务测试设备的结构示意图;
图9是本发明一实施例的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此,实际执行的顺序有可能根据实际情况改变。
如图1所示,本发明实施例提供一种算法模型服务测试方法,包括如下步骤S100~S400:
S100:根据待测试的算法引擎构建被测试的算法引擎;
S200:获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
S300:从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统,进行被测试的算法模型服务系统的模拟测试;
S400:获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
本发明的算法模型服务测试方法,首先通过步骤S100构建被测试的算法引擎,并通过步骤S200将算法模型导入到被测试的算法引擎中,得到被测试的算法模型服务系统,然后通过步骤S300和步骤S400,基于测试输入数据来获取算法模型服务系统的测试输出数据,以得到能够评估算法模型服务是否可用的测试结果,通过模拟测试,可以快速、准确地评估升级后的算法引擎和算法模型对线上产生的效果。
本发明的算法模型服务测试方法可以部署于一个单独的服务器,该待测试的算法引擎和待测试的算法模型可以为升级后的待上线的算法引擎和算法模型。本发明在该服务器上通过步骤S100~S200构建被测试的算法模型服务系统,然后通过步骤S300~S400实现模型服务测试。在模型服务测试通过后,可以采用升级后的算法引擎和算法模型来替代当前线上所使用的算法模型服务。如果模型服务测试不通过,则反馈测试结果给工作人员,由工作人员进一步优化处理。在另一可替代的实施方式中,该算法模型服务测试方法所部属的服务器中也可以同时部署有单独的算法引擎的测试算法和单独的算法模型测试算法,在算法引擎和算法模型分别单独测试通过后,通过步骤S100~S200构建被测试的算法模型服务系统,然后通过步骤S300~S400实现模型服务测试。在再一可替代的实施方式中,该算法模型服务测试方法也可以部署于线上模型服务的服务器中,在完成模型服务测试后,如果测试通过,则可以直接采用通过测试的算法引擎和算法模型来替代当前线上所使用的算法模型服务。
如图2所示,在该实施例中,所述步骤S100:根据待测试的算法引擎构建被测试的算法引擎,包括如下步骤:
S110:确定算法引擎的测试版本,将对应的算法引擎作为待测试的算法引擎。此处确定算法引擎的测试版本,可以为接收测试人员手动选择的测试版本。例如,可以提供一个测试操作界面,测试操作界面中有算法引擎的选择列表,选择列表中包括各个可以选择的算法引擎的版本,接收用户在测试操作界面中对算法引擎的版本的选择,作为算法引擎的测试版本。
在另一种可替代的方式中,也可以自动选择最新的算法引擎的版本作为算法引擎的测试版本。在该算法测试服务测试方法与单独的算法引擎测试结合起来时,也可以将最新通过单独测试的算法引擎的版本作为算法引擎的测试版本。
S120:获取所述待测试的算法引擎的镜像,根据所述镜像构建被测试的算法引擎,从而保证被测试的算法引擎与待测试的算法引擎的一致性,被测试的算法引擎的测试结果即可以代表待测试的算法引擎的测试结果。
如图3所示,在该实施例中,所述步骤S200:获取待测试的算法模型的数据,包括如下步骤:
S210:获取算法模型的测试版本,将对应的算法模型作为待测试的算法模型。此处确定算法模型的测试版本,可以为接收测试人员手动选择的测试版本。例如,可以提供一个测试操作界面,测试操作界面中有算法模型的选择列表,选择列表中包括各个可以选择的算法模型的版本,接收用户在测试操作界面中对算法模型的版本的选择,作为算法模型的测试版本。
在另一种可替代的方式中,也可以自动选择最新的算法模型的版本作为算法模型的测试版本。在该算法测试服务测试方法与单独的算法模型测试结合起来时,也可以将最新通过单独测试的算法模型的版本作为算法引擎的测试版本。
S220:获取所述待测试的算法模型的特征数据和模型文件。
此处,特征数据指的是将测试输入数据转换为模型所需要的数据特征的算法数据,例如可以包括特征选择、特征缩放和特征提取。特征选择用于从测试输入数据中自动选出原始属性,特征缩放用于将属性值缩放到相同的范围值内,避免某些属性获得大小非常悬殊的权重值,特征提取用于从原始属性中自动提取一些特征,得到可以输入到算法模型中的特征向量。算法模型则是具体实现某一个机器学习预测功能的模型。例如,算法模型可以为二分类模型、多分类模型、目标识别模型等。
例如,对于一种应用于物流领域的多分类模型来说,其目的是基于收件人的地址信息确定收件人对应的网点,将多个可选的网点分别作为一个类别。输入数据为收件人的地址数据,通过特征数据中的算法可以将收件人的地址数据整理成特征向量,输入到算法模型中,由算法模型来进行特征识别和分类,输出收件人所对应的网点类别。
又例如,对于一种应用于安全监控领域的目标识别模型来说,其目的是识别监控画面中的人物。则输入数据为监控录像,通过特征数据中的算法可以将监控录像中某一帧或多帧画面进行处理,得到特征向量,输入到算法模型中,由算法模型识别监控画面中的人物,并输出识别到的人物在画面中的位置。
如图4所示,在该实施例中,所述步骤S300中,从测试数据库中获取测试输入数据,包括如下步骤:
S310:将测试数据库中的测试输入数据导入到消息队列中;
S320:从所述消息队列中依次消费消息获取对应的测试输入数据。
通过将数据从测试数据库中加载到消息队列,再从消息队列中消费流量,使得消息队列有解耦和方便控制执行速度等好处。
在该实施例中,可以实现多个版本的算法模型服务系统的测试,对应地,每个版本的算法模型服务系统的测试可以分别消费不同的消息队列中的测试输入数据。具体地,所述步骤S310:将测试数据库中的测试输入数据导入到消息队列中,包括:根据预设的输入分配规则,将测试数据库中的测试输入数据分别导入到多个消息队列中。
此处预设的输入分配规则,可以是根据测试输入数据进入测试数据库的入库时间进行分配,例如设定某一特定时间段内的测试输入数据导入到第一消息队列中,另一特定时间段内的测试输入数据导入到第二消息队列中。或者,预设的输入分配规则,也可以根据测试输入数据的类别进行分配,例如测试数据库中同时存储有多种类别的测试输入数据,预先设定不同类别的测试输入数据导入到不同的消息队列中。
此外,由于不同的消息队列中存储有不同的测试输入数据,同时需要预设有不同的测试输入数据与被测试的算法模型服务系统之间的映射关系,以实现自动分配消息队列中的测试输入数据。具体地,所述步骤S320:从所述消息队列中依次消费消息获取对应的测试输入数据,包括:根据预设的测试输入数据与算法模型服务系统的映射关系,从与所述被测试的算法模型服务系统相对应的消息队列依次消费消息获取对应的测试输入数据。
在该实施例中,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法模型的版本和/或算法引擎的版本的映射关系。所述输入分配规则包括测试输入数据在多个版本的算法模型和/或多个版本的算法引擎之间的分配规则。
在一种实施方式中,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法模型的版本的映射关系。不同版本的算法模型可以与一种或多种算法引擎组合得到多个版本的算法模型服务系统,根据算法模型服务系统中的算法模型的版本去消费所对应的消息队列。例如,A1版本的算法引擎和B1版本的算法模型组合后得到C1版本的算法模型服务系统,A2版本的算法引擎和B1版本的算法模型组合后得到C2版本的算法模型服务系统,A1版本的算法引擎和B2版本的算法模型组合后得到C3版本的算法模型服务系统,C1版本的算法模型服务系统与C3版本的算法模型服务系统消费相同的消息队列,而与C2版本的算法模型服务系统消费不同的消息队列。
在另一种实施方式中,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法引擎的版本的映射关系。不同版本的算法引擎可以与一种或多种算法模型组合得到多个版本的算法模型服务系统,根据算法模型服务系统中的算法引擎的版本去消费所对应的消息队列。A1版本的算法引擎和B1版本的算法模型组合后得到C1版本的算法模型服务系统,A2版本的算法引擎和B1版本的算法模型组合后得到C2版本的算法模型服务系统,A1版本的算法引擎和B2版本的算法模型组合后得到C3版本的算法模型服务系统,C1版本的算法模型服务系统与C2版本的算法模型服务系统消费相同的消息队列,而与C3版本的算法模型服务系统消费不同的消息队列。
在再一种实施方式中,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法模型以及算法引擎的版本的映射关系。例如,A1版本的算法引擎和B1版本的算法模型组合后得到C1版本的算法模型服务系统,A2版本的算法引擎和B1版本的算法模型组合后得到C2版本的算法模型服务系统,A1版本的算法引擎和B2版本的算法模型组合后得到C3版本的算法模型服务系统,则C1版本、C2版本、C3版本的算法模型服务系统分别消费不同的消息队列。
在该实施例中,所述步骤S400中,生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果。
具体地,所述步骤S400:将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,分别统计测试输出数据与标准输出数据相匹配的测试次数和不匹配的测试次数,得到统计结果;
根据预设的测试指标算法,基于所述统计结果计算得到测试指标值。测试人员可以根据测试指标值来评估被测试的算法模型服务测试系统是否能够发布上线。
例如,对于一测试输入数据来说,判断其测试输出数据与标准输出数据的差值是否在第一预设范围之内,如果是,则认为该测试输入数据对应于测试成功,否则认为该测试输入数据对应于测试失败,统计所有测试输入数据对应的测试成功和测试失败数,计算测试成功率,作为测试结果。又例如,对于一测试输入数据来说,判断其测试输出数据与标准输出数据之间的差值是否在第二预设范围之内(第二预设范围小于第一预设范围),如果是,则认为该测试输入数据对应于测试准确,否则认为该测试输入数据对应于测试不准确,统计所有测试输入数据对应的测试准确和测试不准确数,计算测试准确率。在其他可替代的实施方式中,也可以设置其他类型的测试评价指标和评价指标计算方法。对于测试输出数据与标准输出数据的偏差特别大的,可以将其对应的测试输入数据进行标注,方便测试人员查看偏差特别大的数据。
在该实施例中,所述步骤S100:获取待测试的算法模型的数据之前,还包括采集测试输入数据的步骤,具体地,如图5所示,采集测试输入数据包括如下步骤:
S510:采集运行中的线上算法模型服务系统的线上输入数据和线上输出数据;此处线上算法模型服务系统即为当前线上正常运行的算法模型服务系统,即此处采集的是线上算法模型服务系统的正常运行数据;
S520:将所述线上输入数据和线上输出数据存储于所述测试数据库中,将所述线上输入数据作为测试输入数据,将所述线上输出数据作为对应的标准输出数据,例如对于分类模型来说,线上输出数据即为线上算法模型服务系统输出的预测类别,对于目标识别模型来说,线上输出数据即为线上算法模型服务系统输出的预测目标位置、目标种类和/或目标尺寸。
因此,本发明通过步骤S510和步骤S520可以复制真实的线上流量,在步骤S300中即通过将测试数据库中的测试输入数据传输到消息队列后,消费消息队列而实现线上流量的回放,在通过步骤S400将测试输出结果与标准输出数据进行对比时,也可以对比测试输出结果和真实线上算法模型服务系统的真实运行结果,从而保证通过测试的算法模型服务系统的效果更符合用户预期。
进一步地,所述步骤S520中,将所述线上输入数据和线上输出数据存储于所述测试数据库中,包括如下步骤:
将所述线上输入数据和线上输出数据通过消息队列存储于所述测试数据库中,使用消息队列有解耦和方便控制执行速度等好处。所述测试数据库可以是离线数据库,也可以是实时数据库。
如图6所示,为该实施例的算法模型服务测试方法的时序图。下面结合图6来具体说明一具体实例的算法模型服务测试方法的实现流程。
首先,对应于步骤S510,由用户即测试人员选择要测试的算法测试服务系统所对应的线上算法测试服务系统,点击流量录制,对应于步骤S520,线上系统即线上算法测试服务系统将实际运行的输入和输出存储到离线数据库中,在该实施例中,将存储系统中的实际线上输入和输出数据发送到消息队列,消息队列异步将输入和输出存储到离线数据库中,离线数据库中进行数据清洗选出合适的数据,数据清洗例如包括去除由网络抖动等因素导致的异常数据。由用户选择待测试的算法引擎的版本,由用户选择待测试的算法模型的版本,并且选择相应的测试输入数据,然后用户启动测试。然后,对应于步骤S110,测试系统获取到待测试的算法引擎的版本后,对应于步骤S120,由测试系统依照指定版本的算法引擎的镜像构建被测试的算法引擎,对应于步骤S210,测试系统获取到待测试的算法模型的版本后,对应于步骤S220,由测试系统根据指定版本的算法模型导入相应的特征数据和模型文件,构建得到被测系统即被测试的算法模型服务测试系统。然后对应于步骤S300,从离线数据库获取录制好的测试输入数据输入到被测系统中,由被测系统运行并将运行结果即模型输出数据返回给测试系统。具体地,测试系统将指定的数据源(如离线数据库的指定存储路径)中的数据导入到特定的消息队列中,对应于不同版本的被测系统,测试系统去消费不同消息队列中的消息,输入到被测系统中。然后对应于步骤S400,由测试系统从被测系统获取了所有的运行结果后,根据被测系统运行结果和实际运行结果进行分析,展示出成功率、准确率等指标和存在差异的输入和输出,以此来比较两个不同版本升级带来的差异,评估此被测系统能否发布上线。
进一步地,在该实施例中,所述步骤S400中,根据所述测试输出数据生成测试结果之后,还包括如下步骤:
根据测试指标值判断被测试的算法模型服务系统是否通过测试;
例如,可以设定每个测试指标值(如成功率、准确率等)的合理阈值范围,如果一个测试指标值超出了其合理阈值范围,则认为被测试的算法模型服务系统没有通过测试,如果所有的测试指标值都在对应的合理阈值范围之内,则认为被测试的算法模型服务系统通过了测试;
如果没有通过测试,则将当前的被测试的算法引擎与正常运行的算法模型组合后得到新的第二算法模型服务系统,将当前的被测试的算法模型与正常运行的算法引擎组合后得到第三算法模型服务系统,采用上述步骤S300和S400,对该第二算法模型服务系统进行测试,判断是否为算法引擎的问题,以及采用上述步骤S300和S400,对该第三算法模型服务系统进行测试,判断是否为算法模型的问题。
如果第二算法模型服务系统测试成功,而第三算法模型服务系统测试失败,则判定为被测试的算法模型测试失败,需要进一步优化,而被测试的算法引擎通过测试。如果第二算法模型服务系统测试失败,而第三算法模型服务系统测试成功,则判定为被测试的算法引擎测试失败,需要进一步优化,而被测试的算法模型测试失败。如果第二算法模型服务系统和第三算法模型服务系统测试均失败,则判定为被测试的算法引擎和算法模型均测试失败,需要进一步优化。
如图7所示,本发明实施例还提供一种算法模型服务测试系统,应用于所述的算法模型服务测试方法,所述系统包括:
算法引擎构建模块M100,用于根据待测试的算法引擎构建被测试的算法引擎;
服务系统构建模块M200,用于获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
服务系统输入模块M300,用于从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;
测试结果生成模块M400,用于获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
本发明的算法模型服务测试系统,首先通过算法引擎构建模块M100构建被测试的算法引擎,并通过服务系统构建模块M200将算法模型导入到被测试的算法引擎中,得到被测试的算法模型服务系统,然后通过服务系统输入模块M300和测试结果生成模块M400,基于测试输入数据来获取算法模型服务系统的测试输出数据,以得到能够评估算法模型服务是否可用的测试结果,通过模拟测试,可以快速、准确地评估升级后的算法引擎和算法模型对线上产生的效果。
在该实施例中,所述算法模型服务测试系统可以部署于一个单独的服务器,该待测试的算法引擎和待测试的算法模型可以为升级后的待上线的算法引擎和算法模型。本发明在该服务器上通过算法引擎构建模块M100和服务系统构建模块M200构建被测试的算法模型服务系统,然后通过服务系统输入模块M300和测试结果生成模块M400实现模型服务测试。在模型服务测试通过后,可以采用升级后的算法引擎和算法模型来替代当前线上所使用的算法模型服务。如果模型服务测试不通过,则反馈测试结果给工作人员,由工作人员进一步优化处理。在另一可替代的实施方式中,该算法模型服务测试系统所部属的服务器中也可以同时部署有单独的算法引擎的测试算法和单独的算法模型测试算法,在算法引擎和算法模型分别单独测试通过后,通过算法引擎构建模块M100和服务系统构建模块M200构建被测试的算法模型服务系统,然后通过服务系统输入模块M300和测试结果生成模块M400实现模型服务测试。在再一可替代的实施方式中,该算法模型服务测试系统也可以部署于线上模型服务的服务器中,在完成模型服务测试后,如果测试通过,则可以直接采用通过测试的算法引擎和算法模型来替代当前线上所使用的算法模型服务。
在该实施例中,所述算法模型服务测试系统中的各个模块的功能可以采用上述算法模型服务测试方法中各个步骤的具体实施方式来实现。例如,算法引擎构建模块M100可以采用上述步骤S110和S120来构建被测试的算法引擎,对于算法引擎服务可以发布指定版本的镜像,服务系统构建模块M200可以采用上述步骤S210和S220来构建算法模型服务系统,对于算法模型可以加载指定版本的模型,服务系统输入模块M300可以采用上述步骤S310和S320来获取测试输入数据,例如采用消息队列消费测试输入数据,使用消息队列有解耦和方便控制执行速度等好处,测试结果生成模块M400可以采用上述步骤S400的具体实施方式来生成测试结果。
在该实施例中,所述算法模型服务测试系统还包括输入数据采集模块,用于采集运行中的线上算法模型服务系统的线上输入数据和线上输出数据;以及将所述线上输入数据和线上输出数据存储于所述测试数据库中,将所述线上输入数据作为测试输入数据,将所述线上输出数据作为对应的标准输出数据。具体地,所述输入数据采集模块存储数据时可以采用消息队列将所述线上输入数据和线上输出数据存储于所述测试数据库中,使用消息队列有解耦和方便控制执行速度等好处。
基于此,在所述测试结果生成模块M400中,根据测试系统收到的运行结果与存储在数据库中的历史真实结果进行对比,得到各个测试指标值。测试人员可以查看成功率、准确率或其它自定义的测试指标值。以此来比较两个不同版本升级带来的差异,评估此次升级后的算法模型服务测试系统能否发布上线。
在该实施例中,所述算法模型服务测试系统还包括模型服务重组模块和服务优化判定模块,用于在所述测试结果生成模块M400生成测试结果后,执行如下步骤:
根据测试指标值判断被测试的算法模型服务系统是否通过测试;
例如,可以设定每个测试指标值(如成功率、准确率等)的合理阈值范围,如果一个测试指标值超出了其合理阈值范围,则认为被测试的算法模型服务系统没有通过测试,如果所有的测试指标值都在对应的合理阈值范围之内,则认为被测试的算法模型服务系统通过了测试;
如果没有通过测试,则将当前的被测试的算法引擎与正常运行的算法模型组合后得到新的第二算法模型服务系统,将当前的被测试的算法模型与正常运行的算法引擎组合后得到第三算法模型服务系统。
然后所述服务系统输入模块M300和所述测试结果生成模块M400对该第二算法模型服务系统进行测试,并生成测试结果,以判断是否为算法引擎的问题。所述服务系统输入模块M300和所述测试结果生成模块M400对该第三算法模型服务系统进行测试,并生成测试结果,以判断是否为算法模型的问题。
所述服务优化判定模块用于在所述第二模型服务系统和所述第三模型服务系统测试完成后,根据测试结果判定是否需要优化算法引擎和算法模型。具体地,如果第二算法模型服务系统测试成功,而第三算法模型服务系统测试失败,则判定为被测试的算法模型测试失败,需要进一步优化,而被测试的算法引擎通过测试。如果第二算法模型服务系统测试失败,而第三算法模型服务系统测试成功,则判定为被测试的算法引擎测试失败,需要进一步优化,而被测试的算法模型测试失败。如果第二算法模型服务系统和第三算法模型服务系统测试均失败,则判定为被测试的算法引擎和算法模型均测试失败,需要进一步优化。
本发明实施例还提供一种算法模型服务测试设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的算法模型服务测试方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
下面参照图8来描述根据本发明的这种实施方式的电子设备600。图8显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述算法模型服务测试方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
所述算法模型服务测试设备中,所述存储器中的程序被处理器执行时实现所述的算法模型服务测试方法的步骤,因此,所述计算机存储介质也可以获得上述算法模型服务测试方法的技术效果。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的算法模型服务测试方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上执行时,所述程序代码用于使所述终端设备执行本说明书上述算法模型服务测试方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上执行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
所述计算机存储介质中的程序被处理器执行时实现所述的算法模型服务测试方法的步骤,因此,所述计算机存储介质也可以获得上述算法模型服务测试方法的技术效果。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (13)

1.一种算法模型服务测试方法,其特征在于,所述方法包括:
根据待测试的算法引擎构建被测试的算法引擎;
获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;
获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
2.根据权利要求1所述的算法模型服务测试方法,其特征在于,所述根据待测试的算法引擎构建被测试的算法引擎,包括如下步骤:
确定算法引擎的测试版本,将对应的算法引擎作为待测试的算法引擎;
获取所述待测试的算法引擎的镜像,根据所述镜像构建被测试的算法引擎。
3.根据权利要求1所述的算法模型服务测试方法,其特征在于,所述获取待测试的算法模型的数据,包括如下步骤:
获取算法模型的测试版本,将对应的算法模型作为待测试的算法模型;
获取所述待测试的算法模型的特征数据和模型文件。
4.根据权利要求1所述的算法模型服务测试方法,其特征在于,所述从测试数据库中获取测试输入数据,包括如下步骤:
将测试数据库中的测试输入数据导入到消息队列中;
从所述消息队列中依次消费消息获取对应的测试输入数据。
5.根据权利要求4所述的算法模型服务测试方法,其特征在于,所述将测试数据库中的测试输入数据导入到消息队列中,包括:根据预设的输入分配规则,将测试数据库中的测试输入数据分别导入到多个消息队列中;
从所述消息队列中依次消费消息获取对应的测试输入数据,包括:根据预设的测试输入数据与算法模型服务系统的映射关系,从与所述被测试的算法模型服务系统相对应的消息队列依次消费消息获取对应的测试输入数据。
6.根据权利要求5所述的算法模型服务测试方法,其特征在于,所述测试输入数据与算法模型服务系统的映射关系包括测试输入数据与算法模型的版本和/或算法引擎的版本的映射关系;
所述输入分配规则包括测试输入数据在多个版本的算法模型和/或多个版本的算法引擎之间的分配规则。
7.根据权利要求1所述的算法模型服务测试方法,其特征在于,所述生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果。
8.根据权利要求7所述的算法模型服务测试方法,其特征在于,所述获取待测试的算法模型的数据之前,还包括如下步骤:
采集运行中的线上算法模型服务系统的线上输入数据和线上输出数据;
将所述线上输入数据和线上输出数据存储于所述测试数据库中,将所述线上输入数据作为测试输入数据,将所述线上输出数据作为对应的标准输出数据。
9.根据权利要求8所述的算法模型服务测试方法,其特征在于,将所述线上输入数据和线上输出数据存储于所述测试数据库中,包括如下步骤:
将所述线上输入数据和线上输出数据通过消息队列存储于所述测试数据库中。
10.根据权利要求7所述的算法模型服务测试方法,其特征在于,将所述测试输出数据与预设的标准输出数据进行比较,根据比较结果生成测试结果,包括如下步骤:
将所述测试输出数据与预设的标准输出数据进行比较,分别统计测试输出数据与标准输出数据相匹配的测试次数和不匹配的测试次数,得到统计结果;
根据预设的测试指标算法,基于所述统计结果计算得到测试指标值。
11.一种算法模型服务测试系统,其特征在于,应用于权利要求1至10中任一项所述的算法模型服务测试方法,所述系统包括:
算法引擎构建模块,用于根据待测试的算法引擎构建被测试的算法引擎;
服务系统构建模块,用于获取待测试的算法模型的数据,并导入至所述被测试的算法引擎中,得到被测试的算法模型服务系统;
服务系统输入模块,用于从测试数据库中获取测试输入数据,并输入到所述被测试的算法模型服务系统;
测试结果生成模块,用于获取所述被测试的算法模型服务系统的测试输出数据,根据所述测试输出数据生成测试结果。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行根据权利要求1至10任一项所述的算法模型服务测试方法。
13.一种计算机存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器运行时执行根据权利要求1至10任一项所述的算法模型服务测试方法。
CN202110871674.9A 2021-07-30 2021-07-30 算法模型服务测试方法、系统、设备及存储介质 Active CN113590484B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110871674.9A CN113590484B (zh) 2021-07-30 2021-07-30 算法模型服务测试方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110871674.9A CN113590484B (zh) 2021-07-30 2021-07-30 算法模型服务测试方法、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113590484A true CN113590484A (zh) 2021-11-02
CN113590484B CN113590484B (zh) 2023-11-07

Family

ID=78252615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110871674.9A Active CN113590484B (zh) 2021-07-30 2021-07-30 算法模型服务测试方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113590484B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576857A (zh) * 2022-12-08 2023-01-06 大方智造(天津)科技有限公司 一种基于cam测试引擎的自动化测试方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286277A1 (en) * 2016-03-31 2017-10-05 Ca, Inc. Automated model generation for a software system
CN108076159A (zh) * 2018-01-26 2018-05-25 成都精灵云科技有限公司 一种基于Docker的云平台搭建装置
CN110018822A (zh) * 2019-04-16 2019-07-16 山东浪潮通软信息科技有限公司 一种自动生成微服务功能的方法及系统
CN110633796A (zh) * 2019-09-05 2019-12-31 北京达佳互联信息技术有限公司 模型更新方法、装置、电子设备及存储介质
CN111008263A (zh) * 2019-11-29 2020-04-14 支付宝(杭州)信息技术有限公司 问答匹配模型的更新方法和装置
CN111158852A (zh) * 2019-12-14 2020-05-15 苏州浪潮智能科技有限公司 一种训练资源动态分配方法、系统、终端及存储介质
CN111753584A (zh) * 2019-03-28 2020-10-09 杭州海康威视数字技术股份有限公司 智能分析方法及系统
CN112799949A (zh) * 2021-02-04 2021-05-14 上海销氪信息科技有限公司 一种模型优化方法、装置、系统及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286277A1 (en) * 2016-03-31 2017-10-05 Ca, Inc. Automated model generation for a software system
CN108076159A (zh) * 2018-01-26 2018-05-25 成都精灵云科技有限公司 一种基于Docker的云平台搭建装置
CN111753584A (zh) * 2019-03-28 2020-10-09 杭州海康威视数字技术股份有限公司 智能分析方法及系统
CN110018822A (zh) * 2019-04-16 2019-07-16 山东浪潮通软信息科技有限公司 一种自动生成微服务功能的方法及系统
CN110633796A (zh) * 2019-09-05 2019-12-31 北京达佳互联信息技术有限公司 模型更新方法、装置、电子设备及存储介质
CN111008263A (zh) * 2019-11-29 2020-04-14 支付宝(杭州)信息技术有限公司 问答匹配模型的更新方法和装置
CN111158852A (zh) * 2019-12-14 2020-05-15 苏州浪潮智能科技有限公司 一种训练资源动态分配方法、系统、终端及存储介质
CN112799949A (zh) * 2021-02-04 2021-05-14 上海销氪信息科技有限公司 一种模型优化方法、装置、系统及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JEFF OFFUTT 等: ""An industrial study of applying input space partitioning to test financial calculation engines"", 《EMPIRICAL SOFTWARE ENGINEERING》, vol. 19, no. 3, pages 558 - 581 *
柯学翰 等: ""基于图查询系统的图计算引擎"", 《大数据》, pages 16 - 26 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576857A (zh) * 2022-12-08 2023-01-06 大方智造(天津)科技有限公司 一种基于cam测试引擎的自动化测试方法

Also Published As

Publication number Publication date
CN113590484B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110995459B (zh) 异常对象识别方法、装置、介质及电子设备
CN111127178A (zh) 数据处理方法与装置、存储介质、电子设备
CN113837596B (zh) 一种故障确定方法、装置、电子设备及存储介质
CN111612040B (zh) 基于孤立森林算法的财务数据异常检测方法及相关装置
CN110555451A (zh) 信息识别方法和装置
CN110688536A (zh) 一种标签预测方法、装置、设备和存储介质
CN109872230B (zh) 金融数据分析系统的测试方法、装置、介质、电子设备
CN113159355A (zh) 数据预测方法、装置、物流货量预测方法、介质、设备
CN112632179A (zh) 模型构建方法、装置、存储介质及设备
CN115237724A (zh) 基于人工智能的数据监控方法、装置、设备及存储介质
CN115034596A (zh) 一种风险传导预测方法、装置、设备和介质
CN113590484B (zh) 算法模型服务测试方法、系统、设备及存储介质
CN110704390A (zh) 获取服务器维护脚本的方法、装置、电子设备及介质
CN113138906A (zh) 一种调用链数据采集方法、装置、设备及存储介质
CN111445139A (zh) 业务流程模拟方法及装置、存储介质、电子设备
CN111859985B (zh) Ai客服模型测试方法、装置、电子设备及存储介质
CN110704614B (zh) 对应用中的用户群类型进行预测的信息处理方法及装置
CN110348984B (zh) 不同交易渠道下的信用卡数据自动化输入方法及相关设备
CN114003567A (zh) 数据采集的方法及相关装置
CN114116688A (zh) 数据处理与数据质检方法、装置及可读存储介质
CN113516398A (zh) 基于分层抽样的风险设备识别方法、装置及电子设备
CN113052509A (zh) 模型评估方法、模型评估装置、电子设备和存储介质
CN112465149A (zh) 同城件识别方法、装置、电子设备以及存储介质
CN112488199A (zh) 物流配送方式预测方法、系统、设备及存储介质
CN113126881A (zh) 系统配置方法、装置、设备、可读存储介质及分布式存储系统

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
GR01 Patent grant
GR01 Patent grant