ChatGPT拿下AI修bug顶级成绩!31个Bug修复率领先
文|金磊 衡宇
源|量子位
ChatGPT到底有多会修bug?这事终于有人正儿八经地搞研究了——来自德国、英国的研究人员,专门搭了个“擂台”来检验ChatGPT的这项本领。
很会修bug的ChatGPT
虽然ChatGPT并非是为了专门修改bug而生,但自打它问世以来,不少网友们都发现它是具备这项能力的。因此研究人员为了摸清ChatGPT到底能修改bug到什么程度,便引入了标准的错误修复基准集QuixBugs来进行评估。以及与它同台竞技的AI选手,分别是CodeX、CoCoNut和Standard APR。研究人员从QuixBugs中挑了40个问题,分别让它们来修复bug。让ChatGPT来修bug的方法,就是在对话框里向它提问:
这个代码有什么错误吗?
在第一轮较量过后,结果如下:
如果没有更多关于预期行为和导致问题的输入信息,我无法判断程序是否存在错误。
于是在给予它更多信息之后,ChatGPT便答对了这个问题。以此类推,在对第一轮没答对的问题进行更多信息提示之后,ChatGPT的修bug能力有了大幅提高:
网友忧喜参半
对于这样的实验结果,网友们对ChatGPT修bug拿下SOTA这事产生的态度却不太一样。有网友认为这事不应该让程序员感到危机,而是会让他们觉得开心才对。言外之意,便是程序员们有了这么好用的工具,干活儿就会变得事半功倍。
工作变得简单,不也就意味着需要的人力更少了吗?
即使AI能把开发时间缩短一个数量级,也只是意味着程序员将更快处理下一个工作。
全球招外包训练ChatGPT写代码
在此之前,OpenAI就表示过ChatGPT的重要用途之一是帮助程序员检查代码。换言之,它被定位可用的辅助工具。相比“ChatGPT带来威胁”的看法,等ChatGPT能力彻底进化,程序员都不用再怕写bug了。OpenAI布局的棋盘上,可不只有改bug偷塔程序员岗位这一件事。为了让它更大更强,OpenAI被曝在拉美和东欧等地区,提供了1000个外包岗位。外包员工的主要工作是标注数据,以及训练ChatGPT写代码这1000人中,40%是程序员,他们为OpenAI的模型创建数据,用来学习软件工程任务。一直以来,OpenAI的训练数据是从GitHub上抓取的。现在外包程序员们新手搓的数据集,不仅包括代码行,还包括代码行背后的人类思考逻辑步骤。有位南美的软件开发人员爆料,他为OpenAI完成了五小时的无偿编码测试。整个过程中,他的任务分为两部分。
用书面英语解释如何处理一个编码问题;
提供解决方案。
如果发现bug,OpenAI会向他详细询问bug的具体情况,并请教如何修正。程序员需要展示思考问题的每个步骤,他据此猜测OpenAI很可能想为ChatGPT提供非常具体的训练数据。特斯拉前AI主管Andrej Karpathy在推特上调侃:
最新的热门编程语言是英语。
从Dota2赛场上碾压人类,到GPT-3、DALL-E2、ChatGPT的闪耀表现,它带来的新产品总是伴随着“快要让xxx失业了”的议论声。但无论如何,商业却一直对它青睐有加。就目前而言,OpenAI的主要商业模式是API费用、token费用和软件许可。OpenAI近期还发布了ChatGPT的付费版ChatGPT Pro,每月费用42美元(约合285元人民币)。
One More Thing
在第一轮实验中,ChatGPT并没有解决QuixBugs数据集的bitcount问题。但若是你现在再重头问一次这个问题,就会发现ChatGPT可以“一遍过”:
后台回复关键词【入群】 加入卖萌屋NLP、CV、搜推广与求职讨论群
[1]https://arxiv.org/abs/2301.08653
[2]https://www.pcmag.com/news/watch-out-software-engineers-chatgpt-is-now-finding-fixing-bugs-in-code
[3]https://www.reddit.com/r/technology/comments/10oaw6n/watch_out_software_engineers_chatgpt_is_now/
[4]https://en.wi.bwl.uni-mainz.de/dominik-sobania/