写点什么

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

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

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

关注

评论 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 · 浙江
回复
没有更多了
发现更多内容

校招面试真题 | 测试流程大概是什么?

霍格沃兹测试开发学社

如何通过机器学习赋能智能研发协作?

LigaAI

人工智能 智能化 LigaAI 研发协作平台 亚马逊云科技

细说React组件性能优化

xiaofeng

React

京东云开发者|经典同态加密算法Paillier解读 - 原理、实现和应用

京东科技开发者

联邦学习 同态加密 隐私计算 加密算法 多方安全计算

修改ElementUI样式

源字节1号

软件开发 前端开发 后端开发 小程序开发

自学前端达到什么水平才能找到工作,来看这套前端学习路线图

千锋IT教育

CSS写一个圣诞树Chrome浏览器小插件

肥晨

11月月更 css写圣诞树 Chrome插件

基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

JavaScript, ABAP 和 Scala 里的尾递归(Tail Recursion)

汪子熙

JavaScript 编程语言 尾递归 abap 11月月更

Java应用在docker环境配置容器健康检查

程序员欣宸

Java Docker 11月月更

技术分享 | 如何确保API 的稳定性与正确性?你只需要这一招

霍格沃兹测试开发学社

ironSource 与 Sensor Tower 宣布达成战略合作,共同拓展应用市场增长潜力

Geek_2d6073

新能源锂电池极片制造设备如何实现故障智能诊断?

PreMaint

智能诊断 故障诊断 新能源 设备健康管理

在web前端学习中如何学习知识点

小谷哥

【LeetCode】二叉树最大宽度Java题解

Albert

算法 LeetCode 11月月更

从 0 开始学 Python 自动化测试开发(二):环境搭建

霍格沃兹测试开发学社

武汉web前端培训学习前景如何

小谷哥

大专学历通过大数据培训好找工作吗?

小谷哥

【愚公系列】2022年11月 微信小程序-日期时间组件封装

愚公搬代码

11月月更

【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列

冰河

Java 性能优化 JVM Java虚拟机 系统编程

网站停服、秒杀大促…解析高可用网站架构云化

华为云开发者联盟

云计算 后端 华为云 企业号十月 PK 榜

4步消除漏洞积压

SEAL安全

漏洞修复 软件供应链安全 漏洞管理 11月月更

佛萨奇1.0 2.0矩阵公排项目系统开发详情

开发微hkkf5566

CnosDB 2.0 产品发布会预告:一切为了万物智联,用 Rust 打造云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB CnosDB 2.0发布会

解密GaussDB(for Influx) :让智能电网中时序数据处理更高效

华为云开发者联盟

数据库 华为云 企业号十月 PK 榜

COSCon'22 第七届中国开源年会圆满落幕

腾源会

开源

固定QPS异步任务功能再探

FunTester

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

霍格沃兹测试开发学社

更轻量的百度百舸,CCE Stack 智算版发布

Baidu AICLOUD

AI工程化 高性能计算 异构计算 百度百舸

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

测试人

软件测试 自动化测试 测试开发

用低代码平台搭建低代码平台

iofod jude

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