当前位置: 首页 > 科技观察

AI删库,程序员遭罪?

时间:2023-03-20 11:32:49 科技观察

又一次清码悲剧发生了,不过这次的罪魁祸首是AI。  最近,美国***评论网站Yelp的工程师训练的神经网络出了问题。他们训练了一个神经网络来消灭bug,万万没想到这个网络竟然把一切都删掉了,彻底实现了从根源上“无bug”……有点厉害。  Yelp团队在APP内向所有近期可能有不好体验的用户致歉。该团队还表示他们将不得不回滚(Rollback),但随后转移了话题,他们表示好的一面是,这意味着APP中100%没有错误。  好吧,我没跑,这锅还是工程师的。  神经网络算法的运行,让人想起郭德纲的一句相声笑话,“我心地善良,不看穷人,看到的穷人我都赶走。”接到工程师的任务命令后,可能是AI发现debugs太省心了,直接点allclear去计算。  这是国内互联网公司的一次大工程事故,90%的人都会说杀了一个工程师祭天。虽然Yelp的自嘲画龙点睛相当轻松,但人家都在嘲笑它,谁知道代码清零后,工程师是傻眼了还是心口吐血……毕竟还得回滚。  回滚到底是什么意思?它是指程序或数据处理错误,将程序或数据恢复到上次正确状态的行为。回滚的工作量有多大?回滚对于程序员来说意味着一个非常严重的错误。微博网友@互联网八卦民工评论说,Yelp训练了自己的人工智能神经网络,在真实环境中删除应用程序中的错误,结果是人工智能删除了所有内容。现在,这不是简单的回滚。  网友们比较好奇Yelp的工程师到底培养了什么样的网络?什么样的样本用于训练?损失函数是怎么设计的?有人猜测是不是代码没有bug,损失函数一直为零,BP和optimizer也没用,所以触发了异常,把整段代码当成bug?  代码中没有错误似乎不太可能。翻看Yelp的版本更新历史,你会发现这简直就是一部“调试史诗”。大家可以感受一下:  本来想要AI帮忙调试,现在工具成了障碍。不知道是调试工具本身的黑盒问题,还是使用它的人没有找到合适的“窍门”。至于Yelp工程事故报告,暂无进一步信息披露,但使用神经网络算法调试应该存在风险,部署需谨慎。  不过,一款能为工程师省时省力的调试工具,显然是大家所期待的。AITechnologyBase之前写过一篇文章《@程序员,终于可以放心写 bug 了!Facebook 的 debug 神器你值得拥有》,提到去年9月,Facebook推出了一款新的基于AI技术的代码调试工具SapFix,可以针对特定的bug自动生成修复,提交给工程师,审核通过,部署到生产。与一年前大规模投入使用的智能自动化软件测试工具Sapienz相比,SapFix可以脱离Sapienz运行,主要用于修复Sapienz在生产前发现的程序bug。  Facebook从发现bug到修复bug有一个完整的流程:首先,Sapienz和Facebook的静态分析工具Infer会帮助定位代码中需要修补的点;一旦Sapienz和Infer查明了与crash相关的具体代码部分之后,这些信息就会传递给SapFix;最后,SapFix会参考几种不同的策略来自动生成补丁。  据Facebook称,Sapienz报告的错误中约有四分之三需要开发人员修复。自Facebook开始测试SapFix以来,该工具已成功生成补丁,这些补丁被人工审核人员接受并部署到生产环境中。不过目前,SapFix总体上还在开发中。  Facebook还在试用阶段。Yelp的工程师这次似乎对自己的调试工具太自信了。一键清空数据库再爽不过了。不知道这次他们有没有感受到深度学习的强大。.