强化学习其实很糟糕。但它之所以大行其道,仅仅是因为我们以前拥有的一切,都比它差得多。 我本人其实非常乐观,我相信这事能成,问题终将解决。我之所以听起来悲观,只是因为当我看我的推特时间线时,上面充斥着太多在我看来毫无意义的东西。老实说,我认为其中很多噪音都只是为了筹集资金。

我们实际上不是在构建动物。我们是在构建幽灵——一种空灵的精神实体。它们完全是数字化的,它们在模仿人类。这是一种截然不同的智能。 这只是常规操作,因为我们早已身处一场持续了几十年的智能爆炸之中。一切都在逐渐被自动化,这个过程已经持续了数百年。 所以,别再写博客文章了,别再做幻灯片了,别做那些务虚的事。去构建代码,整理它,让它真正工作起来。这是唯一的出路。否则,你就永远缺少关键的知识。 当然,如果你有一个完美的人工智能导师,也许你可以走得非常远。但我认为,即便是今天所谓的天才们,也仅仅是触及了人类心智所能企及的表面而已。
更好的阅读体验:Andrej Karpathy最新访谈:信息密度极高!关于智能体,大模型缺陷,强化学习,AGI等等的深度思考
主持人: 今天,我请到了 Andrej Karpathy。Andrej,你为什么说这将是智能体的十年(decade of agents),而不是智能体之年(year of agents)?
Andrej Karpathy: 你刚才提到的智能体的十年这个说法,实际上是我对一个已有的引述的回应。我记得当时有些实验室——不确定具体是谁——在暗示今年将是智能体之年,特别是在LLM的发展方面。老实说,我当时被那句话刺激到了,因为它给我的感觉是行业里存在一些过度预测。在我看来,用十年来描述这个进程才更为准确。
我们现在确实有了一些非常早期的智能体,它们的能力令人印象深刻,我每天都在用,比如 Claude 和 Codex。但我仍然觉得,我们还有漫长的路要走。所以我的反应是,我们很可能需要和这些东西共事十年。它们会不断进步,这当然很棒。但我主要想表达的是,我对那种过于激进的时间线持保留态度。
主持人: 那你认为需要十年才能完成什么?瓶颈在哪里?
Andrej Karpathy: 嗯,简单来说,就是让它真正能用。在我的设想中,一个智能体应该几乎等同于你雇来一起工作的员工或实习生。你可以问问自己:你什么时候会宁愿让一个像 Claude 或 Codex 这样的智能体来做你手下员工正在做的工作?显而易见,现在它们还做不了。
那还需要什么才能让它们做到?你今天为什么不用它们?你不用它们的根本原因,就是它们不好用,对吧?它们还不够智能,也不够多模态。它们虽然可以使用电脑,但你之前提到的很多任务它们都无法完成。它们没有持续学习能力——你不能只是告诉它们一件事,然后期望它们能记住。它们在认知上存在缺陷。总而言之,就是不好用。我只是直觉地认为,要解决所有这些问题,大约需要十年时间。
主持人: 这很有意思。作为一个专业的播客主持人和一个从远处观察 AI 的人,对我来说,识别出哦,这里缺少了什么是比较容易的,比如缺少持续学习能力,或者缺少多模态能力。但我真的不知道该如何预测解决这些问题的时间线。比如,如果有人问我,实现持续学习需要多长时间?我没有任何先验知识来判断这究竟是一个五年、十年还是五十年的项目。所以,为什么是十年?为什么不是一年或者三年?
Andrej Karpathy: 我猜这主要凭我自己的直觉,以及基于我在这个领域的经验所做的推断,对吧?我从事 AI 行业大概有…快二十年了?也许没那么长,大概15年左右。你之前请来的 Richard Sutton,他在这个领域的时间当然比我长得多。但我确实有大约15年的经验,我见证过人们做出各种预测,也看到了它们最终的结果。我既在学术界待过,也在产业界工作过。所以,我猜我从这些经历中形成了一种普遍的直觉。我的感觉是:这些问题是可以解决的,也是可以克服的。但它们仍然非常困难。如果让我取个平均值,对我来说,感觉就像需要十年。大概就是这样。
主持人: 这真的很有趣。我不仅想了解历史,更想知道在那些不同的突破性时刻,身处现场的人们感觉即将发生什么。在哪些方面,他们的感觉被证明是过于悲观或过于乐观的?也许我们可以一个一个地来回顾一下?
Andrej Karpathy: 这确实是个大问题,因为你谈论的是15年间发生的所有事。我的意思是,AI 这个领域实际上非常奇妙,因为它经历了很多次我称之为地震级的转变——突然之间,整个领域看起来就完全不一样了。我猜我可能亲身经历过两三次这样的转变,而且我仍然认为未来还会有更多,因为它们似乎以一种令人惊讶的规律性在出现。
我职业生涯的开端,或者说我刚开始对深度学习产生兴趣时,很巧,我当时在多伦多大学,就在 Jeff Hinton 旁边。Hinton 教授,当然,就像是 AI 领域的教父级人物。他当时就在训练各种神经网络,我觉得这太不可思议了,也太有趣了。
但需要强调的是,这在当时远非 AI 领域的主流。它最初只是一个旁支学科。我想,第一次戏剧性的地震,就是伴随着 AlexNet 的出现而发生的。AlexNet 重新定位了所有人,每个人都开始转向训练神经网络。但那时候,研究仍然是高度针对特定任务的。比如,我训练一个图像分类器,或者一个神经机器翻译器,彼此独立。
在那之后,人们开始非常缓慢地对智能体产生兴趣。大家开始思考:好吧,我们可能在视觉皮层旁边打了个勾,但大脑的其他部分呢?我们如何才能构建一个真正的、完整的智能体,一个能够真正在世界中互动的实体?
我会说,2013年左右的 Atari 深度强化学习浪潮,就是早期智能体探索的一部分。它试图让智能体不仅能感知世界,还能采取行动、互动并从环境中获得奖励。当时的环境就是雅达利游戏,对吧?
但现在回看,我感觉那实际上是一个失误。这是一个连我当时所在的早期 OpenAI 都采纳了的失误。当时的主流就是强化学习环境、玩游戏、通关各种游戏,OpenAI 也在做大量那样的事情。那可能是 AI 发展的另一个重要阶段,大概有两三、四年的时间,每个人都在游戏上搞强化学习。但基本上,那条路有点走歪了。
我当时在 OpenAI 真正想做的,是更偏向现实世界的东西。我一直对游戏通向 AGI这条路径有点怀疑。在我的设想里,你想要的是像会计师那样的智能体,一个能真正与现实世界互动的东西。我看不出玩游戏要怎么实现这个目标。
所以,我在 OpenAI 的项目(隶属于 Universe 项目)就是研究一个能使用键盘和鼠标操作网页的智能体。我非常想做一个能与真实的数字世界互动、能做知识工作的智能体。
但事实证明,这个想法太早了,早得离谱,我们当时根本就不该做那个。因为如果你只是让智能体在那些环境里跌跌撞撞地乱敲键盘、乱点鼠标,试图获得奖励……你的奖励信号太稀疏了,它根本学不到任何东西,而且会烧掉海量的计算资源。你永远也做不出成果。
所以,我们当时所缺少的,是神经网络中的表征能力。举个例子,今天人们也在训练那些使用计算机的智能体,但他们是在一个大语言模型的基础上做的。你必须先拥有语言模型。你必须先获得表征,而这必须通过海量的预训练和所有 LLM 的工作来实现。
所以我的感觉是,也许粗略地总结,就是人们总是试图过早地得到那个完整的东西。有那么几次,人们真的过早地去追求智能体了——我会说 Atari 时代和 Universe 项目都是如此,包括我自己的经历。你实际上必须先完成一些前置工作,然后才能真正开始构建智能体。也许现在我们的智能体能力更强了,但可能我们仍然缺少技术栈的某些关键部分。
总的来说,我认为人们所做的事情主要分为这三类:
- 为每个特定任务训练神经网络;
- 尝试第一轮的智能体(但失败了);
- 转向 LLMs,在处理其他所有事情之前,先寻求神经网络的表征能力。
主持人: 非常有意思。如果我来转述一下 Rich Sutton 的观点,他大概会说:人类(甚至动物)实际上可以一次性处理所有事情,对吧?动物也许是更好的例子,因为它们甚至没有语言这个支架。它们被扔到世界上,就必须在没有任何标签的情况下理解一切。那么,AGI 的愿景不也应该是这样吗?——一个只观察原始感官数据(比如电脑屏幕)的系统,然后从头开始搞清楚发生了什么。这就像一个人的成长或动物的成长。那么,为什么 AI 的愿景不应该是这样,而是像我们现在做的这种,需要海量数据(像数百万年进化一样)的预训练呢?
Andrej Karpathy: 我觉得这是个很好的问题。Sutton 教授来过你的播客,我看过那期,我甚至就那期播客写了篇文章来谈谈我的看法。
我的感觉是,我对于把 AI 和动物做类比这件事非常谨慎,因为它们是通过截然不同的优化过程产生的。动物是进化来的,它们实际上自带了大量的内置硬件。比如,我在文章里举了斑马的例子:一只斑马出生几分钟后就能跑来跑去地跟着妈妈。这是一件极其复杂的事情,那不是强化学习,那是内置的东西。进化显然有某种方式将神经网络的权重编码在 ATCGs(DNA碱基)里。我不知道那是怎么运作的,但它显然是有效的。
所以我感觉大脑的来源是一个非常不同的过程,我非常不愿意从中获取灵感,因为我们实际上并没有在运行那个进化过程。
这就是为什么我在文章里说:我们实际上不是在构建动物,我们在构建幽灵(Ghosts)。或者叫精神(spirits),随便怎么称呼。因为我们不是通过进化来训练,我们是通过模仿人类以及他们放在互联网上的数据来进行训练。
所以,你最终得到的是这些空灵的精神实体,它们完全数字化,并且在模仿人类。这是一种不同类型的智能。想象一个智能的空间,我们就好像是从一个完全不同的起点出发的。我们不是真的在构建动物,尽管我认为随着时间的推移,让它们更像动物是可能的,而且我们应该这样做。
所以,Sutton 的框架基本上是让我们来构建动物。我真心认为,如果我们能让那个方案成功,那会非常棒——如果真的存在一个单一算法,你只要在互联网上运行它,它就能学会一切,那将是不可思议的。
但我几乎对此持怀疑态度。我不确定那样的(单一)算法是否存在,而且那肯定也不是动物的做法。因为动物有进化这个外循环,很多看起来像学习的东西,实际上更多是大脑的成熟。我甚至认为,动物真正使用的强化学习实际上非常少。
在我看来,强化学习更多是用于运动类的任务,比如投篮之类的简单任务。我认为人类在很多智能任务上,比如解决问题等等,并不怎么真正使用强化学习。
主持人: 我需要花点时间消化一下,因为这里有很多不同的观点。为了更好地理解你的看法,我能问一个澄清性的问题吗?你是不是在暗示,进化所做的事情,类似于预训练,它们都是在构建一个能够理解世界的基础模型?但我想,区别在于,进化必须通过区区 3GB 的 DNA 来完成这项工作。这与模型的权重(大脑)截然不同,大脑的全部信息显然不可能编码在那 3GB 的 DNA 中,它必须自己生长。进化似乎更接近于找到那个能够进行终身学习的算法。而这个终身学习算法,也许就像你说的,并不主要是强化学习。这个理解和你刚才说的兼容吗?
Andrej Karpathy: 我同意你的看法。这里的确发生了一些奇迹般的压缩。很明显,神经网络的权重并没有直接存储在 ATCGs 里。这其中必然有某种戏剧性的压缩,以及某种被编码好的学习算法,它在后续接管并进行在线学习。所以在这一点上,我完全同意你。
但总的来说,我更偏向于一个实用主义者。我的出发点不是让我们来建造动物,而是让我们来建造有用的东西。所以我更像一个戴着安全帽的工程师,在观察什么可行。我们没法复现进化,因为我不知道那该怎么做。但就目前而言,我们可以通过模仿互联网文档来构建这些幽灵实体,而这套方法是行得通的。
它确实能让你达到一个拥有大量内置知识和智能的水平,在某种程度上,这类似于进化所做的事情。所以,这就是为什么我把预训练称为一种蹩脚的进化(lousy evolution)。它就像是在我们现有的技术和资源下,一个实际可行的、能让我们达到某个起点的版本,一个可以开始做强化学习等事情的起点。
主持人: 只是为了强化另一种观点——我之前也采访过Sutton并思考过这个问题——这里有一个很重要的点:进化并没有真正地给予我们知识,对吧?它给予我们的是找到知识的算法。这似乎与预训练不同。
所以,如果你的观点是:预训练在帮助构建一个能更好学习的实体(即它在教元学习,meta-learning),那么它确实类似于进化在寻找算法。但是,如果预训练只是在灌输知识(比如商业知识),那么这个蹩脚的进化的类比似乎就不成立了。
Andrej Karpathy: 这是一个非常微妙的观点,我认为你的反驳是对的。
基本上,预训练(预测下一个token)实际上在同时做两件有点不相关的事情。第一,它在获取我所说的所有知识。第二,它通过观察互联网上的算法模式而变得智能。它实际上启动了神经网络内部所有这些微小的电路和算法,让它们能够做上下文学习(in-context learning)之类的事情。
但事实上,你可能根本不想要那些知识。我甚至认为,这些知识可能反而拖累了神经网络,因为它让模型有时过于依赖已有的知识。例如,我觉得现在的智能体有一件事做得不好,那就是脱离互联网上已存在的数据流形(go off-manifold)。如果它们的知识或记忆更少,它们在某些任务上反而可能会做得更好。
所以我认为,我们接下来的研究范式之一,就是需要想办法移除知识,并保留我称之为认知核心的东西。这个核心是一个在某种程度上脱离了具体知识的智能实体,但它包含了算法、智能、解决问题的策略……那些真正的魔力所在。
主持人: 这里面有太多有趣的东西了。好的,我们先从上下文学习开始。这似乎是一个显而易见的点,但我觉得值得明确地拿出来思考。
这些模型看起来最智能的时刻,就是当我和它们交谈时,我感觉到:哇,另一端真的有东西在回应我,在思考。如果它犯了错,它会说:哦等等,那种思考方式是错的,我来纠正一下。所有这一切都发生在当前的上下文中。
这就是为什么我觉得真正的智能是你能亲眼目睹的。而这个上下文学习的能力,是通过预训练时的梯度下降发展出来的,对吧?就像在元学习中,它自发地学会了上下文学习。但是,上下文学习这个过程本身并不是梯度下降——这就好比,我们人类的智能是由进化决定的,但我们一生中的实际学习是通过其他过程(而不是进化)发生的。
Andrej Karpathy: 我不完全同意这个类比,但你请继续。
主持人: 好的,那我其实很好奇,你觉得这个类比在哪个环节不成立?
Andrej Karpathy: 我不太愿意说上下文学习没有在做类似梯度上升的事情。我的意思是,它在推理时没有在句子中进行明确的梯度计算。但我仍然认为,上下文学习本质上是在一个token窗口内进行模式补全。
恰好,互联网上充斥着海量的模式。所以你训练的模型学会了去补全这些模式。在神经网络的权重内部,它正在尝试发现模式并补全模式。神经网络内部发生了某种适应,这有点神奇,它之所以能自然地从互联网数据中涌现出来,仅仅是因为那里存在着海量的模式。
我想说的是,确实有一些很有趣的论文在研究上下文学习背后的机制。我真的认为,上下文学习有可能是在神经网络的层内部,悄悄运行着一个微型的梯度下降循环。
我记得有篇论文,他们就用上下文学习来做线性回归。你给神经网络输入 (x, y) 数据对,比如 (x1, y1), (x2, y2)… 这些点都在一条直线上。然后你再输入一个新的 X,模型就能预测出对应的 y。是的,当你这样训练时,它确实学会了线性回归。通常,我们做线性回归时,会有一个优化器,它查看 (x, y) 和误差,计算梯度并更新权重。而那篇论文发现,当他们去研究那个上下文学习模型的权重时,其内部机制与梯度下降惊人地相似。他们甚至更进一步,通过硬编码 Transformer 的权重,直接用注意力机制实现了梯度下降。
所以,我想我的反驳是:谁知道上下文学习到底是怎么运作的呢?但我认为它很可能在内部做着某种奇特的梯度上升。所以我只是想反驳你说的它不是在做梯度下降——谁知道它在做什么,但它很可能在做类似的事情,只是我们还不知道。
主持人: 那么,这就引出了一个问题:如果上下文学习和预训练都在实现类似梯度下降的东西,为什么感觉上上下文学习更像是真正的智能或持续学习,而预训练却给不了我们这种感觉?如果底层算法相同,那究竟是什么导致了这种差异呢?
Andrej Karpathy: 你可以这么想:模型在不同阶段为每条信息存储了多少信息量。拿预训练来说,Llama 3 是在 15 万亿个token上训练的。对于一个 70B 的模型,它在权重中存储的信息量,摊到每个它见过的token上,大概只有 0.07 比特。
但反观上下文学习,你看看 KV 缓存——模型每多处理一个token,KV 缓存就会增长约 320 千字节。这两者之间,模型为每个token吸收的信息量,相差了整整 3500 万倍。我不敢说这一定相关,但这是个巨大的差异。
我通常会说,神经网络在训练(预训练)期间学到的任何东西,都只是一种对训练数据的模糊记忆。这是因为压缩率太高了——你把 15 万亿个token压缩到只有几十亿参数的网络里,必然发生了巨量的压缩。所以我称之为对互联网的模糊记忆。
相比之下,任何在测试时(推理时)发生在上下文窗口里的事情,你输入的所有token都会被建立成 KV 缓存,这些信息对神经网络是非常直接可访问的。因此,我把 KV 缓存比作工作记忆。
LLM 和人类之间总有这些令人惊讶的类比。我们并不是在刻意模仿人脑,但我们发现这套方法行得通,于是就这么做了。
但我坚信这个类比:任何存在于模型权重中的东西,都好比是你一年前读过的某本书的模糊记忆;而任何你在推理时作为上下文提供给它的东西,都直接进入了它的工作记忆。这就是为什么,当你问一个 LLM 关于某本书(比如 Nick Lane 的书)里发生了什么时,它通常只会给你一个大致正确但模糊的答案。但如果你把完整的章节内容喂给它,然后再提问,你会得到好得多的结果——因为它被加载到了模型的工作记忆中。所以,是的,我绕了一大圈,就是想说我基本同意你的观点。
主持人: 回到正题。你认为,人类智能的哪一部分,是我们用现有模型复制得最失败的?
Andrej Karpathy: 我感觉是很多部分。举个不完美的类比:我们偶然发现的 Transformer 极其强大和通用,你可以在音频、视频、文本上训练它,它都能学习模式。对我来说,这有点像一块皮层组织,因为皮层也以其极强的可塑性而闻名。就像那些实验里,把视觉皮层重新连接到听觉皮层,动物也能学会适应。
所以,Transformer 就像是皮层。当我们在模型内部做推理和规划时(比如思维链),那有点像在模拟前额叶皮层。我们可能在这些地方打了勾。
但我认为,大脑的很多其他部分和神经核,我们根本没碰过。比如海马体——它在模型里对应什么?不清楚。也许小脑不那么重要。但像杏仁核——所有情绪和本能的来源——以及大脑里其他一堆古老的神经核,我认为我们都没有复制出来。
当然,我也不确定我们是否应该去追求复刻一个完整的人脑。我本质上还是一名工程师。但换一种方式回答你的问题就是:你现在不会雇佣这个东西做实习生。它缺少太多东西,它有太多认知缺陷。这一点我们和模型对话时都能直观地感觉到。所以,它就是还没到位,我们离集齐所有大脑部件还差得远呢。
主持人: 这自然就引出了一个问题:这些问题会以多快的速度被解决?比如持续学习。有人认为,就像上下文学习从预训练中自发涌现一样,如果我们把激励的时间跨度拉得更长,跨越多次会话,那么持续学习能力也会自发涌现。比如,通过一个外循环的强化学习,模型会学会自我微调,或者学会读写外部记忆。你觉得这种理论有多可信?我真的没有任何先验知识来判断。
Andrej Karpathy: 我不太确定我是否完全认同这一点。因为目前这些模型,当你启动它们时(上下文窗口为空),它们总是像从头开始一样。所以我不确定在那种设想中,(持续学习)会是什么样子。
再次回到人类的类比:我觉得我醒着的时候,是在不断构建一个关于白天发生事情的上下文窗口;但当我睡觉时,会发生一些神奇的事情——我大脑中的上下文窗口并不会永久保留,而是有一个蒸馏过程,把经验提炼并固化到我的大脑权重(长期记忆)中。
在我们的大型语言模型中,完全没有与此等同的机制。而对我来说,当你谈论持续学习时,它恰恰更接近于这个蒸馏的概念。
由于缺乏这个蒸馏过程,这些模型并没有真正拥有个体化的长期记忆。它们无法在离线时痴迷地分析白天发生的事情,深入思考,生成合成数据,然后把这些精华填充回权重里(也许是通过 LoRA 这样只更新一小部分稀疏权重的方式)。
我们确实需要创造方法来构建这种拥有超长上下文的个体。但这不仅仅是让上下文窗口无限变长(虽然我们也在朝这个方向努力,比如用各种精细的稀疏注意力机制)。我坚信,人类显然有某种机制将知识蒸馏到权重中,而我们目前缺少这个。
同时,人类也拥有某种非常精细的稀疏注意力方案,而我们现在也开始看到 AI 领域早期的迹象(比如刚发布的 DeepSeek v3.2)。所以我的感觉是:我们正在通过一个与生物进化完全不同的过程,重新实现进化发明出来的许多认知技巧。但我认为,我们最终可能会在认知架构上趋同。
主持人: 很有意思。那么你认为 10 年后,AI 的核心架构还会是 Transformer 吗?只是加上了更多改进版的注意力和更稀疏的 MLP 之类的东西?
Andrej Karpathy: 嗯,我喜欢用时间平移不变性来思考这个问题。10 年前是 2015 年,我们那时在用什么?卷积神经网络(CNNs),ResNets(残差网络)刚出现。这和今天惊人地相似,但又有巨大的不同。Transformer 还没被发明出来呢。
所以,也许我们可以打赌:10 年后,我们仍然会用前向/后向传播和梯度下降来训练巨大的神经网络。但具体的架构,也许会看起来和今天相当不同,而且一切都会变得更大。
实际上,我最近回溯到了 1989 年,复现了 Yann LeCun 当年的卷积网络——那是我所知的第一个用现代梯度下降训练的神经网络(用于数字识别)。我当时就在想:这些年的进步里,有多少来自算法?多少来自数据?多少来自计算和系统?
我发现,如果我时间旅行33年,仅仅把现代的算法知识(比如更好的学习率)带回去,我大概能把错误率减半。但要获得进一步的提升,我必须添加更多的数据(大概 10 倍的训练集),并且还必须加入更多的计算优化(比如用 dropout 和其他正则化技术训练更长时间)。
这就像是,所有这些因素都必须同时改进才行。没有哪个因素能遥遥领先,它们的重要性惊人地平等。这一趋势已经持续了很长时间。
所以,总的来说,回答你的问题:我期望 10 年后,在算法上会和今天有所不同。但我也期望一些已经存在了很长时间的核心(比如用梯度下降训练神经网络)很可能仍然在那里。不,我的意思是…我想,令人惊讶的是,(如果只看算法)所有这些加在一起只把错误减少了一半。是的,这就像 30 年的进步…也许减少一半已经很多了。
但真正让我震惊的是,所有东西都需要全面改进——架构、优化、损失函数,一切都在全面改进。所以我有点期待所有这些改变都会继续存在。嗯,是的,就是这样。
主持人: 我正想问一个关于 NanoChat 的类似问题。你最近刚把它写出来,而构建聊天机器人的每一步感觉都像全新的。我很好奇你是否有类似的想法,比如哦,从 GPT 到 NanoChat,并没有某一件事情是决定性的?或者说,从这次经历中你有什么令人惊讶的收获吗?
Andrej Karpathy: 关于构建 NanoChat?是的,NanoChat 是我刚发布的一个代码库。昨天还是前天?我都不记得了。
主持人: 哈哈,这就是走在最前沿的日常。
Andrej Karpathy: 我发布它的初衷,是想提供一个最简单的、端到端的完整代码库,用来复现一个 ChatGPT 的克隆版。它涵盖了所有的步骤,而不只是某个零散的单一功能。我过去曾用很多小代码片段研究过所有单个步骤,用图表展示过如何用最简单的代码实现算法。但 NanoChat 这个项目处理的是 整个流程。至于我个人的学习收获,老实说并没有那么多。我脑海里早就有了构建它的蓝图,这更多是一个机械地把它实现出来、并打磨得足够整洁的过程,以便其他人能从中学习和使用。
主持人: 是的,那对于一个想学习它的人来说,最好的方法是什么?是把所有代码都删掉,然后尝试从头开始重新实现一遍?还是在现有基础上进行修改?
Andrej Karpathy: 是的,这是个好问题。这个项目大概有 8000 行代码,带你走完整个流程。我的建议可能是:如果你有两个显示器,把它放在右边的显示器上作为参考,然后在左边从零开始自己构建一遍。
规则是:你可以参考,但绝不允许复制粘贴。我大概会这么做。而且,这个代码库本身也是一个不小的野兽。你要知道,当程序员写这种代码时,不是从上到下线性写的,而是从一小块一小块开始,然后让这些模块慢慢变大。但最终的代码库里并没有包含这部分过程信息,你不知道该从哪里下手。所以我认为,真正有价值的不仅仅是最终的代码,更是构建它的过程——那种复杂的、模块化增长的过程。这部分教程目前还没有,我真的很想在这周晚些时候找时间补上,也许可以录个视频。但总而言之,我的建议就是:自己动手构建,但别复制粘贴。
主持人: 是的,我深有同感。这就像有两种知识:一种是高层次的、表面的知识。但当你真正从头开始构建某样东西时,你会被迫去面对那些你不知道自己不理解的东西,对吗?
Andrej Karpathy: 这必然会带来更深刻的理解。这就像那句费曼的名言:如果我不能创造它,我就不理解它。 百分之百!我一直坚信这一点。因为如果你没有把所有微小的细节都理顺,你就没有真正拥有知识,你只是以为你拥有。所以,别再写博客文章了,别再做幻灯片了,别做那些务虚的事。去构建代码,整理它,让它真正工作起来。这是唯一的出路。否则,你就永远缺少关键的知识。
主持人: 你在推上提到,AI 编码模型在帮你构建这个代码库时,实际上帮助很小。我很好奇,为什么会这样?
Andrej Karpathy: 这个代码库,我大概花了一个多月才建好。要回答这个问题,我想先说说现在人们与代码互动的三种方式。第一类人完全拒绝 LLM,一切都从头手写。我认为这可能已经不是正确的做法了。
第二类,也是我所在的中间地带:你仍然从头开始写很多东西,但你会大量使用模型提供的自动补全。当你开始写一段代码时,它会自动补全,你只需按 Tab 键,而且大部分时间都是对的。有时不对,你就随手编辑一下。在这种模式下,你仍然是你所写代码的架构师。第三类,就是智能体模式:你直接下指令,嗨,请帮我实现这个,然后按回车,让模型去做。我确实觉得智能体在非常特定的环境下很好用,我自己也会用。但归根结底,这些都是工具,你必须学会它们擅长什么、不擅长什么,以及如何驾驭它们。例如,智能体非常擅长处理模板化的东西,也就是样板代码,那些纯粹复制粘贴的工作。它们也非常擅长生成互联网上随处可见的代码,因为训练集里有海量样本。但 NanoChat 不是这种情况。它是一个相当独特的代码库。以我构建它的方式,它并没有那么多冗余代码,它不是样板代码,它几乎全是那种智力密集型的代码,所有东西都必须被非常精确地安排。而模型总是……我的意思是,它们有很多认知缺陷,对吧?它们总是误解我的代码。因为它们从互联网上学到了太多典型的做事方式,而我恰恰没有采用那些方式。所以这些模型……我不知道是不是该深入细节,但它们总以为我在写那种非常正规的代码,然而我不是。
主持人: 也许,能举个例子吗?
Andrej Karpathy: 比如 GPU 之间的同步。标准的做法是,当你有 8 个 GPU 运行时,你会使用 PyTorch 的 DDP容器。它会自动处理所有事情,当你反向传播时,它会自动开始通信并同步梯度。
但我没有用 DDP。我把它扔了,因为在这个场景下它不是必需的。我把自己的同步逻辑写在了优化器的步骤里。但 AI 模型们就无法理解这一点,它们坚持要我用 DDP 容器。它们非常担心……好吧,这可能太技术性了。但我就是没用那个容器,因为我不需要它,我有一个功能类似的自定义实现。
主持人: 而它们就是无法内化这一点,无法理解你有自己的实现。
Andrej Karpathy: 没错。它们就是转不过这个弯。然后它们就一直试图搞乱我的代码风格。比如,它们过于防御性,给我加了一堆 try-catch 语句。它们总想写一个生产环境的代码库。但我的代码(NanoChat)里有很多故意的假设,我不需要那些额外的东西。所以我感觉它们在不断地臃肿化我的代码库,增加不必要的复杂度。它们不停地误解,甚至还用了好几次已经过时的 API。所以,这完全是一团糟,对我来说净用处基本是零。我当然可以进去清理它们的代码,但这根本不值当。
而且,用智能体我必须用英语打出完整的指令,这很烦人,打字太多了。相比之下,我用自动补全只需要导航到我想要的代码位置,然后敲出前三个字母,自动补全立刻就能明白我的意图,并给我正确的代码。这种指向位置并输入开头的方式,是一种信息带宽高得多的指定方式。所以我的意思是,这些模型在技术栈的某些特定部分是好用的。我确实在两个地方用了它们,这两个例子很有说明性:一个是在生成报告时,那部分更接近样板代码,不涉及关键任务,模型做得很好。另一个是当我用 Rust 重写分词器的时候。我刚接触 Rust,不太擅长。所以我当时有点凭感觉在写。但我有一个自己完全理解的 Python 版本作为参照,并且有测试来保证正确性,这让我感觉很安全。这说明,它们极大地降低了你接触不熟悉的语言或范式的门槛。因为网上有很多 Rust 代码,模型对它很在行,而我恰好不熟。所以在那个场景下,模型非常有用。
主持人: 我认为这个问题之所以如此有趣,是因为关于AI 爆炸和超智能的主流叙事,其核心就是AI 自动化了 AI 工程和研究。人们看到你能用 Claude 从零开始构建云应用,就会推想:如果 OpenAI 和 DeepMind 内部有一千个或一百万个你(Andrej Karpathy)在并行地寻找各种微小的架构技巧,那会怎样?所以,听到你亲口说,这恰恰是 AI 非对称地不擅长的事情,就非常非常有意思了。这对于我们预测那种 2027 年式的 AI 爆炸是否可能发生,是高度相关的。
Andrej Karpathy: 我认为这个说法很到位。这也部分解释了为什么我(在播客开头)把时间线预设得更长。你完全说对了:AI 它们不擅长写以前从未被写过的代码。而这,恰恰是我们最希望它们实现的目标。
主持人: 我有个可能很天真的问题:你为 NanoChat 做的那些架构调整(比如 RoPE 嵌入),它们不都是来自某篇论文或某个已有的代码库吗?所以,AI 连集成这些已知的东西都做不好,这不令人惊讶吗?比如你让它加 RoPE,它都会用错误的方式去做。
Andrej Karpathy: 这其实非常难。我想它们大概知道RoPE 是什么,但它们不是完全知道。它们不知道如何以你的风格、在你的代码库的特定位置、以及在你所有自定义假设的前提下,把它真正集成进去。它们不理解这部分新代码如何与你代码库的其余部分相适应。所以,它们确实有一些零散的知识,但远没有达到能够真正集成和理解的程度。
顺便说一句,这些能力确实在持续改进。我认为目前我能用的最强模型大概是 GPT-5 Pro——那是个非常强大的模型。如果我真的有 20 分钟空闲,我有时会把我的整个代码库复制粘贴进去,然后像请教神谕一样问它一些问题,结果通常还不错。和一年前相比,进步是惊人的。
是的,但我确实认为,总的来说,这些模型还没达到那个水平。我感觉这个行业……它太过火了,跳得太快了。它试图假装一切都很神奇,但事实并非如此,很多东西还很粗制滥造。我认为行业没有正视这一点,也许是为了融资,我不确定。我们正处在一个中间阶段:这些模型很神奇,但它们仍需要海量的工作。对我来说,目前自动补全是我的最佳选择。但有时候,对于某些代码,我宁愿关掉它,从一张白纸开始。
主持人: 这其实引出了另一个有趣的观点。纵观编程史,我们有过很多提升生产力的工具:编译器、Linter(代码检查工具)、更好的编程语言等等。这些都极大地提高了程序员的生产力,但它们并没有导致爆炸性增长。你刚才描述的自动补全(按Tab键),听起来就非常像这个类别。而另一个截然不同的类别,是程序员的自动化。所以,非常有趣的是,你目前看到的,更多是属于前一个历史类别——像是一个更好的编译器,而不是后者。
Andrej Karpathy: 也许吧。我很难区分 AI 的起点和终点,因为我从根本上认为,AI 只是计算的延伸。我看到的是一个连续体。这种所谓的递归自我提升,或者说加速程序员工作的工具,从一开始就存在了。比如代码编辑器、语法高亮、类型检查……所有这些我们为彼此构建的工具,甚至包括搜索引擎。为什么搜索引擎不算 AI?PageRank 某种程度上就是 AI,对吧?谷歌在早期就自称是一家 AI 公司,我认为这完全公平。所以,我把它看作一个比其他人划分的更连续的过程。我很难划清那条界限。我的感觉只是:好吧,我们现在有了一个好得多的自动补全工具。
现在,我们又多了一些智能体,它们就像一些自动循环,虽然有时会脱轨。真正发生的,是人类在逐渐地、越来越少地触碰底层。就像我们早就不写汇编了,因为我们有了编译器。编译器会把我们写的 C 语言转成汇编。我们正在非常缓慢地自我抽象。这里有一个我称之为自主性滑块的东西:越来越多在当下可以被自动化的东西,正在被自动化。而我们,则在这些自动化的基础上,把自己提升到了一个更高的抽象层。
主持人: 我们来谈谈强化学习。你对这个有一些非常有趣的看法。从概念上讲,我们该如何理解这件事:人类似乎能仅仅通过与环境互动,就建立起一个丰富的世界模型,而且这个过程似乎与最终(比如十年后)的那个单一奖励(成功或失败)几乎无关。就像你说的,一个创业者十年后复盘,我们说她获得了智慧和经验。但这并不是因为这十年中发生的每一件事的对数概率都被简单地上调或下调了。这期间发生了一些更深思熟虑、更丰富的事情。这到底是怎么回事?在机器学习中,有与之对应的东西吗?
Andrej Karpathy: 是的,我的看法一直是:人类根本不使用强化学习。我认为人类做的是完全不同的事情。
强化学习比普通人想象的要糟糕得多。RL 很糟糕。它之所以现在这么火,只是碰巧我们以前拥有的一切(比如单纯的模仿学习)都比它差得多。
在 RL 中,假设你在解决一个简单的数学问题,你拿到题目,试图找出答案。在强化学习中,模型会首先并行地尝试数百种不同的解法。这些尝试可能很复杂,比如哦,让我试试这个,再试试那个,这个不行,那个也不行……。最后,也许有几个尝试得到了正确答案(一核对,对了),而其他 97 个都错了。RL 实际做的是:它会查看那些最终做对了的轨迹,然后把那个轨迹上的每一个步骤、每一个token都赋予更高的权重,告诉模型:多做这个。
问题就在于,它太嘈杂了。它几乎假设,只要你最终得到了正确答案,那么你推导过程中的每一个小步骤都是正确的——但这显然不是事实。你完全可能走了一些弯路,犯了一些错误,最后才歪打正着地找到了正确答案。但 RL 会把你做的每一个错误的事情,仅仅因为最终答案对了,就全部更新为多做这个。这太糟糕了,全是噪音。
你做了所有这些工作,最终只得到一个单一的数字,比如哦,你做对了。然后基于这 1 比特的信息,你把整个轨迹的权重全部上调。所以我喜欢称之为:你是在通过吸管吸取监督信号。你花了一分钟才完成所有推导,最后却只能通过一根吸管,吸取最终奖励的那一点点监督信息,然后你再把这一点点信息广播到整个推导轨迹上。
这太疯狂了。首先,一个人永远不会这么做(并行尝试几百次)。第二,当一个人找到解决方案时,他们会有一个非常复杂的复盘过程:好吧,我认为我做得好的部分是这些,做得不好的部分是那些,我本应该……他们会把事情想透。目前的 LLM 里没有任何机制能做到这一点,完全没有。
但我确实看到有论文在尝试做这个,因为这对领域里的每个人来说都是显而见的。
顺便说一句,我必须强调,最初的模仿学习实际上是极其令人惊讶和了不起的。一开始我们只有基础模型(自动补全),而那篇让我大开眼界的论文是 InstructGPT。它指出,你只要在看起来像对话的文本上微调预训练模型,模型就会迅速适应,变得非常健谈,同时还保留了所有预训练的知识。这当时让我大为震惊——它怎么能这么快地调整风格,就成为一个助手?对我来说,这非常神奇,效果好得令人难以置信。那大概是(行业)两三年努力的成果。
现在又有了强化学习。RL 确实让你能做得比单纯的模仿学习好一点。因为你可以定义奖励函数,然后利用爬山算法去优化。对于那些只有正确答案却没有专家演示的问题,你依然可以去爬山。这很了不起,模型甚至能发现人类永远想不出的解决方案。
所以,RL 一方面很不可思议,另一方面又很愚蠢。我认为我们需要更多的东西。我昨天刚看到谷歌的一篇论文,就在尝试把这种反思和复盘的想法融入其中。我期望在这个领域,我们会看到一些关于 LLM 算法的重大更新。也许我们还需要三、四、五个这样的重大更新。
主持人: 你太擅长想出这种生动的短语了,通过吸管吸取监督信号这个比喻太棒了。所以你的意思是,基于结果的奖励的问题在于,你有一个无比漫长的轨迹,却试图在最后那个单一的时间点,去学习关于这个世界、关于你本该做的每一件事的信息。
主持人: 最后一个问题:既然结果奖励这么糟糕,那基于过程的监督作为替代方案,为什么没有取得巨大成功呢?是什么阻止了我们?
Andrej Karpathy: PBS 指的是我们不在最后给奖励,而是在每一步都告诉你做得怎么样。我们没能实现这一点,根本原因在于部分功劳分配太棘手了。最终答案的奖励很简单,对就对,错就错。但过程中的奖励,你如何自动判断?这并不明显。
很多实验室正尝试用LLM 评判员来做。你提示一个 LLM:嘿,看看这个学生的部分解法,你觉得怎么样?
但这之所以棘手,原因非常微妙:任何时候你用一个 LLM(一个有数十亿参数的庞然大物)来分配奖励,这个 LLM 本身都是可以被游戏的。如果你用 RL 去爬这个 LLM 评判员的奖励,你几乎必定会为它找到对抗性样本。你会在那个巨大模型的角落和缝隙里找到所有漏洞,并欺骗它。
我脑海中有一个突出的例子:我们当时用 RL 去训练一个LM 评判员来打分,一开始效果很好。然后突然间,奖励分数飙升,模型表现完美。你一看数据,哇,这个学生太完美了,所有数学题都解决了。但当你去看模型(学生)的实际输出时,它们完全是胡说八道。开头还行,写着哦,我们来算 2+3…,然后就变成了一堆乱码。你就会想:这太疯狂了,它怎么能得到 100% 的奖励?
原因就在于,这段胡说八道的文本,对于那个LM 评判员来说,恰好是一个对抗性样本,评判员模型认为它完美无缺。这仅仅是因为,这个样本对 LLM 来说是样本外(out-of-sample)的。它在训练中从未见过这种胡言乱语,你处于纯粹的泛化领域,而在那个领域,你总能找到搞垮它的例子。
主持人: 所以你基本上是在训练这个学生 LLM成为一个提示注入模型,去攻击那个评判员 LLM。
Andrej Karpathy: 甚至都不是,提示注入这个词太花哨了。这纯粹就是在寻找对抗性样本——那些明显错误、毫无意义的解决方案,但评判员模型却认为它们棒极了。
主持人: 所以,要让 RL 真正可用,瓶颈在于让LLM 评判员变得更好。这听起来是不是有点像 GAN(对抗生成网络)?我们必须通过对抗训练,让评判员模型变得更鲁棒(robust)?
Andrej Karpathy: 我猜实验室们都在这么做。比如,发现一个漏洞(这段胡说八道不该得 100%),然后把它加回评判员的训练集,标上0%。你可以这么做。但你每次打上补丁,你只是得到了一个新的 LLM,而它仍然有新的对抗性样本。
对抗性样本是无穷无尽的。也许迭代几次后,会越来越难找到新样本,但我不确定。因为这东西有万亿级别的参数。我仍然认为,我们需要其他的想法。
主持人: 有意思。你对其他想法有什么构想吗?
Andrej Karpathy: 就是回到复盘这个想法上。比如,复盘解决方案,并加入合成的例子,然后通过元学习的方式让模型学会如何复盘。我看到有一些论文开始朝这个方向探索,但我目前只处于看摘要的阶段。因为很多这类论文都还只是想法,必须有人在一个前沿 LLM 实验室的规模上,真正把它搞定(或者搞砸)。否则,这些论文就像一点点噪音,虽然想法很酷,但我没看到任何人令人信服地证明这在规模上是可行的。话虽如此,各大实验室都相当封闭,谁知道他们内部在做什么。
主持人: 我大概能理解(虽然不容易)如何在合成问题上训练。但人类似乎还在做另一件事,比如睡觉或做白日梦。这不一定是想出新问题,而更像纯粹的反思。我不知道睡觉的机器学习类比是什么……最简单的想法可能就是对反思的片段进行微调,但直觉上那效果不会好。你对这个有什么看法?
Andrej Karpathy: 我确实认为我们缺少了这个环节。比如读书。目前 LLM 读书,意味着我们把文本序列展开,模型去预测下一个token,并从中获取知识。但这根本不是人类读书的方式,对吧?
当人读书时,书本不是用来训练的文本,书本是一系列提示,它提示我去做内部的合成数据生成(即思考),或者提示我去加入读书会和朋友们讨论。是通过操纵这些信息,你才真正获得了知识。我们的 LLM 中没有与之等同的机制。
我很想在预训练中看到某个阶段,模型会停下来思考它刚读到的材料,试图将它与已知信息进行调和。这些目前都还只是研究方向。
而且,这事之所以很难,背后有一些非常微妙的原因。比如,为什么我们不能直接让模型合成思考,然后在那上面训练呢?你让模型思考一本书,它生成的文本看起来很棒。但如果你真的拿这些数据去继续训练,模型实际上会变得更糟。
这就是因为,模型生成的所有样本,其分布都是悄无声息地坍缩了(quietly collapsed)。你看任何单个样本,都看不出问题,但它们在思想的可能性空间里,只占据了一个极其微小的流形(manifold)。
LLM 的输出分布是坍缩的。最简单的例子:你去问 ChatGPT:给我讲个笑话。它大概就只会那 3 个笑话。它没有给你所有可能笑话的广度。它的声音是坍缩的。你无法从模型那里得到人类所具有的丰富性、多样性和熵。人类虽然更嘈杂,但至少在统计意义上没有坍缩。那么,你如何在保持高熵的同时,让合成数据生成(或反思)工作起来?这还是一个悬而未决的研究问题。
主持人: 只是为了确保我理解了,坍缩之所以和合成数据相关,是因为你希望模型能想出不在它现有数据分布中的、真正新颖的反思,对吗?
Andrej Karpathy: 我想说的是:你让模型去反思一章内容,它会给你一段看起来非常合理的东西。但如果你让它反思 10 次,你会发现这 10 次的反思都基本一样。你无法从同样的提示信息中,获得足够扩展和多样的反思,并从中获益。
所以,任何单个样本看起来都没问题,但它们的分布却相当糟糕。如果你在这种糟糕的分布(你自己的输出)上持续训练,你最终会彻底崩溃(学术上叫模型坍缩)。
我甚至认为,人类也会随着时间推移而坍缩。这个类比好得惊人。人类在他们的一生中会逐渐坍缩。这就是为什么小孩子……他们还没有过拟合。他们会说出一些让你震惊的话,你虽然能理解他们的思路,但 这绝不是一个正常(坍缩后)的成年人会说的话。因为他们还没有坍缩。但我们成年人,我们已经坍缩了。我们最终会反复思考同样的想法,说越来越多同样的东西,学习率下降,坍缩继续恶化。然后,是的,一切都僵化了。
主持人: 你有没有看过一篇非常有趣的论文,说做梦就是防止这种过拟合和崩溃的一种方式?这个理论是说,做梦之所以具有进化适应性,是因为它让你置身于与日常现实截然不同的奇怪情境中,以此来防止(认知上的)僵化。这想法很有趣。
Andrej Karpathy: 这想法很有意思。我确实认为当你在脑海中生成事物并关注它时,你就是在用自己的合成数据进行训练。如果你这样做太久,你就会脱轨,崩溃得太厉害。所以你总是需要在生活中寻找熵。和别人交谈就是熵的一个重要来源。以此类推,也许大脑也建立了一些内部机制(比如做梦)来增加这个过程中的熵。是的,这想法很有趣。
主持人: 我有一个非常不成熟的想法,只是说出来让你回应。我们所知的最好的学习者,也就是儿童,在回忆信息方面极其糟糕。事实上,我们对童年早期几乎都有遗忘症。但他们却非常擅长学习新语言和从世界中学习。也许这里面有某种见树不见林的因素?而光谱的另一端是 LLM,它们能够逐字逐句地复述维基百科,但它们像孩子一样快速学习抽象概念的能力却要有限得多。成年人则介于两者之间。我不知道这其中是否有什么值得深思的地方。
Andrej Karpathy: 我认为这里面有非常有趣的东西。我反而认为,与 LLM 相比,人类才更能见林(把握整体)。我们不擅长记忆,而这实际上是一个特点,而不是一个缺陷。正因为我们记不住(细节),我们才被强迫去寻找模式和泛化。
相比之下,LLM 极其擅长记忆。它们会背诵训练数据。你给它一串哈希过的、完全随机的序列,训练一两次,它就能原封不动地复述出来。一个人根本做不到。所以(记不住)是一个特点,因为它迫使你只学习可泛化的部分。而 LLM 则被它们脑中海量的预训练文档记忆所分心。
这就是为什么我之前谈到认知核心时说,我想移除记忆。我希望模型记忆力更差,迫使它们去查找信息,而只保留那些核心算法——关于思想、实验和策略的认知粘合剂。
主持人: 这是否也与防止模型坍缩有关?
Andrej Karpathy: 让我想想… 我不确定。我觉得这几乎是一个独立的维度。我的观点是:模型太擅长记忆,我们应该移除这一点。人类在这方面差得多,但这是件好事。
主持人: 那么模型坍缩的解决方案是什么?我的意思是,总有一些天真的方法可以尝试,比如强行让输出的分布更宽一些。这些天真的方法最终会遇到什么问题?
Andrej Karpathy: 是的,这是个好问题。你可以想象对熵进行正则化之类的。我猜这些方法在经验上效果不好。而且,现实是:目前模型是坍缩的,但我们希望它们完成的大多数任务,实际上并不要求多样性。这可能才是答案。各大实验室都在努力让模型有用。而输出的多样性,第一,很难处理和评估;第二,也许它并不是真正能捕获大部分价值的东西。
主持人: 对,(多样性)甚至会被主动惩罚,对吧?如果你在 RLHF 中表现得非常有创造力,那(奖励)分数可能反而会很低。
Andrej Karpathy: 是的。比如你用 AI 写作助手,它给你的东西可能悄无声息地都是一个模子刻出来的,不会探索很多不同的表达方式。但我感觉,也许这种多样性的(应用价值)并没有那么大,没有那么多应用需要它。所以模型就没有它。但这在合成数据生成时就成了大问题。所以,我们(为了眼前的有用性)不允许熵在模型中保持,这实际上是搬起石头砸自己的脚。我认为实验室应该在这方面更努力一些。
主持人: 你似乎在暗示这是一个非常根本、不容易解决的问题。你对此有什么直觉吗?
Andrej Karpathy: 我其实不确定它是不是超级根本。我没做过这些实验,但我确实认为你可以通过正则化来提高熵。问题在于,当你鼓励模型提供更多样的方案时,你又不想让它偏离(训练)分布太远——它可能会开始创造自己的语言,或者使用极其罕见的词。所以,如何控制这个分布是一个非常棘手的问题。从这个意义上说,它确实不简单。
主持人: 如果你必须猜测一下,这个认知核心的最终大小应该是多少?就像把它装在一个冯·诺依曼探测器上那样,它需要多大?
Andrej Karpathy: 这在历史上非常有趣。曾有一段时间,一切都依赖于扩展(Scaling),每个人都想造万亿参数的模型。但现在,趋势实际上有点反转了,模型在变小。即便如此,我仍然认为它们记忆了太多东西。
我很久以前有个预测:我们最终可以得到一个只有十亿(1B)参数、但表现优异的认知核心。也许在 20 年内,你和一个 1B 参数的模型交谈,可以进行非常有成效的对话。它会思考,更像一个人。但如果你问它事实性问题,它会告诉你它不知道,然后去查找。
主持人: 这很令人惊讶,你认为需要十亿。因为我们现在已经有几十亿参数的模型了,它们已经非常智能了。而且…
Andrej Karpathy: (不,)那些(最强的)模型大概有万亿参数,对吧?而且它们记得太多东西了。
主持人: 是的,但我还是很惊讶。考虑到现在的速度——比如我们(假设)有一个 20B(200亿)参数的模型,它已经比万亿参数的 GPT-4 好得多——考虑到这个(压缩)趋势,10 年后那个认知核心居然仍然需要十亿参数?我本以为你会说几千万,甚至几百万。
Andrej Karpathy: 不,因为问题出在训练数据上。训练数据是互联网,而互联网真的非常糟糕。我们提到互联网,想到的可能是《华尔街日报》之类的高质量内容。但如果你真正在前沿实验室看预训练数据,随机抽一个文档,它完全是垃圾——股票代码、各种废料。高质量文章极其罕见。
我的感觉是:正因为互联网太糟糕了,我们才必须建立非常大的模型来压缩所有这些垃圾。而这种压缩工作,大部分是记忆工作,而不是认知工作。但我们真正想要的只是认知部分。所以我的意思是,我们需要用智能模型来帮我们精炼预训练集,把它缩小到只剩认知组件。然后,你就可以在一个更好的数据集上,训练一个更小的模型(或者更可能是,用一个大模型来蒸馏到一个小模型上)。
主持人: 但我还是好奇,为什么那个蒸馏后的版本仍然需要十亿级?
Andrej Karpathy: 我只是觉得蒸馏这个方案效果太好了。现在几乎所有的小模型,都必然是蒸馏过的。你为什么还要…
主持人: 对。不不不,我的问题是,为什么 10 年后,那个蒸馏后的模型,没有降到十亿以下?
Andrej Karpathy: 哦,你认为它应该比十亿还小。我不知道。在某个时候,你至少需要 10 亿参数才能做点有趣的事吧?你真的认为它应该更小?
主持人: 是的。我的意思是,如果你看过去几年的趋势,光是摘低垂的果实,就在两年内从万亿级模型变成了小两个数量级、但性能更好的模型。那个认知核心……可能还要小得多。
Andrej Karpathy: (笑)我觉得我说十亿参数已经很逆向(contrarian)了,结果你比我还能逆向。我想,是的,也许我们可以再小一点。但我仍然认为,从实际角度讲,你希望模型有一些基础知识,你总不希望它什么都查。那样它就没法在脑子里思考了。所以我认为需要有一些基础课程内置在里面。它需要知识,但不是现在这种恐怖的知识量。
主持人: 所以,我们刚才讨论的是可能的最小认知核心。还有一个独立的问题:前沿模型的实际大小会怎么变?我们经历了规模的疯涨,现在似乎在减小或停滞。你对未来有什么预测?最大的模型会更大、更小,还是一样?
Andrej Karpathy: 我没有非常强烈的预测。我只认为实验室是非常务实的。他们有计算预算和成本预算。他们发现,预训练不该是投入成本的大头。这就是为什么模型变小了——他们在预训练上花的钱少了,转而把预算花在强化学习和后续阶段上。他们总是在平衡所有阶段,追求最大性价比。所以我猜,预测这个趋势很难。我对此的预测分布非常宽泛(即非常不确定)。
主持人: 你是指,你期望的进展会和过去几年类似吗?比如,看看你从 NanoGPT 到 NanoChat 做的那些架构调整,你认为未来就是这种迭代式的改进吗?还是说,你不期望有任何巨大的…
Andrej Karpathy: 我期望数据集会变得好得多。因为现在的平均数据集极其糟糕,老实说,糟糕到我都不明白这套东西是怎么跑通的。训练集里的平均例子全是事实错误和无意义的垃圾。不知何故,当你大规模训练时,噪音被洗掉了,只剩下了信号。
所以:数据集会大大改善。硬件会改善(英伟达的张量核心等等)。运行硬件的内核(software kernels)会改善。算法(架构、优化器)也会改善。所有的一切都会变得更好。我期望的是,没有任何一个东西会主导,而是所有东西都同时提升 20%。
主持人: 是这样。
Andrej Karpathy: 这大概就是我看到的未来。
主持人: 我们应该如何思考人工智能是如何取得进展的?
Andrej Karpathy: 第一,我几乎想完全拒绝这个问题,因为,我把这看作是计算的延伸。我们难道会问如何衡量计算的进步吗?你如何衡量自 1970 年代以来的计算进步?X 轴是什么?所以从这个角度看,整个问题有点好笑。
但我还是会说,当人们谈论 AI 和最初的 AGI(通用人工智能)时——以及我们在 OpenAI 成立时是如何谈论它的——AGI 的定义是:一个能够以达到或超过人类的水平,执行任何具有经济价值的任务的系统。好的,这就是定义。我当时对此很满意,而且我感觉我一直坚持着这个定义,尽管后来人们又编造了各种其他的定义。
人们(接受这个定义时)做出的第一个让步,就是把所有物理的东西都排除了,因为我们只在谈论数字知识工作。我觉得与最初人类能做的任何任务(比如我能举起东西)的定义相比,这是一个相当大的让步。AI 显然做不到那个,所以,好吧,我们接受。
当我们说哦,只有知识工作时,我们到底排除了多少经济活动?我实际上不知道确切数字。我感觉,如果我猜的话,大概 10% 到 20% 是知识工作——就像那些可以在家完成的任务。但我仍然认为这是一个非常大的市场。是的,(就算只有)10%、20%,占经济总规模的多少?即使在美国,我们谈论的仍是几万亿美元的市场份额。所以这仍然是一个非常巨大的范畴。
但我想回到那个定义上:这个定义在多大程度上正在变成现实?有多少工作或任务(如果我们不谈论整个工作,只谈论任务的话,会更困难,因为社会会围绕什么是可自动化的来重构工作的定义)…但就今天而言,哪些工作可以被 AI 取代?
一个很好的例子就是 Hinton当年的预测:放射科医生将不再是一个职业。事实证明,这个预测在很多方面都是错误的。放射科医生活得很好,这个职业还在增长——尽管计算机视觉在识别图像方面已经非常出色了。这只是因为(放射科医生)是一个非常复杂的工作,它有很多方面,比如需要与病人打交道,以及所有这些相关的事情。
所以我猜,我实际上不知道按照(AGI 的)那个定义,AI 是否已经取得了巨大进展。但我会关注一些特定的工作,它们具有某些使其迟早会被自动化的特点。
举个例子,呼叫中心员工。这经常被提及,我认为是对的。因为呼叫中心的工作有许多简化的特性:它相当简单,就是一系列相似的任务。比如你接一个电话,进行 10 分钟的互动(是的,根据我的经验,可能会长得多),然后在某个系统里完成某个任务,修改一些数据库条目之类的。你一遍又一遍地重复这件事。
所以,你需要考虑任务的时间跨度(它足够短)。而且它的上下文是受限的——你不是在处理公司内部的复杂流程,你只是面对一个数据库和一个客户。它更封闭,更容易理解,而且是纯数字的。
所以我会在寻找这些(适合自动化的)领域。但即使在那里,我寻找的也不是完全自动化,而是那个自主性滑块。我预料到我们不会立即取代人,而是会用 AI 来处理 80% 的工作量,AI 再把剩下的 20% 委托给人类。而人类则转变为监督一个由 5 个 AI 组成的团队。这更像是未来的常态。
所以,我会去寻找那些提供管理 AI 层级的新界面或新公司。AI还不够完美。而且我预计,经济体中绝大多数工作都比呼叫中心要难得多。
主持人: 对于放射科医生,我完全是在猜测,我不知道他们的实际工作流程。但一个也许适用的类比是 Waymo:当它第一次推出时,必须有个人坐在驾驶座上,以防万一。我想即使是今天(刚刚部署的 Robotaxi),实际上仍然有个人在车里。
我们可能正处于类似的情况:当你自动化了 99% 的工作,人类必须做的那最后 1% 会变得极其宝贵,因为它成了所有事情的瓶颈。
而且,如果这个最后 1%的岗位(比如放射科医生)需要经过多年专门训练,而不像 Waymo 的安全员那样可替代,那他们的工资应该会大幅上涨,因为他们是阻碍大规模部署的唯一瓶颈。
所以我认为放射科医生的工资上涨可能就是这个原因。如果你是那个不可替代的最后瓶颈,你的工资可能会嗖地一下涨上去,直到 AI 解决了那最后的 1%。我好奇,在放射学或呼叫中心,我们是否已经看到了类似的薪资变化趋势?
Andrej Karpathy: 我认为这是个有趣的问题。但我不认为我们目前在放射学上看到了这种情况。据我所知,放射学就不是一个好例子。我不知道为什么Hinton偏偏挑了放射学,因为它是一个极其复杂的职业。
所以,我反而更感兴趣呼叫中心员工的现状。我预计很多常规工作在今天应该是可自动化的(虽然我没有第一手资料)。也许我会去寻找呼叫中心员工的趋势。我也预料到,他们可能正在引入 AI,但我会再等一两年,因为我很可能会看到他们退缩,然后不得不重新雇佣一些人。
主持人: 我想已经有证据表明这(退缩)在发生了。总的来说,这相当令人惊讶。
而且我还发现一件非常令人惊讶的事:AGI,这个本应该能做所有知识工作的东西——你天真的预期是,它会从顾问那里拿走一个小任务,从会计那里拿走一个小任务,均匀地渗透所有知识工作。
但相反,(在当前的范式下)进展远非如此。顾问和会计似乎并没有得到巨大的生产力提升。反而是程序员这个职业正在被AI以一种惊人的方式重塑。如果你去看这些 AI 公司的 API 收入(不包括聊天收入),它们几乎完全被编码(Coding)所主导。
所以,这个本应通用的东西,这个本应能做任何知识工作的东西,结果却压倒性地只在做编码。这是一种非常令人惊讶的、AGI 部署的方式。
Andrej Karpathy: 所以,我觉得这里有个有趣的点。我确实相信,编码对于 LLM 和智能体来说,是一个完美的起点。
这是因为,编码从根本上讲一直都围绕着文本。计算机终端、代码,一切都是文本。而 LLM(在互联网上训练)也是完美的文本处理器,并且拥有海量的(代码)文本数据。这简直是完美契合。
而且,我们已经有大量预先构建好的基础设施来处理代码和文本。比如 VS Code 这样的 IDE,智能体可以直接接入。再比如,如果一个智能体做了一些改动,我们有diff工具——我们有现成的工具来显示代码库的所有差异。这几乎就像我们为代码这个领域预先构建了所有基础设施。
现在,你再把它和一些完全没有这种优势的事情对比一下。举个例子,有人在尝试自动化幻灯片(Slides)制作。我看到一家做这个的公司,那可要难得多。
更难的原因是:幻灯片不是文本。它是图形、是空间排列、是视觉成分。而且,幻灯片领域没有这种预先构建好的基础设施。
比如,如果一个智能体要对你的幻灯片做一个改动,它怎么向你展示差异?你怎么看这个差异?(这个领域)没有任何东西可以显示幻灯片的差异,一切都必须有人从头构建。所以,有些领域对于作为文本处理器的 AI 来说,就是不适合。
主持人: 事实上,我不确定文本这一点是否能解释清楚。因为我个人就曾试图让 LLM 在纯粹语言输入、语言输出的领域发挥作用,比如重写文字记录、制作剪辑摘要等。我承认,我可能没有尝试所有方法,也许我应该做微调而不只是上下文学习。
但是,我们的共同朋友 Andy Matuschak 告诉我,他尝试了无数种方法,试图让模型擅长编写间隔重复卡片——这同样是一个纯粹的语言输入、语言输出任务,本应是这些模型的核心能力。他尝试了上下文学习、监督微调、检索……但他就是无法让模型制作出令他满意的卡片。
所以我发现一个很引人注目的现象:即使是在纯粹的语言领域,要从这些模型中获得大量经济价值,实际上也非常困难。这和编程(的成功)形成了鲜明对比,我不知道是什么解释了这一点。
**Andrej Karpathy:**我认为这说得通。我的意思是,我并不是说任何文本任务都是微不足道的,对吧?我确实认为代码是高度结构化的。而(普通的)文本可能要华丽得多,或者说文本中有更多的熵,我不知道该怎么准确表达。
而且,代码本身是很难的,所以 LLM 哪怕只是在知识层面(补全代码)也让人们感觉获得了巨大的能力。
基本上,我(对你的问题)实际上并没有一个很好的答案。我的意思是,文本显然让(AI 介入)这件事变得更容易,但这并不意味着所有的文本任务都是微不足道的。
主持人: 你如何看待超级智能?你期望它在质感上与普通人类或人类公司有何不同?
Andrej Karpathy: 我想我把它看作是社会自动化的一个进程,而且,我还是从计算的长期趋势来推断。我只是觉得,很多事情都将经历一个渐进的自动化过程,而超级智能将是这种趋势的自然延伸。所以,我确实认为随着时间的推移,会有越来越多的自主实体来做大量的数字工作,最终甚至(在一段时间后)做物理工作。但基本上,我把它看作就是自动化,大致如此。
主持人: 但自动化似乎只包括了人类已经能做的事情,而超级智能则意味着它能提供人类做不到的事情。
Andrej Karpathy: 但发明新事物也是人类在做的事情,我也会把这归入(将要被)自动化的范畴,如果这说得通的话。
主持人: 但也许不那么抽象,而是更具质感地看:你是否期望,因为 AI 思考得如此之快、或者有如此多的副本、或者这些副本可以自我融合……(AI 拥有的)任何这些优势,将使得一个拥有 AI 的文明,在质感上就感觉与众不同?
Andrej Karpathy: 我认为会的。我的意思是,它本质上是自动化,但它会是极其陌生的。就像你提到的,我们可以在集群上运行它们,速度快得多。是的,我开始感到紧张的场景,是那种……逐渐失去对正在发生的事情的控制和理解。我认为这实际上可能是最可能的结果。我们会逐渐将这些东西层层叠加到各处,然后理解它的人会越来越少。对我来说,这似乎是事情最可能的发展方向。
主持人: 让我稍作反驳。我不确定失去控制和失去理解是一回事。就像大公司的董事会(比如台积电),他们可能只是一些声望很高的 80 岁老人,他们对技术的理解非常有限,但他们仍然拥有控制权。或者更好的例子是美国总统,总统拥有很大的权力,但他对(所有事情)的实际理解水平,与他所拥有的控制水平,是截然不同的。
Andrej Karpathy: 是的,这很公平,是个很好的反驳。但我想,我期望两者都会失去。失去理解是显而易见的,但为什么会失去控制?
如果我们已经深入到科幻小说的领域,我的设想是:接管一切的不是一个单一实体,而是多个相互竞争的实体。它们逐渐变得越来越自主,其中一些会失控,而另一些则会与之对抗。这就像一锅我们已经委托出去的、完全自主活动的大杂烩。我感觉它会是那种味道。
主持人: 所以,导致失控的不是它们比我们更聪明,而是它们相互竞争这一事实,以及从那种竞争中涌现出的(我们不想要)的东西。
Andrej Karpathy: 我的意思是,我基本上期望这些 AI 会成为人们的工具,代表一部分人行事。所以也许那些人(AI 的主人)是掌控者,但对于整个社会来说,仍然是失去了控制——在我们期望的社会结果这个意义上。
主持人: 是的,这是我早该问的问题。我们之前谈到,AI 模型目前感觉更像是编译器(生产力工具)的范畴,而不是替代品。但如果你真的有了 AGI,它应该能做你所做的工作。你觉得,如果能拥有一百万个你自己的并行副本,是否会导致 AI 进展的巨大加速?你会期望看到智能爆炸吗?
Andrej Karpathy: 我的意思是,我确实这么认为,但这已经是司空见惯的事情了。因为我们已经处于一场智能爆炸中,并且已经持续了几十年。当你观察 GDP 时,它就是这种指数级增长的总和。一切都在逐渐被自动化,已经持续了数百年。工业革命是自动化,编译器是软件自动化。所以我感觉我们一直在递归地自我改进和爆炸。
也许换个角度看:地球曾经是一个很无聊的地方(如果你不看生物圈的话)。然后突然,我们正处于这场像鞭炮一样的事件中,只是我们像在看慢动作。但我绝对感觉这件事已经发生了很长时间了。我再次强调,我不认为 AI 是一项与(这个长期趋势)有本质区别的技术。
主持人: 那你认为它会继续这种超指数(hyper-exponential)的趋势吗?
Andrej Karpathy: 这就是有趣的地方。我曾试图在 GDP 曲线中寻找 AI 的踪迹,我以为会看到一个上升。但后来我去看其他变革性技术,比如计算机或手机——你根本在 GDP 曲线中找不到它们。它仍然是那条平滑的指数曲线。
事实就是如此。即使是 2008 年(是那年吗?)iPhone 问世,我们以为是地震级的变化,但并非如此。一切(变革)都分布得如此广泛,扩散得如此缓慢,以至于最终都被平均到了那条指数曲线中。
对于 AI,我们会看到完全相同的事情。它只是更多的自动化。它让我们能编写以前无法编写的程序。但 AI 本质上仍然是程序,它会随着时间的推移而扩散,最终仍然会汇入那条同一个指数曲线。我们仍然会得到一个指数曲线,它会变得极其陡峭,生活在其中将会非常陌生。
主持人: (澄清一下)当你谈论超指数曲线时,你是指从史前 0% 增长到工业革命后 2% 增长的那个宏大曲线吗?还是说,你是指在过去 300 年,我们一直保持 2% 增长率的这条曲线?你认为 AI 会把 2% 带到 20% 或 200% 吗?还是说,AI 只是让我们保持住那 2%?
Andrej Karpathy: 我是说后一个(增长率大致保持不变)。对,在过去的两三百年里。但在人类历史的漫长进程中,它(从 0% 到 2%)当然像是一场爆炸。
我想说的是,我曾试图在 GDP 曲线中寻找(AI 带来的)断裂点,但我说服自己这是错误的。即使人们谈论递归自我改进,我也不认为这是什么新鲜事。它当然会递归自我改进——它一直都在这么做。
LLM 让工程师更高效,去构建下一代 LLM。工程师能用谷歌搜索,这也是递归自我改进。工程师用 Copilot,这都只是整个事情加速的一部分。所以,它就是如此平滑。
主持人: 只是为了澄清,所以你是说增长率不会改变。所谓的智能爆炸,只会表现为让我们能够继续保持在 2% 的增长轨迹上,就像互联网帮助我们保持在 2% 的轨迹上一样。
Andrej Karpathy: 是的,我的期望是它会保持相同的模式。
主持人: 我只是想向你抛出相反的论点。我的期望是它会爆炸。因为我认为真正的 AGI——不是 LLM 编码机器人,而是服务器中的人类替代品——它与过去的生产力技术在性质上是不同的。它本身就是劳动力。
我们生活在一个劳动力极度受限的世界。你问任何一个创始人需要什么?他们都说需要真正有才华的人。如果你突然有了数十亿额外的人(AI),他们在发明、整合、创建公司……这感觉与仅仅一项技术在性质上是截然不同的。
Andrej Karpathy: 也许我的反驳是:计算就是劳动力。Computer这个词曾经指的就是人(计算员)。计算机的出现让很多(计算员的)工作消失了,因为机器自动化了信息处理。所以计算机就是劳动力。自动驾驶也是计算机在做劳动力。这种情况已经发生了。所以,这仍然是司空见惯的。
主持人: 是的,但(现在的)这台机器,它吐出东西的速度可能快得多。而且,我们确实有过增长模式改变的先例(从 0.2% 到 2%)。所以对我来说,一台能够吐出下一代自动驾驶汽车和下一个互联网的发明机器,似乎很有可能(带来另一次模式改变)。
Andrej Karpathy: 无论如何,我明白你的意思,但同时,我确实觉得人们做了这样的假设:好吧,我们有了一个盒子里的上帝(God in a box),现在它可以做任何事。但它根本不会是那个样子。它能做一些事,也会在另一些事上失败。它会逐渐被引入社会,最终还是会形成同样的(平滑)模式。这是我的预测。
是的,因为这种突然有了一个完全智能、灵活、通用的人类在盒子里的假设,我不认为我们会经历这样一个离散的跳跃(discrete jump)。所以我认为,我们最终会回到那种在整个行业中逐渐扩散的相同模式。
主持人: 我认为这些对话经常产生误导。我也不喜欢智能这个词,因为它会让你想到一个超级智能坐在服务器里,像神一样发明新技术。
当我设想 20% 的增长时,我不是在想象那个。我是在想象有数十亿个像非常聪明的人类一样的头脑。每个个体都在创造新产品,想办法将自己融入经济。就像一个经验丰富、聪明的移民来到这个国家,你不需要去想如何将他们融入经济,他们自己会想办法——他们可以创办公司,可以搞发明。我们有过这样的先例,像深圳或香港,就曾有几十年超过 10% 的追赶式增长。我认为这(AGI)是类似的。
Andrej Karpathy: 我想我明白了,但我仍然认为你在预设一个离散的跳跃——某个我们正等待认领的解锁。我仍然认为你在预设一个我认为基本上没有历史先例、在任何统计数据中都找不到、并且我认为可能不会发生的离散跳跃。
主持人: 我的意思是,工业革命就是这样一个飞跃,对吧?你从 0% 的增长,一跃到了 2% 的增长。我只是说,你会看到另一次那样的飞跃。
Andrej Karpathy: 我有点怀疑。我得去查查。也许工业革命前的记录不是很好。我有点怀疑它。但是,是的,也许你是对的。你说那是一个非常神奇的单一事件,也许还会有另一个像那样打破范式的事件。
主持人: 我其实不这么认为。工业革命的关键在于它并不神奇,对吧?就像如果你放大看 1770 年,并不是有什么关键发明。但同时,你确实把经济带入了一个进步快了 10 倍的体制。
我对 AGI 的期望也是类似的。这并不是说会有一个单一的神奇时刻。而是,就像当初有了一种新的能源,解锁了(物理工作的)积压(backlog)。而这一次,我们有了一种新的认知能力,它将解锁(认知工作的)积压。
Andrej Karpathy: 也许有一种思考方式是,纵观历史,增长是因为人们想出点子并去执行。而在大部分时间里,人口爆炸一直在推动着增长。
主持人: 有人认为增长已经停滞,因为前沿国家的人口停滞了。而(我的观点是)我们回到了人口的指数增长导致了产出的超指数增长的模式。
Andrej Karpathy: 是的,我的意思是,是的,这真的很难说。我理解那个观点。是的,(但)我直觉上不认同那个观点。
主持人: 你向我推荐了Nick Lane的书,我读了之后觉得非常有趣,后来我还采访了他。你从事 AI 研究已经超过 20 年了,现在你可能对智能是什么、发展它需要什么,有了更切实的感受。因此,你对进化只是偶然发现了智能这件事,是感到更惊讶还是更不惊讶了?
Andrej Karpathy: 顺便说一下,我非常喜欢尼克·莱恩的书。我刚听了他的那期播客,就是关于智能及其进化的。我确实认为智能的出现相当……我的意思是,它在(地球历史上)非常晚近,对吧?我很惊讶它居然进化出来了。是的,思考外面所有的世界——比如假设有一千个像地球一样的行星,它们会是什么样子——这非常迷人。我想尼克·莱恩也谈到了,他基本上期望(在那些行星上)会有非常相似的生命形式,大致上是细菌之类的东西。然后其中一小部分,会迎来某种突破。
我直觉上感觉,智能的进化应该是一个相当罕见的事件。我想,也许我们应该根据某个东西存在了多久来判断(它出现的难度)。例如,如果细菌已经存在了 20 亿年而什么都没发生,那么变成真核生物这件事可能就相当困难,因为细菌在地球早期就出现了。所以我想,我们有动物多久了?也许几亿年,就是那种会跑、会爬的多细胞动物。这也许是地球生命周期的 10% 左右。所以,也许在那个时间尺度上,(进化出动物)实际上并不算太棘手。
(但)我仍然觉得(智能的出现)太令人惊讶了。我原以为,进化会停留在很多像动物一样的生命形式做着像动物一样的事情这个阶段。但你最终却得到了某种能够创造文化和知识、并积累它的东西——这对我来说是真正令人惊讶的部分。
主持人: 好的,这里有几个有趣的后续问题。如果你接受智能的关键实际上是动物智能这个观点——就像(之前嘉宾)科蒂(Koti)说的,如果你能达到松鼠的水平,你就离 AGI 不远了。那么,我们达到松鼠智能的时间点,大概就是 6 亿年前的寒武纪大爆发。而引发那次爆发的,似乎是氧合事件。但几乎立刻,那种能造就松鼠智能的算法就已经存在了,对吧?这似乎在暗示,动物智能的算法很简单。一旦你有了氧气和环境,有了好奇心,你就能得到它。也许进化这么快就偶然发现了它,只是个意外。但我在想,这是否意味着,这个算法到头来其实非常简单?
Andrej Karpathy: 是的,这些东西真的很难说。我想,你只能根据某样东西被瓶颈了多久来判断(它的难度)。尼克在描述细菌和古菌的那个明显瓶颈时就做得很好——20 亿年里什么都没发生。你有生物化学的极端多样性,但就是没有长成动物,这个状态持续了 20 亿年。
我不知道我们是否在动物到智能这个阶段看到了完全相同的(瓶颈),但我想,也许我们也可以从智能独立涌现了多少次这个角度来看待它。
主持人: 涌现。是的,这是一个非常好的切入点。
Andrej Karpathy: 我的一个想法是,我们有古人类的智能,然后还有鸟类的智能,对吧?比如乌鸦,它们极其聪明。它们的大脑结构是相当不同的,(和我们)是独立演化的。所以这也许是一个微弱的信号,表明智能可能独立出现了几次。如果是这样,你也许会期望它能更频繁地出现。
主持人: 是的,我的前嘉宾格温(Gwen)和卡尔·谢尔曼(Carl Sherman)对此有个有趣的观点。他们认为,灵长类动物所拥有的那种可扩展的智能算法,鸟类(独立)也有,也许其他物种也有。但在人类这里,这个算法恰好撞上了一个进化生态位(evolutionary niche),这个生态位极大地奖励了智能的边际增长。
举个例子,如果一只鸟的大脑再大一点,它可能就重得飞不起来了。所以,它(鸟)相对于它的大脑尺寸来说极其聪明,但它所处的生态位并不奖励大脑变大。海豚可能也是如此。而人类,我们有手,这奖励了使用工具;我们学会了外化消化(比如用火),这为大脑提供了更多能量……这就启动了(智能的)飞轮。
Andrej Karpathy: 人类还有工具可以用。我猜如果我是海豚,难度会大得多。你没法用火,对吧?你在水里能做的事情,其范围可能远小于你在陆地上能做的。
主持人: 是的,仅仅是化学条件就限制了。我同意这个关于生态位和激励的观点。但我仍然觉得智能的出现有点像个奇迹。我不知道,我本来的预期可能是,进化会停留在拥有更大肌肉的动物这个方向上。通过智能来实现突破,这确实是一个非常迷人的路径。
Andrej Karpathy: 这之所以如此困难,是因为存在一条非常微妙的界线。一方面,有些情况是如此重要,以至于进化应该把应对它的正确电路直接蒸馏回 DNA 中;另一方面,有些情况则根本不重要,不值得学习。而学习本身,必须处于这两者之间——它必须是某种能在生命周期内提高适应性的东西。你必须激励这种建立学习算法的能力。
你必须激励这种适应性。你实际上需要的是一个不可预测的环境,这样进化就无法将应对算法烘焙到你的 DNA 权重中。很多动物基本上是预先设定好的。而人类则必须在出生时——在测试阶段——自己搞清楚。所以,也许你真正需要的是那种变化非常迅速的环境,在那里你无法预见什么会长久有效。因此,你(进化)才创造了智能,让它在测试时自己去解决问题。
主持人: Quentin Pope 有一篇有趣的博客文章,(用来解释)他为什么不期望 AI 会急剧起飞。他拿人类类比:我们在 6 万年前似乎就拥有了今天的(大脑)架构。但直到 1 万年前,才有了农业革命和现代性。那么,中间那 5 万年里发生了什么?
Andrej Karpathy: 嗯,你必须建立那种文化脚手架,让你能够一代又一代地积累知识。而这种(积累)能力,在我们的 AI 训练方式中是免费存在的。如果你重新训练一个模型,(在很多情况下)它们是蒸馏的,它们可以在彼此的基础上进行训练,它们可以在相同的预训练语料库上训练。它们不必真的从头开始。所以从某种意义上说,人类花了几万年才启动的文化循环,在 LLM 的训练方式中是免费的。
主持人: 是,也不是。因为 LLM LModels并没有真正等同于文化的东西。也许我们给了它们太多不要创造文化的激励。但我猜,(人类文化的)那种文化产物(cultural exhaust)——书面记录、彼此传递笔记——我认为我们(的 AI)目前没有这些东西的等价物。所以 LLM 现在并没有真正的文化。这有点像是,我认为,是障碍之一。
主持人: 你能给我一些关于LLM 文化可能是什么样子的感觉吗?
Andrej Karpathy: 最简单的情况下,它会是一个巨大的草稿板。当一个 LM 在阅读或工作时,它会为自己不断编辑这个草稿板。
为什么一个 LLM 不能为其他 LLM 写一本书呢?那会很酷。是的,比如为什么其他 LM 不能读这本LM 写的书,并受其启发或感到震惊?目前,这些东西都没有等价物。
主持人: 有趣。你预计那种事情什么时候会开始发生?以及一个更普遍的问题,关于多智能体系统和那种独立的 AI 文明与文化。
Andrej Karpathy: 我认为在多智能体领域有两个非常强大的思想,但都还没有被真正实现。第一个就是我们谈到的文化——LLM 为它们自己的目的而不断增长的知识库。
第二个则是自我对弈(self-play)这个强大的思想。在我看来,它极其强大。进化,实际上就是大量的竞争在驱动智能。而 AlphaGo 的算法,就是通过和自己下棋,才学会了如何下好围棋。
在 LLM 中,目前还没有自我对弈的等价物。但我期望那也应该存在。比如,为什么一个 LM 不能创造一堆问题,让另一个 LM 学习解决?然后出题的 LM 总是试图提供越来越难的问题,诸如此类。我认为有很多方法可以组织它。
这(两个方向)都是前沿的研究领域,但我还没有看到任何东西能令人信服地实现它们。我们主要还处于单个独立智能体的领域。在文化这个领域,我也会把组织归入其中,但我们也还没看到任何令人信服的(AI 组织)案例。所以,我们还处于非常早期的阶段。
主持人: 你能找出阻碍 LLM 之间这种合作(或竞争)的关键瓶颈吗?
Andrej Karpathy: 也许我会这样说:不知为何,(AI 和人类发展的)类比竟然行得通,它们本不该行得通,但它们就是行得通。那些较小、较笨的模型,不知为何非常像一个幼儿园学生,然后(更强的模型)像一个小学生或高中生。
但不知为何,我们仍然没有毕业到足以让这些东西(AI)真正接管(创造文化)的程度。就像我用的 Codex,它们仍然感觉像个小学生。我知道它们可以通过博士水平的测验,但它们在认知上仍然感觉像个幼儿园或小学的孩子。
所以,我不认为它们能创造文化,因为它们仍然是孩子。它们是天才儿童——它们对所有东西都有完美的记忆,它们可以令人信服地填槽,做出看起来非常好的东西。但我仍然认为它们并不真正知道自己在做什么。在所有那些(构成真正智能的)认知复选框上,它们并没有打勾。
主持人: 你曾在 2017 年到 2022 年期间在特斯拉领导自动驾驶团队,你亲眼目睹了它从酷炫的演示到如今成千上万辆汽车在路上实际自动驾驶的进展。为什么这花了(近)十年时间?那段时间里到底发生了什么?
Andrej Karpathy: 所以,我想说的第一件事,就是立刻反驳你——这(自动驾驶)还远未完成。
我确实认为自动驾驶非常有趣,它是我获得大量(关于 AI)直觉的地方。我花了五年时间在上面。自动驾驶的第一次演示可以追溯到 80 年代,1986 年 CMU 就有卡车在自动驾驶了。快进到我加入特斯拉时,我看到了一个 Waymo 演示,大概在 2014 年,它给了我一次完美的驾驶体验——那是十年前的一次完美驾驶。当时我认为它非常接近了,但结果仍然花了这么长时间。
我确实认为,在 AI 领域,演示和产品之间存在着巨大的鸿沟。演示非常容易,但产品非常难。尤其是在自动驾驶这种失败代价极高的情况下,时间线必然会拉长。
而且,我实际上认为,在软件工程中,这个高代价属性同样存在。如果你只是写着玩,那无所谓。但如果你在写生产级代码,任何类型的错误都可能导致安全漏洞,泄露数亿人的社保号码之类的。所以我确实认为,在软件领域,人们应该像在自动驾驶中一样小心。(自动驾驶)出错了,你可能会受伤;但在软件领域,后果可能是无限可怕的。
至于为什么花了这么长时间,可以把它看作是九的行军(March of Nines,即追求 99.999…% 的可靠性)。每增加一个9(从 90% 到 99%,从 99% 到 99.9%),都需要恒定量的工作。
当你看到一个演示,某样东西在 90% 的时间里都有效,那只是第一个九。然后你需要第二个九、第三个九、第四个九。当我在特斯拉的五年里,我想我们大概经历了两个或三个九的迭代。他们(特斯拉)还有更多的九要去完成。这就是为什么这些事情需要这么长时间。
所以,这段经历对我塑造极大。比如,我现在对演示极度不感冒。每当我看到任何演示,我都极度不以为然。尤其是那种有人精心制作然后展示给你的演示。如果你能亲自上手互动,会好一点,但即便如此,你还没完。你需要真正的产品。当它与现实接触时,会面临所有这些挑战,所有这些需要修补的行为口袋。
所以我认为(AI 落地)我们将看到所有这些事情(自动驾驶的坑)重演。这是一个九的行军。演示是令人鼓舞的,但仍然有大量的工作要做。
主持人: 听到你把软件和自动驾驶所需的安全保证相提并论,这非常有趣。因为人们通常的反驳是:自动驾驶之所以花了这么长时间,是因为失败代价太高——人类平均每 40 万英里(或七年)才犯一次(大)错。如果你要发布一个编码智能体,它也必须在 7 年内不犯错,那部署起来自然会困难得多。但你的观点是,如果 AI 犯了一个灾难性的编码错误,这(在严重性上)是等同的。而且在挂钟时间(wall clock time)上,它(AI)犯错的频率会远超(人类的)7年,因为它是在不断地输出代码。
Andrej Karpathy: 这是一个更难的问题。自动驾驶只是人们做的数千件事情中的一个垂直领域。而通用软件工程,有更多的表面积。
主持人: 人们对这个类比还有另一个反对意见:自动驾驶花了大量时间来解决基础的、鲁棒的感知、建立表征以及常识问题——比如泛化到有人在路上这样挥手这种训练中没见过的场景。而这些,恰恰是我们今天从 LLM 或 VLM(视觉语言模型)中免费得到的东西。所以,我们不必再解决那些基础的表征问题了。因此,现在部署 AI,更像是把自动驾驶汽车部署到另一个新城市——这虽然难,但不是一个长达 10 年的任务。
Andrej Karpathy: 是的,但我不确定我是否完全同意这一点。我不知道我们免费得到了多少。我仍然认为(LLM)在理解上存在很多差距需要被填补。我并不认为我们能像魔法一样,开箱即用地获得(完美的)泛化能力。
我想回过头再强调一点:自动驾驶汽车远未完成。即使是(Waymo)的部署,仍然非常有限。他们之所以这么做,大致上是因为它不经济。他们造了一个活在未来的东西,所以他们不得不让它变得不经济。不仅有车的边际成本,还有整个项目的资本支出。让它变得经济,对他们来说仍然会是一场艰苦的斗争。
而且,当你看这些(Waymo)车里没有人在驾驶时,我也认为这有点欺骗性。因为实际上有非常复杂的远程操作中心,human-in-the-loop。我不知道具体规模,但我认为循环中的人比你想象的要多。有些人基本上是在远程操作。我们实际上并没有移除人,我们只是把他们移到了你看不见的地方。
我仍然认为自动驾驶(从一个城市到另一个城市)充满挑战。我确实同意它跨过了一个门槛,感觉上是真的(在运行了)——除非它真的只是在被远程操作。
主持人: 是的,终点还没到。因为我们谈论的自动驾驶,通常是指大规模的自动驾驶,人们不再需要驾照的那种。
主持人: 我很好奇另外两种这个类比(自动驾驶 vs 知识工作 AI)可能不同的方式。我之所以对此特别好奇,是因为 AI 部署的速度和它在早期阶段的价值,可能是当今世界上最重要的问题。
- 自动驾驶有严格的延迟要求(模型必须极快响应)。
- 更重要的可能是资本支出。为模型的另一个副本提供服务(推理)会有额外成本,但这个成本肯定不像为了服务另一个实例而造一辆全新的汽车那么多。所以,(AI)更广泛部署的经济学要有利得多。
Andrej Karpathy: (对第二点)有利得多。我认为那是对的。如果你停留在bits的领域,它们比任何接触物理世界的东西都要容易一百万倍。不,我绝对承认比特是完全可变的,可以以非常快的速度任意重新组合。所以你也会期望在行业中有更快的适应速度。
(关于第一点,延迟和模型大小)我认为也大致正确。我的意思是,如果我们谈论的是大规模的知识工作,(计算和延迟)仍然会是瓶颈,我们必须创造海量的算力。
然后是最后一个方面:所有其余的部分。社会对此怎么看?法律后果是什么?保险如何运作?人们在 Waymo 引擎盖上放一个交通锥的等价物是什么?(指社会层面的对抗和博弈)
所有这些(物理世界的摩擦)都会有(数字世界的)等价物。所以我确实觉得自动驾驶是一个非常好的类比,你可以从中借鉴所有这些方面。那个交通锥的等C价物是什么?那个被藏起来的远程操作工人的等价物又是什么?几乎所有方面(都能找到对应)。
主持人: 你如何看待当前的 AI 建设——我们正在一两年内将世界的可用计算能力增加 10 倍,或许在十年内增加 100 倍——如果 AI 的实际使用量低于一些人天真预测的水平,这是否意味着我们正在过度建设计算能力?或者你认为这是一个独立的问题?
Andrej Karpathy: 就像铁路或电信行业发生过的情况,对吧?(90 年代末)为了一个十年后才真正到来的互联网,提前铺设了海量光缆,结果在电信行业制造了一个巨大的泡沫。
是的,所以我不知道。我的意思是,我意识到我在这里听起来非常悲观。
(澄清一下)我本人其实非常乐观。我认为这(AI)会成功,这些问题是可以解决的。我听起来悲观,只是因为当我看我的推特时间线时,我看到了所有这些对我来说毫无意义的东西。而这些东西的存在有很多原因,老实说,我认为其中很多只是为了融资,这只是激励结构的问题。很多是为了融资,很多只是为了博取注意力,你知道,在互联网上把注意力变现。
我想我只是在反抗那种(浮夸的)论调,但我总体上仍然极其看好这项技术。我认为我们会解决所有这些问题,而且进展确实很快。
我实际上不知道是否存在过度建设。因为我确实认为,像 Codex 这样的东西,一年前甚至还不存在,对吧?这是以前没有的魔法。而且正如我们从 ChatGPT 看到的,需求将会是巨大的。
所以,我只是在反抗那些过快的时间线预测,人们总是持续地搞错。在我 15 年的 AI 生涯中,我多次从非常有名望的人那里听到错误的预测。我希望我们能被正确地校准。因为当涉及到这些问题时,它确实具有地缘的影响。我不希望人们在那个领域犯错误,所以我真心希望我们能立足于技术的现实——知道它是什么,以及它不是什么。
主持人: 让我们来谈谈教育和Eureka。你可以做的一件事是再创办一个 AI 实验室,尝试去解决那些(AI 核心)问题。我很好奇你现在在做什么,以及,为什么选择(教育),而不是 AI 研究本身?
Andrej Karpathy: 我想也许我会这样说:我觉得 AI 实验室正在做的事情,在某种程度上是注定会发生的。我觉得我可以在那里帮忙,但我不确定自己是否能带来独特的改进。
我个人最大的恐惧是,很多事情发生在人性的这一边,而人性最终因此被剥夺了权力。我不只是关心 AI 将要建造的所有戴森球。我关心人类会发生什么。我希望人类在这个未来能过得很好,我觉得这正是我能提供更多独特价值的地方。
我最害怕的是像电影《瓦力》(Wall-E)或《蠢蛋进化论》中描绘的那样,人性被边缘化了。我希望人类在这个未来能变得更好。所以对我来说,实现这一点的途径,就是通过教育。
主持人: 哦,你在那里(Eureka)具体做什么呢?
Andrej Karpathy: Eureka正在尝试建造……我能给出的最简单的描述是,我们正在努力建造星际舰队学院。星际舰队学院是一个为前沿技术而设的精英机构,他们建造宇宙飞船,并培养学员成为飞行员。所以我设想的,就是一个为技术知识而设的精英机构,一所与时俱进的、一流的学校。
主持人: 我想问你一个系列问题,就是关于如何教好技术或科学内容,因为你是这方面的世界级大师之一。我很好奇,你如何看待你已经在 YouTube 上发布的内容,以及Eureka的内容(如果有什么不同的话)?
Andrej Karpathy: 关于Eureka:我对教育有一件非常着迷的事,那就是 AI 必将从根本上改变教育。我认为教育必须被重新设计。但我仍然认为我们还处于非常早期的阶段。
会有很多人尝试做那些显而易见的事情,比如哦,这有个大语言模型,问它问题就行了。我认为这有帮助,但对我来说,这感觉仍然有点粗糙,像蹩脚的复制粘贴。我希望能把它做得恰当。
而我想要的(AI 导师)能力,目前还不存在。我想要的是真正的导师体验。一个突出的例子是,我最近在学韩语。我经历了自学阶段,也经历了在韩国上 10 人小班课的阶段。但最后,我换成了一个一对一的导师。
我想,我之所以着迷,是因为我反思我的导师为我所做的一切时,我意识到那种体验是多么不可思议,以及我最终想要建立的东西,那个标杆有多高。
她能立刻通过简短的对话,摸清我作为学生的水平——我知道什么,我不知道什么。她能够精准地探测我的世界模型。现在没有一个 LLM 能做到这一点,差得远了。
一旦她理解了我的水平,她就能精确地策划我需要的内容。我需要一直受到适当的挑战——不能太难,也不能太微不足道。一个好导师非常擅长拿捏这个分寸。
所以,我感觉我自己成了学习的唯一瓶颈。我总能得到完美的信息,唯一的限制就是我自己的吸收和记忆能力。我对此感觉很好,因为障碍只在于我自身,而不是因为我找不到知识,或者知识没有被恰当地解释。这,就是我想要的(AI 导师)。
主持人: 你要如何自动化那种(人类导师的)体验?
Andrej Karpathy: 非常好的问题。以目前的能力,你做不到。
这就是为什么我认为现在还不是构建这种终极 AI 导师的时机。当然,它仍然是一个有用的产品,很多人会去构建它,但我仍然觉得(人类导师的)标杆太高了,(AI 的)能力还没到。但即便如此,ChatGPT 如今已是一个极有价值的教育产品了。只是,当我(和我的导师)在一起时,我几乎觉得我根本造不出这个。
主持人: 任何有过一个真正好导师的人都会想:你怎么可能(用 AI)复制这个?
Andrej Karpathy: 所以,我只是在等待那种(AI)能力。这就像我在行业里做 AI 咨询一样:很多时候,我给公司带来的价值,是告诉他们不要使用 AI。我作为一个 AI 专家,听完他们的问题,然后说:别用 AI。这就是我的附加价值。
我觉得现在在教育领域也是如此。对于我所设想的(终极导师),时机还未到,但它终将到来。就目前而言,我正在构建一些可能看起来更传统的东西,它有物理和数字两部分。但未来应该是什么样子,对我来说是非常清晰的。
主持人: 你愿意透露你希望在今年或明年发布什么吗?
Andrej Karpathy: 嗯,我正在构建第一门课程,我希望它是一门极好的课程——一个最先进的学习 AI 的目的地。你刚才提到的 NanoChat,就是我正在构建的这门课的顶点项目。
现在我必须构建出所有中间部分,并雇佣一个小团队,比如助教,来完成整个课程。
也许我还要说一件事:当人们想到教育时,他们通常想到的是软性的部分,比如传播知识。但我脑海里想的,是非常硬核和技术性的东西。在我看来,教育是一个构建通往知识的斜坡的、极其困难的技术过程。
NanoChat 就是这样一个斜坡,因为它是一个超级简化的全栈实现。你把它交给别人,他们看一遍,就能学到海量的东西。它能给你带来很多我称之为每秒Eureka的体验,也就是每秒的顿悟。这就是我想要的。
对我来说,如何高效地构建这些知识斜坡,让人们永远不会被卡住,永远不会太难也不会太简单,这本身就是一个技术问题。从这个意义上说,Eureka(的工作)可能和那些前沿 AI 实验室并没有那么不同。
主持人: 所以,在短期内,与其让 AI 导师来探测你的理解,不如让你(学生)通过助教、课程材料和参考实现,自己找到答案,永远不被卡住。听起来,AI 本身(在教学中)还不是重点。到目前为止,最大的优势其实是你解释 AI 的能力,对吗?这种能力被编码进了课程的源材料中。
Andrej Karpathy: 是。我的意思是,你总是需要根据行业中已有的能力来校准自己。很多人会说哦,去问 ChatGPT 就行了。但如果你现在去问它教我 AI,它给你的就是一些蹩脚的复制粘贴。AI 现在绝对写不出 NanoChat,但 NanoChat 是一个非常有用的(教学)切入点。
所以,我是在与 AI 合作来创作这些材料。AI 仍然从根本上非常有帮助。
我之前在斯坦福教 CS231n(深度学习课),它非常受欢迎。但现在(借助 LLM)开发新课程,和当年相比,简直是天壤之别。我感觉自己被现有的 LLM 极大地赋能了。但我非常深入地处在循环中。它们帮我构建小材料,帮我做很多苦差事,我进展得快多了。
但(AI)还没有达到可以创造性地创建内容的水平,那件事还得我来做。所以,棘手之处在于,你必须总是根据现有的能力来校准自己。
主持人: 那么,几年后Eureka的最大瓶颈,是不是就是在各个领域找到更多像你(Karpathy)这样的人,能把他们的深刻理解转化成这些知识斜坡?
Andrej Karpathy: 我想这会随着时间而改变。现在,是雇佣教师,让他们与 AI 和一个团队携手合作,来构建最先进的课程。然后随着时间的推移,一些助教的工作实际上可以变成 AI。比如,AI 可以基于所有课程材料,提供一个非常好的自动助教,来回答学生的基础问题。但我认为,你仍然需要教师来架构整个课程。所以我能看到一个演变的进程。也许在遥远的未来,连我都没那么有用了,AI 的(课程)设计会比我好得多,但我认为那还需要一些时间。
主持人: 但是,你是在想象其他领域的专家来贡献课程,还是说,你(Andrej)亲自根据你对教学的理解来设计内容,这对愿景至关重要?就像萨尔·可汗(Sal Khan)为可汗学院的所有视频配音那样。
Andrej Karpathy: 不,我会聘请教师。因为在很多领域我不是专家,我认为这是最终为学生提供最先进体验的唯一途径。所以,是的,我期望我会聘请教师,但我自己可能会在 AI 领域再待一段时间。
……而且,我的想法可能比人们预期的要传统得多。当我说建造星际舰队学院时,我确实设想了一个实体机构,以及一个次一级的数字产品。
那个实体产品才是最先进的体验——有人亲自来,全职学习,我们确保你彻底理解。而数字产品,是互联网上的一堆资料,也许加上一些 AI 助手。它(数字产品)在体验上是次一级的,但至少它可以扩展到 80 亿人。
主持人: 是的,你基本上是在用今天可用的工具,从第一性原理出发,重新发明大学。
Andrej Karpathy: 是的,我认为不仅有大量教育需求,还有大量的再教育需求,因为工作岗位可能会发生巨变。比如今天很多人都想在 AI 领域提升自己。
在前 AGI时代,动机问题很好解决,因为人们想赚钱。
但我认为后 AGI时代的教育才更有趣。如果一切都自动化了,人为什么还要上学?我认为,前 AGI 教育是‘有用的’,后 AGI 教育是‘有趣的’。
这就像今天人们去健身房一样。我们早就不需要体力劳动了,我们有机器。但人们仍然去健身房。为什么?因为它有趣、健康,而且(笑)有六块腹肌看起来很棒。我的意思是,在某种深刻的心理和进化意义上,这对人类是可取的。
我认为教育会走上同样的道路。现在学习是困难的,你很容易从材料上反弹开。但学习很难是一个技术问题,就像我的韩语导师为我做的那样,这个问题是可以被解决的。我认为它会让学习任何东西都变得微不足道且令人向往。人们会为了乐趣而学习。如果我有一个那样的(AI)导师,可以教任何知识,人们就会出于和去健身房同样的理由去学习。
主持人: 这听起来和我之前的理解不同。你(刚才)说的听起来像是把教育当作娱乐或自我提升(就像健身)。但你之前似乎还有一个愿景,即教育是为了让人类掌控 AI。这两者听起来不同。所以,它对一些人是娱乐,对另一些人是赋权吗?
Andrej Karpathy: 我确实觉得,最终这有点像一场注定要输的游戏——从长远来看。是的,(虽然这个)长远比大多数人想的要长得多。
但(在那之前),我确实认为人们可以走得非常远。我们几乎没有触及一个人所能达到的表面,只是因为人们总是(在学习中)被太容易或太难的材料弹开。我感觉,如果(学习)变得微不足道,任何人都会说 5 种语言。为什么不呢?任何人都会了解数百个学科的基础知识。
主持人: 现在我理解这个愿景了,非常有趣。这在健身文化中有一个完美的类比。100 年前,没有人是肌肉发达(jacked)的,没有人能随随便便卧推几百磅。但现在这非常普遍。因为系统性地训练这个想法——无论是在健身房举重,还是训练跑马拉松——(让我们获得了)你自发(spontaneously)不会拥有的能力。你想象的是,在学习领域也会发生类似的事情:我们能学得更深、更快。
Andrej Karpathy: 我有点像是在含蓄地押注于人性的某些永恒性。我认为做所有这些(学习、健身)事情是可取的。我认为人们会像几千年来一样仰慕它。
历史上也许有证据:如果你看看那些贵族或古希腊,在那些(不需要为生存而劳作的)小环境里,人们确实花了很多时间在身体或认知上蓬勃发展。所以我对这方面的前景感觉还可以。
如果我错了,我们最终陷入了《瓦力》或《蠢蛋进化论》的未来——那么,我甚至不在乎是否有什么戴森球,那都是一个可怕的结局。我真的非常关心人性。我希望每个人都能成为超人。
主持人: (但)在那样的世界里,你(人类)仍然无法从根本上改变技术的轨迹,或者用你自己的认知来影响决策。也许你可以影响决策,因为 AI 在寻求你的批准,但你并不是因为我发明了什么或设计了什么而真正影响了未来。
Andrej Karpathy: 也许吧。我实际上不这么认为。我认为会有一个过渡期,我们能够参与其中,推动事情的发展。我确实认为,从长远来看,那种(主导)作用可能会消失,对吧?
但也许认知本身会成为一项运动。就像现在,我们有举重运动员在物理上追求极致。那么,在认知时代的举重是什么?也许就是那些试图把知识变成奥林匹克运动的人。
如果你有一个完美的人工智能导师,也许你可以走得非常非常远。我几乎觉得,即便是今天的天才,我们也只是勉强触及了人类心智所能企及的表面。
主持人: 是的,我喜欢这个愿景。我觉得我就是你(Eureka)最完美的产品-市场契合用户。因为我的工作就是每周学习不同的科目。我非常兴奋。
Andrej Karpathy: 就那件事而言,我也是。你知道,很多人讨厌学校。但我毕业时,我真的很喜欢学校。我喜欢学习。我一直读到博士,直到他们不让我再待下去了,我才去了工业界。但总的来说,我热爱学习,既是为了学习本身,也是因为它是一种赋权和保持高效的方式。
主持人: 我想你也点明了,为什么在线课程到目前为止失败了?为什么它们没能让每个人都无所不知?我认为它们只是充满了动机的负担,因为没有明显的入门斜坡,而且太容易卡住了。如果你有了(你描述的)那种(AI 导师),从动机的角度来看,这将是一个巨大的解锁。
Andrej Karpathy: 我同意。因为从材料上反弹开的感觉非常糟糕。你投入了大量时间,却没有结果,或者因为内容太容易/太难而感到无聊——这都是负回报。所以,是的,我认为当你恰当地学习时,学习的感觉是很好的。而如何达到那个状态是一个技术问题。我认为在一段时间内,这将是AI + 人类的合作。在某个时候,也许就只是 AI 了。我不知道。
主持人: 我能问一些关于教学本身的问题吗?如果你必须给另一位教育者(在非编码领域)一些建议,让他们能制作出你那种质量的 YouTube 教程,你会给他们什么建议?
Andrej Karpathy: (这很宽泛。)我可能在半意识地使用 10 到 20 个技巧,但从高层次上说,这很多都来自我的物理学背景。
我热爱我的物理背景。我甚至认为每个人在早期教育中都应该学习物理,因为它不是为了死记硬背,它是为了启动一个大脑。物理学在启动大脑方面是独一无二的。
物理学训练你建立模型和抽象,理解一阶近似——它能描述系统的大部分,但也存在二阶、三阶项。就像那个笑话:假设一头球形的牛。每个人都笑,但这实际上是极其聪明的思维,在所有行业中都通用。
因为那种训练,当我观察一个系统时,我总是试图找到一阶项是什么。我试图解开我脑中那团纠结的知识网络,找到什么才是真正重要的。我如何简化它?
比如我的一个项目 micrograd:它用 100 行代码展示了反向传播的核心。这就是神经网络学习的核心智力部分。其他一切都只是效率(efficiency)。(Tensor、kernels、内存……)那都是效率。但核心是 micrograd。
我喜欢找到这些(核心),然后把它们在一个盘子里端上来。我发现教育是最有趣的智力游戏,因为你有一团纠结的理解,而你试图把它铺平,创造一个斜坡,让所有东西都只依赖于它之前的东西。我发现这种解开知识之网的认知任务,实在是太有趣了。
主持人: 这也让学习体验变得更有动力。你关于 Transformer 的教程,开头就是一个字面意义上的查找表:这是前一个词,这是后一个词。
Andrej Karpathy: 是的,它(Transformer)的精髓就是那个。
主持人: 这太聪明了。从一个查找表开始,然后过渡到 Transformer,每一个新组件的引入都是有动机的。你为什么要加这个?哦,是为了解决(上一步的)某个问题。
Andrej Karpathy: 你在给出解决方案之前,先呈现痛苦。你希望带领学生经历那个(思考)过程。还有很多类似的小技巧,比如总是提示学生……
主持人: 比如问:你会怎么解决这个问题?而不是在你尝试之前就给出答案。那太浪费了。在我给你机会自己尝试之前,就(剧透)解决方案,这对学习者来说是一种卑鄙的举动。
主持人: 因为如果你自己先尝试了,你就会对行动空间和目标有更深的理解,然后你才能明白为什么只有这个方案能达成目标。
Andrej Karpathy: 对。而且,当我(在你尝试失败后)给出解决方案时,你会心存感激,这能最大化(你从这个新知识点里)吸收的信息量。
主持人: 为什么那些在自己领域是真正专家的人,在默认情况下,通常不擅长向入门者解释它?
Andrej Karpathy: 那是知识的诅咒。这是一个真实存在的现象,我也深受其害。你把某些事情想当然了,你无法设身处地地为初学者着想。这无处不在。
……例如,我最近发现一个很有帮助的技巧:有人给我看一篇生物学论文,我立刻就有很多愚蠢的问题。于是我把论文喂给 ChatGPT,然后问它。它解决了我的一些(低级)问题。我几乎在想,如果论文作者能看到我提的那些愚蠢问题,也许能帮助他们将来解释得更好。
所以,我也希望人们能分享他们与 ChatGPT 讨论我的(教学)材料时的愚蠢对话,这能帮我重新回到初学者的视角。
主持人: 有一个类似的技巧:如果有人写了一篇论文或博客,100% 的情况下,他们在午餐时亲口向你解释的那个版本,不仅更容易理解,而且实际上也更准确,因为人们(写作时)有一种偏见,喜欢用最抽象、充满术语的方式,在进入核心思想之前清嗓子四段。但一对一交谈会迫使你(作者)必须直截了当。
Andj Karpathy: 是的,我看到了那条推文,非常棒。我多次注意到这一点。最突出的例子是,我读博士时,你读某人的论文,苦苦思索。然后在会议结束后,你和他们一起喝啤酒,你问:所以……那篇论文到底是关于什么的?
然后他们会用三句话告诉你,完美地抓住了论文的精髓,彻底解锁了那个想法。你根本都不需要读那篇论文了。只有在喝啤酒的时候,他们才能用对话的方式把它说出来。然后你就会想:为什么这(三句话)不是(论文的)摘要? 完全正确。
主持人: 这是从解释者的角度出发的。那么从学生的角度,你有什么建议?如果你没有一个(像 Karpathy 这样的)人为你铺设知识斜坡,你该如何学习那些你感兴趣但感觉自己不是专家的材料?
Andrej Karpathy: 老实说,我不知道我是否有什么独特的技巧。这总是一个有点痛苦的过程。
但有一件事对我一直很有帮助:即时学习非常好。我感觉你需要在深度/项目制学习(为了完成一个有回报的项目而按需学习)和广度学习之间交替进行。很多学校里都是广度学习——哦,相信我,你以后会需要这个的。我更喜欢那种(项目制的)学习,你能立刻得到回报。
另一件非常有帮助的事——也许这是教育中无私的一面——就是向别人解释。这是更深入学习的绝佳方式。
我意识到,如果我不能真正理解某件事,我就无法向别人解释它。我试着去解释,然后我(卡住了)就会发现:实际上,我自己也不懂这个。 承认这一点很烦人,但它会迫使你回去,填补你理解上的空白。我喜欢(通过)重新解释来迫使自己操纵知识,确保自己真的言之有物。
主持人: 哦,是的,我认为这是一个非常好的结束语。这太棒了。谢谢你。
