人工智能机器人ChatGPT最近几周,它接受了多项任务的测试,而最新的挑战来自约翰内斯·古腾堡大学和伦敦大学学院的计算机科学研究人员找到(在新窗口打开)ChatGPT可以通过样例代码剔除错误,并比现有的程序更好地进行修复。
研究人员将40段有bug的代码交给了四种不同的代码修复系统:ChatGPT、Codex、CoCoNut和Standard april。本质上,他们问ChatGPT:“这段代码有什么问题?”然后复制并粘贴到聊天功能中。
在第一次测试中,ChatGPT的表现与其他系统差不多。ChatGPT解决了19个问题,Codex解决了21个,CoCoNut解决了19个,标准APR方法解决了7个。研究人员发现它的答案与Codex最相似,这并不奇怪,因为ChatGPT和Codex来自同一个语言模型家族。
然而,在收到初始答案后与ChatGPT聊天的能力产生了差异,最终导致ChatGPT解决了31个问题,并轻松胜过其他提供更多静态答案的测试。
研究人员在报告中说:“ChatGPT的一个强大优势是,我们可以在对话中与系统交互,以更详细地指定请求。”“我们发现,对于大多数请求,ChatGPT会询问有关问题和漏洞的更多信息。通过向ChatGPT提供这样的提示,它的成功率可以进一步提高,可以修复40个漏洞中的31个,超过最先进的技术。”
他们发现ChatGPT能够快速解决一些问题,而另一些则需要更多的来回处理。该研究称:“ChatGPT在修复bug时似乎有相对较高的方差。”“然而,对于最终用户来说,这意味着多次执行请求会很有帮助。”
例如,当研究人员提出下图所示的问题时,他们期望ChatGPT会建议更换n ^ = n - 1与n = n - 1,但ChatGPT说的第一件事是,“如果没有更多关于预期行为的信息,我无法判断程序是否有错误。”在ChatGPT的第三次回复中,在研究人员的更多提示下,它发现了这个问题。
然而,当PCMag在ChatGPT中输入相同的问题时,得到的答案是不同的。它不需要告诉它预期的行为是什么,而是猜测它是什么。ChatGPT总是在用户输入的基础上进行学习,而且它似乎是从做这项研究的研究人员那里了解到这段代码的目的。我们进行的交流与研究人员的不同,下一次可能也会不同。
这项研究的成功有可能重新定义现有的,6亿美元产业(在新窗口打开)致力于帮助软件工程师发现并修复bug。流行的平台包括哨兵(在新窗口打开)已经成为软件团队的标准工具,通过发布问题报告和建议修复,极大地加快了他们创建工作代码的能力。
就像谷歌发布了一个“红色代码(在新窗口打开)对于ChatGPT令人印象深刻的搜索结果,老师们很惊讶关闭学生访问为了防止作弊。ChatGPT最近通过了一个工商管理硕士考试是沃顿商学院的一位教授发布的,尽管只是勉强。
开发bug修复软件的公司和软件工程师们都注意到了这一点。然而,科技公司在目前形式的Sentry这样的平台上采用ChatGPT的一个明显障碍是,它是一个公共数据库(公司最不希望其工程师发送梦寐以求的知识产权的地方)。
ChatGPT的下一步行动是推出付费版本,据报道每月42元.
编者注:这篇文章最初说研究人员来自康奈尔大学。他们的论文发表在arXiv.org上,该网站由康奈尔大学图书馆维护,但他们来自约翰内斯·古登堡大学和伦敦大学学院。