前面的文章里我们已经整体介绍过了人工智能测试的生命周期,它需要经历测试需求的分析、测试环境的准备、数据的准备与验证、测试的执行预分析以及上线后的监控这样一个过程。已经为大家介绍了人工智能系统测试生命周期的“需求分析”环节、“测试环境准备”环节和“测试数据准备”环节,本文我们将继续介绍下一个环节“测试执行”。
前面讲的的测试环境、测试数据都准备好了之后,我们就可以进行具体的人工智能的测试工作了。这里面又可以分为很多种测试的流程,比如说刚才说到的有模型离线的评估、系统的测试、性能的测试、可靠性的测试、A/B测试,最后我们还要针对我们的测试结果进行一定的分析。
模型的离线评估
比如说对于模型的离线评估来说,在人工智能测试中主要是用来评测AI模型对未知新数据的预测能力,即泛化能力。通常而言,泛化能力越好,模型的预测能力就越好。衡量模型泛化能力的通用评测指标包括:均方根误差RMSE、平均绝对误差MAE、准确率Precision、召回率Recall及F-measure等。
衡量泛化能力的标准有很多,通常对于不同的应用场景来说,它的指标也有可能会不同,比如说对于典型的图像分裂的场景,我们有准确率、召回率、MAE值等。对于别的场景也有可能会有别的指标,待会我们也会讲到,比如说对于目标监测的应用场景来说,也有会有其他的计算指标,像均方根误差、绝对误差等等,这个是根据具体的业务应用来定的。
系统测试
模型的离线评估之后,我们也可以进行一个系统的测试,这个时候跟传统的软件测试是有一定的重合的,比如说我们会测试系统整体的业务流程,测试模块之间 数据流动以及测试一些真实用户的使用场景。
在系统测试的过程中我们也可以包括进去一些性能测试、可靠性测试。
性能测试
性能测试我们也是可以考虑负载和压力,或者用户并发这样的一些测试。如果说这个人工智能系统用户访问量非常大的话,我们就可以进行一些性能方面的测试,因为人工智能推断的相应时间也是可以影响到我们整体的系统的相应指标。
可靠性测试
人工智能系统的可靠性包括了鲁棒性、可用性、容错性、易恢复性等指标;特别是我们需要去测试一些鲁棒性、容错性。
对于无人驾驶、人脸识别等安全攸关的人工智能系统,需尽可能采用异常数据来进行测试,如对抗样本、易出错的样本等去进行一些测试。这个对于对于人工智能系统的安全和鲁棒是非常重要的。具体的测试技术我们之后会进行一个介绍。
A/B 测试
除了以上这些测试之外,我们也可以进行一个A/B测试。人工智能系统的模型往往是不断迭代更新的,我们如何确定迭代更新之前和之后这两个模型有没有提升?这时候我们就可以用A/B测试去比较两个模型、或者多个模型的差别。
当我们的模型改动之后,我们可以和前面的模型进行一个比较,看看它到底是有优化还是有衰退。来确定我们究竟是用哪一个模型来上线。
以上就是人工智能系统测试生命周期的测试执行环节,下篇文章将为大家讲解下一个环节,测试分析环节。
(本系列文章根据《优品软件培育计划》公益直播内容整理,观看直播回放可以私信我,获取免费观看链接。)