发布于2023-05-28 阅读(0)
扫一扫,手机访问
译者 | 朱先忠
审校 | 孙淑娟
我们正处在人工智能的黄金时代。人工智能方案的采用使得企业更具创造性、竞争力和快速响应能力。软件即服务(software-as-a-service,SaaS)模式,加上云技术的进步,使软件生产和消费过程越来越成熟。
普遍存在的一个事实是,大多数组织更喜欢“购买”现成的人工智能技术,而不是“构建”自己的技术。因此,SaaS提供商,如Salesforce、SAP、Oracle等,都先后引入了人工智能平台功能,构建了人工智能即服务(AI-as-a-Service,AIaaS)模型。诚然,这种发展趋势使得企业更容易采用人工智能方案。
测试技术,对于一般的质量保证(QA),尤其在人工智能平台的采用中起着至关重要的作用。而且,在采用人工智能平台时,测试变得非常复杂,原因如下:
例如,在一个即插即用人工智能解决方案模型中,人工智能逻辑由软件供应商提供。作为消费者的程序员负责构建接口,提供用于训练逻辑的数据,在解决方案上下文中训练逻辑,并将体验扩展到最终用户。
首先,与传统测试一样,我们应该测试数据、算法、集成和用户体验。其次,为了测试解决方案的功能适合性,应该验证训练模型,这将把测试扩展到推理、规划、学习等方面。第三,应该开发验证AI算法本身的方法。最后,人工智能逻辑可能使用的工具,如搜索、优化、概率等,也应包含在功能验证中。本文中将引入一种关于人工智能测试框架的实用观点。
通过高度自动化实现的QA成熟度对于AI平台的采用至关重要。随着企业对其基础设施和工程方法进行现代化,发布周期可能会变得越来越短且高度自动化。持续集成(CI)技术已被证明是有效的。当代码一天登录几次,然后重新编译时,它会生成多个QA反馈循环。因此,要成功应用CI,构建和部署过程的自动化至关重要。自动化是CI的基础,而测试自动化使连续交付(CD)成为可能。总之,CD由CI驱动。敏捷和DevOps模型的发展加速了开发和测试之间的反馈循环,使持续测试(CT)、持续开发和持续交付制度化。
在企业中,数据、应用程序、基础设施等都在不断变化。同时,SaaS供应商不断升级AI产品,以提高用户体验和开发效率。在这种动态情况下,建立一个持续的测试生态系统至关重要;这样一个完全自动化的测试环境不仅可以确认不断变化的企业IT资产,还可以验证AI产品不断变化的版本。
归纳来看,建立一个良好的CT生态系统需要考虑以下因素:
当测试没有人工干预时,故障、错误和任何算法异常都会成为人工智能解决方案的发现来源。同样,测试期间的实际使用情况和用户偏好也成为训练的来源,应该在生产中继续下去。
数据质量是人工智能方案中最重要的成功标准。无论是企业内部还是外部都存在有用的数据。提取有用的数据并将其提供给AI引擎的能力是高质量开发的要求之一。提取、转换和加载(ETL)是一个传统术语,指从各种来源收集数据、根据业务规则转换数据并将其加载到目标数据存储的数据管道。ETL领域已经发展到企业信息集成(EII)、企业应用集成(EAI)和企业云集成平台即服务(iPaaS)。不管技术进步如何,数据保证的需求只会变得更加重要。数据保证应解决功能测试活动,如Map Reduce流程验证、转换逻辑验证、数据验证、数据存储验证等。此外,数据保证还应解决性能、故障切换和数据安全性的非功能方面。
结构化数据更易于管理,而源自企业外部的非结构化数据则应谨慎处理。流处理原理有助于及早准备好运动中的数据;也就是说,通过事件驱动的处理,一旦从网站、外部应用程序、移动设备、传感器和其他来源生成或接收到数据,就立即对其进行处理。此外,通过建立质量关卡的办法检查质量是绝对必要的。
推特、Instagram、WhatsApp等消息平台都是受欢迎的数据来源。使用这样的数据时,它们通过基于云的消息传递框架跨各种技术连接应用程序、服务和设备。深度学习技术可以使计算机从这些数据加载中学习。其中一些数据需要借助神经网络解决方案来解决复杂的信号处理和模式识别问题,包括从语音到文本转录、从手写识别到面部识别等诸多领域。因此,应建立必要的质量关卡,以测试来自这些平台的数据。
以下是人工智能驱动的QA项目在设计时应注意的一些事项。
当已知软件系统的内部结构时,开发测试就很简单了。然而,在AI平台解决方案中,AI和ML的“可解释性”较低,即输入/输出映射是唯一已知的元素,开发人员通常无法查看或理解基础AI功能(例如预测)的机制。尽管传统的黑盒测试有助于解决输入/输出映射问题,但当缺乏透明度时,人类将难以信任测试模型。当然,人工智能平台解决方案是一个黑匣子;有一些独特的人工智能技术可以帮助验证人工智能程序的功能;这样一来,测试就不仅仅是输入和输出映射的问题了。出于设计考虑,人工智能驱动的一些黑盒测试技术包括:
有关此部分知识更详细的内容,请参考《机器学习模型的黑盒测试》。
所有的SaaS解决方案,包括AIaaS方案在内,都会带有一组预定义的Web服务。企业应用程序和其他智能资源都可以与这些服务交互,从而实现承诺的结果。如今,Web服务已经发展到能够提供平台独立性,即互操作性的水平。这种灵活性的提高使大多数Web服务能够被不同的系统所使用。当然,这些接口的复杂性也相应地要求提高测试水平。例如,在一种CI/CD环境中,在每个构建应用包中检查这些接口的兼容性更成为一项关键的任务。
当前,这方面的主要挑战是实现虚拟化Web服务,并验证AI平台解决方案与应用程序或物联网接口之间的数据流。概括来看,接口/Web服务测试复杂的主要原因包括:
于是,测试接口层显得尤其需要:
在主要通过远程方式工作和生活的新型社会现实中,客户体验已成为企业成功的必要条件。这是人工智能方案中一个更大的目标。非功能测试是一种经过验证的现象,它通过验证性能、安全性和可访问性等属性来提供有意义的客户体验。一般来说,下一代技术增加了体验保障的复杂性。
以下是在整个人工智能测试框架中确保用户体验的一些重要设计考虑。
总之,持续测试是每一家企业采用人工智能平台方案的基本要求。所以,我们应该采用模块化方法,完善数据、算法、集成和经验保障活动的设计。这将有助于我们创建一个持续的测试生态系统,从而使得企业IT可以随时准备接受内部和外部AI组件的频繁变化。
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。早期专注各种微软技术(编著成ASP.NET AJX、Cocos 2d-X相关三本技术图书),近十多年投身于开源世界(熟悉流行全栈Web开发技术),了解基于OneNet/AliOS+Arduino/ESP32/树莓派等物联网开发技术与Scala+Hadoop+Spark+Flink等大数据开发技术。
原文标题:Quality Engineering Design for AI Platform Adoption,作者:Anbu Muppidathi
下一篇:深度学习与人脑
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店