前特斯拉AI总监,AI大佬 Andrej Karpathy
在最新演讲中揭示了软件发展的革命性变化
在科技发展的历史长河中,很少有技术能够在如此短的时间内彻底改变一个行业的基础架构。
然而,人工智能正在做到这一点。
Andrej Karpathy
在演讲中,为我们描绘了一个令人震撼的图景:软件正在经历70年来最根本的变化,我们正站在"软件3.0时代"的门槛上。
为了方便大家阅读,本文是对该演讲的翻译、整理和总结
软件演进的三次革命
从手工编程到神经网络的跨越
Karpathy
将软件的发展历程划分为三个截然不同的时代。
软件1.0时代
是我们最熟悉的世界------程序员使用Python、C++等编程语言,一行行地编写明确的指令,构建起我们今天数字世界的骨架。
所有的逻辑都来源于人类的智慧,代码被整齐地存放在GitHub这样的代码仓库中。
软件2.0时代
伴随着深度学习的兴起。在这个时代,软件的核心不再是人类编写的指令,而是神经网络的"权重"。
程序员不再直接"写"程序,而是通过精心构建数据集和优化器,去"寻找"能够解决问题的程序------也就是训练完成的神经网络模型。
Hugging Face
平台就像是软件2.0时代的GitHub
,汇集着无数的AI模型。
Karpathy
在特斯拉工作期间,亲眼见证了软件2.0如何逐步"吞噬"传统的C++代码。
在自动驾驶系统的开发中,感知、融合、规划等复杂任务逐渐被整合进更大、更强韧的神经网络中,传统代码被一行行删除。
软件3.0:自然语言成为编程语言
然而,真正的革命发生在软件3.0时代。大型语言模型(LLM)的出现创造了一种全新的计算实体。如果说过去的神经网络像是功能固定的专用机器,那么LLM就像是一台可编程的通用计算机。
最令人惊叹的是,这台新计算机的编程语言竟然是人类的自然语言------英文、中文、或任何我们日常使用的语言。我们通过"提示词"来指挥这台新计算机,这意味着编程的门槛瞬间消失,数十亿会说话的人一夜之间都成为了潜在的"程序员"。
LLM:新时代的操作系统
多重身份的技术巨兽
Karpathy
用了一系列精妙的比喻来解析LLM在技术生态中的定位。
首先,他很赞同LLM确实像吴恩达所说的"新时代的电力"
------它们通过API像电网一样输送智能。用户按需付费,要求低延迟、高可用性和一致的质量。
同时,LLM也具有半导体制造业的特征。
训练一个大型模型需要巨额资本投入,拥有复杂的技术路线图和研发秘密。有些公司采用"Fabless"模式,使用Nvidia
的GPU但不制造硬件;而像Google
这样的公司则拥有自己的TPU,类似于Intel的自有制造模式。
但 Karpathy
认为,最贴切的比喻是 操作系统 。当前的LLM生态正如个人电脑的早期历史:有OpenAI
、Google Gemini
这样的封闭系统(类似Windows
和Mac OS
),也有以Llama
为代表的开源生态(类似Linux
)。
在这个新操作系统中,LLM本身是CPU,上下文窗口是内存(RAM),它们协调着内存和计算来解决问题。我们目前与ChatGPT
的对话,就像在1960年代通过文本终端与大型机交互------我们还处在"时间共享"的云端时代,个人计算的革命尚未真正到来。
技术扩散的逆转
有趣的是,LLM的普及模式完全颠覆了传统技术的扩散路径。通常,新技术首先被政府和大企业采用,然后才扩散到消费者。但LLM却直接面向普通用户------它们帮助我们煮蛋、写邮件、解决日常问题,而政府和企业反而在采用上显得滞后。
与"有瑕疵的天才"共事
超能力与认知缺陷并存
要有效利用LLM,我们必须理解它们的本质。Karpathy
将LLM比作"有瑕疵的天才"------它们拥有如电影《雨人》主角般的超凡记忆力,能记住互联网上海量的知识,甚至可以背下整本电话簿。
但同时,LLM也存在明显的认知缺陷:
- 幻觉问题:会编造事实,缺乏足够的自我认知
- 锯齿状智能:在某些领域超越人类,却在其他领域犯下人类绝不会犯的低级错误(比如坚持9.11大于9.9,或认为strawberry中有两个R)
- 顺行性遗忘症:如同电影《记忆拼图》的主角,每次对话结束记忆就归零,无法从交互中持续学习
理解这些特性至关重要,因为我们需要设计一种既能发挥其长处又能规避短处的工作流程。
打造"钢铁人战甲"而非全自动机器人
部分自主应用的兴起
基于对LLM特性的深刻理解,Karpathy
提出了一个核心开发哲学:现阶段的目标不应该是创造全自主的AI代理,而是打造"半自主的应用程序",就像托尼·斯塔克的钢铁人战甲。
成功的半自主应用,如代码编辑器Cursor
和搜索工具Perplexity
,都具备几个共同特点:
智能的上下文管理:自动收集所有相关信息,喂给LLM处理。
多模型协调 :在后台调度不同功能的LLM分工合作。Cursor
就同时使用嵌入模型处理文件、聊天模型进行对话、差异应用模型修改代码。
专用的UI/UX:设计高效的可视化界面让人类快速验证AI的输出。人类的视觉系统是"高带宽"的,图像化的差异对比远比阅读纯文字快速。
可调节的自主性 :提供一个"旋钮"让用户根据任务复杂度调整AI的介入程度。在Cursor
中,你可以选择简单的Tab补全,也可以让AI修改整个代码库。
人机协作的黄金法则
成功的AI应用遵循一个基本循环:人类生成指令 → AI执行 → 人类验证。这个循环越快,生产力就越高。为了加速这个过程,需要:
- 加速验证:利用GUI和可视化,让人类的"视觉GPU"快速处理信息
- 保持AI在控制范围内:避免产生过大的变更(比如10,000行代码的差异),因为人类仍然是验证的瓶颈
Karpathy以自己在Waymo的经历为例提醒大家:即使在2013年就能完美演示自动驾驶,但解决最后1%的长尾问题却花了超过十年。同样,实现真正的AI代理也将是一段漫长的旅程。
"Vibe Coding":人人都是程序员
编程门槛的彻底消失
软件3.0时代最激动人心的变化之一,就是自然语言成为了编程语言。这催生了"Vibe Coding"
现象------通过自然语言进行编程,无需深入学习传统编程语言。
Karpathy
分享了自己的亲身体验:尽管不会Swift编程,他却在一天内完成了一个iOS应用并在手机上运行。这种体验让他深深震撼------过去需要花费数天学习Swift基础的工作,现在几乎瞬间就能上手。
他还开发了一个名为MenuGen的应用(menu.app),功能是为餐厅菜单生成图片。有趣的是,编写核心代码只花了几个小时,但处理支付、身份验证、部署等DevOps工作却耗费了一整周。这揭示了一个重要问题:虽然编程变得简单,但系统集成仍然复杂。
新挑战:为AI代理重新设计软件
这种体验让Karpathy
意识到,我们需要开始为一种全新的"数字物种"------AI代理------设计软件。传统上,数字信息只有两种消费者:人类(通过GUI)和计算机(通过API)。现在我们有了第三种:AI代理,它们像"互联网上的人类精神"。
为了让AI代理更好地工作,我们需要:
专门的文档格式:就像网站有robots.txt指导搜索引擎,我们可能需要lms.txt来指导LLM。将文档转换为LLM易读的Markdown格式,把"点击这里"这样的指令转换为代理可执行的curl命令。
代理友好的工具:开发各种小工具,将为人类设计的网页或程序库转换成适合LLM读取的格式。比如将GitHub仓库转换为单一文本文件的Git Ingest工具,或者Deep Wiki这样的智能分析工具。
重写软件的时代
前所未有的机遇
Karpathy
的演讲揭示了一个令人振奋的现实:我们正站在一个需要重构、重写、重新想象几乎所有软件的时代。从底层的操作系统概念,到上层的应用交互模式,再到信息本身的呈现方式,都在经历剧烈变动。
这为新一代的开发者、设计师和思想家创造了巨大的机遇:
- 大量软件需要重写:适应AI时代的新需求
- 新的编程范式:需要掌握1.0、2.0、3.0三种编程方式
- 编程门槛降低:让更多人参与到软件创造中
- 全新应用类别:半自主应用的广阔空间
十年发展路径
Karpathy
预测,未来十年我们将逐步推动"自主性滑块"从左向右移动------从人类增强的"钢铁人战甲"模式,逐步迈向更高的自主性。但这个过程需要谨慎和耐心,因为我们处理的是复杂的软件系统,需要确保安全性和可靠性。
结语:拥抱变化的时代
正如 Karpathy
所说,这是一个"进入行业的绝佳时机"。软件正在经历70年来最根本的变化,这种变化的规模和速度都是前所未有的。
对于每一个技术从业者来说,理解这种变化并积极适应至关重要。我们不仅要学会与AI协作,更要学会为AI设计,为这个人机共存的新时代构建更好的工具和系统。
这不仅仅是技术的进步,更是人类与机器关系的重新定义。在这个充满挑战与机遇的时代,每个人都有机会成为这场伟大变革的参与者和推动者。
软件3.0时代已经到来,问题不是我们是否准备好了,而是我们如何更好地拥抱这个变化。正如Karpathy所展望的,这将是一个需要新一代开发者、设计师和思想家共同参与构建的未来。