虽然概念上,人工智能和机器学习不等同。但是本文提及的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. 从网络I/O模型到Netty,先深入了解下I/O多路复用

    微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. 本文是Netty系列第3篇 上一篇文章我们了解了Unix标准的5种网络I/O模型,知道了它们的核心区别与各自的优缺 ...

  2. 网络安全知识--PHP代码审计/Web For Pantesters 的 SQL injection

    SQL 注入一般流程 判断有无注入 单引号判断: ?name=root' 对应语句 select * from table where name='root'' 不符合语法规范,报错,说明有注入 an ...

  3. POJ1273 最大流模板

    之前自己写的,以后当一个模板的基础吧,不管是最大流,最小割,二分图匹配 下面是POJ1273的一个裸题.. 1 #include <iostream> 2 #include <cst ...

  4. Keras模型拼装

    在训练较大网络时, 往往想加载预训练的模型, 但若想在网络结构上做些添补, 可能出现问题一二... 一下是添补的几种情形, 此处以单输出回归任务为例: # 添在末尾: base_model = Inc ...

  5. js code review

    js code review https://codereview.stackexchange.com/ refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只 ...

  6. macOS 没有鼠标 怎么使用 快捷键

    macOS 没有鼠标 怎么使用 快捷键 mini 链接蓝牙鼠标 菜单选择 光标聚焦 上下选择 确认,选中 用键盘浏览菜单 若要使用这些快捷键,请先按下 Control-F2 或 Fn-Control- ...

  7. Vue 3.x & v-model

    Vue 3.x & v-model https://v3.vuejs.org/guide/migration/v-model.html#overview BREAKING: When used ...

  8. self-publishing ebook guide all in one

    self-publishing ebook guide all in one 自助出版电子书指南 第1课:让我们自己出版一本书! 与您会想到的很多人相反,自我出版并不容易. 您不仅必须写书,而且还必须 ...

  9. asm FPU 寄存器

    TOP-- TOP++ 顶部 ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7) 底部 指令后的注释通常是执行后的结果 push section .data ...

  10. windows driver 简单的驱动和通信

    sysmain.c #pragma once #pragma warning(disable: 4100) #include <ntifs.h> #include <ntddk.h& ...