加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

灭霸来了!微软发布BugLab 不用标注,GAN掉Bug

发布时间:2022-01-07 15:57:49 所属栏目:Windows 来源:互联网
导读:程序员的死对头就是各种 bug!最近微软在 NeurIPS 2021 上带来了一个好消息,研究人员设计了一个类似 GAN 的网络,通过选择器和检测器来互相写和改 bug,而且还不需要标注数据! 常言道,「一杯茶,一包烟,一个 bug 改一天」。 写代码是软件工程师们每天的
程序员的死对头就是各种 bug!最近微软在 NeurIPS 2021 上带来了一个好消息,研究人员设计了一个类似 GAN 的网络,通过选择器和检测器来互相写和改 bug,而且还不需要标注数据!
 
常言道,「一杯茶,一包烟,一个 bug 改一天」。
 
写代码是软件工程师们每天的工作,但当你辛辛苦苦写了一大堆代码,却发现无法运行的时候,内心一定是崩溃的。
 
找 bug 不仅费时费力,最关键的是还经常找不着,并且有时候改了一个 bug 又会引入更多 bug,子子孙孙无穷尽也。
 
简直就是找 bug 找到吐血。
 
随着 AI 技术的发展,各大公司开发的代码助手如 GitHub Copilot 等也能帮你少写一些有 bug 的代码。
 
但这还远远不够!
 
深度学习要是能帮我把代码里的 bug 也给修了,我上班只负责摸鱼,岂不是美滋滋!
 
微软在 NeurIPS 2021 上还真发了一篇这样的论文,其中提出了一个新的深度学习模型 BugLab,并通过自监督的学习方法,可以在不借助任何标注数据的情况下检测和修复代码中的 bug,堪称程序员的救世主!
 
 
 
修 bug 难在哪?
 
所谓的 bug,就是代码的实际运行和自己的预期不符。
 
该运行的没运行,该输出a,结果却输出个b,这种代码故意找茬的行为都属于 bug。
 
所以想要找到并修复代码中的 bug,不仅需要对代码的结构进行推理,还需要理解软件开发者在代码注释、变量名称等方面留下的模糊的自然语言提示。
 
例如一段程序的意图是,如果名字的长度超过了 22 个字符,那就只截取前 22 个。但原始代码中错误地把大于号写成了小于号,导致条件判断错误,程序运行结果和预期不符。
 
 
 
这种错误看起来很简单,但往往盯着看代码的时候却很难发现,属于一改改一天的那种。
 
并且每个程序员有自己的编程风格,比如不同的命名、缩进、判断以及重构的方式,想让代码来给自己找 bug,一个字,难!
 
对于微软来说,好在有 GitHub 代码库可以用来训练模型。但问题来了,GitHub 上带 bug 的代码有那么多吗?有 bug 谁还 commit 啊?就算能找到代码,也没人来标注数据啊!
 
微软提出的 BugLab 使用了两个相互竞争的模型,通过玩躲猫猫(hide and seek)游戏来学习,主要的灵感来源就是生成对抗网络(GAN)。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读