前面的文章里我们已经整体介绍过了人工智能测试的生命周期,它需要经历测试需求的分析、测试环境的准备、数据的准备与验证、测试的执行预分析以及上线后的监控这样一个过程。前面的文章已经为大家介绍了人工智能系统测试生命周期的“需求分析”环节、“测试环境准备”环节、“测试数据准备”环节和“测试执行”环节,本文我们将继续介绍下一个环节“测试分析”。
我们通过上面的一系列的测试之后,我们需要对测试的结果进行分析,需要对AI系统各类测试的质量特性进行深入分析;在模型离线评估阶段,需要分析模型泛化能力是否满足应用的需求;在性能测试阶段,需要分析应用响应时间是否满足需求;在可靠性测试阶段,需要分析系统是否可以抵御对抗样本的攻击,及输入异常数据时系统的表现;在A/B测试阶段,则需要通过统计分析,评判新模型是否到达了预期。
以上就是人工智能系统测试整体上的流程和方法论。这里面还有几点需要我们注意:
AI模型上线后,测试人员需要以固定间隔监控模型的实时表现,根据实际业务每隔几天或几星期,对模型各类指标进行评估;
上面我们也讲到过,除了我们要进行不断迭代的测试之外,我们也需要对模型进行一些固定的时间间隔或者实时的监控。为什么呢,之前也有一些新闻讲到,有些模型如果它是根据用户新输入的一些数据去进行一个实时的训练的话,用户新输入的这些数据往往会对模型的性能造成一定的负面影响。
如果模型随着数据的演化而性能下降,说明模型在新数据下性能不佳,就需要利用新数据重新训练模型,更新模型参数;
比如说用户习惯突然有了一些变化,用户输入的特征有所变化的话,以前模型的性能可能就没法满足现在的业务要求,也是要不断的监控去探测。
在一些场景中,我们还需要对用户输入数据进行监控。除了在模型监控之外,对用户输入数据进行监控也是非常重要的。特别是对实时用户新增的数据去进行训练、更新的系统来说尤为重要。
比如说2016年微软在Twitter上发布的一款聊天机器人,他说根据用户不断地聊天数据去训练数据,来进行不断地更新。这样就导致有的人输入一些脏话、或者反动的一些话语,对这个机器人进行不断的调教之后,就导致了这个聊天机器人会表达一些法西斯的思想或者脏话连篇的现象,最后不得不宣布让这个聊天机器人的模型重置。
所以说对这类系统来说,我们也要不断地去监控模型的一些实时的表现,以及用户输入数据的一些实时的表现,防止人们把模型“教坏”的情况。
以上就是人工智能系统测试生命周期所有阶段,下面的文章会为大家介绍人工智能系统测试的测试技术。
(本系列文章根据《优品软件培育计划》公益直播内容整理,观看直播回放可以私信我,获取免费观看链接。)