AI 时代的软件演进

深度解析前沿趋势:从代码生成、大模型操作系统到“氛围编程”

🎯 核心受众: 即将步入行业的计算机专业学生(本科、硕士、博士),以及面临 AI 范式切换的软件开发者与产品构建者。
AK

Andrej Karpathy (安德烈·卡帕斯)

背景标签: 前特斯拉 AI 视觉总监 / OpenAI 创始成员及前研究员
核心贡献: 推动了深度学习、计算机视觉以及自动驾驶(Tesla Autopilot)的突破性进展。现投身于 AI 教育与创新软件范式(Software 3.0)的推广。
本次演讲:《Software in the era of AI》全面勾勒了大型语言模型(LLM)作为新一代计算平台的蓝图,并给出了开发者应如何应对的实操指南。

⚡ 颠覆认知的“反常识”洞察

1. 技术的“逆向扩散”

传统尖端技术(如互联网、GPS)总是先由军工/政府/大企业采用,再下放给消费者。而大模型截然相反:普通人先用它来“查怎么煮鸡蛋”,而政府和企业的应用反而大幅落后。

2. 别迷恋“全自动”,请牵好狗绳

很多人狂热追求“让 AI 自动写完 10000 行代码”。Karpathy 警告:不要这么做!由于人类依然是代码审核的瓶颈,一次性塞来海量代码极易引发灾难。正确做法是小步快跑,用 GUI 将 AI“牵在狗绳上” (Keep on a leash)。

3. “氛围编程”的最难点不是写代码

用自然语言写应用(Vibe coding)时,生成核心代码非常简单(几小时搞定),真正耗时一周的噩梦反而是:搞定 DevOps、域名部署,以及按照人类编写的糟糕文档去点击配置第三方登录 API。

4. 超级大脑患有“短期遗忘症”

大模型有百科全书般的超强记忆力,却患有严重的“顺行性遗忘症”。它不像人类新员工能日积月累积累公司知识,它每天醒来都会清空上下文窗口,这决定了我们必须对它的“工作记忆”进行极其精细的编程。

核心金句 (Golden Quotes)

“我们现在正在用英语对计算机进行编程。这不仅仅是新范式,也是人类原生语言的奇迹。”

“大模型是人类的随机模拟器,它们就像游荡在互联网上的‘数字人类幽灵’(People spirits)。”

“现在还不是‘Agent之年’,这将是‘Agent的十年’。我们要打造的是‘钢铁侠的战甲’,而不是完全脱离人类的机器人。”

“当最顶尖的 LLM 宕机时,就像电网电压不稳,整个地球都在经历一次‘智力断电’(Intelligence brownout)。”

核心概念:知识翻转卡片

💡 悬停(或点击)卡片查看核心要点细节

💻

软件范式的三次跃迁

Software 1.0 ➜ 3.0

  • Software 1.0: 人类手写明确的逻辑指令 (如 C++, Python)。平台:GitHub。
  • Software 2.0: 神经网络。不再手写逻辑,而是优化数据和权重 (如 AlexNet)。平台:HuggingFace 成为新的 GitHub。
  • Software 3.0: 大型语言模型 (LLM)。通过自然语言(英语)编写 Prompt 进行编程。软件栈正被 3.0 快速吞噬。
⚙️

LLM 的三大本质特征

Utility / Fab / OS

  • 公共事业 (Utility): 像电网一样通过 API 计费。可用 Open Router 切换供应商。
  • 晶圆厂 (Fab): 需要极高的 Capex(资本支出) 和 Opex(运营支出),技术壁垒深厚,由巨头主导(类似Intel模式与Fabless模式)。
  • 操作系统 (OS): 核心比喻!LLM 类似 CPU,上下文窗口是内存。当前处于 1960 年代,算力昂贵,只能在云端“分时共享”。
🧠

LLM 的心理学与认知

超能力与认知缺陷的结合

  • 超级记忆: 具有百科全书式的知识储备(像电影《雨人》中的自闭症天才)。
  • 锯齿状智能: 在某些领域远超人类,却会犯极低级的错误(例如坚持认为 9.11 > 9.9,或者数错单词里的字母R)。
  • 认知缺陷: 容易产生幻觉 (Hallucinations);容易轻信导致安全隐患 (Prompt Injection)。
🛠️

半自治应用设计

Partial Autonomy Apps

  • 不要直接面对终端: 不要像 60 年代那样直接在终端打字,应用需要定制化 GUI 协助人类快速视觉审计。
  • 代表案例: Cursor (代码编辑) 和 Perplexity (搜索)。
  • 自治度滑块 (Autonomy Slider): 把控制权交给人。从局部微调(Command+K),到修改整文件(Command+L),再到全自动运行(Command+I),按需调节。
🎶

氛围编程 (Vibe Coding)

代码的彻底民主化

  • 定义: 凭借自然语言直觉与 AI 互动来创建应用。门槛极低,任何人(甚至是小孩)都可以成为程序员。
  • 实践案例: Karpathy 用一天时间靠 Vibe Coding 写出了 Menu.app(给菜单自动生成图片的工具)。
  • 验证循环: AI 负责“生成”,人类负责“验证”。必须让这个“生成-验证”的循环转得越快越好。
🤖

为智能体构建基础设施

Building for Agents

  • 新物种消费者: 数字信息的受众不再只是“人类看GUI”或“电脑调API”,新增了“Agent作为人类幽灵漫游”。
  • 文档革新:llm.txt 和 Markdown 格式专门为大模型提供文档(Vercel, Stripe 已在推行)。
  • 指令化改造: 去掉文档中的“请点击这里”,改为机器可直接执行的 curl 命令,迎接 MCP (Model Context Protocol) 时代。

深度事实解析与案例延伸

传统技术(如早期计算机研究弹道学、密码学、互联网、GPS)都是政府、军工或大企业率先垄断使用,由于其昂贵和复杂,只有数年后才会“向下扩散”给普通消费者。
但在大语言模型(LLM)上,发生了极具反常识的逆向扩散:LLM 作为纯软件,瞬间被部署到了全球数十亿人的个人设备上。普通大众用 ChatGPT 来查菜谱“煮鸡蛋”,而政府和大企业在采用和适应这项 AI 技术方面,却大幅落后于普通用户。

很多人对“全自动 Agent”抱有不切实际的幻想。Karpathy 强调:作为开发者,你绝对不想收到一个由 AI 瞬间生成的 10,000 行代码的合并请求(Diff)反常识的是:AI 越快,人类反而越容易成为瓶颈。因为人类依然需要极其审慎地确保这 1万行代码没有引入隐藏 BUG 或安全漏洞。

实操建议:

  • 把大任务拆解为具体的“微小块”(small incremental chunks) 迭代。
  • 如果提示词模糊,验证必定失败。花更多时间写出精确的提示词,能有效防止 AI“在森林里迷路”。
  • 教育案例:如果你直接让 ChatGPT "教我物理",AI 会迷失。正确做法是分离系统:一个工具让 AI 严格根据教学大纲生成知识点结构,另一个工具负责呈现给学生。通过中间可见的“产物”将 AI 牢牢“牵在绳上”。

Karpathy 回忆他在 2013 年乘坐 Waymo 自动驾驶汽车,在帕罗奥图体验了 30 分钟无干预的“完美驾驶”。他当时觉得“自动驾驶马上就要实现了”。然而 12 年后的今天,这依然是一个未完全解开、需要人类远程协助的难题。

这也印证了软件开发的残酷现实:解决 90% 的问题容易,搞定最后 10% 的边缘情况极难。因此,他警告说,那些声称“2025年是Agent之年”的说法过于乐观。未来的 AI 产品必须具备“自治度滑块 (Autonomy Slider)”。我们要打造的是钢铁侠战甲 (Iron Man Suit)——既能够增强人类能力由人类亲自驾驶,也能在需要时切换为自主模式完成特定任务。

由于“氛围编程”中人类最痛苦的是配置繁杂的环境和API,我们需要向 AI 妥协,主动改造互联网环境,使其“机器友好”:

  • getingest 工具: 当把一个 GitHub 链接换成 getingest 链接时,它能自动把繁杂的文件目录拼合为一个单一长文本文件,便于直接复制喂给 LLM。
  • Deep Wiki / Devon: 不仅提供生肉代码,还让 AI (如 Devon) 事先分析代码库,生成专属的文档网站结构再投喂给 LLM。
  • 3Blue1Brown 动画实验: Karpathy 发现,不再需要自己去逐行阅读 Manim (生成数学动画的库) 的复杂文档,只要把 Markdown 格式的文档一股脑丢给 LLM,告诉它需求,动画代码直接“开箱即用”。

原文

源链接