QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

数百程序员专门教 AI 写代码、40 个 bug 能修复 31 个,“取代程序员”这次要成真了?

  • 2023-01-30
    北京
  • 本文字数:2947 字

    阅读完需:约 10 分钟

数百程序员专门教AI写代码、40个bug能修复31个,“取代程序员”这次要成真了?

AI 在回答问题和编写代码方面已经变得相当出色。在一项新的研究课题中,ChatGPT 尝试查找示例代码中的 bug 并给出修复建议。其表现远超现有程序,成功修复了 40 个 bug 中的 31 个。AI 开始显现出强大的能力,一些人又开始担心程序员会失业了,在软件开发和编程中的历史中,这又是一次“狼来了”的故事吗?

 

ChatGPT 现可查找并修复代码中的 bug

 

最近几周,AI 新贵 ChatGPT 迎来了一系列评测挑战。一项最新研究来自约翰内斯古腾堡大学和伦敦大学学院的计算机科学研究人员,他们发现 ChatGPT 能够从示例代码中发现错误并加以修复,且整体表现优于现有同类程序。

 

研究人员将这 40 段 bug 代码提交至四种不同的代码修复系统,分别为 ChatGPT、Codex、CoCoNut 和 Standard APR。在 ChatGPT 上,他们只需询问“这段代码有什么问题?”再将代码内容复制粘贴至聊天框内即可。在首轮测试中,ChatGPT 的表现跟其他程序相差不大。ChatGPT 解决了其中 19 个问题,Codex 解决了 21 个,CoCoNut 解决了 19 个,Standard APR 解决了 7 个。研究人员发现 ChatGPT 给出的答案与 Codex 最为相似,“这倒是正常,毕竟 ChatGPT 和 Codex 来自同一语言模型家族。”

 

但在收到首批答案之后,ChatGPT 的强大能力开始表现出来,随后势如破竹般解决了 31 个问题,轻松超越了其他只能提供静态答案的同类工具。

 

研究人员在报告中写道,“ChatGPT 的一大核心优势,在于我们会在对话中直接交互,更详细地描述需求。我们发现,对于大部分请求,ChatGPT 会要求提供关于问题和 bug 的更多细节信息。在向 ChatGPT 提供提示信息之后,其成功率得以进一步提高,修复了全部 40 个 bug 中的 31 个,成绩可谓一骑绝尘。”

 

他们还发现,ChatGPT 能够快速解决的某些问题,在其他程序上往往需要反复拉扯。“ChatGPT 在修复 bug 时似乎表现出较高的不一致性。但对最终用户来说,只要多执行几次应该就能得到有价值的结果。”

 

例如,当研究人员提交下图问题时,他们预期的答案是将 n^=n-1 替换为 n&=n-1。但 ChatGPT 给出的回应是“我无法判断程序中是否存在 bug,请提供关于预期行为的更多信息。”经过研究人员的提示,ChatGPT 在第三次回复中成功发现了问题。

 


但在我们尝试将同样的问题输入给 ChatGPT 时,它的回答却截然不同。ChatGPT 这次并未要求提供预期行为,而是在猜测我们想要达成怎样的效果。ChatGPT 一直在根据用户输入进行学习,它似乎已经理解了这段代码的用途——也许就是从当初研究人员们的提示中学习而来。我们的验证交流与研究报告不同,而且下一次再试可能也不相同。

 


目前,帮助软件工程师查找和修复 bug 的产业已经汇聚起 6 亿美元的体量。此次研究的成功,也许将重新定义这块可观的业务市场。Sentry 等流行平台已经成为软件团队的标配工具,通过发布问题报告和提供修复建议,大大增强开发者们编写高质量代码的能力。

 

OpenAI 召集数百程序员,教 AI 写代码

 

无论是 bug 修复软件开发商还是软件工程师自己,显然都注意到了这波堪称历史转折点的趋势。ChatGPT 的所有者 OpenAI 也在不断增强 AI 的编程能力,根据 Semafor 的一份报告,OpenAI 在过去 6 个月中加大招聘力度,已经在全球范围内悄悄聘请了上千名承包商来培训其 AI 学习软件工程。 

 

在这近 1000 名承包商中,约 60% 的人负责“数据标记”,即创建大量图像、音频剪辑和其他信息,用于训练 AI 工具或自动驾驶系统;另外 40% 则是程序员,主要负责为 OpenAI 的模型创建数据以学习软件工程任务。

 

此前,OpenAI 从 GitHub 上抓取代码来训练其模型,而且 OpenAI 于 2021 年 8 月推出的产品 Codex,已经可以实现将自然语言转换为工作代码,现在该公司的招聘热潮表明它正在进一步推进该技术,甚至有可能为一些程序员岗位创造出一个替代工具。 

 

Semafor 采访了南美的一位工程师,他表示自己参加了 OpenAI 的面试,该过程包含了五小时的无偿编码测试。这个测试有两个部分组成:对于一个给出的编码问题,OpenAI 要求他用书面英语解释他将如何处理这个问题,并给出一个具体解决方案;查找 AI 代码中的错误并提供有关如何修复错误的解释。这位工程师告诉 Semafor,他认为公司希望将人类的思维过程输入到其人工智能技术中。 

 

事实上,据 Insider 最近的报道,一些亚马逊员工已经开始使用 ChatGPT 来帮助编码。亚马逊内部的 Slack 消息显示,ChatGPT 已经被亚马逊用于许多不同的工作职能中,包括回答面试问题、编写软件代码和创建培训文档等。

 

一名员工在 Slack 上表示,亚马逊 Amazon Web Services(AWS)云部门已经成立了一个小型工作组,以更好地了解人工智能对其业务的影响。通过测试,该团队发现 ChatGPT 在回答 AWS 客户支持问题方面“做得非常好”。此外,人工智能工具在创建培训文档方面也“非常出色”,在企业战略问题方面“非常强大”。另外,这名员工还在 Slack 上称,ChatGPT 在为 AWS Aurora 数据库工程师编写故障排除指南和回答“困难的”支持问题方面也“非常出色”,它还能够“弄清客户的公司目标”。

 

现在还取代不了程序员,那将来呢?

 

随着数百名程序员齐心协力“教”模型如何编写基本代码,ChatGPT 背后的技术可能会朝着一种新的软件开发方向发展,就像重型设备对建筑行业一样,给软件行业带来变革意义。

 

而且自从 ChatGPT 能力开始显现后,“程序员要失业了”、“取代程序员”之类的声音已经不绝于耳。大多数人对此嗤之以鼻,毕竟过去几十年来,我们听够了类似的声音,云服务、无服务器计算、低代码和无代码......每个技术浪潮的到来,都有人喊出“程序员要被替代了!”

 


但还是有相当“激进”的声音,认为这次“替代程序员”并不是又一个“狼来了的故事”。

 

今年一月份的 ACM 通讯发表了一篇名为“编程的终结”的文章,预测在人工智能驱动的未来“编程将过时”。作者 Matt Welsh 是 Fixie.ai 的首席执行官兼联合创始人,他曾是哈佛大学计算机科学教授、谷歌工程总监、苹果工程主管。

 


我相信“编写程序”的传统想法正在走向灭绝,事实上,除了非常专业的应用程序之外,我们所知道的大多数软件将被经过训练而不是编程的人工智能系统所取代。在需要“简单”程序的情况下(毕竟,并非所有内容都需要在 GPU 集群上运行数千亿个参数的模型),这些程序本身将由 AI 生成,而不是手动编码。

 

未来的工程师只需敲击几下键盘,就能启动一个包含四亿亿亿参数的模型实例,这个模型已经对人类知识的全部范围(或是部分)进行了编码,并随时准备执行机器要求的任何任务。让机器做自己想做的事,大部分脑力工作将是提出正确的示例、正确的训练数据和正确的方法来评估训练过程。

 

我认为计算机科学作为一个领域正处于一个相当大的动荡之中,我们中很少有人真正做好了准备。

 

“我认为现在的争论主要围绕这些人工智能模型将在多大程度上彻底改变软件行业,”Welsh 在一个视频采访中说,“这更多是一个程度的问题,而不是它到底会不会发生……”

 

我们认为,现在 ChatGPT 取代程序员是不太可能的,但是也许下一代开发人员必须习惯人工智能,毕竟让 AI 帮助我们编程就在不远的未来。

 

参考链接:

https://www.pcmag.com/news/watch-out-software-engineers-chatgpt-is-now-finding-fixing-bugs-in-code

https://www.businessinsider.com/openai-chatgpt-contractors-train-ai-software-engineering-autonomous-vehicles-report-2023-1

https://cacm.acm.org/magazines/2023/1/267976-the-end-of-programming/fulltext

2023-01-30 15:155596

评论

发布
暂无评论
发现更多内容

特权账号安全管理的难点

尚思卓越

网络安全 数据安全 特权账号管理

特权账号管理系统PAM的优势特点

尚思卓越

网络安全 数据安全 PAM

高能有料 | 第二届OpenHarmony技术大会议程速递

OpenHarmony开发者

在线涂鸦画板软件哪款好?这7款涂鸦神器值得推荐!

彭宏豪95

效率工具 画图软件 在线白板 涂鸦 绘画软件

外贸网站建设攻略:如何建设一个高效的外贸网站

九凌网络

2023年度openEuler领先商业实践遴选征集工作正式启动

彭飞

为什么需要对特权账号进行管理

尚思卓越

运维 网络安全 信息安全

一座 “数智桥梁”,华为助力“天堑变通途”

脑极体

AI

语音识别技术在医疗健康领域的应用与挑战

来自四九城儿

第22期 | GPTSecurity周报

云起无垠

缺客户、缺钱、缺时间——实业经营的真挑战,中国企业分别突破

B Impact

云桌面是否可以运行3D软件

青椒云云电脑

桌面云 云桌面

软件测试/测试开发丨利用ChatGPT自动生成架构图

测试人

人工智能 软件测试 ChatGPT

陌生链接可能是诈骗网址,谁来保护我们的上网安全?

最新动态

低代码可视化逻辑编排工具

树上有只程序猿

低代码 可视化编排 JNPF

桌面云一体机什么品牌最好?

青椒云云电脑

桌面云 一体机 桌面云一体机

IoT与鸿蒙、低代码、生成式AI,引爆技术浪潮——华为云开发者日南京站成功举办

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 华为云开发者日

自动化混沌工程 ChaosMeta V0.6 版本发布

ChaosMeta

云原生 自动化 稳定性 混沌工程 攻防演练

HarmonyOS数据管理与应用数据持久化(一)

HarmonyOS开发者

陈奕迅全新专辑《CHIN UP!》上线华为音乐,五年后心血之作强势来袭

最新动态

2023-11-01:用go语言,沿街有一排连续的房屋。每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小

福大大架构师每日一题

福大大架构师每日一题

影视企业有哪些方式将视频文件快速海外跨国传输国内?

镭速

跨国文件传输

跨国文件传输为什么要用专业的大文件传输软件?

镭速

跨国文件传输

客服发送一条消息背后的技术和思考

得物技术

体验 IM 客服

语音识别技术在智能客服领域的应用与优化

来自四九城儿

Evolving with AR9582: MFC900M - A Legacy of Connectivity and Adaptation

wallyslilly

AR9582

Python JSON 使用指南:解析和转换数据

小万哥

Python 程序员 软件 后端 开发

语音识别技术在智能家居领域的创新应用与挑战

来自四九城儿

数百程序员专门教AI写代码、40个bug能修复31个,“取代程序员”这次要成真了?_AI&大模型_核子可乐_InfoQ精选文章