让AI自动修复程序中的bug:微软亚洲研究院新研究 | 附论文

简介:
本文来自AI新媒体量子位(QbitAI)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

人工智能完全学会自己编程,可能说起来还有一种科幻感,但AI帮程序员找bug这件事,已经达到了不错的水平。

北京大学、微软亚洲研究院和中国电子科技大学就一起尝试着让AI找bug。微软亚洲研究院的Lily Sun在微软官方博客上介绍称,他们开发的精确状态系统(Accurate Condition System, ACS),能在人类不加干预的情况下自动修复软件系统中的Bug。

他们关于ACS的论文Precise Condition Synthesis for Program Repair发表在世界软件工程大会ICSE 2017上。

ACS会自动修复什么样的bug呢?Lily Sun举了个例子:

int lcm=Math.abs(mulAndCheck(a/gdc(a,b), b));
 return lcm;

这是Apache Math中的一段代码,用来计算两个数的最小公倍数,并且引入了Math.abs来确保返回的值是正数。但是,这个程序有缺陷,有时候还是会返回负值。

我们可以创建一个测试来找到其中的错误。测试的输入是a=Integer.MIN_VALUE、b=1,预期的输出是throw ArithmeticException。

把这个程序和相应的测试输入到ACS中,ACS会自动生成第2、3行的路径,修复程序缺陷:

int lcm=Math.abs(mulAndCheck(a/gdc(a,b), b));
 + if (lcm == Integer.MIN_VALUE) {
 +  throw new ArithmeticException();
 + }
 return lcm;

让算法自己改bug这件事,从2009年开始就有研究,弗吉尼亚大学计算机系的Westley Weimer、新墨西哥大学的Stephanie Forrest和卡耐基梅隆大学的Claire Le Goues,就一起开发了Genprog(http://dijkstra.cs.virginia.edu/genprog/)

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

而ACS,在前人研究的基础上大幅提升了准确率。在Defects4J基准上的测试结果显示,ACS生成的23个补丁中,有18个是正确的,准确率近80%。

ACS准确率的提升主要得益于有更多的信息来源,特别是网上的大量代码。与以往的方法相比,ACS有以下三种新的信息来源:

一是用局部性原则信息对补丁中的变量进行排序;

二是用自然语言分析技术来分析Javadoc,然后用Javadoc中的信息来过滤不正确的补丁;

三是通过对网上的开源程序进行统计分析,发现对变量进行操作的条件概率,进而生成正确的补丁。

论文地址:
https://www.microsoft.com/en-us/research/publication/precise-condition-synthesis-program-repair/

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 论文部分作者:微软亚洲研究院Shi Han(左一)、微软亚洲研究院Lily Sun(中)、北京大学熊英飞(右)

—— ——

本文作者:李林 
原文发布时间:2017-08-05
相关文章
|
1月前
|
机器学习/深度学习 编解码 人工智能
麻省理工AI新研究可将马赛克变视频
【2月更文挑战第30天】麻省理工学院等机构的研究团队推出AI新技术FeatUp,可将低分辨率图像提升为高清视频,该技术在2024年ICLR会议上引起关注。FeatUp基于深度特征提取,通过多视角一致性损失恢复空间信息,提高视频清晰度。模型通用性强,适用于多种任务和现有应用。实验显示,它在图像超分辨率和端到端学习模型性能提升上超越其他方法。然而,尚存在对某些内容处理不完善和计算资源需求高的局限性。
53 2
麻省理工AI新研究可将马赛克变视频
|
1月前
|
机器学习/深度学习 人工智能 算法
AI在椭圆曲线研究中发现“鸟群”现象
【2月更文挑战第24天】AI在椭圆曲线研究中发现“鸟群”现象
17 2
AI在椭圆曲线研究中发现“鸟群”现象
|
15小时前
|
人工智能 API 决策智能
【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序
【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序
|
26天前
|
机器学习/深度学习 人工智能 自然语言处理
AI案例研究与项目实战
探索AI实践:从智能客服到图像识别、推荐系统、语音助手,再到智能仓储和金融风控,这些案例展示AI如何解决实际问题。通过NLP、深度学习、机器学习等技术,企业如阿里巴巴、京东等改善客户服务,医疗、安防领域利用图像识别创新,而个性化推荐提升用户体验。AI不仅改变交互方式,还优化仓储物流、保障金融安全,实操项目助力技术应用能力提升。
35 3
|
29天前
|
机器学习/深度学习 人工智能 监控
面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心
面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心
面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心
|
1月前
|
人工智能 异构计算 Python
字节跳动最新研究AI项目:一张图片组合一组动作就可以生成毫无违和感的视频!
字节跳动最新研究AI项目:一张图片组合一组动作就可以生成毫无违和感的视频!
|
1月前
|
机器学习/深度学习 人工智能
看看OpenAI(ChatGPT)怎么回答马斯克呼吁停止ai研究的?
看看OpenAI(ChatGPT)怎么回答马斯克呼吁停止ai研究的?
20 1
|
1月前
|
人工智能 IDE 安全
微软AI程序员登场
【2月更文挑战第27天】微软AI程序员登场
50 2
微软AI程序员登场
|
1月前
|
人工智能 机器人 Go
人类发明及研究AI机器人是在作死吗?
生化武器、X战警,当时看电影时只是感觉电影很精彩,佩服导演的脑洞大,制作团队技术精湛。但自从 alpha go、chatGPT 越来越多的AI 场景被大众认知,越来越相信总有一天这个美丽的蓝色星球未来的主人会变成机器人,人类将不复存在。
41 3
|
1月前
|
机器学习/深度学习 人工智能
ChatGPT检测器——以前所未有的准确性捕捉AI生成的论文
【2月更文挑战第25天】ChatGPT检测器——以前所未有的准确性捕捉AI生成的论文
24 7
ChatGPT检测器——以前所未有的准确性捕捉AI生成的论文