写点什么

数百程序员专门教 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:156098

评论

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

openGauss社区成立ReleaseManagement SIG

龙蜥开发者说:做开源,兴趣是最好的源动力 | 第1期

OpenAnolis小助手

开源 创作 开发者故事 兴趣是动力

如何从头到脚彻底解决一个MySQL Bug?华为云数据库高级专家带你看

华为云数据库小助手

bug GaussDB 华为云数据库 GaussDB(for MySQL)

经验分享 | 搭建帮助中心的最强攻略

小炮

做毕设用不起GPU?亚马逊云SageMaker免费给你用

亚马逊云科技 (Amazon Web Services)

学习

一文读懂 MongoDB驱动程序 API

MongoDB中文社区

mongodb

基于深度学习的时间序列预测

云智慧AIOps社区

基于微信小程序的大学社团平台的可研方案

CC同学

如何从头到脚彻底解决一个MySQL Bug

华为云开发者联盟

MySQL 数据库 华为云 bug GaussDB(for MySQL)

OceanBase 社区版 运维管控平台 OCP 功能解读

OceanBase 数据库

OCP oceanbase OceanBase 开源 OceanBase 社区版

被冰封的 Bug:Fishhook Crash 修复纪实

RTE开发者社区

Dev for Dev fishhook

2 月月更获奖名单公布!获奖的小伙伴速速领取奖励啦!

InfoQ写作社区官方

2月月更 热门活动

好云推荐官丨飞天加速之星怎样选择云服务器ECS?

阿里云弹性计算

阿里云 采购季 好云推荐官

敏捷小游戏的思考-上篇

LigaAI

团队管理 敏捷实践

聊聊 kerberos 的 kinit 命令和 ccache 机制

明哥的IT随笔

数据安全 kerberos

什么是以特性为核心的持续交付|阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 研发效能 研发 DevOps实践指南

租房小程序

源字节1号

前端开发 后端开发 租房小程序

手把手教程|构建无服务器通用文本识别功能

亚马逊云科技 (Amazon Web Services)

架构

APICloud平台使用融云模块实现音视频通话实践经验总结分享

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 融云 跨端开发

基于WEB快速开发平台的轻量ERP

雯雯写代码

ERP 快速开发平台

租房小程序

源字节1号

前端开发 后端开发 租房小程序

关于知识库:你需要知道的一切

小炮

杜绝不良信息侵害未成年,皮皮APP发起语音社交行业自律书

联营汇聚

MongoDB案例分享:如何使用oplog恢复数据

MongoDB中文社区

mongodb

云计算及国内主流云厂商概述

穿过生命散发芬芳

3月月更

盲盒风潮过后,中国收藏玩具市场该何去何从?

易观分析

盲盒 潮玩

安全app之PHP代码审计

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 代码审计

你的密钥被我看见了 !逆向获取密钥

H

网络安全 逆向

fastposter v2.6.0 发布 电商海报生成器

物有本末

fastposter 海报生成器 电商海报

企业内PAAS建设的经验与教训

Crazy

中间件 PaaS 经验 云原生应用

VuePress 博客之 SEO 优化(一) sitemap 与搜索引擎收录

冴羽

Vue vuepress SEO 博客搭建 sitemap

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