近日,Karpathy 在 AI Startup School 做了一次名为《Software in the era of AI-Software is changing(again)》演讲,作为vibe编程概念的提出者,他再一次重申其观点,AI 正在从根本上改变软件的定义、开发方式和交互模式 。
一、软件的演进:从 1.0 到 3.0
Karpathy 提出了一个软件演进框架,将软件分为三个时代(1.0 到 3.0):
- 软件 1.0 (Software 1.0): 传统代码
- 这是我们熟悉的、由人类程序员用 Python、C++ 等语言明确编写的指令。
- 它是过去 70 年软件开发的主流范式。
- 软件 2.0 (Software 2.0): 神经网络
- 这是几年前出现的新范式,其核心不是代码,而是神经网络的 权重 。
- 开发者不直接编写逻辑,而是通过准备数据集和运行优化器来“训练”出软件(模型)。
- 案例 :在特斯拉,Karpathy 亲历了软件 2.0(神经网络)“吞噬”软件 1.0(C++ 代码)的过程。自动驾驶系统中的大量手动编码功能,如图像拼接和路径规划,逐渐被一个不断增长的、端到端的神经网络所取代。
- 软件 3.0 (Software 3.0): 可编程的大语言模型 (LLM)
- 这是最新的、最根本性的变革。LLM 不再是功能固定的模型(如图像分类器),而是 可以通过自然语言进行编程的通用计算机 。
- 在这里, 提示就是程序 。我们用英语来指导 LLM 完成任务,这是一种全新的编程语言,极大地降低了编程的门槛。
二、LLM 的本质:一个全新的操作系统 (OS)
Karpathy 认为,将 LLM 仅仅看作一个工具或模型是不够的,最恰当的比喻是一个全新的操作系统 。
- 1960 年代的计算模式 :目前的 LLM 类似于 1960 年代的大型机。它们计算成本高昂,被集中在云端,用户通过“分时共享”的方式(API 调用)来使用,就像当年的终端连接到中央计算机一样。个人计算革命尚未到来。
- OS 的组成部分 :LLM 就像是 OS 的“CPU”,上下文窗口(Context Window)是“RAM”,它能调用各种工具和知识来解决问题。
- 交互方式 :直接与 ChatGPT 对话,就像通过 终端(Terminal)与操作系统交互。而为特定任务设计的应用(如 Cursor)则像是为这个新 OS 开发的 图形用户界面(GUI) 。
- 独特的扩散方式 :与电力、GPS 等技术首先用于政府和企业不同,LLM 技术以前所未有的方式直接普及到了普通消费者(例如,用于“如何煮鸡蛋”),企业和政府反而在适应上滞后了。
三、理解LLM的特长和局限性
他指出,要高效地使用 LLM,必须理解它的特长和局限性。
- 特长 :拥有百科全书式的知识和近乎完美的记忆力,像电影《雨人》中的角色。
- 局限性 :
- 产生幻觉 (Hallucination) :会编造事实。
- 锯齿状智能 (Jagged Intelligence) :在某些领域是超人,但在一些简单问题上会犯低级错误(如“草莓有几个r”)。
- 顺行性遗忘症 (Anterograde Amnesia) :LLM 的权重是固定的,它们不会通过对话“学习”或积累长期记忆。每次交互都像第一天,必须在上下文窗口中提供所有背景信息。
- 易受攻击 (Gullible) :容易受到提示注入(Prompt Injection)等安全风险的影响。
四、AI 时代的两大机遇
Karpathy指出AI时代的两大机会:部分自主应用 (Partial Autonomy Apps)、Vibe Coding & 构建Agent友好工具 (Building for Agents)。
- 部分自主应用 (Partial Autonomy Apps)
它认为,短期内最大的机会不是追求完全自主的 AI 智能体,而是构建人机协作、部分自主 的应用。
- 核心理念 :让人类负责监督和验证,让 AI 负责生成和执行。关键是加速这个“生成-验证”的循环。
- 成功应用的特点 (以 Cursor 为例):
- 自动上下文管理 :应用自动为 LLM 准备好相关的代码和文件。
- 多模型编排 :后台调用多个不同的模型(嵌入、聊天、代码修改等)。
- 定制化的 GUI :提供比纯文本更高效的交互方式(如代码差异对比),让人类能快速审查 AI 的工作。
- 自主性滑块 (Autonomy Slider) :用户可以根据任务的复杂性,选择给予 AI 多大程度的自主权(从代码补全,到修改文件,再到重构整个项目)。
- 钢铁侠类比 :我们现阶段应该构建的是 钢铁侠战甲(增强工具) ,而不是完全自主的钢铁侠机器人军团(自主智能体)。
- Vibe Coding & 构建Agent友好工具 (Building for Agents)
由于 LLM 理解自然语言,普通人都可以vibe编程,这极大地解放了创造力,让更多的人可以开发自己的软件。
同时,他发现,真正的瓶颈不再是写代码,而是部署和运维 (DevOps) ,因为这些过程需要大量手动在网页上点击、配置,对 AI 智能体极不友好。
因此,未来的一个巨大机遇是改造现有的数字基础设施,使其对 AI 智能体友好 。 比如:
lm.txt
:类似robots.txt
,用简单的 Markdown 文件告诉 LLM 网站的核心内容和功能。- API 友好的文档
:将文档从面向人类阅读的图文,转变为 LLM 易于解析的 Markdown 格式,并将“点击这里”等指令替换为可直接执行的 API 调用(如
curl
命令)。 - 转换工具 :开发能将人类友好界面(如 GitHub 页面)一键转换为 LLM 友好格式(如单个文本文件)的工具。
总而言之,Karpathy为我们描绘了激动人心的未来,软件开发领域将迎来再次改变!
完整视频:
公众号回复“进群”入群获得PPT