AI写代码真香?卡帕蒂深夜怒斥:大模型在原创架构面前全是认知残废!

前特斯拉AI总监、OpenAI创始成员安德烈·卡帕蒂亲述:大模型只会“套路”,遇到从未见过的代码结构就翻车;别指望它们明天就能自我迭代出AGI。

——— 第一章:谁是卡帕蒂?先给兄弟们上个Buff ———  
安德烈·卡帕蒂。他1986年出生于斯洛伐克,少年时期移民加拿大,在多伦多大学拿下计算机科学学士,随后直通斯坦福大学攻读博士,师从李飞飞教授,专攻计算机视觉和深度学习。
毕业后,他先是加入谷歌大脑,后来被马斯克亲自点名挖到特斯拉,主导Autopilot自动驾驶系统的AI架构设计,是特斯拉早期感知系统的核心奠基人之一。
再后来,他作为联合创始人加入OpenAI,参与了GPT系列模型初期的技术路线设计。虽然他已离开OpenAI多年,但业内始终把他当成AI工程化落地的第一线实践者。

去年,他一个人闭关一个多月,手写了一个极简大模型训练框架nanochat,代码干净得能当教科书,GitHub星标一路狂飙,全球高校争相引入。

就这样一位神仙级的人物,最近却在多个播客和推特上狂喷大模型写代码能力,说它们在原创逻辑面前根本就是“认知残废”。这句话一出,直接把AI圈搅得天翻地覆。今天咱们就把他原话一砖一瓦拆开,看看顶流到底看到了什么我们普通人看不到的陷阱。


——— 第二章:三个月手写nanochat,卡帕蒂到底在憋什么大招 ———  
卡帕蒂做nanochat的初衷,不是为了炫技,而是为了“让大模型训练过程变得可读、可学、可改”。

现在的开源框架,比如Hugging Face Transformers、Megatron-LM,动辄几十万行代码,嵌套无数抽象层,新人一打开就懵,根本不知道梯度是怎么传的、数据是怎么分的、显存是怎么省的。

卡帕蒂反其道而行之:
他不用PyTorch官方的DDP(分布式数据并行),而是自己在优化器的step函数里插入一行all_reduce,直接完成多卡梯度同步;
他不用封装好的Trainer,而是从零搭建数据加载、前向传播、反向传播、参数更新的完整流水线;
他甚至把RoPE位置编码、分词器、训练循环全塞进一个不到500行的脚本里。

整个项目没有注释、没有文档、没有花里胡哨的配置文件,但每一行都精准得像手术刀。

他说:“我不是在写一个能跑的产品,我在写一个能让学生一眼看懂‘大模型是怎么活过来的’的解剖图。”

这种极简主义背后,是对工程本质的极致追求。也正因为如此,当大模型试图帮他“优化”这段代码时,才暴露出它们根本看不懂“裸奔式”的原创逻辑。

——— 第三章:三流派程序员画像,你在哪一档?———  
卡帕蒂把当下用AI写代码的人,清晰分成三类。

第一类是“原始人派”:坚决不用Copilot、CodeWhisperer这类工具,认为代码必须亲手敲,仿佛键盘上沾着祖辈的代码魂。卡帕蒂坦言自己尊重这种精神,但他直言:“2025年了,还拒绝任何辅助,等于主动放弃20%的生产力,没必要。”

第二类是“半自动派”,也就是卡帕蒂自己所属的群体:主干逻辑、核心算法、架构设计全部自己手写,但允许AI在细节层面打辅助。比如他敲个“for i in range(len(tokens)):”,模型立刻补上后续的token处理逻辑,他快速扫一眼,对就保留,错就删掉重写。这种模式下,AI是副驾驶,人始终握着方向盘。

第三类是“氛围编码派”(vibe coding):用户只描述意图,比如“帮我写个用户登录API”,然后模型哗啦输出一整屏Flask代码,用户不看细节,直接跑起来,通了就发上线,不通就再问一次。

卡帕蒂说,氛围派在高度样板化的任务中确实高效,但一旦任务超出训练语料覆盖范围——比如需要自定义同步机制、冷门硬件适配、非标准数据结构——模型立马抓瞎,甚至会用“看似合理但完全错误”的方式强行补全,埋下巨大隐患。他警告:“如果你连代码逻辑都看不懂,就敢上线AI生成的系统,那不是高效,是赌博。”

——— 第四章:DDP梗——大模型为何死活绕不过那个“官方容器”———  
卡帕蒂举了一个极具代表性的例子:他自己的nanochat代码中,完全没有使用PyTorch推荐的DistributedDataParallel(DDP)。

DDP是一个封装好的分布式训练容器,能自动处理梯度同步、进程通信、设备映射,对新手极其友好。
但卡帕蒂认为DDP太重、太黑箱,不利于教学。
所以他手动在优化器的step里调用torch.distributed.all_reduce,一行代码搞定梯度聚合。
结果呢?
当他把这段代码喂给GPT-4或Claude,模型立刻“焦虑发作”,反复建议:“你应该用DDP,这样更安全”“DDP能自动处理异常”“你这样写容易出错”。

哪怕卡帕蒂明确说明“这是教学目的,故意不用封装”,模型依然固执地往代码里塞DDP、加try-catch、加backend检查,甚至把原本10行的逻辑扩成30行。

卡帕蒂吐槽:“它们被互联网上的‘最佳实践’洗脑太深,把‘常见’等同于‘正确’,根本无法理解‘有意简化’这种工程哲学。”这本质上不是代码问题,而是认知偏差——模型只能模仿统计高频模式,无法理解“为了教学而牺牲工程完备性”的人类意图。

——— 第五章:认知残废四大表现,条条戳心 ———  
基于大量实测,卡帕蒂总结出大模型在面对原创代码时的四大“认知残废”症状。

第一是“样板依赖症”:模型对训练语料中高频出现的代码结构形成路径依赖,哪怕用户故意省略某部分,它也会强行补全,仿佛缺了那一行世界就要崩塌。

第二是“防御过动症”:疯狂添加try-catch、日志打印、参数校验,把简洁的教学代码硬生生变成冗余的生产模板,仿佛不写防御代码就会被裁员。

第三是“风格洁癖症”:看到紧凑代码就焦虑,非要拆成多个模块、引入抽象类、套用设计模式,结果十行能解决的问题变成五个文件三十个函数。

第四是“过期API依赖”:张口就是deprecated函数,理由往往是“StackOverflow上高赞回答这么写”,完全无视PyTorch或TensorFlow官方文档的更新。

卡帕蒂苦笑:“这不是AI在帮你写代码,这是AI在按它的‘教科书’重构你的思想。”这种现象在直播间的程序员老铁中引发强烈共鸣——谁没被Copilot强行塞过没用的日志和多余的if判断?

——— 第六章:氛围编码唯一真香场景——样板与跨语言 ———  
尽管狂喷,卡帕蒂并非全盘否定AI写代码。

他明确指出,氛围编码在两类场景中确实“真香”。

第一是高度标准化的样板任务:比如写RESTful API、Vue组件、Dockerfile、CI/CD脚本、数据库迁移文件。这些任务在GitHub、StackOverflow上有海量示例,模型已充分学习其模式,生成结果几乎零错误。此时让AI代劳,能省下大量机械劳动时间,去做更有创造性的事。

第二是跨语言迁移:卡帕蒂亲测,当他把一个Python版的tokenizer逻辑,借助模型辅助改写成Rust时,效率惊人。他本人对Rust只算“七天入门”水平,但有了Python参考代码和单元测试用例,模型能准确处理所有权、生命周期、错误类型等Rust特有概念。一旦测试失败,他立刻知道哪一行有问题,修改也快。

他说:“AI在这里不是替代者,而是语言翻译器+语法教练,让你敢踏进陌生语言的深水区。”这种“有参照+有验证”的模式,是安全使用AI编码的最佳实践。

——— 第七章:自动驾驶AI研究的“自我加速”神话,被泼一盆冷水 ———  
最近科技主播圈流行一种说法:“既然AI能写全栈App,那让AI自己优化自己,AGI明天就来了。”卡帕蒂直接泼冷水:“这是对科研本质的误解。”

他指出,AI科研的核心不是“拼接已有模块”,而是“发明从未存在过的结构”。

比如Transformer问世前,没人见过自注意力机制;
ResNet提出前,没人敢把网络堆到上百层。
而大模型的训练语料全是“过去已存在”的代码,它无法凭空想象“下一个ResNet”。

如果让模型去优化现有架构,它只会微调超参、替换激活函数、调整层数——这些都是量变,不是质变。

真正的质变需要人类提出“疯狂但可行”的新假设”。

卡帕蒂因此断言:所谓“AI自我加速”的飞轮,在“原创性”这一环彻底卡死。他把AGI的时间表直接往后推:“别说明年,五年内能摸到‘具备真正科研原创能力’的门槛,就算奇迹。”

——— 第八章:GPT-5 Pro也不行——顶流程序员的“20分钟 oracle”仪式 ———  
有人追问:那最新最强的GPT-5 Pro总该行了吧?卡帕蒂承认,他确实养成了一个“20分钟 oracle”习惯:把整个代码仓库复制粘贴进GPT-5 Pro的上下文,当作即时答疑助手。

相比GPT-4,新版确实在理解上下文、定位bug、解释异常方面有显著提升。

但关键区别在于:它是“问答系统”,不是“编程伙伴”。一旦让它实际修改代码,立刻回归老毛病——塞DDP、用过期API、加冗余防御。

卡帕蒂算过一笔账:让模型改十行核心逻辑,他平均要花15分钟清理它引入的“善意垃圾”,比自己重写还累。

因此他的结论是:当前最强模型也只能当“高级StackOverflow”——能回答“为什么报错”,但不能可靠地“写出正确代码”。真正的战友,是在你思路卡壳时能指出方向的人,而不是只会复述教科书的复读机。

——— 第九章:行业集体装睡?融资狂欢下的“皇帝新衣” ———  
卡帕蒂最愤怒的,不是模型能力有限,而是整个行业在“装睡”。

他说:“太多初创公司和投资人合谋,把‘AI能写代码’吹成‘AI能独立科研’,只为多拿一轮融资。”
他们对外宣称“我们的AI工程师已能自主迭代模型架构”,实则后台全是人类在改。

这种过度营销不仅误导公众,更危险的是让大量新人误以为“不用学算法、不用读论文、不用理解底层”,只要会调prompt就行。

卡帕蒂警告:“这正在透支整个行业的未来。当泡沫破裂,人们发现AI连一个原创的优化器都写不出来时,信任崩塌会比想象中更快。”他呼吁回归理性:“承认短板不可耻,用‘slop’(指粗糙但可用的AI生成代码)冒充‘silver bullet’(银弹)才真危险。”

真正的技术进步,从来靠的是扎实的基础研究,不是PPT上的曲线图。

——— 第十章:写给抖音主播们的“人机协作”行动清单 ———  
听完顶流吐槽,普通开发者该怎么做?

卡帕蒂虽未明说,但他的实践已给出答案。我替大家提炼出七条行动清单:

第一,死磕基础。Transformer、Attention、Backprop,这些核心机制必须亲手实现一遍,不能依赖“AI秒懂”;
第二,Copilot可开,但自动补全必须逐行审核,当成加速器,不是替代品;
第三,样板任务大胆交给AI,比如写表单、配环境、整文档,省下的时间去健身、约会、直播;
第四,跨语言、写脚本、生成测试用例等非核心任务,放心用AI,翻车成本低;
第五,创新模块必须人脑主导:先手绘架构图,手敲核心逻辑,跑通后再让AI补测试或文档;
第六,用模型读论文摘要可以,但公式、算法细节必须回原文核对,别信它的“口胡”;
第七,投资大脑比投资显卡更重要——AGI真来的那天,最值钱的不是你会调模型,而是你能提出“下一个Transformer”级别的问题。

——— 尾声:卡帕蒂的“autocomplete 甜蜜点”哲学 ———  
在播客结尾,卡帕蒂描绘了他理想中的人机协作状态:“当我把手指放在键盘上,我知道我要写什么,也知道它长什么样,敲下前几个字母,AI像影子一样补完后面——那一刻,效率爆炸,心流涌现。”

他预言,未来五年,程序员的角色将从“代码工人”进化为“代码策展人”:创意、边界、异常处理、架构权衡,这些高维决策永远属于人类;而语法纠错、样板拼接、文档生成、单元测试,这些机械劳动交给模型。谁先掌握这种“策展”节奏,谁就能在AI时代持续领跑。

兄弟们,别做纯手敲的苦力,也别当无脑信任的氛围组,要做那个“AI替我搬砖,我替AI想破头”的硬核玩家。把“策展人”三个字打在公屏上,咱们一起升级!

——— 彩蛋:nanochat仓库地址 & 卡帕蒂推特金句 ———  
nanochat项目已在GitHub开源,搜索“karpathy/nanochat”即可找到,目前星标已破两万,issues区全是“求带”“大神收徒”。卡帕蒂最新推文写道:“Your autocomplete is my spirit animal.”(你的自动补全,就是我的灵魂伴侣)。翻译成东北话就是:“咱哥俩老铁,你补我刀,我带你飞。”关注我,带你继续拆解硅谷神仙打架,下课!