NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

AI 编程成本只有人类程序员的万分之一,速度却快了 10000 倍,再雇人类来写代码就离了大谱?

  • 2023-02-02
    北京
  • 本文字数:2672 字

    阅读完需:约 9 分钟

AI编程成本只有人类程序员的万分之一,速度却快了10000倍,再雇人类来写代码就离了大谱?

人工智能将变得非常非常擅长编写代码,其成本只有人类的几千分之一乃至几万分之一,这对软件行业意味着什么?


本文是我最近的 CACM 文章《编程的终结》的姊妹篇。在那篇文章中我讨论了当编写代码这项工作被训练出来的 AI 取代时会发生什么事情。在这一篇文章中,我要研究的是 AI 在不久之后变得非常擅长为我们编写软件的话,会给我们带来哪些影响。


很明显,用于生成、调试和重构代码的 AI 在未来几年只会变得非常出色。我不认为这个结论有什么争议,但为了支持这个论点我提两点:(1)CoPilot 在给定适当的上下文和提示的情况下生成的新代码已经非常棒了;(2)让 CoPilot 的性能提升一个数量级之 u 需要更多数据和更大的模型即可。


在频繁使用 CoPilot 之前,我认为它只会鹦鹉学舌地给出相当于本科家庭作业水平的玩具解决方案。结果我发现,在实践中 CoPilot 能更频繁地读懂我的想法,出乎意料。比如说我要写一个单元测试,或写几行代码来处理一些数据结构或其他什么东西——CoPilot 就能神奇地写出我准备打出来的代码,太惊人了。

那么,当 AI 的代码生成能力比现在好 100 倍时会发生什么呢?

在 0.001 秒内 把 PRD 变成代码


我听到有很多人怀疑 AI 编写代码、审查代码或修复错误的能力——他们觉得这是很难解决的问题,而且 AI 工具目前表现不佳,以后也不会有什么改善。我认为这是一个典型的例子,说明人类真的很不擅长依据最近的数据点来判断问题。


我的猜测是,在不久的将来——也许是 3 年——我们将有可能指示 AI 获取软件的高级自然语言规范——比如说 PRD,或错误报告,或者一个 Slack 帖子——并从中生成“非常棒”的代码。“非常棒”是什么意思?首先我们来认真思考一下典型的人类开发团队生成的代码质量。我曾在谷歌和苹果这样的地方工作过,其实那里的代码质量并不总是最好的。即使在谷歌,代码审查是一种信仰,风格指南是福音书,每个团队的代码都接受审查,有时甚至被公司其他工程师找出漏洞——我也得承认,这样的地方也会有很多糟糕的代码。


我们需要摒弃这样一种想法,就是认为人类软件团队只要投入足够的时间和精力,就可以在某种程度上编写出正确且高性能的代码。其实在任何重要的软件项目中都不是这样的。在现实世界中,我们容忍了人类生产的软件中的大量草率和错误,那么为什么要对人工智能生成的代码设定不一样的期望呢?


到 2026 年,我们是否能完全信任 AI,可以让它在没有人类的任何输入的情况下喷出代码呢?可能暂时不会,但还好我们可以让人类审查人工智能生成的代码,并对其进行迭代(在人工智能的帮助下)。即使 AI 生成的代码比人类编写的代码更难审查,这也比依赖手速较慢的人类来编写代码有着更好的成本效益和时间效率。


人工智能比人类便宜得多。


人工智能驱动的“软件团队”需要多少钱?


我们可以使用 GPT-3 davinci 模型的当前定价——0.02 美元 /1K token——作为一个保守的基准(这个价格肯定会随着时间的推移而下降)。假设一名典型的人类软件工程师每天输出大约 100 行 cheked in 的新代码或更改代码。(我没有计算所有从未落在主分支上的废弃或实验代码。)是的,这个数字完全是虚构的,但即使我偏离了 10 倍,甚至 100 倍,我的观点也依旧成立。一个典型的源代码行大约有 10 个 token,因此相当于每天大约 1,000 个 token。


(为了进一步说明这一点,我从我们的代码库中提取了一个典型的源文件,该文件由几百行非常紧凑的 Python 代码组成,并使用 OpenAI 的 Codex tokenizer 对其做了 token 分析,结果平均每行产生 9.55 个 token。所以我猜一行 10 个 token 应该是个合理的估计。)


GPT-3 按输入和输出 token 计费,所以为了论证,我们假设未来 CoPilot 支持的软件创建代理的输入上下文将是最终代码输出大小的 5 倍。这相当于 5,000 个输入 token 加上上述 1,000 个输出 token,总共 6,000 个。换句话说,使用 GPT-3,以其当前的价格,生成与人类工程师一天相同数量的代码的成本高达 0.12 美元。


一名人类软件工程师每天要花多少钱?好吧,如果他们喝的健怡可乐和我一样多,那就已经超过 12 美分了。保守地假设年度总成本为 30 万美元(包括工资、福利、健怡可乐、停车场),一个自然年大约有 250 个工作日,算下来一名典型的软件工程师每天的成本约为 1200 美元,换句话说是 AI 的超过 1 万倍成本,做的却是相同的工作。


如果一个 AI 生成的代码水平与人类工程师大致相当,成本只有后者万分之一,而输出代码的速度要快大约 10,000 倍——也就是说大约 1 亿倍的成本效率——那我以后都会选择 AI 来干活儿了。这还只是取代了一名人类工程师的结果。(抱歉,前端团队的 Rob,你已经被自动化取代了!)一旦 AI 变得足够好,你再雇人类来写代码不就很离谱了吗。


编程艺术发生了什么变化?


哪怕上面的说法夸张了十倍,你也能看出来软件工程师是一个濒临灭绝的物种。但是,如果开发计算机软件的艺术和科学不再有人类参与,它们会发生什么变化呢?


任何软件系统都需要在代码复杂性、通用性、性能和完成时间方面做出权衡。因此,即使我们解雇了所有开发人员并用 CoPilot 2030 取而代之,我们仍然需要一种方法让(可能仍然是人类?)PM 和基于 AI 的开发团队在产品构建时就做好沟通,做出权衡,选择一个软件解决方案。


等等……我到底在说什么?!?如果编写代码的 AI,谁在乎它需要多长时间呢——无论你要求 AI 做什么,结果都是即时的。你可以获得完全通用的高性能解决方案,所需时间与人类生成粗略原型所需的时间是一样短的。于是代码的复杂程度无关紧要了,因为它不再需要传统意义上的可维护性了。如果你在星期二发布的代码在星期三没有很好地完成工作,只需启动 AI 并在几秒钟内做出来 1000 个新版本就搞定了。


关键是,当人类不再编写和维护代码时,我们所有以人为中心的软件工程艺术概念都会消失。作为程序员,我们所做的很多事情——花费最多时间的事情——都是为了让缓慢且容易出错的人类更容易做事而设计的:编写注释、为了方便以后的重构写下的代码、让代码更通用从而可复用的设计,等等。问题是,如果代码变成了主要由机器生成和维护,那么所有这些“额外”工作都是完全没有必要的。


显然,AI 编程技术要达到这一点还有很长的路要走,但我认为 AI 生成的代码在未来几年内成为常态这个预想并不怎么离谱。考虑到节约的大量成本和时间,就像 Stable Diffusion 冲击艺术界一样,类似的事件很可能很快就会冲击软件工业。我们需要弄清楚的是,后 AI 软件行业会是什么样子,以及我们现在可以做些什么来为此做好准备。


原文链接:


https://mdwdotla.medium.com/hey-lets-fire-all-the-devs-and-replace-them-with-ai-8a0c3011d12

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-02-02 00:009267
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 494.1 次阅读, 收获喜欢 1967 次。

关注

评论 5 条评论

发布
用户头像
想起流浪地球中可以生成底层操作系统代码的 550W
2023-02-08 11:22 · 辽宁
回复
用户头像
AI提供后期的软件维护、架构升级、漏洞修复、需求功能变更、人员沟通、使用培训和技术支持吗?
2023-02-07 11:05 · 北京
回复
用户头像
没有使用就没有发言权,在体验了一个月的 chatGPT 后,我只能说用来写文章或者论文不错。用来当知识百科也很赞,有时候真的希望能实体产品化,加入 TTS 的技术和行走移动的功能真的就是一个智能家庭助理了。但是一说的编程,我想说还是醒醒吧,基本的入门还行,真的设计复杂业务处理,我只想说连:“小明的妈妈比小明大20岁,10年后小明的妈妈比小明大多少岁”这样的问题都回答不出来的 AI,你指望它能替代程序员?
2023-02-07 09:19 · 广东
回复
用户头像
软件行业里面,最不重要的就是生成代码了
2023-02-03 12:01 · 湖北
回复
用户头像
一名典型的软件工程师每天的成本约为1200美元
2023-02-03 10:52 · 浙江
回复
没有更多了
发现更多内容

「Go框架」http请求处理流程: gin、beego等web框架是如何处理http请求的?

Go学堂

golang 开源 程序员 个人成长 12月月更

物联网 IOT 设备如何脱离信息孤岛?

eng八戒

物联网 IoT 网络 网络配置 涂鸦智能

转转AB平台的设计与实现

转转技术团队

大数据 A/B 测试

企业数据上云,华为云数据库 GaussDB(for MySQL)轻松解决

科技之光

【web 开发基础】PHP数组元素的添加和删除操作 (49)

迷彩

数组 数组操作 PHP基础 先进先出 后进先出

手游“Lord of Dragons Global”进军P2E市场

科技热闻

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块

袋鼠云数栈

开源

数据代码如何“产地直销”,做到持续集成持续发布?

数造万象

【5000字长文】从 S3 到 DataZone,亚马逊云科技用16年讲完一个数据的故事

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 Builder 专栏

丧心病狂,竟有Thread.sleep(0)这种神仙写法?

JAVA旭阳

Java JVM

无魅友,不魅族!魅族大力推广魅友文化,用行动阐述何为用户共创

Geek_2d6073

Docker 中的挂载卷

HoneyMoose

大咖说·阿里云教育|“网上浙大”数字化之路

大咖说

数字化 高校

三个延伸打法,撑起华为云桌面的7年领跑

路过的憨憨

深耕数字办公,华为云桌面怎样带来高效办公体验?

路过的憨憨

架构实战营模块三作业

张贺

Git使用教程之本地仓库的基本操作

智趣匠

git git 学习 Git命令行

基于聚类算法的话术挖掘技术及在营销服场景的落地应用

中关村科金

人工智能 大数据 算法 对话机器人 技术实践

这一篇让你彻底搞懂微信生态里的二维码

产品海豚湾

产品经理 产品设计 二维码 微信扫码 SaaS 产品

HTTP实体首部字段

穿过生命散发芬芳

HTTP 12月月更

华为云数据库助力微鲤科技智能升级

爱科技的水月

如何写一个深度学习编译器

MegEngineBot

深度学习 开源 编译器 MegEngine MegCC

MAXHUB+腾讯会议:为未来办公造一部动力引擎

脑极体

企业金融App评测系列——微众银行以App构筑企业金融服务新生态,成为企业的随身数字银行

易观分析

企业 金融 银行

Java高手速成│编写你第一个数据库程序

TiAmo

JDBC 数据库· 12月月更

守护企业数据安全,华为云数据库 GaussDB(for MySQL)有绝招

科技之光

华为云数据库GaussDB(for MySQL)全方位守护企业云上数据安全

爱科技的水月

2022-12-27:etcd是无界面的,不好看,joinsunsoft/etcdv3-browser是etcd的web可视化工具之一。请问在k3s中部署,yaml如何写?

福大大架构师每日一题

云原生 k8s etcd k3s 福大大

DevSecOps 需要知道的十大 K8s 安全风险及建议

SEAL安全

k8s DevSecOps 12 月 PK 榜

Code Review到底在关注些什么?

孟君的编程札记

Java CodeReview

国产ETL 星光不问赶路人 时我不待

weigeonlyyou

oracle Prometheus Clickhouse MySQL 数据库 InfluxDB Cluster

AI编程成本只有人类程序员的万分之一,速度却快了10000倍,再雇人类来写代码就离了大谱?_AI&大模型_Matt Welsh_InfoQ精选文章