如何测试AI系统?

曾经从事过应用程序开发项目的人都知道,不仅是要将代码和内容在生产中,向客户,员工或利益相关者展示出来,而且需要先对其进行测试以确保其不会损坏或交付失败。质量保证(QA)是任何技术或业务交付的核心部分,是任何开发方法的重要组成部分之一。建立、 测试、 部署软件最好的方法是以敏捷的方式,以小块的迭代块进行操作,因此必须确保响应客户不断变化的需求。当然,人工智能项目也没有什么不同。正如我们在先前关于AI方法论的内容中所讨论的,有迭代的设计,开发,测试和交付阶段。

但是,AI的可操作性与传统的部署不同之处在于,不仅仅将机器学习模型投入了“生产”。这是因为模型是不断发展和学习的,必须不断进行管理。此外,模型可以最终在具有不同性能和准确性指标的各种终端上使用。即使在质量保证方面,人工智能项目也不同于传统项目。简而言之,您不会像对其他项目进行质量检查那样对AI项目进行质量检查。这是因为对于AI项目而言,我们要测试的内容,测试方式以及测试时间的概念大不相同。

在AI的训练和推理阶段进行测试和质量保证,那些有机器学习模型训练经验的人都知道测试实际上是使AI项目正常工作的核心要素。您不仅可以开发AI算法,还可以将训练数据投入其中。您必须实际验证训练数据是否具有足够的泛化能力,可以对数据进行正确的分类或回归,而又不会过度拟合或拟合不足。这是通过使用验证技术并预留一部分要在验证阶段使用的训练数据来完成的。本质上,这是一种质量检查测试,在此过程中,您要确保算法和数据结合在一起,同时还要考虑到超参数配置数据和关联的元数据,这些因素可以一起工作以提供所需的预测结果。如果在验证阶段发现错误,则应该返回,更改超参数,然后再次重建模型,如果有的话,也许可以提供更好的训练数据。完成此操作后,您可以返回并使用其他预留测试数据来验证模型是否确实按预期工作。尽管这是测试和验证的所有方面,但它发生在AI项目的训练阶段。这是在AI模型投入运行之前。

即使在训练阶段,我们也在测试一些不同的东西。首先,我们需要确保AI算法本身能够正常工作。如果算法实施错误,则无需调整超参数并训练模型。但是,实际上,没有理由执行不当的算法,因为这些算法中的大多数已经被烘焙到各种AI库中。如果您需要K-Means聚类或不同类型的神经网络,支持向量机或K-最近邻,则只需在Python scikit-learn中调用该库函数,或者选择任何您喜欢的工具,它就可以工作。数学只有一种方法!除非您有充分的理由,否则ML开发人员不应从头开始编写这些算法。这意味着,如果您不是从头开始编写代码,那么就实际代码而言,几乎没有什么要测试的-假设算法已经通过了测试。在AI项目中,假设已按照预期实施了QA,则质量检查将永远不会专注于AI算法本身或代码。

这就需要在训练阶段针对AI模型本身进行两件事测试:训练数据和超参数配置数据。在后一种情况下,我们已经通过使用验证方法(包括K倍交叉验证和其他方法)解决了超参数设置的测试。如果您正在进行任何AI模型培训,那么您应该知道如何进行验证。这将有助于确定您的超参数设置是否正确。从质量检查任务列表中剔除另一个活动。

这样,剩下的就是测试数据本身以进行AI模型的质量检查。但是,这是什么意思?这不仅意味着数据质量,还意味着完整性。训练模型是否足以代表您要概括的现实?您是否在训练数据中无意中包含了任何信息或人为偏见?您是否跳过了在训练中起作用但由于真实世界的数据更加复杂而在推理过程中会失败的事情?AI模型的质量保证与确保训练数据包括真实世界的代表性样本有关,并消除了尽可能多的人为偏差。

在机器学习模型之外,需要测试的AI系统的其他方面实际上是在AI模型外部的。您需要测试将AI模型投入生产的代码-AI系统的操作组件。这可能会在AI模型投入生产之前发生,但是实际上您并没有在测试AI模型。相反,您正在测试使用该模型的系统。如果模型在测试期间失败,则使用该模型的其他代码在训练数据或某处的配置方面都会有问题。如上所述,当您测试训练模型数据并进行验证时,您应该已经掌握了这一点。

如果按照上面的内容进行操作,那么就会知道,使用代表训练数据并使用已经过测试和验证的来源的算法,经过正确验证的,通用化的系统应该会产生预期的结果。但是,如果您没有获得预期的结果会怎样?现实显然是混乱的。在现实世界中发生的事情不会在您的测试环境中发生。但是,我们在培训阶段应该做的所有事情都完成了,我们的模型达到了预期的期望,但是在模型运行时并没有进入“推论”阶段。这意味着我们需要一种质量保证方法来处理生产中的模型。

推论阶段中的模型出现的问题几乎总是数据问题或模型训练与实际数据的训练方式不匹配。我们知道该算法有效。我们知道,我们的训练模型数据和超参数已配置为我们力所能及的。这意味着,当模型出现故障时,我们会遇到数据或现实世界中的不匹配问题。输入数据不好吗?如果问题出在无效数据上,请修复它。模型推广不正确吗?是否需要添加一些细微差别的数据以进一步训练模型?如果答案是后者,则意味着我们需要经历一个全新的周期来开发具有新训练数据和超参数配置的AI模型,以处理适合该数据的正确水平。不管发生什么问题,实现AI模型的组织都需要一种可靠的方法,通过这种方法,他们可以密切关注AI模型的执行方式以及版本控制在运行中。

这导致出现了一个称为“ ML ops”的新技术领域,该领域不专注于构建或开发模型,而是在运行中进行管理。ML ops专注于模型版本控制,治理,安全性,迭代和发现。基本上,在训练和开发模型之后以及产品停产时发生的所有事情。人工智能项目的独特之处在于它们围绕数据展开。数据是测试中保证不断增长和变化的一件事。因此,您需要考虑AI项目也在不断发展和变化。这应该为您提供有关AI方面质量检查的新视角。

本文分享自微信公众号 - 决策智能与机器学习(AIfreak),作者:JERRY

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2019年数据科学的热门趋势

    今年有望成为人工智能技术爆发的一年。不信的话,可以看看有多少以AI为名义的创业公司;再看AI引起了多少科技巨头的关注或者那些顶级会议的核心议题。

    用户7623498
  • 九三摸象-第四范式“先知”平台 | 企业AI核心系统 | 解读产品

    第四范式就是给各行各业提供人工智能技术与服务的。愿景是能够基于行业应用场景及痛点,用机器学习技术开发出解决方案,为企业提升商业价值,找到下一个增...

    用户7623498
  • 强化学习(1) | 夺旗行动:复杂合作角色的出现

    掌握多人电子游戏中的策略、战术理解和团队合作是人工智能研究的一个关键挑战。在我们最新的文章中,我们发表了强化学习的新进展,我们发明的方法在Quake III 竞...

    用户7623498
  • AI初创公司必备:验证算法的三个关键测试

    在今天,Iterative Lean Startup原则得到了很好的理解,最小可行性产品(MVP)是机构风险投资的先决条件,但很少有创业公司和投资者将这些原则扩...

    AiTechYun
  • 端侧AI:高隐私、高可靠的智能个性化服务

    庄光庭:很高兴有机会可以在LiveVideoStack进行些AI和视频相关技术的分享与交流,我是OPPO AI多媒体技术总监庄光庭。OPPO致力于手机研发,为用...

    LiveVideoStack
  • AI调参师会被取代吗?对话AutoML初创公司探智立方

    1955 年,约翰·麦卡锡(John McCarthy)、马文·闵斯基(Marvin Minsky)、克劳德·香农(Claude Shannon)等人聚在一起,...

    AI科技大本营
  • 【中国战队包揽234却无缘冠军】OpenAI 的 Dota2 机器人强在哪?

    【新智元导读】DOTA2 经典赛事TI7国际邀请赛决出最后冠军,中国团队虽占据234名但无缘冠军。回顾本届比赛,Open AI 的机器人因为战胜了人类玩家而大放...

    新智元
  • ARK Invest最新报告 :AI训练成本下降了100倍,但训练最先进AI模型的成本惊人

    方舟投资(ARK Invest)近日发布了一篇分析报告显示,AI训练成本的提高速度是摩尔定律(Moore’s law)的50倍。摩尔定律是指计算机硬件性能每两年...

    新智元
  • 一文讲述人工智能在医疗行业的九个落脚点,让你更懂AI

    翻译 | AI科技大本营(rgznai100) 参与 | 史天 很多思想领袖认为我们正在经历第四次工业革命。这次工业革命融合了物理世界、数字世界和生物世界,将影...

    AI科技大本营
  • 首个基于Transformer的目标检测模型上线,大目标检测超越Faster R-CNN

    Facebook AI Research的六名成员研究了近期非常流行的Transformer神经网络架构,创建了一个端到端的目标检测AI。研究员声称这种方法简化...

    新智元

扫码关注云+社区

领取腾讯云代金券