特斯拉前 AI 总监安德烈・卡帕西:AI 时代的软件变革
欢迎特斯拉前 AI 总监安德烈・卡帕西。
大家好。
今天能在这里和大家聊聊 AI 时代的软件,我很兴奋。我听说在座的很多人都是学生,有本科生、硕士生、博士生等等。你们即将进入这个行业,我觉得现在正是进入这个行业的绝佳时机,非常独特且有趣。
软件的变革
从根本上来说,原因在于软件正在再次发生变革。我说 "再次",是因为我之前其实做过类似的演讲。但问题是,软件一直在变,所以我总有新的素材可以讲,而且我认为这次的变革是根本性的。
大致来说,70 年来,软件在基础层面并没有太大变化。但在过去几年里,它经历了两次快速变革。所以现在有大量的工作要做,有大量的软件需要编写和重写。
软件领域的演进
我们来看看软件的领域。如果把软件领域想象成一张地图,这是一个很酷的工具,叫做 GitHub 地图。它大致涵盖了所有已编写的软件 —— 这些都是计算机在数字空间执行任务的指令。
放大来看,这些是不同的代码库,包含了所有已编写的代码。几年前,我观察到软件正在发生变化,出现了一种新型软件,当时我称之为 "软件 2.0"。其核心思想是:
- 软件 1.0 是你为计算机编写的代码
- 软件 2.0 基本上是神经网络,尤其是神经网络的权重。你不会直接编写这些 "代码",更多是调整数据集,然后通过优化器来生成神经网络的参数
当时,神经网络被视为一种不同的分类器,就像决策树之类的工具。但我认为 "软件 2.0" 这个框架更贴切。现在,在软件 2.0 的领域,我们有了类似 GitHub 的平台 —— 我认为 Hugging Face 就相当于软件 2.0 时代的 GitHub。还有 Model Atlas,你可以在上面看到所有编写的 "代码"。
顺便说一句,中间那个巨大的圆点,是图像生成模型 Flux 的参数。每当有人在 Flux 模型基础上进行微调,就相当于在这个空间里创建了一个 git 提交,生成了一个不同的图像生成器。
简单来说:
- 软件 1.0 是编程计算机的代码
- 软件 2.0 是编程神经网络的权重
这是 AlexNet 图像识别神经网络的例子。
新型软件:软件 3.0
直到最近,我们熟悉的所有神经网络都像是 "固定功能计算机",比如从图像到类别分类。但一个根本性的变化是:随着大语言模型的出现,神经网络变得可编程了。我认为这是全新的、独特的,是一种新型计算机,值得赋予它 "软件 3.0" 的新名称。
在软件 3.0 中,你的提示词就是编程大语言模型的程序,而且值得注意的是,这些提示词是用英语写的 —— 这是一种非常有趣的编程语言。
举个例子总结差异:比如做情感分类,你可以:
- 写一些 Python 代码(软件 1.0)
- 训练一个神经网络(软件 2.0)
- 提示大语言模型(软件 3.0)
这是一个简短的提示词示例,你可以通过修改它,以略微不同的方式编程计算机。
所以我们有了软件 1.0、软件 2.0,现在你会发现 GitHub 上的代码不再只是纯粹的代码,还穿插着英语 —— 这是一种新型代码正在兴起。这不仅是一种新的编程范式,更值得注意的是,它使用我们的母语(英语)作为编程语言。
几年前,当我意识到这一点时,我发了一条推文,引起了很多人的关注,这也是我目前置顶的推文:
"值得注意的是,我们现在用英语给计算机编程。"
自动驾驶中的软件变革
在特斯拉工作时,我们致力于自动驾驶技术。当时我展示过这样一张幻灯片:汽车的输入在底部,通过软件栈生成转向和加速指令。我观察到,自动驾驶系统中有大量 C++ 代码(软件 1.0),也有一些做图像识别的神经网络。随着自动驾驶技术的进步,神经网络的能力和规模不断扩大,同时所有的 C++ 代码被逐步删除 —— 原本由软件 1.0 实现的功能,被迁移到了软件 2.0。
例如,不同摄像头图像的信息拼接和时间序列信息处理,都由神经网络完成,我们因此删除了大量代码。软件 2.0 的 "栈" 确实在逐步 "吞噬" 自动驾驶的软件栈。
现在,我们正经历类似的过程:一种新的软件正在 "吞噬" 现有的软件栈。我们有三种完全不同的编程范式,如果你要进入这个行业,最好能熟练掌握这三种,因为它们各有优缺点。你可能需要用 1.0、2.0 或 3.0 来实现某个功能 —— 是训练神经网络,还是提示大语言模型,或是编写明确的代码?我们都需要做出选择,并能在这些范式之间灵活转换。
大语言模型(LLMs)的新范式
接下来,我想谈谈大语言模型(LLMs),这种新范式及其生态系统 —— 这是一种什么样的新计算机?它的生态系统是什么样的?
我想起了 Andrew Ng 多年前的一句话(我想他之后会演讲):"人工智能是新的电力"。这句话很有道理,因为 LLMs 现在确实有 "公用设施" 的属性。
LLMs作为公用设施
像 OpenAI、Gemini、Anthropic 等 LLM 实验室,他们投入资本支出(capex)来训练 LLMs,这相当于建设电网;然后通过 API 提供智能服务,这需要运营支出(opex)。我们通过计量访问(比如按百万 token 付费)来使用这些服务,并且对 API 有很多类似公用设施的需求:低延迟、高可用性、稳定的质量等。
在电力系统中,有转换开关,可以在电网、太阳能、电池或发电机之间切换电源。在 LLM 领域,我们有 Open Router,可以轻松切换不同的 LLM。由于 LLM 是软件,它们不会争夺物理空间,所以可以有六个 "电力供应商",你可以在它们之间切换,因为它们不会直接竞争。
最近几天,很多 LLM 出现了故障,人们因此无法工作。这很有趣:当最先进的 LLM 出故障时,这就像是世界范围内的 "智能停电" —— 就像电网电压不稳定时,随着我们对这些模型的依赖度增加,世界会变得 "更笨"。这种依赖已经很显著,而且会继续加深。
LLMs与晶圆厂的类比
但 LLM 不仅有公用设施的属性,也有晶圆厂(fabs)的属性。因为构建 LLM 所需的资本支出非常庞大,不仅仅是建一座发电站那么简单。你需要投入巨额资金,而且技术树在快速发展。现在,我们处于一个技术树深厚的世界,研发秘密集中在 LLM 实验室中。
但这个类比也有不贴切之处,因为如前所述,LLM 是软件,软件的可塑性很强,所以防御性较弱。你可以把 4 纳米工艺节点想象成具有特定最大算力的集群;如果你只使用英伟达 GPU 做软件,不做硬件,这有点像无晶圆厂模式;而如果像谷歌那样,既做硬件(TPU)又做训练,就有点像英特尔模式,拥有自己的晶圆厂。这些类比有一定道理。
LLMs作为操作系统的类比
但我认为最贴切的类比是:LLM 很像操作系统。它们不仅仅是电力或水那样的商品,而是日益复杂的软件生态系统。现在的情况和操作系统的发展很相似:有几家闭源提供商(比如 Windows 或 Mac OS),也有开源替代方案(比如 Linux)。对于 LLM 来说,我们也有几家闭源提供商,而 Llama 生态系统目前可能接近 Linux 的地位。
当然,现在还很早,因为这些还只是简单的 LLM,但它们会变得越来越复杂。这不仅仅关乎 LLM 本身,还包括工具使用、多模态能力以及它们的协作方式。
我之前意识到这一点时,曾试图勾勒出它的轮廓:
- LLM 就像一种新的操作系统
- LLM 本身相当于 CPU
- 上下文窗口相当于内存
- LLM 通过这些能力来协调内存和计算以解决问题
从这个角度看,它非常像操作系统。
再举个类比:如果你想下载一个应用,比如 VS Code,你可以在 Windows、Linux 或 Mac 上运行它;同样,像 Cursor 这样的 LLM 应用,你可以在 GPT、Claude 或 Gemini 上运行 —— 只需一个下拉菜单切换即可。这一点也很相似。
LLMs与分时计算系统的类比
另一个让我印象深刻的类比是:我们现在有点像处于 20 世纪 60 年代 —— 这种新计算机(LLM)的算力仍然非常昂贵,
评论一下?