AI向程序员老司机学习:从眼神的变化中寻找bug

日本NAIST大学的研究者通过模仿学习让AI从程序员的眼部活动中学习找Bug、打补丁及写注释。不同于传统的文本特征学习方法,此方法使AI能够模仿程序员的视觉注意力策略,从而更高效地理解及维护程序。
晓查 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

用AI找bug这件事,有人尝试过,结果翻车了。美国网站Yelp的程序员们试图让AI帮自己找bug,岂料AI却删库跑路,最后只能用回滚的办法挽回损失。

640?wx_fmt=png

当然,这只是程序员开的一个玩笑。但是让AI找bug一直是程序员们美好的愿望。

育碧和Mozilla曾开发过一个AI,能从过去代码库的错误中学习找bug,并在今后提交新代码时标出可能的bug。

然而这些在程序员老司机面前都是渣渣,大神们往往一个眼神,就能直接定位到bug所在的位置。如果让AI直接向大神学习,岂不更快?

日本奈良先端科学技术大学院大学(名字有些长,下面简称NAIST)的研究人员真的做到了,他们把眼球追踪的研究用在软件开发领域,构建了一个基于模仿学习(IL)的框架,让智能体从程序员的眼部活动中学习找bug、打补丁、写注释。

以往的AI找bug方法是从文本特征中学习。而程序员独有的注意力策略可以节省程序理解和维护的时间。大神们会将注意力集中在程序的重要信息上,仅浏览源代码中的关键字。

640?wx_fmt=png

NAIST的AI就是在软件开发中模仿程序员的视觉注意力。结合程序员眼睛注视的数据,智能体可以获得到过去难以学习到的注意力策略。

由于程序代码是文本序列,研究人员用自然语言处理的方法来设计智能体。这个智能体包括两个深度神经网络:

第一部分是一个RNN,用来对代码片段的全局上下文进行编码。第二部分是指定任务解码器,用上一步的编码数据来预测下一步的token。

代码片段和编程环境被当做一系列token或关键字,智能体被限制专注于模仿程序员视觉注意力的特定子标记,作为输入当前状态并输出所需的操作。

640?wx_fmt=png

这种方法还需要大量的演示数据。研究人员建议使用生成对抗网络,让AI学习编程大神们的示范操作,而不仅仅是模仿。

总的来说,这种方法利用了模仿学习,让智能体从人类示范中收集相关复杂任务的知识。智能体由行为克隆(behavioral cloning)训练的模型表示。代码片段和编程环境被认为是一系列token或关键字,智能体被限制去关注模仿程序员注意到的特定代码,作为当前状态的输入,并输出所需的操作。

仅仅依靠眼部数据还不够,NAIST团队还建议用脑电图(EEG)读数视觉注意力的补充数据。如果这个模型在生产环境中使用,可以提高AI智能体在软件开发任务中的性能。

在论文的最后,研究人员说,即使没有语言描述,婴儿也能从父母的演示中学到了很多东西。他们或许是从婴儿行为获得的启发。看来AI也逃脱不了“复读机”的命运。

论文链接:https://arxiv.org/abs/1903.06320


订阅AI内参,获取AI行业资讯

640?wx_fmt=jpeg

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;


欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

640?wx_fmt=jpeg

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点这里吧 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值