作者:微信文章
2025年6月17日,在旧金山的“AI Startup School”,Andrej Karpathy发表了题为“Software is Changing”的主题演讲,介绍了AI时代,传统的软件开发模式正在经历怎样的变化,过程中他提到了软件开发的三个阶段,大模型在未来社会中的重要地位,AI编程目前存在的挑战和解决方案。在分享具体内容之前,我们先一起了解一下Andrej Karpathy这个人。Andrej Karpathy是当代人工智能(AI)领域最具影响力的研究者和工程师之一,尤其以其在深度学习、计算机视觉和大语言模型方面的研究和工程实践而闻名。他在学术界、工业界和开源社区都留下了重要贡献。Andrej Karpathy 1986年出生于斯洛伐克,15岁移民加拿大。2009 年在多伦多大学获得计算机科学与物理双学士,2011 年在不列颠哥伦比亚大学获硕士学位(研究物理模拟),2015 年在斯坦福大学获博士,导师为李飞飞(Fei-Fei Li),研究聚焦视觉与自然语言交叉领域。他是OpenAI的早期核心研究者,2015-2017年,参与构建 GPT 系列早期版本,包括 GPT-2 的架构优化;2017年加入Tesla,担任高级 AI 主管,全面负责视觉系统研发,主导将端到端神经网络应用于自动驾驶(包括训练、部署、软硬协同如 Tesla 自研推理芯片),领导团队成功将Tesla 切换至全视觉路线;2023年短暂回归OpenAI,参与了GPT-4 的工程攻关及运行机制研究。现在,Andrej Karpathy是独立技术布道者和开发者,创立 AI 教育平台Eureka Labs,推出“GPT101n”、编程助手等工具;编写了miniGPT/nanoGPT开源代码库,帮助开发者从零实现小型 GPT;并且发布大量教育资源,包括解释反向传播、可视化模型结构等内容。下面我们就来看看这样一位AI界的资深人士,对AI时代的软件开发有着怎样的理解和建议。Karpathy的核心论点是“软件正在改变,但更重要的是--编程正在改变。”传统软件开发模式正被AI技术所颠覆,从底层工具、开发流程到开发者角色都在转型。
Karpathy首先提出了一个极具洞察力的概念体系,即软件开发方式的三次演变浪潮:Software 1.0、Software 2.0和Software 3.0。
Software 1.0:传统编码范式软件开发1.0是大家最为熟悉的范式,由人类显式编写逻辑规则和算法,程序行为完全由开发者控制,依赖C++、Java、Python等语言进行逐步构造。
Software 2.0:以数据训练为核心的机器学习范式软件开发2.0的核心,是“我们不再写规则,而是教机器从数据中学规则”。开发者不再编写规则,而是提供大量数据+神经网络结构,软件行为由“数据+模型训练”自动学习得出,开发重心从“写代码”转向“设计模型与数据集”。这也是目前流行的各类大模型的生成模式。
Software 3.0:AI智能体+人类写作范式(Agentic Software)软件3.0的范式不只是调用模型,而是围绕AI智能体的状态管理、任务调度和工具能力构建系统。软件通过“对话+工具使用+规划+反馈”来完成任务,开发者由“模型设计者”进化为“目标定义者与监督者”。
Karpathy借助“Software 3.0”这一概念提出,软件不再只是“写出来的东西”,而是“组织和指挥AI Agent完成工作的系统”。软件工程正从“人写机器运行”转向“人与机器共创、协商、调度”的新纪元。
到这里,我想大家可能已经注意到,Karpathy并不主张完全由AI独立完成开发,而是强调一种更为可持续、现实且高效的范式--“AI 与人类协作”的软件开发新模式。Karpathy明确表达了对“全自动化开发”的质疑,并提出了更具前瞻性的替代方案。
反对“全自动AI开发”的幻想主义Karpathy在演讲中提到 “The best future of software is not agents that write software alone. It is agents that write software with you.”
即:“最理想的软件开发未来,并不是完全由AI独立编写软件,而是AI与你共同开发软件。”
Karpathy认为,与其让 AI 去适应旧的工程系统结构,不如主动重构系统,面向智能体进行设计,包括:提供结构化部署API、agent友好接口,提供AI友好的权限说明文档与简化授权方式,以及agent可读的审批规则、测试反馈格式等。AI 正在改变软件,但我们必须也改变软件本身,以便 AI能更好地与之协作。