虽然概念上,人工智能和机器学习不等同。但是本文提及的AI,指的是基于机器学习的AI.
 
一个软件产品,出了错误叫bug,bug需要修。那一个机器学习的模型,准确率在那摆着呢,大伙心知肚明是有一定的犯错率的,怎么办。想了想,可能就是这么办吧。
 
不予理会。推荐引擎推荐错了,质量不高,也不会搞出什么大问题。continuous research,以提高转换率为目标,继续努力就好了。
和bug一样,得修,模型必须改进。比如说,公交车董明珠的广告当作董明珠闯红灯。
和bug一样,得修,可是模型该进不了了。写一些rule,强行修正,或者在模型前端写一些rule来过滤。比如说NER专名识别,可以写一些正则表达式来补捉一下被模型漏掉的词组。
或者干脆公开表示,模型是有错误的,对错误敏感的问题,请根据评分,进行人工干预纠正。
 
对于QA来说,AI Bug真的是比较头疼。什么是bug嘛。你倒是给我说一下,什么样的错误得报告。AI QA说,AI部分的测试,大部分的情况就是做一下合理性检测,保证一下没有因为软件的bug,而使得输出的都是垃圾的问题。模型质量还是必须依赖实验室的统计数据为准。确实,对于AI QA也没什么标准可循。
 
最近听一个talk,其中提到,过去十年,大部分的企业的AI feature还是nice to have. 未来十年是must have. 既然是must have,那对于质量问题就必须正面严谨对待。对于AI能够解决的问题,市场营销上也从搞噱头造势,转到更加实事求是地阐述AI在该领域能解决的问题。曾经看到一个Legal AI是这么说的,我们不是要取代你们的工作,我们是让你们的工作更加的轻松,不用浪费生命与枯燥重复的事情上。基于这样的定位,对于AI的错误,势必要严谨对待,不能向以前那样不管,以前反正是nice to have的功能嘛。
 
Amazon去年release了a2i,提供了一个用户反馈框架,让用户审核那些评分较低的预测。这看上去貌似和主潮流不符。research届不是此起彼伏报告模型准确率破纪录吗,怎么这么多年过去了,还搞人工干预纠正AI了。我想这也可能是AI implementaion走向成熟期的一个表现吧。真正的做到普及之前,必须有能力对质量有更好的monitor,对错误作出及时的反馈。目标是一个成熟可用的系统,而不是nice to have的无人问津的功能。当然a2另外一个很大的作用是收集用户的反馈来作为模型输入,以更好的提高模型质量。
 
提到修AI Bug的强有力手段,rule,想起了多年前一个朋友曾提及他的朋友在某公司从事AI,后来发现流水线上起作用的主要部分是rule,而不是机器学习算法。作为新生代AI宗教信徒的他,过不了这个fake AI的梗,果断离职。不过相信多年磨砺之后,遭遇了AI领域更多理想和现实的矛盾,现在可能没当初那么义愤填膺了。大部分的机器学习工程师对于rule的感情是很复杂的,既鄙视它,又离不开它。实际上,如果不是完全黑盒子的深度学习,AI 流水线上需要涉及到很大工作量的特征工程。而很大可能,某个特征就是一个rule产生的。纵览整个流水线,rule比重多一点还是机器学习算法比重多一点呢。AI落实到实际产品,脚踏实地必须自动化一些重复工作的时候,可能并不需要太较真。毕竟rule工作本身很繁琐,当算法在工程上达到标准后,rule被取代那是必然之势。
 
 
阅读作者更多原创文章,关注微信公众号:

让人头疼的AI bug (随想)的更多相关文章

  1. 【记录】让人淡疼的BUG之参数传送错误

    前言 面试的时候往往容易被面试官问到:“说说你遇到过的比较重大或经典的Bug有哪些,能说一说吗?”我被问时脑海的反应是:“尼玛,这个我从来没有刻意记!一时半会咋想得起来,然后还是没想起来或者是随意给了 ...

  2. 让人头疼的CSS兼容

    先说点Hack的知识(真正的高手是不用Hack的,但要成为高手必须通过Hack这一关) /* CSS属性级Hack */ color:red; /* 所有浏览器可识别*/ _color:red; /* ...

  3. 【解惑】让人头疼的"相等"关系

    Java中判断相等关系一般有两种手段:(1) “==”关系操作符  (2) equals()方法. 显然,基本数据类型变量之间只能用"==".而对象之间两种手段都是合法的.但是有很 ...

  4. 前端笔记之JavaScript(六)让人头疼的正则表达式

    一.正则表达式 1.1正则概述和体验 正则表达式是被用来匹配字符串中的字符组合的模式,常用来做表单验证.在JavaScript中,正则表达式也是对象,是一种引用类型. 案例:正确输入一个电话号码,01 ...

  5. 用CSS解决一个让人头疼的问题

    需求:下面的文字内容分别都写在一个a标签里,现在需要获取到每一行最后一个a标签的竖线,并删除  我首先想到的是用CSS3新增选择器—— :nth-child()来解决,比如 :nth-child(3n ...

  6. 让人头疼一晚上的 select 下拉框赋值问题

    一开始做这个功能 批量修改用户组 , 当勾选若干用户组后, 点击[批量修改用户组]->ajax提交后台查询->返回下拉菜单列表内容-> 弹出对话框并赋予下拉菜单select 动态数值 ...

  7. binlog真的是银弹吗?有些时候也让人头疼

    大家好,我是架构摆渡人.这是实践经验系列的第三篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友. binlog 用于记录用户对数据库操作的SQL语句信息,同时主 ...

  8. 🍓rem单位在Chrome中字体大小异常 🍓

    这是一个很少出现,而一旦出现就让人头疼难当的bug.....网上资料比较少. 解决:https://oss.so/article/87 即为html标签设置-webkit-text-size-adju ...

  9. 2019年所有人必须要掌握的一个技能 - “AI思维”

    或许很多人认为AI只是那些直接从事AI相关岗位的人必须要掌握的技能,但实际上,不分岗位所有人都需要一种能力,那就是“AI思维”.如果没能在合适的时机把自己的认知提升到一定程度,被替代是很自然的事情.在 ...

随机推荐

  1. 【noi 2.6_6046】数据包的调度机制(区间DP)

    题意:给定一个队列延迟值为Di的任务,以任意顺序入栈和出栈,第K个出栈的延迟值为(K-1)*Di.问最小的延迟值. 解法:f[i][l]表示完成以第i个任务开始,长度为l,到第i+l-1个任务的最小延 ...

  2. Codeforces Round #343 (Div. 2) E. Famil Door and Roads (树形dp,lca)

    Famil Door's City map looks like a tree (undirected connected acyclic graph) so other people call it ...

  3. Codeforces Round #645 (Div. 2) D、The Best Vacation

    题目链接:The Best Vacation 题意: 给你n个月份,每一个月份有di天.你可以呆在那里x天(x天要连续),如果你在某月的第y天呆在这.那么你的拥抱值就加y 1<=n<=2e ...

  4. Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball (后缀和,枚举)

    题意:有一长度为\(n\)的平台,平台有的位置有木桩,可以使小球弹起来,小球必须从第\(p\)个位置开始,而且每次都会向右弹\(k\)个单位,然后有的位置是没有木桩的,你可以在这些的空的位置放一个木桩 ...

  5. zoj3623 Battle Ships

    Battle Ships is a new game which is similar to Star Craft. In this game, the enemy builds a defense ...

  6. Codeforces Round #479 (Div. 3) E. Cyclic Components (思维,DFS)

    题意:给你\(n\)个顶点和\(m\)条边,问它们有多少个单环(无杂环),例如图中第二个就是一个杂环. 题解:不难发现,如果某几个点能够构成单环,那么每个点一定只能连两条边.所以我们先构建邻接表,然后 ...

  7. Splits CodeForces - 964A

    题意: 我们定义一个不上升的且和为 n 的正整数序列,叫做 n 的分解. 比如, 下面是8的分解: [4, 4], [3, 3, 2], [2, 2, 1, 1, 1, 1], [5, 2, 1]. ...

  8. 1.PowerShell DSC概述

    什么是PowerShell DSC DSC 是一个声明性平台,用于配置.部署和管理系统. PowerShell PowerShell 是构建于 .NET 上基于任务的命令行 shell 和脚本语言. ...

  9. 通过修改etcd来设置或修改节点flannel子网信息

    在首次启动flannel服务的时候可以手动指定subnet.env文件,配置所在节点的flannel子网网段,如果不指定配置文件,flannel将自动分配一个子网网段并生成配置文件 /var/run/ ...

  10. kmp--考研写法

    首先是模式串匹配: #include<iostream> #include<stdlib.h> using namespace std; #define maxn 100000 ...