2025年5月16日

司机知识与迫在眉睫的 AI 崩溃

大约两年前,我开始尝试使用 AI。 诚然,它令人印象深刻,但当时它并不是我真正可以依赖的东西——至少在我的世界(软件开发)中是这样。我尝试过的所有 LLM 都太渴望吐出完全的胡说八道(我们现在温和地称之为“幻觉”,就像我们在照顾晚期痴呆症患者一样——“哦,没关系,亲爱的,那只是 Bubbies 的幻觉之一”)。 在 2023 年的过程中,我时不时地使用一些模型,看看情况是否有所改善,但没有什么真正突出的,能达到我想要的生产力最佳点。 快进到 2024 年,一切都改变了。我决定开发 Parrot,作为一种更高效的方式来开始使用 LLM API,并思考如何将 AI 集成到产品中。 那时,“糟糕”的时刻发生了。 在测试我用来生成代码片段的主提示时,我开始注意到:“嘿,这家伙写代码越来越厉害了。”我越是使用它,我就越印象深刻。它完美吗?不完全是。 幻觉仍然很猖獗(即使在今天仍然如此),但主要是在更晦涩的语言和技术方面。对于更常见的东西呢?虽然它_确实_会编写代码,而且在没有任何额外提示的情况下,这些代码类似于一个刚通宵饮酒的初级开发人员的工作,但它编写的代码......实际上是有效的。 这是我第一次真正感到害怕。 虽然并非总是容易做到,但我能够仅使用 AI 构建一些相当复杂的东西(例如,Mod 中的颜色选择器组件 95% 是由 AI 构建的)。当然,这需要大量的来回提示和启动新的聊天,但这并不重要;一个非人类实体能够编写_有效_的代码(而且速度相当快)。 然后,我开始看到越来越多的人谈论使用 AI 来编写代码。起初,是有经验的程序员,他们的反应和我自己的反应相似,然后,是完全没有经验的开发人员。前一组人理所当然地持怀疑态度,但后一组人_完全投入_。 这时我意识到:这将改变一切;但不是在乌托邦式的“一切都很神奇”的意义上,而是在“哦,天哪,我们做了什么”的意义上。 突出的一点不是人们使用 AI 编写_一些_代码,而是他们使用它编写_所有_代码。而且它奏效了。大部分情况下。 这立刻让我感到震惊,但不是因为你可能期望的“我再也无法在经济上恢复”的原因。 不,那是因为在那一刻我意识到,我们刚刚开始走上了一条通往这样的地方的滑坡,即程序员的定义不再是理解代码、系统设计和一大堆其他学科,而是能够产生足够好的工作成果来欺骗最终用户的人。 无论代码是否具有高性能、安全性或稳定性,都无关紧要——标准仅仅是“它能工作吗?” 现在,从表面上看,这似乎是一些歇斯底里的书呆子闹剧——而今天,你是对的。但我不是在谈论_今天_。我是在谈论未来。 很快,这个图像就出现在我的脑海中: The Competency Curve 这张图表显示了两条线:一条是普通程序员(或者,如果你想将其扩展到更广泛的受众,则为“知识工作者”)的能力水平,另一条是 AI 的采用率。 随着 AI 采用率的提高(意味着越来越多的任务被委托给 AI),能力水平会下降。最终,我们达到了这些线相交、穿过并且能力水平急剧下降的点。 好吧,那又怎么样?重点是什么? 重点是,一旦我们越过那条线,我认为就再也回不去了。那时,规则将是“只需使用 AI 编写代码”。而通过“编写代码”,我的意思是“如果 AI 生成的代码_有效_,则隐式地将其信任为正确答案。” 这在今天是个问题吗?仅在一个小的、相对而言毫无意义的规模上。但是,随着我们进入未来,AI 变得越来越普遍,我预计会出现这样一种现实,即很少有构建软件的人真正_理解_底层发生了什么。 这有几个含义:

  1. 首先,这意味着正在构建的软件永远不能被隐式地信任为已经过适当的测试和安全性和性能问题的审计。不是因为它_不能_,而是因为“编写”软件的人不知道该怎么做或不在乎。
  2. 其次,这意味着普通程序员创造性地解决问题和修复 AI 创建的错误的能力会急剧下降。
  3. 第三,也是我认为最可怕的:这意味着编程(以及软件的工艺)将停止发展。我们将停止问“有没有更好的方法来做到这一点”,而是转变为“嗯,它有效”。软件不会随着时间的推移而变得更好,充其量,它将无限期地停滞不前。

虽然乐观主义者的观点可能看起来像 Jacques Fresco 的渲染图,但我更倾向于《人间乐园》中的第三个面板。 其中的_原因_需要一个涉及物理学家 [Max Planck](https://ryanglover.net/blog/</blog/tags/Max Planck>) 和他的司机的故事。正如已故的 [Charlie Munger](https://ryanglover.net/blog/</blog/tags/Charlie Munger>) 所解释的那样:

我经常讲一个杜撰的故事,讲述了 [Max Planck](https://ryanglover.net/blog/</blog/tags/Max Planck/) 获得诺贝尔奖后,在德国各地就新的量子力学做了同样的标准讲座。 随着时间的推移,他的司机记住了讲座内容,并说:“[Planck](https://ryanglover.net/blog/</blog/tags/Max Planck/) 教授,您介意吗,因为保持我们的日常工作太无聊了。[如果]我做慕尼黑的讲座,而您只是戴着我的司机帽坐在前面呢?”[Planck](https://ryanglover.net/blog/</blog/tags/Max Planck/) 说:“为什么不呢?”于是司机站起来,就量子力学做了这个漫长的讲座。之后,一位物理学教授站起来问了一个非常可怕的问题。演讲者说:“我很惊讶在慕尼黑这样先进的城市,我竟然会遇到这样一个基本的问题。我将请我的司机回答。” 在这里,我们有一个人有能力以一种令人信服的方式_反刍_预先包装好的知识,但当涉及到真正_理解_这个话题时,一个不符合手头知识的问题不得不推迟给一位——在这种情况下是秘密的——专家。 虽然这个实验没有造成比充其量的一次失态更大的麻烦,但我看到“氛围编码员”在这个故事中充当司机,而 AI 充当专家 ([Planck](https://ryanglover.net/blog/</blog/tags/Max Planck>))。他们知道的足够危险,但没有任何值得_真正理解_的东西。 今天,危险是有限的。它是一个 独立开发者惊讶地发现他们通过氛围编码的应用程序存在代价高昂的安全漏洞。未来,是一家《财富》500 强软件公司的整个数据库被勒索,因为 他们的“AI 优先”团队 不知道如何正确地保护数据库,而一些黑帽加速了进程。 这可能看起来有些夸张,但在一个新程序员默认使用 AI 而不是获得有价值的实践经验的世界中,还有什么其他结果是可能的呢?当然,你可以说 AI 会“越来越好”,或者“真正的程序员永远不会停止手动操作”,我会说你是对的——在某种程度上。 记住上面的图表。因为 LLM 是在人类的输出上训练的,如果人类主要使用 AI 来创建新的输出,那么最终,LLM 的知识将被冻结在时间中。将不会有任何新的源材料来训练 LLM 变得更好,因为它将不存在。我们将永远被过去拥有的东西所困扰。更可怕的是,LLM 输出的质量可能会急剧下降,因为它会递归地将自己的输出作为训练数据(例如,一篇关于由一位不知道注入攻击的氛围编码员编写的 SQL 查询的博客文章)。 这不仅适用于编程,而且适用于_所有知识工作_。 需要明确的是,我发现使用 AI 来增强我的日常工作是一项必不可少的工具。但与此同时,我不能忽视 AI 成为我们智力巴别塔的可怕潜力。我认为这种情况越来越有可能发生,因为 AI 公司的 CEO 预测 “所有代码将在 12 个月内由 AI 编写”。 我所预期的“崩溃”不是一个戏剧性的崩溃,而是一个逐渐意识到我们已经把自己画进了一个智力角落。随着 AI 使用变得越来越普遍,我们可能会发现自己处于这样一种情况,即我们的大部分知识仅限于我们过去发现的东西。没有新的经验教训。没有新的发现。只有停滞。 在它不再好玩之前,一切都会好玩。当那个时候到来时,我希望我们没有为了 AI 相当于 “但它含有电解质” 而牺牲了真正的学习、知识和专业知识。 我真诚地希望我是错的。