⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 量子位(QbitAI) 「金磊 衡宇 发自 凹非寺」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

ChatGPT到底有多会修bug?

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

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

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

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

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

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

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

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

很会修bug的ChatGPT

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

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

以及与它同台竞技的AI选手,分别是CodeX、CoCoNut和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/

文章目录
  1. 1. 很会修bug的ChatGPT
  2. 2. 网友忧喜参半
  3. 3. 全球招外包训练ChatGPT写代码
  4. 4. One More Thing