虽然概念上,人工智能和机器学习不等同。但是本文提及的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. Paths on a Grid POJ - 1942 排列组合

    题意: 从左下角移动到右上角.每次只能向上或者向右移动一格.问移动的轨迹形成的右半边图形有多少种 题解: 注意,这个图形就根本不会重复,那就是n*m的图形,向上移动n次,向右移动m次. 从左下角移动到 ...

  2. 微服务架构学习Day01-SpringBoot入门

    基本概念 SpringBoot的优点: 可以创建独立的Spring应用 SpringBoot嵌入Tomcat,Jetty和Unsertow, 不需要部署war文件 根据需要通过maven获取start ...

  3. k8s-3-容器云监控系统

    apollo小结 课程目录 一.容器云监控prometheus概述 https://prometheus.io/docs/introduction/overview/ #官方文档 https://gi ...

  4. Django用户注册、登录

    一.用户注册 1 ''' 2 注册的表单模型 3 forms.py 的例子 4 ''' 5 6 from django import forms #表单功能 7 from django.contrib ...

  5. ajax全局

    $.ajaxSetup({ complete: function (xhr) { xhr.promise().done(function (json) { if (json.errorNo == &q ...

  6. JavaScript调试技巧之console.log()

    与alert()函数类似,console.log()也可以接受变量并将其与别的字符串进行拼接: 代码如下: //Use variable var name = "Bob"; con ...

  7. 浅谈WEB前端规范化标准之ESlint

    规范化标准 软件开发需要多人开发,不同的开发者具有不同的编码习惯和喜好,不同的喜好增加项目的维护成本,所以需要明确统一的标准,决定 了项目的可维护性,人为的约定不可靠,所以需要专门的工具进行约束,并且 ...

  8. Mac 开机时为什么突然响一下,duang

    Mac 开机时为什么突然响一下,duang duang 一下 https://zh.wikipedia.org/wiki/Duang refs xgqfrms 2012-2020 www.cnblog ...

  9. HTML form All In One

    HTML form All In One action + method onsubmit, submit event action + method <form action="&q ...

  10. Docker In Action

    Docker In Action Docker 实战 https://docs.docker.com/get-started/overview/ Docker Engine Docker Archit ...