撰文:Techub News 整理
导语
在创业孵化器 Y Combinator 的一场2025 年 6 月演讲中,OpenAI 联合创始人、前特斯拉 AI 总监 Andrej Karpathy(安德烈·卡帕西)分享了他对人工智能时代软件范式根本性转变的深刻观察。作为深度参与自动驾驶和大型语言模型(LLM)发展的核心人物,Karpathy 的见解对于理解当前技术浪潮的方向至关重要。本次演讲面向即将进入行业的年轻开发者,阐述了为什么现在是投身软件领域“极其独特而有趣”的时刻。
摘要
- 软件正经历70年来最根本的变革,进入“软件3.0”时代,其核心是用自然语言提示(Prompts)编程大型语言模型。
- 大型语言模型(LLM)可类比为新的“操作系统”,但目前尚处早期(类似1960年代的计算),通过云端分时共享使用。
- 未来的应用将是“部分自主”的,人类与AI协作,由AI生成内容,人类进行高效验证,并通过“自主性滑块”调节控制程度。
- 由于编程语言变成英语等自然语言,所有人都将成为潜在的程序员,“氛围编码”(Vibe Coding)成为新的开发范式。
- 为适应AI智能体这一新的“数字信息消费者”,软件基础设施(如文档、API)需要做出针对性改变,使其更易于机器理解和操作。
软件的根本性变革:从1.0到3.0
Andrej Karpathy(安德烈·卡帕西)开篇明义:软件正在再次发生根本性变化。他认为,软件的基本范式在70年里没有太大变动,但近几年却经历了两次快速变革。
他回顾了自己几年前提出的概念:软件1.0 是人类编写的明确指令代码(如C++、Python),而 软件2.0 则是神经网络的权重参数。人类不直接编写这些“代码”,而是通过整理数据集和运行优化器来“训练”出这些参数。Hugging Face 就相当于软件2.0领域的GitHub。
然而,最近的变化更为深刻。Karpathy 指出,过去的神经网络多是“固定功能计算机”(如图像分类器),而如今的大语言模型(LLM)变得“可编程”了。提示(Prompts)现在成了编程LLM的程序,并且这种编程语言就是英语等自然语言。他将此称为 软件3.0。
他以情感分类任务为例:你可以写Python代码(软件1.0)、训练一个神经网络(软件2.0),或者简单地给LLM一段提示,比如“分析这段文本的情感:……”(软件3.0)。这三种范式并存,开发者需要根据场景灵活选择。
Karpathy(卡帕西)以自己在特斯拉开发自动驾驶(Autopilot)的经历,生动说明了范式迁移的过程。最初,Autopilot 堆栈中充满了C++代码(软件1.0)和一些用于视觉识别的神经网络(软件2.0)。随着系统进化,神经网络的能力和规模不断增长,而许多原本由C++代码实现的功能(如多摄像头图像信息跨时空融合)被迁移到了神经网络中,导致大量C++代码被删除。软件2.0“吞噬”了软件堆栈。他预见,软件3.0也将以类似方式“吞噬”现有堆栈。
LLM是什么?效用、晶圆厂还是操作系统?
如何理解LLM的本质?Karpathy(安德烈·卡帕西)探讨了几种类比。
首先,LLM 具有公共效用(Utility)的属性,类似于电力。OpenAI、Google(Gemini)、Anthropic等LLM实验室投入巨额资本(Capex)训练模型,犹如建设电网;然后通过API按量(如每百万tokens)提供智能服务,这是运营支出(Opex)。用户对API有低延迟、高可用性、质量稳定等类似公用事业的要求。甚至出现了类似“电力转换开关”的服务(如Open Router),允许用户在不同LLM提供商间轻松切换。
其次,LLM 也像晶圆厂(Fab)。训练顶尖LLM需要巨大的资本投入和深厚的技术积累,形成了深厚的“科技树”和研发壁垒,这些都集中在少数LLM实验室中。不过这个类比略有不同,因为软件的可塑性更强,不像硬件制造那样具有绝对的防御性。
但Karpathy(卡帕西)认为,最贴切的类比是将LLM视为一个新的“操作系统”。这并非像水电那样从水龙头流出的简单商品,而是一个日益复杂的软件生态系统。目前格局也与操作系统市场相似:有几个闭源提供商(如Windows、macOS),也有开源的替代品(如Linux)。Llama生态系统目前可能最接近未来LLM领域的“Linux”。
他描绘了LLM作为操作系统的蓝图:LLM本身是新型计算机的“CPU”,上下文窗口是“内存”,LLM利用其多种能力(工具使用、多模态等)来协调内存和计算以解决问题。从这个角度看,它非常像一个操作系统。同样地,你可以下载一个LLM应用(如Cursor代码编辑器),然后选择在GPT、Claude或Gemini等不同的“操作系统”上运行它。
Karpathy(安德烈·卡帕西)进一步指出,我们目前正处于类似1960年代的计算阶段:LLM计算非常昂贵,因此集中在云端,我们通过网络以“分时共享”的方式使用它,个人计算革命尚未发生(因为不经济)。虽然有早期尝试(如在Mac Mini上本地运行某些模型),但真正的个人AI计算形态仍待发明。
他还强调了一个“前所未有”的特点:LLM颠覆了技术扩散的方向。以往如电力、计算机、互联网等技术,总是先由政府和企业采用,而后扩散至消费者。但LLM恰恰相反,它首先被亿万消费者用于“如何煮鸡蛋”这类日常问题,而企业和政府的采用反而滞后。这种“自下而上”的扩散速度惊人,ChatGPT几乎一夜之间就被“空投”到数十亿人的电脑上。
LLM的“心理学”:与有认知缺陷的超人共事
在编程LLM之前,必须理解它们的“心理”。Karpathy(卡帕西)认为,LLM是“人物之灵”(People Spirits),是人的随机模拟器,其模拟器是一个自回归Transformer神经网络。
这些“灵”拥有超人的能力:百科全书式的知识和记忆,远超任何个人,类似于电影《雨人》中的自闭症学者。但它们也有一系列认知缺陷:
- 幻觉(Hallucination):会编造信息。
- 参差智能(Jagged Intelligence):在某些领域超人类,却会犯人类不可能犯的简单错误(如坚持9.11 > 9.9)。
- 逆行性遗忘(Retrograde Amnesia):与人类同事不同,LLM不会随着时间的推移自然而然地积累和巩固知识。它们的“权重”是固定的,上下文窗口如同工作记忆,每次交互后会被“擦除”,就像电影《记忆碎片》或《初恋50次》的主角一样。如何让它们持续学习是一个未解决的研发问题。
- 安全限制:容易轻信,易受提示注入攻击,可能泄露数据等。
因此,开发者的挑战在于:如何与这些同时具备超人能力和显著认知缺陷的“灵”合作,绕开其缺陷,利用其超能力。
机会之地:构建“部分自主”应用
面对这种新型“计算机”,最大的机会是什么?Karpathy(安德烈·卡帕西)重点阐述了“部分自主应用”的理念。
他举例说,对于编码任务,你不会总是直接去ChatGPT界面复制粘贴。更好的方式是使用像 Cursor 这样的专用应用。Cursor 代表了早期LLM应用的一些共同关键属性:
- 上下文管理:LLM处理了大量的上下文管理工作。
- 多LLM调用编排:底层可能协调了嵌入模型、对话模型、代码补丁应用模型等多个模型。
- 应用特定GUI的重要性:GUI让人能够审计这些容易出错系统的工作。例如,以红绿色高亮显示代码差异(Diff),按一个键接受或拒绝,远比阅读文本指令高效。GUI利用了人类强大的视觉处理能力。
- 自主性滑块(Autonomy Slider):用户可以根据任务复杂度,控制AI的自主程度。在Cursor中,可以是简单的标签补全(低自主)、修改选中的代码块(中自主),或是让AI在整个代码库中自由发挥(高自主)。
另一个例子是 Perplexity(AI搜索工具),它也具备类似特征:打包信息、编排多个LLM、提供可溯源结果的GUI,以及提供快速搜索、深度研究等不同自主程度的模式。
Karpathy(卡帕西)预测,很多软件都将变得“部分自主”。关键问题是:LLM能否看到人类所能看到的一切(应用状态)?能否执行人类所能执行的所有操作?人类能否监督并保持在环?我们需要重新设计软件界面,使其既能被人类操作,也能被LLM理解和操作。例如,Photoshop中的“差异”应该如何呈现给AI?
他强调,在这种人机协作中,AI负责生成(Generation),人类负责验证(Verification)。我们的核心利益是让这个循环尽可能快。为此:1) 需要加快验证速度,GUI是关键;2) 必须“拴住AI”(Keep AI on the Leash)。对AI智能体过度兴奋是危险的。如果AI一次性生成上万行代码差异,人类仍然是验证的瓶颈,需要确保没有错误、安全漏洞且符合意图。因此,他提倡采取小步快跑、增量验证的工作流。
他以AI教育为例:直接让ChatGPT“教我物理”很容易迷失方向。更好的方式是分解为两个应用:一个给教师用的课程创建应用,一个给学生用的课程学习应用。中间产物是结构化的、可审计的课程大纲,这样就把AI“拴在”了特定的教学路径上,避免了其“在森林中迷路”。
Karpathy(安德烈·卡帕西)借用他在特斯拉研发自动驾驶的经验和《钢铁侠》战衣的类比,进一步阐释了“部分自主”和“自主性滑块”的概念。自动驾驶汽车和钢铁侠战衣都是“部分自主产品”,既能增强人类( augmentation),也能作为独立智能体(agent)。他提醒,鉴于当前LLM尚不完美,我们应更多关注构建增强人类的“钢铁侠战衣”(部分自主产品),而非炫酷但不可靠的全自主智能体演示。产品应具备自定义GUI和用户体验,旨在加速“生成-验证”循环,但同时也要保留未来向更高自主性平滑过渡的可能性。
人人都是程序员:“氛围编码”与为智能体设计
软件3.0的另一革命性影响是:编程语言变成了英语等自然语言,这意味着人人都可能成为程序员。过去需要5-10年学习才能进行软件开发,现在情况不同了。
Karpathy(卡帕西)提到了他无意中催生的网络迷因——“氛围编码”(Vibe Coding)。这指的是开发者凭借直觉和与LLM的自然语言对话来构建软件,而非严格遵循传统编程规范。他分享了一个孩子们用这种方式编程的温馨视频,认为这将是引导新一代进入软件开发的“入门毒品”,并对未来感到乐观。
他用自己的两个“氛围编码”项目为例:一个用不熟悉的Swift语言编写的iOS应用,以及一个解决实际问题的网站 Menu Gen(拍摄菜单生成菜品图片)。后者在几小时内就做出了demo,但将其变为真正的产品(涉及认证、支付、部署等)却花了一周,因为这些“运维”工作充满了需要在浏览器中手动点击的繁琐指南。这引发了他的思考:为什么不能让AI智能体来完成这些工作?
这引出了演讲的最后一个维度:为AI智能体设计(Building for Agents)。Karpathy(卡帕西)指出,数字信息的消费者和操控者除了人类(通过GUI)和计算机(通过API),现在增加了第三类:AI智能体(Agents),也就是那些在互联网上运行的“人物之灵”。我们的软件基础设施需要适应它们。
他举例说明了几种方式:
- 提供机器可读的文档:像 Vercel 和 Stripe 等公司已开始提供专门针对LLM优化的Markdown格式文档,因为Markdown易于LLM解析。他们甚至将文档中的“点击此处”替换为对应的cURL命令,以便智能体直接执行。
- 专用协议与文件:例如,可以有一个 `lm.txt` 文件(类似 `robots.txt`),用自然语言向LLM说明网站的内容和用途。Anthropic提出的 模型上下文协议(Model Context Protocol) 也是为此目的。
- 转换工具:出现了一些工具,能将现有的人类界面(如GitHub仓库)转换为适合LLM消化和分析的格式(如GitIngest、Deep Wiki),只需修改URL即可实现。
Karpathy(安德烈·卡帕西)认为,虽然未来LLM可能更擅长直接操作GUI,但现在“半路迎接”它们,为它们提供更友好的访问方式,仍然非常有价值,特别是对于那些可能不会主动适配的长尾软件。
结语:携手塑造软件的未来
Andrej Karpathy(安德烈·卡帕西)最后总结道,当前是进入软件行业的绝佳时机。我们需要重写大量代码,这些代码将由专业人士和AI“程序员”共同完成。
LLM既是公用设施,又像晶圆厂,但最像是一个处于1960年代早期阶段的操作系统。它们是拥有认知缺陷的“人物之灵”,我们需要学会与之协作,并为此调整我们的基础设施。在构建LLM应用时,应采用有效的工作方式(如快速生成-验证循环、保持AI受控),打造“部分自主”产品。同时,也需要直接为AI智能体编写更多代码。
回到钢铁侠战衣的类比,未来十年,我们将共同推动“自主性滑块”从左向右移动,逐步探索人机协作的深度与广度。Karpathy(卡帕西)对与新一代开发者共同构建这个未来充满期待。










