2026年3月3日 · 播客 · 1h 27min
AI 编程的危险幻觉 — Jeremy Howard
那个发明了现代 LLM 核心范式(预训练 + 微调)的人,认为大多数人用 AI 写代码的方式从根本上就是错的。不是因为模型不好,而是因为这个工作流摧毁了软件工程师最核心的价值:理解力。
节目概要
Jeremy Howard 做客 Machine Learning Street Talk,进行了一场 87 分钟的对话,覆盖了 ULMFiT 和现代迁移学习的起源、对 AI 编程工作流的尖锐批评、关于学习与摩擦的认知科学研究、编码与软件工程的本质区别,以及权力集中与 AI 风险等议题。Howard 一如既往地直接:他看到整个行业在梦游般地走向能力危机,生产的代码比以往任何时候都多,却对自己构建的东西理解得越来越少。
ULMFiT:无心插柳的基石
Howard 把现代迁移学习追溯到一个朴素得近乎简单的想法:在大规模语料上预训练的语言模型,可以用极少的数据微调来完成特定任务。他 2018 年与 Sebastian Ruder 合作的 ULMFiT 论文,引入了三阶段流程(预训练、领域适配、任务微调)以及判别性学习率、渐进解冻等后来成为标准做法的技术。
起因很普通。Howard 受够了 NLP “比计算机视觉落后 20 年”的现状。他做了最直觉的尝试:拿一个语言模型,微调它,看看会怎样。文本分类上的结果好到改变了整个领域的方向。GPT 和 BERT 在几个月内相继出现,都建立在同一个范式之上。
“There’s been surprisingly little acknowledgment of this work. But that’s fine, I guess. The important thing is that the idea got out there.”
这项工作得到的认可少得出人意料。但没关系吧。重要的是想法传播出去了。
Howard 指出了一个特别的讽刺:他参与创建的范式,如今驱动着他认为使用方式有严重问题的工具。
他还描述了发现 ULMFiT 的方法论如何体现了他更广泛的哲学。他不从理论出发,而是经验驱动:在 NLP 中尝试迁移学习,观察结果,迭代改进。他将此与主流学术文化对比,后者”从数学开始,然后试图找到一个问题来应用它”。他的方法是贝叶斯式的:每个实验更新先验,目标是理解事物实际如何运作,而非证明预设理论。
老虎机
Howard 的妻子 Rachel Thomas 提供了核心比喻:AI 编程具备赌博成瘾的所有特征。
控制幻觉。 你精心设计 prompt,配置 MCP 和 skills 文件。感觉一切尽在掌控。但你拉下拉杆,结果是随机的。
间歇强化。 偶尔它产出了完美代码,于是你相信自己掌握了窍门。那只是概率在做概率该做的事。
伪装成胜利的失败。 你花了 6 小时让 AI 生成一段能跑的代码。自己写可能只需 2 小时,而且你会理解每一行。
“The thing about AI-based coding is that it’s like a slot machine in that you have an illusion of control.”
AI 编程就像老虎机,你只是有一种控制的幻觉。
Howard 用亲身经历验证了这个比喻。14 小时的 Claude Code 马拉松之后,他需要好几天恢复。回头看那段时间的产出:大部分是”垃圾”。他的研究发现实际软件交付量只有”微小的提升”,尽管每个人都感觉生产力翻了好几倍。METR 的研究更糟糕:测量出的生产力实际下降了,而开发者自认为提升了。
“No one’s actually creating 50 times more high-quality software than they were before.”
没有人真的在创造 50 倍于以前的高质量软件。
老虎机的比喻也解释了情绪动态。间歇性奖励机制制造了强迫性循环:下一个 prompt 也许就是完美的那个。这让开发者沉浸在一个感觉有效但往往并非如此的工作流中,就像赌场通过精心设计的可变奖励机制让赌客留在机器前一样。
编码 vs. 软件工程
这是整个对话中最锋利的论断。
LLM 擅长编码。编码本质上是风格迁移:把规格说明转换为目标语言语法,在训练数据分布内做插值。它和把 C++ 翻译成 Rust、把自然语言翻译成 Python 没有本质区别。
软件工程完全是另一回事。它意味着设计从未存在过的系统、理解业务逻辑、处理边界条件、预判六个月后的维护问题。这些都需要你走出训练数据分布,而这恰恰是 LLM 崩溃的地方。
“They’re really bad at software engineering. And then I think that’s possibly always going to be true.”
它们在软件工程上非常糟糕。我认为这可能永远如此。
Howard 引用 Fred Brooks 1986 年的经典论文《No Silver Bullet》:当年 4GL 语言承诺消灭编程的场景与今天如出一辙。Brooks 预测最多 30% 的提升,因为软件的本质复杂性从来不在打字速度上。
他直言行业领袖的盲区。Dario Amodei 和 Elon Musk,他认为,都缺乏近期的软件工程实践。“我不确定 Dario 是否曾经做过软件工程师。“他们把编码速度等同于软件工程能力,这是根本性的范畴错误。如果这个判断成立,当前所有基于编码任务的 AI 能力评估都在衡量错误的东西。
Chris Lattner 的案例说明了这一点。Anthropic 展示 Claude 写 C 编译器。Lattner(LLVM 创建者)指出这个”清洁室实现”复制了 LLVM 的代码模式,包括 Lattner 本人认为是设计错误的部分。这不是创新,是带着继承缺陷的高级复制。
没人理解的代码
IPykernel 的故事把问题具象化了。
IPykernel 从 v6 升级到 v7 后出现随机崩溃:超过 5000 行复杂的多线程代码,所有测试通过但生产环境崩溃。Howard 花了两周用最强的 AI 工具反复进攻,最终修复了问题。
结果是:他拥有了唯一一个正确实现 v7 协议的 Python Jupyter 内核。但没有人理解这段代码,包括他自己。
“Here’s a piece of code that no one understands. Am I going to bet my company’s product on it?”
这是一段没人理解的代码。我该把公司的产品押在上面吗?
有内存泄漏吗?明年协议微调会不会让它崩溃?没人知道。这不是 AI 好不好用的问题(它确实解决了人类解决不了的 bug),而是一个更深层的工程问题:当 AI 生成了可以运行但无人理解的代码,我们进入了未知领域。
Tim Scarfe 指出了侵蚀的渐进性。从 10% AI 生成代码开始,六个月后某个 PR 进来时 60% 都是 AI 写的。你在不知不觉中与代码库失去了连接。组织知识以一种隐形的方式退化,直到危机爆发。
摩擦才是特性,不是缺陷
Howard 引用认知科学研究,特别是 Robert Bjork 关于”理想困难”(desirable difficulty)的工作。核心发现:感觉困难的学习比感觉轻松的学习产生更强、更持久的理解。
这直接映射到他的批评。当你手动与问题搏斗时,你在构建心智模型。当 LLM 把答案递给你时,你跳过了搏斗,什么持久的东西都没得到。Howard 用 GPS 导航做类比:研究表明使用 GPS 的人比用地图导航的人空间推理能力更差。便利是真实的,认知代价也是。
他通过 John Ousterhout 的框架延伸了这个原则:
“A little bit of slope makes up for a lot of intercept.”
一点点斜率就能弥补大量截距。
截距是你现在能产出多少。斜率是你成长的速度。如果你只追求 AI 当前能力极限的最大产出,你在用斜率换截距。这是一条通向淘汰的路。
Anthropic 自己的研究证实了这种担忧:Claude Code 用户”几乎没学到任何东西”。这与 Dario Amodei 的乐观叙事直接矛盾,用 Anthropic 自己的数据反驳他们 CEO 的论点。
Howard 身体力行。他用 Anki 学了 10 年中文,卡片总是安排在即将遗忘的时刻:“痛苦至极但效果惊人”。15 年后不复习仍然记得。AI 编程的问题恰恰在于摩擦太少,无法形成持久的学习。
作为 CEO,他的管理哲学与硅谷主流背道而驰:“我几乎唯一关心的就是你个人的人类能力增长了多少。我不在乎你提了多少 PR,做了多少功能。“他对大企业 CEO 们拥抱 AI 编程的判断很严厉:如果他们的赌注是错的(他认为很可能),而他们根本无法判断自己是否错了(因为这不是 MBA 教过的领域),那他们就是在把公司推向毁灭。
LLM 在角色扮演”理解”
Howard 直面哲学问题:LLM 真的”理解”了什么吗?他站在怀疑的一边,但有层次。他承认模型能在”受限领域”表现出智能。ARC 挑战证明了这一点:如果给问题设置约束,你可以更快地朝已知目标前进。
但他在训练分布内的插值和对全新情况的真正推理之间画了一条清晰的线。
“LLMs cosplay understanding things. They pretend to understand things.”
LLM 在角色扮演”理解”。它们假装理解事物。
他引用了 Dennett-Searle 辩论,但增加了实践维度。即便有了代理和规划能力也解决不了根本问题:“你可以拥有世界上所有的智能和代理能力,但如果你没有知识和约束,你只是在错误的方向上跑得更快。“模型并不真正了解世界,它们了解的是关于世界的文本模式。
这不是否认 AI 的实用性。Howard 自己也用 Claude Code。但人类必须保持对系统的理解,AI 是执行的加速器,而非理解力的替代品。
Notebook 作为替代模型
Howard 提出了一个具体的替代方案:交互式 notebook,特别是他构建的 nbdev。在他看来,真正的软件工程发生在探索性循环中:你戳数据,观察结果,建立直觉,逐步构建理解。
在 notebook 环境中,探索、实现、测试、文档和示例都在同一个地方。这强制了一种智识上的诚实:你不能只是生成代码,你必须在真实输入上展示它的运行。NBDev 自带 CI 集成,整个探索、测试和生产部署的循环是统一的。
他将此与典型的 AI 编程工作流对比:代码被生成到文件中,没人做交互式探索。Notebook 保留了产生理解所需的摩擦,同时利用计算工具提升速度。
“It literally disgusts me. I literally think it’s inhumane. My mission remains the same as it has been for 20 years, which is to stop people working like this.”
这从字面意义上让我恶心。我认为这是不人道的。我的使命和过去 20 年一样:阻止人们这样工作。
这是冲着基于行的终端界面模型说的:“40 年前的环境”,你与代码的全部交互都通过 prompt 进行。他的愿景受 Bret Victor 工作启发:工具应该在人类和他们操纵的计算机内部对象之间建立直接的、内脏级的连接。他的新产品 Solve It 体现了这一哲学:人类和 AI 在解释器中协作。
他的编程实践体现了这个原则:“我基本上从不需要调试器,因为我基本上没有 bug。不是因为我特别厉害,而是因为我用小步骤构建,每一步都能看到它在工作。Bug 没有生存空间。“
权力集中:真正的 AI 风险
对话转向存在性风险。Howard 和 Arvind Narayanan 联合反驳了 2023 年 Hinton、Hassabis 等人签署的 AI 存在性风险声明。
他的论证是结构性的,不关乎能力。这是一个”即使”论证:即使 AI 变得极其强大,将该技术的控制权集中起来也是错误的应对。
“Even if it’s going to be incredibly powerful, you still shouldn’t centralize all of that power in the hands of one company or the government.”
即使 AI 变得极其强大,你仍然不应该把所有权力集中在一家公司或政府手中。
在 Howard 看来,“自主 AI 毁灭人类”的叙事恰好为权力饥渴者想要的东西提供了理由:将 AI 集中到一个可以被攻占的节点。他列举了文字、印刷术、投票权的历史类比:每次变革性技术出现,既得利益者都以”太危险了不能让所有人拥有”为由限制。每一次,社会都因广泛分发而非集中管控获益。
他对近期风险的评估聚焦于一个已经在发生的事:“能力萎缩”(enfeeblement)。人们因为将认知任务委托给 AI 而失去了变得更有能力的可能性。这与他的编程担忧直接相连,在他看来,是比自主 AI 的投机性场景更具体、更正在展开的危险。
关于隐私,Howard 的看法很清醒:AI 并没有在 Google、Microsoft 和 Palantir 等数据经纪商已造成的风险之外创造出质的新威胁。美国政府被禁止直接建立关于公民的大型数据库,但在与做同样事情的公司签约方面没有任何限制。AI 让现有监控更容易使用,但并未创造根本性的新威胁类别。
一点洞见
这期节目的分量不同寻常,因为 Howard 在辩论的两端都有真实的权威性。他是驱动当前 AI 的核心范式的发明者之一,同时也是几十年亲手写软件的实践者。这种双重视角赋予他的批评一种可信度,是纯粹的 AI 乐观派或悲观派的空谈所不具备的。
- 老虎机比喻是精确的。 它解释了为什么 AI 编程感觉高效但并不高效:控制幻觉加上随机奖励机制,制造了不会累积成理解力的成瘾性工作流。Rachel Thomas 命名这个模式本身就有价值:一旦你看穿了机制,就更难被它操纵。
- “理想困难”适用于编程,不只是学习。 调试的挣扎、追踪逻辑的痛苦、阅读错误信息的烦躁,这些不是应该被消除的浪费。它是工程师形成判断力的机制,这种判断力区分了”写代码”和”构建系统”。
- 编码 vs. 软件工程的区分可能是最重要的论断。 如果 Howard 是对的,LLM 在软件工程上”可能永远”不会好,那么整个行业关于 AI 替代开发者的叙事就在衡量错误的东西。大家庆祝的那些基准分数,测试的是插值能力,不是工程能力。
- 风险排序与主流相反。 Howard 把能力萎缩(正在发生,加速中)排在权力集中(结构性,中期)之上,排在自主 AI(投机性,长期)之上。而大多数政策和媒体注意力流向了这个阶梯的底部,顶部的问题却在每个开发者的日常工作流中上演。
- “即使”是一个毁灭性的修辞策略。 通过拒绝讨论 AI 是否会变得极其强大,转而论证即便最强的乐观假设也不能为集中化辩护,Howard 完全跳过了能力辩论,落脚于民主原则。