ChatGPT 到底有多会修 bug?

这事终于有人正儿八经地搞研究了 ——

来自德国、英国的研究人员,专门搭了个“擂台”来检验 ChatGPT 的这项本领。

除了 ChatGPT 之外,研究人员还找来了其它三位修 bug 的“AI 猛将”,分别让它们修复 40 个错误代码。

结果真是不比不知道,一比吓一跳。

ChatGPT 准确修复了其中 31 个 bug,遥遥领先第二名(21 个),直接拿下“AI 修 bug 界”的 SOTA 成绩!

于是乎,这项研究引来了众多网友的围观和讨论,Reddit 上发布此帖的标题更是用上了“小心”“注意”这样的字眼:

但事实上,这真的会让程序员“危”吗?

我们不妨先来看下这项研究。

很会修 bug 的 ChatGPT

虽然 ChatGPT 并非是为了专门修改 bug 而生,但自打它问世以来,不少网友们都发现它是具备这项能力的。

因此研究人员为了摸清 ChatGPT 到底能修改 bug 到什么程度,便引入了标准的错误修复基准集 QuixBugs 来进行评估。

以及与它同台竞技的 AI 选手,分别是 CodeXCoCoNut 和 Standard APR

研究人员从 QuixBugs 中挑了 40 个问题,分别让它们来修复 bug。

让 ChatGPT 来修 bug 的方法,就是在对话框里向它提问:

这个代码有什么错误吗?

在第一轮较量过后,结果如下:

从第一轮 battle 结果来看,ChatGPT 修复了 19 个,CodeX 修复了 21 个,CoCoNut 修复了 19 个,Standard APR 则是 7 个。

而且研究人员还发现,ChatGPT 的答案与 CodeX 最为相似;这是因为它俩是来自同一个语言模型家族。

这时候就会有小伙伴要问了,“ChatGPT 不是还没有 CodeX 厉害吗”。

别急,不要忘了,ChatGPT 的一个特点就是越问越“上道”。

例如在这个基准集中,有一个叫 bitcount 的问题,ChatGPT 在刚才第一轮修复过程中是给了错误的答案:

原本 ChatGPT 应该将第 7 行的 n ^ = n - 1 改为 n & = n - 1。

但在第一轮中它的回答是:

如果没有更多关于预期行为和导致问题的输入信息,我无法判断程序是否存在错误。

于是在给予它更多信息之后,ChatGPT 便答对了这个问题。

以此类推,在对第一轮没答对的问题进行更多信息提示之后,ChatGPT 的修 bug 能力有了大幅提高:

最终,ChatGPT 在 QuixBugs 的 40 个问题里答对了 31 个。

网友忧喜参半

对于这样的实验结果,网友们对 ChatGPT 修 bug 拿下 SOTA 这事产生的态度却不太一样。

有网友认为这事不应该让程序员感到危机,而是会让他们觉得开心才对。

言外之意,便是程序员们有了这么好用的工具,干活儿就会变得事半功倍。

不过也有人对此给出了不一样的看法:

工作变得简单,不也就意味着需要的人力更少了吗?

但还网友觉得,活儿是干不完的:

即使 AI 能把开发时间缩短一个数量级,也只是意味着程序员将更快处理下一个工作。

整体来看,ChatGPT 很会修 bug,并不会给程序员带来什么致命伤害。

但若是把目光放到 OpenAI 其他的行动中呢?

全球招外包训练 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 在推特上调侃:

最新的热门编程语言是英语。

不过话说回来,ChatGPT 修 bug 能力强是好事,要真能搞进化到可以完成代码里死记硬背的部分,也是好事。

毕竟 OpenAI 成立时对外宣称的宗旨,就是希望“确保通用人工智能可以造福全人类”。

虽然乍一看它这些年做的事,有点像在致力于用一部分人的努力,让更多人失业

从 Dota2 赛场上碾压人类,到 GPT-3、DALL-E2、ChatGPT 的闪耀表现,它带来的新产品总是伴随着“快要让 xxx 失业了”的议论声。

但无论如何,商业却一直对它青睐有加。

就目前而言,OpenAI 的主要商业模式是 API 费用、token 费用和软件许可。

OpenAI 近期还发布了 ChatGPT 的付费版 ChatGPT Pro,每月费用 42 美元(约合 285 元人民币)。

虽然机器人对话初创公司如雨后春笋般冒出,但诸多迹象表明市场对 OpenAI 的持续看好。

微软刚刚宣布将向 OpenAI 加码投资数十亿美元,并将 OpenAI 的模型融入微软必应等消费级和企业级产品中。

根据知情人士透露,此次追加投资数额约为 100 亿美元。

与此同时,WSJ 披露的消息显示,1 月初,亿万富翁 Peter Thiel 创立的风投基金 Founders Fund 正在就投资 OpenAI 进行谈判。

据悉,融资金额将至少达 3 亿美元

One More Thing

在第一轮实验中,ChatGPT 并没有解决 QuixBugs 数据集的 bitcount 问题。

但若是你现在再重头问一次这个问题,就会发现 ChatGPT 可以“一遍过”:

那么这是否意味着 ChatGPT 已经从这次研究过程中学会求解了呢?

参考链接:

  • [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/

本文来自微信公众号:量子位 (ID:QbitAI),作者:金磊 衡宇