软件,又一次变革

Andrej Karpathy's keynote on June 17, 2025 at AI Startup School in San Francisco.

下面是演讲内容整理稿:

在这个AI迅猛发展的时代,我们正站在一场软件革命的门口。对于即将踏入行业的本科生、硕士或博士而言,没有比现在更特殊的时刻了。软件,正在以几十年来前所未有的方式改变,而我们正处于这场变革的风暴眼中。

从1.0到3.0:软件的三次进化

回顾历史,软件1.0时代的本质是人类用代码直接指挥计算机。之后,随着神经网络的发展,我们进入了软件2.0时代:人们不再手写代码,而是通过数据训练模型,最终形成权重来指导行为。权重就是新一代的程序。

如今,我们迎来了软件3.0时代——以大语言模型(LLM)为代表的新时代。这些模型可以通过自然语言进行编程,提示词(prompt)成了程序本身。英文,正在成为新的编程语言。举例来说,从情绪识别任务出发,你可以用Python代码(1.0)、训练一个分类器(2.0),或者简单输入一段提示词给ChatGPT(3.0)——三者都能实现目标,但方式大相径庭。

GitHub是软件1.0的基地,Hugging Face则是软件2.0的主场。我们可以看到,越来越多的开源模型被视作新的“代码”,每次微调参数就像是一场Git提交。

软件堆栈的演化:2.0吃掉了1.0,3.0又将重复这场吞噬

在我任职特斯拉时,自动驾驶系统起初主要由C++(软件1.0)编写,但随着神经网络的兴起,我们开始将大量逻辑迁移到神经网络中。最终,原本由1.0编写的系统被2.0“吞噬”了。而现在,LLM也正在以同样的方式吞噬旧有的软件堆栈。

要构建现代软件系统,我们必须掌握三种编程范式的转换:何时写代码,何时训练模型,何时只需写一个提示词。

LLM不是电、水或晶圆厂,而是新的操作系统

很多人将LLM比作“电力”,我也曾这样描述它——我们通过API,按token付费调用它,期待高可用、低延迟、高一致性。但这比喻并不完整。

LLM更像是操作系统。你可以像安装软件一样,在GPT、Claude或Gemini上运行同一个LLM应用,就像在Windows、macOS或Linux上运行VS Code一样。我们正处于类似1960年代的计算机时代——硬件昂贵、集中在云端、依赖时分共享,个人计算尚未普及。

同时,我们也缺乏一种真正适配LLM的GUI(图形用户界面),目前我们依赖对话框来访问LLM,就像当年用命令行一样。未来,可能会有人发明真正的“LLM GUI”。

LLM是人类精神的拟像,也有它的心理学

LLM本质上是人的拟像,是一种类人的精神模拟器。虽然它们拥有远超人类的记忆力,能背诵SHA哈希、记住成千上万本书,但它们也有严重的认知缺陷:会幻觉、逻辑混乱、自我意识薄弱,容易受到提示注入攻击,容易遗忘上下文。

它们像《Rain Man》中的达斯汀·霍夫曼,又像《记忆碎片》《初恋50次》中每天记忆被重置的人。

与人类不同,LLM没有长期记忆,只能依赖窗口内的上下文。它们就像新入职的同事,每天都从零开始,不会进步,除非你手动“灌输”。

构建部分自治的AI应用:从Cursor到Perplexity

LLM带来的最大机会,可能并非全自动的“智能体”,而是“部分自治”的AI应用。

以Cursor为例,它是一款面向程序员的编辑器,集成了LLM。它的特点包括:

  • 自动管理上下文(文件嵌入、代码摘要);
  • 编排多个模型(嵌入模型、聊天模型、diff应用模型);
  • 提供明确的GUI来审核LLM输出;
  • 引入“自治滑杆”——你可以让AI完成一行、一段、一页甚至整个项目的修改,完全可控。

再看Perplexity,它将搜索引擎包装成LLM产品,也具备以上特征:多模型协同、GUI辅助审核、信息源可见、自治滑杆可调。

我相信,大量传统软件都将演化为部分自治的AI产品。你应该问自己:

  • 我的产品中,LLM能看到用户所见的所有信息吗?
  • LLM是否能像人类一样执行操作?
  • 用户是否能随时审核、干预AI的行为?

GUI不只是装饰,它是审计系统的高速通道,是人类大脑的可视输入。配合LLM的生成与人类的验证回路,我们才能高效协作。

不要盲目相信AI agent:从Iron Man套装说起

太多人对AI代理充满幻想,但我担心这会重蹈“自动驾驶”的覆辙。2013年我坐上第一辆Waymo的自动驾驶车,30分钟无故障演示让我以为“自动驾驶已经实现”。可12年过去,现实依旧遥远。

agent不是产品,agent是幻觉。我们更应该构建的是“部分自治的产品”,像Iron Man套装一样——由人类驾驶,必要时能部分自主运行。别造机器人,先造盔甲。

人人都是程序员,人人都能Vibe Coding

最令人兴奋的是:因为LLM使用英文作为接口,人人都能成为程序员。这就是“Vibe Coding”:你不懂Swift也能做iOS app,不懂HTML也能部署服务,只要你能用语言表达,就能写出功能。

我做了个叫 MenuGenie 的小项目——拍下菜单,生成菜品图片。这一切我都是“vibe”出来的,写提示词生成代码,调试一下,再部署到线上。但最难的不是代码,是“DevOps”——我花了一周处理认证、支付、部署。

为Agent打造新的数字基础设施

现在的网络是为人类而建,不是为AI而建。未来我们需要“agent友好”的数字接口。例如:

  • 用 llm.txt 文件告诉模型你的网站是干什么的;
  • 将文档从HTML变为Markdown,LLM更易读取;
  • 把“点击这里”换成 curl 命令,LLM才能执行;
  • 像Vercel、Stripe那样,把说明文档改写成AI能消费的结构化语言;
  • 使用 get.ingest.sh 工具将GitHub项目变成LLM可解析的输入;
  • 用 Devyn 工具提前生成项目结构和理解路径,便于LLM吸收;

这不是未来,而是现在。

总结:欢迎来到1960年代的第二轮革命

这是个令人兴奋的时代。我们正重新发明操作系统,我们正进入软件3.0。我们拥有“人类精神”的拟像工具,它们可以与我们协作,成为盔甲,而非代理。我们每个人都能成为程序员。

现在,是时候加入这场革命,重写这个世界的代码。


作者简介:安德烈·卡帕斯(Andrej Karpathy),1986年出生于斯洛伐克布拉提斯拉瓦,15岁移居加拿大多伦多,先后在多伦多大学和英属哥伦比亚大学获得计算机科学与物理学学士、硕士学位,2015年在斯坦福大学师从李飞飞获得博士学位,研究方向聚焦于计算机视觉与自然语言交叉领域 。他是OpenAI的创始成员之一(2015–2017),并于2023年短暂回归;2017至2022年间担任特斯拉AI与Autopilot视觉系统负责人;2024年创立AI教育平台Eureka Labs,致力于推动AI教学与基础研究 。


本文收录于我每周五更新的《灵感电波》第 81 期。 每期我会精选 5 篇值得一读的深度好文,用中文精编呈现。 如果你喜欢这样的内容,欢迎订阅。