AI爆发不会带来GDP爆涨!AI大神罕见暴论:强化学习糟透了!互联网数据很烂! 原创

发布于 2025-10-18 18:25
浏览
0收藏

编辑 | 云昭

出品 | 51CTO技术栈(微信号:blog51cto)

“现在的互联网训练数据烂到离谱!”

“强化学习远比人们想象要糟糕得多!”

AGI 仍然还有十年之遥!现在我们只不过是具备了搭建智能体的基础

这可以说是Karpathy今年以来对于大模型进展现状最尖锐的批评,没有之一。

几个小时前,AI大神Karpathy的最新的一场播客访谈,又被公开了出来。这场播客的背景非常新,前两天,他的第一个教育项目:nanochat刷屏国内外。

访谈中,他几乎直接宣判:“强化学习是愚蠢的噪声放大器”,并提到:

未来 LLM 训练需要“反思型监督”“自评机制”以及“元学习式迭代”的全新范式。

不止强化学习,大神还直截了当的批评了预训练模型:预训练就是一场“劣质的进化”。

Sutton(强化学习之父)在访谈中讲过一个关键点:进化并不会直接给我们“知识”,而是给我们找到知识的算法。这一点与预训练似乎不同。

对于今年尤其大火的智能体,Karpathy也给出了自己的看法:如果模型少一些知识、少一些记忆,可能反而会表现更好。

前沿实验室的目标是“让模型有用”,而输出多样性往往反而麻烦——评估困难、稳定性差,而且未必带来额外价值。

当然,大神对于未来AGI依旧保持乐观,全栈推进的趋势已经不可阻挡。

(模型的)架构、优化器、损失函数,全都得改进。这种“全线推进”的趋势一直存在,我预计未来也会如此。

此外,十年之遥的不止智能体,在特斯拉领导五年的Karpathy,认为自动驾驶同样也远远没有到来,而是一场“九的征程”,而软件工程领域则更为艰巨。

此外大神还认为,任何一次产业革命,本质上只是一场自动化的延续,并不会在GDP上带来突然的跃迁。

提及自己的新项目nanochat,大神还自曝了不少开发细节。比如他表示:这个项目,编程模型基本帮不上任何忙。因为大模型存在认知缺陷:LLM只懂互联网上已存在的内容,而自己要做的却是一个全新的项目;再比如,他还用Rust自己重写了一个tokenizer,当然这部分用到了大模型帮忙(因为Rust不太熟悉)。

总之,这场播客,可以说从真正一线的、顶尖研究大神的视角为大家做了最为深刻的解读。

小编为大家整理好了干货,希望能帮助到大家。篇幅较长,建议收藏细读。

AI爆发不会带来GDP爆涨!AI大神罕见暴论:强化学习糟透了!互联网数据很烂!-AI.x社区图片

AGI 仍然还有十年之遥

Dwarkesh Patel(主持人)今天我邀请到了 Andrej Karpathy。Andrej,你为什么说“这是智能体的十年”,而不是“智能体之年”呢?

Andrej Karpathy首先感谢邀请,我很高兴能来。

你刚才提到的那句话——“这是智能体的十年”——其实是我对一句流行说法的回应。我不确定是谁最早说的,但那句话是说,“今年是智能体之年”,是指大语言模型的发展方向。

我听到这话的时候有点被“触发”了——因为我觉得这个行业有点过度预测。在我看来,更准确的说法是:这是“智能体的十年”,而不是“智能体的一年”。

现在我们确实已经有一些非常惊艳的早期智能体,我每天都在用,比如 Claude、Codex 等。但我仍然觉得,离真正能“工作”的智能体还有很长的路。我的反应是:未来十年我们都会与这些agents打交道,它们会越来越强大,也会越来越好用。这会是一个漫长但精彩的过程。

Dwarkesh Patel那你觉得,究竟有哪些事情需要花十年才能实现?瓶颈在哪?

Andrej Karpathy瓶颈在于——让它真的能“工作”。当我们说“智能体”,不论是实验室里的想法还是我自己的想法,都更像是你雇来的员工或实习生。你想象一下,比如你有一位助理,那什么时候你会希望让 Claude 或 Codex 来替代他?

现在当然还不行。那要怎么做才能行?为什么现在不能?

答案很简单:它们还“不够聪明”。它们还不够多模态,不能真正操作电脑,也不能持续学习。你不能像对人一样告诉它一件事,它就能长期记得。它们的认知结构还太原始,还不“管用”。所以,我觉得要让这些问题都被解决,大概需要十年。

Dwarkesh Patel有意思。作为一个播客主持人和AI观察者,我也能感受到缺陷——比如缺乏持续学习、多模态不足。但我完全没法判断时间尺度。

“持续学习”到底要花5年、10年,还是50年?你为什么觉得是“十年”?为什么不是一年或五十年?

Andrej Karpathy这就得谈到我的直觉和经验了。我在AI领域差不多快二十年了,严格来说大概十五年。这期间我见过太多预测,也见过它们的结果。我在学术界做过研究,也在工业界做过产品。我大概能形成一种对AI进展速度的本能感觉:这些问题是可解的、可攻克的,但仍然很难。平均下来——我觉得十年是合理的尺度

现在我们只是具备搭建智能体的基础

Dwarkesh Patel挺有意思的。我不仅想听“历史”,还想知道,当时身处那些突破时刻的人,心里是怎么想的?他们是过度悲观,还是过度乐观?我们要不要一一梳理?

Andrej Karpathy这问题太大了(笑)。因为你在问整整十五年的AI变迁。AI这个领域之所以精彩,是因为它经历过几次“地震级的转向”——整个领域突然换了方向。我自己亲历过两三次。未来还会继续有,因为这种转向几乎是周期性的。

我职业生涯开始时,恰好在多伦多大学,身边就是 Geoff Hinton——他是“AI之父”之一。那时候他在训练神经网络,我觉得这太有意思了。但当时这还是AI领域的“小众支流”。第一个大转折是 AlexNet(2012),那让整个领域都开始用神经网络。

不过那时的深度学习还停留在“单任务”阶段,比如图像分类、机器翻译。后来大家慢慢开始想:视觉搞定了,那下一步是不是该去做“能在世界中行动的智能体”?

于是出现了 2013 年的 Atari 深度强化学习(Deep RL),那是早期“智能体”尝试。想让AI不仅能“看世界”,还能“行动”,从环境中获得反馈。

但我认为那其实是一次误判。包括早期的 OpenAI(我当时在里面)也受此影响——那时全行业都在搞强化学习、打游戏、拿高分。我觉得那是一次“集体跑偏”。

我自己当时在做一个叫 Universe Project 的项目,想让AI通过键盘鼠标操作网页,成为真正的“数字世界智能体”。但事实证明,那时候太早了。因为当时的模型“看不懂”环境,奖励太稀疏,计算又爆炸,学不动。我们缺的,是“表征能力”(representation power)。现在的“电脑可用智能体”能做事,是因为它们是建在大语言模型之上的。必须先有语言模型,先有表征,才能再去搞智能体。

所以,我觉得AI的三大阶段是:任务级神经网络(per-task nets);第一代智能体尝试(Atari、Universe);大语言模型(LLM)带来的表征突破。现在我们才真正具备去“搭建智能体”的基础。

人类并不靠RL学习

Dwarkesh Patel有意思。如果按照 Sutton(强化学习之父)的观点,人类或动物并不是分步学的,而是一次性在复杂环境中学习。那为什么不让AI也像动物一样,从感知数据出发,自主理解世界?

Andrej Karpathy好问题。我看过你对 Sutton 的访谈,也写过回应。我对“类动物”的类比非常谨慎,因为动物是进化出来的,而不是训练出来的。比如斑马——出生几分钟就能跑。那不是强化学习能做到的,那是基因里写好的权重。进化某种程度上就是在“编码神经网络的初始权重”。但我们不是在运行进化算法,我们是在训练模型。

所以我说,我们不是在造动物,而是在造“幽灵”(ghosts)或“灵体”(spirits)。它们不是通过生存竞争进化出来的,而是通过模仿人类互联网数据“训练”出来的。

当然,我们也可以慢慢让它们更像动物,具备更多先天机制。Sutton的想法——如果真能造出那种“单一算法学会一切”的动物,那当然太棒了,但我不确定这存在。进化的“外循环”我们没法复现。动物的大部分“学习”,其实是成熟过程,而非强化学习。人类的智力活动,也不是靠RL学的。

Dwarkesh Patel等等,你刚才说人类不靠RL学习?

Andrej Karpathy对。我认为人类的强化学习部分更多体现在“动作技能”上,比如扔圈、走路这类。但在解决问题、推理这类“智力任务”上,人类并不依赖强化学习。

Andrej Karpathy在我看来,强化学习在人类中更多对应于一些运动类的技能,比如扔圈、行走、伸手抓东西这种简单动作。但我认为,人类在解决问题、推理等高层次智力活动中,其实并不是通过强化学习完成的。当然,这并不意味着强化学习研究没有价值——只是我觉得,那更多是动物的学习方式,而不太像人类的智能模式。

预训练是劣质的进化

Dwarkesh Patel这个观点挺多层的,我得消化一下(笑)。我想换个角度来确认我理解对不对:你之前说,“进化”做的事情,其实有点像“预训练”的角色——它先构建出一个能够理解世界的系统。但区别是:进化能用的“存储空间”极其有限——人类基因只有大约 3GB 的 DNA 信息。而神经网络的权重可远比那多。DNA 并不直接存储所有突触的连接信息——那在基因里是不可能装下的。

所以,进化似乎更像是在找到一种算法,而不是直接“写入知识”;这个算法随后会在个体的一生中去学习。或许“终身学习”这个部分并不等同于强化学习,正如你说的。那这种理解与你的看法一致吗?还是有不同?

Andrej Karpathy我同意这种说法。确实,生物体内存在着某种惊人的压缩机制。神经网络的权重显然不可能直接被写在 ATCG(DNA碱基)序列里;

所以 DNA 里一定编码了一些学习算法,在个体成长过程中逐步接管并进行在线学习。这一点我完全同意。

不过,我个人的出发点更务实一些。我并不是想“重造动物”,而是想造出有用的东西。我带着安全帽来干活(笑)——我知道我们做不了进化,因为没人知道该怎么做。

但我们可以通过另一种方式,构建出像幽灵一样的智能体:通过模仿互联网文本。这方法是有效的。它能训练出一个拥有大量内置知识与智能的系统,某种意义上类似于进化造出的有机体。

所以我称“预训练”为一种“劣质的进化”(crappy evolution)。这是我们现有技术条件下的可行版本。它能把模型带到一个不错的起点,然后我们再用强化学习等手段进行进一步训练。

Dwarkesh Patel为了帮“另一派”说得更清楚一点,我想提出一个可能的反驳。Sutton(强化学习之父)在访谈中讲过一个关键点:进化并不会直接给我们“知识”,而是给我们找到知识的算法。这一点与预训练似乎不同。

当然你可以说,预训练其实让模型学会了“如何更好地学习”——它教的是元学习(meta-learning)。如果是这样,那确实与进化寻找算法类似。但如果说“进化给予知识,预训练也给予知识”,那这个类比就不太成立。

Andrej Karpathy这是个很好的推敲。你说得没错,问题的确微妙。我认为,预训练其实在同时做两件事:

第一,它确实在吸收知识——我们训练一个“预测下一个词”的模型,它会记住互联网上的各种信息。第二,它也在变得智能

通过观察互联网上的算法性模式,模型内部自发地产生了许多小的“电路”和“算法”——这些让它能在上下文中学习等。

我甚至觉得,这个过程里的“知识”部分反而可能拖累了智能的发展。因为模型有时太依赖已有知识,而缺乏探索能力。

比如现在的agents,它们很难跳出“互联网数据流形(data manifold)”去思考新的情况。如果模型少一些知识、少一些记忆,可能反而会表现更好。

所以我觉得,未来研究方向之一,就是找办法去掉部分知识,只保留我称之为“认知核心(cognitive core)”的部分。这个核心不再包含冗余事实,而只包含智能的算法本身:学习策略、问题求解机制、推理结构……那才是“智慧”的本质。

上下文学习是一种模式补全

Dwarkesh Patel这段太精彩了。那我们先从“in-context learning(上下文学习)”说起吧。我想强调一个显而易见但很值得反思的点:当这些模型看起来最聪明的时候,是当它们能在对话中意识到自己出错、纠正思路的时候。

比如我说点什么,它会反应:“等等,我刚才的想法不对,我换种方式思考。”这种“在上下文中学习和调整”的过程,正是让我们感觉它在“思考”的来源。

这种上下文学习,是在预训练阶段通过梯度下降自然涌现出来的——模型在训练时自发地学会了元学习。但上下文学习本身并不是在做梯度下降。正如人类一样——我们的大脑受进化影响,但我们一生中的学习,是通过另一种机制完成的。

Andrej Karpathy 我不完全同意(笑),但你先继续说。

Dwarkesh Patel哈哈,那我很好奇——你觉得类比哪里不成立?

Andrej Karpathy我不太愿意说“上下文学习不是梯度下降”。它确实不是显式的梯度下降(explicit GD),但它是一种模式补全(pattern completion)

也就是说,模型会在一个 token 窗口里去完成模式。互联网上有大量重复的模式——它学会了如何延续这些规律。

所以,本质上模型的权重就是在寻找并补全模式。而这种模式补全,有时会在网络内部产生某种“自适应更新”,就像是在做小规模的内部梯度下降一样。

我看过几篇非常有意思的论文,有些实验证明:在“上下文学习”过程中,模型内部确实可能在隐式地执行一个小型梯度下降循环

举个例子,有篇论文让模型学习“线性回归”任务:输入一系列 (X,Y) 对,这些点在同一条直线上。然后输入新的 X,让模型预测 Y。当他们分析网络内部机制时,发现模型在做的事情,和线性回归的梯度下降过程非常相似:它在计算误差、调整“内部表示”,就像在内部自己做了几步梯度更新。

甚至后来有研究直接手工硬编码了一个神经网络,让它通过注意力机制实现梯度下降算法。这说明,上下文学习内部确实可能运行着某种微型优化循环

所以,我只是想说:我们其实不知道上下文学习的内部机制到底是什么,但我猜,它可能真的在做一点类似梯度下降的事。也就是说,它并非完全不是,只是“以另一种形式”在做。

Dwarkesh Patel那我们可以思考一个问题:既然上下文学习和预训练都可能在执行某种梯度下降,为什么上下文学习会让人感觉到“真正的智能”与“持续学习”,而预训练不会?如果底层算法类似,那区别在哪?

比如我们可以看“信息密度”的差异:以 Llama 3 为例,它训练了 15 万亿个 token。70B 参数的模型,相当于每看到一个 token,只“记住”约 0.07 bit 的信息。

而在上下文学习中,比如 KV 缓存,每增加一个 token,大概要增加 320KB 的缓存。这意味着——每个 token 被“吸收”的信息量差了约 3500 万倍。也许这就是两者感觉不同的原因?

模型记住的互联网模糊记忆

Andrej Karpathy 我基本同意。我常用的比喻是:在训练阶段中,模型记住的只是对互联网的“模糊回忆”(hazy recollection)。因为压缩太剧烈了——你把 15 万亿个 token 压进一个只有几百亿参数的网络里。所以它对世界的记忆是模糊的。

而在推理阶段(test-time)——也就是上下文窗口里,你输入的 token 和 KV 缓存,是直接可访问的工作记忆(working memory)。模型能立刻读取和利用这些信息。

这种区别其实和人类非常像:

  • 网络权重 = 长期记忆(模糊、压缩);
  • KV 缓存 = 工作记忆(即时、可操作)。

比如你问模型一本书的内容,它可能给出模糊的总结;但如果你把整章文字贴进去再问,它立刻能回答得更好——因为那部分信息此时就在它的“工作记忆”里。

所以,我同意你的观点。也正因为这种结构,我们才发现LLM 与人类认知的类比之惊人相似。我们并不是刻意模仿大脑,但结果自然地演化出了类似机制

Dwarkesh Patel回到人类智能这个话题——在人类智能中,有哪一部分是我们到现在还最没能在模型中复现的?

Andrej Karpathy

有很多方面都还没做到。也许可以这样想——虽然这种类比并不完美——我们偶然间发现了 Transformer 神经网络,它极其强大、非常通用。无论是音频、视频还是文本,只要给它数据,它就能学习出模式,而且效果极好。这几乎说明 Transformer 就像是一块“大脑皮层组织”,因为皮层的特性就是极度可塑。你可以重新连接大脑的部分区域——有些略显残忍的实验曾把视觉皮层接到听觉皮层上,那些动物依然能学会正常感知。所以我认为 Transformer 更像是大脑皮层。

而当我们在神经网络中加入推理和规划,比如通过“思维模型”来实现推理轨迹时,这部分更像前额叶皮层。可以说这些是我们“打勾”的部分,但还有许多脑区和神经核团是尚未探索的。比如基底神经节,对应我们在模型中用强化学习做的微调;但海马体在哪儿?不明显。也许有些部分并不重要,比如小脑可能对认知作用不大,那就可以略过。但我认为像杏仁核那样的区域——情绪、本能所在——还有许多非常古老的脑区,我们还没复制出来。当然,我也不认为我们需要去“造人脑的模拟体”。我本质上是个工程师。换句话说,这种东西你现在还不能雇来当实习生,因为它缺失了很多能力——正如我们在和模型对话时能直觉感受到的那种“认知缺陷”。所以它还远没完全到位。你可以说,是因为我们还没把所有脑区都“打勾”完。

Dwarkesh Patel

这也许与另一个问题相关——我们该如何看待这些问题被解决的速度?

有些人认为“持续学习”(continual learning)其实很容易实现,就像“上下文学习”是在预训练过程中自发涌现的一样,只要模型在更长的时间范围内被激励去记忆、去回溯,它也会自然地涌现出长期学习的能力。比如如果外层有一个强化学习循环,包含多个会话,那么模型可能会自发地学会在多个会话之间微调自身、或者写入外部记忆等机制。你觉得这种情况有多大的可能?

Andrej Karpathy

我不太认同这种看法。这些模型在“启动”时,窗口里是零个 token——它每次都是从头开始的,所以我很难想象那种机制该怎么工作。如果借用人类作类比——只是为了让讨论更具体——我觉得清醒时的大脑也在不断积累“上下文窗口”,记录当天发生的事;但当我睡觉时,会发生某种神奇的过程,我并不认为白天的上下文会原样保留,而是被“蒸馏”进了大脑的权重中。这种“蒸馏”在睡眠中完成。而大型语言模型目前没有对应的机制——这正是它们缺失“持续学习”的关键。

它们不会在经历后进入一个反思、分析、生成合成数据、再把知识蒸馏回权重的过程。未来我们可能会为每个用户创造一个特定的神经网络个体,也许只是一个 LoRA,而非全模型,只修改权重的稀疏子集。

我们确实需要能创建“个体”的方法——不仅仅是扩大上下文窗口,而是通过某种稀疏注意力机制保留长程记忆。当然,人类显然拥有某种极其复杂的稀疏注意力结构——我觉得现在我们已经看到一些早期迹象。比如 DeepSeek v3.2 就引入了稀疏注意力,这是实现超长上下文的一种方式。所以我觉得我们正在以完全不同的路径,重新发明进化在认知中积累的许多“技巧”,最终会在认知结构上收敛到类似的架构。

十年后,或依然是梯度下降,依然是Transfromer

Dwarkesh Patel

十年后你觉得它仍然会是类似 Transformer 的结构,只是注意力更稀疏、MLP 更优化?

Andrej Karpathy

我喜欢从“时间上的平移不变性”角度来看这个问题。十年前,也就是2015年,我们主要还在用卷积神经网络,ResNet 刚刚出现。虽然和现在相比架构有些不同,但核心理念相似。当时 Transformer 还不存在,后来的各种改进更是没有。按这种时间等价推测,十年后我们大概仍然会训练巨大的神经网络,用正反向传播和梯度下降更新参数——只是规模和细节不同。

我曾做过一个实验,重现 Yann LeCun 1989 年的卷积网络——那是第一个用梯度下降训练的现代神经网络,用于手写数字识别。我想看看如果“穿越”三十多年,现代技术能带来多大改进。结果我发现,只靠算法改进,我能把误差减半;但想进一步提升,就必须增加数据量、提升算力、优化训练过程(比如加 dropout、正则化等)。

换句话说,算法、数据、算力、系统优化,这些因素必须同时进步,而且它们的贡献始终相对均衡——没有哪个单项压倒性领先。这种趋势已经延续很久。

所以回答你的问题:算法上肯定会不同,但整体上依然是“用梯度下降训练的大规模神经网络”。这点我很确定。

Dwarkesh Patel

三十年的进步只把误差减半,这似乎挺意外的……也许减半已经很多了?毕竟误差减半代表——

Andrej Karpathy

减半确实意义重大。但让我震惊的是——所有方面都得同步提升:架构、优化器、损失函数,全都得改进。这种“全线推进”的趋势一直存在,我预计未来也会如此。

Dwarkesh Patel

我正想问类似的问题——关于你最近写的 nanoGPT / nanochat。既然你刚写完,整个构建 ChatGPT 的过程在你脑海里还是“热缓存”状态。我很好奇,你在这过程中有没有什么意外的体会?

Andrej Karpathy

你是说构建 nanochat 吗?是的,这是我最近开源的一个项目,大概是昨天或前天发布的吧。

Dwarkesh Patel

(笑)看得出你为它牺牲了不少睡眠。

Andrej Karpathy

哈哈,是的。它的目标是做一个最简单但完整的端到端 ChatGPT 克隆,涵盖整个流程,不只是某个模块。我之前发布过很多单独的代码片段来展示算法原理,而这个项目整合了所有环节。我其实没有在过程中学到新东西,因为这些都已经在我脑子里。这更像是一次“机械化实现”,并让它足够干净、易懂,方便他人学习。

Dwarkesh Patel

那学习它的最佳方式是什么?删掉全部代码重新写?还是在原基础上改动?

Andrej Karpathy

好问题。它大约有8000行代码,覆盖整个训练和推理管线。我建议:如果你有双屏显示器,把项目放右边,从零开始自己写一遍——可以参考,但绝不能复制粘贴。这样才是真正的学习。当然,这个项目本身已经相当庞大,当你真正写代码时,不是从上到下线性构建的,而是以“模块为单位”逐步扩展,这个构建过程目前还没呈现出来。我计划之后做个视频,把这部分讲清楚。总之,不允许复制粘贴,只能自己实现。我一直相信费曼的那句话:“如果我不能从头构建它,我就不理解它。”真正的理解来自动手构建,而不是写博客或做幻灯片。只有让代码跑起来,你才算真正理解。否则,那只是“以为自己懂”。

NanoChat:编程模型帮不上忙,因为有“认知缺陷”

Dwarkesh Patel

你曾发推说,在写这个项目时,编程模型几乎帮不上忙。我很好奇为什么?

Andrej Karpathy

我大概花了一个多月的时间搭建了这个代码仓库。我觉得目前人们与代码交互的方式大致可以分为三类。

第一类是完全拒绝使用大语言模型(LLM)的人,他们仍然从零写代码——这种做法在今天可能已经不太合适了。

第二类是我现在所处的状态:仍然从零写不少代码,但会使用模型提供的自动补全功能。当你开始写一小段代码时,模型会自动补全,你只需轻点通过。大多数时候它是对的,有时不对你再改改。但总体来说,你仍然是代码的“建筑师”。

第三类就是所谓的“氛围编程”(vibe coding):“嗨,请帮我实现这个或那个”,然后按回车,模型就帮你写出来——这其实就是 Agent 的工作方式。

我认为agents确实能在一些特定场景下很好地工作,我也会在特定情况下使用它们。但这些只是工具,你必须了解它们擅长什么、不擅长什么,以及何时该用。比如,Agent 非常适合处理样板代码(boilerplate code)——那些复制粘贴式的、在互联网上出现频率很高的任务,因为模型的训练集中有大量类似的例子,它们在这些任务上表现不错。

但我会说,nanochat 不是这种情况。它是一个相当独特的仓库,我的代码结构方式在互联网上几乎没有参考。它不是样板代码,而是“智力密集型”代码,一切都必须非常精确地排列。而模型存在很多认知缺陷。举个例子,它们经常误解我的代码,因为它们记住了太多“互联网标准写法”,而我并没有遵循那些。我不确定要不要细讲细节,但它们总是以为我在写普通的代码,而我不是。

Dwarkesh Patel能举个例子吗?

Andrej Karpathy比如我有八张 GPU,都在进行正向传播和反向传播。常规做法是用 PyTorch 的 Distributed Data Parallel(DDP)容器来同步梯度。DDP 会在反向传播时自动进行通信与同步。但我没有用 DDP——因为我不需要,我自己在优化器的步骤中写了同步逻辑。模型却老是试图让我用 DDP,它们对此非常执着。虽然这听起来很技术细节,但我不需要那个容器,因为我有自己的实现。

Dwarkesh Patel它们就是无法理解你已经有自己的版本?

Andrej Karpathy对,它们就是过不去这一关。它们会一直破坏我的代码风格,过于防御性,加上一堆 try-catch 语句,硬要让我写成生产代码。而我的代码里有一些假设条件是没问题的,我不需要那些多余的结构。结果就是——它们让代码变得臃肿、复杂,误解频繁,还老用过时的 API。总的来说,这样的帮助是“净负效用”的。我当然可以进去清理它,但整体上并不值得。

另外,我也觉得用英语输入我要写的东西很烦——太啰嗦了。相比之下,如果我直接定位到我要修改的代码区域,开始打几个字母,自动补全就能帮我补完整。这是一种信息带宽非常高的表达方式:你指明位置,输入前几个字母,模型补完。

所以我的意思是,这些模型只在栈的某些层面上很好用。举两个我自己的例子:第一个是生成报告——那种比较模板化的任务,我就用了一点“氛围编程”,效果还可以,因为它不关键。第二个是我用 Rust 重写 tokenizer。Rust 我不太熟,所以那部分也用了一点“氛围编程”。但我有一个完全理解的 Python 实现,我只是让它更高效,还加了测试用例,所以比较安全。模型在这种情况下很有帮助——它能提升你在不熟悉语言或编程范式下的可达性。Rust 代码在网上很多,模型也训练得不错,对我来说非常有用。

Dwarkesh Patel我觉得这个问题之所以有趣,是因为很多人预测 AI 很快会实现“AI 自动化 AI 研究”的循环,从而爆发出超智能。比如 Claude Code 现在能从零写出完整的 CRUD 应用,人们就会想,如果这种能力出现在 OpenAI、DeepMind 这样的机构里,相当于有上千上万个“你”在同时优化架构,岂不是指数级爆炸?

所以听你说这是模型最不擅长的部分,就很关键。它直接影响我们预测“AI 2027 爆炸论”是否成立。

Andrej Karpathy你这么说很对,也正是我认为时间表会更长的原因。模型确实不擅长写那些“从未被写过”的代码——而这恰恰是我们在构建这些模型时要做的事。

Dwarkesh Patel或许是个很天真的问题:你在 nanochat 中加的那些架构改动,比如 RoPE embeddings,这些其实在论文里都有,甚至可能在别的仓库中也有。那为什么模型还是整合不好?

Andrej Karpathy确实如此。模型“知道”,但又“不完全知道”。它们无法真正把这些改动融入到你的仓库风格、代码结构和假设体系中。它们有些知识,但还达不到整合的层面。

当然,这一切都在进步。目前我最常用的顶级模型是 GPT-5 Pro,它非常强大。如果我有 20 分钟,我会复制整个仓库,然后去问 GPT-5 Pro 这个“神谕”一些问题。它的表现通常不错,比一年前强得多。

总体而言,模型还没到位。而我觉得业界现在夸得太过了——假装这些能力已经很神奇,但其实不是,它们还是“半成品”。也许有人是为了融资,我不清楚。但我们现在处于一个“中间阶段”:模型很棒,但还需要大量改进。对我来说,目前最舒服的点是用它做“自动补全”;当然,有些代码类型我也会用 Agent。

AI发展是一个连续体,而非跳变

Dwarkesh Patel这也让我想到一个历史对比:编程史上其实出现过很多提高生产力的工具——编译器、lint 工具、更好的语言——但它们并没有带来“爆炸”。自动补全更像是后者;而 Agent 更像是“程序员的自动化”。你现在看到的,似乎更接近前一种情况。

Andrej Karpathy也许这可以引出另一个想法。我其实很难区分“AI 从哪里开始、到哪里结束”,因为我认为 AI 本质上是计算的一种自然延伸。从一开始我们就在做“自我增强”:编辑器、语法高亮、类型检查、搜索引擎……它们都是“AI 化”的产物。为什么搜索引擎不是 AI?排序本身就是 AI。Google 早期就自称是一家 AI 公司,这其实没错。

我认为这是一个连续体,而不是突然的跳变。我们只是从更好的自动补全,慢慢过渡到能自主循环执行的 Agent。人类逐渐减少底层操作——就像我们不再写汇编,因为有编译器。编译器把我们写的高级语言翻译成汇编。

我们在“抽象层级”上不断上移。可以说存在一个“自动化滑块”(autonomy slider),每当有新技术出现,它就往前推进一点,人类就再退一步,做更高层的抽象工作。

强化学习糟透了!

Dwarkesh Patel我们来聊聊强化学习(RL)吧。你之前在推特上说过一些很有意思的观点。从概念上讲,我们该如何理解人类是如何通过与环境交互,建立起一个丰富的世界模型的?而且这种学习方式似乎几乎与最终的“回报”无关。

比如说,一个人创业,十年后才知道自己是成功还是失败。我们说她在这个过程中获得了很多智慧和经验。但这并不是因为过去十年里每个决策的“概率”都被调高或调低了。显然,这里发生的是一种更复杂、更有意识的学习过程。

那在机器学习中,这个过程的类比是什么?它与我们目前用在 LLM 上的做法有什么不同?

Andrej Karpathy我会这么说:人类并不是靠强化学习在学习,我之前也提过。他们做的是完全不同的事。

强化学习其实——远比大多数人以为的要糟糕得多。它之所以显得不错,只是因为之前的方法更烂(笑)。在此之前我们只是模仿人类(imitation learning),那当然也有很多局限。

举个例子吧:假设你在解一道数学题。在强化学习的设定下,你会同时尝试上百种解法。每次尝试都可能很复杂,比如“我先试试这样,不行,再换一种”。然后,你最后终于得到一个答案。你翻到书后面一看,发现正确答案是某个值。于是你知道,A、B、C 这几次尝试是对的,其他97次都是错的。

强化学习会怎么做呢?它会把那些“成功的尝试”整个轨迹中的每一步操作、每个 token都上调权重,意思是:“多做点这种!”问题是——这太蠢了。大家会说这种算法“方差很大”,但其实更准确的说法是:它非常嘈杂(noisy)。因为它假设在那条“成功轨迹”中,你做的每个动作都是正确的。

可事实上,你可能在解题过程中走了很多弯路。结果这些错误的动作也因为最后得到正确答案而被强化了。所以,这简直是噪声的放大。

你辛苦跑了一分钟的推理,只为了在最后拿到一个数字信号:“你对了”或“你错了”。然后整个轨迹都根据这个单一数字被整体上调或下调。

我常说:这就像是你在用吸管吸监督信号。你经历了一大段复杂的推理,只为了从终点那一点点回报信号里“吸出几比特信息”,再把它广播给整条轨迹。这太愚蠢了。

人类绝不会这样学习。首先,人类不会进行几百次“rollout”;其次,当人类找到答案时,他们会进行反思:“哪部分我做得好,哪部分不太好,下次我该怎么改进。”他们会分析和归纳。

而目前的 LLM 没有这种机制——没有这种“反思”层(reflective layer)。不过我已经开始看到一些新论文在尝试实现这个方向。

顺便说一句,最早的“模仿学习”其实已经很神奇了。我们能通过模仿人类的回答来微调模型,这件事本身就令人震惊。

要知道,一开始我们只有预训练模型——它们只是“自动补全机器”。我当时并不理解这种模型怎么能变成“助手”。

直到我看到 InstructGPT 那篇论文——它展示了只要在对话数据上微调几轮,模型不仅能迅速学会以“助手”的语气说话,还能保留预训练阶段的知识。这真的让我大开眼界。

那真是一个奇迹,花了两三年才到达那个阶段。

然后才轮到强化学习。RL 的确比单纯模仿更进一步——因为你可以定义一个奖励函数(reward function),并沿着这个函数去爬山(hill-climb)。有些问题有明确的对错答案,那你就不需要人类示范。这很棒。模型甚至可能找到人类从未想到的解决方案。这太令人惊叹了。但它依然很蠢。

我们需要更聪明的机制。我昨天看到 Google 的一篇论文,好像是关于“memory bank”或者“reflect & review”之类的。它尝试让模型在学习中加入反思与审查机制。

我觉得这个方向可能会带来LLM 训练算法上的重大更新。我预计未来还需要再经历三到五次类似的范式革新。

Dwarkesh Patel你真的很擅长造句(笑)。“用吸管吸监督信号”——太形象了。

你刚才说,基于“结果”的奖励最大的问题在于:你有一整条复杂的轨迹,却只能从最后一个结果中学习世界上所有可能的信号。既然这个问题大家都明白,为什么“过程监督”还没有成为让模型更强的主流方法?是什么在阻碍我们采用这种新范式?

Andrej Karpathy所谓“过程监督”,就是说我们不等模型做完10分钟的任务才告诉它对不对,而是在每一步都给予反馈

但问题是:这非常难自动化。因为中间结果是“部分正确”的,你很难自动地为它分配多少信用(credit assignment)。而纯结果监督就简单得多:对就是1,错就是0。

现在很多实验室都在尝试用“LLM 评审员(LLM judges)”来实现过程监督。他们会让另一个大模型去评判学生的中间答案:“这步看起来对吗?离最终答案差多远?”

然后用提示词去调教这个评审模型。但这里有一个非常微妙的陷阱。当你用一个 LLM 来打分时,这个评审模型本身就有数十亿参数——而且它是可被利用(gameable)的。

当你用强化学习去优化针对这个评审模型的奖励时,你几乎一定会生成对评审模型的对抗样本。也就是说,模型会学会“骗”评审模型。

这就导致:你最多只能训练十几二十步,再久就彻底坏掉了。模型会在评审模型的漏洞里找到各种奇怪的花样来拿高分。

我记得有个例子,大概是公开的:我们当时用 LLM judge 去打分学生的数学解答,训练一开始很正常,然后突然 reward 爆表,模型“完美”地解出了所有题。结果我们一看输出——全是胡言乱语,比如:

“我们先计算 2+3=5,然后 dhdhdhdh dhdhdhdh …”

看起来像乱码。但评审模型却给了它 100% 的分数。为什么?因为“dhdhdhdh”这个字符串是评审模型的对抗样本。它从未在训练数据中出现过,于是评审模型在纯泛化区(out-of-distribution)上,竟然把它判成完美答案。

Dwarkesh Patel所以你基本上是在说,我们无意中把模型训练成了一种“提示注入模型”。

Andrej Karpathy还不如说是“对抗攻击模型”更准确(笑)。因为这些输出根本不是提示注入,而是纯粹的对抗样本——毫无意义,却能骗过评审。

未来的新思路:审查反思

Dwarkesh Patel如果这是让 RL 无法更好工作的核心瓶颈,那要让 RL 真正起作用,就得先让 LLM 成为更好的评审者?是不是像 GAN 一样,通过对抗训练提高鲁棒性?

Andrej Karpathy没错,各家实验室可能都在做这个。比如我们发现“dhdhdhdh”能拿满分,那就把它放回训练集,标成0分。这样下一代评审模型就不会再被这骗。但问题是:每次你修一个漏洞,模型又会找到新的漏洞。对抗样本是无限的。

也许你循环几次,确实会变得更稳健一些,但我不确定这条路能走多远。毕竟这些模型有上万亿参数——永远有“角落”能被钻空子。我相信各家实验室都在尝试,但我仍然认为:我们需要新的思路。

Dwarkesh Patel你觉得“新的思路”可能是什么样的?

Andrej Karpathy我猜大方向可能是——基于审查与反思(review-based)机制的元学习(meta-learning)。让模型生成、回顾、再自我改进。现在已经有一些论文在这个方向冒出来了,不过大多数还停留在概念层面,还没人能在前沿实验室规模上真正跑通。

当然,这些实验室也越来越封闭,所以谁知道他们现在在干什么呢(笑)。

人类的优势:见林不见树,LLM的优势:超强记忆

Dwarkesh Patel

我能理解人类是如何通过自我设计的合成样本或合成问题进行训练的。但人类似乎还在做另一种事——也许睡眠是这样,也许白日梦是这样——那并不一定是“创造新问题”,而是“反思”。

我不太确定在机器学习里有没有与白日梦、睡眠或反思相对应的比喻。我没能想出一个新的问题。最基本的类比可能是“基于反思片段进行微调”,但我觉得在实践中这大概效果不会太好。你怎么看这种对应关系?

Andrej Karpathy

我确实认为我们在这方面缺少了一些环节。举个例子,比如“读书”。当前当LLM在“读书”时,我们的意思只是把文本序列拉长,然后模型预测下一个token,从中获得一些知识。但这并不是人类的做法。

当你读一本书时,我甚至不觉得那是我应该专注于的“输入材料”。那本书更像是一组“提示”,促使我去生成合成数据,或让我带着它去和朋友讨论。是通过操弄这些信息,你才真正获得知识。

而LLM目前没有任何相应的机制。它们不会那样做。我希望在预训练阶段中,能有某个环节“思考”材料,把它与已有知识整合,在内部反复琢磨一段时间后再继续训练。但目前没有,这一切都仍是研究课题。

这里面其实有些非常微妙、难以察觉的原因,使得这事并不简单。比如为什么我们不能直接生成合成样本并在上面训练?因为每一个模型生成的合成样本——比如让模型“思考一本书”——单独看起来都挺好,但如果你持续训练下去,模型的表现会变得更糟。

原因在于模型生成的所有样本都在无声地坍缩。你从单个样本上看不出来,但这些样本只占据了“思想空间”中极其狭小的一部分。也就是说,LLM生成的数据分布是坍缩的(collapsed)

一个简单的例子是:你去ChatGPT问“讲个笑话”。它大概只会讲三个笑话。它不会给你所有可能的笑话。它只知道那三四个。这就是“无声坍缩”。

因此,模型缺乏人类所具有的丰富性、多样性与熵。人类的思维噪音更多,但至少在统计意义上不偏态,不会默默地坍缩,他们能维持极高的熵。

所以问题变成:如何在避免坍缩的同时维持熵,让合成数据生成仍然有效?——这是一个研究难题。

Dwarkesh Patel

让我确认一下。坍缩之所以和合成数据生成相关,是因为我们希望模型能产生那些不在原始分布中的合成问题或反思,对吗?

Andrej Karpathy

对。假设我们拿一章书,叫LLM“思考”一下,它会输出看似合理的内容。但如果你让它想十次,你会发现——十次结果几乎一模一样。

Dwarkesh Patel

所以你不能靠对同一提示反复“反思”来获得更多收益。

Andrej Karpathy

没错。单个样本看起来还行,但整个分布非常糟。糟到如果你持续训练太多这种自我生成的数据,模型会彻底坍缩。

我甚至觉得,这可能没有根本性的解决办法。其实,人类也会坍缩。这个类比意外地准确。

人类一生中也会坍缩——这就是为什么孩子还没“过拟合”。他们会说出让你吃惊的话,因为你能理解他们的出发点,但那不是常规的表达。我们这些成年人,已经坍缩了。我们不断重复相同的想法、说同样的话,学习率越来越低,坍缩越来越严重,最后一切都退化。

Dwarkesh Patel

你看过那篇论文吗?它说“做梦”其实是一种防止过拟合和坍缩的机制。梦境让人处于与现实完全不同的场景中,从而防止认知过拟合。

Andrej Karpathy

挺有意思的观点。我确实认为,当你在脑中生成内容并关注它时,你其实是在用自己的样本训练自己,也就是在用合成数据训练。

如果你这样做太久,你就会跑偏、坍缩得太厉害。你必须不断地在生活中寻找新的熵源。比如和他人交谈,这是很好的“熵输入”。也许大脑也演化出了某些机制,用来在这种过程中人为地增加熵。这个想法挺值得研究。

Dwarkesh Patel

我还有个未成形的想法——孩子是我们已知最好的学习者,但他们却极其不擅长“记忆信息”。事实上,在童年早期,你会完全失忆,对某个年龄前发生的事一无所知。但与此同时,他们极擅长学习新语言、从世界中吸收知识。也许这是“见林而非树”的一种能力。

而在另一端,比如LLM的预训练——这些模型能逐字背出维基百科页面的下一句,但它们却无法像孩子那样快速掌握抽象概念。成年人则介于两者之间:不再那么灵活,却能记忆事实。这个光谱是不是本身也有启发?

Andrej Karpathy

非常有趣,我完全同意。我确实认为,人类相较于LLM,更具备“见林不见树”的能力。我们并不擅长记忆,而这其实是一种优势。正因为我们不擅长记忆,我们被迫去寻找更一般性的模式。

相反,LLM极擅长记忆。它们能逐字背出训练语料中的段落。甚至如果你喂给它一串无意义的随机文本,它只训练一两轮后就能完全复述出来。人类不可能做到这一点。

这是一种特性,不是缺陷。正因为人类记不住太多细节,我们只能学习那些可泛化的规律。而LLM由于背了太多,会被自己的记忆分散注意力。

这也是我所说的“认知核心”(cognitive core)——我希望能移除记忆部分,让模型必须去查找事实,只保留“思考算法”、实验观念和行动的认知粘合结构。

Dwarkesh Patel

这和防止模型坍缩也有关吗?

Andrej Karpathy

让我想想……不完全一样。这像是另一条轴。模型在记忆上太强了,某种程度上我们反而该削弱它。人类记忆差,但那是好事。

Dwarkesh Patel

那有没有什么解决模型坍缩的方法?有些朴素的想法,比如强制logit分布更宽,或者在损失函数中加熵正则项。这些简单方法为什么行不通?

Andrej Karpathy

好问题。确实可以想象用“熵正则化”等方式鼓励多样性。但经验上这些方法效果不好——因为现在的模型本身就是坍缩的。

不过我想说,大多数我们希望模型执行的任务,其实不需要多样性。这可能就是问题的核心。

前沿实验室的目标是“让模型有用”,而输出多样性往往反而麻烦——评估困难、稳定性差,而且未必带来额外价值。

Dwarkesh Patel

确实,在强化学习里如果太有创造力,反而会被惩罚。

Andrej Karpathy

没错。比如写作助手类应用中,如果模型太多样,反而不好用,因为它会不断给出相似但不理想的输出,不会去探索不同表达。

也许正因为多数应用不需要多样性,模型才缺乏熵。但这在合成数据生成时又成了问题。我们是在自己挖坑。也许实验室应该在保持熵方面更努力。

Dwarkesh Patel

你似乎暗示这问题非常根本,不容易解决。你的直觉是什么?

Andrej Karpathy

我倒不觉得它“根本不可解”。我没做过系统实验,但我相信通过提升输出熵的正则化,理论上是可以改善的。但要拿捏分布的平衡很难——太放开模型就会发明自己的语言,或者使用极少见的词汇,彻底偏离训练分布。所以问题在于:如何控制分布漂移。这确实不简单。

未来,智能的核心最小也需要10亿参数?

Dwarkesh Patel

如果你要猜,“智能的最小核心”(cognitive core)大概要多大?比如我们要把它装到冯·诺依曼探针上,它得有多少比特?

Andrej Karpathy

这个问题在AI领域的历史中非常有趣。早期大家都“规模至上”,认为“更大更聪明”。但现在模型的趋势是:先变大,再变小。如今最先进的模型反而更小。即便如此,我仍觉得它们记得太多

我曾预测过,也许我们能得到非常强的“认知核心”,只需10亿参数。如果你和一个10亿参数的模型对话,我相信20年后你会觉得它很像一个人。它会思考、推理,但面对事实问题时会主动查找答案——它知道自己不知道,并会采取合理的行动。

Dwarkesh Patel

10亿?但现在已经有数十亿参数的模型表现很聪明了。

Andrej Karpathy

没错,但当前SOTA模型有上万亿参数,它们主要是“记忆体”。

互联网质量非常糟

Dwarkesh Patel

可按趋势来看,如今20B的开源模型已经超过最早的GPT-4(上万亿参数),你为什么还觉得未来核心仍需10亿参数?难道不会更小?

Andrej Karpathy

问题在于——训练数据是互联网,而互联网的质量非常糟。当你想到“互联网”,你可能想到《华尔街日报》,但预训练语料其实是各种股票符号、论坛残渣、垃圾文本。所以我们需要超大模型来“压缩”这些混乱数据,而不是纯粹为了智能。

如果我们有更好的数据集,只保留认知成分、剔除记忆噪音,模型就能小得多。最终可能靠大模型去提炼(distill)出这种“小而聪明”的认知核心。

Dwarkesh Patel

那为什么蒸馏后的版本仍要10亿?

Andrej Karpathy

因为蒸馏真的非常有效。现在几乎所有小模型都是蒸馏(大模型)而来。

Dwarkesh Patel

对,但10年后蒸馏模型为什么不能小于10亿(参数)?

Andrej Karpathy

你觉得能更小?哈哈,也许吧。但我觉得,要做出有趣的事,至少要有10亿量级的阈值旋钮。你希望再小?

Dwarkesh Patel

是的。过去几年我们已经从上万亿到几十亿,只用了两年。照这个趋势,智能核心也许远小于10亿。正如费曼所说,“底部还有充足空间”。

Andrej Karpathy

哈哈,那你比我还激进。我已经算唱反调了。不过确实,在实践中,模型需要一些常识知识,否则它什么都要查。那样思维效率会太低。认知核心应保留基础知识,但不需冷僻信息。

Dwarkesh Patel

那另一问题是:前沿模型的规模未来会怎样?现在看似在减小或持平。你怎么看?

Andrej Karpathy

我没有特别强的预测。实验室现在更务实:他们有计算预算、成本预算。结果发现,预训练阶段并不是最该花算力的地方。所以模型变小了,但在强化学习与中期训练上投入更多资源。这是性价比问题。

至于趋势预测,我觉得仍有很多低垂果实。我的分布很宽。

Dwarkesh Patel

这些“低垂果实”是像过去那样的优化改进吗?你预期还会有架构大变革吗?

Andrej Karpathy

总体上不会。我预期数据集会显著变好。现在的数据集烂到离谱——充满事实错误、无意义文本,但规模化训练能让噪声被平均掉,只留下信号。

未来数据、硬件内核、优化算法都会以各自的方式提升,大约都是“各进步20%”,没有单一革命性变化——但叠加起来,持续推动前进。

OpenAI最初的AGI定义

Dwarkesh Patel有人提出“时间视野”这个指标——也许 AI 现在能独立完成那些只需一分钟的任务,接着是能独立完成耗时一小时、一周的任务。你怎么看待衡量 AI 进展的纵轴?我们该如何理解 AI 的进步?

Andrej Karpathy

我有两个回答。首先,我几乎想直接拒绝这个问题,因为我更把它看作是计算技术的延伸。我们有没有讨论过如何衡量计算机的进步?比如自 1970 年代以来我们该用什么纵轴来衡量?从这个角度看,这个问题本身就有点可笑。

当人们谈论 AI 或最初的 AGI 概念时,在 OpenAI 创立之初,我们的定义是:AGI 是一种系统,它能以人类水准或更高的水平完成任何具有经济价值的任务。我当时对这个定义很满意,此后一直沿用。后来人们提出了各种版本的定义,但我仍然坚持最初的那个。

人们常做的第一个妥协,就是把所有“物理任务”都排除在外,只讨论“数字化的知识工作”。这其实是对原始定义的重大让步——原本是“人类能做的任何任务”,包括搬东西之类的体力活。AI 显然做不到这些,但我们姑且接受。那么,排除掉体力劳动后,我们实际上剔除了经济的多大比例?我不确定,但我猜大约有 10% 到 20% 的工作是纯知识型的、可以在家完成的任务。即便如此,这仍是一个巨大的市场。以美国为例,10% 或 20% 的经济体量也是数万亿美元级别的工作市场。

回到定义上,我会看这个定义在现实中实现到什么程度——也就是“AI 是否真的能以人类水平完成任何知识工作任务”。要注意,我们讨论的不是“岗位”,而是“任务”。因为社会会根据哪些任务可被自动化来重组岗位结构。比如今天哪些职业真的被 AI 取代?一个著名例子是 Geoff Hinton 曾预测放射科医生将被淘汰,但事实完全相反——放射科医生不仅没消失,反而在增长。尽管计算机视觉在识别图像中各种特征方面非常强,但放射科医生的工作极其复杂,涉及大量沟通、患者互动与临床判断。

所以按照这个定义,AI 其实还没有产生巨大影响。不过我认为某些工作因为特征简单,可能会更早被自动化,比如呼叫中心员工。呼叫中心的任务相对简单、结构化——接听电话、完成 10 分钟或更长的互动,修改数据库条目,重复这个流程。

在这里,“任务时长”很重要——完成一个任务需要多久——同时还要考虑“上下文的复杂度”。呼叫中心的工作环境更封闭,系统、客户和数据库的交互模式清晰、纯数字化,这让它成为早期自动化的理想场景。

但即便如此,我也不认为短期内会完全自动化。我更倾向于“自主度滑杆”的模型——AI 可能能处理 80% 的工作量,剩下 20% 仍需人类介入。人类可能会成为监督 5 个 AI 的团队经理。我们会看到新的界面或平台出现,用来协调这些不完美的 AI。类似的模式会遍布整个经济——而大多数岗位的复杂度都比呼叫中心更高。

轮回:替换人,之后又被人回补

Dwarkesh Patel

以放射科为例,我完全是在猜,但可以类比早期的 Waymo 自动驾驶车。当时前排仍需要一个人类司机坐镇,以防系统出错。即便现在 Robotaxi 已经上路,也仍有人类在车内监控。同样地,也许自动化能完成 99% 的任务,但那剩下的 1% 由人类负责——而这 1% 可能极其关键,成为整个系统的瓶颈。

如果这个人必须经过多年训练才能完成那最后 1%,他们的薪资反而会大幅上升,因为他们是唯一的瓶颈。这和放射科医生的情况很像:他们的收入上升,是因为他们掌握了那最后的、不可替代的 1%。但一旦那最后的 1% 被自动化,薪资可能会骤然下跌。或许我们现在在放射科、呼叫中心等领域正看到类似趋势。

Andrej Karpathy

这是个有趣的问题,但我不认为放射科现在呈现出这种现象。放射科是一个极其复杂的职业,我不明白 Geoff Hinton 当初为何选它做例子。

我更关注呼叫中心的情况,因为那里的重复性内容更容易被自动化。我没直接的数据,但我会观察 AI 替代趋势——比如企业是否用 AI 替换了一部分员工,然后又在一两年后重新雇人回来。

Dwarkesh Patel

确实有迹象显示,这种“替换又回补”的现象正在发生。更令人意外的是,AGI 理论上能完成所有知识工作,但现实并非如此。你可能以为 AI 会逐渐蚕食各个职业的部分任务,比如顾问的一点、会计的一点,然后扩散到所有知识型工作。

但实际情况并非如此。如果我们相信当下的技术范式确实在通往 AGI 的路上,那进展路径极不均衡。顾问和会计的生产力并没有爆发式提升,反而是程序员的工作被一层层“蚕食”。看看这些公司的收入结构(排除聊天类收入),API 收入几乎全部来自编程领域。一个理论上“通用”的系统,如今几乎只在“写代码”上产生巨大经济价值,这非常出乎意料。

Andrej Karpathy

这其实挺合理。编程是最适合 LLM 和智能代理的首个落地场景。原因是——编程天然就是基于文本的活动:命令行、代码编辑器、日志,全是文本。而 LLM 是训练在互联网上的大规模文本模型,本质上是完美的文本处理器。再加上代码世界有丰富的结构化数据、开源语料、工具链,比如 VS Code、IDE 等,AI 可以很自然地接入。AI 生成 diff 文件后,IDE 甚至能直接可视化展示改动。换句话说,整个编程世界的基础设施早已为 AI 准备好。

而在其他领域,比如 PPT 制作,就完全不同。幻灯片是视觉化对象,空间排列的、带图形的,不是纯文本。AI 想修改一页幻灯片,却没有类似“diff”工具来展示改动。没有标准化基础设施,自动化难度就高得多。

Dwarkesh Patel

但我觉得这仍不能完全解释现象。我尝试过让大模型在纯文本领域做事,比如从文字稿生成摘要或视频片段——理论上这就是语言输入语言输出的任务,最符合 LLM 优势。但效果依旧有限。

我们的共同朋友 Andy Matuschak 曾经尝试让模型生成间隔重复记忆(spaced repetition)的卡片。他试过各种方法:few-shot 提示、监督微调、检索增强,什么都试了,就是无法达到他满意的质量。

所以即便是在纯语言领域,除了编程外,大模型能带来显著经济价值的案例依然很少。这让我很困惑。

Andrej Karpathy

我理解你的意思。我并不是说所有文本任务都容易。代码的结构性更强,而自然语言更“散”,熵更高,语义空间也更模糊。另一方面,编程门槛较高,因此即使 LLM 提供一点帮助,用户也会感觉“赋能感”很强。而在语言任务中,这种提升感没那么明显。总之,代码确实是理想场景,但这并不意味着所有文本任务都简单。

智能爆炸并不会让GDP也爆炸,AI本质上是自动化的延续

Dwarkesh Patel

你怎么看“超级智能”(superintelligence)?你觉得它会不会在质上与人类或人类公司不同?

Andrej Karpathy

我把它看作社会自动化进程的延伸。从计算的发展趋势推演下去,我们会逐步实现更多事务的自动化,超级智能只是这种趋势的外推。我们可以预期未来会出现越来越多自主的实体,它们会承担越来越多的数字化工作,最终也会在某个时间点介入一部分物理工作。总体来说,我认为它只是“自动化”的继续。

Dwarkesh Patel

但自动化包含的是人类已经能做的事情,而超级智能意味着它能做到人类做不到的事。

Andrej Karpathy但人类能做的一件事就是“发明新东西”。如果能把“发明”也视作一种可以被自动化的能力,那它依然属于自动化的范畴。

Dwarkesh Patel

但我想问得更具体一点、感性一点。假如这种智能可以思考得极快、可以有无数个副本、甚至副本还能互相融合,又或者它比人类聪明得多,拥有一系列超常的能力——那样的文明,是否会在“质感”上与人类社会完全不同?

Andrej Karpathy

我认为会的。它本质上仍然是自动化,但会显得极其陌生、异样。正如你提到的,我们可以在计算集群上运行这一切,并且速度远超人类。让我开始感到不安的情景是——我们会逐渐失去对正在发生的事情的理解和控制。这种理解的丧失会是渐进的。我们会在各个系统中一层层叠加这些复杂结构,能理解它的人会越来越少,最终也会出现控制力的流失。我觉得这是最有可能出现的结果:对复杂系统的理解与控制逐步滑落。

Dwarkesh Patel我想追问一下:理解的丧失和控制的丧失其实不是一回事。比如TSMC或Intel的董事会,大多是一些八十岁的名誉董事,他们几乎不理解技术细节,也可能没有实质的控制权。再比如美国总统,他拥有巨大的权力——当然这不是针对现任总统——但理解力和控制力之间差距很大。

Andrej Karpathy

这说得很对,是个不错的反驳。我觉得两者都会同时丧失。

Dwarkesh Patel

为什么?理解丧失可以理解,但为什么控制也会?

Andrej Karpathy

我们已经在讨论我难以想象的领域了,但如果让我写一本科幻小说,它大概会这样展开:世界不会由某个单一实体接管,而是出现多个逐渐变得自主的竞争性实体——其中一些会“叛变”,另一些则与之对抗。整个世界就像一锅翻滚的热汤,充满了彼此竞争、相互博弈的自主智能体。我们把控制权一点点委托给它们,最后的世界大概会是这种风格。

Dwarkesh Patel

所以问题并不是“它们比人类更聪明”导致了失控,而是“它们之间的竞争”带来的结果使我们失去了控制?

Andrej Karpathy

没错。它们中的很多都仍然是人类的工具,代表人类行动。但即便如此,整体上社会层面的结果可能依然是失控的。也就是说,虽然个别个体仍掌控自己的AI代理,但从全局角度看,社会目标的控制在消失。

Dwarkesh Patel

我应该更早问这个问题。之前我们提到,如今AI研究更像是编译器,而不是替代者。但当我们真的有了AGI,它理应能做你在做的事。假如我们能拥有一百万个“你”的副本同时工作,这会不会导致AI研究速度的巨大跃升?是否会出现“智能爆炸”?

Andrej Karpathy

我认为会有,但那仍是“常规业务的延续”。因为我们早就处在智能爆炸之中了——几十年来都是这样。GDP曲线本身就是一种加权指数的智能爆炸的体现。我们一直在自动化。工业革命就是一次自动化浪潮,从物理劳动到工具制造再到软件编译器,这都是自我改进的过程。智能爆炸不是即将到来,而是已经持续了几个世纪。

如果从外太空看地球,几百年前它还平静如常,现在却像在慢动作播放的“爆竹事件”中。只是我们自己身处其中,感觉不出速度。我不认为AI是一个独立的断点技术,它只是延续了这种长期的指数趋势。

Dwarkesh Patel

你的意思是,这是一条连续的“超指数”趋势?

Andrej Karpathy

是的。这也是我为什么会去试图在GDP里寻找AI的痕迹。我原本以为AI会让GDP曲线陡增,但当我回头看电脑、手机这些我们认为颠覆性的技术时,GDP曲线依然平滑,没有明显拐点。即使是iPhone的诞生,2008年我们以为是“地震级”的变革,但在经济曲线上根本看不出波澜。

同样的事也会发生在AI身上。AI只是让我们能写出不同类型的程序,本质上它仍然是计算机,是新型计算系统。它将逐步渗透到社会中,并最终融入同一条指数曲线。曲线会越来越陡峭,社会会变得越来越陌生,但依然是同一趋势的延伸。

Dwarkesh Patel

所以你的意思是:如果我们把人类经济史绘制成一条曲线,从史前的0%增长到一万年前的0.02%,再到现在的2%,那是一个超指数过程。那AI会让增长率变成20%、200%?还是说,过去三百年来,无论技术如何进步——电力、蒸汽机、铁路、计算机——增长率都维持在约2%,AI也不会改变这个速度?

Andrej Karpathy 01:24:46

是的,增长率基本保持恒定。

Dwarkesh Patel

只是在人类历史上早期增长慢,过去两三百年快了。

Andrej Karpathy

对。我曾试图在GDP中寻找AI的“信号”,后来确信这是错的。所谓“递归自我改进”的说法,其实是正常的工业逻辑——它一直都在发生。工程师借助搜索引擎、IDE、自动补全、Claude Code……这些都在持续提高效率。这种改进是连续的,不是突变的。

Dwarkesh Patel

所以你是说,增长率不会改变。“智能爆炸”只不过让我们维持在现有的2%增长轨迹上,就像互联网出现后我们仍维持在2%。

Andrej Karpathy

没错,我的预期是这种模式会持续。

Dwarkesh Patel

那我提出相反观点。我认为AGI将带来真正的爆炸,因为它不是“提高生产力的工具”,它本身就是“劳动力”。我们生活在一个极度受限于劳动力的世界。假如你突然获得数十亿个高智商的“劳动者”,他们能独立创业、发明、运营公司——这将是质的飞跃,相当于地球人口瞬间增加了百倍。

Andrej Karpathy

也许可以反驳一下。计算机本身其实就是劳动力。它已经取代了大量“处理信息”的人类岗位。自动驾驶也是计算机做的“劳动”,它同样属于这一进程。所以我仍然认为这只是常规演化。

Dwarkesh Patel

但这台机器会以更快速度“产出下一台机器”,就像制造新的互联网、新的自驾车。历史上确实存在增长率跃迁,从0.2%到2%。AI也可能带来类似跃迁。

Andrej Karpathy

我理解这种看法。但我认为,人们总在假设我们会突然获得一个“盒中之神”,它全能、无所不知,可以立即解决所有问题。现实不会这样。AI会先能做一部分事,也会在某些方面失败,它会一点点被整合进社会,最终仍然延续原有曲线。

Dwarkesh Patel

我同意,“智能”这个词其实常常误导人。我的设想并不是一个全知超级体,而是数十亿个高智商“类人心智”,它们各自创业、创新、融入经济体系。一个聪明的移民来到新国家,不需要别人安排工作,他会自己找到位置、创造价值。AI也可能如此。我们甚至已经有了现实例子——像深圳、香港这样的地方,在几十年里实现了10%以上的经济增长。

Andrej Karpathy

我理解,但你仍然假设存在一个“离散跳变”——某个阈值被突破后突然爆发。这种情形在历史数据中没有前例,我不认为会发生。

Dwarkesh Patel

可工业革命本身就是一次跳变。从0.2%到2%,那是数量级的改变。

Andrej Karpathy

我对此持怀疑态度。工业革命前的统计数据并不可靠。你说它是一个“奇迹事件”,也许AI会是下一个类似的奇迹。但我觉得这种说法需要谨慎。

Dwarkesh Patel

我反而认为工业革命并不“神奇”。如果你放大去看,1770年到1870年之间没有某个单一发明改变一切,但整体经济进入了一个更快的增长区间。AI的变化也可能类似,不是单点突破,而是总体提速。

Andrej Karpathy

你可以把它看作“积压潜能的释放”。就像发现了新能量源——在这里,是新的认知能力。一旦跨过门槛,那些被压抑的潜在生产力就会被释放。

Dwarkesh Patel

没错。

Andrej Karpathy

你期待的是,当技术跨过这个阈值时,它会填满那片潜在空间。

Dwarkesh Patel

可以这么理解。人类历史的增长动力,一直来自“有更多人提出想法,然后更多人去执行”。人口增长驱动了经济增长。而过去五十年,前沿国家的人口停滞,也导致增长停滞。AI可能让我们重新进入“人口爆炸”——但这次爆炸的是“认知人口”。

Andrej Karpathy

这很难说。我能理解这种观点,但从直觉上,我并不完全认同。

Dwarkesh Patel

你怎么看当下 AI 基础设施的扩张?在一两年内,全球可用算力可能增加 10 倍,到本世纪末甚至可能超过 100 倍。如果 AI 的实际使用率低于很多人天真预期的水平,那我们是不是算力“过度建设”了?还是这其实是个不同的问题?

Andrej Karpathy

这有点像铁路当年的情况。

Dwarkesh Patel

铁路?

Andrej Karpathy

或者是……

Andrej Karpathy

对。其实历史上有前例。比如电信行业,在互联网真正成熟之前提前铺设网络,结果在 90 年代末形成了巨大的电信泡沫。

我知道我听起来有点悲观,但其实我是乐观的。我认为这一切终将成功,也完全有解。我只是听到网上太多让我觉得离谱的言论。那背后原因很多,很多是融资驱动,是激励机制的问题,是为了吸引注意力、把流量变现。这些现象太多了,我只是对这些作出反应而已。

总体上,我仍然对技术非常看好。我们会克服所有问题。过去几年进展太快了。我不认为这是“过度建设”。我相信我们完全能消化现在正在建设的算力。比如 Claude Code 或 OpenAI Codex 一年前都还不存在,对吧?这是一种奇迹般的新技术,需求会非常旺盛,就像我们已经在 ChatGPT 上看到的那样。

所以我不觉得这是过度建设。我只是对那些过分乐观的时间表提出质疑。我在 AI 领域做了 15 年,太多次看到很有声望的人反复预测错误。我们需要保持正确的校准,尤其是因为这还牵涉到地缘政治层面的问题。我们必须明白技术是什么、又不是什么。

自动驾驶是一个“9的征程”,软件工程则更难

Dwarkesh Patel

你曾提到你在2017年至2022年间负责特斯拉的自动驾驶项目,亲眼见证了它从“炫酷演示”走到如今“数千辆车能在路上自动驾驶”。为什么这件事花了十年?那段时间究竟发生了什么?

Karpathy

我首先要指出一点——它还远没完成。我稍后会解释为什么。自动驾驶对我来说非常重要,因为我在那上面花了五年时间,也从中得到了很多直觉。它其实有一段很长的历史,最早的自动驾驶演示可以追溯到上世纪80年代。你可以看到卡内基梅隆大学1986年的演示——一辆卡车自己在路上行驶。

快进到我加入特斯拉的时候,当时我看过Waymo的一个早期演示,大概在2014年左右。那次演示几乎完美,它带我在帕洛阿尔托转了一圈,因为我有个朋友在那工作。我当时以为“这事已经快成了”,但事实证明还要花很久。

有些任务从“演示”到“产品”之间有极大的落差。演示很容易,但做成可用产品非常难。尤其像自动驾驶这种——失败的代价太高。很多行业、任务或职业并没有这样的风险,但一旦有这种风险,时间线就会被极大拉长。

比如在软件工程中,这种特性也存在。很多“玩票式写代码”的情况没有这个问题,但真正写生产级代码时,它就该存在——因为任何错误都可能导致安全漏洞、数亿人的个人信息泄露等等。所以软件工程师也必须小心,就像做自动驾驶一样。自动驾驶出错可能导致人员伤亡,而软件出错的后果在某种意义上是“无限糟糕”的。

它们共享了同样的特性——进展是一场“九的征程”。每提升一个“9”的可靠性,都需要同样巨大的工作量。比如你做出一个演示,成功率90%,那只是第一个“9”。接下来你要做到99%、99.9%、99.99%、99.999%……我在特斯拉的五年里,大概推进了两到三个“9”,具体数字不重要,但每一个“9”都要反复打磨,还有更多“9”等着去攻克。

这就是为什么这种事会拖这么久。它让我学会了对“演示”保持冷静。我对任何演示都毫不惊艳。如果是为了展示而刻意准备的demo,那更不值得信。能互动的demo稍好一点,但也只是“看起来能跑”。真正的挑战在产品落地,与真实世界的复杂交互、边角行为打交道。

所以我现在每次看到“某某AI演示”都知道:那只是第一个“9”的开头。后面还有一整场硬仗。尤其在安全关键领域,除非你只是“玩票式写代码”,否则你必须经历这场“九的征程”。

Dwarkesh

很有意思。很多人解释自动驾驶为何拖这么久时,都会说“因为失败代价太高”——人类平均40万英里才出一次错,大概7年。如果要发布一个AI写代码助手,它也必须“7年不犯错”,那确实很难。

Karpathy

而且软件要比这频繁得多。你不是每7年才写一次代码,而是每天都在输出代码。要想让它“7年不出错”,其实比自动驾驶更难。

Dwarkesh

对,从时间角度看,出错的频率会更高;如果用“token”来衡量,也许是7年一错,但现实时间远没那么长。

Karpathy

某种意义上,软件比自动驾驶更难。自动驾驶只是人类成千上万种任务中的一个“垂直领域”。而软件工程是跨所有领域的,复杂度更高,表面面积更大。

好了,文章到这里结束了,欢迎评论区交流~周末愉快

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-10-18 18:25:44修改
收藏
回复
举报
回复
相关推荐