Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何测试AI系统?

如何测试AI系统?

作者头像
用户7623498
发布于 2020-08-04 15:22:10
发布于 2020-08-04 15:22:10
1.5K0
举报

曾经从事过应用程序开发项目的人都知道,不仅是要将代码和内容在生产中,向客户,员工或利益相关者展示出来,而且需要先对其进行测试以确保其不会损坏或交付失败。质量保证(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方面质量检查的新视角。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 决策智能与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
How Do You Test AI Systems?--你如何测试AI系统
RonSchmelzerContributor(Ron SchmelzerContributor公司)
顾翔
2020/05/20
7110
ML Ops:数据质量是关键
ML Ops 的发展弥补了机器学习与传统软件工程之间的差距,而数据质量是 ML Ops 工作流的关键,可以加速数据团队,并维护对数据的信任。
机器之心
2020/10/27
8580
ML Ops:数据质量是关键
别掉队!2020年将出现的7种新兴自动化Web测试趋势,你知道吗?
在最近几年中,技术以多种形式发展。从开发到测试再到持续交付,我们已经看到了IT行业的许多变化。但是,软件测试过程遇到了最积极的变化,特别是在测试过程中引入自动化之后,测试人员可以轻松便捷地测试Web应用程序或网站。
小小科
2020/06/10
6500
质量保障的方法和实践
传统的质量保证通常需要在进行任何测试之前进行大量的准备工作和脚本编写。这导致在接近deadline日期时发现软件中的更多错误。从敏捷测试开始,更多的质量保证涉及自动化测试和持续集成。这种方法在软件开发周期开始时就发现了大多数错误,并随着周期的进行进行了修复。达到减少了在项目结束时需要解决的错误的目的,从而可以无缝、轻松地交付。
FunTester
2020/09/08
5510
面向AI应用的测试思考
“ 人工智能(AI)已无处不在,AI正在为各行各业赋能,并以前所未有的速度全方位地改变着我们的生活。然而,由于AI是一种新的编程范式,无论在学术界还是工业界,对于AI测试的研究和实践尚处于起步阶段。”
Criss@陈磊
2020/09/08
1.6K0
MLOps:构建生产机器学习系统的最佳实践
你可能已经听过很多次了,但只有一小部分机器学习模型投入生产。部署和运行机器学习模型对于大多数已经开始将ML应用于用例的行业来说都是一个挑战。在这篇文章中,我将分享一些MLOps的最佳实践和技巧,它们将允许您在生产环境中使用您的ML模型并正确地操作它。在我们开始之前,让我们讨论一下我们可能都知道的典型的ML项目生命周期。
deephub
2021/04/16
1.3K0
软件测试:概念篇
目的:验证软件有或没有问题。 原则:以客户为中心,遵循软件测试的规范、流程、标准和要求。
测试开发社区
2019/09/20
7530
软件测试:概念篇
算法工程师的日常工作内容?你想知道的可能都在这里
有很多小伙伴可能都对未来的工作内容有所好奇,不知道所谓的算法工程师到底日常在做什么,而我以后能不能胜任?
AI算法与图像处理
2019/09/17
1.7K0
算法工程师的日常工作内容?你想知道的可能都在这里
未来的QA测试工程师
软件测试和编程项目快速增长的体量已经让QA别无选择,只能用更有效的自动化解决方案代替人工操作。IT领域正在朝着自动化软件技术方面快速发展。由于越来越多的企业采用敏捷方法并应用DevOps,因此质量保证不再是启动前的阶段。它贯穿整个产品生命周期。
FunTester
2020/01/10
6760
如何测试人工智能模型:QA入门指南
https://dzone.com/articles/how-to-test-ai-models-an-introduction-guide-for-qa-1
顾翔
2020/05/21
1.6K0
如何测试人工智能模型:QA入门指南
如何有效提升软件测试质量?
软件质量保障 | 测试质量保障、自动化工具/框架、平台开发、算法测试、BAT/TMD大厂测试岗面试题/面经分享、测试团队建设与管理、测试新技术的分享。 偶尔也聊聊个人工作的收获与经验。可以帮忙内推字节、阿里、百度等大厂。
互联网金融打杂
2022/08/01
1.2K0
如何有效提升软件测试质量?
新词:QA-Ops
QAOps是指通过使用DevOps思维方式来保持软件质量。DevOps指软件开发(Dev)和IT运维(Ops),并在开发和IT运营之间建立关系。将DevOps引入业务实践的目的是改善两个业务部门之间的协作。
FunTester
2020/04/08
7970
「AI工程论」AI的透明性(Transparent)及一种多因素评估方法
让人工智能发挥作用的一个基石是机器学习——机器从经验和数据中学习,并随着学习而不断提高的能力。事实上,机器学习的研究和应用的爆炸式增长使得人工智能成为了最近的兴趣、投资和应用热点。从根本上说,机器学习就是给机器大量的数据来学习,然后使用复杂的算法,从学习中归纳出机器从未见过的数据。在这种情况下,机器学习算法是教会机器如何学习的配方,而机器学习模型是这种学习的输出,然后可以归纳为新的数据。
用户7623498
2020/08/05
8560
「AI工程论」AI的透明性(Transparent)及一种多因素评估方法
机器学习下的持续交付
机器学习在行业中的应用变得越来越流行,然而相对于传统软件开发,例如Web服务或者Mobile应用来说,这类程序的开发、部署和持续改进也变得更加的复杂。它们的功能改变通常由以下三个维度驱动:
ThoughtWorks
2020/03/13
5830
AI智能体的开发流程
AI智能体的开发流程是一个多阶段、迭代的过程,它将机器学习、软件工程和领域知识结合在一起,旨在创建一个能够感知、推理、学习和行动的自主系统。下面是一个详细的AI智能体开发流程。
数字孪生开发者
2025/06/16
2130
AI智能体的开发流程
模型运营是做什么的(概念模型数据库)
我们过去几年的调查表明,很多不同行业的机构对机器学习(ML)越来越感兴趣。有几个因素促成人们在产品和服务中运用机器学习。首先,机器学习社区已经在企业感兴趣的许多领域实现了研究的突破,并且大部分研究都通过预发表和专业会议演示进行了公布。我们也开始看到研究人员共享出在流行的开源框架中编写的示例代码,有些甚至共享出了预先训练好的模型。企业和机构现在还可以从更多的应用案例从中吸取灵感。非常有可能在你感兴趣的行业或领域里,你可以找到许多有趣的机器学习的应用并借鉴参考。最后,建模工具正在被改进和优化,同时自动化工具已经可以让新用户去解决那些曾经是需要专家才能解决的问题。
全栈程序员站长
2022/08/01
8080
模型运营是做什么的(概念模型数据库)
训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……
在机器学习领域,训练数据准备是最重要且最耗时的任务之一。实际上,许多数据科学家声称数据科学的很大一部分是预处理的,并且一些研究表明,训练数据的质量比你使用的算法类型更为重要。
AI科技大本营
2020/03/16
8740
训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……
在软件开发中实施人工智能和敏捷管理的9种方法
几十年来,人工智能通过帮助各行各业的企业蓬勃发展,证明了其价值。从汽车制造厂的机器人到预测货币和库存变动到交易员,人工智能是我们生活的一部分。
Java架构师历程
2019/03/08
1.3K0
在软件开发中实施人工智能和敏捷管理的9种方法
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(一)
2006 年,Geoffrey Hinton 等人发表了一篇论文,展示了如何训练一个能够以最先进的精度(>98%)识别手写数字的深度神经网络。他们将这种技术称为“深度学习”。深度神经网络是我们大脑皮层的(非常)简化模型,由一系列人工神经元层组成。在当时,训练深度神经网络被普遍认为是不可能的,大多数研究人员在 1990 年代末放弃了这个想法。这篇论文重新激起了科学界的兴趣,不久之后,许多新论文证明了深度学习不仅是可能的,而且能够实现令人惊叹的成就,其他任何机器学习(ML)技术都无法匹敌(在巨大的计算能力和大量数据的帮助下)。这种热情很快扩展到许多其他机器学习领域。
ApacheCN_飞龙
2024/05/24
1.3K0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(一)
机器学习正在改变软件测试的未来(Computing)
大多数软件开发团队认为他们的软件测试能力不足。他们明白质量缺陷所带来的影响是巨大的,在质量保证方面投入了大量资金,但仍然没有得到想要的结果。这并不是因为缺乏人才或努力,而是因为软件测试的技术效率极低。软件测试这一行业一直没有得到很好地发展。
谭雪儿
2020/12/18
9200
相关推荐
How Do You Test AI Systems?--你如何测试AI系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档