首页 > 科技 > 《AI模型的黑盒测试与白盒测试实践》--陈龙 百度资深测试工程师

《AI模型的黑盒测试与白盒测试实践》--陈龙 百度资深测试工程师


TiD2019质量竞争力大会邀请了百度资深测试工程师陈龙为参会者带来了《AI模型的黑盒测试与白盒测试实践》精彩演讲。陈龙从黑盒测试和白盒测试两个角度分享了如何做质量保障工作。主要分享了AI模型测试的特点,黑盒测试的具体形式,数据资源建设,白盒测试的方法分析探索实践四个方面的精彩内容。

AI模型测试的特点

AI模型测试本质上是通过Deep Learning的算法计算数据之间的关联性,再通过测试集验证模型的效果。模型测试与传统软件测试存在着一定的差异。输出的确定性和结果是否可解释性是AI模型测试和传统的软件测试主要的差异。传统的软件一般是由研发人员根据业务特点设计逻辑,固定的软件输出是确定的。传统软件测试有一个完备的测试体系,但是AI模型目前没有一个良好的体系来保障它的质量。模型测试的一般方法有两种,一种就是QA不参与测试,RD自评;另一种是QA做浅层的参与,QA随机评。


黑盒测试的具体形式

陈龙从模型效果的基本思路、具体的执行方案,以及分析测试结果三个角度向参会者介绍如何做黑盒测试。


模型效果测试中要验证模型在业务上的效果需要以下几个步骤来设计和实施:第一步需要设计它的评价指标,如准确率、召回率、语音的识别率。第二步需要抽象和细分模型所应用的业务场景来构建我们的评测集。

那么如何执行这样的效果测试呢?具体可以从以下几个部分进行执行,第一部分是开发一个包括数据管理、模型管理、评测报告管理的工具平台。第二部分是集成评测自动化,这一部分就是对自动化跑出的测试结果进行自动化的评测分析。它的实现架构也比较简单,是一个传统的分布式结构。第三部分是分析效果测试结果。而分析的基本类型分为两种:版本对比分析和badcase分析。其中版本对比,从效果的角度分析新模型版本相比旧模型在各个细分场景维度上的差异,一键式地了解新模型效果的变化。而badcase分析,更多地从样本分布、特征分析等角度,分析badcase的原因,为模型优化提供有价值的建议。这样从多个维度来充分保障模型测试的质量,并且得出的测试结果也可以进行更有深度的判断。


数据资源建设

数据资源建设指的是评测数据。数据资源建设在黑盒测试中具有极其重要的作用。评测集从数据的真实性,数据的多样性和多维度性两个角度构建。当数据不可靠的时候,评测结论没有用。数据多样性也会带来很多的好处,比如当一个模型应用到新的业务场景之前,我们可以用真实的数据通过多维度的评测数据根据它的业务场景的特点去拟合模型在将要应用的场景上的效果。这样可以提前发现问题,保障应用质量。另外足够细致、足够多维度的评测数据,为自动化分析提供了便利。

那么如何构建评测集呢?陈龙介绍道,可以从两个部分进行构建。第一个部分是评测数据的标签体系。第二部分是数据源。当具有数据的标签体系和真实数据后,还需要一个平台大幅度提升数据的生产效率。评测集通过多维度的评测数据与业务场景的特点拟合模型在将要应用的场景上的效果,可以很方便地进行自动化分析,同时也可以提前发现问题。

白盒测试的方法分析探索实践

目前,学术与工业落地的Gap较大,主要体现在数据规模、模型复杂度等方面。白盒测试思想的落地难度很大,因为研究领域的单一性与AI领域的复杂性差异过大。

那么,AI模型如何做白盒测试呢?陈龙介绍道,业界对白盒测试的研究主要有三个方向。第一个是解决Test Oracle的问题。比如说常用的蜕变测试,就是将一个数据给修改、转化,生成新数据,借助原有标签的数据去验证蜕变转化以后的数据结果。第二个是解决测试充分性,例如Deep Coverage和神经元激活模式。Deep Coverage的特点是基于单个神经元或者相邻两个神经元的分析,维度比较单一。神经元激活模式利用了神经网络里面多层的神经元,将结果组成一个向量,是一种基于多个神经元激活向量的测试方法。第三部分是对抗测试。这是业界研究中的非常火热的白盒测试方法之一。

Deep Coverage

Deep Coverage是基于单神经元的覆盖率的测试,虽然应用看上去没有那么广泛,但是它对优化测试集还会有一些帮助。当测试集在模型上去统计的神经元覆盖率时,样本后趋于稳定后,样本的增加对覆盖率不会产生影响。这就对测试集优化或者裁减产生了帮助。另外,随着模型的不断优化和迭代,如果测试集同步或及时做更新,同样的测试集在模型优化升级以后它的覆盖率会上升,这也对测试集优化给予了一些辅助。

神经元激活模式

神经元激活模式利用了某一层或多层神经元激活输出,组成向量组进行测试。我们把数据集里面所有的样本组成的激活向量的集合就叫做激活模式。神经网络中的某一层Layer m,存在N个神经元,输出O1、O2、O3后向量化。当有多个样本的时候组成了多个激活向量的集合,这就是神经元的激活模式。

在实际应用的时候,神经元激活模式用于线上新场景数据的监控。目前模型上线后,关于模型线上的质量效果还没有很好的办法去保障,而这个方案逻辑上只需要去看线上数据的激活向量与激活模式相似性,就可以自动化评估线上质量或发现线上的质量风险。

对抗测试

对抗测试指一个样本通过对抗算法加一些扰动来生成新样本的过程。提前设置一个指标,当这个指标达到了设定值的时候,不再继续生成样本,得到一个新的测试集,然后用新的测试集来评估一个模型的抗干扰性。对抗测试主要用于一些高安全的应用场景。比如无人车,人脸识别的应用场景。但是由于生成的数据在真实场景中出现概率未知,生成的样本可能是无效的,有时并不能给出一个很好的解决方法。

未来,陈龙认为可以把测试持续做得更好,测得更充分,提高发现问题的效率,将测试技术集成到一起,为最终形成AI领域的质量保障方案做出努力。

文章整理自TiD2019质量竞争力大会

陈龙(百度资深测试工程师)

《AI模型的黑盒测试与白盒测试实践》演讲

大会简介

质量竞争力大会,英文名称TiD,是研发创新顶级峰会,由中关村智联软件服务业质量创新联盟主办,中国软件行业协会系统与软件过程改进分会、北京软件和信息服务业协会智能分会协办。TiD质量竞争力大会秉承追求行业高度(Top)、技术创新(innovation)、专业深度(Depth)的目标,致力于打造最具影响力的国内软件研发创新者顶级交流平台。

TiD2019质量竞争力大会于2019年8月4日-7日在北京·国家会议中心召开,主题:下一代软件研发:构建智能生态。TiD2019质量竞争力大会邀请知名软件、互联网等企业研发专家从技术、高质量、人才、产品、战略、产业生态等方面重点研讨“构建智能生态”主题内容,为参会者引发深入思考,带来有益启发。


本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/246734.html