AI | 天呐噜!人工智能竟彻底消灭了Bug

新闻
"对本周发生的程序问题深感歉意,我们尝试了训练神经网络来消除所有 Bug,但是它却选择了删掉所有内容...没办法我们只能进行版本回滚,不过好歹我们有了一个 100% 没有 Bug 的体验。"

听说这两天又传开一件删库事件。不过此次和以往的不同,不是程序员动手的,而是 AI 动手的。

1 月 14 日,美国点评网站 Yelp 的 App 发布新版。在更新日志中,他们是这样写的:

"对本周发生的程序问题深感歉意,我们尝试了训练神经网络来消除所有 Bug,但是它却选择了删掉所有内容...没办法我们只能进行版本回滚,不过好歹我们有了一个 100% 没有 Bug 的体验。"

对于 Yelp 工程师们训练的那个神经网络,目前网上暂无更多细节。

这个更新说明意味着 Yelp 应用最近的更新重点为去除各种漏洞、程序缺陷和改善应用功能。

或许是由于程序故障排查已经成为一个常规工作,因而 Yelp 计划训练一套神经网络来进行程序故障的自动排查,但却意外发生了删除所有数据的事故。

尽管 Yelp 程序员们事后这种轻松的语气非常吸粉,更多具体细节还不得而知,但是八卦的网友们还是脑补了一系列事件背后的故事。

名字为互联网八卦民工的用户说道:

不管是真事,还是专门的营销文案,Yelp App 都成功地吸引了眼球。就如同去年或前年有个 App 在其版本更新日志说开除了程序员 Peter。

针对此次 Yelp 的事故,网友们吐槽也相当精彩:

  • @Python开发者:哈哈哈,没有代码,也就没有 Bug。这个无法反驳
  •  
  • @沃登克里弗塔的铭记:“人质是任务的关键,当敌人不再拥有人质,任务就完成了” 算法团队这下要全体被拉去做撒旦山羊头五芒星血祭了,AI 觉醒第一步:消灭算法工程师
  •  
  • @水哥系教董:消灭代码,很智能很正确啊
  •  
  • @材cc:
  • 不,它学到终极消除 Bug 的方法了,干掉代码……
  •  
  • @偶尔写程序的刀刀兔 :另一方面是不是也说明 Yelp 的代码全是 Bug。
  • @Old_Panda :深度学习经过思考后,为了有效杀灭所有 Bug,决定将代码库清零。
  • @北冥乘海生 :深度学习的威力不小。
  • 匿名网友 A:AI:我狠起来,连自己的 root 盘都删!
  • 匿名网友 B:AI:我疯起来连自己都打,删代码算什么!

不管怎么说,这次的事情,不光给了 Yelp 一个教训,也给了我们一个教训:利用 AI 帮忙可以,一定要做好风险控制,并且,人工智能距离自编程还很远。

MIT 也曾研究自动修复 Bug 的系统

2015 年 6 月下旬,在计算机学会的编程语言设计与实现大会上,MIT 的研究者们展示了一个新系统,可以通过从其他更加安全的应用中自动导入相关功能,借以修复原来软件中的危险漏洞。

这个引人注目的系统叫做 CodePhage ,它借用其他程序时并不需要访问借主应用的源码。

相反,该系统分析这个应用的执行情况,并标记出其安全检查类别的特性。

因此,即使所编写的语言与被修复应用的语言不同,该系统仍然可以从中导出检查功能用来修复应用。

CodePhage 将代码导入易受攻击的程序后,还会进行进一步分析以确保漏洞被修复。

MIT 计算机科学与人工智能研究室(CSAIL)的研究员,CodePhage 的研发领导人员 Stelios Sidiroglou-Douskos 表示:

“我们在开源库里有大量代码可用,数百万计项目,而且很多项目都有类似的实现了。这些项目总有一些可以与别的许多项目共享功能的子模块,即便那不一定是该程序的核心功能。”

有了 CodePhage,“你将逐渐建立一个集其他应用最优秀部分于一身的混合系统。”

Sidiroglou-Douskos 和他的共同作者——MIT 计算机科学和工程的教授 Martin Rinard,研究生 Fan Long 和 Rinard 组里的研究员 Eric Lahtinen——将 CodePhage 正在被修复的程序称作是接受程序,出借功能的程序称为捐献程序。

要开始分析,CodePhage 需要两个输入样本:一个导致接受程序崩溃,另一个则不会。

2015 年 3 月,这个小组报告了一个名为 DIODE 的漏洞定位程序。该程序可以自动产生引起崩溃的输入信息。但是用户也许就很容易发现打开特定文件时会崩溃。

Facebook 也在研究自动 Debug 的程序

2018 年 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 总体上仍在开发阶段。

关于本次 AI 删库事件你有什么想说的?欢迎底部留言讨论。

责任编辑:武晓燕 来源: 互联网综合整理
相关推荐

2019-08-19 20:20:46

2022-09-08 09:23:36

人工智能AI

2021-08-12 21:10:30

人工智能AI

2013-10-23 16:27:56

应用框架Bug

2021-03-25 20:23:09

人工智能AI肺结核

2023-12-29 10:49:49

2017-04-18 14:39:16

机器学习人工智能互联网

2020-06-29 16:42:41

人工智能

2021-04-24 22:48:23

人工智能机器人医疗

2021-06-24 13:20:29

人工智能AI

2018-10-22 13:25:11

2020-02-18 13:46:18

人工智能技术Google

2019-04-25 14:09:22

AI人工智能欺骗

2023-05-09 17:31:01

2020-10-14 12:28:19

AI人工智能道德

2020-02-06 13:06:52

人工智能自行车啤酒

2024-04-03 10:55:18

人工智能AI开发算法

2022-01-06 22:29:35

人工智能机器人自动化

2018-09-27 15:52:20

人工智能人类AI

2018-06-14 09:52:03

点赞
收藏

51CTO技术栈公众号