Andrej Karpathy:AGI 仍需十年,长期挑战犹存




内容概要

在这篇访谈中,Andrej Karpathy 与 Dwarkesh Patel 深入探讨了人工智能的现状与未来。Karpathy 认为通用人工智能 (AGI) 仍需十年才能实现,而不是一年,并详细阐述了当前大型语言模型 (LLM) 在认知层面(如持续学习)的诸多缺陷。他还尖锐地批评了强化学习 (RL) 的低效(称其为“糟糕的”),并对比了人类与机器的学习方式。此外,对话还涵盖了 AGI 对经济增长的渐进式影响、自动驾驶技术发展的漫长历程(“9 的行军”)以及 Karpathy 对未来教育(其新项目 Eureka)的愿景。


目录

  • AGI 仍需十年

  • LLM 的认知缺陷

  • RL 很糟糕

  • 人类如何学习?

  • AGI 将融入 2% 的 GDP 增长

  • ASI(人工智能超级智能)

  • 智能与文化的演进

  • 为什么自动驾驶花了这么长时间

  • 教育的未来


正文

AGI 仍需十年

Dwarkesh Patel: 今天我与 Andrej Karpathy 对话。Andrej,你为什么说这将是“智能体 (agents) 的十年”,而不是“智能体的元年”?

Andrej Karpathy: 首先,感谢你的邀请。我很高兴来到这里。

你提到的那句话,“这是智能体的十年”,其实是对一个先前观点的回应。我不确定那话是谁说的,但他们暗示今年将是 LLM 演进中的“智能体元年”。我对此有些触动,因为我觉得行业中存在一些过度预测。在我看来,更准确的描述应该是“智能体的十年”。

我们现在有一些非常早期的智能体,它们极其出色,我每天都在用——比如 Claude、Codex 等等——但我仍然觉得还有太多工作要做。我的意思是,我们将花十年时间来完善这些东西。它们会变得越来越好,这很棒。我只是对那种时间线暗示做个回应。

Dwarkesh Patel: 你认为有哪些东西需要十年才能完成?瓶颈在哪里?

Andrej Karpathy: 真正让它“运转起来”。当谈论一个智能体时,或者当实验室和我想象智能体时,你应该把它想象成一个你雇来共事的员工或实习生。比如,你这里有一些员工。你什么时候会更愿意让一个像 Claude 或 Codex 这样的智能体来做那些工作?

目前,它们显然做不到。它们为什么做不到?因为它们根本“不行”。它们不够智能,多模态 (multimodal) 能力不足,无法操作系统(computer use)等等。

它们也做不到你之前提到的很多事。它们没有持续学习 (continual learning) 能力。你不能告诉它们一件事,然后期望它们记住。它们在认知上存在缺陷,根本无法胜任。解决所有这些问题大概需要十年时间。

Dwarkesh Patel: 有趣。作为一名专业的播客,同时也是 AI 的远观者,我很容易发现缺少什么:缺少持续学习,或者缺少多模态。但我真的没有一个好方法来设定一个时间表。如果有人问持续学习需要多长时间,我不知道这个项目应该花 5 年、10 年还是 50 年。为什么是十年?为什么不是一年?为什么不是 50 年?

Andrej Karpathy: 这就涉及到我个人的一些直觉了,以及基于我在该领域经验的外推。我进入 AI 领域快二十年了,大概 15 年左右,也不算太长。你邀请过的 Richard Sutton 可比我久远得多。我大约有 15 年的经验,看过人们做预测,也看到结果如何。我曾在工业界待过,也做过研究。我从中获得了一种总体直觉。

我感觉这些问题是可解的 (tractable),是可以克服的,但它们仍然很困难。如果我取个平均值,对我来说就是十年。

Dwarkesh Patel: 这很有趣。我不仅想了解历史,还想知道在各个不同的突破性时刻,身处其中的人感觉即将发生什么。他们在哪些方面过于悲观或过于乐观?我们是否应该逐一回顾?

Andrej Karpathy: 这是一个大问题,因为你谈论的是 15 年来发生的事情。AI 如此奇妙,就是因为它经历了很多次“地震级”的转变 (seismic shifts),整个领域突然就变了个样。我大概经历了两三次这样的转变。我仍然认为这种情况会继续发生,因为它们总是不期而至。

我的职业生涯刚开始时,我开始研究深度学习 (deep learning),当时是偶然在多伦多大学 Geoff Hinton 旁边。Geoff Hinton 当然是 AI 领域的教父级人物。他当时在训练各种神经网络 (neural networks)。我觉得这太不可思议了,非常有趣。这在当时远非 AI 领域的主流,只是旁边一个很小众的课题。这也许就是 AlexNet 带来的第一次剧烈转变。

AlexNet 让所有人重新调整了方向,大家开始训练神经网络,但仍然是针对特定任务 (per-task) 的。比如,我可能有一个图像分类器,或者一个神经机器翻译器。人们慢慢开始对智能体感兴趣。大家开始想,“好吧,也许我们在视觉皮层之类的东西上打了个勾,但大脑的其他部分呢?我们怎样才能得到一个完整的智能体或实体,能与世界互动?”

2013 年左右的 Atari 深度强化学习转变,在我看来,是早期智能体探索的一部分。因为它试图让智能体不仅能感知世界,还能采取行动、互动,并从环境中获得奖励。当时,环境就是 Atari 游戏。

我感觉那是一个失误 (misstep)。这个失误甚至连我参与的早期 OpenAI 也采纳了。因为当时的主流思潮 (zeitgeist) 就是强化学习 (reinforcement learning) 环境、游戏、玩游戏、攻克游戏,尝试各种不同类型的游戏,OpenAI 当时做了很多这方面的工作。那是 AI 领域的另一个重要阶段,大概有两三年、四年的时间,所有人都在游戏上做强化学习。那有点误入歧途。

我在 OpenAI 试图做的是,我一直对“游戏能通向 AGI”这件事持怀疑态度。因为在我看来,你想要的是像会计师一样的东西,能与真实世界互动。我看不出玩游戏如何能导向那个目标。例如,我在 OpenAI 的项目,是在 Universe 项目的范畴内,研究一个使用键盘和鼠标操作网页的智能体。我非常希望能有一个与真实数字世界互动、能做知识性工作的东西。

事实证明,这个想法太早了,早得离谱,我们根本不应该在那时做那个。因为如果你只是在那些环境里跌跌撞撞,乱按键盘、乱点鼠标,试图获得奖励,你的奖励会极其稀疏 (sparse),你什么也学不到。你会烧掉海量的计算资源,却一无所获。你缺少的是神经网络中的表征能力 (power of representation)。

例如,今天人们也在训练那些使用计算机的智能体,但他们是在大型语言模型的基础上进行的。你必须先有语言模型,先获得表征,你必须通过所有的预训练 (pre-training) 和 LLM 的工作来做到这一点。

所以,粗略地说,我感觉人们曾几次过早地试图一步到位,过早地追求完整的智能体。那就是 Atari 和 Universe,甚至包括我自己的经历。你实际上必须先做一些事情,然后才能研究那些智能体。现在的智能体能干多了,但也许我们仍然缺少那个技术栈中的某些部分。

我想说,人们所做的大致可以分为三大类:针对单一任务训练神经网络;尝试第一轮的智能体;然后是 LLM,在叠加其他所有东西之前,先寻求神经网络的表征能力。

Dwarkesh Patel: 有趣。如果我要强化 (steelman) Sutton 的观点,那就是人类可以一次性处理所有事情,甚至动物也可以。动物也许是更好的例子,因为它们甚至没有语言这个支架。它们被扔进这个世界,必须在没有任何标签的情况下理解一切。

那么,AGI 的愿景就应该是这样:它观察感官数据,看着电脑屏幕,然后从头开始弄清楚发生了什么。如果一个人处于类似情境,必须从头开始训练……这就像一个人类或动物的成长过程。为什么 AI 的愿景不应该是这样,而不是我们现在这种耗费“数百万年”训练的方式?

Andrej Karpathy: 这是一个非常好的问题。Sutton 上过你的播客,我看了,并且我写了一篇关于那期播客的博客,谈到了我的一些看法。我非常谨慎地使用与动物的类比,因为它们是通过一个截然不同的优化过程产生的。动物是进化来的,它们天生自带着大量的内置硬件。

例如,我在文章中举的例子是斑马。斑马一出生,几分钟后就能跑来跑去,跟着妈妈。这是一件极其复杂的事情。那不是强化学习,那是写在基因里的。显然,进化有某种方式将我们神经网络的权重 (weights) 编码在 ATCG(DNA 碱基)中,我不知道那是怎么做到的,但它显然奏效了。

大脑来自一个非常不同的过程,我不太愿意从中汲取灵感,因为我们实际上并没有在运行那个过程。我在文章里说,我们不是在制造动物 (animals)。我们是在制造“幽灵”(ghosts) 或“灵魂”(spirits),或者随便人们想怎么称呼它。因为我们不是通过进化来训练,我们是通过模仿人类以及他们在互联网上留下的数据来进行训练。

你最终得到的是这些飘渺的、灵魂般的实体,因为它们是纯数字的,并且在模仿人类。这是一种不同类型的智能。如果你想象一个智能空间,我们几乎是从一个不同的起点出发的。我们并不是真的在制造动物。但随着时间的推移,让它们更像动物一点也是可能的,我认为我们应该这样做。

还有一点。我确实觉得 Sutton 有一个……他的框架是,“我们想制造动物”。我认为如果我们能做到这一点,那将非常棒。如果真的存在一个单一算法,你只需在互联网上运行它,它就能学会一切,那将令人难以置信。我不确定它是否存在,而且动物肯定不是那样的,因为动物有一个进化的外循环 (outer loop)。

很多看起来像学习的东西,更像是大脑的成熟过程。我认为动物很少使用强化学习。很多强化学习更像是运动任务 (motor tasks),而不是智能任务 (intelligence tasks)。所以,我其实有点认为,人类在很大程度上并不使用 RL。

Dwarkesh Patel: 你能重复最后一句吗?很多智能不是运动任务……它是什么?

Andrej Karpathy: 在我看来,很多强化学习更像是运动类的东西,比如投篮这种简单的任务。但我认为人类在很多智能任务上,比如解决问题等,并不使用强化学习。这不代表我们不该在研究中这样做,我只是觉得动物是这样(或不是这样)运作的。

Dwarkesh Patel: 我需要一点时间来消化,这里面有很多不同的观点。为了理解你的看法,我想问一个澄清性的问题。你暗示进化所做的事情,类似于预训练在构建某种能理解世界的东西时所做的事情。

不同之处在于,对人类而言,进化必须通过 3 GB 的 DNA 来实现。这与模型的权重截然不同。模型的权重本身就是一个大脑,这显然不存在于精子和卵子中,它必须被“培育”出来。而且,大脑中每一个突触的信息根本不可能存在于那 3 GB 的 DNA 中。

进化似乎更接近于“找到那个算法”,然后由该算法进行终生学习。现在,也许终生学习并不类似于 RL,正如你所说。这与你刚才的说法相符吗?还是你不同意?

Andrej Karpathy: 我认为是相符的。我同意你说的,这里发生了一些奇迹般的压缩 (compression),因为神经网络的权重显然不是存储在 ATCG 里的。这其中有惊人的压缩。有一些学习算法被编码进去了,它们接管并在线完成一部分学习。这一点我绝对同意你。

我想说我更偏向实用主义。我不是从“让我们制造动物吧”这个角度出发的。我是从“让我们制造有用的东西吧”这个角度出发的。我戴着安全帽,我只是观察到我们无法做到“进化”,因为我不知道该怎么做。

但事实证明,我们可以通过模仿互联网文档来构建这些“幽灵”般的实体。这很管用。这是一种途径,让我们能获得一个内置了大量知识和某种智能的东西,也许类似于进化所做的事情。这就是为什么我称预训练 (pre-training) 是“蹩脚的进化”(crappy evolution)。这是在我们现有的技术和资源条件下,切实可行的版本,它能让我们达到一个起点,从那里我们才可以开始做强化学习之类的事情。

Dwarkesh Patel: 只是为了强化一下另一种观点,在采访完 Sutton 并思考之后,我觉得他有一个很重要的观点。进化并没有真正给我们知识,它给了我们“寻找知识的算法”,这似乎与预训练不同。

也许有种观点是,预训练帮助构建了那种“能学得更好”的实体。它教授了元学习 (meta-learning),因此类似于找到了一种算法。但如果说“进化给我们知识,预训练也给我们知识”,这个类比似乎就站不住脚了。

Andrej Karpathy: 这很微妙,你反驳得对。基本上,预训练在做的是,你试图在互联网上获得下一个词元预测器 (next-token predictor),然后把它训练进神经网络。它同时在做两件不相关的事情。第一,它在吸收我所说的所有“知识”。第二,它实际上在变得“智能”。

通过观察互联网上的算法模式 (algorithmic patterns),它在神经网络内部启动了所有这些小电路和算法,来执行上下文学习 (in-context learning) 之类的事情。你不需要也不想要那些“知识”。我认为那些知识可能反而在整体上拖累了神经网络,因为它让它们有时过于依赖知识。

例如,我觉得智能体有一个不擅长的地方,就是脱离互联网上已存在的数据流形 (data manifold)。如果它们的知识或记忆更少,也许它们会做得更好。我认为我们未来必须做的——这也将是研究范式的一部分——是找到方法移除部分知识,只保留我所说的“认知核心”(cognitive core)。它是一个智能实体,剥离了知识,但包含了算法、智能的魔力、解决问题的能力以及策略等等。

Dwarkesh Patel: 这里面有太多有趣的东西了。让我们从上下文学习 (in-context learning) 开始。这是一个显而易见的观点,但我认为值得明确说出来并思考一下。这些模型看起来最智能的时刻——当我与它们交谈时,我会觉得“哇,另一端真的有东西在回应我、在思考”——是当它们犯错时,它们会说:“哦等等,那种思考方式是错的。我退一步。”所有这些都发生在上下文中。这就是我感觉能直观看到的真正智能。

这个上下文学习过程是通过在预训练数据上进行梯度下降 (gradient descent) 发展而来的。它自发地“元学习”到了上下文学习能力,但上下文学习本身并不是梯度下降。这就像我们人类一生的智能,虽然受到进化的制约,但我们一生中的学习是通过其他过程发生的。

Andrej Karpathy: 我不完全同意这一点,但请你继续你的思路。

Dwarkesh Patel: 好吧,我很好奇这个类比在哪些地方不成立。

Andrej Karpathy: 我不太敢说上下文学习不是在做梯度下降。它不是在做“显式”的梯度下降。上下文学习是在一个词元 (token) 窗口内的模式补全 (pattern completion)。碰巧互联网上有海量的模式。你说的对,模型学会了补全模式,这存在于权重 (weights) 之中。神经网络的权重试图发现模式并补全它。神经网络内部发生了一些适应 (adaptation),这很神奇,完全是从互联网数据中涌现出来的,只因为那里有大量模式。

我想说,有一些论文我觉得很有趣,它们探究了上下文学习背后的机制。我确实认为,上下文学习有可能在神经网络的层 (layers) 内部运行一个小型的梯度下降循环。我记得有篇论文,他们使用上下文学习来进行线性回归 (linear regression)。你输入到神经网络的是 (X, Y) 数据对,(X, Y), (X, Y), (X, Y),它们碰巧在一条直线上。然后你输入 X,期望得到 Y。当你用这种方式训练神经网络时,它确实在做线性回归。

通常,当你运行线性回归时,你有一个小型的梯度下降优化器 (optimizer),它查看 (X, Y),查看误差,计算权重梯度,然后进行几次更新。结果是,当他们研究那个上下文学习算法的权重时,他们发现了一些与梯度下降机制的相似之处。事实上,我认为那篇论文的论证更强,因为他们硬编码 (hardcoded) 了神经网络的权重,使其通过注意力 (attention) 和神经网络的所有内部机制来执行梯度下降。

这只是我唯一的反驳。谁知道上下文学习是怎么运作的,但我认为它很可能在内部做某种奇特的梯度下降。我认为这是可能的。我只是反驳你说的它“不是”在做上下文学习。谁知道它在做什么,但它可能在做类似的事情,只是我们不知道。

Dwarkesh Patel: 那么就值得思考一下,如果上下文学习和预训练都在实现某种类似梯度下降的东西,为什么我们感觉上下文学习能带来持续学习、真正类似智能的东西?而你不会从预训练中得到类似的感受。

如果这是同一个算法,区别可能在哪里?一种思考方式是,模型从训练中每接收到一点信息,它会存储多少信息?如果你看预训练,比如 Llama 3,它是在 15 万亿个词元上训练的。如果你看 70B (700 亿) 参数的模型,这相当于它在预训练中看到的每个词元,只存储了 0.07 比特 (bits) 的信息(模型权重中的信息量 vs 读取的词元量)。而如果你看上下文学习中 KV 缓存 (KV cache) 如何随着每个新增词元而增长,它大概是 320 KB。所以在模型吸收每个词元的信息量上,两者相差了 3500 万倍。我不知道这是否有关联。

Andrej Karpathy: 我有点同意。我通常的说法是,在神经网络训练期间发生的任何事情,所获得的知识只是对训练时发生的事情的“朦胧回忆”(hazy recollection)。这是因为压缩率太高了。你把 15 万亿个词元压缩到最后只有几十亿参数的神经网络中。显然,这发生了巨量的压缩。所以我称之为对互联网文档的“朦胧回忆”。

然而,在神经网络的上下文窗口 (context window) 中发生的任何事情——你塞入所有词元并构建所有 KV 缓存表征——神经网络都可以非常直接地访问。所以我把 KV 缓存和测试时 (test time) 发生的事情比作“工作记忆”(working memory)。上下文窗口中的所有东西,神经网络都可以非常直接地访问。

LLM 和人类之间总是有这些惊人的相似之处。我觉得很惊讶,因为我们并没有试图直接构建人脑。我们只是发现这行得通,于是就这么做了。但我确实认为,权重中的任何东西,都是你一年前读过的东西的朦胧回忆。你在测试时作为上下文给它的任何东西,都直接存在于工作记忆中。这是一个非常有力的类比,可以用来思考问题。

例如,当你去问一个 LLM 某本书里的内容时,比如 Nick Lane 的书,LLM 通常会给你一些大致正确的东西。但如果你把整个章节喂给它,再问它问题,你会得到好得多的结果,因为它现在被加载到了模型的工作记忆中。所以,绕了一大圈,我还是同意你的观点,这就是原因。

Dwarkesh Patel: 退一步说,关于人类智能,我们最没能在这些模型中复制出来的部分是什么?

Andrej Karpathy: 太多了。也许一种思考方式是,我不知道这是不是最好的方式,但我几乎觉得——再次强调,这些类比都不完美——我们偶然发现了 Transformer 神经网络,它极其强大、非常通用。你可以在音频、视频、文本或任何你想要的数据上训练 Transformer,它就是能学习模式,非常强大,效果很好。这对我来说几乎表明,这就像一块“皮层组织”(cortical tissue)。因为皮层 (cortex) 也是出了名的可塑性强。你可以重连大脑的某些部分。有过一些有点残酷的实验,把视觉皮层连接到听觉皮层,动物也能正常学习。

所以我认为 Transformer 就是皮层组织。当我们在神经网络内部进行推理和规划时,为“思考模型”执行推理轨迹 (reasoning traces),这有点像前额叶皮层 (prefrontal cortex)。也许这些算是打上勾了,但我仍然认为还有许多大脑部件和核团 (nuclei) 尚未被探索。

例如,当我们用强化学习微调 (fine-tune) 模型时,有基底神经节 (basal ganglia) 在做一些强化学习。但是,海马体 (hippocampus) 在哪里?不清楚那对应什么。有些部分可能不重要。也许小脑 (cerebellum) 对认知、思想不重要,所以我们可以跳过。但我仍然认为,比如杏仁核 (amygdala),所有的情感和本能,大脑中可能还有一堆非常古老的核团,我认为我们还没有真正复制出来。

我不知道我们是否应该追求构建一个与人脑相似的东西。我骨子里主要是个工程师。也许回答这个问题的另一种方式是:你不会雇这个东西当实习生。它缺少很多东西,因为它有许多认知缺陷 (cognitive deficits),这些缺陷在我们与模型交谈时都能直观地感觉到。所以它还不完整。你可以将其视为“并非所有的大脑部件都已打勾”。

Dwarkesh Patel: 这也许与思考这些问题解决速度有关。有时人们会谈到持续学习:“看,你可以轻易复制这个能力。就像上下文学习是在预训练中自发涌现的一样,如果模型被激励在更长的时间跨度(超过一次会话)内回忆信息,那么跨越更长周期的持续学习也会自发涌现。”如果某个外循环 RL 中包含许多会话,那么这种持续学习——无论是自我微调,还是写入外部记忆——就会自发出现。你觉得这样的事情可能吗?我只是不知道这有多大可能。

Andrej Karpathy: 我不太能认同这种说法。这些模型,当你启动它们时,窗口里是 0 个词元,它们总是从原始状态重新开始。所以我不知道在那个世界观里它会是什么样子。

也许可以和人类做个类比——只是因为它比较具体且有趣。我感觉,当我醒着的时候,我在构建一个关于白天发生的事情的上下文窗口。但当我睡觉时,会发生一些神奇的事情,我不认为那个上下文窗口会一直保留。有一个过程会把信息“蒸馏”(distillation) 到我大脑的权重中。这发生在睡眠期间。

大型语言模型中没有与此等价的东西。对我来说,这更接近你所说的“缺失了持续学习”。这些模型没有一个“蒸馏阶段”,用来吸收发生过的事情,执着地分析它、思考它,进行某种合成数据生成 (synthetic data generation) 过程,然后把它蒸馏回权重中。也许是针对每个人的特定神经网络,也许是一个 LoRA (Low-Rank Adaptation)。它不是一个完整的权重网络,只是权重中一小部分稀疏的子集被改变了。

但我们确实希望创造出拥有超长上下文的“个体”。这不仅仅是保留在上下文窗口中,因为上下文窗口会变得非常非常长。也许我们有一些非常精巧的、稀疏的注意力 (sparse attention) 机制。但我仍然认为,人类显然有某种过程将部分知识蒸馏到权重中。我们缺少这个。

我也认为人类有一些非常精巧的稀疏注意力机制,我们现在开始看到一些早期的迹象。DeepSeek v3.2 刚发布,我看到他们就用了稀疏注意力。这是实现超长上下文窗口的一种方式。所以我觉得,我们正在通过一个非常不同的过程,重新实现进化所创造的许多认知技巧。但我们最终会趋同于一个相似的认知架构。

Dwarkesh Patel: 你认为 10 年后,它仍然会是像 Transformer 这样的东西吗?只是注意力机制修改得更多,MLP (多层感知机) 更稀疏?

Andrej Karpathy: 我喜欢用“时间上的平移不变性”(translation invariance in time) 来思考这个问题。10 年前,我们在哪里?2015 年。2015 年,我们主要用的是卷积神经网络 (convolutional neural networks),残差网络 (residual networks) 刚出来。所以,惊人地相似,但还是有很大不同。Transformer 还没出现。所有这些对 Transformer 的现代调整都还没出现。

也许我们可以押注的是,根据平移等价性 (translational equivariance),10 年后,我们仍将通过梯度下降的前向/反向传播 (forward/backward pass) 和更新来训练巨大的神经网络,但它可能看起来有点不同,只是规模大得多。

最近我回顾了 1989 年,这对我来说是几年前一个有趣的练习。我复现了 Yann LeCun 1989 年的卷积网络,那是我所知的第一个用梯度下降训练的现代神经网络,用于数字识别。我只是好奇我该如何将其现代化?这其中有多少是算法的功劳?多少是数据?多少进步来自计算和系统?我很快就能通过 33 年的“时间旅行”,将学习(错误率)减半。

如果我用 33 年的算法进行时间旅行,我可以调整 Yann LeCun 在 1989 年的做法,将错误率减半。但要获得更大收益,我必须添加更多数据,我得把训练集扩大 10 倍,然后必须添加更多计算优化。我必须使用 dropout 和其他正则化技术训练更长时间。

所有这些都必须同时改进。我们很可能会有更多的数据、更好的硬件、更好的内核 (kernels) 和软件,以及更好的算法。几乎没有哪一项能遥遥领先,所有这些都惊人地平等。这一趋势已经持续了一段时间。

所以回到你的问题,我预计算法上会与今天有所不同。但我也预计,一些已经存在了很长时间的东西可能仍会保留。它可能仍然是一个用梯度下降训练的巨大神经网络。这是我的猜测。

Dwarkesh Patel: 令人惊讶的是,所有这些加起来只让错误率减半,30 年的进步……也许减半已经很多了。

Andrej Karpathy: 减半是很多了。但让我震惊的是,一切都需要全面改进:架构、优化器、损失函数。它也一直在全面改进。所以我预计所有这些变化都将继续存在并发挥作用。

Dwarkesh Patel: 是的。我正想问你一个关于 nanochat 的类似问题。既然你最近刚把它编出来,构建聊天机器人的每一步在你的“RAM”中都还很新鲜。我很好奇你是否有类似的想法,比如“从 GPT-2 到 nanochat,并不是某一件事情起了决定性作用”。从这次经历中,你有什么令人惊讶的收获吗?

Andrej Karpathy: 关于构建 nanochat?nanochat 是我发布的一个代码库。是昨天还是前天?我记不清了。

Dwarkesh Patel: 我们可以看到你为此熬了多少夜……

Andrej Karpathy: 它试图成为最简单的、完整的代码库,端到端地涵盖了构建 ChatGPT 克隆版的整个流程。所以你拥有所有的步骤,而不仅仅是任何单独的步骤。我过去研究过所有单独的步骤,并发布过一些小代码片段,用简单的代码展示算法是如何实现的。但这个涵盖了整个流程。

至于学到了什么,我不确定我是否一定从中“学到”了什么。我脑子里已经有了如何构建它的蓝图。这只是一个机械地构建它、并把它弄得足够干净的过程,以便人们能从中学习并觉得有用。

Dwarkesh Patel: 一个人能从中学习的最佳方式是什么?是把所有代码都删了,试着从头重写一遍,还是试着在上面添加修改?

Andrej Karpathy: 这是个好问题。它大概有 8000 行代码,带你走完整个流程。我可能会把它放在右边的显示器上。如果你有两个显示器,你把它放右边。你想从头开始构建,你就从头开始。你不允许复制粘贴,你可以参考,但不允许复制粘贴。也许我会这么做。

但我也认为这个代码库本身就是一个庞然大物。当你写这些代码时,你不是从上到下写的,你是一块一块 (chunks) 写的,然后再把这些块组合起来。这部分信息是缺失的。你不知道从哪里开始。所以,不仅仅是需要一个最终的代码库,而是需要“构建”代码库的过程,这是一个复杂的“模块增长”过程。那部分还没有。我很想在这周晚些时候把它加上,可能通过视频之类的。

大致上,我就是建议这么做。自己动手构建,但不允许自己复制粘贴。

我确实认为存在两种知识。一种是高层次的、表面的知识。但当你从零开始构建时,你被迫去面对你所不理解、甚至不知道自己不理解的东西。

这总能带来更深的理解。这是构建的唯一途径。如果我不能构建它,我就不理解它。这好像是费曼 (Feynman) 的名言。我 100% 始终坚信这一点。因为总有各种微小的细节没有被正确地组织起来,你并没有真正掌握知识,你只是“以为”你掌握了。所以,不要写博客文章,不要做幻灯片,别搞那些。去构建代码,组织它,让它运行起来。这是唯一的途径。否则,你就缺失了知识。


LLM 的认知缺陷


Dwarkesh Patel: 你在推特上说,编码模型 (coding models) 在你构建这个代码库时几乎没帮上什么忙。我很好奇为什么。

Andrej Karpathy: 我大概花了一个多月的时间构建了这个库。我想说,现在人们与代码互动的方式主要有三类。一些人完全拒绝所有 LLM,他们就是从头开始写。这在当今可能已经不是正确的做法了。

中间状态,也就是我所在的状态,你仍然从头开始写很多东西,但你会使用这些模型现在提供的自动补全 (autocomplete) 功能。当你开始写一小段时,它会为你补全,你可以按 Tab 键接受。大多数时候是正确的,有时不对,你就编辑一下。但你仍然在很大程度上是你所写代码的“架构师”。

然后是“氛围编程”(vibe coding):“嗨,请帮我实现这个或那个”,然后按回车,让模型去做。这就是智能体的方式。

我确实觉得智能体在非常特定的情境下是管用的,我也会在特定情境下使用它们。但这些都是你可以使用的工具,你必须了解它们擅长什么、不擅长什么,以及何时使用。

例如,智能体非常擅长处理样板文件 (boilerplate stuff)。就是那些复制粘贴的样板代码,它们很擅长。它们也非常擅长处理互联网上经常出现的东西,因为在模型的训练集中有大量例子。模型的这些特性在某些方面会表现得很好。

我想说,nanochat 并不属于这种情况,因为它是一个相当独特的代码库。按照我构建它的方式,并没有那么多现成的代码。它不是样板代码。它几乎是“智力密集型”的代码,所有东西都必须被精确地组织。

模型有太多的认知缺陷 (cognitive deficits)。举个例子,它们总是误解代码,因为它们从互联网上那些“典型”的做事方式中学到了太多的“记忆”,而我恰恰没有采用那些方式。比如——我不知道是否要深入细节——它们总以为我在写普通的代码,但我不是。

Dwarkesh Patel: 也许举一个例子?

Andrej Karpathy: 比如你有 8 个 GPU 都在进行前向和反向传播。在它们之间同步梯度 (gradients) 的方法是使用 PyTorch 的 Distributed Data Parallel (DDP) 容器,它会在你进行反向传播时自动开始通信和同步梯度。我没有用 DDP,因为我不想用,没那个必要。我把它扔掉了,自己写了一个同步程序,放在优化器的 step 步骤里。那些模型总是试图让我使用 DDP 容器。它们非常“关心”这件事。这太技术性了,但我没有用那个容器,因为我不需要它,我有一个自定义的类似实现。

Dwarkesh Patel: 它们就是无法理解你有自己的实现。

Andrej Karpathy: 它们无法绕过这一点。它们总是试图搞乱我的代码风格。它们过于“防御性编程”(over-defensive),添加了各种 try-catch 语句。它们总是想写一个“生产级”的代码库,但我的代码里有很多假设,这没问题。我不需要所有那些额外的东西。所以我觉得它们在臃肿化 (bloating) 代码库,增加了复杂性,它们还不停地误解,大量使用已弃用 (deprecated) 的 API。简直一团糟。

这根本不是“净收益”。我当然可以进去清理,但从净效益上看是不划算的。

我还觉得必须用英语打出我想要的东西,这很烦人,打字太多了。如果我直接导航到我想要的代码部分,去到我知道代码该出现的地方,然后开始输入前几个字母,自动补全 (autocomplete) 就能领会并给出代码。这是一种指定需求的信息带宽 (information bandwidth) 非常高的方式。你指向你想要的代码位置,输入前几个字符,模型就会补全它。

所以我的意思是,这些模型在技术栈的某些部分是好用的。有两个我使用模型的例子很有说明性。一个是在我生成报告 (report) 的时候。那更像是样板文件,所以我部分使用了“氛围编程”。那没问题,因为它不是关键任务,跑得也还行。

另一个是我用 Rust 重写分词器 (tokenizer) 的时候。我对 Rust 不太擅长,因为我刚接触不久。所以在我写一些 Rust 代码时,也用了一点“氛围编程”。但我有一个我完全理解的 Python 实现,我只是在确保我做的是一个更高效的版本,而且我有测试,所以我做起来比较放心。它们增加了你接触那些你可能不太熟悉的语言或范式的便利性。我认为它们在这方面非常有用。外面有大量的 Rust 代码,模型对它很在行,而我恰好不太懂,所以模型在那里就很有用。

Dwarkesh Patel: 这个问题之所以如此有趣,是因为人们关于 AI 爆炸并迅速达到超级智能 (superintelligence) 的主流叙事,就是“AI 自动化 AI 工程和 AI 研究”。他们看到你可以用 Claude Code 从头开始制作整个 CRUD 应用程序,然后就会想:“想象一下,如果在 OpenAI 和 DeepMind 内部也有这种能力,就有成千上万个你,并行地寻找各种微小的架构调整。”

所以听到你说,这恰恰是它们“不对称地”更不擅长的事情,这非常有趣。这对于预测那种“AI 2027 式”的大爆炸是否会很快发生,非常具有参考价值。

Andrej Karpathy: 你的概括很好,这也正是我把时间线拉得更长的原因。没错,它们不擅长处理那些“从未被写过的代码”(code that has never been written before),而这恰恰是我们在构建这些模型时试图实现的东西。

Dwarkesh Patel: 一个很天真的问题。你添加到 nanochat 里的那些架构调整,它们不是在某篇论文里吗?甚至可能在某个代码库里。当你说“添加 RoPE 嵌入”之类的东西时,它们却用错误的方式去实现,这不令人惊讶吗?

Andrej Karpathy: 这很难。它们“知道”,但没有“完全知道”。它们不知道如何将其完全整合到你的代码库、你的风格、你的位置,以及你正在做的某些自定义的东西,不知道它如何与代码库的所有假设相契合。它们确实有一些知识,但还没到能够整合并理解它的地步。

很多东西都在持续改进。目前,我使用的最先进的模型是 GPT-5 Pro,那是一个非常强大的模型。如果我有 20 分钟,我会复制粘贴我的整个代码库,然后去问 GPT-5 Pro 这个“神谕”一些问题。通常它的回答还不错,比一年前的东西好得惊人。

但总的来说,模型还没到那个水平。我觉得这个行业跳得太快了,试图假装这东西很神奇,但其实不是。它产出的是“slop”(劣质内容)。他们没有正视这一点,也许他们是为了融资之类的。我不确定发生了什么,但我们正处于这个中间阶段。模型很了不起,但它们仍需要大量工作。目前对我来说,“自动补全”是我的最佳选择。但有时,对于某些类型的代码,我会求助于 LLM 智能体。

Dwarkesh Patel: 这件事还有另一个有趣的理由。在编程史上,有过很多生产力的提升——编译器、linting(代码检查)、更好的编程语言——这些都提高了程序员的生产力,但并没有导致“爆炸”。这听起来很像“自动补全 Tab 键”。而另一类则是“程序员的自动化”。很有趣的是,你看到的更多是属于“更好的编译器”这种历史类比的范畴。

Andrej Karpathy: 也许这涉及到另一个想法。我很难区分 AI 从哪里开始,到哪里结束,因为我从根本上视 AI 为计算技术的一种延伸。我看到的是一个连续体,从一开始就在进行这种“递归式自我改进”(recursive self-improvement) 或“为程序员提速”:代码编辑器、语法高亮、甚至类型检查,比如数据类型检查——所有这些我们为彼此构建的工具。

甚至是搜索引擎。为什么搜索引擎不算 AI 的一部分?排名 (Ranking) 就是 AI。在某个阶段,甚至早期的谷歌也认为自己是一家做搜索引擎的 AI 公司,这完全合情合理。

我把它看作是一个比其他人认为的更具连续性的过程,我很难划清界限。我觉得我们现在只是得到了一个“更好的自动补全”,同时我们也得到了一些智能体,它们是循环 (loopy) 的东西,但有时会失控。

正在发生的是,人类在逐渐减少做那些底层的事情。我们不写汇编代码 (assembly code),因为我们有编译器。编译器会把我用 C 语言写的高级语言转换成汇编代码。

我们正在非常非常缓慢地将自己抽象化。我称之为“自主性滑块”(autonomy slider),越来越多在当下可被自动化的东西被自动化了,我们做得越来越少,我们在自动化之上的抽象层级中不断提升自己。


RL 很糟糕


Dwarkesh Patel: 让我们聊聊 RL (强化学习)。你发过一些关于这个的有趣推文。从概念上讲,我们应该如何理解人类能够仅仅通过与环境互动就建立起丰富的世界模型 (world model)?而且这种方式似乎几乎与“回合结束时的最终奖励”无关。

如果某人创业,10 年后她发现自己的事业是成功还是失败了,我们会说她收获了很多智慧和经验。但这并不是因为过去 10 年中发生的每一件事的对数概率 (log probs) 都被调高或调低了。这其中发生了更刻意、更丰富的事情。在机器学习 (ML) 中,与此对应的类比是什么?它与我们现在用 LLM 所做的事情相比如何?

Andrej Karpathy: 也许我的表述是:正如我所说,人类不使用强化学习。我认为他们做的是别的事情。强化学习 (Reinforcement learning) 远比一般人想象的要糟糕。RL 很糟糕 (terrible)。只是碰巧我们以前拥有的一切都比它糟糕得多,因为以前我们只是在模仿人类,所以有很多问题。

在强化学习中,假设你正在解决一个数学问题,这很直观。你拿到一个数学问题,试图找到答案。在强化学习中,你会首先并行地尝试很多种方法。你拿到一个问题,尝试几百种不同的解法。这些尝试可能很复杂,比如“哦,我试试这个,我试试那个,这个不行,那个也不行”,等等。然后也许你得到了一个答案。现在你核对书本后面的答案,看到“好吧,正确答案是这个”。你发现这一种、这一种和那一种得到了正确答案,但其他 97 种没有。

强化学习 (RL) 的字面做法是,它会找到那些做得特别好的尝试,然后你沿途所做的每一件事、生成的每一个词元 (token),都会被提升权重 (upweighted),仿佛在说:“多做这个。”

这样做的问题在于,人们会说你的估计器方差 (variance) 很高,但其实它就是充满噪声 (noisy)。它假设你为了得到正确答案而做的每一个微小步骤都是正确的,事实并非如此。你可能在得出正确答案之前走了一些弯路。你所做的每一个错误的事情,只要你最终得到了正确的答案,都会被提升权重,被告知“多做这个”。这太糟糕了。这就是噪声。

你做了所有这些工作,只是为了在最后得到一个单独的数字,比如“哦,你做对了”。基于这一点,你把那整个轨迹 (trajectory) 都标记为“提升权重”或“降低权重”。我喜欢称之为“通过吸管吸取监督信号”(sucking supervision through a straw)。你做了所有这些工作,可能是一分钟的推演 (rollout),你却只是通过一根吸管吸取那一点点最终奖励信号的监督比特 (bits),然后你把这个信号广播到整个轨迹上,用它来提升或降低该轨迹的权重。这既愚蠢又疯狂。

人类绝不会这么做。第一,人类绝不会做几百次推演。第二,当一个人找到解决方案时,他们会有一个非常复杂的复盘 (review) 过程:“好吧,我认为这些部分我做得很好,这些部分我做得不太好。我也许应该这样做或那样做。”他们会反思。

目前 LLM 中没有任何机制能做到这一点。没有等价物。但我确实看到有论文开始尝试这样做,因为这对领域内的每个人来说都是显而易见的。

顺便说一句,最初的模仿学习 (imitation learning) 极其令人惊讶、不可思议、太棒了,我们竟然可以通过模仿人类来进行微调 (fine-tune)。这太不可思议了。因为一开始,我们只有基础模型 (base models)。基础模型就是自动补全。当时我并不清楚这一点,我必须去学习。真正震撼我的是 InstructGPT 那篇论文,因为它指出,你可以拿一个预训练模型(它是个自动补全工具),然后只要在“看起来像对话”的文本上微调它,模型就会迅速适应,变得非常健谈 (conversational),并且保留所有来自预训练的知识。

这震撼了我,因为我不明白它在风格上 (stylistically) 竟然能如此迅速地调整,仅仅通过几轮在这种数据上的微调,就能成为一个用户的助手。这能行得通,对我来说简直是奇迹。太不可思议了。那是两三年的工作成果。

现在 RL 来了。RL 让你能做得比模仿学习更好一点,因为你可以有这些奖励函数 (reward functions),你可以对奖励函数进行爬山 (hill-climb)。有些问题就是有正确答案,你可以对此进行爬山,而不需要专家轨迹来模仿。这很了不起。模型还可以发现人类可能永远想不出的解决方案。这太不可思议了。然而,它仍然是愚蠢的。

我们需要更多。我昨天看到谷歌的一篇论文,试图引入这种“反思与复盘”(reflect & review) 的想法。是那篇“记忆库”(memory bank) 论文吗?我不确定。我看到过几篇类似思路的论文。所以我预计,我们在 LLM 算法方面会迎来一些重大更新。我认为我们还需要三、四、五次,或者类似的更新。

Dwarkesh Patel: 你太擅长创造生动的短语了。“通过吸管吸取监督信号”,太妙了。

你是说,基于结果的奖励 (outcome-based reward) 的问题在于,你有一个巨大的轨迹,然后在最后,你试图从那最终的一点信息中学到所有你应该做的事、应该了解的世界。

鉴于这是显而易见的,为什么基于过程的监督 (process-based supervision) 作为一种替代方案,没能成功地让模型变得更强大?是什么阻碍了我们使用这种替代范式?

Andrej Karpathy: 基于过程的监督指的是,我们不会只在最后才给一个奖励函数。在你工作了 10 分钟后,我不会告诉你你做得好还是不好。我会在你每一步都告诉你你做得怎么样。

我们之所以没这么做,是因为很难把握“如何正确地做到这一点”。你只有部分的解决方案,你不知道如何分配功劳 (credit)。当你得到正确答案时,你只需将它与答案进行“等于”匹配,实现起来非常简单。但如果你在做过程监督,你如何以一种自动化的方式,来进行“部分功劳分配”?这并不容易。

很多实验室正试图用 LLM 评判者 (LLM judges) 来做这件事。你让 LLM 来尝试做。你提示 (prompt) 一个 LLM:“嘿,看看一个学生的部分解决方案。如果答案是这个,你觉得他们做得怎么样?”然后他们试图调整提示词。

这之所以棘手,原因非常微妙。即,任何时候你使用一个 LLM 来分配奖励,那些 LLM 都是拥有数十亿参数 (parameters) 的庞然大物,它们是“可被利用的”(gameable)。如果你针对它们进行强化学习,你几乎肯定会为你的 LLM 评判者找到对抗性样本 (adversarial examples)。所以你不能长时间这样做。你可能做 10 步或 20 步,也许行得通,但你不能做 100 步或 1000 步。我理解这不明显,但基本上,模型会找到小裂缝。它会在那个巨大模型的细枝末节里找到所有那些虚假的 (spurious) 东西,并找到一种方法来欺骗它。

我脑海中有一个突出的例子,这可能是公开的。如果你使用 LLM 评判者作为奖励,你给它一个学生的解决方案,问它学生做得好不好。我们针对那个奖励函数进行强化学习训练,效果非常好。然后,突然间,奖励变得非常高。这是一个巨大的飞跃,它做到了完美。你看着它,心想:“哇,这意味着学生在所有这些问题上都完美了。数学被完全解决了。”

但当你查看模型给出的补全 (completions) 时,它们完全是胡说八道。它们开头还行,然后就变成了“dhdhdhdh”。就像是,“哦,好的,我们来算 2+3,我们这样做,这样做,然后 dhdhdhdh。”你看着它,觉得这太疯狂了。它怎么能得到 1 分或 100% 的奖励?你再去看 LLM 评判者,结果发现“dhdhdhdh”是这个模型的一个对抗性样本,它给这个样本分配了 100% 的概率。

这只是因为对于 LLM 来说,这是一个“样本外”(out-of-sample) 的例子。它在训练期间从未见过它,你正处于纯粹的“泛化之地”(generalization land)。它在训练中没见过,而在纯粹的泛化之地,你可以找到这些能“攻破”它的样本。

Dwarkesh Patel: 你基本上是在训练 LLM 成为一个“提示词注入”(prompt injection) 模型。

Andrej Karpathy: 甚至都不是。提示词注入太花哨了。你是在寻找所谓的“对抗性样本”。这些是毫无意义的、显然是错误的解决方案,但模型却认为它们非常棒。

Dwarkesh Patel: 如果你认为这是让 RL 更有功能性的瓶颈,那么这就需要让 LLM 成为更好的评判者——如果你想以自动化的方式来做这件事。这是否会变成某种类似 GAN(生成对抗网络)的方法,你必须训练模型变得更鲁棒 (robust)?

Andrej Karpathy: 实验室们可能正在做所有这些。显而易见的是,“dhdhdhdh”不应该得到 100% 的奖励。好吧,那就把“dhdhdhdh”放进 LLM 评判者的训练集,告诉它这不是 100%,这是 0%。你可以这么做,但每次你这么做,你都会得到一个新的 LLM,而它仍然有对抗性样本。对抗性样本是无穷无尽的。

也许你迭代几次,找到对抗性样本会变得越来越难,但我不能 100% 确定,因为这东西有上万亿的参数。我敢打赌实验室们正在尝试。但我仍然认为我们需要别的点子。

Dwarkesh Patel: 有趣。关于“别的点子”可能是什么样子,你有什么想法吗?

Andrej Karpathy: “复盘解决方案”这个想法,包含合成样本 (synthetic examples),这样当你训练它们时,你会变得更好,并以某种方式进行“元学习”(meta-learn)。我想我开始看到一些相关的论文冒出来了。我现在只处于阅读摘要的阶段,因为很多论文都只是“想法”。必须有人能在前沿 LLM 实验室的规模上,在完全通用的情况下让它跑通。因为当你看到这些论文时,它们只是冒个泡,有点嘈杂。它们是很酷的想法,但我还没看到任何人令人信服地展示这是可能的。话虽如此,LLM 实验室都相当封闭,所以谁知道他们现在在做什么。


人类如何学习?


Dwarkesh Patel: 我能想象你如何在你为自己制造的合成样本或合成问题上进行训练。但人类似乎还在做另一件事——也许睡眠就是这个,也许白日梦也是——这不一定是为了想出假问题,而只是为了“反思”(reflect)。

我不确定“做白日梦”或“睡觉”,或者仅仅是“反思”的 ML 类比是什么。我没有想出一个新问题。显然,最基本的类比就是在“反思片段”上进行微调,但我感觉在实践中这可能效果不佳。你对这种事情的类比有什么看法吗?

Andrej Karpathy: 我确实认为我们在这方面缺少某些东西。举个例子,比如阅读。目前 LLM 阅读一本书时,意味着我们把文本序列拉长,模型在预测下一个词元,并从中获取一些知识。这并不是人类的做法。当你在读一本书时,我甚至不觉得这本书是我应该关注并用于训练的“解说词”。这本书更像是一套提示 (prompts),让我去做“合成数据生成”,或者让你去参加读书俱乐部,和朋友们讨论它。正是通过“操纵”这些信息,你才真正获得了知识。

LLM 中没有与此等价的东西。它们并不真正这样做。我希望在预训练期间看到某个阶段,能“思考”材料,试图将其与已知知识相协调,花一些时间思考它,并让这个过程运转起来。现在完全没有这些。这都属于研究范畴。

有一些非常微妙、我认为很难理解的原因,导致这并非易事。如果我可以描述一个:为什么我们不能只是合成数据然后训练它?因为每一个合成样本,如果我只是让模型对一本书进行合成思考,你看着它,会觉得“这看起来很棒。为什么我不能在上面训练?”你可以试试,但如果你继续尝试,模型会变得更糟。

这是因为你从模型获得的所有样本都是“悄然坍塌的”(silently collapsed)。这是不明显的——如果你看任何单个例子——它们只占据了关于内容“可能的思想空间”中一个非常微小的流形 (manifold)。LLM 刚训练出来时,它们是“坍塌的”(collapsed)。它们的数据分布是坍塌的。一个简单的例子是,你去 ChatGPT 让它“讲个笑话”,它大概只有三个笑话。它不会给你所有可能的笑话。它只知道大概三个笑话。它们是“悄然坍塌的”。

你无法从这些模型中获得像人类那样的丰富性、多样性和熵 (entropy)。人类要嘈杂得多,但至少他们在统计意义上是“无偏的”(unbiased)。他们不会悄然坍塌。他们维持着巨大的熵。那么,你如何在模型坍塌的情况下,仍能进行合成数据生成,并保持熵呢?这是一个研究问题。

Dwarkesh Patel: 只是为了确保我理解了,“坍塌”与合成数据生成相关的原因是,你希望能够想出那些“不在你当前数据分布中”的合成问题或反思吗?

Andrej Karpathy: 我想说的是,假设我们有一本书的章节,我让 LLM 思考它,它会给你一些看起来非常合理的东西。但如果我问它 10 次,你会注意到它们全都一样。

Dwarkesh Patel: 你不能在相同数量的提示信息上,持续地扩大“反思”规模,并从中获益。

Andrej Karpathy: 任何单个样本看起来都没问题,但它们的“分布”却很糟糕。它糟糕到一定程度,以至于如果你继续在“自己的东西”上训练太多,你实际上会“坍塌”。

我认为这可能没有根本的解决方案。我也认为人类会随着时间推移而“坍塌”。这些类比惊人地好用。人类在他们的一生中会坍塌。这就是为什么孩子们,他们还没有“过拟合”(overfit)。他们会说出一些让你震惊的话,因为你能明白他们的出发点,但那只是“人们通常不会那么说”,因为他们还没有坍塌。但我们已经坍塌了。我们最终会反复思考同样的想法。我们最终会说越来越多同样的话,学习率 (learning rates) 下降,坍塌持续恶化,然后一切都退化了。

Dwarkesh Patel: 你有没有看过那篇非常有趣的论文,说“做梦”是防止这种过拟合和坍塌的一种方式?做梦在进化上具有适应性,就是因为它让你处于非常奇怪的、与你日常现实截然不同的情境中,以此来防止这种过拟合。

Andrej Karpathy: 这是个有趣的想法。我确实认为,当你在脑海中生成事物,然后你又关注它时,你是在用你自己的样本进行训练,你在用你的合成数据进行训练。如果你做得太久,你就会偏离轨道,坍塌得太厉害。你必须总是在生活中寻找“熵”。与他人交谈是熵的重要来源。所以也许大脑也内置了一些内部机制,来增加这个过程中的熵含量。这是个有趣的想法。

Dwarkesh Patel: 这是一个非常不成形的想法,我姑且说说,你来回应一下。我们所知的最好的学习者,也就是儿童,他们极其不擅长“回忆信息”。事实上,在童年的最早阶段,你会忘记一切。你对某个年龄之前发生的所有事情都是“失忆的”。但你极其擅长学习新语言,从世界中学习。也许这与“见林不见树”的能力有关。

而如果你把它和光谱的另一端相比,你有 LLM 预训练,这些模型简直能逐字逐句地“反刍”出维基百科页面上的下一个词是什么。但它们快速学习抽象概念的能力,远不如儿童。然后成年人介于两者之间,他们没有童年学习的灵活性,但他们记忆事实和信息的能力又比孩子强。我不知道这个光谱中是否有什么有趣的东西。

Andrej Karpathy: 我认为这里面有非常有趣的东西,100%。我确实认为,与 LLM 相比,人类更具有“见林不见树”的特质。我们其实不那么擅长记忆,这实际上是一个特性 (feature)。因为我们不擅长记忆,我们被迫以更通用的方式去寻找模式。

相比之下,LLM 极其擅长记忆。它们会背诵所有那些训练来源的段落。你可以给它们完全无意义的数据。你可以把一些文本哈希 (hash) 一下,得到一个完全随机的序列。如果你在上面训练,哪怕只有一两次迭代,它就能突然把整个东西背诵出来。它会记住它。人类不可能读一遍随机数字序列就能复述出来。

这是一个特性 (feature),而不是一个缺陷 (bug),因为它迫使你只学习那些可泛化的 (generalizable) 组分。而 LLM 则被它们对预训练文档的所有记忆所干扰,这在某种意义上可能对它们干扰很大。这就是为什么当我谈到“认知核心”(cognitive core) 时,我想移除“记忆”,也就是我们之前谈到的。我希望它们有更少的记忆,这样它们就必须去“查找”,它们只保留思考的算法、实验的想法,以及所有这些认知的“粘合剂”。

Dwarkesh Patel: 这也与防止“模型坍塌”(model collapse) 有关吗?

Andrej Karpathy: 让我想想。我不确定。这几乎像是另一个维度。模型太擅长记忆了,我们应该以某种方式移除它。人类在这方面差得多,但这是件好事。

Dwarkesh Patel: “模型坍塌”的解决方案是什么?你可以尝试一些非常天真的事情。比如让 logits(模型输出)的分布更宽一点。你可以尝试很多天真的事情。那些天真的方法最终的问题出在哪里?

Andrej Karpathy: 这是个好问题。你可以想象使用“熵的正则化”(regularization for entropy) 之类的。我猜它们在经验上效果不太好,因为现在模型就是坍塌的。但我得说,我们希望它们完成的大多数任务,其实并不需要“多样性”(diversity)。这可能就是问题的答案。

前沿实验室正试图让模型变得“有用”。我觉得输出的多样性……第一,它更难处理和评估;第二,也许它并没有抓住大部分的价值。

Dwarkesh Patel: 事实上,多样性受到了主动的惩罚。如果你在 RL 中表现得超级有创意,那可不是什么好事。

Andrej Karpathy: 是的。或者,也许你正在用 LLM 辅助做大量的写作工作,这可能也不好,因为模型会悄悄地给你所有相同的东西。它们不会探索回答一个问题的多种不同方式。

也许是多样性,没有那么多应用需要它,所以模型就没有它。但这在合成数据生成时就成了问题。所以,我们因为不允许这种熵在模型中保持,反而在搬起石头砸自己的脚。可能实验室应该更努力地去实现它。

Dwarkesh Patel: 我认为你暗示了这是一个非常根本性的问题,不容易解决。你的直觉是什么?

Andrej Karpathy: 我不知道这是否“超级根本”。我不确定我是否想那么说。我确实认为,虽然我没做过这些实验,但你“可以”对熵进行正则化,使其更高。你鼓励模型给你越来越多的解决方案,但你又不希望它偏离训练数据太远。它会开始创造自己的语言,开始使用极其罕见的词,所以它会偏离分布太远。

所以我认为“控制分布”本身就很棘手。从这个意义上说,它可能并不简单。

Dwarkesh Patel: 如果你必须猜一下,那个“最佳的智能核心”最终应该是多少比特 (bits)?我们放在冯·诺依曼探测器 (von Neumann probes) 上的那个东西,需要多大?

Andrej Karpathy: 这在领域的历史上真的很有趣,因为曾有一段时间,所有人都对规模 (scaling) 非常痴迷,比如“哦,我们要造更大的模型,万亿参数的模型。”但模型在“大小”上的变化是,它们先是变大,现在又变小了。最先进的模型反而更小了。

即便如此,我认为它们还是记忆了太多东西。所以我之前有个预测,我几乎觉得,我们甚至可以在 10 亿 (billion) 参数的规模上,获得非常好的“认知核心”。

如果你和一个 10 亿参数的模型交谈,我认为在 20 年后,你可以进行非常有成效的对话。它会思考,更像一个人。但如果你问它某个事实性问题,它可能需要去查一下,但它“知道”自己不知道,它知道自己得去查,它会做所有合理的事情。

Dwarkesh Patel: 你认为这需要 10 亿参数,这挺令人惊讶的。因为我们已经有 10 亿或几十亿参数的模型,它们已经非常智能了。

Andrej Karpathy: 嗯,最先进的模型大概是万亿 (trillion) 参数。但它们记住了太多东西。

Dwarkesh Patel: 是的,但我很惊讶的是,在 10 年后,考虑到现在的速度……我们有 gpt-oss-20b。它远胜于原始的 GPT-4(万亿多参数)。鉴于这个趋势,我很惊讶你认为 10 年后的认知核心仍然有 10 亿参数。我惊讶你没说“哦,它会是千万级或百万级的。”

Andrej Karpathy: 问题是,训练数据是互联网,它真的非常糟糕。这里有巨大的提升空间,因为互联网太糟糕了。即使是你我所想的“互联网”,你想到的是《华尔街日报》。但事实根本不是那样。当你在前沿实验室查看一个预训练数据集,你随机查看一个互联网文档,它完全是垃圾。我甚至不知道这怎么能行得通。它可能是一些股票代码、符号,是来自互联网各个角落的大量“slop”(劣质内容)和垃圾。它不像《华尔街日报》的文章,那种文章极其罕见。

因为互联网太糟糕了,我们必须构建非常大的模型来压缩所有这些。而这种压缩大部分是“记忆性”工作,而不是“认知性”工作。

但我们真正想要的是认知部分,删除记忆。我想说的是,我们需要智能模型来帮助我们提纯 (refine) 预训练集,把它缩小到只剩下“认知组分”。然后我认为你就可以用一个小得多的模型,因为它有了一个好得多的数据集,你可以在上面训练。但它可能不是直接在上面训练的,它可能还是从一个好得多的模型那里“蒸馏”(distilled) 来的。

Dwarkesh Patel: 但为什么那个蒸馏版本仍然是 10 亿参数?

Andrej Karpathy: 我只是觉得蒸馏的效果非常好。所以几乎所有的小模型,如果你有一个小模型,它几乎可以肯定是被蒸馏过的。

Dwarkesh Patel: 对,但为什么 10 年后的蒸馏技术不能让它低于 10 亿?

Andrej Karpathy: 哦,你认为它应该小于 10 亿?我是说,拜托,对吧?我不知道。在某个时刻,你至少需要 10 亿个旋钮(参数)才能做点有趣的事情吧。你觉得它应该更小?

Dwarkesh Patel: 是的。如果你看看过去几年挖掘“低垂果实”(low-hanging fruit) 的趋势,在短短两年内,从万亿多参数的模型,变成了在性能上更好、但大小上小了两个数量级的模型。这让我觉得,那种“智能核心”可能比这还要小得多得多。套用费曼的话,“底部还有很大的空间”(Plenty of room at the bottom)。

Andrej Karpathy: 我感觉我谈论“10 亿参数的认知核心”已经很“反共识”(contrarian) 了,而你比我更甚。也许我们可以再小一点。我确实认为,从实际角度出发,你希望模型有一些知识。你不希望它什么都得查,因为那样你就没法在脑子里思考了。你总是在查各种东西。一些基础的知识课程还是需要保留的,但它不需要有那些“冷知识”(esoteric knowledge)。

Dwarkesh Patel: 我们在讨论“认知核心”可能是什么。还有一个单独的问题是,前沿模型的规模会随时间如何变化?我很好奇你是否有预测。我们看到规模一直在增长,直到也许 GPT 4.5,现在我们看到规模在缩小或停滞。这背后有很多原因。你对未来有什么预测?最大的模型会更大、更小,还是一样?

Andrej Karpathy: 我没有特别强的预测。实验室们只是在“务实”。他们有算力 (flops) 预算和成本预算。事实证明,预训练不应该是你投入大部分算力或成本的地方。这就是为什么模型变小了。它们变小了一点,预训练阶段变小了,但它们在强化学习、中期训练 (mid-training) 以及所有后续步骤中弥补了回来。他们只是在务实地考虑所有阶段,以及如何获得最大收益。

预测这个趋势是很难的。我仍然期望还有那么多“低垂的果实”。这是我的基本预期。我在这方面的看法分布非常广。

Dwarkesh Patel: 你期望这些“低垂的果实”会与过去两到五年发生的那些类似吗?如果我看看 nanochat 相对于 nanoGPT,以及你所做的架构调整,你是否期望这种类型的调整会继续发生?你是不是不期待任何巨大的范式转变?

Andrej Karpathy: 大部分是的。我预计数据集会变得好得多得多。当你查看那些平均水平的数据集时,它们极其糟糕。它们太糟糕了,我甚至不知道是怎么跑通的。看看训练集里的一个普通样本:事实错误、谬误、无意义的东西。不知何故,当你大规模地做这件事时,噪声被冲走了,你剩下了一些信号。数据集会得到极大改善。

一切都会变得更好。我们的硬件,所有运行硬件并最大化硬件性能的内核 (kernels)。Nvidia 正在慢慢调整硬件本身,Tensor Cores,所有这些都需要发生,也将继续发生。所有的内核都会变得更好,最大限度地利用芯片。所有的算法也可能会改进,包括优化、架构,以及所有建模组件(如何完成以及我们用什么算法训练)。我确实期望没有哪一项会“独占鳌头”。每一项都提升 20%。这大致就是我所看到的。


AGI 将融入 2% 的 GDP 增长


Dwarkesh Patel: 人们提出了不同的方法来衡量我们在通往 AGI 道路上的进展。如果你能画出一条线,你就能看到这条线与 AGI 相交的地方,以及它在 X 轴上何时发生。有人提出用“教育水平”来衡量。我们曾经有一个“高中生”,然后它通过 RL 上了“大学”,将来它会拿到“博士学位”。

Andrej Karpathy: 我不喜欢那个比喻。

Dwarkesh Patel: 或者他们会提出“任务时长”(horizon length)。也许它们能自主完成需要一分钟的任务。然后它们能自主完成需要人类一小时、一周的任务。你如何看待这里相关的 Y 轴?我们应该如何衡量 AI 的进展?

Andrej Karpathy: 我有两个答案。第一,我几乎想完全拒绝 (reject) 这个问题,因为我视其为计算技术的一种延伸。我们讨论过如何衡量计算技术的进步吗?或者你如何衡量自 1970 年代以来计算技术的进步?Y 轴是什么?从这个角度来看,整个问题有点好笑。

当人们谈论 AI 和最初的 AGI 时,以及当 OpenAI 刚成立时我们如何谈论它时,AGI 是一个你能求助的系统,它能以达到或超过人类的表现,完成任何有经济价值的任务。那是当时的定义。我当时对那个定义很满意。我一直坚持那个定义,尽管后来人们编造了各种其他定义。但我喜欢那个定义。

人们一直在做的一个让步是,他们把所有“物理性”的东西都拿掉了,因为我们只在谈论“数字知识工作”。与“人类能做的任何任务”这个原始定义相比,这是一个相当大的让步。我能举起东西,AI 显然做不到。但我们接受了这一点。

当说“只做知识工作”时,我们从经济中剔除了多大一部分?我不知道数字。我猜大概 10% 到 20% 是纯粹的知识工作,即某人可以在家工作并完成任务。这仍然是一个非常大的市场。经济的规模有多大?10% 或 20% 是多少?即使在美国,我们谈论的仍然是几万亿美元的市场份额或工作。所以这仍然是一个巨大的盘子。

回到那个定义,我会关注的是,这个定义在多大程度上是成立的?是否存在某些工作或大量任务?如果我们把“任务”而不是“工作”作为单位。这很困难,因为问题在于,社会会根据哪些任务可自动化、哪些不可自动化,来重构 (refactor) 那些“由任务构成的工作”。

今天,哪些工作可以被 AI 替代?Geoff Hinton 最近的一个例子是,他预测放射科医生 (radiologists) 将不再是一个职业。事实证明这在很多方面都大错特错。放射科医生不仅活得很好,而且还在增长,尽管计算机视觉 (computer vision) 已经非常非常擅长识别图像中所有他们需要识别的东西。这只是一个混乱、复杂的工作,涉及很多方面,需要和病人打交道,以及所有相关的背景信息。

我不知道按照那个定义,AI 是否已经取得了巨大的进展。我会寻找的那些(可能被替代的)工作,具有某些使其比其他工作更早、更容易被自动化的特征。

例如,呼叫中心 (call center) 员工经常被提及,我认为这是对的。呼叫中心员工的工作在“可自动化”方面具有许多简化的特性。他们的工作相当简单。它是一系列任务,每个任务看起来都差不多。你接一个人的电话,互动 10 分钟左右,也许更长。以我的经验,长得多。你在某个系统中完成一些任务,修改一些数据库条目。你一遍又一遍地重复做某件事,这就是你的工作。

你确实需要考虑“任务时长”——完成一个任务需要多长时间——然后你还需要移除“上下文”。你不需要和公司其他部门或其他客户打交道。只有数据库、你,和你服务的客户。它更封闭 (closed),更容易理解,纯数字。所以我会关注这些领域。

但即使在那里,我看到的也不是“完全自动化”。我看到的是一个“自主性滑块”(autonomy slider)。我预计我们不会“立即”取代人类。我们会换上 AI 来处理 80% 的业务量。它们把 20% 的业务量分配 (delegate) 给人类,而人类则监督着一个由 5 个 AI 组成的团队,处理那些更常规的呼叫中心工作。我会期待新的界面或新的公司出现,提供一个管理层,让你能管理这些“尚未完美”的 AI。然后我预计这会在整个经济中发生。很多工作都比呼叫中心员工要难得多。

Dwarkesh Patel: 关于放射科医生,我完全是在猜测,我不知道他们的实际工作流程是怎样的。但一个可能适用的类比是,当 Waymo 刚推出时,会有一个人坐在驾驶座上,你必须让他们在那里,以确保如果出了大问题,他们能及时监控。即使在今天,人们仍在监视以确保一切顺利。刚部署的 Robotaxi 里面仍然有个人。

现在我们可能处于类似的情况,如果你自动化了 99% 的工作,人类必须做的那最后 1%,价值高得令人难以置信,因为它成了其他一切的瓶颈。如果放射科医生也是如此,就像坐在 Waymo 前排的人必须经过多年特殊训练才能提供那最后 1% 的服务,那么他们的工资应该会大幅上涨,因为他们是阻碍大规模部署的唯一瓶颈。

放射科医生的工资,我想,已经因为类似的原因上涨了——如果你是最后一个瓶颈,而且你不是“可替换的”(fungible)。Waymo 司机可能是可替换的。所以你可能会看到这种情况:你的工资一直涨,直到达到 99%(自动化),然后在最后 1% 被解决时,工资“啪”地一下就掉下来了。我想知道我们是否在放射科医生、呼叫中心员工的薪水或其他任何地方看到了类似的情况。

Andrej Karpathy: 这是个有趣的问题。我不认为我们目前在放射科医生身上看到了这一点。我认为放射科不是一个好例子。我不知道为什么 Geoff Hinton 偏偏挑了放射科,因为我认为这是一个极其混乱、复杂的职业。

我更感兴趣的是,例如,今天呼叫中心员工身上正在发生什么。因为我预计很多常规性的东西在今天就应该是可以自动化的。我没有第一手资料,但我会去关注呼叫中心员工的趋势。我还预计,也许他们正在换上 AI,但我仍会再等一两年,因为我预计他们可能会撤回 (pull back) 并重新雇佣一些人。

Dwarkesh Patel: 已经有证据表明,在采用 AI 的公司中,这种情况普遍发生,我觉得这很令人惊讶。

我还发现一件非常令人惊讶的事。AGI,对吧?一个能做所有事情的东西。我们排除了体力工作,但它应该能做所有的“知识工作”。你天真的预期是,这个进展会是这样的:你拿走咨询顾问做的一点小任务,把它从篮子里拿走。你拿走会计师做的一点小任务,把它拿走。然后你对所有的知识工作都这样做。

但相反,如果我们相信我们正走在当前范式的 AGI 道路上,这个进展完全不是那样的。看起来咨询顾问和会计师并没有获得巨大的生产力提升。反倒是程序员 (programmers) 的工作正被一点点蚕食。如果你看看这些公司的收入,排除掉类似谷歌搜索的“普通聊天”收入,只看 API 收入,它完全由“编码”(coding) 主导。

这个本应是“通用”的、能做任何知识工作的东西,结果却压倒性地只在做编码。这是你预期中 AGI 部署的一种令人惊讶的方式。

Andrej Karpathy: 这里有一个有趣的观点。我确实相信,编码是这些 LLM 和智能体的完美“第一站”。这是因为编码从根本上讲,一直是围绕“文本”(text) 工作的。它是计算机终端和文本,一切都基于文本。LLM,在互联网上训练出来的方式,就是喜欢文本。它们是完美的文本处理器,而且外面有所有这些数据。这是一个完美的匹配。

我们还为处理代码和文本预先构建了大量的基础设施。例如,我们有 Visual Studio Code 或你最喜欢的 IDE 来显示代码,智能体可以接入。如果一个智能体做出了某个修改的“diff”(差异文件),我们立刻就有现成的代码能显示代码库的所有差异。这几乎就像我们为代码预先构建了大量基础设施。

相比之下,有些事情则完全享受不到这种待遇。例如,有人试图构建自动化,不是为了编码,而是为了做幻灯片 (slides)。我看到过一家做幻灯片的公司。那要难得多。之所以难得多,是因为幻灯片不是文本。幻灯片是小小的图形,它们是空间排列的,有视觉成分。幻灯片没有这种预先构建的基础设施。例如,如果一个智能体要修改你的幻灯片,它怎么向你显示“diff”?你怎么看这个 diff?没有任何东西能显示幻灯片的 diff。必须有人去构建它。

有些东西并不适合现在的 AI,因为它们是“文本处理器”,而编码,出人意料地,是的。

Dwarkesh Patel: 我不确定这是否能解释一切。我个人曾试图让 LLM 在那些纯粹是“语言输入、语言输出”的领域发挥作用,比如重写文字稿、根据文字稿生成剪辑。很有可能我没有尝试所有可能的方法。我确实在上下文中放了很多好的例子,但也许我应该做某种微调。

我们的共同朋友,Andy Matuschak 告诉我,他尝试了 500 亿种方法,试图让模型擅长编写“间隔重复”(spaced repetition) 的提示卡片。这又是一个“语言输入、语言输出”的任务,本应是这些 LLM 的核心能力。他尝试了带有一些小样本 (few-shot) 示例的上下文学习。他尝试了监督微调 (supervised fine-tuning) 和检索 (retrieval)。他就是无法让它们制作出令他满意的卡片。

所以我发现,即使在“语言输出”领域,除了编码之外,也很难从这些模型中获得大量经济价值。我不知道这该如何解释。

Andrej Karpathy: 这说得通。我不是说任何基于文本的事情都轻而易举。我确实认为代码是相当结构化 (structured) 的。而文本也许更“华丽”(flowery),文本中的“熵”可能要大得多。我不知道还能怎么说。而且,编码是“难”的,所以人们会因为 LLM 带来的哪怕一点点知识而感到自己被赋能了。我不知道我是否有一个很好的答案。显然,文本让事情变得容易得多,但这并不意味着所有文本任务都轻而易举。


ASI


Dwarkesh Patel: 你如何看待超级智能 (superintelligence)?你期望它给人的感觉会与普通人类或人类公司有质的不同吗?

Andrej Karpathy: 我视其为社会自动化的一个演进。如果外推计算技术的趋势,很多事物都将被逐渐自动化,而超级智能将是这一趋势的外推。我们预计随着时间的推移,会出现越来越多自主的实体,它们在做大量的数字工作,最终甚至会在一段时间后做体力工作。基本上,我视其为“自动化”。

Dwarkesh Patel: 但是“自动化”包括了人类已经能做的事情,而“超级智能”则暗示着人类做不到的事情。

Andrej Karpathy: 但是人类所做的事情之一就是“发明新事物”,我只是把这也归入“自动化”的范畴,如果这说得通的话。

Dwarkesh Patel: 但是,我想说,不那么抽象,更“质感”一点,你是否期望某个东西感觉像是……因为这个东西要么思考得太快,要么有太多的副本 (copies),要么副本可以合并回自身,要么它聪明得多,AI 可能拥有的任何数量的优势,拥有这些 AI 的文明是否会让人感觉与人类文明有质的不同?

Andrej Karpathy: 我想会的。它在根本上是自动化,但它将是极其“异质的”(foreign)。它看起来会非常奇怪。就像你提到的,我们可以在计算机集群上更快地运行所有这些。

当世界变成那个样子时,我开始感到紧张的一些情景是,我们会逐渐失去对正在发生的事情的控制和理解。我认为这是最可能的结果。我们会逐渐在各处都铺上这层东西,然后懂它的人会越来越少。接着,我们会逐渐失去对正在发生的事情的控制和理解。这对我来说,似乎是所有这一切最可能的结局。

Dwarkesh Patel: 让我深入探讨一下。我不清楚“失去控制”和“失去理解”是一回事。台积电 (TSMC)、英特尔 (Intel)——随便哪家公司——的董事会,他们只是一些有声望的 80 岁老人。他们几乎不“理解”什么,也许他们实际上也没有“控制权”。

一个更好的例子是美国总统。总统拥有极大的权力。我不是在对现任总统做评价,但实际的“理解”水平与“控制”水平是截然不同的。

Andrej Karpathy: 我认为这很公平。这是一个很好的反驳。我想我预计的是两者都会失去。

Dwarkesh Patel: 为什么?失去理解是显而易见的,但为什么会失去控制?

Andrej Karpathy: 我们现在已经深入到一个我不知道它会是什么样子的领域了。但如果让我来写科幻小说,它们的情节不会是“一个单一实体接管一切”,而是“多个相互竞争的实体”逐渐变得越来越自主。其中一些失控了 (go rogue),其他的则去反击它们。这将是一个我们委托出去的、完全自主活动的“大熔炉”。我觉得会有那种味道。

Dwarkesh Patel: 导致失控的,并不是“它们比我们聪明”这个事实。而是“它们相互竞争”这个事实,以及从这种竞争中产生的任何东西导致了失控。

Andrej Karpathy: 很多这些东西,它们会成为人类的工具,它们代表人类行事。所以也许那些人是“在控制”的,但也许这对整个社会来说是“失控的”,就我们想要的“结果”而言。你有一些实体代表个人行事,但(从社会角度看)它们仍然被视为失控。

Dwarkesh Patel: 这是我早该问的一个问题。我们之前谈到,目前感觉当你在做 AI 工程或研究时,这些模型更像是“编译器”而不是“替代品”。

在某个时刻,如果你有了 AGI,它应该能做你所做的事。你是否觉得,拥有“一百万个并行运行的你的副本”会导致 AI 进展的巨大加速?如果这真的发生了,你是否期望在拥有真正的 AGI(我不是指今天的 LLM)后,看到一场“智能爆炸”?

Andrej Karpathy: 我认为是,但这只是“一切照旧”(business as usual),因为我们已经身处一场“智能爆炸”之中,并且已经持续了几十年。这基本上就是 GDP 曲线,它是行业中如此多方面的指数加权总和。一切都在逐渐被自动化,并且已经持续了数百年。工业革命 (Industrial Revolution) 是自动化,是物理部件和工具制造的自动化。编译器是早期的软件自动化。我们一直在递归式地自我改进 (recursively self-improving) 和“爆炸”,已经很长时间了。

另一种看法是,如果你不看生物力学之类的,地球曾经是一个非常无聊的地方,看起来都差不多。如果你从太空看,我们正处在一个“鞭炮爆炸事件”的中心,只是我们正以慢镜头在看它。我绝对觉得这已经发生了很长时间。我再次强调,我不认为 AI 是一种与已经发生了很长时间的那些事情截然不同的技术。

Dwarkesh Patel: 你认为它与这个“超指数”(hyper-exponential) 趋势是连续的?

Andrej Karpathy: 是的。这就是为什么这对我很有趣,因为我曾试图在 GDP 中寻找 AI。我原以为 GDP 应该会上升。但后来我去看了一些我认为非常具有变革性的其他技术,比如计算机或手机。你在 GDP 中找不到它们。GDP 仍然是那条指数曲线 (exponential)。

即使是早期的 iPhone 也没有 App Store,也没有现代 iPhone 的那么多花哨功能。所以,尽管我们认为 2008 年 iPhone 问世是一个重大的“地震级”变化,但实际上并不是。一切都被摊得太平,扩散得太慢,以至于所有东西最终都被平均进了那条指数曲线。计算机也是完全一样的事情。你无法在 GDP 中找到它们,说“哦,我们现在有计算机了”。不是那样的,因为这是一个非常缓慢的进程。

对于 AI,我们将看到完全相同的事情。它只是更多的自动化。它让我们能编写以前无法编写的、不同类型的程序,但 AI 在根本上仍然是一个程序。它是一种新型计算机和一种新型计算系统。但它也有各种各样的问题,它会随着时间推移而扩散,它最终还是会汇入那条指数曲线。我们仍然会有一个指数曲线,它将变得极其陡峭 (vertical)。生活在那样的环境中将会非常“异质”。

Dwarkesh Patel: 你是说,如果你看从工业革命前到现在的趋势,你有一个超指数,你从 0% 的增长,到 1 万年前 0.02% 的增长,再到现在的 2% 增长。这是一个超指数。你是说如果把 AI 标在上面,AI 会带你到 20% 或 200% 的增长吗?

还是说,如果你看过去 300 年,你看到的是技术一个接一个出现——计算机、电气化、蒸汽机、铁路等等——但增长率是完全相同的,就是 2%。你是说增长率会上升吗?

Andrej Karpathy: 增长率也大致保持不变,对吧?

Dwarkesh Patel: 只在过去 200、300 年是这样。但在人类历史的尺度上,它是爆炸式增长的。从 0% 到越来越快。工业革命,2%。

Andrej Karpathy: 有一段时间,我试图在 GDP 曲线上寻找 AI,但我已经说服自己这是错的。即使人们谈论“递归式自我改进”和实验室之类的,那也是“一切照旧”。它当然会递归式自我改进,它也一直在这么做。

LLM 让工程师能更高效地工作,以构建下一轮的 LLM,越来越多的组件正在被自动化和调整。所有工程师都能用上谷歌搜索,这是它的一部分。他们都有了 IDE,有了自动补全,有了 Claude Code,这都是“加速”的同一个过程的一部分。它就是如此平滑 (smooth)。

Dwarkesh Patel: 只是为了澄清,你是说增长率“不会”改变。智能爆炸的表现将是“它使我们能够继续保持在 2% 的增长轨道上”,就像互联网帮助我们保持在 2% 的增长轨道上一样。

Andrej Karpathy: 是的,我的预期是它会保持在同一个模式中。

Dwarkesh Patel: 只是为了向你抛出相反的论点,我的预期是它会“爆炸”。因为我认为“真正的 AGI”——我不是指 LLM 编码机器人,我是指服务器中对人类的“真正替代”——与那些“提高生产力”的技术在性质上是不同的,因为它是“劳动力本身”(labor itself)。

我认为我们生活在一个“劳动力极度受限”的世界。如果你去问任何一个创业者,你问他你最需要什么?你需要真正有才华的人。如果你有了“几十亿”额外的人在发明东西、融入社会、从零到一创办公司,这感觉就与单一技术有质的不同了。这就好像地球上突然多了 100 亿人。

Andrej Karpathy: 也许一个反驳的观点是。在这一点上,我很愿意被任何一方说服。但我想说,例如,计算 (computing) 就是劳动力。计算曾经是劳动力。计算机(的出现),让很多工作消失了,因为计算机自动化了大量你不再需要人去做的“数字信息处理”。所以计算机就是劳动力,而且这已经发生了。

自动驾驶也是计算机在充当劳动力。这也已经在发生了。这仍然是“一切照旧”。

Dwarkesh Patel: 你有了一台机器,它能以可能更快的速度“吐出”更多类似的东西。历史上,我们有过增长模式 (growth regime) 改变的先例,你从 0.2% 的增长变成了 2% 的增长。对我来说,一台机器能“吐出”下一个自动驾驶汽车、下一个互联网以及任何东西,这似乎非常有可能(带来另一次改变)。

Andrej Karpathy: 我明白你的意思。但同时,我确实觉得人们在假设“我们有了一个盒子里的上帝 (God in a box),现在它能做任何事”,但事情不会是那样的。它将能够做“某些事”,但会在“另一些事”上失败。它将被逐渐地放入社会,我们最终会得到同样的模式。这是我的预测。

那种“突然拥有一个完全智能、完全灵活、完全通用的人类在盒子里,我们可以把它分派到社会中的任意问题上”的假设,我不认为我们会经历这种“离散的变化”(discrete change)。我认为我们会抵达同样的那种“在行业中逐渐扩散”的模式。

Dwarkesh Patel: 在这些对话中,使用“智能”这个词常常会产生误导。在 这个语境下,我不喜欢用它,因为它暗示你会有一个“单一的超级智能”坐在服务器里,它会“占卜”出如何发明新技术,从而导致爆炸。

当我设想 20% 的增长时,我不是在想这个。我设想的是有数十亿“非常聪明、类似人类”的心智。

但事实上,有数亿、数十亿的它们,每一个都在独立地制造新产品、想办法将自己融入经济。如果一个经验丰富、聪明的移民来到这个国家,你不需要去想“我们如何将他们融入经济”。他们自己会想办法。他们可以创业,可以发明,或者提高世界的生产力。

即使在当前的模式下,我们也有过实现 10-20% 经济增长的地方。如果你有大量的人口,而资本相对于人口较少,你就可以有香港或深圳,它们有几十年的 10% 以上的增长。有大量非常聪明的人准备好利用资源,完成这个“追赶期”。我认为 AI 可能会类似。

Andrej Karpathy: 我明白,但我仍然认为你在预设某种“离散的跳跃”(discrete jump)。仿佛有一个“解锁”在等着我们去获取。然后突然之间,我们就在数据中心里拥有了“天才”。我仍然认为你在预设某种“离散的跳跃”,这既没有历史先例,我也无法在任何统计数据中找到,我认为这可能不会发生。

Dwarkesh Patel: 我的意思是,工业革命就是这样的一次跳跃。你从 0.2% 的增长变成了 2% 的增长。我只是说你会看到另一次那样的跳跃。

Andrej Karpathy: 我有点怀疑,我得去查查。例如,工业革命前的一些记录并不太好。我对此有点怀疑,但我没有强烈的意见。你是说那是一个极其神奇的、单一的事件。你是说也许会有另一个事件,也会像那样,极其神奇。它会打破范式,等等。

Dwarkesh Patel: 我其实不认为……工业革命的关键在于它“并不神奇”。如果你在 1770 年或 1870 年把镜头拉近,你不会看到有什么“关键发明”。但与此同时,你确实把经济推向了一个“进展快得多、指数增长 10 倍”的新模式。我期望 AI 也会发生类似的事情,不会有一个“我们做出了关键发明”的单一时刻。

Andrej Karpathy: 这是一个正在被解锁的“积压”(overhang)。就像也许有了一种新能源。有某种“解锁”——在这个例子中,是某种认知能力——并且有大量“认知工作”的积压等待完成。

Dwarkesh Patel: 没错。

Andrej Karpathy: 你期望当这项新技术跨过某个门槛时,这个“积压”会被填补。

Dwarkesh Patel: 也许一种思考方式是,纵观历史,很多增长来自于人们想出点子 (ideas),然后有人去执行这些点子,创造有价值的产出。在大部分时间里,人口一直在爆炸式增长。这一直在驱动增长。

在过去 50 年里,人们在争论增长已经停滞。前沿国家的人口也停滞了。我认为我们会“回归”到那种“人口指数增长导致产出超指数增长”的模式。

Andrej Karpathy: 这真的很难说。我理解那个观点。但我直觉上并不认同那个观点。


智能与文化的演进


Dwarkesh Patel: 你向我推荐了 Nick Lane 的书。基于此,我也觉得它超级有趣,并且我采访了他。我有一些关于思考智能和进化史的问题。

既然你在过去 20 年的 AI 研究中,可能对“什么是智能”以及“发展智能需要什么”有了更切实的感受。你是否因此对“进化只是自发地偶然发现了它”这件事,感到或多或少的惊讶?

Andrej Karpathy: 我爱 Nick Lane 的书。我来这里的路上还在听他的播客。关于智能及其进化,这是非常非常晚近的事情。我很惊讶它能进化出来。

我发现思考“外面所有的世界”这件事非常迷人。假设有一千个像地球一样的行星,它们会是什么样子。我想 Nick Lane 在这里谈论过一些最早期的部分。他预计在大多数行星上,都会有非常相似的生命形式,大致是细菌之类的东西。这里面有几次“断裂”。直觉上,智能的进化对我来说应该是一个相当罕见的事件。

也许你应该根据某事物“存在了多长时间”来判断。如果细菌存在了 20 亿年而什么都没发生,那么(从细菌)到真核生物 (eukaryote) 可能就非常困难,因为细菌在地球进化史的早期就出现了。我们拥有动物多久了?也许几亿年,那些跑来跑去、爬来爬去的多细胞动物。这大概是地球寿命的 10%。也许在那个时间尺度上,这并不太棘手。

但对我来说,直觉上它能发展出来还是挺令人惊讶的。我可能原以为只会有很多“动物形态”的生命在做“动物做的事”。你竟然能得到某种能“创造文化和知识并积累它”的东西,这让我感到惊讶。

Dwarkesh Patel: 有几个有趣的后续问题。如果你接受 Sutton 的观点,即“智能的症结在于动物智能”……他的原话是“如果你能造出松鼠,你就基本快实现 AGI 了”。

我们在 6 亿年前的寒武纪大爆发 (Cambrian explosion) 之后不久,就有了“松鼠智能”。看起来是 6 亿年前的“大氧化事件”(oxygenation event) 激发了这一点。但“智能算法”立刻就出现了,造就了松鼠智能。这似乎表明“动物智能”是“嗖”的一下就来了。一旦你环境中有了氧气,有了真核生物,你就能得到那个算法。也许进化这么快就偶然发现它是种意外,但我不知道这是否暗示着它(智能算法)最终会非常简单。

Andrej Karpathy: 这太难说了。你可以根据某事物存在了多久,或者你感觉某事物被“瓶颈”了多久来判断。Nick Lane 非常擅长描述细菌 (bacteria) 和古菌 (archaea) 那个非常明显的瓶颈。20 亿年,什么都没发生。生物化学 (biochemistry) 有着极端的“多样性”,但没有任何东西成长为“动物”。20 亿年。

我不确定我们在“动物和智能”之间是否看到了完全等价的东西,正如你所说。我们也可以从“我们认为某些智能独立涌现了多少次”这个角度来看。

Dwarkesh Patel: 这是一个非常值得探究的好问题。

Andrej Karpathy: 关于这一点,我有个想法。有人类 (hominid) 智能,然后有鸟类 (bird) 智能。乌鸦 (Ravens) 等等,极其聪明,但它们的大脑部件截然不同,我们没有太多共同点。这稍微暗示了智能可能涌现了好几次。如果是这样,你就会预期它更频繁地出现。

Dwarkesh Patel: 前嘉宾 Gwern 和 Carl Shulman 曾就此提出一个非常有趣的观点。他们的观点是,人类和灵长类动物拥有的那种“可扩展的算法”(scalable algorithm),在鸟类中也出现了,也许在其他时候也出现过。但是人类找到了一个“进化生态位”(evolutionary niche),这个生态位会“奖励边际智能的增加”,同时人类也拥有“可扩展的大脑算法”来实现这些智能的增加。

例如,如果一只鸟的大脑更大,它就会从空中掉下来。它相对于它的大脑尺寸来说非常聪明,但它所处的生态位并不奖励“大脑变大”。这也许类似于一些非常聪明的……

Andrej Karpathy: 比如海豚?

Dwarkesh Patel: 没错。人类,我们有手,这奖励了我们去学习如何使用工具。我们可以“外化”消化过程 (externalize digestion),让更多能量供给大脑,这就启动了飞轮。

Andrej Karpathy: 还有“可供操作的东西”。我猜如果我是一只海豚,这会更难。你怎么生火?你在水里能做的事情,可能在化学上就比在陆地上能做的要少。

我同意关于“生态位”和“激励什么”的观点。我仍然觉得这很神奇。我本以为事物会卡在“拥有更大肌肉的动物”上。转向“智能”是一个非常迷人的“断裂点”。

Dwarkesh Patel: Gwern 的说法是,这之所以如此困难,是因为这是一条非常狭窄的界线:一方面,有些东西“重要到值得学习”,以至于不值得把确切的电路直接“蒸馏”回你的 DNA 里;另一方面,它又“没有重要到根本不值得学习”。它必须是某种能“激励你去构建那个算法,以便在有生之年学习”的东西。

Andrej Karpathy: 你必须激励某种“适应性”(adaptability)。你需要“不可预测的环境”,这样进化就无法把你的算法“烘焙”(bake) 进你的权重里。很多动物在这方面是“预先烘焙好”的。人类必须在他们出生时,在“测试时”(test time) 自己搞清楚。你需要那些变化非常快的环境,你无法预见什么会管用。你创造出“智能”,以便在“测试时”搞定它。

Dwarkesh Patel: Quintin Pope 有一篇有趣的博客文章说,他之所以不期望一个“急剧起飞”(sharp takeoff),是因为人类有过一次“急剧起飞”。6 万年前,我们似乎已经拥有了今天这样的认知架构。1 万年前,农业革命,现代性。在那 5 万年里发生了什么?你必须建立起这个“文化支架”(cultural scaffold),让你能跨代积累知识。

这种能力在我们训练 AI 的方式中是“免费”存在的。在很多情况下,它们确实是被“蒸馏”的。如果你重新训练一个模型,它们可以在彼此的基础上训练,它们可以在同一个预训练语料库上训练,它们不需要真的“从零开始”。从某种意义上说,人类花了好长时间才让这个“文化循环”运转起来,但这在 LLM 的训练方式中是“免费附送”的。

Andrej Karpathy: 是,也不是。因为 LLM 并没有真正等同于“文化”的东西。也许是我们给它们喂了太多东西,以至于“激励”它们不去创造文化。但是,文化的发明、书面记录的发明、在彼此之间传递笔记,我不认为现在的 LLM 有任何与此等价的东西。LLM 现在并没有真正的“文化”,我想说这是障碍之一。

Dwarkesh Patel: 你能给我描述一下“LLM 文化”可能是什么样子吗?

Andj Karpathy: 最简单的情况下,它会是一个巨大的“草稿纸”(scratchpad),LLM 可以编辑它。当它在阅读东西或帮助工作时,它在为自己编辑这个草稿纸。为什么 LLM 不能为其他 LLM 写一本书?那会很酷。为什么其他 LLM 不能读这本 LLM 写的书,并受其启发或震惊?现在完全没有这些东西的等价物。

Dwarkesh Patel: 有趣。你预计什么时候会开始发生这种事情?以及,多智能体系统 (multi-agent systems) 和一种“独立的 AI 文明与文化”?

Andrej Karpathy: 在“多智能体”领域有两个强大的思想,但都还没有真正被实现。第一个我想说是“文化”,即 LLM 拥有一个为它们自己目的而不断增长的知识库。

第二个看起来更像是“自我对弈”(self-play) 这个强大的思想。在我看来,这极其强大。进化中有很多“竞争”在驱动智能和进化。在 AlphaGo 中,更算法化地说,AlphaGo 与自己对弈,这就是它学会变得非常擅长围棋的方式。现在没有“自我对弈的 LLM”的等价物,但我期望它也会存在。还没人做到。例如,为什么一个 LLM 不能创造出一堆问题,让另一个 LLM 学着去解决?然后出题的 LLM 总是试图提供越来越难的问题。

有很多方式来组织它。这是一个研究领域,但我还没有看到任何东西令人信服地实现了这两种“多智能体”的改进。我们大多还处于“单个智能体”的领域,但这将会改变。在“文化”领域,我还会把“组织”(organizations) 也算进去。我们也没有看到任何类似的东西被令人信服地实现。这就是为什么我们还处于早期。

Dwarkesh Patel: 你能指出阻碍 LLM 之间进行这种协作的关键瓶颈吗?

Andrej Karpathy: 也许我的表述是:有些类比能行得通,它们本不该行得通,但不知何故,它们就是行得通。很多更小、更笨的模型,惊人地像一个“幼儿园学生”,或者小学生、高中生。不知何故,我们仍然没有“毕业”到能让这些东西接管的程度。

我的 Claude Code 或 Codex,它们仍然感觉像是“小学水平”的学生。我知道它们能通过博士资格考试,但它们在认知上 (cognitively) 仍然感觉像个幼儿园或小学生。

我不认为它们能创造文化,因为它们还是“孩子”。它们是“学者综合征的孩子”(savant kids)。它们对所有东西都有完美的记忆。它们能令人信服地创造出各种看起来很棒的“slop”(劣质内容)。但我仍然认为它们并不真正知道自己在做什么,它们在所有那些我们仍需收集的“认知小复选框”上,还没有达标。


为什么自动驾驶花了这么长时间


Dwarkesh Patel: 你谈到过你 2017 年到 2022 年在特斯拉领导自动驾驶。你亲眼目睹了从“酷炫的演示”到“现在成千上万辆车在真正自主驾驶”的进展。为什么这花了十年?那段时间里发生了什么?

Andrej Karpathy: 有一件事我几乎会立刻反驳:在很多方面,这事远没有“完成”。自动驾驶非常有趣,因为它绝对是我很多直觉的来源,我毕竟在上面花了五年。它有它的整部历史,自动驾驶的“首次演示”可以一路追溯到 1980 年代。你可以看到 1986 年 CMU(卡内基梅隆大学)的一个演示。一辆卡车在路上自动驾驶。

快进一下。当我加入特斯拉时,我看过一个 Waymo 的非常早期的演示。那大概是在 2014 年左右,它给了我一次“完美的驾驶体验”,所以是十年前的一次完美 Waymo 驾驶。它带我们绕着帕洛阿尔托 (Palo Alto) 转。我当时觉得这东西非常接近(实现了),但它仍然花了很长时间。

对于某些类型的任务和工作,从“演示”(demo) 到“产品”(product) 之间存在巨大的鸿沟。演示很容易,但产品非常难。在像自动驾驶这样的领域尤其如此,因为“失败的代价太高了”。许多行业、任务和工作也许没有这个属性,但当你确实有这个属性时,那肯定会延长交付时间。

例如,在软件工程领域,我确实认为这个属性是存在的。对于很多“氛围编程”来说,它不存在。但如果你在写“实际的生产级代码”,这个属性就应该存在。因为任何类型的错误都可能导致安全漏洞,导致数百万、数亿人的个人社保号码被泄露。所以在软件领域,人们应该很小心,就像在自动驾驶领域一样。在自动驾驶中,如果出了问题,你可能会受伤。还有更糟的后果。但在软件领域,一件事情可能造成的后果,其糟糕程度几乎是“无上限”的。

我确实认为它们共享这个属性。之所以花这么长时间,以及思考这个问题的方式是,这是“9 的行军”(march of nines)。每实现一个 9(指 99.9% 中的 9),都需要付出等量的努力。当你得到一个演示,某样东西在 90% 的情况下能工作,那只是第一个 9。然后你需要第二个 9,第三个 9,第四个 9,第五个 9。我在特斯拉的五年左右时间里,我们大概经历了三个 9 或者两个 9。我不知道具体是多少,但我们经历了“多个 9”的迭代。而且还有更多的 9 要走。

这就是为什么这些事情需要这么长时间。这对我来说绝对是“塑造性的”经历,眼看着一个东西是演示。我现在对“演示”极其无感 (unimpressed)。每当我看到任何东西的演示,我都极其无感。如果是一个人为了“展示”而拼凑出来的演示,那就更糟了。如果你能和它“互动”,那会好一点。但即便如此,你还是没完成。你需要“实际的产品”。当它接触到现实,接触到所有那些需要“打补丁”的、形形色色的行为时,它将面临所有这些挑战。

我们将看到所有这些事情上演。这是“9 的行军”。每个 9 都需要等量的努力。演示是鼓舞人心的,但仍然有海量的工作要做。这是一个“关键安全”领域,除非你是在做“氛围编程”,那很美好很有趣。这就是为什么这也从那个角度强化了我的(关于 AGI)时间线的判断。

Dwarkesh Patel: 听你这么说很有趣,你认为软件所需的“安全保证”与自动驾驶并无不同。人们常说,自动驾驶花了这么长时间,是因为失败的代价太高了。人类平均每 40 万英里或每 7 年才会犯一次错。如果你必须发布一个“编码智能体”,它至少 7 年内不能犯错,那部署起来就难多了。

但你的观点是,如果你每 7 年犯一个“灾难性的编码错误”,比如搞垮某个重要系统……

Andrej Karpathy: 这太容易做到了。

Dwarkesh Patel: 事实上,按“挂钟时间”(wall clock time) 来算,会远远少于 7 年,因为你一直在那样输出代码。按“词元”来算可能是 7 年。但按“挂钟时间”……

Andrej Karpathy: 在某些方面,这是一个更难的问题。自动驾驶只是人类做的成千上万件事情中的一件。它几乎像是一个“单一的垂直领域”。而当我们谈论“通用的软件工程”时,它甚至更……它的“表面积”(surface area) 更大。

Dwarkesh Patel: 人们对这个类比还有另一个反对意见。那就是,在自动驾驶上,花费了大量时间的是去解决“拥有鲁棒的基础感知能力”、“构建表征”,以及“拥有一个具备常识的模型”,以便它在看到稍微超出分布的东西时能够泛化。如果有人在路上朝你这边挥手,你不需要专门为此训练。这个东西会对如何回应这种情况有某种“理解”。

而这些东西,我们通过今天的 LLM 或 VLM(视觉语言模型)就能“免费”得到。所以我们不需要解决这些非常基础的“表征问题”。因此,现在跨不同领域部署 AI,将有点像“把一个使用当前模型的自动驾驶汽车部署到另一个城市”,这很难,但不是一个长达 10 年的任务。

Andrej Karpathy: 我不 100% 确定我是否完全同意这一点。我不知道我们“免费”得到了多少。对于我们正在得到的东西,在“理解”上仍有很多空白。我们肯定是在“单一实体”中获得了更具“可泛化性”的智能,而自动驾驶是一个需要(特定能力的)“特殊用途”任务。在某种意义上,构建一个“特殊用途”的任务甚至可能更难,因为它不是从你正在大规模做的、更“通用”的事情中“自然掉落”出来的。

但这个类比仍然没有完全引起我的共鸣,因为 LLM 仍然是相当不可靠的 (fallible),它们有很多需要填补的空白。我不认为我们在某种意义上,一开箱就得到了“神奇的泛化能力”。

我想回到的另一个方面是,自动驾驶汽车仍然远未完成。部署规模非常小。即使是 Waymo 之类的,车辆也很少。它们之所以这样做,粗略地说,是因为它们“不经济”(uneconomical)。它们造出了一个“活在未来”的东西。它们不得不把“未来”拉到现在,但它们必须使它变得“不经济”。这里有各种成本,不仅是那些汽车及其运营和维护的“边际成本”(marginal costs),还有整个项目的“资本支出”(capex)。让它变得“经济”,对它们来说仍将是一场苦战。

而且,当你看到那些车里没人开时,我实际上认为这有点“欺骗性”。因为有非常精密的“远程操作中心”(teleoperation centers),有人在某种程度上“在循环中”(in a loop) 监控这些车。我不知道全貌,但其中“人在环路”(human-in-the-loop) 的程度可能比你想象的要多。有人在某个地方,从“天空”中接入。我不知道他们是否“完全”在驾驶循环中。某些时候他们是,但他们肯定参与其中。在某种意义上,我们并没有真正“移除”那个人,我们只是把他们移到了一个你看不见的地方。

我仍然认为还需要一些工作,就像你提到的,从一个环境到另一个环境。要让自动驾驶成为现实,仍然存在挑战。但我同意,它确实跨过了一个门槛,让人感觉它“有点真实了”——除非它真的是被“远程操作”的。例如,Waymo 不能去城市的所有地方。我怀疑那是因为在城市的某些地方你得不到好的信号。总之,我对其技术栈一无所知,我只是在瞎猜。

Dwarkesh Patel: 你在特斯拉领导了五年的自动驾驶。

Andrej Karpathy: 抱歉,我是说我对 Waymo 的具体情况一无所知。顺便说一句,我爱 Waymo,我经常坐。我只是认为人们有时对某些进展有点太天真了,仍然有海量的工作要做。

在我看来,特斯拉采取了一种更具“可扩展性”(scalable) 的方法,团队做得非常好。我对我关于这件事将如何发展的预测是公开的。Waymo 有一个早期的优势,因为你可以打包那么多传感器。但我确实认为特斯拉采取的是更具可扩展性的策略,未来会更像(特斯拉的模式)。所以这仍有待分晓,现在还没有。但我不想把自动驾驶说成是“花了十年”的事情,因为它“还没”花到十年,如果这说得通的话。

Dwarkesh Patel: 因为,第一,起点是 1980 年代,不是 10 年前;第二,终点还没到。

Andrej Karpathy: 终点远未到来。因为当谈论自动驾驶时,在我脑海中通常是“大规模的自动驾驶”。人们不再需要考驾照,等等。

Dwarkesh Patel: 我很好奇另外两种这个类比可能不适用的方式。我之所以对这个特别好奇,是因为“AI 部署的速度有多快”以及“它在早期有多大价值”,可能是当今世界上最重要的问题。如果你试图模拟 2030 年的样子,这就是你必须有所了解的问题。

另一件你可能想到的事是,自动驾驶有“延迟”(latency) 要求。我不知道实际的模型是怎样的,但我猜大概是几千万参数,这对于用 LLM 做“知识工作”来说,并不是必要的约束。

但另一个更重要的,也许是在“资本支出”(capex) 这个问题上。是的,多服务一个模型的副本是有额外成本的,但一个会话的“运营成本”(opex) 是很低的,你可以把 AI 的成本“摊销”(amortize) 到训练运行本身。但这肯定不像“为了多服务一个模型实例而造一辆新车”那么多。所以,更广泛部署的经济性要有利得多。

Andrej Karpathy: 我认为这是对的。如果你坚持在“比特”(bits) 的领域,比特比任何触及“物理世界”的东西都要容易一百万倍。我绝对承认这一点。比特是完全可变的,可以以非常快的速度任意重组。你也会期望在行业中看到更快的适应速度。第一个(观点)是什么来着?

Dwarkesh Patel: 延迟要求及其对模型大小的影响。

Andrej Karpathy: 我认为这大致是对的。我也认为,如果我们谈论的是“大规模的知识工作”,从实际角度出发,也会有一些延迟要求。因为我们将不得不创造海量的计算资源来提供服务。

我最后还想简要谈谈所有“其余的部分”。社会对此有何看法?法律后果是什么?它在法律上如何运作?在保险上如何运作?这些层面和方面是怎样的?“人们把交通锥放在 Waymo 上”的等价物会是什么?所有这些都会有等价物。所以我觉得自动驾驶是一个非常好的类比,你可以从中借鉴。汽车上的交通锥的等价物是什么?那个被隐藏起来的、远程操作工人的等价物是什么?

Dwarkesh Patel: 你对当前 AI 的“大建设”(buildout) 有什么看法吗?这将在未来一两年内将世界上可用的计算资源增加 10 倍,到这个十年末可能增加 100 倍以上。如果 AI 的使用将低于某些人天真的预测,这是否意味着我们“过度建设”了计算资源?

Andrej Karpathy: 有点像铁路 (railroads) 发生过的事情。

Dwarkesh Patel: 像什么?

Andrej Karpathy: 是铁路吗?

Dwarkesh Patel: 是的。

Andrej Karpathy: 是的。有历史先例。还是电信行业?为了“十年后才会到来”的互联网而预先铺设(光缆),并在 90 年代末的电信行业制造了一个大泡沫。

我理解我在这里听起来很悲观。我其实是乐观的。我认为这会成功。我认为它是可解的。我听起来悲观,只是因为当我看我的推特时间线时,我看到所有那些对我来说毫无意义的东西。这背后有很多原因。老实说,很多只是为了“融资”(fundraising)。这只是激励结构。很多可能是为了融资,很多只是为了“注意力”,在互联网上把注意力转化为金钱。有很多那样的事情在发生,我只是在对那种现象做出反应。

但我总体上仍然非常看好 (bullish) 技术。我们将克服所有这些东西。已经取得了飞速的进展。我不知道是否存在“过度建设”。我认为我们将能够“吞噬”掉据我所知正在建设的东西。例如,Claude Code 或 OpenAI Codex 之类的东西,一年前甚至还不存在。这是一项不存在的、奇迹般的技术。将会产生巨大的需求,就像我们已经在 ChatGPT 等产品上看到的需求一样。

所以我不知道是否存在过度建设。我只是在回应一些人们不断错误地宣称的“非常快的时间线”。在我 15 年的 AI 生涯中,我听过很多很多次,非常有声望的人在一直搞错这件事。我希望这件事能被“正确校准”(properly calibrated),而且其中一些问题还牵涉到地缘政治的后果。我不希望人们在那个领域犯错。我确实希望我们能立足于“技术是什么”和“技术不是什么”的现实。


教育的未来


Dwarkesh Patel: 让我们谈谈教育和 Eureka。你可以做的一件事是创办另一家 AI 实验室,然后尝试解决那些问题。我很好奇你现在在做什么,以及为什么不是 AI 研究本身?

Andrej Karpathy: 也许我的表述是:我对 AI 实验室正在做的事情,感到某种程度的“宿命论”(determinism)。我觉得我可以在那里帮忙,但我不知道我是否能“独特地”改进它。我个人最大的恐惧是,很多这类事情发生在“人类的边缘”,而人类因此被“剥夺了权力”(disempowered)。

我关心的不只是我们将要建造的、AI 将以完全自主的方式建造的所有“戴森球”(Dyson spheres),我关心的是“人类会怎么样”。我希望人类在未来能过得很好。

我觉得在这方面,我能比“为前沿实验室带来一点增量改进”提供“独特得多”的价值。我最害怕的是像《机器人总动员》(WALL-E) 或《蠢蛋进化论》(Idiocracy) 这样的电影中所描绘的场景,人类处于这些事物的边缘。我希望人类在未来能变得“好得多得多”。对我来说,这要通过“教育”来实现。

Dwarkesh Patel: 那么你在那方面在做什么呢?

Andrej Karpathy: 我能描述它的最简单的方式是,我们正试图建立“星际舰队学院”(Starfleet Academy)。我不知道你是否看过《星际迷航》(Star Trek)。

Dwarkesh Patel: 我没看过。

Andrej Karpathy: 星际舰队学院是这样一个精英机构,致力于前沿技术、建造宇宙飞船,并让学员毕业成为这些飞船的驾驶员。所以,我就想象一个关于“技术知识”的精英机构,一种非常与时俱进的、顶尖的学校。

Dwarkesh Patel: 我有一类问题想问你,那就是“如何才能把技术或科学内容教好”,因为你是世界上最精通此道的大师之一。我很好奇,你是如何思考你已经在 YouTube 上发布的内容的?以及,在多大程度上,你对 Eureka 的思考与此有所不同?

Andrej Karpathy: 关于 Eureka,我对教育感到非常着迷的一点是,我确实认为,随着 AI 的加入,教育将发生根本性的改变。它必须在某种程度上被重新布线 (rewired) 和改变。

我仍然认为我们还处于非常早期的阶段。会有很多人试图去做那些“显而易见”的事情。比如,拥有一个 LLM,然后问它问题。做所有那些你现在会通过“提示”(prompting) 来做的基本事情。这有帮助,但对我来说,感觉还是有点像“slop”(劣质内容)。我想把它“做好”,我认为我们还没有达到我想要的那种能力。我想要的是“真正的导师体验”(tutor experience)。

我脑海中一个突出的例子是,我最近在学韩语。我经历了一个阶段,在互联网上自学韩语。然后我经历了一个阶段,在韩国参加了一个小班,和其他人一起上韩语课,那很有趣。我们有一个老师和大概 10 个人。然后我换成了一对一的导师。

我想说,让我着迷的是,我碰上了一个非常好的导师。我只是在思考这个导师为我做了什么,那种体验是多么不可思议,以及我最终想要构建的东西的“标准有多高”。

仅仅通过很短的交谈,她立刻就理解了我作为一名学生所处的阶段,我懂什么、不懂什么。她能准确地“探测”(probe) 各种问题或事情,以理解我的“世界模型”。现在没有 LLM 能 100% 为你做到这一点,差得远了。但一个好的导师可以。一旦她理解了,她就能真正为我提供我“当前能力水平”所需的所有东西。我需要始终处于“适当的挑战”中。我不能面对太难或太微不足道的东西,而一个导师非常擅长为你提供“恰到好处”的东西。

我感觉“我”是学习的唯一限制。我总是被给予“完美的信息”。我是唯一的限制。我感觉很好,因为我是存在的唯一障碍。而不是我找不到知识,或者它没有被正确地解释。这只是我记忆的能力等等。这就是我希望人们能得到的。

Dwarkesh Patel: 你如何自动化它?

Andrej Karpathy: 问得好。以目前的能力,你做不到。这就是为什么我认为现在还不是构建这种“AI 导师”的正确时机。我仍然认为它是一个有用的产品,很多人会去构建它,但是“标准太高了”,而“能力还不够”。

即使在今天,我也会说 ChatGPT 是一个非常有价值的教育产品。但对我来说,看到那个标准有多高,是如此的令人着迷。当我和她(韩语导师)在一起时,我几乎觉得“我根本没法构建这个”。

Dwarkesh Patel: 但你正在构建它,对吧?

Andrej Karpathy: 任何有过一个“真正的好导师”的人都会想:“你怎么可能构建这个?”我在等待那种能力。

我曾做过一些关于计算机视觉的 AI 咨询。很多时候,我给公司带来的价值是告诉他们“不要用 AI”。我是 AI 专家,他们描述了问题,我说:“别用 AI。”这就是我的附加值。

我觉得现在在教育领域也是一样。对于我心中的设想,时机还不成熟,但时机终会到来。目前,我正在构建的东西可能看起来更“传统”一点,它有一个物理和数字的组成部分。但在未来它应该是什么样子,这是显而易见的。

Dwarkesh Patel: 在你愿意透露的范围内,你希望在今年或明年发布的东西是什么?

Andrej Karpathy: 我正在构建第一门课程。我想要一门非常非常好的课程,一个你为了学习(在这个例子中是 AI)而会去的、显而易见的、最先进的 (state-of-the-art) 目的地。这是我熟悉的东西,所以它是一个非常好的“第一款产品”,可以让我把它做到极致。这就是我正在构建的。

你刚才提到的 nanochat,它是我正在构建的课程 LLM101N 的一个“毕业项目”(capstone project)。这是一个非常大的部分。但现在我必须构建出很多中间(课程),然后我必须雇佣一个小的助教 (TAs) 团队,构建整个课程。

我还想说一点,很多时候,当人们想到教育时,他们更多想到的是我所说的“传播知识”的“软性” (softer) 组成部分。而我心中想的是非常“硬核”和“技术性”的东西。在我看来,教育是一个非常困难的技术过程,其本质是“搭建通往知识的坡道”(building ramps to knowledge)。

在我看来,nanochat 就是一个“通往知识的坡道”,因为它非常简单。它是超级简化的“全栈”的东西。如果你把这个“产物”(artifact) 交给某人,让他们仔细研究,他们会学到大量的东西。它给了你很多我称之为“每秒钟的顿悟”(eurekas per second),也就是“每秒钟的理解”。这就是我想要的,大量的“每秒钟的顿悟”。

所以对我来说,这是一个“技术问题”,关于我们如何构建这些通往知识的坡道。所以我几乎认为 Eureka 可能与一些前沿实验室或那里正在进行的工作没有太大区别。我想弄清楚如何“高效地”构建这些坡道,让人们永远不会“卡住”,一切都永远不会“太难或太简单”,你总能得到“恰到好处”的材料来取得进步。

Dwarkesh Patel: 你设想的是,在短期内,如果一个学生有足够的自我意识来“探测”自己,而不是由导师来探测你的理解,那么你就永远不会卡住。你可以在与助教、LLM 交谈或查看参考实现之间找到正确的答案。听起来自动化或 AI 目前还不是一个重要部分。到目前为止,最大的“alpha”(超额收益)是你“解释 AI”的能力,并将其“编码”在课程的源材料中。这从根本上就是这门课的全部。

Andrej Karpathy: 你必须始终根据行业中“存在的能力”来“校准”自己。很多人会追求“直接问 ChatGPT”。但我认为现在,例如,如果你去 ChatGPT 说“教我 AI”,门儿都没有。它会给你一些“slop”(劣质内容)。AI 现在永远也写不出 nanochat。但 nanochat 是一个非常有用的“中间点”。我正在“与 AI 协作”来创作所有这些材料,所以 AI 在根本上仍然是非常有帮助的。

早些时候,我在斯坦福构建了 CS231n,我想那是斯坦福的第一门深度学习课程,后来变得非常受欢迎。当时构建 231n 和现在构建 LLM101N 之间的差异是惊人的。我感到现在的 LLM 给了我极大的赋能,但我仍然“深度参与其中”(in the loop)。它们帮助我构建材料,我进展得更快。它们在做很多无聊的事情。我感觉我开发课程的速度快多了,而且它是“注入了 LLM”的,但它还没到能够“创造性地生成内容”的地步。我仍然需要去做那件事。棘手之处永远在于,根据“现有的东西”来校准自己。

Dwarkesh Patel: 当你想象几年后 Eureka 能提供什么时,看起来最大的瓶颈将是,在一个又一个领域中找到“Karpathy 们”,他们能把自己的理解转化成这些“坡道”。

Andrej Karpathy: 这会随时间变化。现在,这将是雇佣“教员”(faculty),让他们与 AI 和一个团队携手合作,来构建最先进的课程。随着时间的推移,也许一些“助教”可以变成 AI。你只需拿走所有的课程材料,然后我认为你可以为学生提供一个非常好的“自动化助教”,当他们有更基本的问题时。但我认为你仍然需要“教员”来设计课程的“整体架构”,并确保它契合。所以我看到了一个它将如何演进的“进程”。

也许在未来的某个时刻,我甚至都没那么有用了,AI 在做大部分的设计工作,而且比我做得好得多。但我仍然认为这需要一些时间才能实现。

Dwarkesh Patel: 你是设想其他领域的专家来贡献课程,还是你觉得,根据你对“你想如何教学”的理解,由你来设计内容,是这个愿景的“核心”?Sal Khan(可汗学院创始人)在可汗学院 (Khan Academy) 上讲述了所有的视频。你是在想象类似的事情吗?

Andrej Karpathy: 不,我会雇佣教员,因为有些领域我不是专家。这是为学生提供最先进体验的唯一途径。我确实期望我会雇佣教员,但我自己可能会在 AI 领域待上一段时间。

对于“当前的能力”,我心中的设想,比人们可能预期的要“传统”得多。

当我在构建“星际舰队学院”时,我确实想象了一个“实体机构”(physical institution),也许在它之下有一个“数字产品”(digital offering),它不是某人全职“亲身”来,我们从头到尾一起学习材料、确保你理解了的那种“最先进的体验”。那是“实体产品”。“数字产品”是互联网上的一堆东西,也许加一个 LLM 助手。它更“花哨”(gimmicky),低一个档次,但至少 80 亿人都能接触到。

Dwarkesh Patel: 我认为你基本上是在根据今天可用的工具,从“第一性原理”出发,重新发明“大学”,并且只筛选那些有动力、有兴趣真正投入材料的人。

Andrej Karpathy: 将会有大量的,不仅是“教育”,还有“再教育”(re-education)。我很乐意在这方面提供帮助,因为工作岗位可能会发生很大变化。例如,今天很多人正试图在 AI 方面提升技能。我认为在这个方面,这是一个非常好的课程。

关于“动力”(Motivation)。在 AGI 之前,动力问题很简单,因为人们想赚钱。这就是你今天在行业中赚钱的方式。AGI 之后,可能会有趣得多。因为如果一切都被自动化了,任何人都无事可做了,为什么还会有人去上学?

我常说,AGI 之前的教育是“有用的”(useful)。AGI 之后的教育是“有趣的”(fun)。

就像今天人们去健身房一样。我们不需要他们的体力去搬运重物,因为我们有机器可以做。他们仍然去健身房。为什么?因为这“有趣”(fun),这“健康”(healthy),而且当你有了六块腹肌时,你看起来很“辣”(hot)。从人类非常深刻的、心理学的、进化的意义上说,这对人们是有吸引力的。

教育也会以同样的方式发展。你会像去健身房一样去“上学”。

现在,没有那么多人学习,因为学习是“难”的。你会被材料“弹开”。有些人克服了那个障碍,但对大多数人来说,这很难。这是一个需要解决的“技术问题”。这是一个技术问题,去实现我的韩语导师为我做到的事情。这是可解的 (tractable) 和可构建的 (buildable),应该有人去构建它。它将使“学习任何东西”变得“轻而易举”(trivial) 和“令人向往”(desirable),人们会为了“乐趣”而去做,因为它太简单了。

如果我对任何任意的知识,都有一个那样的导师,学习任何东西都会变得容易得多,人们会去做的。他们会出于和去健身房同样的理由去做。

Dwarkesh Patel: 这听起来与……所以,AGI 之后,你把这当作“娱乐”或“自我提升”。但这听起来与你之前的愿景不同,你之前说这种教育关系到“让奇点之后的人类保持对 AI 的控制”。这听起来不一样。它是对一些人的“娱乐”,但对另一些人的“赋能”吗?你怎么看?

Andrej Karpathy: 我确实认为,从长远来看,这有点像一场“注定要输的游戏”(losing game)。从非常长远(可能比这个行业大多数人想的都长)的角度来看,是这样。我确实认为人类可以走得很远,而我们对“一个人能走多远”还只是触及了皮毛。这只是因为人们被“太容易或太难”的材料“弹开”了。人们将能够走得更远。任何人都会说五种语言,因为为什么不呢?因为它太简单了。任何人都会知道所有大学本科的基础课程。

Dwarkesh Patel: 现在我理解这个愿景了,非常有趣。它在“健身房文化”中有一个完美的类比。我不认为 100 年前有谁会是“肌肉发达”(ripped) 的。没有人能随随便便卧推两大片或三大片(杠铃片)。但现在这很常见,因为有了在健身房“系统地训练和举铁”的理念,或者“系统地训练去跑马拉松”,这是大多数人类不会自发拥有的能力。你正在想象在许多不同领域中,发生类似的、更深入、更快速的学习。

Andrej Karpathy: 没错。我这是在含蓄地押注于“人性中某些永恒的东西”。做所有这些事情将是“令人向往的”,我认为人们会像几千年来一样“景仰”它。这将继续是真的。

历史上有一些证据。如果你看看,例如,贵族 (aristocrats),或者看看古希腊,每当你有一些在某种意义上是“后 AGI”的小型“袖珍环境”(pocket environments) 时,人们都花了大量时间以某种方式“繁荣发展”(flourishing),无论是在身体上还是认知上。我对这种前景感觉还行。

如果这是错的,我们最终进入了《机器人总动员》或《蠢蛋进化论》的未来,那么我甚至不在乎是否有什么戴森球。那是一个可怕的结局。我真的只在乎人类。每个人都必须在某种意义上成为“超人”。

Dwarkesh Patel: 在那个世界里,这仍然不能让我们……那就像“文化世界”(culture world),对吧?你从根本上无法通过你自己的劳动或认知来改变技术的轨迹或影响决策。也许你能影响决策,因为 AI 在“征求你的批准”,但那不是因为“我发明了什么”或“我想出了一个新设计”而真正影响了未来。

Andrej Karpathy: 也许吧。我认为会有一个“过渡期”,如果我们理解了很多东西,我们将能够“参与其中”(in the loop) 并推动事物发展。从长远来看,这可能会消失。

它甚至可能成为一种“运动”(sport)。现在你有“力量举”(powerlifters) 运动员,他们在这个方向上走到了极致。在“认知时代”的“力量举”是什么?也许是人们真的试图把“认知”变成“奥林匹克”。如果你有一个完美的 AI 导师,也许你能走得非常非常远。我感觉,今天的“天才”们,也仅仅触及了人类心智所能达到的“皮毛”。

Dwarkesh Patel: 我喜欢这个愿景。我也觉得,与你“产品-市场最契合”(product-market fit) 的人就是我。因为我的工作要求我每周都要学习不同的学科,我非常兴奋。

Andrej Karpathy: 我也一样。例如,很多人讨厌学校,想离开。我真的很喜欢学校。我喜欢学习,等等。我想待在学校里。我一直待到博士毕业,然后他们不让我待更久了,所以我就去了工业界。粗略地说,我热爱学习,即使是“为了学习而学习”,但我也热爱学习,因为这是一种“赋能”(empowerment) 的形式,是变得“有用”和“有生产力”。

Dwarkesh Patel: 你还提到了一个很微妙的观点,我想明确一下。关于目前已经存在的“在线课程”,为什么它们没能让每个人都无所不知?因为它们太依赖“动力”了,因为没有明显的“上坡道”,而且太容易“卡住”。如果你有了这个东西——就像一个真正优秀的人类导师——它将从“动力”的角度带来巨大的“解锁”。

Andrej Karpathy: 我认为是这样。从材料上“被弹开”的感觉很糟糕。你投入了时间却没有结果,或者因为得到的东西太容易或太难而感到极度无聊,你会得到“负奖励”。当你把它做对了,学习的感觉是“愉悦的”。

要达到那一步,是一个“技术问题”。在一段时间内,它将是“AI + 人类协作”,在某个时刻,也许就只是 AI 了。

Dwarkesh Patel: 我能问一些关于“如何教好”的问题吗?如果你必须给你好奇的、另一个领域的教育者提建议,让他们制作出像你那样的 YouTube 教程。也许谈谈那些“你无法通过让他们编码来测试技术理解”的领域,会特别有趣。你会给他们什么建议?

Andrej Karpathy: 这是一个非常宽泛的话题。我可能有 10-20 个我(半)有意识在做的“技巧和窍门”。但很多都来自我的“物理学背景”。我真的非常喜欢我的物理学背景。我有一大套“为什么每个人都应该在早期学校教育中学物理”的理论。因为早期学校教育不是为了积累知识或记忆,以备将来在工业界使用。它是为了“启动大脑”(booting up a brain)。而物理学能以“最佳方式”启动大脑,因为在物理学中,他们让你在脑子里做的某些事情,在日后非常有价值。

“建立模型和抽象”的想法;“理解有一个一阶近似 (first-order approximation) 描述了系统的大部分,但还有二阶、三阶、四阶项可能存在也可能不存在”的想法;“你观察到的是一个非常嘈杂的系统,但你可以从中抽象出一些基本频率”的想法。

当一个物理学家走进教室说:“假设有一头球形的牛 (spherical cow)”,每个人都笑了,但这是“卓越的”(brilliant)。这是一种卓越的思维方式,在整个行业中都具有极强的“可泛化性”,因为在很多方面,一头牛可以被近似为一个球体。

例如,有一本非常好的书叫《规模》(Scale)。它出自一位物理学家之手,谈论生物学。也许这也是我会推荐阅读的一本书。你可以得到很多非常有趣的近似值,并绘制出动物的“规模法则”(scaling laws)。你可以查看它们的心跳之类的,它们与动物的体型是相关的。你可以把动物看作一个“体积”(volume)。你可以谈论它的“散热”(heat dissipation),因为你的散热是按“表面积”(平方)增长的。但你的“产热”(heat generation) 是按“体积”(立方)增长的。我只是觉得物理学家拥有所有“正确的认知工具”来解决世界上的问题。

因为那种训练,我总是试图找到所有事情的“一阶项”或“二阶项”。当我观察一个系统或一个事物时,我脑海中有一团“纠缠”在一起的想法或知识。我试图找到:什么是重要的?什么是一阶组分?我如何简化它?我如何能用一个“最简单的东西”来展示它,展示它的运作,然后再附加上其他项?

也许我代码库中的一个例子能很好地说明这一点,叫做 micrograd。我不知道你是否熟悉。micrograd 是 100 行代码,展示了“反向传播”(backpropagation)。你可以用简单的操作(如加法、乘法等)构建神经网络。神经网络的“乐高积木”。你构建一个计算图 (computational graph),你做一次前向传播 (forward pass) 和一次反向传播 (backward pass) 来获得梯度 (gradients)。现在,这是所有神经网络学习的核心。

所以 micrograd,这 100 行相当易懂的 Python 代码,它能做(虽然效率低下)任意神经网络的前向和反向传播。这 100 行 Python 代码,就是你理解神经网络如何训练所需要知道的“全部”。

其他的一切都只是为了“效率”(efficiency)。为了获得效率,需要做海量的工作。你需要你的张量 (tensors),你需要布局它们,你需要设置步幅 (stride),你需要确保你的内核 (kernels) 正确地协调内存移动。粗略地说,所有这些都只是为了“效率”。但是神经网络训练的“核心智力成果”(core intellectual piece) 就是 micrograd。它只有 100 行。你可以轻易理解它。它是链式法则 (chain rule) 的一个递归应用,用来推导梯度,这让你能优化任何任意的“可微函数”(differentiable function)。

我喜欢找到这些“低阶项”,把它们发现出来,然后“盛在盘子里”端上来。我感觉“教育”是“智力上最有趣的事情”,因为你有一堆纠缠不清的理解,你试图以一种方式把它“布局”开来,创造一个“坡道”,让上面的每一步都只依赖于它前面的那一步。我发现这种“解开知识”(untangling of knowledge) 的过程,作为一个“认知任务”,在智力上是如此有趣。我个人非常喜欢做这件事,我只是痴迷于试图以某种方式把事情“布局”好。也许这对我(教学)有帮助。

Dwarkesh Patel: 这也让学习体验变得更有“动力”。你关于 Transformer 的教程是从“二元组”(bigrams) 开始的,字面上就是一个“查找表”(lookup table):这是当前的词,或者这是前一个词,这是下一个词。它就是一个查找表。

Andrej Karpathy: 那就是它的本质,是的。

Dwarkesh Patel: 这太妙了,从一个查找表开始,然后到 Transformer。每一个部分都是有“动机”的。你为什么要添加那个?你为什么要添加下一个?你可以背诵“注意力”(attention) 公式,但“理解”为什么每一个部分都是相关的、它解决了什么问题(完全不同)。

Andrej Karpathy: 你在展示“解决方案”之前,先展示了“痛点”(pain),这多巧妙啊。你想带着学生走过这个“进展”(progression)。还有很多其他的小事情,让它变得美好、吸引人、有趣。总是“提示”(prompting) 学生。

有很多这样的小事情很重要,很多好的教育者都会这么做。“你会如何解决这个问题?”我不会在你“猜测”之前就给出答案。那太浪费了。那对你来说有点……我不想骂人,但在我给你一个机会自己尝试之前,就把答案扔给你,这是一种“混蛋行为”(dick move)。

Dwarkesh Patel: 因为如果你自己尝试了,你就能更好地理解“行动空间”(action space) 是什么,“目标”(objective) 是什么,以及为什么“只有这个行动”能实现那个目标。

Andrej Karpathy: 你有机会自己尝试,当我给你答案时,你会有一种“欣赏感”。它最大化了“每添加一个新事实所能带来的知识量”。

Dwarkesh Patel: 你认为为什么,在默认情况下,那些在自己领域中是“真正专家”的人,却常常不擅长向“新手”解释它?

Andrej Karpathy: 这是“知识的诅咒”(curse of knowledge) 和专业知识(的诅咒)。这是一个真实存在的现象,我自己也深受其害,尽管我努力避免。但你会把某些事情想当然,你无法设身处地地为刚起步的新人着想。这是普遍存在的,也发生在我身上。

有一件事非常有帮助。举个例子,最近有人试图给我看一篇生物学论文,我立刻就有了很多“糟糕的问题”。我做的是,我用 ChatGPT,把论文放在上下文窗口里,向它提问。它帮我解决了​​一些简单的问题。然后我把这个对话线程分享给了写那篇论文或做那项工作的人。我觉得,如果他们能看到我提的那些“愚蠢问题”,也许有助于他们将来解释得更好。

对于我的材料,我希望人们能分享他们与 ChatGPT 之间关于我所创造的东西的“愚蠢对话”,因为它真的能帮助我“再次”设身处地地站在一个初学者的角度。

Dwarkesh Patel: 还有一个技巧,效果好得惊人。如果某人写了一篇论文、博客或公告,100% 的情况下,他们“在午餐时向你解释这件事”的“叙述”或“转录稿”,不仅“更容易理解”,而且实际上也“更准确、更科学”。因为人们有一种偏见,喜欢用最抽象、充满术语的方式来解释事情,在解释核心观点之前,要先“清嗓子”四段。但是,“与人一对一交流”这件事,有某种魔力,迫使你“直奔主题”(just say the thing)。

Andrej Karpathy: “直奔主题”。我看到那条推文了,我觉得非常好。我分享给了很多人。我注意到了很多很多次。

最突出的例子是,我记得我读博期间做研究。你读了某人的论文,你努力去理解它在做什么。然后在后来的会议上,你抓到他们一起喝啤酒,你问他们:“所以这篇论文,你们在做什么?这篇论文是关于什么的?”

他们会只用三句话告诉你,完美地抓住了那篇论文的“精髓”(essence),让你完全明白了那个想法。而你根本不需要去读那篇论文。只有当你坐在桌边,喝着啤酒时,他们才会说:“哦,是的,那篇论文就是,你拿这个想法,再拿那个想法,试试这个实验,再试试那个东西。”他们有一种方式,能用“对话”的方式,把它完美地表达出来。为什么那不是“摘要”(abstract)?

Dwarkesh Patel: 没错。这是从“试图解释一个想法的人应该如何更好地阐述它”的角度出发的。那么,作为一个“学生”,你对其他学生有什么建议?如果你没有一个 Karpathy 这样的人为你“阐述”一个想法。如果你正在阅读某人的论文或一本书,你采用什么策略来学习你感兴趣的、但你并非专家的领域的材料?

Andrej Karpathy: 老实说,我不知道我是否有什么“独特的”技巧。这是一个痛苦的过程。有一件事对我一直很有帮助——我发过一条关于这个的小推文——“按需学习”(learning on demand) 非常好。“深度优先”(depth-wise) 学习。我确实觉得你需要在“深度优先、按需学习”——你试图完成某个你能从中获得“奖励”的项目——和“广度优先”(breadth-wise) 学习之间进行一点“交替”。“广度优先”学习就是,“哦,让我们来学 XX 101,这是你可能需要的所有东西。”很多学校教育就是“广度优先”学习,比如,“哦,相信我,你以后会需要这个的。”好吧,我相信你。我会学的,因为我猜我需要它。

但我热爱那种“你会因为做了某件事而得到奖励”的学习,你是“按需学习”的。

我发现另一件极有帮助的事。在这一点上,教育有点更“无私”(selfless),但“向他人解释”是更深入地学习某事的绝佳方式。这在我身上经常发生。可能也发生在其他人身上。因为我意识到,如果我没有真正理解某件事,我就无法解释它。我试着解释,然后我发现:“哦,我不理解这个。”被迫面对这一点是如此令人懊恼。你可以回去,确保你理解了它。它填补了你理解上的“空白”(gaps)。它迫使你面对它们,并调和它们。

我喜欢“重新解释”事物,人们也应该多这样做。那迫使你去“操纵”知识,并确保当你在解释时,你真的知道你在说什么。

Dwarkesh Patel: 这是一个非常好的收尾。Andrej,这次(访谈)太棒了。

Andrej Karpathy: 谢谢你。


技术落地

Next.js 自部署

2025-12-30 12:41:41

技术落地

Gemini 2.5:我们的思维模型系列更新

2025-12-30 12:41:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索