AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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:009631
用户头像
刘燕 InfoQ高级技术编辑

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

关注

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

开源机器学习数据库OpenMLDB贡献者计划全面启动

第四范式开发者社区

第四范式 开源社区 OpenMLDB 机器学习数据库 贡献者

服务端质量保证体系(一) 全流程规范管理

homber

服务端 流程 质量保证 签约计划第二季

服务端质量保证体系(二) 流水线标准化建设

homber

服务端 CI/CD 流程 质量保证 签约计划第二季

Apache ShenYu源码阅读系列-注册中心实现原理之Http注册

子夜2104

少儿春晚表演

Tiger

28天写作

换个角度思考勒索攻击事件

华为云开发者联盟

漏洞 勒索 攻击 安全检测 蜜罐检测

一文讲透数仓临时表的用法

华为云开发者联盟

数据库 sql Local GaussDB(DWS) 临时表

大数据开发之数据读取—Pandas vs Spark

@零度

大数据 spark pandas

Python代码阅读(第67篇):获取列表中的去重后的元素

Felix

Python 编程 列表 阅读代码 Python初学者

会用泛型,但你知道什么是泛型的类型擦除吗?

码农参上

Java泛型 签约计划第二季

基于HTML、CSS、JS的小游戏/工具制作过程及完整源码

海拥(haiyong.site)

28天写作 内容合集 签约计划第二季 12月日更 技术专题合集

Go语言学习查缺补漏ing Day3

恒生LIGHT云社区

Go 编程语言

【分布式技术专题】「OSS中间件系列」Minio的Server端服务的架构和实战搭建

码界西柚

OSS Minio Minio 集群 12月日更 FS

服务端质量保证体系(三) CI原子能力建设

homber

ci 服务端 质量保证 签约计划第二季

2021 China DevOpsDays演讲实录

homber

DevOps DevOpsDays 签约计划第二季

Linux一学就会之Centos8软件包的管理和安装之yum管理软件包

学神来啦

Linux centos 运维 rpm yum

为什么要做团建TB?(6/28)

赵新龙

28天写作

2021商业评论管理行动力峰会

大咖说

商业 直播

编程谜题:提升你解决问题的训练场

华为云开发者联盟

Python 编程 编程语言 代码 编程谜题

【讲坛实录】知识图谱的探索与应用

星环科技

知识图谱

恒源云(GPUSHARE)_云GPU服务器如何使用PyCharm?

恒源云

深度学习 gpu 算力加速

星环科技 TDH8.1.0:全新升级为用户带来极致体验

星环科技

大数据

「Oracle」Oracle 数据库备份还原

恒生LIGHT云社区

数据库 oracle

春松客服入驻Rainbond开源应用商店

北京好雨科技有限公司

和合共赢,DataPipeline与麒麟软件完成产品兼容性互认证

DataPipeline数见科技

中间件 数据库中间件

企业如何做好员工安全意识提升

腾讯安全云鼎实验室

QA进阶成长感悟录

homber

成长 内容合集 签约计划第二季

基于HTML、CSS和JS的年龄计算器

海拥(haiyong.site)

html 大前端 28天写作 签约计划第二季 12月日更

使用Harbor作为Rainbond默认容器镜像仓库,扩展Rainbond镜像管理能力

北京好雨科技有限公司

Smack库 XMPP Tigase异常SASLErrorException

Changing Lin

12月日更

Redis 核心知识点归纳总结,从根上理解 Redis

码哥字节

redis Redis 核心技术与实战 签约计划第二季

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