1
导读
随着人工智能技术,尤其是机器学习和深度学习技术的快速发展,以及人工智能系统在各领域的广泛应用,人工智能系统的质量保障问题成为其实际应用中的关键因素。然而,由于人工智能技术目前被公认在一定程度上存在“不确定性”,因此基于人工智能系统的质量保证领域尚存在诸多挑战。
本文解读发表于2021年国际软件质量会议的论文《Quality Assurance for AI-based Systems: Overview and Challenges》,论文作者因斯布鲁克大学Michael Felderer和奥地利哈根贝里软件中心Rudolf Ramler讨论了基于人工智能系统质量保证的术语,并从多个维度描述了人工智能系统的质量保证方法、详细阐述了在人工智能系统质量保证过程中所面临的挑战。
2
概念及术语
基于人工智能的系统在带来技术发展的同时,也造成了该领域术语、概念、认知的混乱。人工智能相关概念缺乏明确的定义,同一个术语在软件工程领域和人工智能领域可能具有不同的含义,比如“回归”在人工智能术语中指的是“回归模型或回归分析”,但在软件工程领域指的是“回归测试” 。因此,首先需要讨论人工智能系统质量相关的基本概念和术语。
软件质量定义为软件产品在特定条件下使用时满足规定和隐含需求的能力。
软件质量保证是对软件产品能够满足规定和隐含需求的程度进行的系统检查。
基于人工智能的系统是指除了传统软件组件外,包含人工智能组件的软件系统。嵌入在系统中的人工智能组件包括数据、机器学习模型和框架。训练程序是用于训练模型的代码,框架是用于开发训练程序的算法和相关库,数据被收集用于训练、验证和测试机器学习模型。
论文认为可以从三个维度描绘基于人工智能的系统的质量保证,如下图所示:
图1. 基于人工智能系统质量保证的维度
三个维度分别是工件(artifact)类型、过程和质量特性。工件类型考虑了人工智能组件的构成:系统、框架、模型和数据;过程维度根据DevOps原则,判断系统是独立开发还是持续开发;质量特性与工件类型和过程都有关系,比如需要考虑人工智能组件的附加质量特性:
数据质量也是重要的质量特性之一。软件开发环境中的数据质量特性可分为固有的和系统相关的数据特性。固有数据质量是指数据本身;系统相关数据质量是指在特定条件下使用数据时,系统内达到和保持数据质量的程度。
人工智能系统本身也是软件,应适用经典的软件质量特性,即有效性、效率、满意度、无风险性和上下文覆盖率,以及系统/软件产品质量的功能适用性、性能效率、兼容性、可用性、可靠性、安全性,可维护性和可移植性。
人工智能组件的测试或基于人工智能系统的测试是指用于发现人工智能组件或基于人工智能系统的现有行为和所需行为之间差异的活动。测试活动可以分为离线测试和在线测试。离线测试使用历史数据测试人工智能组件(模型),用于确保人工智能满足需求,但历史数据不能完全代表未来,也不能反应真实环境的问题,因此无法获得用户反馈。在线测试在实际环境中运行,作为对离线测试的补充。一种常用的在线测试技术是A/B测试。
3
人工智能质量保证的挑战
基于人工智能系统的质量保证是个新的研究领域,目前缺少关于基于人工智能系统的质量保证标准化的方法。鉴于人工智能系统的特性,在质量保证方面存在诸多挑战,论文阐述了在开发基于人工智能系统的质量保证和测试方法时遇到的八个主要的挑战。
人工智能模型的可理解性和可解释性
机器学习和深度学习训练的模型被认为是不透明、不直观、难以理解的。开发人员和测试人员习惯于对传统软件系统进行规范和定义,这些规范和定义提供了理解、构建和测试系统所需的知识。但是,当人工智能模型确认存在缺陷时,模型的“黑盒子”特性会影响模型的测试。
缺乏规范和明确的要求
传统软件规范定义了系统行为,也就是“规则”,而基于数据/基于学习的方法不依赖于规范和明确的需求,模型依靠学习自动生成。“规则”是由学习过程来探索的,但是能否找到规则,规则是否准确都是不确定的。
测试输入生成
在测试中,系统通常需要探索巨大的输入空间,软件测试技术通常采用抽样策略选择输入来应对输入空间巨大的问题。而目前正在探索的适用于人工智能系统的测试技术,比如随机生成、基于GAN的蜕变测试方法等尚不完善。由于缺乏可解释性和可理解性,选择有代表性的输入来构建有意义的测试用例仍然是很大的挑战。
定义测试预言
测试的目的是揭示系统对特定输入的错误响应或行为方面的故障。判断系统输出与预期结果是否一致,这个预期结果就称为测试预言。然而在实际运行环境中,输入是根据上下文或实际运行情况动态生成的,为输入确定正确输出即“预言问题”就是个艰巨的挑战。
准确率和正确性度量
软件应具有准确性和正确性,而基于人工智能的系统由于其内在的不确定性被认为是存在固有“缺陷”的,它通常在一个精度范围内运行。这和常规测试和质量保证原则和方法的假设是相悖的,即系统被默认应该是正确的。因此常规的测试技术和质量度量的方法不能完全适用于基于人工智能的系统。
人工智能系统的非功能特性
关于基于人工智能系统非功能性的研究存在有很大的挑战,例如鲁棒性和效率。人工智能系统的输入类型丰富,增加了测试系统鲁棒性的难度,尤其是对抗鲁棒性,其中扰动被设计得难以检测,也很难用相应的测试预言来定义。人工智能组件的测试效率不仅要考虑预测速度,还要考虑模型构建的速度,这给性能的度量和分析带来了挑战。
自适应和自学习特征
随着软件开发和迭代的周期缩短,我们利用自动化测试使质量保证跟上不断加快的迭代速度。与一系列开发迭代中演化的传统软件不同,许多基于人工智能的系统拥有自适应、自学习的能力,可以根据不断变化的环境自行演化,这给测试工作的进行,自动化测试的运维带来许多新的、复杂的、无法预测的问题。
动态和频繁变化的环境
人工智能组件通常在动态的、频繁变化的环境中运行,数据有各式各样的来源、具备不同的特征,同时信息隐私安全问题也至关重要。在安全攸关的系统中,不能出现对社会、对生命安全产生危害的决策,此外人工智能系统还可能涉及伦理、道德、公平等一些列问题。这需要我们能对系统运行进行必要的监控和在线的评估。
4
总结和展望
在这篇论文中,作者首先讨论了基于人工智能系统的质量保证的概念与术语,为描述基于人工智能的系统的质量保证的特征定义了三个维度:工件类型、过程和质量特性。然后详细阐述了人工智能质量保证面临的八个挑战。
为应对以上的挑战实现高质量的基于人工智能的系统,需要软件工程和人工智能社区之间加深沟通交流,共享知识和想法。基于人工智能的系统质量保证领域仍需要不同领域的人才和资源的投入和探索,人工智能技术将引领下一个时代的科技进步,基于人工智能系统的质量保证是其实际应用的关键,我们期待人工智能技术能被安全地、可靠地应用到社会生活中造福人类。
作者信息
1.乐琼华,上海软件中心软件工程研究部资深研发工程师,研究方向包括大数据、人工智能与区块链,《上海市人工智能行业质量分析报告》主笔、参与《人工智能计算机视觉系统测评规范》、《信息技术 大数据 批流融合计算技术要求》、《信息技术 众包测试 质量保障规范》等标准研制,完成“基于区块链的医疗影像系统” 、“西宁市大数据服务管理局评审平台” 等多个系统研发,获得软件著作权2项。
2.陈敏刚,研究员、博士、上海市计算机软件评测重点实验室副主任,上海计算机软件技术开发中心人工智能治理研究所执行所长、软件工程研究所副所长,ISO/IEC JTC1 SC42国际人工智能标准化专家、上海市科技发展重点领域技术预见专家组专家,上海市科技进步特等奖获得者,完成十多项人工智能与大数据的国家标准研制,在国内外期刊杂志发表学术论文近50篇。

人工智能评测服务
上海市计算机软件测评重点实验室(SSTL)人工智能测评服务面向计算机视觉、语音识别、自然语言处理、推荐与搜索等领域,聚焦人工智能应用过程中的模型功能有效性评估、模型性能评估、数据集质量评估、对抗样本防御能力等,提供全方位的测评服务,保障人工智能应用的质量。


上海市计算机软件评测重点实验室(简称SSTL)由上海市科委批准成立于1997年,是全国最早开展信息系统质量与安全测评的第三方专业机构之一,隶属于上海计算机软件技术开发中心。
觉得内容还不错的话,给我点个“在看”呗
我知道你在看哟







