摘要:他深入分析了当前 AI 技术,特别是自回归大语言模型存在的根本局限,如“幻觉”问题和无法真正理解物理世界。杨立昆表示,如果想实现达到人类水平的 AI,别只盯着 LLM,当前大语言模型最终都会被淘汰。
3月21日,Meta首席AI科学家杨立昆在美国2025 年联合数学会议上就 AI 的发展现状与未来方向发表了演讲。
他深入分析了当前 AI 技术,特别是自回归大语言模型存在的根本局限,如“幻觉”问题和无法真正理解物理世界。杨立昆表示,如果想实现达到人类水平的 AI,别只盯着 LLM,当前大语言模型最终都会被淘汰。
他表示,AI 需要像婴儿一样通过观察和互动来学习世界模型,为了学习世界模型,我们应该放弃(像素级预测的)生成式 AI,并重点介绍了他所推动的基于能量的模型(EBMs)和联合嵌入预测架构(JEPA)等新思路,以及与之相关的规划和推理能力的重要性。
以下是本次演讲实录
经数字开物团队编译整理
刚听 Bryna 列举了过往 Gibbs 讲座的各位杰出演讲者,我确实深感压力。我不敢相信自己能够与那些大师比肩。不过,还是让我来谈谈 AI。如今人人都在谈论 AI,特别是实现达到人类水平 AI 的难点。在 AI 的研发生态中,许多人开始认为,我们或许有机会在未来十年左右,构建出一种最终有望达到人类智能水平的机器架构。至于这具体需要多长时间,各种预测众说纷纭,差异巨大。最乐观的人认为我们已经实现了。有些正在大举融资的人声称明年就能实现,但我个人并不如此认为。但我确实认为我们大有希望。接下来,我想和大家探讨一下,我所认为的 AI 研究方向、面临的挑战,以及其中一些确实存在的数学难题。
我们为何需要构建具备人类水平智能的 AI 系统?因为在不久的将来,我们每个人都将与 AI 助手互动,让它们来协助我们的日常生活。我们将能通过各种智能设备 (包括智能眼镜等) ,借助语音以及其他多种方式与这些助手沟通。我们将拥有内置摄像头和显示屏的智能眼镜。目前市面上已有不带显示屏的智能眼镜,但带显示屏的版本也即将问世。实际上,这种技术现已存在,只是成本过高,尚未能商业化。这是我们在 Meta 的同事们展示的 Orion 项目。所以,未来正在到来。设想:我们每个人的一生,都将与 AI 助手紧密相伴、持续互动。我们每个人都会像大公司的 CEO 或重要官员一样,身边随时有一支由聪明的虚拟助手组成的团队待命,为我们服务。这是一种可能出现的未来景象。
但问题在于,我们尚不知晓如何实现这一切。坦率地说,当前机器学习 的水平,确实不尽如人意。与人类或动物相比,机器的学习效率非常低。要达到某个特定的性能水平,它们需要经历的样本数量或试错次数极为庞大。过去,机器学习的主要范式是监督学习。监督学习的过程是:给系统一个输入,等待其产生一个输出,然后告知系统正确的、预期的输出是什么。如果系统产生的输出与期望不同,它便会调整内部参数,以使下一次的输出更接近正确答案。这本质上只是在学习一个输入输出的映射关系。
强化学习则不直接告知系统正确答案,它仅是告知系统其产生的答案是好是坏。这种方法的主要问题在于,系统需要反复尝试并接收关于“好坏”或“是否有改进”的反馈,因此其效率甚至低于监督学习。强化学习目前主要仅适用于游戏或者那些可以在计算机上快速模拟的场景。
在过去几年里,有一项技术给 AI 领域带来了革命性的变化,那就是自监督学习 。它的效果惊人地好,确实给 AI 带来了翻天覆地的变化。然而,它的局限性也非常明显。自监督学习是当前大语言模型、聊天机器人以及类似技术的基础。稍后我会向大家解释其工作原理。
动物和人类学习新任务的速度非常快。它们能理解世界的运作方式,能够进行推理和规划,并拥有常识。它们的行为是由目标驱动的,而不仅仅是预测文本序列中的下一个词。
那么,这些聊天机器人和 LLMs 是如何工作的呢?自回归大语言模型的训练目标是预测序列中的下一个词,或者更准确地说,是预测一个离散符号序列中的下一个符号,例如词语、DNA 序列、音符、蛋白质序列等。其具体做法是,取一段符号序列,将其输入一个大型神经网络。这种网络的架构设计旨在让系统在其输出端重现其输入——这被称为自动编码器 。用户输入一个序列,并要求系统在输出端复制这个序列。
然而,该架构的特点在于:系统在生成某个特定符号时,只能参考该符号之前的符号序列,无法看到需要预测的符号本身。因此,训练的实质是让模型根据先前的符号预测下一个符号。这个训练过程可以在长序列上并行执行。通过测量输入序列与系统生成序列之间的某种散度
进行量化差异,再利用基于梯度的优化方法,调整预测器函数 (一个可能包含数百亿乃至数千亿参数的巨型神经网络) 内部的所有参数,以最小化该散度值。这是一个维度非常高的问题。
系统训练完成后,当输入一个序列时,它便会预测下一个符号。假设此处的上下文窗口(即系统回溯参考的先前符号数量) ,其大小为 3。实际上,对于当前的 LLM,该窗口长度可达数十万符号。但我们假设是 3。向系统输入 3 个词,它会生成下一个词。当然,系统无法精确预测下一个词具体是哪一个,因此它实际输出的是一个覆盖其词汇表中所有可能词语 (或 Tokens) 的概率分布。
通常在 LLMs 中,训练模型生成的是 Tokens,即子词单元,而非完整的词。可能的 Token 种类数量通常在 10 万左右。在使用这个训练好的系统时,用户首先输入一段文本序列,称为提示。系统预测出下一个 Token 后,将其追加到输入序列的末尾。随后,系统基于更新后的序列预测再下一个 Token,并再次追加,如此循环往复。这就是自回归预测,一个在信号处理和统计学领域非常古老的概念。
如果将这些神经网络构建得极其庞大,使用非常长的输入窗口,并利用包含数万亿乃至数十万亿 Token 的海量数据集进行训练,其效果便会格外显著。这些系统似乎能够学习到语言或其他符号序列内部大量深层次的结构。然而,自回归预测存在一个根本性的问题 (在座的数学家或许能更严谨地将其形式化表述) 。自回归预测本质上是一个发散的过程。想象符号是离散的。每生成一个符号,便存在多种选择 (可能多达 10 万种) 。可以将所有可能的 Token 序列集合想象成一棵巨树,其分支因子达到 10 万。在这棵庞大的树中,仅有一棵极小的子树对应着所有“正确”的答案或合理的续写。
例如,若初始提示是一个问题,那么后续生成的包含答案的文本序列便都位于这棵小子树之内。但问题在于,这棵代表正确性的子树,在由所有可能序列构成的巨树中,仅占极其微小的一部分。问题由此产生:若假设 (尽管此假设并不成立) 每生成一个符号便有固定的错误概率 ‘E’,且各步错误相互独立,那么一个长度为 N 的序列保持完全正确的概率即为 (1-E)^N。即使错误率 E 非常小,但随着序列长度 N 的增加,该正确概率也会呈指数级衰减并趋近于零。这个问题是自回归预测框架所固有的,在当前框架内无法解决。
我的预测是:自回归 LLMs 注定要被淘汰。几年后,理性的人们可能将不再使用它们。这也就是为何经常出现 LLM 产生幻觉的现象;它们有时会生成不合逻辑或与事实不符的内容,其根本原因便在于这种自回归预测机制。问题在于,应当采用何种机制来替代它?以及它是否存在其他局限性?我认为,我们目前仍缺乏一些根本性的要素——即一种构建 AI 系统的全新理念。仅仅依靠在更大的数据集上训练更大的语言模型,永远无法实现达到人类水平的 AI。这绝无可能。稍后我会阐述另一个原因。
且不说达到人类的水平,即便要模拟数学家或科学家的能力也相去甚远,我们目前甚至无法复现猫所具备的能力。猫对于物理世界拥有惊人的理解力 (我用猫举例,换成老鼠也同样适用) 。我们目前尚不清楚如何让 AI 系统获得如同猫一般的物理世界理解能力。家猫能够规划非常复杂的行动序列。它们拥有关于世界的因果模型 (Causal Models) ,能够理解自身行为所产生的后果。
而人类的能力则更为出色。一个 10 岁的孩子便能收拾餐桌并将碗碟放入洗碗机,即便先前从未专门学习过此项任务。让这个孩子去执行,他很可能在首次尝试时就能正确完成。这与零样本学习相关。这是因为这个孩子已经具备了相当完善的世界心智模型 (Mental Model) ,理解物体在被操控时的反应方式以及事物应有的状态。一个 17 岁的青少年,大约通过 20 小时的练习便能掌握驾驶技能。然而,尽管自动驾驶公司积累了海量的训练数据 (可能多达数十万小时的人类驾驶录像) ,但时至今日,我们仍未实现完全自动驾驶,即 L5 级别的车辆。我们已有能够通过律师资格考试、解决数学问题乃至证明定理的 AI 系统。但是,承诺的 L5 级自动驾驶汽车在哪里?我的家用机器人又在何处?我们仍旧无法构建出能有效与真实物理世界互动的系统。
事实证明,物理世界远比语言复杂得多。这恰好印证了莫拉维克悖论 (Moravec's Paradox) :那些对人类而言颇具挑战的任务 (例如计算积分、求解微分方程、进行象棋或围棋对弈、规划城市路径等) ,计算机反而极为擅长。它们在棋类对弈等任务上的表现远超人类,使我们望尘莫及。这意味着什么?当人们将人类智能誉为“通用智能”时,这完全是一种误解。我们人类并不具备所谓的通用智能;我们是高度专业化的。
仅靠文本训练,我们无法实现达到人类水平的 AI。这里有一个有趣的计算值得关注。一个典型的现代大语言模型大约是在20 万亿个 Token 上进行训练的。每个 Token 大约相当于 3 字节,因此总量接近 60 TB。我们将其近似看作100 TB 。我们任何一个人都需要花费数十万年,才能读完这如海量般的文本,而这几乎囊括了互联网上所有公开可用的文本。这似乎是极其庞大的训练数据量。现在,我们来考虑一个人类的孩子。一个四岁的孩子总共清醒的时间大约是 16,000 小时。我们大约有 200 万根视神经纤维 (每只眼睛 100 万根) 连接到视觉皮层。每根视神经纤维大约每秒传输 1 字节的数据。计算表明,一个四岁的孩子在四年内仅通过视觉就处理了大约 100 TB的数据。
物理世界蕴含的信息,特别是来自视觉、触觉和听觉的感官输入,其信息量远超人类有史以来产生的所有文本。如果我们不能让 AI 系统通过观察世界来学习其运作规律,我们将永远无法实现达到人类水平的智能。感官输入所能提供的信息,远比文本丰富得多。
心理学家已经研究过婴儿如何学习现实世界,在最初的几个月里,他们主要通过观察来学习。在此期间,婴儿除了活动自己的四肢外,并不能对世界产生显著影响或与之进行有效互动。他们主要通过观察,学习了大量关于这个世界的背景知识。这是一种 自我监督学习的形式,我相信,如果我们希望 AI 系统能达到动物乃至人类水平的智能,就必须复现这种学习方式。
婴儿会学习诸如 物体恒存性(即一个物体被另一个物体遮挡后依然存在的事实)、稳定性以及自然物体类别(即使不知道它们的名称) 等概念。他们还会学习直觉物理学,包括重力、惯性和动量守恒等基本物理规律。婴儿大约在九个月大的时候就能掌握这些。如果你给一个六个月大的婴儿展示一个物体似乎漂浮在空中的场景,他们并不会感到特别惊讶。然而,一个 10 个月大的婴儿看到同样的场景则会睁大眼睛,显得非常惊讶,因为那时他们已经懂得,没有支撑的物体会下落。这种学习主要是在这个年龄段,通过观察并结合一些互动完成的。
要实现达到人类水平的 AI (Meta 称之为 AMI,即高级机器智能,其发音 'ami' 在法语中意为 '朋友';之所以这样命名,是因为我们认为人类智能并非真正通用的),我们需要这样的系统:它们能够通过观察和感官输入学习世界模型,也就是对世界运作方式的内部认知模型。这使得它们能够学习直觉物理学和常识。我们还需要具备持久性记忆的系统,能够规划复杂行动序列的系统,能够进行推理的系统,以及那些天生可控、设计安全的系统,而不仅仅是像当前 AI 系统那样通过微调实现安全可控。在我看来,要构建这样的系统,唯一的途径就是彻底改变其执行推理的方式。
当前 LLM 和其他神经网络所采用的推理方式,是将输入信号通过固定数量的网络层处理后生成输出。LLM 就是这样工作的;每生成一个 Token,都会消耗固定的计算量。让 LLM 实现所谓‘更长时间思考’的技巧,其实是诱导它生成更多的 Token (这被称为 思维链推理)。这在近期被誉为 AI 领域的一大进步。然而,这种每步计算量固定的方式,其局限性非常大。对于一个规模合理的神经网络来说,信号通过固定层数所能计算的函数类型是有限的。大多数复杂任务需要可变的计算步骤;它们无法总被简化为固定的几步。许多计算任务在本质上是串行或顺序的,而非纯粹的并行结构。处理复杂问题,往往需要投入比简单问题更多的计算资源 (时间)。
一种更优的推理方法,或许是“通过优化进行推理”。在这种方法中,你先获得一个观察结果,这个观察结果可以先通过几个初始神经网络层进行初步处理。然后,你拥有一个成本函数(它本身也可以是一个神经网络),它会输出一个标量值。这个成本函数用于衡量输入与某个假设输出之间的兼容程度 (或不兼容程度)。于是,推理问题就转变为一个优化问题:给定输入 'x',去寻找能使该目标 (成本) 函数最小化的那个输出 'y'。我将这种方法称为 目标驱动的 AI,当然,这并非一个全新的概念。大多数概率推理系统(probabilistic inference systems) 正是运用优化来进行推理。在座的各位中,很多人都研究过最优控制;最优控制中的规划,比如模型预测控制,它就是通过优化来生成控制输出的。关于这一点,我稍后会再详细说明。
这个想法并不新鲜,但似乎已经被遗忘了。我相信我们必须重新回归这种方法。我们需要构建基于优化推理架构的系统,其中,“输出”被看作一个潜变量,需要依据输入和目标函数 来进行优化确定。这在传统 AI 中是很经典的思想:在可能的解空间中搜索解决方案。这种思想非常传统,只不过在近期的深度学习热潮中有些被忽视了。
这种方法能解决的任务类型,大致相当于心理学家所说的 “系统 2” 思维模式。在人类认知中,存在两种产生行为的模式。系统1处理的是潜意识层面的任务,也就是那些无需深思即可执行的动作。而当你必须集中意识、深思熟虑来规划一系列行动时,系统 2 就开始工作了。例如,当你在建造不熟悉的东西时,你会用到系统 2。当你在证明一个定理时,毫无疑问你也在使用系统2。
若要形式化地表述这种‘通过优化进行推理’的过程,最佳方式是什么呢?这正好对应了能量基模型(Energy-Based Models)的核心思想。一个 EBM 会计算一个称为“能量”的标量值,它衡量的是输入 X 与候选输出 Y 之间的不匹配程度。它通过最小化这个能量值 (相对于 Y) 来进行推理。我们称这个能量函数为 F(X, Y)。为何用 'F' 而非 'E' (Energy) 呢?因为 'F' 关联到自由能,这可以追溯到吉布斯的研究工作。
这就是推理的过程。通过标量能量函数来刻画变量 X 和 Y 之间的依赖关系,这种方法比直接学习从 X 到 Y 的映射函数要通用得多。原因在于,对于给定的 X,可能存在多个与之兼容的 Y 值。例如,在机器翻译中,一个英文句子可能对应许多个有效的法语翻译。所有这些好的翻译都应该对应较低的能量值,表明输入 (英文句) 和输出 (法文译文) 在翻译任务上是兼容的。但这并不意味着一定存在唯一的“正确”输出。本质上,我这里谈论的是 隐式函数——也就是通过隐式函数,而非显式函数,来表达变量间的依赖关系。这是一个非常简单的概念,但令人意外的是,有些计算机科学家似乎对此难以理解。
那么,在一个能够规划行动的智能系统中,我们应如何运用这些能量基模型呢?下面这个示意框图,展示了这类标量能量函数系统的内部结构。在此图中:圆形表示变量 (观测到的或潜在的)。一端扁平、另一端圆弧形的模块代表 确定性函数 (比如,产生单一输出的神经网络)。矩形代表目标函数,它们是标量值函数,当其输入配置符合期望或可接受时,函数值就低,反之则高。这里可以有多种类型的目标函数。一种是衡量系统完成预期任务的程度。另一类则可能代表护栏,也就是一些约束条件,用于防止系统执行不期望的、危险的、自毁的或有害的行为 (例如,对附近人类造成伤害)。
整个过程始于观察世界状态 (S_t)。该观察结果首先被送入感知模块,由它生成当前状态的一种内部表示。由于感知可能是不完整的,该表示可能会结合来自记忆模块的信息,后者存储着对世界未观测部分的估计状态。这些信息组合起来,就构成了当前的状态估计。这个状态估计随后被输入到一个世界模型中。世界模型的作用,是预测在执行一个特定的行动序列 (A) 后,将会产生什么样的结果 (即未来的状态表示)。行动序列在图中由黄色变量框表示。世界模型会预测出一系列后续的状态表示 (S_t+1, S_t+2...)。这些预测的状态表示,随后被输入到目标函数中进行评估。假定所有这些模块 (感知、世界模型、成本模块) 都是可微的(例如,可以由神经网络实现),那么就可以将梯度从成本函数出发,经由世界模型,一路反向传播到行动序列上。通过使用基于梯度的优化方法 (例如梯度下降),就能找到一个可使总体成本 (目标函数值) 最小化的行动序列。这个过程,本质上就是在进行规划。
我们首先来描述一个系统如何通过优化来执行推理,也就是规划。这需要一个“世界模型” ,用来预测行动会带来什么后果。在最优控制理论里,这是一个非常经典的想法——你要控制一个系统,就得先有一个这个系统的模型。给这个模型输入一系列行动(或者叫控制指令),它就能预测出结果。比如说,要把火箭送入空间站。我们得有一个火箭的动力学模型。我们可以先设想一系列控制指令,预测火箭的飞行轨迹,再用一个成本函数来衡量火箭离目标空间站有多远。接着,通过优化,就能找到让这个成本最小的那一套控制指令,引导火箭飞向目的地。这是一种非常经典的技术,叫做“模型预测控制” (MPC)。从上世纪 60 年代开始,MPC 在最优控制、机器人技术,甚至火箭轨道规划这些领域,都有非常广泛的应用。
当然,真实世界并非完全是确定性的。我们用的世界模型,可能需要引入一些“潜在变量”,这些变量的值我们没法直接看到。它们可能代表着一些未知因素,可能需要从某个概率分布中抽取,这样一来,模型就会给出多种可能的预测。所以,用这种包含了潜在变量来表示未知因素的世界模型,在不确定性下做规划,肯定是非常理想的。不过,在通常情况下,这仍然是一个尚未解决的难题。
我们最终想要实现的是“分层规划”。人类和动物天生就会这么做。但是,目前还没有哪个 AI 系统能真正学会如何有效地做分层规划。我们可以手工定义好层次结构,让系统去执行分层规划,但没有系统是真正自己学会这个能力的。
举个例子:假设我现在在纽约大学的办公室,打算去巴黎。我不可能只靠规划具体到毫秒级的肌肉怎么动,这是最低层级的动作,来计划好从办公室到巴黎的整个行程,这做不到。第一,这个动作序列会特别特别长;第二,我缺少做这种规划所必需的信息(比如,我没法预先知道路上哪个红绿灯是红的还是绿的,这会影响到我计划在那儿是停还是走)。不过,在比较高的抽象层面上,我的大脑可以做这样的预测:要去巴黎,得先去机场坐飞机。好了,现在就有了一个子目标:去机场。那怎么去机场呢?在纽约的话,我可以下楼到街上,招手叫辆出租车。那怎么下到街上呢?我得从办公桌前站起来,走到电梯那儿,按下按钮,然后走出大楼。那怎么去电梯那儿呢?我得从椅子上站起来,拿起包,打开办公室的门,然后一边躲着障碍物,一边走到电梯口。你看,沿着这个层次往下,到了某个足够具体的层级,详细的行动规划(比如刚才说的毫秒级肌肉控制)才变得可行,因为这时候,做动作需要的实时信息都有了(比如,站起来、开门这些动作,就可以在当前这个局部环境下规划)。
所以说,怎么学习世界模型、怎么学习分层世界模型、怎么学习世界的“抽象表示”,好让系统能在不同的时间尺度上做预测,从而有效地规划,关于这一系列的问题,目前还没有人确切地知道该怎么做,或者怎么能让它稳定可靠地运行起来。
把这些部分拼在一起,我们大概就能得到一个 AMI,也就是人工智能机器,它可能的“认知架构”是什么样的。这个架构里,得有一个世界模型,还得有各种各样的“目标函数”,一个“行动者”(它负责优化动作来降低成本),还得有“短期记忆”(有点像大脑里的海马体),最后还需要一个“感知模块”(类似大脑的视觉皮层)。大概两年半以前,我写过一篇长论文,大致讲了我认为 AI 研究要在哪个方向上使劲,才能取得进展。写那篇论文的时候,“大语言模型”那股热潮还没起来,虽然那时候 LLM 已经有了。但我从来就不信,光靠 LLM 就能搞出达到人类水平的 AI。
那我们怎么才能让 AI 系统通过看视频之类的感官输入,来学习关于这个世界的“心智模型” 呢?我们能不能像训练 LLM 那样,用“自回归预测”的思路,去训练一个“生成式架构”,让它能预测视频的下一帧画面呢?答案是:不行,这招没用。我本人在这上面花了 20 年功夫,结果是彻底失败。它对视频预测就是不管用。但它对预测离散的符号是管用的,因为预测下一个符号的时候,处理不确定性相对简单直接:你只要输出一个概率向量就行了(也就是一串加起来等于 1 的、0 到 1 之间的数字)。可视频预测的难点在于,你要预测的是一个维度非常高、而且是连续的对象(也就是一帧图像)。我们现在还不知道,怎么才能在这样高维度的连续空间里,既有效又方便地表示“概率密度函数”。虽然我们可以用“能量函数”来间接表示它,然后再做归一化(这有点像统计物理里的做法,比如用玻尔兹曼分布 (Boltzmann distribution),就是那个 exp (-能量/kT))。但是,对于高维空间里复杂的能量函数来说,要算出那个归一化常数(也叫“配分函数” (partition function)),通常在计算上是搞不定的。
所以说,用标准的“生成式模型”(比如那种直接预测每个像素值的自回归模型),想通过训练它做视频预测来学习世界模型,效果并不好。现在是有很多人在研究生成式视频模型,但他们主要的目标,往往就是生成视频本身,不一定是为了从中学习深刻的世界模型。如果你的目标只是生成视频,那这个方法也许还行。但如果你想让系统真正理解它背后的物理原理和因果关系,那这条路多半是走不通的。你想想,未来明明是不确定的,你非要让系统给出一个唯一的、确定的预测,那结果往往就是预测出来的东西模模糊糊的,或者是各种可能性的一个平均,因为它没办法,只好试着把各种可能性都折中一下。
针对这个问题,我提出的解决方案叫做 JEPA,它的全称是“联合嵌入预测架构” (Joint Embedding Predictive Architecture)。概念图大概是这个样子。可能你第一眼看上去,觉得它跟生成式架构没啥区别。让我来给你讲清楚点。左边这个是生成式架构:它在训练的时候,要最小化的是“预测误差”。你看,它观察输入 X,在训练的时候也观察目标 Y,然后就训练这个系统怎么根据 X 来预测 Y。这跟“监督学习”很像(或者说,如果 Y 本身就是 X 的一部分,那就跟“自监督学习”差不多,比如预测序列里的下一个元素)。这套方法对预测离散的 Y 管用,但是对预测连续的、高维的 Y(比如图像或者视频)就不行了。
右边这个就是联合嵌入预测架构 (JEPA)。你看,输入 X 和目标 Y,都各自经过一个“编码器网络”。这些编码器会算出 X 和 Y 的“抽象表示”(也就是“嵌入”)。X 和 Y 的编码器可以是不一样的。然后呢,预测是在这个抽象的表示空间里进行的(就是从 X 的表示来预测 Y 的表示)。这可能就是个更容易解决的问题了,因为你想啊,原始输入 Y 里面,很多细节信息可能压根儿就没法预测。JEPA 架构的目标,就是要学到一种抽象表示,把那些不可预测的细节给过滤掉或者忽略掉。编码器函数要学习的是“不变性”,目的是把 Y 里面那些跟不可预测因素相关的变化,从表示空间里给去掉。比方说,想象一个镜头在这个房间里扫过。要是我停下镜头,让系统预测下一帧画面是啥,它可能能预测出大体的场景(比如座位上有人),但它绝对预测不了每个人的精确位置和长相,也预测不了地板、墙壁的精确纹理。这里面有太多不可预测的细节了,因为需要的信息根本就不在输入画面里(也就是上下文中没有)。JEPA 就是要学习一种能过滤掉这些不可预测细节的表示,把预测的精力集中在那些能预测的事情上,而不是在那些压根儿预测不了的东西上白费力气。
当然,要有效地实现 JEPA,还有一些技术上的挑战。但结论就是:如果我的说法是对的,那在学习世界模型这件事上,用 JEPA 这种架构要比用标准的生成式架构好得多。为了学习世界模型,我们也许真该放弃那种像素级别的生成式预测了。现在大家都在谈论“生成式 AI”。而我的建议是,要想学习世界模型,咱们就得放弃(像素级预测性的)生成式 AI。
这些架构也有不同的变种,有些可能还会用到潜在变量。不过,一个关键的挑战是怎么去训练这些“基于能量的模型”或者 JEPA 系统。要想训练这种系统学会变量之间的依赖关系,就得学习一个能量函数,让这个函数给那些在训练数据里看到的、匹配的 (X, Y) 数据对打低分(低能量值),而给那些不匹配的、或者离正常数据分布(也就是“数据流形”)很远的数据点打高分(高能量值)。你可以想象一下,所有正常的 (X, Y) 数据点都分布在某个高维空间里的一个光滑的面上(这个面就叫流形)。我们希望能量函数在这个面上得分最低(比如是 0),然后离这个面越远,得分就越高。问题是,就我所知,训练这种系统主要有两种办法。如果这个能量函数特别能变形(就是参数特别多,能拟合出各种形状),那它就可能会“崩溃”。如果你只让能量函数在训练数据点上得分低,其他啥也不管,那系统最后可能就学到一个最简单的解:给所有点都打一样的最低分,变成一个完全平的能量函数。这就是一个没用的“平凡解”。这就叫“崩溃”。
那怎么防止崩溃呢?主要有两种方法。第一种是“对比方法”(Contrastive methods)。你得另外生成一些“反例”样本(图中那些闪烁的绿点),这些点不在正常的数据流形上。然后你明确地告诉模型,要给这些反例打高分,同时给那些正常的样本打低分。你通过设计一个“损失函数”来达到这个目的。但对比方法的毛病在于,到了高维空间它就不太好使了,因为要想把能量函数的样子(也就是“能量地貌”)给塑造好,你需要特别特别多的反例样本,这个数量会随着维度增加呈指数爆炸式增长。
第二种是“正则化方法” (Regularized methods)。这种方法是在损失函数里加一个“正则化项” (regularizer term)。你通过最小化这个正则化项,来间接地限制那些被打低分的输入空间的“体积”,不让它变得太大。这听起来可能有点玄乎,但在应用数学里有类似的想法,比如“稀疏编码” (sparse coding)。当你让一个潜在变量变得稀疏的时候(比如加个“L1 惩罚项”,你其实就是在减小那些能让“重建能量”很低的潜在空间的体积。
所以,基本上就是这两条路:对比方法和正则化方法。不同的架构,发生崩溃的倾向性也不一样。既然这是吉布斯讲座 (Gibbs lecture),我必须再提一下Gibbs的名字。怎么把能量函数正儿八经地变成概率分布呢?就是用“吉布斯-玻尔兹曼分布” (Gibbs-Boltzmann distribution)。你算一个 exp(-β * F(X,Y)),β 是个常数,类似“逆温度”,F(X,Y) 就是能量函数。然后你把这个式子在 Y 的所有可能取值上做个积分,用这个积分结果去除它本身,进行归一化。这样,你就得到了一个规规矩矩归一化了的条件概率分布 P(Y|X)。如果你非要搞“概率建模”,那你训练“能量基础模型”的办法,就是在训练数据上最小化那个“负对数似然函数” (negative log-likelihood, -log P(Y|X))。但问题又来了,那个归一化常数 Z(X),通常算起来太难了,计算上搞不定。所以你就得用近似的方法,比如“变分方法” (variational methods) 或者“蒙特卡洛方法” (Monte Carlo methods)。机器学习领域有很多人在这方面下了大功夫,也从物理、统计这些学科里借鉴了不少想法。我画了个表,把各种经典的方法分成了正则化和对比这两类。
这些方法(包括对比和正则化的)用自监督学习的方式来预训练视觉系统,学习图像表示,已经非常成功了。这些想法的核心,最早可以追溯到 90 年代初,包括我 1993 年的一篇论文,还有 2000 年代中期我和学生们一起做的一些研究。最近这些年,有很多论文,包括 Google 发的那些,都在研究这些方法,尤其是对比方法。你们可能听说过 OpenAI 的 CLIP 模型,它就是用文本做监督,通过对比学习来学视觉特征的。但还是要再说一遍,对比方法随着潜在空间维度增加,它的扩展性不一定好。
我个人更喜欢正则化方法。问题是怎么让它们有效地跑起来。一个关键的目标是防止模型崩溃。那在这种情况下,崩溃到底是什么样子呢?崩溃,指的就是模型只去最小化那个潜在空间里的预测误差(比如说,预测的表示 S_Y_tilde 和目标的表示 S_Y 之间的距离 D),而且 只干这件事。那系统就可以耍小聪明了,它完全不管输入 X 和 Y 是啥,直接输出两个固定的、不变的表示 S_X 和 S_Y,这样误差自然就是零了。但这样得到的模型,就是个崩溃了的、一点用都没有的模型。
要防止这种情况,一个办法(它也算是一种正则化项)就是,在最小化预测误差的同时,还要想办法最大化编码器输出的表示 S_X 和 S_Y 本身包含的“信息量”。比如,你找个办法估计一下信息量 I(S_X) 和 I(S_Y),在它们前面加个负号(表示要最大化它们),然后把这两项加到总的、需要最小化的目标函数里去。但是,直接去最大化信息量是很难的。虽然我们有些跟信息量上界有关的技术(比如最小化“互信息” (mutual information)),但在这种场景下,我们通常没有有效的、方便计算的下限来帮我们最大化信息量。所以,实际操作中,我们是设计一些“代理”目标,通过优化这些代理目标,来间接鼓励模型产生信息量更高的表示(这可能基于一些假设或近似),并期望实际的信息量也跟着提高。而且这招效果还挺不错的,虽然它的理论依据还在完善中,但可能比其他方法要好。
我们具体在用的一种方法叫做VicReg ,全称是“方差-不变性-协方差正则化” (Variance-Invariance-Covariance Regularization)。它的想法里包含一个成本项,要求在处理一批样本时,表示 S_X 的每个维度的方差都要保持在某个阈值以上(比如大于 1,可以用“hinge 损失”来实现)。还有一个成本项,要求这批样本表示算出来的“协方差矩阵”,它的非对角线上的元素都要趋近于零(比如,先把数据“中心化”,然后算 S_X 转置乘以 S_X)。这样做的目的是消除表示向量各个维度之间的相关性,最理想的情况是让不同的特征维度(也就是表示矩阵的列)之间近似“正交”。其他研究者也提出了类似的想法,包括伯克利的马毅(Yi Ma)教授,还有我在纽约大学的一些同事(他们搞了个叫 MMCR 的方法)。我们有一些理论结果表明,在某些条件下,如果你先对数据做了“非线性变换” (non-linear transformation),然后再用这个去相关的标准,它能有效地促进变量之间“两两独立” (pairwise independence),而不仅仅是没相关性,这一点很有意思。不过,完整的理论图像还不清晰。对于嗅觉敏锐的数学家来说,这里面还有很多挑战。
时间关系,我再跳过一些细节,但你其实可以把 VicReg 这个技术用到“偏微分方程” (Partial Differential Equations, PDEs) 上——不一定是为了直接解方程,而是比如,通过观察方程解在不同时空窗口里的样子,来反推出方程本身的系数。具体怎么做呢?你拿到 PDE 的时空解,从里面随机取两个不同的窗口,然后训练一个系统(用 VicReg 的标准),让它不管你取哪两个窗口,都能给它们算出一样的表示。你想,能让系统从不同窗口里提取出来的、共同的不变信息是啥呢?那只能是跟背后那个微分方程本身有关的东西——说白了,就是方程的系数,或者是系数的某种表示。把这个方法用到各种实际问题上,发现它确实管用。想了解更多细节的话,可以找 Randal Balestriero聊聊。他是相关论文的主要作者之一。最关键也很有趣的一点是,用 VicReg 这种方法学出来的 PDE 系数,用它去做后续的预测,效果竟然比直接用监督学习训练来做预测还要好。
除了 VicReg,还有一类替代方法,是基于“蒸馏”的。我们用这些方法,是因为它们在实验中通常效果挺好。但我个人不太喜欢它们,因为感觉它们的理论基础好像还不如 VicReg 或者信息最大化那些方法扎实。我就不细讲它们是怎么工作的了。简单说,你名义上是在最小化某个函数,但实际上你用的那个“梯度下降” 更新步骤,并不能真正让那个函数达到最小值;这里面挺复杂的。虽然也有一些理论论文,但它们通常只在很简化的假设下才成立(比如假设编码器和预测器都是线性的)。总的来说,这不是一个理论上特别让人满意的方法,但它确实在实践中效果很好,很多人用它来自监督地学习图像特征。这类技术里有一种叫做 I-JEPA,我就不细说了,但它在学习图像表示方面做得非常好,学到的表示对后续的监督任务很有用,而且需要的带标签的样本比从零开始训练要少得多。
类似地,还有一个用于视频的版本,叫做 V-JEPA。它的做法是:拿一段视频,在时间和空间上随机“遮掉” (mask) 一大部分区域,然后训练一个 JEPA 架构,让它根据没被遮住的部分(也就是上下文)的表示,去预测那些被遮住部分的表示。结果发现,这样训练出来的系统能学到非常好的视频表示。你可以把这种表示作为后续任务(比如动作分类)的输入,效果非常好。我们最近在准备投的一篇论文里,有个特别有意思的结果:你用这些 V-JEPA 系统去测试,测量它们对视频的预测误差,如果你给它看一段物理上不可能发生的视频(比如一个东西突然消失了,或者自己变形了),系统能检测出来!这时候预测误差会一下子变得特别高,就好像系统在说:“嘿,这事儿不对劲,不可能发生!”这说明这个系统已经学到了一种非常基本的、关于物理世界可能性的“常识”,这跟我前面提到的婴儿学习有点像。这个结果挺让人惊讶的,因为我们并没有专门训练它去检测“异常”,它只是被训练去预测那些被遮住的部分应该是什么样的表示而已。
我们还一直把自监督学习训出来的编码器和预测器用在规划任务上。这就又说回到世界模型了。假设有张图显示了当前世界的状态(比如桌子上有一堆筹码),同时有个系统控制着一个机械臂。我们希望这个系统能操作机械臂,让最后的状态跟我们想要的目标状态一样(比如,把所有蓝色的筹码都弄到指定的方框里去,就像图里画的那样)。我们先训练一个编码器(可以用像 DINOv2 这样预训练好的),然后再训练一个世界模型,让它在抽象的表示空间里预测,如果采取某个特定的动作,会导致什么结果。它能不能预测出来,最后那个摆着蓝色筹码的棋盘的状态,对应的表示是什么?一旦有了这个世界模型(这个模型可以在随机动作的数据上训练),我们能不能用它来规划一连串的动作,最终达到我们想要的目标状态呢?我们已经把这套方法用在了好几个问题上,发现它在规划方面效果确实不错。这就是那个蓝色筹码任务的结果。大家看到的是一段视频(你看不到机械臂做了什么动作,但它确实在动)。上面显示的是真实世界里筹码状态的变化。下面显示的是系统通过它内部的世界模型,预测接下来会发生什么(这个预测结果是通过一个另外训练的“解码器”,把内部表示又变回图像,这样我们就能看见了)。我再放一遍。在下面这个预测画面里,你可以看到,随着机器人推着筹码移动,预测的状态也在一步步变化。最后预测的状态虽然不是个完美的正方形,但也相当接近了。这个任务需要在复杂的“动态系统”里做规划,因为筹码之间会相互碰撞、相互影响。对于这样的系统,你很可能没法靠手工建立一个足够精确的模型来做有效的规划。我们还有类似的研究,把这些想法用到了真实环境里的导航规划上。
所以,我的建议如下:放弃(像素级预测性的)生成式模型,拥抱联合嵌入架构(比如 JEPA)。放弃纯粹的概率模型,拥抱基于能量的模型。放弃对比方法,拥抱正则化方法。放弃“无模型的强化学习”,拥抱“基于模型的方法”,比如模型预测控制和规划。如果你真的想实现达到人类水平的 AI,别只盯着 LLM。如果你是 AI 领域的博士生,我劝你最好别直接去做扩展 LLM 的工作,因为你得跟那些有几万块 GPU 的大公司工业团队竞争,想在那儿做出重大贡献太难了。
那有哪些问题需要解决呢?怎么构建大规模的世界模型?怎么才能有效地用“多模态输入” 来训练它们?怎么开发出更好的规划算法?最优控制和各种优化技术方面的深厚功底,在这里可能会派上大用场。用简单的基于梯度的方法在这些学到的模型里做规划时,会碰到“局部最小值”和可能“不可微分”的问题。像 ADMM(交替方向乘子法)这样的方法也许能帮上忙。其他的关键问题还有:怎么做带潜在变量的 JEPA?怎么在“不确定的环境” 里做规划?怎么有效地对潜在变量进行正则化?以及,怎么实现真正的分层规划?基于能量的学习,它的数学基础到底是啥?当我们跳出严格的概率学习框架时,我们就进入了一个不那么熟悉的领域,到底什么样的训练过程才是最优的,还不完全清楚。还有一个我没怎么谈到的问题是,怎么让系统自己学习成本函数或者目标模块。世界模型难免不准确,怎么在这种情况下做有效的规划,并且不断调整模型,这也非常关键。
也许,要是我们能在未来五到十年里把这些问题解决了,我们就有望走上正轨,去构建真正智能的,也就是能够规划和推理的AI 系统。我个人觉得,要让这一切朝着好的方向发展,唯一的办法就是让底层的平台保持“开源”;我本人就是开源 AI 的铁杆支持者。如果我们成功了,AI 就能成为放大人类智能的强大工具,这肯定是一件大好事。非常感谢大家。
来源:人工智能学家