人工智能,应该如何测试?(四)模型全生命周期流程与测试图
这些日子讲了很多东西,但比较乱,我这里补充一下完整的业务和测试流程。
生命周期流程图
根据数据闭环,我画出了上面的图,并标记了其中测试人员要参与的活动(浅蓝色)。下面我一一分析一下这些测试活动的含义。
- 离线模型测试阶段:在模型的生命周期中,会涉及到 3 种数据。 训练集,验证集和测试集,其中训练集用来训练模型,验证集用来算法自测。 而测试人员需要自行采集/挖掘(要根据用户画像每种类别的数据都要采集到)符合场景的测试的数据。 根据测试数据对模型进行完整的评估(AUC,召回,精准等等)
- 线上线下一致性测试: 模型的离线和在线是采取完全不同的代码进行的特征工程(模型不接受原始数据,数据需要经过特征工程后输入到模型),要保证两边的特征工程完全一致是很难的。 所以要进行一致性的测试。
- A/B Test: 模型即便在离线进行了充分的测试,但线上的情况瞬息万变,模型上线是一个严谨的过程。 我们希望模型更新的过程更加严谨。 所以往往会让新旧模型共存一段时间。比如我们先把 10% 的流量切给新模型, 90% 的流量依然发送到老模型中。 然后待观察效果没有问题后,再切 20% 的流量到新模型上,以此类推, 直到最后新模型完全替代老模型。
- 线上模型监控:因为用户行为瞬息万变,可能随便一个社会性时间用户的行为就发生了重大的改变。 所以我们需要实时的监控线上效果。
- 数据质量测试:新采集的数据要加入到自学习之前,需要验证数据本身的质量。以免犹豫数据本身出现了问题导致模型效果的偏差。