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

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

人工智能完全学会自己编程,可能说起来还有一种科幻感,但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/)

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

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

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

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

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

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

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

—— ——

本文作者:李林 
原文发布时间:2017-08-05
相关文章
|
6天前
|
存储 人工智能 搜索推荐
Shandu:开源AI研究黑科技!自动挖掘多层级信息,智能生成结构化报告
Shandu 是一款开源的 AI 研究自动化工具,结合 LangChain 和 LangGraph 技术,能够自动化地进行多层次信息挖掘和分析,生成结构化的研究报告,适用于学术研究、市场分析和技术探索等多种场景。
80 8
Shandu:开源AI研究黑科技!自动挖掘多层级信息,智能生成结构化报告
|
14天前
|
传感器 人工智能 机器人
【01】人形机器人研究试验-被有些网友痛骂“工业垃圾”“人工智障”上春晚的人形AI机器人-宇树科技机器人到底怎么样??-本系列优雅草卓伊凡亲自尝试下人形机器人的制造-从0开始学习并且制作机器人-可以跟随卓伊凡
【01】人形机器人研究试验-被有些网友痛骂“工业垃圾”“人工智障”上春晚的人形AI机器人-宇树科技机器人到底怎么样??-本系列优雅草卓伊凡亲自尝试下人形机器人的制造-从0开始学习并且制作机器人-可以跟随卓伊凡
47 1
【01】人形机器人研究试验-被有些网友痛骂“工业垃圾”“人工智障”上春晚的人形AI机器人-宇树科技机器人到底怎么样??-本系列优雅草卓伊凡亲自尝试下人形机器人的制造-从0开始学习并且制作机器人-可以跟随卓伊凡
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
通古大模型由华南理工大学开发,专注于古籍文言文处理,具备强大的古文句读、文白翻译和诗词创作功能。
101 11
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
|
17天前
|
机器学习/深度学习 人工智能 搜索推荐
BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半
BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。
36 2
BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半
|
25天前
|
人工智能 自然语言处理 数据可视化
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表
Data Formulator 是微软研究院推出的开源 AI 数据可视化工具,结合图形化界面和自然语言输入,帮助用户快速创建复杂的可视化图表。
234 10
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表
|
1月前
|
人工智能 自然语言处理 API
OpenDeepResearcher:开源 AI 研究工具,自动完成搜索、评估、提取和生成报告
OpenDeepResearcher 是一款开源 AI 研究工具,支持异步处理、去重功能和 LLM 驱动的决策,帮助用户高效完成复杂的信息查询和分析任务。
189 18
OpenDeepResearcher:开源 AI 研究工具,自动完成搜索、评估、提取和生成报告
|
4天前
|
人工智能 自然语言处理 算法
AI做数学学会动脑子! UCL等发现LLM程序性知识,推理绝不是背答案
大型语言模型(LLM)在数学推理中的表现一直备受争议。伦敦大学学院等机构的研究发现,LLM可能通过综合程序性知识而非简单检索来解决数学问题。研究分析了7B和35B参数模型在三个简单数学任务中的数据依赖,表明模型更关注解决问题的过程和方法,而非答案本身。这一发现为改进AI系统提供了新思路,但也指出LLM在复杂问题处理上仍存在局限。论文地址:https://arxiv.org/abs/2411.12580
17 2
|
6天前
|
缓存 人工智能 自然语言处理
微软发明全新LLM语言,AI智能体交互效率翻倍!
微软发布DroidSpeak技术,优化大型语言模型(LLM)间的通信,显著提升AI智能体交互效率。该技术通过嵌入缓存和键值缓存重用,减少预填充延迟,降低高达50%的延迟,同时保持高质量生成。DroidSpeak适用于多种AI任务,提高协作效率,但在资源受限环境和处理模型差异性方面仍面临挑战。
26 3
|
12天前
|
人工智能 安全 数据中心
D1net阅闻 | 微软CEO对话特朗普和马斯克:豪掷800亿美元建AI数据中心
D1net阅闻 | 微软CEO对话特朗普和马斯克:豪掷800亿美元建AI数据中心
|
9天前
|
人工智能 编解码
For Her:阿里云携手国际奥委会推出AI修复影片《永不失色的她》
For Her:阿里云携手国际奥委会推出AI修复影片《永不失色的她》

热门文章

最新文章