Andrej Karpathy: AI时代的软件

这是Andrej Karpathy关于AI时代软件变革的演讲摘要。点击下方章节标题展开查看核心要点。

第一部分:软件的三个纪元

软件正在经历70年来最根本的变革,并且在过去几年内快速迭代了两次。

  • 软件 1.0: 人类用Python、C++等语言编写的传统代码。这是给计算机的明确指令。
  • 软件 2.0: 神经网络的权重。我们不直接编写代码,而是通过优化数据集来“训练”出程序。Hugging Face就像是软件2.0时代的GitHub。
  • 软件 3.0: 可编程的大语言模型(LLM)。我们现在使用自然语言(如英语)作为编程语言,通过Prompt来编程LLM这个“新计算机”。
第二部分:LLM是什么?—— 新的操作系统

演讲者用多个类比来描述LLM的本质,其中“操作系统”最为贴切。

  • 像公共设施 (Utility): OpenAI等公司投入巨资(Capex)训练模型,然后通过API按Token计量收费(Opex)。我们要求它像电力一样稳定、低延迟。
  • 像芯片工厂 (Fab): 训练LLM需要巨大的资本和技术壁垒,类似芯片制造。使用Nvidia GPU像无厂模式(Fabless),Google用TPU则像Intel的自有工厂模式。
  • 最像操作系统 (Operating System): LLM不仅仅是商品,而是复杂的软件生态系统
    • LLM是CPU,上下文窗口是内存(RAM),它协调计算和内存来解决问题。
    • 生态位类似:有闭源的(如GPT-4/Windows)和开源的(如Llama/Linux)
    • 我们正处于“1960年代的大型机时代”,计算昂贵,通过云端分时共享。个人计算革命尚未到来。
    • 直接与ChatGPT对话,就像通过终端(Terminal)与操作系统交互,GUI尚未被发明。
第三部分:LLM的“心智”特征

LLM就像“人类心智的随机模拟器”,它有超能力,也有认知缺陷。

  • 超能力: 拥有百科全书式的知识和记忆力,像电影《雨人》中的主角。
  • 认知缺陷:
    • 幻觉 (Hallucination): 会编造事实。
    • 参差不齐的智能 (Jagged Intelligence): 在某些方面超神,在另一些方面犯低级错误。
    • 顺行性遗忘症 (Anterograde Amnesia): LLM不会自动学习和成长,每次交互都是“新的一天”,需要通过上下文窗口(工作记忆)来加载信息。
    • 安全漏洞: 容易受到Prompt注入攻击,泄露数据。
第四部分:机会一:部分自主应用 (Partial Autonomy Apps)

我们不应该直接使用“操作系统”,而应该构建基于它的“应用”。这些应用的核心是人机协作。

  • 案例: Cursor (编程) 和 Perplexity (搜索) 是成功的早期LLM应用。
  • 共同特征:
    1. 自动上下文管理: 应用自动处理相关信息的加载。
    2. 多模型协同: 在后台调用不同模型(如嵌入、聊天、代码修改)。
    3. 应用专属GUI: GUI至关重要,它利用人类视觉GPU,让审核(Verification)更高效。比如,代码diff比纯文本更容易理解。
    4. 自主性滑块 (Autonomy Slider): 用户可以控制AI的自主程度,从辅助(Tab补全)到完全自主(重构整个项目)。
  • 核心循环: AI负责生成(Generation),人类负责审核(Verification)。目标是让这个循环尽可能快。 我们需要给AI“套上缰绳”,避免它产出过于复杂、难以审核的结果。
第五部分:机会二:Vibe Coding 与编程民主化

由于编程语言是英语,编程的门槛被前所未有地降低了。

  • Vibe Coding: 指非专业人士仅凭“感觉”和自然语言描述,就能与AI协作构建出可用的软件。
  • 案例: 演讲者展示了自己用Vibe Coding一天内做出的iOS应用和一个在线菜单生成应用(Menu.app)
  • 痛点: 编码本身很简单,但部署、认证、支付等DevOps流程却极其繁琐,因为这些流程的文档和界面都是为人类设计的,需要大量手动点击。
第六部分:机会三:为AI智能体构建基础设施

我们应该将AI智能体视为一类新的“用户”,并为它们重构我们的数字基础设施。

  • 问题: 当前的网页、文档和API都是为人类设计的,AI难以理解和操作(例如,“点击这里”)。
  • 解决方案:
    • `lm.txt`: 类似`robots.txt`,用Markdown为LLM提供网站的简明摘要和指南。
    • LLM友好的文档: Vercel和Stripe等公司开始提供纯Markdown格式的文档,并将“点击”操作替换为AI可以执行的`curl`命令。
    • LLM友好的数据格式: 出现了一些工具(如Git-Ingest, Deep-Wiki),可以将GitHub仓库等复杂信息源转换成单一、易于LLM处理的文本格式。
结论:打造“钢铁侠战衣”

当前阶段,我们应该专注于构建“钢铁侠战衣”(增强人类),而不是追求完全自主的“钢铁侠机器人”(替代人类)。

  • 这是一个“智能体十年”(Decade of Agents),而不是“智能体之年”。
  • 我们需要重写大量软件,使其具备部分自主性。
  • 我们需要为AI智能体重新设计基础设施。
  • 我们的工作是在未来十年里,将“自主性滑块”从左(人类主导)慢慢推向右(AI主导)。这是一个充满机遇的时代。

原文

源链接