赞
踩
文章整理自TiD2019质量竞争力大会
宋明(科大讯飞股份有限公司 AI研究院质量部负责人)
《当测试遇到人工智能》演讲
TiD2019质量竞争力大会邀请了科大讯飞股份有限公司AI研究院质量部负责人宋明老师为参会者带来《当测试遇到人工智能》精彩演讲。
宋明从人工智能介绍、人工智能测试挑战、测试人工智能算法、测试+人工智能四个维度分享了人工智能测试的具体实践。
人工智能介绍
麦肯锡、明斯基等专家在1956年达特茅斯会议上提出人工智能的概念。这正式标示着人工智能的开始。人工智能从实验室走到大家眼前,真正进入产业化,是靠人工智能不断成熟的自身技术与市场需求和技术成熟度。移动互联网、物联网、5G等新时代技术孕育了人工智能很多市场应用的场景和机会,也使得人工智能产业逐渐成熟。
人工智能的技术成熟度跟大数据、算力、算法相关。人工智能技术如果没有数据,根本就没办法达到可达的效果。大数据只是第一步,如果算力跟不上,像之前CPU能力弱,有了大数据也没有办法算出来。另外,由于传统的机器学习无法达到很高的准确度,人工智能除了前面两点都要具备外,还要突破算法的束缚。
人工智能定义
人工智能是一门交叉式的科学,是让机器来完成那些如果由人来做则需要智能的事情的科学。人工智能分三个阶段:从一开始能存会算的运算智能,到能听会说、能看会认的感知智能,然后到能理解会思考的认知智能。
人工智能产业生态
人工智能产业生态分三层。第一层是基础或者底层的硬件,主要是人工智能芯片与视觉传感器。第二层通用人工智能技术与平台的支撑。做人工智能系统需要一些平台,例如深度学习的平台,大数据平台,云计算平台。第三层是应用领域,有了底层硬件和通用人工智能技术与平台的基础,才能够在这个基础上面做一些语音、认知、图像方面的一些技术,与行业结合做出产品,进入行业应用当中。
人工智能测试的挑战
那么,人工智能测试和传统的软件测试有何不同?
以产品研发生产为例,人工智能系统生产研发包含算法研究和网络训练、工程化、服务封装与应用集成,人工智能产品的核心在于核心效果,而传统的软件更关注功能和稳定性。这也使得测试的关注点不一样,同时测试方法和对测试人员的能力要求也有较大的差别。今天谈的人工智能测试更聚焦在人工智能算法测试方面。
人工智能测试面临的挑战
人工智能测试与传统的软件测试不同,会面临许多挑战。
第一,快速迭代和质量高诉求的冲突。人工智能测试与传统测试相比,会突出应用场景多,技术路线变更快,系统平台支持多,产品需求变更频繁等问题,同时算法模块作为底层公共模块通常也面对着好快稳的质量需求。
第二,对算法效果的评价缺失标准和理想指标。有些算法从感观或者主观上知道好坏,但是用一套方法评价就比较难。人工智能技术产品缺少标准,技术指标难量化,主观性比较强,很多时候不仅是专业性,更多还依赖于主观性。
第三,数据集构建的难度。人工智能算法效果靠的是海量的数据。数据是第一步,没有数据无法做出一个性能非常高的产品出来。测试其实也是一样,没有测试数据,或者数据构建的不好,一切都是妄谈。所以数据在人工智能产品研测中都占有非常高的地位。但部分方向的数据存在比较高的专业门槛和行业壁垒,对构建测试数据集的成本和周期存在较大的挑战。
第四,测试结果分析难度。现在人工智能算法基本都是基于深度学习,而深度学习本身缺少很多理论支撑,在网络里面传一个数据进去。它出来的是0还是1,其实没办法通过公式的回溯找到它在哪一块有问题,更多是通过一些参数去调整,这种偏黑盒的方案对测试结果的预见性和分析都存在较大的挑战。其次是行业知识背景,例如医疗中影像检测算法,对结果的分析是需要医学特定的知识辅助。再者,人工智能算法本身含有专业的技术门槛,需要对模式识别,机器学习和深度学习有一定的掌握和理解。
最后,算法效果优化闭环的周期长。一般的软件发现线上问题,只要定位出来,修复其实很快,能够快速上线。但是,人工智能算法效果优化周期很长。首先要提供数据,然后还要做数据标注,标注之后还要做模型的训练,然后是引擎和服务的封装,最后上线、集成,整个链路其实非常长,同时也有很大的不确定性。
测试人工智能算法
人工智能算法需要克服上面提到的数据集构建难,评价主观性,结果分析难度、以及优化迭代慢等问题,科大讯飞尝试了一些“投机取巧”的解决方案,分别是分治、间接、相对、代入四种方法。下面对四种方法通过一些案例来具体介绍。
人脸识别测试的“分治”进化
人工智能的系统影响因素非常多。以人脸识别举例,影响人脸识别最终效果的因素也非常多。如果只是对人脸识别的系统进行测试,只关注它的冒认率和召回率,这样提供的测试分析结论的信息会非常少,不利于精准分析和精准测试。如果站在用户的角度来说,假如冒认率和召回率都很高,则没办法进一步做评价和判断。
基于这一点,科大讯飞做出了一些改变,将整个人脸识别系统拆开,进行单独测试分析。第一,人脸检测。通过计算检测框和标注框的交叉积率分析检测准确率。第二,标定,采用归一化误差的方法,测出标定点和实际点归一化误差,和累积误差分布曲线。得到标定算法的真实性能。最后在已知检测、标定的条件下,计算正负例的识别率和冒认率。这样会提升测试结果的精准度和信息量。
“间接法”测试机器翻译效果
“间接法”适合对于不同版本的机器翻译效果进行对比分析。在做机器翻译时,构建数据非常困难,一般的情况下要先去采集数据,然后标注,最后再运行测试,计算belu分,对比分析结果。
实际情况标注成本非常高,周期非常长,数据准备中面临着专业背景,标注结果存在主观性等问题,是否有短频快的思路去解决问题?宋明提出了一个思路,开发一个可以提供集成多个版本翻译结果的系统。这个系统同时可以支持用户点赞和评论,后台收集日志后,根据使用情况进行分析,间接评判出系统的好坏。
这套系统后来不但能低成本做前后版本的ABtest,也能提供竞品对比的功能。翻译平台提供了很多有价值的问题反馈,在持续优化翻译效果上发挥了很大价值。
如何解决语音合成韵律
测试主观性的问题
大家知道语音合成韵律的测试存在着非常主观因素的影响,即使在测试之前找了专业人士标注韵律,但每个人的理解和读法都不尽相同,最后不得不在测试之后出现反复分析验证等返工现象。面对这个问题,科大讯飞调整了思路,把之前标注中“绝对”对和错的问题调整后“相对”好与坏的问题。设计开发一个多候选的标注系统,多人参加选择,最后加权计算每个候选韵律短语的得分,通过标注系统的得分情况得到韵律系统的总得分。比较前后两版的总得分情况,能非常客观直白的判断是否提升或降低。
如何让人工智能系统快速迭代
上面提到算法效果优化闭环的周期长,包括数据清洗、数据标注以及训练和验证等等。链路比较长,且难以形成自动化的pipeline。其中效果分析,模型优化和验证,以及灰度系统中的效果统计更是效率的瓶颈。更多的效果分析和验证通过线上人工干预完成,成本大且周期长。科大讯飞通过开发分析平台和交付平台实现了效果分析和模型训练的半自动化(半自动化是指数据标注还需要人工干预),而基于用户行为分析的ABtest系统很好的解决了灰度上线的效果统计问题。通过多个自动化平台的介入,大大的缩短了效果优化迭代周期,同时也降低了分析和优化的门槛。
测试+人工智能
人工智能不仅在各行各业赋能,它同时对整个研发生产也会有很多赋能,例如智能化的运维,智能化的开发,智能化的测试等。
那么,人工智能技术是否可以和软件测试技术深度融合呢?
在人工智能算法测试领域,可以在下面场景结合AI技术进行赋能。
第一,数据集建设。例如机器学习对批量数据的聚类去重,人工智能语音合成,语音识别和OCR技术辅助标注等等。第二,效果测试。例如利用语音识别和语音评测验证合成音频的正确性,利用光学字符识别技术验证语音交互、信息抽取等等。第三,质量分析。例如基于大数据用户行为分析,稳定性数据回归预测,回归分析质量模型等等。这部分科大讯飞内部也有不少的探索和应用案例,一是利用K-means聚类自动筛选合成多音字测试集。二是通过深度学习自动给测试数据集贴标签分类。
在传统的软件测试领域中,当前业界已经有不少的探索和尝试,有以下应用场景。第一,自适应可视化测试。通过图像识别,能识别控件进行web端和移动端自动化的自适应。第二,自动生成测试用例。通过一些语义理解和文本聚类技术,分析错误信息,实现用例的自动生成。第三,测试行为的规划与分析。这部分可以通过强化学习、对抗学习等技术实现一些测试路径的规划。
总结
宋明总结了这次的分享内容,包括什么是人工智能?人工智能测试有哪些挑战?如何应对这些挑战,分享了几个技巧和方法。最后分享了一点人工智能和测试技术的结合。
推 荐 阅 读
TiD系列线上沙龙 | 人工智能(AI-Based)系统的可靠性测试
TiD2020 | 中国敏捷教练CAC论坛演讲征集
TiD2020 | 区块链论坛演讲征集
点击Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。