AI删库,程序员背锅?
作者 | 一一
出品 | AI科技大本营
又一代码清库的惨案发生了,不过这次要背锅是 AI。
近日,美国最大点评网站 Yelp 的工程师训练的神经网络闯祸了。他们训练了一个用来消除 bug 的神经网络,万万没想到,该网络删除一切,从根上彻底了实现“bug-free”......有点儿厉害。
Yelp 团队在 APP 中向近期可能感到体验不畅的各位用户致歉,该团队还表示,他们将不得不进行回滚(Roll back),但随即话锋一转,他们说好的一面是,这说明 APP 中 100% 没 bug 了啊。
好吧,没跑了,这个锅还是工程师的。
神经网络算法的这一波操作,让人不禁想起郭德纲的一个相声段子,“我心善,见不得穷人,于是把自己目之所及的穷人全赶走了。”收到工程师的任务指令后,兴许 AI 发现一个个 debug 太不省心,心一横,干脆一键 all clear 算求。
这事要在国内互联网公司,搞这个大一个工程事故,九成要说杀一个工程师祭天,尽管 Yelp 最后的点睛自嘲蛮轻松的,但人前卖笑,谁知道代码清除后工程师是不是目瞪口呆或者心里在吐血呢......毕竟,要 Roll back。
Roll back 究竟意味着什么?它指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。那 Roll back 工作量有多大呢?回滚对程序员意味着非常严重的失误,微博网友@互联网八卦民工评论说,Yelp 在真实环境训练自己的人工智能神经网络去删除 app 中的 bug,结果是人工智能把所有都东西都删了,这不是一个简单的 Roll back。
网友们更好奇的是 Yelp 的工程师训练了一个怎样的网络?拿何种样本训练的?损失函数是如何设计的?有人猜测,代码里面没有 bug,损失函数一直是零,BP 和优化器无用武之地,所以触发异常,把整段代码都视为 bug?
代码里面没有 bug 似乎不太可能,翻阅 Yelp 的版本更新历史记录,你会发现这简直是一部“除虫史诗”,你们感受一下:
本来是想让 AI 来帮忙 debug 的,现在工具反到成了阻碍。不知道是 debug 工具本身的黑箱问题,还是使用它的人没找到正确的“窍门”。至于这次 Yelp 工程事故报告还未有进一步的信息披露,但用神经网络算法 debug 应该有风险,部署需谨慎。
不过一款让工程师省时省力的 debug 工具显然是人人所期待的,AI科技大本营之前写过一篇@程序员,终于可以放心写bug了!Facebook的debug神器你值得拥有中提到,去年 9 月,Facebook 基于 AI 技术再次推出新款代码调试工具 SapFix,可针对特定的 bug 自动生成修复程序,然后将其提交给工程师,经确认之后,然后再部署到生产环境中。相比其一年前已投入大规模使用的智能自动化软件测试工具 Sapienz,SapFix 能够在没有 Sapienz 的情况下运行,主要用于修复 Sapienz 在生产前发现的程序 bug。
从发现 bug 到修复 bug,Facebook 有一套完整的流程:首先 Sapienz 以及 Facebook 的静态分析工具 Infer,会帮助定位代码中需要修补的点;一旦 Sapienz 和 Infer 精确定位与崩溃相关的特定代码部分之后,就会将该信息传递给 SapFix;最后,SapFix 会参考几种不同的策略,自动生成补丁。
根据 Facebook 的数据,Sapienz 报告的大约四分之三的错误都需要开发者来修复。自 Facebook 开始测试 SapFix 之后,该工具已经成功生成了被人类审核者接受并部署于生产的补丁。不过,目前 SapFix 总体上仍在开发阶段。
Facebook 都还只是在尝试阶段,Yelp 的工程师这次似乎对自家的 debug 工具太自信了,一键清库简直不能更酸爽,不知道他们这次有没有感受到来自深度学习的威力。
(*本文为 AI科技大本营原创文章,转载请联系微信 1092722531)
公开课预告
◆
全双工语音
◆
本期课程中,微软小冰全球首席架构师及研发总监周力博士将介绍微软小冰在全双工语音对话方面的最新成果,及其在智能硬件上的应用和未来将面临的更多技术产品挑战。
推荐阅读
放弃幻想,全面拥抱Transformer:NLP三大特征抽取器(CNN/RNN/TF)比较
维基百科联手谷歌翻译,结果“惨不忍睹”!
ETC遭受51%算力攻击,压垮PoW的最后一根稻草
对不起,我就是喜欢问你Spring构造器注入原理
找工作时单位普遍要求 35 岁以下,那 35 岁以上的人都干嘛去了?
MongoDB 背锅、58 同城中枪,2 亿简历遭泄露竟祸起程序员爬虫?
平均9分!这些课程Google程序员也在追!
你的邮箱信息是否泄露?还不赶紧查一下!
20行Python代码给微信头像戴帽子
相关文章:

OpenStack Keystone架构一:Keystone基础
一 什么是keystone keystone是OpenStack的身份服务,暂且可以理解为一个与权限有关的组件。 二 为何要有keystone Keystone项目的主要目的是为访问openstack的各个组件(nova,cinder,glance...)提供一个统一的验证方式,具体的&#…

用gdb调试mpi程序的一些心得
Linux下MPI (Message Passage Interface) 的程序不太好调试,在windows下vs2005以上的IDE有集成的简便MPI调试工具,没有用过,有兴趣的可以试验一下。下面总结了一些最近在用MPI和c语言写程序时的调试经验(Ubuntu环境,c语…

开源如何占领软件世界?
作者 | Mike Volpimavolpi译者 | 风车云马编辑 | 一一出品 | AI科技大本营5 年前,投资商对开源这种商业模式的可行性持有怀疑态度。他们普遍认为,红帽(redhat)公司犹如雪花飘零——在软件世界里开源公司不可能占据举足轻重的地位。…

软件工程概论——课堂测试1
设计思想:1.用1个页面,实现课程录入,提交后直接返回课程界面。2.应用html表单属性进行数据的提交。3.用servlet进行写入数据库和验证输入。 源代码: <% page language"java" import"java.util.*" contentT…

过程即奖励(The Journey is the Reward)
今天读完了《乔布斯传》。翻着这本书最后的影集,乔布斯传奇一生的一幕幕仿佛在眼前展开。从第一张照片中特里独行、桀骜不驯的年轻人,到最后一张照片中阳光下慈祥微笑的老者,看到的仿佛不是乔布斯的照片,而是自己的一位人生挚友。…

BREW 计费模式概览
计费模式也就是收入模型是商业模式的基础。BDS分发系统中不但提供了与运营商计费系统的接口,而且直接提供了BREW 计费服务。 BREW分发系统与运营商计费系统的集成,一般就是与运营商的综合营帐系统的集成,需要融合于网元层,资源层&…

程序员崩溃了,年终奖怎么说黄就黄
作者 | 胡巍巍转载自程序人生(ID:coder_life)往年王者荣耀年终奖200个月100万(虽然辟谣是假的)、华为年终奖24个月100万,都让我等平民羡煞不已。还有在BAT发生的(朋友圈)真人真事↓这是年终奖的…

改变IT世界的11大Apache开源技术
据国外媒体报道,转眼之间,Apache软件基金会已经成立10年之久了,11月份,Apache基金会的成员将会为其举行一次大型的庆祝。虽然Apache软件基金会是一个开源的组织,但是Apache却创造了对现代互联网来说很重要的技术。下面…

nginx常用技术
作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优)欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明.首发时间: 2008-11-25 更新时间:2009-1-14目 录一、 Nginx 基础知识二、 Nginx 安装及调试三、 Ngi…

2011到过的地方
火车上读《南方周末》,看到记者把自己2011去过的地方在地图上标记,带着标记的世界地图,显得特别而好看,于是很想自己也做一份。找了一些网站,做的图片,差强人意吧。2011到过的地方:这个图不算漂…

2亿简历遭泄漏,到底谁的锅?
作者 | 仲培艺转载自CSDN(ID:CSDNnews)前面刚有 AWS 开战 MongoDB,双方“隔空互呛”,这厢又曝出 2 亿简历信息泄露——MongoDB 的这场开年似乎“充实”得过分了些。长期以来,作为“最受欢迎的 NoSQL 数据库…

Could not apply the stored configuration for monitors 解决办法
Could not apply the stored configuration for monitors 解决办法: $ sudo rm -rf ~/.config/monitors.xml 重启电脑即可 本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/1225802如需转载请自行联系原作者 yangzhimingg

20行Python代码给微信头像戴帽子
作者 | Leauky,北理工硕士在读,非CS专业的Python爱好者。朋友圈里微信官方要求戴圣诞帽的活动曾经火爆一时,有些会玩的小伙伴都悄咪咪地用美图秀秀一类的 app 给自己头像 p 一顶,然后可高兴地表示“哎呀好神奇hhhh”,呆…

2012关于钱的Tips
对于目前的我来说,死工资是唯一的财富积累手段,而且工资本身还不足够满足所有的物质和精神需求。以此为前提,对钱的来龙去脉有一个了解、把控是极其有必要的。 2011钱的规划基本为零,一年下来惊恐的发现,似乎自己没攒多…

在 Azure 中管理 Windows 虚拟机的可用性
了解如何设置和管理多个虚拟机,以确保 Azure 中 Windows 应用程序的高可用性。 也可以管理 Linux 虚拟机的可用性。 Note Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典。 这篇文章介绍了如何使用这两种模型,但…

[日记]一个人去散步
森林里面的寂静会让每一个人都有所进步。 ——罗伯特M波西格 《禅与摩托车维修艺术》 北陵公园下午5点之后免收门票,我就在这个时间去那里散步。 说起来,我家离北陵西门走路才10几分钟的路程,可是我…

2019年人工智能行业又进入冬天了吗?
【AI科技大本营导语】过去几年,以深度学习为代表的人工智能技术取得了前所未有的高速发展,公司高薪聘请相关领域研究人员,组建人工智能研究团队,相信人工智能带来的巨大商业价值。然而,从近一年的发展态势来讲…

Vue.js slots: 为什么你需要它们?
也许你已经看过了Vue.js slots的文档。我对这个功能从“为什么你可能需要它”到“没有它我怎么可能工作”的态度转变非常快。虽然文档已经解释了它的概念,但是这里有一个关于slots怎么改进应用程序代码库的真实例子。在我看来,slots是vue最有用和最有趣的…

apache httpd server安装的一个问题
问题1: 启动bin/apachectl start的时候: 发现报错:httpd: bad user name daemon 解决方法: groupadd daemon useradd -g daemon daemon 若没有配置合适PATH常量,则可以找 /usr/sbin/groupadd,…

telnet 如何退出
ctrl],然后再输入q就可以退出了。转载于:https://www.cnblogs.com/rethink/archive/2009/10/29/1591898.html

TensorFlow 2.0新特性解读,Keras API成核心
来源 | Google TensorFlow 团队2018 年 11 月,TensorFlow 迎来了它的 3 岁生日,我们回顾了几年来它增加的功能,进而对另一个重要里程碑 TensorFlow 2.0 感到兴奋 !TensorFlow 2.0 将专注于 简单性 和 易用性,具有以下更…

列选主元guass消去法
200701020110 07计算机 王再#include <iostream.h>#include <iomanip.h>#include <stdlib.h>void main(){ int flag1;input(); //输入方程 while(flag){ print_menu(); //打印主菜单}void print_menu(){ system("cls");cout<…

Mac 下 IDEA 启动慢的问题
转自: http://blog.csdn.net/KingBoyWorld/article/details/73440717 从控制台来看,每次都会连接本地地址(127.0.0.1),问题可能就出在这里。 修改本地/etc/hosts文件,添加以下内容: 127.0.0.1 localhost <hostname&g…

研发投入超876亿的华为,将如何进击云+AI?
人工智能作为下一轮科技革命的关键元素,正在进入越来越多的行业,用 AI 的技术和理念去解决现在和未来的问题,将是企业构建竞争力的关键。在去年 10 月召开的华为全联接大会上,华为轮值董事长徐直军详细阐述了华为的 AI 战略&#…

Bash脚本: 根据关键字做替换
根据某个文件的关键字做替换 #!/bin/bashkvawk -F "" { if(NF2) print $1""$2 } ./zuanshi_servic_test.propertiesfor kv in ${kv[]};dokecho $kv | awk -F "" {print $1}vecho $kv | awk -F "" {print $2} | awk -F "\r" …

Git学习系列之一些常用的Git命令收录更新ing
不多说,直接上干货! 前言 对于Git工具,有必要整理和总结一些常用实用的命令。 http://p.primeton.com/articles/53cce3a3e138236138000026 https://www.zhihu.com/question/22932048 http://blog.csdn.net/w410589502/article/details/536063…

普通域账号客户端计算无关机选项
组策略-》计算机配置-》安全设置-》本地策略-》用户权限分配-》关闭系统把DOMIAN USERS 组加进去我是在Default Domain Policy 里面加的转载于:https://blog.51cto.com/zhangjunjie/219613

罗永浩“咬定”微信不放松
作者 | 胡巍巍来源 | CSDN(CSDNnews)昨天,1月15日,听起来是很普通的一天。但是,历史上的这一天——公元8年1月15日,是王莽建立新朝、西汉结束的日子。2011年后的这一天,有一个八岁的国民社交软件…

Windows Ruby使用Mysql环境配置
windows下Ruby使用mysql时候报错: Incorrect MySQL client library version! This gem was compile d for 6.0.0 but the client library is 5.1.45 经过查找找到了解决方案: 1. 下载mysql-connector-c-noinstall-6.0.2-win32.zip http://dev.mysql.c…

Node.js与Sails~方法拦截器policies
policies sails的方法拦截器类似于.net mvc里的Filter,即它可以作用在controller的action上,在服务器响应指定action之前,对这个action进行拦截,先执行policies的策略,当条件通过,会next()它,继…