大家好,欢迎来到IT知识分享网。
采访者: 智能,简单来说就是处理新事物、应对你以前没碰过的情况,并且能够快速地提出在这种情况下合理的模型的能力。这在大型语言模型(LLM,Large Language Model,指使用大量文本数据训练的深度学习模型)里很少见。如果你让它们解决和训练数据完全不同的问题,它们就束手无策了。
人工智能通用推理基准测试 (ARPGI)
采访者: 可以把ARPGI(Artificial Reasoning Purpose for Artificial General Intelligence,人工智能通用推理目标,用于测试人工智能系统推理能力的基准测试)想象成一种智商测试,人类可以做。它对人类或AI智能体(能够感知环境并采取行动以最大化成功机会的实体)来说其实很简单。
你看到的每个任务,你接到的每个任务都是全新的。它跟数据集里的任何其他任务都不一样,也跟你可能在网上找到的任何东西都不一样。ARPGI的设计就是为了防止死记硬背,而其他所有基准测试都可以只靠记忆来蒙混过关。
与AI研究人员的讨论:内省的有效性
采访者: 我跟AI研究人员交流时,和他们一起做过ARPGI挑战,他们试图观察自己的内省(对自身思维过程的审视)。他们会说,我正在看这个问题,我知道它跟颜色有关,我知道它跟计数有关。然后他们在脑子里运行程序,然后他们说,1,2,3。不行,这不行。
我觉得内省在理解你的大脑如何进行系统2思考(指需要意识控制的、缓慢而费力的思考过程,例如进行复杂的计算)方面非常有效。我觉得它对系统1思考(指自动的、快速的、无需努力的思考过程,例如识别面孔)没用,因为系统1本质上是你无法直接访问的东西。它发生在你大脑中你无法通过意识直接观察到的部分,就像无意识地、瞬间地发生一样。但系统2不是这样。
系统2是非常深思熟虑的。它很慢,带宽很低(指信息处理能力有限)。它很容易反省。
与Francois Chollet的对话:规模并非万能
采访者: 不过这里还没提到的是 Francois Chollet(深度学习专家,Keras库的创建者),很荣幸你能来参加这个采访。说实话,这对我意义重大。你是我的偶像,所以非常感谢你。
Francois Chollet: 很高兴来到这里。我说你不应该有偶像。
采访者: 我不应该?
Francois Chollet: 对。
采访者: 为什么不?
Francois Chollet: 这会带来令人失望的体验。对我来说不会。
采访者: 好吧。
Francois Chollet: 是的,对我来说不会。但我希望我能达到你的期望。
采访者: 肯定会的,我相信你会的。Francois,你一直批评AI领域里“规模就是一切”的观点。能详细说说吗?
Francois Chollet: 当然。这个“规模就是一切”的想法,来自于训练深度神经网络(一种模仿人脑结构的机器学习模型)时观察到的规模缩放定律。规模缩放定律指的是你在深度学习模型(通常是LLM)中看到的性能与训练它们所用的数据和计算量之间的关系。它通常被表述为:元素性能作为训练计算量的函数的对数比例关系。
很多人由此推断,我们可以从这些模型中获得的性能是没有限制的。我们只需要把计算量提高几个数量级就可以了。最终,我们仅仅通过扩大计算量就能获得远超人类水平的性能,而模型架构和训练方法都不需要改变。
问题在于你衡量性能的方式。目前,性能是通过考试式的基准测试来衡量的,这些测试实际上就是记忆游戏。所以实际上是在衡量LLM对你用来测试它的问题的答案的记忆能力,不一定是确切的答案,但可能是你需要用来得到答案的程序模板之类的东西。如果你衡量的东西本质上是由记忆驱动的,那么随着你增加系统中的记忆量(比如参数数量、训练数据量,而计算量实际上只是它的一个代表),看到更高的性能是理所当然的。
因为,显然,如果你能记住更多,你在记忆游戏里就会做得更好。我的观点是,你观察到的这种性能提升实际上跟智能无关。你并没有真正衡量智能,因为你的基准测试可以完全通过事先准备、记忆来蒙混过关。如果你想测试智能,你需要一种不同的游戏,一种你无法准备的游戏,比如ARPGI。我觉得如果你看看ARPGI的性能随时间的变化或者作为计算量的函数,你就不会看到这种关系。
事实上,今天ARPGI上性能最高的模型并不需要大量的计算。有些程序化方法实际上根本不需要训练计算,因为它们根本没有经过训练。它们确实需要一些推理计算,但数量不多。
语言模型:解释性数据库
采访者: 你说过,语言模型是解释性数据库(指语言模型像一个数据库一样存储信息,并通过解释查询来生成文本)。我前几天跟Sabaro聊过,他称它们为近似检索系统(指语言模型通过检索与查询相似的文本片段来生成文本)。很多人跟我说,Tim,这太荒谬了。它们当然不是数据库。它们会进行推断(指从已知信息推出新信息的逻辑过程)。但我认为作为一种关于记忆的直觉引导,这就是它们在做的。你也在Substack博客(一个在线出版平台)上写过这方面的内容。
Francois Chollet: 是的。记忆就是它们做的。我觉得,人们搞不明白的地方在于,当他们听到记忆时,他们认为LLM只是在记忆问题的答案,只是在记忆内容。当然,它们确实记住了很多内容,很多知识、事实等等,但这不是它们主要做的事情。它们主要记忆的是函数,程序。
这些程序确实在一定程度上可以泛化(指模型能够将其在训练数据中学到的知识应用于未见过的数据的能力)。而且可以进行零样本泛化(Zero-shot Learning,指模型能够处理在训练过程中没有明确见过的数据的能力)。当你查询LLM时,你基本上是在查询程序空间中的一个点。你可以把LLM想象成一个流形(Manifold,指局部具有欧几里得空间性质的空间,在深度学习中常用于表示数据的潜在结构),其中每个点都编码一个程序。当然,你可以跨越这些流形来组合程序,或者通过插值(Interpolation,指在现有数据点之间估计新数据点的方法)之类的方式来组合程序,这意味着你有无数种可能的程序可以选择。
语言模型:解释性数据库(续)
LLM的情况是,你正在训练它们,训练这些非常非常丰富、非常灵活的模型来预测下一个标记(Token,指文本中的最小语义单元,例如单词、标点符号等)。如果你有无限的记忆容量,你当然可以只学一个查找表。但在实践中,LLM只有几十亿个参数(Parameter,指模型内部用于学习数据模式的可调整变量)。所以它不能只为字符串数据中的每个序列学习一个查找表。它必须压缩。所以它实际学习的是预测函数,这些函数以向量函数(Vector Function,指输入和输出都是向量的函数)的形式出现,因为LLM是一条曲线(Curve,指在高维空间中表示模型的连续函数)。所以你能用曲线编码的唯一东西就是一堆向量函数。
所以你学习的是向量函数,它们以输入序列的元素作为输入,并输出后面的元素。比如,假设LLM第一次遇到莎士比亚的作品,但LLM已经学习了英语的模型。现在它看到的文本略有不同,但仍然是英语。所以可以通过重用很多从学习英语模型中得到的函数来对它进行建模。通过学习一种风格转换函数,把你的模型转换成莎士比亚风格的文本,建模莎士比亚就容易多了。
这就是为什么你最终可以用LLM进行文本风格转换。因为它结果表明,学习独立于内容的风格比学习内容更节省空间。基于同样的模型,LLM会学习数百万个独立的预测函数,它当然可以通过插值来组合它们,因为它们都是向量函数。它们不像你想象中的Python程序那样的离散程序(Discrete Program,指由一系列明确的步骤组成的程序)。它们实际上是向量函数。
因为当你说程序时,很多人认为程序是带有条件逻辑(Conditional Logic,指根据条件执行不同指令的逻辑)的东西,而LLM不是那样的。
采访者: 是的,它几乎就像以一种输入敏感的方式。你看到这种穿越模型的遍历,它就像一个映射(Mapping,指将一个集合的元素关联到另一个集合的元素的函数)。所以它感觉像一条曲线,输出映射,这个映射是连续的(Continuous,指函数值的变化平滑,没有突变)。
Francois Chollet: 它是通过曲线实现的。但我们可以把它描述成程序吗?
采访者: 可以。
Francois Chollet: 当然可以,它们是函数。
采访者: 你说它们是可组合的(Composable,指可以将多个函数组合成一个新函数)?
Francois Chollet: 是的,因为这些函数是向量函数,你可以对它们求和,你可以在它们之间进行插值以产生新的函数。
万花筒假说
采访者: 我喜欢这个万花筒假说。你能通俗地介绍一下万花筒假说吗?
Francois Chollet: 当然。大家都知道万花筒是什么吧?它就像一个纸筒,里面有一些彩色玻璃碎片。这些少量的原始信息被镜像、重复和变换,创造出极其丰富的复杂图案。它很漂亮。
万花筒假说就是说,世界总体上,以及任何特定领域,都遵循同样的结构:它表面上看起来极其丰富、复杂,每时每刻都有无限的新意。但实际上,它是由少数几个基本意义单元的重复和组合构成的。智能的一个重要部分就是从你对世界的经验中挖掘重复出现的片段,并提取出这些独特的意义单元。
当我们提取它们的时候,我们称它们为抽象概念(Abstraction,指从具体事物中提取出共同特征或属性的过程)。然后,当我们建立起这样的抽象概念库时,我们就可以重复使用它们来理解新的情况,那些表面上看起来很独特、很新颖的情况,但实际上,它们可以通过组合这些可重复使用的抽象概念来解释。这就是智能背后的基本思想。智能是一种认知机制,你用它来适应新事物,理解你从未见过的情况,它通过将现有的构建模块(抽象的构建模块)组合在一起,快速地创建描述新情况的模型,而这些构建模块是从你过去的经验中提取出来的。
这里有两个关键技巧。一个是综合(Synthesis),你把这些构建模块快速组装起来,形成一个与你当前面临的任务或情况相匹配的程序模型。另一个是抽象生成(Abstraction Generation),这是一个反向过程,你查看你获得的关于世界的信息,比如你的经验、你的感知,以及你创建的用来响应它的模型。你会把这些精华提炼成可重复使用的抽象概念,然后存储在你的记忆里,以便下次使用。所以是综合和抽象生成。它们在我的模型里,至少在我的AGI(Artificial General Intelligence,通用人工智能,指拥有人类水平认知能力的AI)架构里,共同构成了智能。
对智能的清晰视角
采访者: 你在AI领域已经非常 prominent(杰出,卓越)很多年。是什么经历或见解让你在职业生涯早期就形成了如此清晰的智能观?
Francois Chollet: 如果你读过我以前的一些博客文章或者我的深度学习书的第一版,你会看到我开始谈论深度学习如何做好系统1(自动化、快速且无需努力的思考过程),但做不了系统2(需要意识控制的、缓慢而费力的思考过程)。我开始谈论程序合成(Program Synthesis,指自动生成满足特定需求的计算机程序的技术)的必要性,大约是在2016年中期。我开始大量写这方面的东西是在2017年。但实际上,我是在2016年开始形成这些想法的。有几件事促成了这一点。我觉得其中一个重要的催化剂是跟 Christian Szegedy(谷歌AI研究员)一起用深度学习做自动定理证明(Automated Theorem Proving,使用计算机程序自动证明数学定理的任务)。核心思想是,定理证明跟程序合成非常相似。你基本上是在做树搜索(Tree Search,一种在树状结构中搜索目标节点的算法),操作符(Operator,指在定理证明中用于操作逻辑表达式的规则)来自DSM(我猜测这里指的是某种特定领域的符号系统,但上下文没有明确说明)。核心思想是用深度学习模型来指导搜索过程。
所以我尝试了很长时间,尝试了很多不同的想法。但我尝试的所有方法基本上都失败了。我的意思是,它比随机的效果好得多,但如果你分析它的表现以及它如何比随机表现更好,它只是在做影子模式识别(Shadow Pattern Recognition,指模型学习了与目标任务相关的表面特征,而不是真正的底层逻辑)。它并没有真正进行任何系统2推理。这对我来说是一个巨大的障碍,我无法通过调整架构或训练数据或其他任何东西来克服它。存在模式识别捷径,而且每次都会走这条捷径。你无法通过深度学习来学习可泛化的离散程序(Discrete Program,由一系列明确步骤组成的程序)。这对我来说是一个很大的启示,因为在那之前,我跟这个领域的其他人一样,都假设深度学习模型是一个非常通用的计算基底,你可以训练深度学习模型来执行任何类型的计算,它们是图灵完备的(Turing Complete,指具有执行任何其他图灵机所能执行的计算的能力)。
大约在同一时间,2015、2016年,有很多类似的想法出现,比如神经图灵机(Neural Turing Machine,一种结合了神经网络和外部存储器的计算模型)的概念。当时人们,包括我,都认为这是一个非常有前景的方向,深度学习最终可以取代手写软件。我很早就接受了这些想法。但在后来,在那些尝试让神经网络做数学运算的实验中,我意识到它们实际上从根本上受到了限制,它们是一个模式识别引擎。如果你想进行系统2思考,你需要其他的东西。你需要程序合成。那时候我就形成了这种认识,并开始谈论它。但总的来说,我已经思考智能以及如何创造智能很长时间了,比如我的第一个AGI架构,是在2010年夏天开发的。我开发它的原因是因为在那之前的几年里我一直在思考它。所以我已经在这个领域待了很长时间了。
捷径规则:深度学习的局限性
采访者: 快速聊聊捷径规则(Shortcut Rule,指模型倾向于学习更容易的、与目标任务相关的表面特征,而不是真正的底层逻辑),因为我觉得这才是问题的核心。深度学习,基本上,就像我们把它投射到欧几里得空间(Euclidean Space,一个具有距离和角度等几何概念的数学空间),唯一的语义度量就是欧几里得距离(Euclidean Distance,在欧几里得空间中两点间的直线距离)。所以这些模型学习了一系列伪相关(Spurious Correlation,指两个变量之间看似相关但实际上没有因果关系的相关性),也许伪相关比非伪相关更多。
Francois Chollet: 它们这么做的原因是,无论你看什么,总有一些噪声元素会被错误地解释为有意义的,伪相关总是可以用来解释一些东西。也是因为深度学习模型是曲线(Curve,在高维空间中表示模型的连续函数),这意味着它们是高维空间中的连续可微表面。我们正在用随机梯度下降(Stochastic Gradient Descent,一种用于训练机器学习模型的优化算法)来拟合这些曲线的参数。曲线可以用曲线表示很多东西,但它不是表示任何离散计算的良好基底。你可以做到。你可以在曲线上嵌入离散处理,但这并不是一个好主意。在这种格式下拟合可泛化的离散程序并不容易。这就是为什么你最终会发现,让深度神经网络学习如何对列表排序或学习如何对两个数字序列求和非常困难。即使是最先进的LLM,它们也很难做到这一点。它们已经学习了数百万个数字求和的例子,但它们在新数字上的准确率仍然只有70%左右。它们记住了程序来做这件事,但因为这个程序是一个向量函数,嵌入在一条曲线上,它不是一个很好的程序,不是很准确。你在任何类型的算法处理中都会反复看到这一点。
采访者: 对正在阅读的读者解释一下,分段线性函数(Piecewise Linear Function,一种由多个线性函数片段组成的函数)仍然是一条曲线。人们可能会对此感到困惑,因为他们认为曲线是平滑的东西。
Francois Chollet: 但他们应该看看曲线在维基百科上的定义。你完全正确。它仍然是一条曲线。
神经网络与图灵机的差距
采访者: 你提到了神经图灵机(Neural Turing Machine,一种结合了神经网络和外部存储器的计算模型),它当然不是图灵机(Turing Machine,一种理论计算模型,可以执行任何可计算的算法),但它的行为有点像。你觉得神经网络不是图灵机,它们之间的差距是什么?
Francois Chollet: 从根本上说,我觉得用梯度下降拟合参数曲线很适合我所说的“以值为中心的抽象”(Value-Centric Abstraction,指基于连续值和距离函数进行比较和泛化的抽象方法),就是说你会通过连续距离函数来比较事物,这意味着你会嵌入事物。我说的“事物”是指某个东西的实例,比如图像、离散概念或单词。这会导致你把它们嵌入到流形(Manifold,指局部具有欧几里得空间性质的空间)上,在一个空间里,两个相似的事物最终会靠得很近,而流形上的不同维度在语义上是有意义的。你可以用曲线做到这一点,因为这种标志的连续性自然会让你通过连续距离来比较事物。但这非常不适合任何类型的2型抽象,也就是我所说的“以程序为中心的抽象”(Program-Centric Abstraction,指基于离散结构和符号操作进行推理的抽象方法),在这种抽象里你实际上是对图(Graph,一种由节点和边组成的数学结构)感兴趣。你对通过距离函数比较图不感兴趣。你感兴趣的是比较两个图何时完全相同,或者更准确地说,何时一个图看起来是更大图的子组件。
比如,作为软件工程师,如果我正在重构代码,如果我想通过把多个函数表示成一个函数来压缩代码,我对这些函数在感知层面的相似程度不感兴趣。我感兴趣的是它们是否实现了完全相同的程序,或者以不同的形式。也许我需要在那里注入一些抽象。这是你必须一步一步明确地进行的比较。你不能只看两段代码,然后不假思索地说,哦,它们看起来很像。
这种能力的描述
采访者: 你怎么描述这种能力?它像一种认知风险(Epistemic Risk,指由于知识或理解不足而导致的风险)而不是偶然风险(Aleatoric Risk,指由于随机性或不可预测性而导致的风险),或者验证(Verification,指确认某事是否正确的过程)可能是更好的描述?
Francois Chollet: 我觉得逐步验证是一个很好的描述。刚才我说它绝对不像那种感知的、连续距离式的比较。这是对的。但我认为它也可以由感知引导。进行这种逐步精确比较的成本很高。它很快,需要你集中注意力一段时间。所以你不会想用蛮力搜索(Brute-Force Search,一种尝试所有可能解的搜索方法)的方式在许多不同的候选函数上进行它。你想用直觉来找出少数几个选项,然后精确地验证这些选项。所以我确实认为我们有能力对离散对象进行近似距离比较。但关键是,这些快速比较并不精确。它们是近似的,所以它们可能是错的。我觉得如果你尝试用它来编程,你会从LLM中得到同样的输出。它们经常会给你一些感觉对但实际上不对的东西。总的来说,我认为在使用深度学习或LLM时要记住的是,它们很擅长给你方向上准确但实际上不准确的东西。所以如果你想好好利用它们,你需要事后验证的步骤。
观察孩子成长对智能和学习的思考的影响
采访者: 观察你孩子的成长对你关于智能和学习的思考有什么影响?
Francois Chollet: 当你观察孩子成长时,你会注意到建构主义(Constructivism,一种学习理论,认为学习者通过主动构建知识来学习)是完全正确的。他们以非常主动的方式学习。他们尝试各种东西。从这些经验,这些非常刻意的经验中,他们提取出新的技能,然后他们将这些新技能再投资于新的目标。你可以很清楚地看到,学习,尤其是在儿童身上,是以一系列反馈回路(Feedback Loop,指输出被反馈到输入,从而影响后续输出的循环过程)的形式进行的,孩子会注意到一些有趣的事情,想出一个主意,并把它设定为目标。比如,想象你在地板上爬,然后你注意到一些看起来很有趣的东西。你会想,嘿,我要抓住它。这就是你的目标。现在你进入了一个反馈回路,你正努力实现这个目标。你正在为此做一些事情,然后你得到一些反馈,你正在评估。你有计划、行动、反馈、回到计划的循环。如果你达到了目标,那么在这个过程中,你就会学到一些东西,你就能在你下一个努力中重新投资这项新技能。
他们设定目标的方式总是基于他们已经知道的事情。你一开始知道的不多,比如你刚出生的时候,你只有一些反射动作(Reflex,指对刺激的无意识的、自动的反应)。但当你开始形成这些目标时,它们总是来自你已经掌握的层面。你就像一层一层地构建你自己的思维。比如,一开始,你最重要的感觉运动能力(Sensorimotor Affordance,指环境中的事物如何被生物体感知和利用的可能性)之一是你的嘴,因为你有吮吸反射,这非常重要。这是你与生俱来的,不是后天习得的。它很重要,因为这是你进食的方式。你还有抓握反射来抓东西。但你还不能用它,因为你还不能完全控制你的四肢。所以你不能真正抓住东西。但当你开始更多地控制你的四肢时,你就会想抓住东西。在你抓住东西之后,你做的第一件事就是把它送到嘴里吮吸。因为你设定了这个目标,因为它对你已经知道怎么做的、已经觉得有趣的事情来说,听起来很有趣。一旦你知道怎么抓东西,你就会把它添加到你的内心世界中,它会成为这些东西之上的下一层。
接下来,你学习爬行。你为什么要爬?你为什么要向前移动?因为你看到了一个看起来很有趣的东西,你想抓住它。你在学习爬行来抓东西。你在学习抓东西来把它放进嘴里。你没有学习把东西放进嘴里,因为它已经是本能了。你就像这样一层一层地构建你自己。基本上,你所知道的一切,你所想的一切都是建立在更低级别的原语(Primitive,指构成更复杂行为或技能的基本单元)之上的,而这些原语又是建立在更低级别的原语之上的,以此类推。最终,它回到了新生儿拥有的那些非常基本的感觉运动能力。
我相信我们尤其是在年幼的孩子身上,是建构的,他们根据他们在世界上的变革性经验来建构他们的思想。你必须这样做,你不能在真空中思考。你必须用一些东西来构建思想,而这些东西是从你的经验中提取出来的。你越小,你的思想就越接地气,它们与你在世界上正在经历和做的事情的关系就越直接。随着你长大,你的思想会变得越来越抽象,越来越脱离物质。但它们最终还是建立在物质层上的。只是层的塔变得如此之高,以至于你再也看不到地面了,但它仍然是相连的。
儿童、万花筒和抽象
采访者: 所以孩子们看到了万花筒,而万花筒是由宇宙中的抽象概念创造的。然后孩子们随着时间的推移从万花筒中推导出抽象概念并进行推理?
Francois Chollet: 是的。他们注意到在他们的经验或他们自己的行动中,有一些片段似乎可以重复使用,似乎可以用来理解新的情况。随着你不断地学习,你就在建立这些庞大的可重用片段库,拥有它们让你在理解新情况时非常有效。
采访者: 你说建构主义,这很有趣。你认为孩子们会构建不同的抽象概念,还是说有一种吸引力(Attractor,指系统趋向于稳定状态的动力学概念),吸引着他们去表现宇宙创造的那些抽象概念?不同的人会想出不同的模型吗?
Francois Chollet: 在某种程度上,可能会。但因为这些模型最终都是从同类型的经验中提取出来的,而且是通过同类型的过程提取出来的,所以我认为它们最终会非常相似。你确实会看到不同的孩子遵循略微不同的发展轨迹,但最终,它们都大致相同。它们都大致遵循相同的阶段,也许时间不同。
语言模型的智能:接近于零
采访者: 你说过,语言模型的智能接近于零。我只是好奇,如果接近于零,那哪一部分又不是零呢?
Francois Chollet: 人们觉得这说法很惊人,因为他们一直在用LLM,发现它们很有用,看起来很有意义,很像人类。所以我说它们的智能接近于零,这听起来很震撼。但关键在于理解智能和技能、行为是不同的概念,你可以擅长某件事,但并不一定聪明。智能具体来说就是处理新事物的能力,应对你以前没见过的情况,并快速地想出在这种情况下有意义的模型。这在LLM里很少见。如果你让它们解决和训练数据中任何内容都大相径庭的问题,它们就会失败。
也就是说,如果你这样定义智能,并且你想出一种基准测试方法,比如ARPGI,然后你用LLM(所有最先进的LLM)来测试,它们的表现不是零。这就是我说的“非零”部分的来源。也就是说,这种非零表现,这种适应新问题的能力,究竟是真正的智能还是基准测试的缺陷,还不完全清楚。也许基准测试并没有真正产生完全新颖的问题。也许这个问题或那个问题跟LLM在它的字符串数据(String Data,指以文本字符串形式存储的数据)中看到的东西之间存在很大的重叠。这很难控制,因为LLM记住了太多东西。它几乎记住了整个互联网,加上专门为它创建的大量数据标注。我们根本不知道训练数据里有什么。所以很难说,但我确实觉得LLM能够在某种程度上重新组合它们知道的东西,来适应它们真正没见过的事情。只是这种重组的程度,它们的泛化能力非常弱。
组合创造力与外推
采访者: 这就说到点子上了,因为很多人认为这种组合创造力(Combinatorial Creativity,指通过组合现有元素来创造新事物的能力)或者这种外推(Extrapolation,指从已知数据推断未知数据的值)确实构成了新的模型构建。我的理解是,如果你把训练过程也考虑进去,那显然是模型构建。
Francois Chollet: 显然是。它只是梯度下降(Gradient Descent,一种用于寻找函数最小值的优化算法),就像把曲线拟合到数据集一样。从某种意义上说,它确实是模型构建。主要问题在于它是一种非常低效的模型构建方法。它需要一个好的模型,你需要对模型在测试时必须处理的几乎所有东西进行密集采样(Dense Sampling,指对数据进行密集采样的方法)。所以模型实际上只表现出弱泛化能力(Weak Generalization,指模型只能泛化到与训练数据非常相似的数据的能力)。它可以适应它没见过的事情,但前提是这些事情跟它以前见过的事情非常接近。
而智能的意义在于能够适应分布之外的东西,因为现实世界不是一个分布。每天都是新的,每天都不同。但你必须应对它。
批评与反驳:LLM的局限性
采访者: 批评者会说(我能理解),我一直在用 Claude(Anthropic公司开发的大型语言模型)的 Sonnet(可能是指Claude的一个特定功能或模型)来写代码。我每个月在 Cursor(一个代码编辑器)上大约要花2000个请求,所以我经常用它。它在很多情况下看起来都很有先见之明(Clairvoyant,指能够预知未来的能力)。我敢肯定他们会争辩说,因为它训练了这么多东西,所以它的凸包(Convex Hull,指包含给定点集的最小凸多边形或多面体)足以捕捉我们可能需要的任何新颖性。所以,问题在哪?
Francois Chollet: 我经常听到这种说法。他们认为新颖性被高估了,只需要在所有东西上训练就可以了。认为存在对你可能想做的所有事情、可能想知道的所有事情的密集采样。我不同意这种说法,因为想象一下你在10年前训练了一个LLM,而你现在想用它,它不会知道你正在使用的编程语言,不会知道所有的库等等。它看起来会没那么聪明,只是因为你的知识有缺口。世界一直在变化。
你可以说,如果你每天都用新抓取的数据重新训练模型呢?当然可以,这能解决一些问题,但它仍然可能在某个时候遇到真正新颖的问题,在互联网上找不到解决方案的问题。这时候你就需要智能了。我非常有信心,在未来某个时候,也许是不久的将来,我们能够创造一个真正能够解决新颖性问题的系统,它能够真正地将它知道的东西重新组合起来,以真正原创的方式来解决全新的问题。一旦我们有了这样的系统,我们就可以开始发展新的科学。你今天用LLM做不到的一件事就是发展新的科学。它们最多只能把你读过的东西插值(Interpolate,指在现有数据点之间估计新数据点)一下再复述给你。它们不会让你走上重大发现的道路。
人类监督的作用
采访者: 再一次扮演魔鬼代言人。我同意创造力和推理来自提示者(Prompter,指向LLM提供输入文本的人)。因为我们把模型拟人化(Anthropomorphize,指将人类特征赋予非人类事物)了,我们错误地把功劳归于人类,但在LLM的可寻址空间(Addressable Space,指LLM可以处理或理解的信息范围)内,在人类监督下,我相信我们能够创造性地探索已知事物的凸包,也许不能创造新的事物。
Francois Chollet: 你可以这样做。这是一个由人类驱动的过程,因为人来判断什么是有趣的,什么是胡说八道。如果没有这种外部验证,就很难好好利用LLM。我认为在使用LLM时始终要记住的是,它们很擅长提出有用的建议,但你不应该盲目相信它们的建议。尤其是代码之类的东西。你应该始终把它作为起点,但要验证,确保它是正确的。LLM很擅长指引你正确的方向,但它们不擅长给出完全正确的答案。这就是为什么所有成功的LLM或应用程序的实现中都有人类监督员参与。
对智能的再次探讨
采访者: 读者都知道,Janik(播客的制作人)和我之前已经根据你的“智能的衡量标准(Measure of Intelligence)”论文做了大约8个小时的内容。我们仔细研究了它,它非常吸引人。你能简单介绍一下吗?就当复习一下。
Francois Chollet: 我对智能的定义是技能习得效率(Skill Acquisition Efficiency)。智能和技能是分开的。如果你用一个基准测试来衡量AI在某件事上的技能,那它就不是智能的基准测试。完全有可能在不展现任何智能的情况下获得高分。如果你想真正衡量智能,你必须看系统在给定有限数据量的情况下习得新技能的效率。你必须控制系统可以访问的数据,这通常有两种形式:先验信息(Prior Information,指在进行特定任务之前已知的信息),也就是系统在看你的基准测试之前就能访问的信息;以及经验(Experience),也就是系统从你给它的任务(基准测试)中提取的信息量。
所以,如果你控制了先验信息,控制了经验,并衡量了技能,你就得到了技能习得效率的某种衡量,也就是在整体任务上获得高性能的信息效率。这就是我试图把它变成具体基准测试的原因,也就是ARPGI数据集。
关于“智能的衡量标准”的快速说明
采访者: 关于“智能的衡量标准”的一个潜在问题是它不可计算(Noncomputable,指无法通过算法精确计算的),因为我们无法表示所有可能任务的域(Domain,指函数的输入值的集合)。
Francois Chollet: 在论文里,我对我的智能衡量标准进行了形式化(Formalization,指将概念或想法用精确的数学或逻辑语言表达出来的过程),它是不可计算的。它的目的不是用作实用工具。你不会真的想在这个系统上运行这个方程式并得到一个数字。它是一种形式主义,有助于精确地思考智能。它是一种认知工具,不是实用工具。
采访者: 图中你把智能系统描述成一个在适应新事物的同时生成技能程序的东西。但我一直在想,你说的是一种元学习先验(Meta-Learning Prior,指在学习新任务之前就存在的、有助于学习的先验知识)。人类天生就具备这种元学习先验吗,或者这也是我们学习的?它对AI系统来说应该一样吗?
Francois Chollet: 这是一个非常重要的问题。智能不是技能。它是一种元技能(Meta-Skill,指学习和掌握新技能的能力),是获得新技能的技能。这种元技能是通过经验获得的,还是天生就有的,硬编码(Hard-Coded,指直接写入代码,而不是通过学习或配置获得)在大脑里的?我认为答案是两者都有。我觉得人天生就拥有智能,天生就拥有这种技能习得机制。但技能习得机制不是在真空中运行的。它由两部分组成:综合引擎(Synthesis Engine),它查看新的情况、新的任务,并尝试将现有的部分、现有的抽象概念组合成针对该任务、该领域的模型;以及抽象引擎(Abstraction Engine),它查看我们已经生成的模型,查看可用的信息,并尝试生成可重复使用的抽象概念,添加到库中,供综合引擎下次使用。
这个库当然是通过经验获得的。你的抽象概念库越好,你的综合效率就越高,你获得新技能的效率就越高。所以我认为这种宏观层面的智能架构是天生的。但随着你在一生中使用它,你会越来越擅长,你不断地在打磨它。
采访者: 所以,你不是从零开始学习智能,而是在打磨它。我认为你打磨它的另一个机制是,合成机制可能包含了学习的组件。也就是说,从现有抽象概念进行合成,这本身就是一种技能,你用得越多就越熟练。我举个例子,一个 15 岁的孩子比一个 10 岁的孩子在学习新技能方面肯定更强。这一点很有趣,因为某种程度上,你把理性主义、天赋论和经验主义结合起来了。
Francois Chollet: 因为我认为你说的其实是创造全新的技能程序,而不仅仅是把基础程序拼凑起来。但更广泛的问题是,我们是在进行“库学习”[1]。孩子们发展、完善、精炼、构建这些抽象概念。而复杂化是有代价的,因为这个“库”不能太大。
[1] 库学习: 指的是像建立图书馆一样,积累大量的知识和技能模块。
采访者: 对吧?“库”太大了就没办法搜索了。所以,有没有某种修剪机制,或者它最终会收敛到某个大小?我们的认知发展在某个阶段似乎会停滞不前,是不是因为这个原因?
Francois Chollet: 很有可能。这是一个非常深刻的问题,对于构建通用人工智能 (AGI)[2] 也非常实际。你的 AGI 会有一个可复用原语[3]库。你想让这个库无限扩展下去,还是限制它的大小?比如,最多一百万个程序?
采访者: 所以,很明显,我们高效学习新技能的能力,也就是我们的智力,并不会在一生中无限增长。它似乎在比较早的时候就达到了顶峰。我认为这里有一个平衡:你的“原生”脑力(比如你在某个时间点能整合到大脑中的信息量)会随着年龄增长而不可避免地减少。但你使用的抽象概念的质量,以及你组合它们的直觉——合成引擎[4]中学习到的组件——会随着时间推移而得到打磨,变得越来越好。
所以,一方面有让你更聪明的因素,另一方面也有让你“变钝”的因素。经验上讲,智力可能在二十岁出头达到顶峰。那是你学习新技能效率最高的时候。但这也分情况。我认为,高阶认知可能在二十岁出头达到顶峰,但有些东西你应该更早学习。认知的发展是逐层递进的,每一层都建立在前一层的基础上。底层结构通常在 15 岁之前就固定下来了。所以,如果你想掌握任何处理底层和原始基元的技能(比如精通乐器、唱歌,或者学会某种语言的母语口音),你通常应该在 15 岁之前去做。
[4] 合成引擎: 指的是将各种组件(包括学习到的和预先设定的)组合起来,形成更复杂技能的机制。
采访者: 是的。关于抽象概念,你可以说它受计算能力的限制,也可以说它会最终收敛到一些普遍的抽象概念。但我想说说你刚才提到的。我个人认为知识非常重要。我花了好几年时间跟 Keith Duggar 学习,他是我认识的最聪明的人之一。他在麻省理工学院拿到了博士学位,他教会了我如何变得聪明。就看他思考问题的方式,我就感觉我的大脑被重新编程了。我宁愿像现在这样,也不想回到二十岁出头的时候。
Francois Chollet: 更好的抽象。好得多的抽象。
采访者: 但我也可以举出反例。我跟一些教授聊过(我就不提名字了),他们太依赖自己的知识,而不是流体智力[5],他们显得非常固执。所以,知识太多、流体智力不足也可能不是好事。似乎需要某种最佳平衡。
[5] 流体智力: 指的是在没有先验知识的情况下,解决新问题、适应新环境的能力,通常与逻辑推理、模式识别等相关。
Francois Chollet: 是的,这取决于你是否相信你已经拥有了所有答案,或者你是否相信你拥有可以用来找到答案的模板。获得更好的问题解决模板,甚至是通用学习模板,会让你更聪明。这是教育的目的之一。学习数学、物理、编程,你就拥有了所有这些元层面的问题解决模板,让你解决问题更高效,甚至学习新东西也更高效。我认为 20 岁的时候,我在语言学习的方法和策略上都比 12 岁的时候高效得多,即使 12 岁的时候我的大脑可塑性更强,记忆力更好,更容易记住东西。但我当时没有合适的工具。这些工具非常重要。 如果你认为你已经拥有了所有答案,你就不会去创造新东西或寻找新信息。也许这就是一些知识分子会掉进去的陷阱——他们认为自己已经无所不知,所以不需要继续探索了。但如果你只是仔细收集和整理解决问题的方法,或者一些有趣的想法,即使你还不确定如何使用它们,但它们听起来很有用、很有趣。然后,当你遇到新事物的时候,你会去你的“库”里寻找最合适的连接点。
这就是你获得顿悟的方式。如果你把所有这些事情都记在心里,当你遇到新事物的时候,你不会因为它你已经知道一切(或者你认为你已经知道一切)而忽略它,你会试着把它和你脑海中那些等待被点亮的东西联系起来。然后,你就会获得“尤里卡”时刻[6]。
[6] 尤里卡时刻: 指的是突然找到问题的答案或解决方案的顿悟时刻。
采访者: 是的,模板被激活了。我可以用你的“智力测量”论文为例。我花了几个星期研究那篇论文,非常仔细、非常深入地阅读。我记得里面有很多我当时难以理解的想法。现在,我再读一遍,很快就明白了。很多其他论文也是如此,因为你在 MLST[7] 上学习了这些抽象概念。我们一直专注于抽象概念。但这也许是有代价的,因为我只是沿着认知路径走,我的大脑只是“一亮”,然后我就理解了,但我可能错过了一些其他东西。
[7] MLST: 可能是指机器学习系统或某种特定的机器学习技术,由于原文中没有明确说明,这里保留原文缩写。
Francois Chollet: 当然。通过抽象化细节,你可以在第三次或第四次阅读时专注于更大的图景,然后在更高的层面上发现新东西。你不会再被细节困扰。
采访者: “智力测量”论文的结尾,是 99 年……
Francois Chollet: 是 2019 年。
采访者: 你介绍了 ARC 挑战赛[8],即抽象与推理语料库。你能介绍一下吗?
[8] ARC 挑战赛: 全称 Abstraction and Reasoning Corpus,是一个旨在测试人工智能程序推理能力的挑战赛。
Francois Chollet: 抽象与推理语料库 (ARC) 是一个数据集、一个基准测试,试图捕捉我在论文中概述的智力测量方法。它基本上是一个机器智商测试,但也设计得对人类很容易。它是一组推理任务。每个任务会提供几个(通常是 2 到 4 个)演示示例,每个示例包含一个输入图像和一个输出图像。输入图像基本上是一个彩色网格,通常很小,从 5×5 到 30×30 不等。30×30 是最大的。你会在这个输入网格中看到一些模式,然后你会被告知它映射到另一个有不同模式的输出网格。你的任务是找出从输入到输出的转换方式,也就是程序是什么。你会得到几对这样的输入-输出对,用来学习这个程序。 然后你会得到一个全新的输入网格,你必须通过自己生成相应的输出网格来证明你理解了这个程序。这对人类来说很容易。数据集被分成不同的子集。有一个公共训练子集,通常比较容易,旨在演示任务所基于的核心知识先验[9]。
[9] 核心知识先验: 指的是人类在婴幼儿时期就具备的一些基本认知能力,例如对物体、空间、数字等的理解。
核心知识是另一个重要概念。我提到的网格特征模式肯定是指某些东西。为了构建任何东西,你需要构建块。这些构建块就是核心知识,是所有人类都被期望在大约 4 岁时掌握的知识先验,比如对象的概念(什么是对象)、基本几何(对称、旋转等)、基本拓扑(事物的连接性)、代理性(目标导向性)等。ARC 中的所有任务都建立在这些知识原子上。训练子集旨在演示核心知识是什么样的,以防你想应用机器学习方法,从数据中学习它,而不是硬编码它。 然后有一个公共验证子集,它的难度与私有测试集相同,目的是让你测试你的解决方案,看看你能得到多少分。最后是私有测试集,这是我们在 Kaggle[10] 上用来评估比赛成绩的。这对人类来说很容易,我们找了两个人来验证私有测试集,每个人都得了 97 到 98 分。私有测试集中只有 100 个任务,这意味着他们在没有事先接触的情况下,解决了 100 个任务中的 97 到 98 个。两个人加起来就解决了所有任务。他们没解决的任务也没有重叠。这表明,如果你是个聪明人,你应该能解决数据集中几乎所有任务。
[10] Kaggle: 一个进行数据科学和机器学习竞赛的在线平台。
事实证明,这个数据集对 AI 系统来说极其困难。我在 2019 年发布了这个数据集。今天,最先进的技术是今天早上才达到的,准确率是 46%。
采访者: Jack 和他的团队真棒。
Francois Chollet: 是的,Mohammed、Jack 和 Michael,恭喜你们。
采访者: 恭喜。顺便说一句,其实还有一种方法没有公开,但它确实存在,应该至少能达到 49%。49% 是你把 2020 年比赛中所有提交的方案集成起来[11]就能达到的分数。
[11] 集成: 指的是将多个模型的预测结果结合起来,以提高最终预测的准确性。
Francois Chollet: 哇。为什么没人这么做?嗯,这不是同类比较。我们说的是 100 个提交,每个提交都对暴力程序搜索[12]做了一些略微不同的调整,但你有 100 个。每个提交都消耗了一定的计算时间。所以,即使你拥有所有这些提交的所有代码,把它们整合到一个大型程序中,在比赛中运行它也需要太长时间。某种程度上,通过集成这些提交,你相当于扩大了暴力程序搜索的计算量,从而获得了更好的结果。在极限情况下,如果你有无限的计算能力,你应该可以通过暴力程序搜索解决 ARC。我们可以设计特定领域的语言 (DSL)[13],用简洁的方式描述 ARC 转换,简洁到只需要 40 种不同的转换就能表达一个解决方案程序。你的 DSL 中会有大约 200 个原语。如果计算能力无限,你肯定可以找到所有深度为 40 的程序。
采访者: 关于这一点,有一个有趣的讨论点。我跟 Ryan 和 Jack 提过,即使你有无限的计算能力,仍然存在选择问题,因为你可以根据复杂度来选择。
Francois Chollet: 这相对容易,因为你可以选择最简单的,比如最短的。
采访者: 但最简单的就是最好的启发式方法[14]吗?
[14] 启发式方法: 一种基于经验或直觉的解决问题的方法,不保证一定能找到最优解,但通常可以快速找到一个可行的解。
Francois Chollet: 经验上讲,是的。奥卡姆剃刀原理[15]——“如无必要,勿增实体”——在实践中似乎有效。另一个潜在的弱点是……你提到了 Elizabeth Spelke。正在阅读的朋友们,你们应该读读她的书。她是哈佛大学的心理学教授,她提出了那些核心知识先验。但我认为你很大程度上是从心理学学派的观点来看待这个问题的,那就是我们应该理解人类心理的心理学,并围绕它构建人工智能。对吗?
[15] 奥卡姆剃刀原理: 一个解决问题的原则,主张选择最简单的解释。
Francois Chollet: 我对人工智能应该模仿人类认知的想法持谨慎态度。我认为我们对人类思维的理解还不够,不足以指导我们创造人工智能。我对智能如何运作以及如何创建其软件版本有自己的想法,但它只是部分地来自内省和观察人类。
采访者: 有意思。我说它可能是一个潜在弱点的原因是,假设我们选择最低复杂度的程序。我们有无限的计算能力,我们进行程序合成。然后我们假设,因为所有泛化空间[16]都包含在我们开始使用的先验的组合闭包中[17],那么它就会有效。
Francois Chollet: 是的。
采访者: 但这是一个假设。
Francois Chollet: 当然,但这是一个合理的假设。你也可以训练一个系统来判断一个给定的程序是否可能泛化。它会使用 DSL 中的长度作为其特征之一,但不是唯一特征。ARC 挑战的另一个重点是任务多样性。我们之所以需要任务多样性……我想如果我理解正确的话,最初的 ARC 挑战赛中大约有 900 个任务。你提到了“开发者感知的泛化”。它是什么,为什么这么重要?
Francois Chollet: “开发者感知的泛化”是指,如果泛化是适应与你之前经历过的事情不同的东西的能力,那么参考系就很重要。你是从使用 AI 的代理的角度来看,还是从开发 AI 的开发者角度来看?代理能否适应它以前从未经历过的事情,这重要吗?或者,你是想让代理适应开发者无法预料的事情?我认为正确的参考系是开发者的参考系,否则,开发者会通过硬编码或预训练将正确的模型和数据内置到系统中,使引擎能够表现得非常好,但实际上并没有泛化能力,只是利用了内置的先验知识。关于当前的 ARC 基准测试,我想知道你是否可以评论一下它的弱点。Melanie Mitchell 发表了一篇文章,说它应该是一个“移动的”基准测试[18],Dilip George 发表了一篇有趣的文章,说它可能以我们不希望的方式在感知上纠缠在一起。你对它潜在的弱点的反思是什么?
[18] 移动的基准测试: 指的是基准测试的数据集或任务应该不断更新,以避免模型过度拟合到特定数据,并更好地反映真实世界的变化。
Francois Chollet: ARC 是我第一次尝试捕捉智力测量方法。这只是一次粗略的尝试,因为我在技术上受到我所能创造的东西的限制。它当然有很大的局限性。我认为第一个局限性是它在多样性和新颖性方面可能没有达到目标。 ARC 版本 1(顺便说一句,还会有版本 2)中的一些任务实际上非常相似,存在一些冗余。它们也可能与网上存在的一些东西非常接近,这可能是你看到大型语言模型能够解决一定比例 ARC 任务的原因之一——它们可能在训练数据中见过类似的东西。 所以,我认为这是主要的缺陷。Melanie Mitchell 提到像这样的基准测试应该是一个“移动的”基准测试。我完全同意。最终,为了测量智力,你需要的不是静态数据集,而是一个任务生成过程,你可以要求它生成新任务。它能够生成独特、不同、专门为你定制的任务。它会把任务给你,然后可能会测量你在解决任务方面的数据效率。它首先可能会给你 1 或 2 个示例,挑战你找到答案。如果你找不到,它可能会再给你几个,然后再给你几个。 这之所以有趣,是因为你可以开始对非常低智能的方法进行基准测试,例如曲线拟合[19]和梯度下降[20]。从技术上讲,曲线拟合和梯度下降是一种程序合成,所以你应该能够将它应用于 ARC。你不能这样做的主要原因是每个任务只有几个示例,而且空间不是可解释的[21],所以它行不通。曲线拟合行不通。但如果每个任务有 1000 个示例,你可以想象你可以拟合一条曲线,这条曲线可以泛化到新的输入。 如果你有这种动态任务生成和示例生成系统,你就可以开始对这些技术进行基准测试。这将很有趣,因为你可以在相同的尺度上对曲线拟合、Transformer[22]、程序搜索、暴力程序搜索、启发式程序搜索、深度学习引导的程序搜索等进行评分。然后你就可以非常具体地看到更聪明意味着什么,数据效率更高意味着什么。 当你拥有这种动态基准生成过程时,你还可以评估不同系统的泛化能力。你可以测量模型合成过程的数据效率,以及输出模型的泛化能力。你可以用不同难度的输入来挑战测试者。你从最简单的级别开始,用很少的示例来演示一个任务,例如非常简单的测试输入。随着你深入,你会添加更多示例来细化问题的约束,但你也会给测试者更难的示例,来测试它可以泛化到多远,或者它可以生成多复杂的模型。我喜欢“生成式 ARC”的想法。
[19] 曲线拟合: 一种通过找到一条曲线来尽可能接近地表示一组数据点的方法。
[20] 梯度下降: 一种常用的优化算法,用于找到函数的最小值。
[21] 可解释的: 指的是模型的预测结果可以被人类理解其原因。
[22] Transformer: 一种基于自注意力机制的神经网络架构,常用于自然语言处理任务。
采访者: 最终 ARC 会成为一个生成式基准测试。
Francois Chollet: 是的。我想这与世界上的事物运作方式类似。宇宙有一个生成函数[23]。它产生万花筒,我们从万花筒反向推导出生成函数。 但关键在于,在这个智能过程中,我们需要知道先验[24]是什么,先验必须是基本的,或者可以从一开始就存在的那些基本先验中推导出来。
Francois Chollet: 没错。这里要避免的大陷阱是……这也是我没有将 ARC 1 作为生成式基准测试发布的原因。顺便说一句,这是我当时在设计最终成为 ARC 的东西时的第一个研究方向。我想创建一个程序合成基准测试,其中的测试示例由某个主程序创建。我研究了许多不同的方向,例如细胞自动机[25]等。例如,你得到了细胞自动机的输出,你需要逆向工程产生它的规则。最终,我没有选择这个方向有几个原因。一个原因是我希望任务对人类来说容易、直观,这很难做到。 我还想避免对核心知识进行过度形式化,因为任何对核心知识的形式化表述都可能会丢失一些你无法用语言表达但确实存在的重要东西。还有一点非常重要,如果你只写一个主程序来生成数据集,那么数据集中任务的复杂性从根本上受主程序复杂性的限制。作为试图解决基准测试的人,我只需要逆向工程主程序,然后我就可以用它来生成无限多的它可以拟合的任务,或者我可以拟合一条曲线。或者我只需硬编码已经理解主生成函数如何工作并可以预测它的系统。它可以激活成功教程基准测试。这就是为什么我最终选择了这种模式:ARC 1 中的每个任务都是手工制作的。我认为这触及了一个微妙但非常重要的问题:解决智能问题的方法必须与挑战、基准测试共同进化。基准测试应该是一个将研究人员指向正确方向的工具,它提出了正确的问题。 但提出这些问题本身就是一个复杂的问题。如果你能想出一个主程序来生成一个足够丰富、足够复杂、足够新颖、足够有趣的智力测试,那么想出这个程序与想出 AGI 一样难。它们实际上是同一类事情。你基本上需要 AGI 来创建 AGI 要解决的挑战。
[25] 细胞自动机: 一种离散的计算模型,由大量简单的单元格组成,每个单元格的状态根据预先定义的规则进行更新。
采访者: 这些程序应该有多可解释?例如,你可以解释你今天早上喝咖啡的原因,我会理解。但 AGI 大概可以为我们不理解的事情建立模型,例如经济或金融市场等。这将是一团难以理解的混乱。它如何运作?
Francois Chollet: AGI 将能够处理新的问题、任务、领域,并能非常快速、高效地从非常少的数据中建立模型。这个模型应该是预测性的,能够预测它所观察的系统的未来演变。它也应该是因果的,你可以用它来规划目标。例如,假设我有一个经济模型,我想让它达到某个状态。我可以采取一些干预措施,这些干预措施会在因果关系上导致达到期望的状态。它应该是一个预测模型、一个因果模型,你可以用它来模拟系统的行为。我认为这使得它本质上是可解释的。你不需要解释模型如何工作,只需展示它的实际运行情况。例如,假设我们正在研究 ARC,而不是经济。目前的程序合成方法都在寻找输入到输出的转换程序。如果你没有阅读程序的内容,你可以通过在测试输入上运行它来看它的输出。我认为真正的 AGI 生成的模型不仅仅是输入到输出的转换。它们会解释任务的内容。你可以使用这些程序来生成任务的新实例,或者从输出到输入(如果适用),而不仅仅是从输入到输出。这种程序非常易于解释,因为你可以生成新示例并查看它们。
采访者: 我可以想象可能会有某种中介接口进行封装,我们理解这个接口。但也许我们应该从另一个角度来思考这个问题。我跟一些 AI 研究人员一起完成了 ARC 挑战,他们正在尝试进行内省。他们说,我正在研究这个问题,我知道它与颜色有关,与计数有关。然后他们在脑海中运行程序,说 1、2、3……不对,这行不通。然后他们尝试将它形式化为某种方法。你认为我们内省的方式是构建 ARC 挑战解决方案的有用方式吗?
Francois Chollet: 我认为内省在理解系统 2 思维[26]方面非常有效。我认为它对系统 1 思维[27]无效,因为系统 1 思维本质上不是你可以直接访问的。它发生在你无意识中,瞬间发生在你无法直接观察到的部分。但系统 2 思维不是这样的。系统 2 思维是深思熟虑的,非常慢,“带宽”很低。任何时候都只有几件事发生。它非常适合内省。你描述的,你在看一个新任务,试图用你脑海中的一组属性来描述它,然后你想出几个关于哪些程序可能符合这些描述性约束的假设,然后在脑海中执行它们,以检查你的直觉是否正确。这是机械的系统 2 思维。我认为这基本上就是大脑中程序合成的工作原理。但这里没有提到的是所有支持系统 2 思维的系统 1 部分。我非常相信人类思维中的任何认知过程都不是纯粹的系统 1 或系统 2。一切都是两者的混合。即使你在做一些看起来非常需要推理的事情,例如解决 ARC 或做数学或下棋,实际上有很多模式识别和直觉在起作用。你只是没有注意到它。例如,你只考虑了 2 到 4 种不同的 ARC 任务假设。实际上,潜在程序的空间是巨大的,有数十万种可能的程序。但你只看到了 2 或 3 种。进行这种减少的是你的直觉,或者说是模式识别。它是系统 1 思维。反之亦然。即使是看起来非常像系统 1 思维的认知过程,例如感知,实际上也有相当多的系统 2 元素。我认为感知是非常组合的。它不像深度学习模型那样进行纯粹的输入到输出匹配。实际上发生了相当多的泛化和组合,这是系统 2 思维。
采访者: 我非常同意这两个系统之间存在某种奇怪的纠缠。
Francois Chollet: 是的。我们知道有一个任务肯定与颜色有关。
采访者: 选择……你可以把它想象成 SQL 查询[28]:按颜色分组,选择计数,按降序排列,跳过 1,取 3。它类似于溯因推理[29],因为对这组假设发生了这种感知推理。然后在某个时候,我进行一些事后验证,这看起来确实像系统 2 思维,但整个事情似乎像交响乐一样协同工作。
Francois Chollet: 是的。它们如此交织在一起,以至于说我们是系统 1 加系统 2,或者系统 1 对比系统 2,可能 framing 本身就是错的。也许我们应该寻找的是另一种认知底层的数据结构或基质,它本质上既是系统 1 又是系统 2。你描述的,你在脑海中所做的基本上是程序合成,但这种程序合成很大程度上受到感知原语和直觉的引导。 所以当我们在计算机中实现程序合成时,我们可以做一个简单的贪婪暴力搜索[30]。然后我们就会遇到组合爆炸[31]问题。
采访者: 跟我说说吧。
Francois Chollet: 如果你在做程序合成,你遇到的主要障碍是……程序合成在高层次上,是你有一种语言。通常是特定领域的语言 (DSL),因为它是一个捷径,它不像 Python 这样的通用语言。你在这种语言中有一些函数,用来创建程序。程序基本上就是这些函数的组合。在 ARC 中,程序通常以输入网格作为输入,并产生相应的输出网格。你进行程序合成的方式是尝试一堆这些函数的组合,对每个程序,在实践中运行它,在目标输入上运行它,查看相应的输出,并检查净输出是否是期望的输出。你会对所有示例、所有程序都这样做。然后你看看哪些程序实际上匹配,在所有示例中都产生了正确的输出。也许你找到了一个匹配的程序,也许找到了 10 个,然后你必须做出选择,猜测哪一个更有可能泛化,通常是最短的那个。但你面临的巨大瓶颈是程序空间的大小——你必须查看的程序数量——随着 DSL 中的构建块数量以及程序的大小组合式地增长。如果你正在寻找例如包含 40 个不同函数调用的程序,你面对的是一个非常大的空间,不可能遍历所有程序。这就是组合爆炸瓶颈。 人类显然没有这个问题。就像你描述的内省过程,你看一个 ARC 任务,只逐步执行了很少的程序,而且你只执行它们来验证它们是否正确,你显然依赖于一种极其强大的直觉,这种直觉并不完全可靠,这就是为什么你仍然需要验证。它不会给你完全正确的答案,有点像大型语言模型 (LLM)。我认为 LLM 做的实际上是同一种组合过程,更好地匹配。它是直觉,所以你仍然需要验证,但它方向上是正确的。它在筛选几乎无限的程序空间并将它减少到几种可能性方面做得非常好。我认为这是认知中真正困难的部分:减少过程。所以有一些有趣的方法来解决 ARC。我跟 Jack Cole 和 Ryan Greenblatt 谈过,然后还有 DreamCoder 那种方法。也许我们应该从 DreamCoder 开始,因为……你知道,麻省理工学院的 Tannenbaum 小组,Kevin Ellis 是 DreamCoder 论文的作者,他实际上正在与 Zena Tavares 合作建立一个名为 Basis 的实验室。前几天我跟他们谈过,他们非常关注 ARC 挑战,他们正在将麻省理工学院的很多工作应用于 ARC 挑战,这真的很酷。但关键在于 DreamCoder……请介绍一下它是什么。
采访者: 它是一种非常优雅、漂亮的方法来解决 ARC,但不幸的是,它目前效果不太好。
Francois Chollet: 我读那篇论文已经有一段时间了,但我记得 DreamCoder 是一种程序合成技术,它试图创建一个可重用原语库,这个库会随着它被用来解决新任务而发展。我认为这是一个从根本上正确的想法,它可能是我见过的唯一一个将这个想法付诸实践的系统:抽象生成——利用你的经验和问题解决经验来尝试抽象出可以放入 DSL 中以便以后重用的函数。
采访者: 我还记得它有“清醒-睡眠”周期[32]。
[32] 清醒-睡眠周期: 指模型在训练过程中交替进行“清醒”阶段(例如生成样本)和“睡眠”阶段(例如更新参数)。
Francois Chollet: 是的,用来训练……他们有一个用于程序的神经网络生成模型,然后有一个睡眠阶段重新训练生成模型,还有一个叫做抽象睡眠的阶段,将效果很好的程序组合在一起,丢弃没有很好使用的程序。
采访者: 是的,这就是我所说的抽象生成。
Francois Chollet: 我认为智能有两个关键组成部分:合成——将现有的构建块组装、组合在一起,创建与当前情况匹配的程序;以及抽象生成——回顾你生成的模型,或者你获得的关于世界的数据,并尝试从中提取可重用的构建块,将它们存储到内存中,以便下次重用。DreamCoder 实际上正在尝试实现这两个组件,我认为这是正确的方向。所以它非常有前途。那么 Jack Cole 呢?你如何看待他的解决方案?那是排行榜上的 Minds AI 小组。
Francois Chollet: 他们做的基本上是 LLM——一个编码器-解码器模型[33]。我认为它是基于 T5[34] 架构的。他们在大型代码和数学数据集上进行预训练,因为这显然有帮助,这本身就是一个有趣的发现。然后,他们在数百万个生成的类似 ARC 的任务上对其进行微调。他们以编程方式生成了大量看起来像 ARC 任务的任务,并在其上微调模型。所谓微调,是指他们为每个任务标记化[35]任务描述,将其简化为一系列标记。这很容易,将它输入到 LLM 中,他们期望以标记化形式生成输出网格,然后将其解码出来。这个设置本身效果并不好,只解决了很小一部分任务。但他们添加了一个非常强大的技巧:测试时微调[36]。他们获取预训练的 LLM,在每个新任务的推理时,生成 LLM 的微调版本。他们通过应用一堆随机硬编码转换来生成任务的变体,将其转化为一个小型训练数据集。他们在该训练数据集上微调 LLM,然后在测试输入上应用微调后的模型,并生成测试输出。这个测试时微调技巧使他们的模型性能从很低提升到 40% 以上,这令人印象深刻。从更大的角度来看,我认为他们做的与程序搜索没有太大区别,只是处于频谱的不同位置。你可以将程序搜索视为一个具有两个轴的频谱:DSL 的丰富性和复杂性;以及重新组合这些构建块的方式的丰富性和复杂性。离散程序搜索通常会在非常小的 DSL 上运行,包含 100 到 500 个基本函数。但它会以非常复杂的方式将它们重新组合,以获得例如深度为 20 的程序。Jack Cole 所做的基本上是将 LLM 变成了一个包含数百万个可重用向量函数的数据库——一个非常大、非常广泛的 DSL。然后,测试时微调使用梯度下降将这些原语重新组合成一个新程序。从不使用测试时微调到使用测试时微调的巨大性能提升,实际上证明了重组、程序搜索是智能的关键组成部分。如果你只进行静态推理[37],不做任何重组,或者你做的只是上下文内学习(使用记忆化的重组程序),那么你基本上没有表现出多少智能。
[33] 编码器-解码器模型: 一种神经网络架构,由编码器和解码器两部分组成,编码器将输入数据转换为隐藏表示,解码器将隐藏表示转换为输出数据。
[34] T5: 一种由 Google 开发的强大的语言模型。
[35] 标记化: 将文本转换为一系列离散的标记(例如单词或子词)的过程。
[36] 测试时微调: 指的是在测试阶段对模型进行微调,以适应特定测试数据的特性。
[37] 静态推理: 指模型的参数在推理过程中保持不变,不进行任何更新。
采访者: 如果你正在通过测试时微调来进行重组,那么你实际上就是在构建我之前描述的智能的综合组件了。问题在于,梯度下降是一个非常弱的、数据效率很低的方法。它实际上用错了方法。所以最终结果就是,生成的程序的重组深度非常浅,对吧?
Francois Chollet: 所以,在不同程序的谱系中,Minds AI 的解决方案就在于此: 他们在 DSL (领域特定语言)轴的丰富性上达到了极致,但在重组深度轴上却得分很低。而离散程序搜索,通常的实现方式,则完全处于谱系的另一端:你有一个非常小、非常简洁的 DSL,但重组却非常复杂,对吧?我的直觉是,让人类智能与众不同的是,它不位于谱系的任何一端,而是在两者之间。
你能够访问一个非常庞大、非常丰富的抽象库——其中包含各种想法和思维模式,但你也能够在运行中将它们重新组合,产生非常有意义的新东西。当你产生新的想法时,你的大脑里并没有在进行测试时微调,你根本没有用到梯度下降。你是在进行某种形式的离散程序搜索,但你是在一个非常丰富的基本组件库的基础上进行的,这让你能够在几秒钟内解决任何 ARC(抽象推理语料库)问题。我记得几年前读过你的《用 Python 进行深度学习》这本书,你在书中提到了微调的风险。
采访者: 你必须把学习率设置得非常低,因为你可能会破坏原模型中的那些表示。我跟 Jack 聊的时候,他说(我不确定有多少内容可以公开),他把微调编码成了一种语言,这种语言会增强模型的现有结构。所以,你知道,他有点像在说,我想把它作为基础模型,通过转换描述来增强它。还有,关于主动推理,它不是弗里斯顿式的主动推理,而是测试时的推理。这跟你之前说的不一样,它不再是一个简单的检索系统。
Francois Chollet: 我现在实际上是在生成新的组合,作为推理过程的一部分。没错,它不仅仅是一个检索系统。当你只是对大型语言模型 (LLM) 进行静态推理时,你只是在给它提示,然后得到一些结果。那是纯粹的检索,几乎没有发生任何重组。任何重组,如果真的发生了,都必须通过这些预先学习好的重组程序之一。例如,有些人说上下文学习是利用了 LLM 中潜在的某种硬编码的梯度下降算法。也许确实如此。但不管实际发生了什么,很明显,从经验上看,它效果并不好,它并不能很好地适应新情况。
但是,如果你加入测试时微调,那么你就真的开始进行重组了,对吧?你不仅仅是在重新应用存储在 LLM 中的程序。你在尝试修改它们,把它们重新组合成适合当前任务的东西。这就是过程智能,对吧?我认为,方向上,这是对的。我唯一觉得有问题的是,梯度下降只是一种很糟糕的重组方式。我的意思是,它当然是一种程序合成算法,对吧?但它用错了方法。
采访者: 所以,我的意思是,我采访 Jack 的时候跟他讨论过这个问题。虽然我承认它是一种通用方法,但它仍然是特定于领域的,因为你必须想出提示技巧来微调语言模型等等。但原则上它可以应用于相当广泛的问题领域。你同意它违背了你衡量智能的标准的初衷吗?
Francois Chollet: 这种方法的某些元素确实与竞赛精神不完全一致。我特别指的是在数百万个生成的 ARC 任务上预训练 Mr. Alam 的想法。这有点像试图预测私有测试集中可能出现什么。试图生成尽可能多的任务,并希望生成的的内容与测试集中实际出现的内容之间发生碰撞。所以,这当然是在试图通过记忆来“激活成功教程”基准测试。这不是我们想要的。但是,你知道,最终,作为基准测试的创建者,我们有责任确保它实际上无法通过记忆来“激活成功教程”,它需要能够抵御记忆。如果我们在这方面做得不好,因为它实际上可以预测私有测试集中的内容,那就是我们的问题。在实践中,我认为我们做得还不错,因为,如果你没有进行测试时微调,你在测试集上的准确率就会非常低。这表明测试集实际上是相当新颖的,对吧?我认为这也表明,目前最好的 LLM,如果你只是直接给它提示,它的表现,比如最好的 Cloud 3.5,准确率只有 21%。这意味着,大约 80% 的数据集是相当新颖的,即使你用整个互联网作为参考,也差不多是这样。所以这实际上是一个好兆头。但我认为,Jack Cole 的方法,整体上也符合我的想法,因为它做的是一种程序综合。只不过它是通过学习来收集的,它正在收集这个巨大的 DSL,对吧?然后它进行非常浅的组合。我们需要梯度下降吗?我认为你不需要,但它最终有效,对吧?所以,为什么不呢?我同意这一点。实际上,从精神上来说,这是正确的方法,但它受限于大型语言模型上的随机梯度下降。
采访者: 这是一个有趣的过渡。在你的《使用 Python 进行深度学习》一书中,大概是第 4 章,你谈到了泄漏问题。这对想要学习机器学习的人来说非常有启发性。我们之所以有训练集、验证集和测试集,是因为我们不希望信息在这些集合之间泄漏,而这可能会无意中发生。例如,每次有人在 ARC 挑战赛中获得新分数时,都会在私有集合上进行测试,这就是信息。然后人们修改他们的方法,就好像他们看到了私有集合中的某些东西一样,而实际上他们并没有直接看到。
Francois Chollet: 没错。他们看到的是他们测试的方法效果更好。所以现在他们了解了一些关于私有测试集常数的信息。很多人,即使是机器学习专家,都有一种误解,认为只有当你直接用某些东西来训练时,你才会过拟合。情况并非如此。例如,几年前,人们在进行神经架构搜索,以找到在 ImageNet 上表现良好的新卷积架构。他们都使用 ImageNet 作为参考。他们所做的是挖掘这个巨大的可能架构空间,并选择那些在 ImageNet 上训练时表现良好的架构。你最终得到的架构是在架构层面上过拟合 ImageNet 评估集的。一般来说,如果你有任何过程从你的评估数据集中提取信息,即使只是很小的信息,并将这些信息重新注入到你的模型中,即使它不是一个自动化的过程,即使只是你查看结果,然后手动调整方法,你都会开始逐渐过拟合你正在测试的内容。最终,这也会发生在 ARC 的私有测试集上。只是因为每次你提交内容时,你得到的唯一信息是你的总分,你并没有真正提取很多信息。但最终,因为每个参与者每天可以提交 3 次,而且参与者很多,最终,我们会开始过拟合,这也是我们要发布数据集版本 2 的部分原因。对于数据集版本 2,我们要做一些非常重要的事情,那就是我们将会有 2 个私有测试集。一个将用于你在提交时进行评估并可以看到分数。这将是公开的正常分数。但我们还会有一个额外的私有测试集,我们只会在比赛结束时用它来评估你的解决方案。这样你就可以在比赛过程中只获得你在第一个私有测试集上的表现如何的反馈,对吧?但在最后,我们会用新的测试集替换它,然后你就要希望你的模型能够泛化到新的测试集上。“希望”是关键词。
采访者: 是的。现在或许是时候谈谈我们 Redwood Research 的朋友 Ryan Greenblatt 了。我采访过他,他是个非常聪明的人,我很喜欢和他交流。他做了一种……你知道,用 LLM 生成大量的候选程序,然后在一个他不想称之为神经符号框架的框架中验证它们,我觉得这很有趣。你怎么看待他的方法?
Francois Chollet: 我觉得,方向上来说,这是正确的方法。你知道,我们之前描述过,当你解决 ARC 任务时,你会生成少量的假设——它们就是程序,然后你会在你的大脑中实际执行它们,来验证它们是否正确,对吧?这就像一个过程,你使用一个大型的直觉机器来生成候选程序。你希望这些候选程序或多或少是正确的,但你又不确定,对吧?所以你仍然需要通过类似系统 2 的过程来验证它们,在这种情况下,就是一个代码解释器。对你来说,你实际上是在你的大脑中执行你的程序。我认为这基本上和我们看到的蛮力程序搜索或 Minds Eye 方法是同一种东西,只是在程序谱系中的不同点而已,对吧?Joel,你知道,对我来说最有希望的研究方向是将深度学习与离散程序搜索结合起来。也许不完全是 Ryan Greenblatt 正在做的,但用深度学习模型来指导程序搜索的想法——它必须查看更少的程序或子程序——绝对是正确的想法,对吧?所以我对它取得好结果并不感到惊讶,而且我确实希望我们会继续看到这种方法的变体取得更好的结果。我想做的一个改变是,与其生成端到端的 Python 程序,然后只进行二进制检查(正确或错误),不如……我觉得生成基于特定 ARC DSL 的可修改图可能会更有趣。然后,与其只检查程序是否正确,不如对你的候选程序进行局部离散搜索。基本上,就是使用你的候选程序作为种子点,作为离散搜索的起点,以减少离散问题搜索过程需要做的工作量。还有,你应该使用 LLM 作为一种让你朝着正确方向前进的方式,但你永远不应该相信它会正好落在正确的位置上。你应该假设你落点的地方可能接近解决方案,但并不完全是解决方案。所以你仍然需要做一些手动工作才能从 LLM 生成的候选程序到最终的解决方案。这项工作必须由类似系统 2 的过程来完成。
采访者: 我和他讨论过这个问题,他仍然认为他们正在进行涌现推理,并且在足够大的规模下,偶然风险和认知风险之间的差异会趋于零。当然,我不同意这一点。但我同意你的观点,如果系统当前是无状态的,那不是很好吗?如果有一个程序库,也许可以通过检索增强生成进入库,那不是很有趣吗?他的解决方案有一些有趣的特性,你可能想评论一下。他使用了视觉,他正在做一些有趣的提示,他正在使用自我反思,他有一种候选评估方法。你对这整个事情怎么看?
Francois Chollet: 我觉得很有希望,而且,是的,我认为我们会继续看到它的变种表现良好。这就是为什么你在挑战赛中引入了公共赛道的原因。你知道,我们不断听到人们说,“嘿,我相信 GPT-4 可以做到这一点。” 我们就想,“好吧,也许可以试试。” 当然,你不能用 GPT-4 参加私有竞赛,因为这会涉及到将私有任务数据发送到 OpenAI 服务器,这样数据就不再是私有的了。所以这是不可能的。所以我们做的是引入了一个备选测试集,我们称之为半私有。它是私有的,因为我们没有发布它,但它也不完全是私有的,因为它会被发送到 OpenAI 服务器和/或 Anthropic 服务器等等。我们这样做是因为我们希望像 Ryan Greenblatt 这样的人出现,并提出一些复杂的思维链管道,并在可能的情况下证明我们错了。
采访者: 在我们结束这部分之前,你知道还有其他一些有趣的、也许不在公共领域但你知道的方法吗?
Francois Chollet: 我知道有些人声称他们有 ARC 的解决方案,但我不知道具体细节。他们往往是非常保密的人。最终,我只相信我看到的。我们有两个赛道:在 Kaggle 上的私有赛道,有很多奖金;以及公共赛道,你可以在公共赛道上使用任何 LLM。如果你有解决方案,你应该把它提交到其中一个赛道。如果它是独立的,那就去争取奖金。如果它使用 LLM API,那就使用公共赛道。但如果它没有出现在排行榜上,我可能不会相信你。
采访者: 如果有人真的达到了人类水平的表现,组织者是否担心如果他们把解决方案卖到别处,它的价值会超过一百万美元?
Francois Chollet: 当然,也许吧。我怀疑不会发生这种情况,但也许会。
采访者: 有趣。还有,就经济学角度而言,这是一种相当开源的方法,但你认为激励机制是什么?因为如果我已经有了一个非常好的解决方案,如果我是 Jack Cole,我会觉得花六个月的时间是值得的,因为我很有可能会赢。
Francois Chollet: 是的。
采访者: 如果我什么都没有,那么我可能只会快速浏览一下,看看有没有什么东西,但我不会投入太多时间,我更愿意建立一个实验室,把钱投入进去,然后雇佣优秀的人来做这件事。
Francois Chollet: 当然,设置了巨额奖金,但我们并不指望人们仅仅为了钱而参加 ARC 挑战赛。奖金数额还不足以让人们这么做。这笔奖金更像是一种信号,表明我们对这项挑战的重视程度,我们是认真的,我们认为它很重要。但最终,提交解决方案并获胜的真正价值在于声誉,在我看来。这就像你成为了第一个激活成功教程这个自2019年以来一直公开的挑战的人。而且,很可能你的解决方案代表着朝着AGI
(通用人工智能) 迈出的一大步。现在很多人都在谈论 ARC。如果你能解决它,你肯定会成为头条新闻。这将是一件大事。例如,你提到了建立一个实验室。嗯,这将是一个围绕你的解决方案建立一个实验室,然后募集一大笔资金的好机会。你只需要利用你获奖作品的影响力就能做到这一点。
采访者: 你能谈谈……我最近采访了 Sabaro Kambhatti,他有一个非常有趣的 LLM 模块化架构。LLM 生成想法,批评者。你如何看待这个总体想法?
Francois Chollet: 我认为,总的来说,这是正确的方法。你不应该盲目相信大型语言模型 (LLM) 的输出。相反,你应该把它当作一个直觉性的建议引擎。它会给你一些好的候选方案,但你永远不应该盲目地相信这些候选方案就是你想要的正确解决方案。你应该验证。这就是为什么把 LLM 和一些优秀的验证器结合起来会如此强大的原因。因为它可以帮助你解决组合爆炸问题,这个问题会在你尝试迭代地尝试每一种可能的解决方案时出现。而且你也不会受到 LLM 系统 2 能力不足的限制,对吧?因为你仍然有这最后一英里的验证,这将由一个真正的系统 2 类型的解决方案来完成。这个架构非常有趣,因为它也是双向的。所以输出,验证器可能会给你“是”、“否”、“也许”或一些额外的信息,然后其他的 LLM 可以进行微调等等。但我理解的是,它有点粗暴,因为验证器当然是非常特定于领域的。这似乎与 ARC 挑战赛的一些解决方案略有不同。
采访者: 是的。
Francois Chollet: 它往往是特定于领域的。而且,你并不总是在一个可以有外部验证器的领域中操作。有时可以有。我认为,特别是对于从输入输出对进行程序综合的情况来说是这样。实际上,对于 ARC 来说也是如此,因为你知道给定某些输入你应该期待什么输出。你正在生成的是处理程序,所以它们实际上可以执行,可以被验证。对于许多其他程序,你没有这样的保证。
采访者: 稍微转移一下话题。代理。
Francois Chollet: 是的。
采访者: 现在,我认为代理的定义是系统的一个虚拟分区,它具有自因果性和意向性,可以控制未来。我认为它是智能的必要条件。我知道你不同意,因为我们前几天讨论过这个。但你认为代理和智能之间是什么关系?
Francois Chollet: 很多人把代理、化身和智能视为几乎可以互换的概念。我喜欢在我的思维模型中将它们分开。我认为智能是代理用来实现目标的工具。它与你的感觉运动空间有关,或者说与你设定目标的能力有关,但它又与它们不同。我认为你甚至可以把它和你的世界模型分开。我不知道你是否是 RTS(即时战略)游戏玩家。
采访者: 例如像《命令与征服》、《魔兽争霸》这类?
Francois Chollet: 《魔兽争霸》。没错。所有这些都是 RTS 游戏。在 RTS 游戏中,你知道,有单位四处移动,你可以给他们下达命令,你还有一个迷你地图。想象一下,你选择了一个单位,然后在迷你地图上的某个地方点击鼠标右键,告诉这个单位去那里。你可以把迷你地图看作是一个世界模型。它是对游戏实际世界的一种简化表示,它记录了结构的关键要素,比如东西通常在哪里,你在哪里。当你右键点击迷你地图时,你就是在指定一个目标。在这个比喻中,智能就是寻路算法。它接收这个来自外部的世界模型和目标,并找出代理到达目标的正确行动序列。智能就是关于导航,关于在未来的情境空间中导航。它是在未来的情境空间中寻找路径。在这个比喻中,你可以看到,智能是一种工具,它不是代理本身。代理由许多东西组成,包括目标设定机制——在这个比喻中,它是由玩家你来设定的。它由一个世界模型组成,这个模型使代理能够表示目标的含义,并进行模拟规划。它还包括一个感觉运动空间,就像一个行动空间,并且可以接收感觉反馈。代理是所有这些东西的组合,它们都独立于智能。智能只是一种接收信息并将其转化为可操作模型的方式,你可以用它来进行规划。它是一种将关于世界的信息转化为可以用来预测世界可能如何演变的模型的方式。
采访者: 我同意你所说的所有内容。我认为,在与像 Karl Friston 这样的人交谈之后,当我们思考智能的物理学时——我们生活在这个史诗般的粒子系统中,它有功能动力学和行为等等——代理和智能,它们并不是显式的。世界模型也不是显式的。所以似乎还有其他一些事情在起作用,这就是为什么在许多情况下,我认为代理和智能是虚拟属性,而不是显式的物理属性。这并不是说我们不能构建一个所有东西都是显式表达的人工智能,因为那将是有用的。我们可以在计算机中构建它,但问题总是存在:我们是否应该把世界看作是由低级粒子和嵌套代理组成的复杂模拟。我有细胞,它们是代理,我的心脏是一个代理,我是一个代理,或者它们是显式表达的。
Francois Chollet: 我认为在我们构建的第一个 AGI(通用人工智能)中,这些不同的组件将在软件中明确分开,因为这是最简单的方法。至少这是我的看法。架构将是显式的。
采访者: 是的。你前几天实际上谈到了功能动力学,这对我来说如天籁之音,作为一个 Westernian 世界观的粉丝。你对此有何看法?
Francois Chollet: 老实说,这是我一直在思考的东西,但我还没有非常清晰的想法。但我确实有一种直觉,关于人类思维是如何进行程序合成的。我认为,有两个尺度、两个层面,思维在这些层面上改变自身。一个是长期尺度,它与抽象挖掘有关,比如抽象生成和记忆形成。它还与神经可塑性有关——你基本上是在改变你大脑中的连接,以存储可重用的程序。
采访者: 你在之前的一些博客文章中谈到了很多关于外部主义传统,即很多认知发生在大脑之外。你是如何协调这两种世界观的?
Francois Chollet: 我非常相信我们的大部分认知是外部化的。例如,当我们互相交谈时,我们使用的词语并不是我们自己发明的。我们使用的心理意象和想法也是从其他地方读到或学到的。如果所有这些东西都得靠我们自己来开发,那我们需要非常长的寿命才能在智力上有所建树。所以,我认为这两种观点之间并没有真正的矛盾,即人类个体是聪明的,你拥有智慧,我拥有智慧。我们可以独立地使用它,我们也可以从我们的环境中、从我们的生活经验中提取信息。我们可以提取可重用的部分,并将它们混合使用以理解新的情况。这就是智能过程。我们作为个体来处理它。但我们也能够交流。我们不仅仅是个人,我们也是一个社会。所以,这些想法,这些可重用的抽象概念,我们可以从我们的大脑中提取出来,并把它们放到外部世界中与他人分享。例如,我们可以写书,可以编写计算机程序,这些程序甚至不需要其他人脑来执行,计算机就可以执行。这个过程就是文化的创造。然后,一旦文化出现,你就可以把它下载到你的大脑中,这就是教育。当你这样做的时候,你就像人为地填满了你的可重用抽象概念库。所以你使用了捷径。这有点像在电影《黑客帝国》中下载技能。学习物理、学习数学,你就是在下载这些非常丰富、可重用的思维模板,就像真正的思维积木一样。然后你可以在你自己的大脑中重新组合它们,应用于新的问题。它使你更聪明,确确实实地更聪明。它使你更容易获得技能,更容易解决问题,等等。
采访者: 表达得真好。我读过几本关于这方面的好书。《语言游戏》,还有马克斯·贝内特的关于智能的书。它基本上是在谈论这个,模仿信息共享的可塑性,让我们能够站在巨人的肩膀上。我想到你提出的问题一个有趣的角度:人类是抽象概念的来源。人类个体的大脑利用他们的生活经验来提取抽象概念,然后他们主要通过语言(但不限于语言)将它们外部化。然后其他大脑可以下载这些抽象概念,并将它们内化,这是一个巨大的捷径,因为你不需要自己体验所有事情就可以开始利用这些抽象概念。但在这个模型中,抽象概念的生成和重组以形成新模型总是发生在大脑内部。唯一外部化的部分是记忆,也就是说你把抽象概念、可重用的构建块从这些单个大脑中移出,把它们放到书籍等等中,然后再下载回来。但是要使它们有用,它们需要被你的大脑内化。那么问题是,抽象概念的生成或重组是否也可能发生在大脑之外呢?在创建 AGI(通用人工智能)的背景下,这倒不一定,因为这正是 AGI 的本质。它将是这种重组和抽象过程,以软件形式编码的合成和抽象过程。但我们今天是否有这样的外部流程来实现这一点?
Francois Chollet: 我认为我们有。我认为特别是科学,正在进行一种由人类驱动但不是发生在人类大脑内部的综合。例如,我们有能力在实际上无法装入人脑的空间中进行重组搜索。在我们发明的很多东西中,比如,当你创造一台更好的计算机时,你实际上是在对可能的设备空间进行某种重组搜索,但你不可能真正把设备的完整模型保存在你自己的大脑中。相反,模型分布在一些外部化的工件中。我确实相信人类文明正在实现这个高度分布式的综合过程——它是智力过程的一部分。它在外部实现,跨越许多不同的大脑,操纵外部符号和工件。这就是最终构成我们大部分文明的原因,因为我们一直在创造、一直在发明的系统是如此复杂,以至于没有人能够完全理解它们。所以你不能再在人脑中运行这个发明过程了。相反,你正在使用大脑来驱动一个更大的外部化过程。所以我认为认知是外部化的,不仅仅是因为我们有能力写下然后阅读想法、抽象概念,然后在我们的头脑中重新使用它们。我们实际上也在我们的大脑之外运行智能。
采访者: 我完全同意。但总有一个问题:像科学这样的东西,就是一种超越我们的集体智能,语言也是如此。但像模仿这样的事情是否发生在生物学之外?当然,它发生在这个世界上,《自私的基因》中发生的事情与遗传学有关。但你可以争辩说,一种模仿实际上发生在任何具有特定功能动力学模式的开放物理系统中。所以,这个外部化认知的真正问题是,抽象概念来自哪里?也许我们的大脑只是非常有效地从现实世界中构建地图。它只是一种稍微更好的方式来做已经在外部自然发生的事情。
Francois Chollet: 我认为在很大程度上,我们将认知外部化的方式不如在我们自己的大脑中实现认知的方式高效。这些外部化的认知过程……你知道,智能是一种搜索过程,对吧,在事物可能组合的空间中进行搜索。我认为现在,当你观察技术、观察科学时,这个搜索过程在很大程度上是外部化的。但它的外部化方式并不十分聪明。我认为我们大致上是在实现蛮力搜索。我经常看到这种情况,尤其是在深度学习研究中。整个深度学习社区发现新事物的方式是尝试所有其他事物,最终找到有效的事物。我相信,如果个体人类有足够的脑力在他们自己的大脑中对这些事物进行建模,他们将会更有效地找到正确的解决方案。
采访者: 有趣。Ryan Greenblatt 的观点代表了一些存在风险的人的观点,因为他认为他可以待在一个密封的房间里,或者是一个缸中之脑,这是一种纯粹的智能。他仍然能够推理和解决任务等等。相反的观点是,物理性和体现性真的很重要。我的意思是,当我问 Murray Shanahan 这个问题时,我说,为什么我们需要物理体现的机器人?他说,嗯,这些机器人正在与现实世界互动。他们正在理解事物之间复杂的因果关系,这有助于他们更有效地构建模型。但也许是为了学习物理世界中已经存在的抽象概念。
Francois Chollet: 是的。为了运用智能,它需要对某些东西进行操作,比如你思考某些东西。关于某些东西,你需要有一些具体的坏境和你想要在该坏境中完成的目标,以及你可以采取的行动。所以它是关于某些东西的。它不可能关于什么都不是,但它也由某些东西构成。你正在根据现有的组件、现有的子例程制定你的计划以实现你的目标。如果你什么都没有,你不仅没有可以运用智能的东西,而且你的智能也没有什么可以重组的东西。这就是为什么体现性很重要。我的意思是,在人类中,我提到了这个观点,即认知是一层一层地构建的。每一层都比前一层更抽象一点,它是根据之前的组件构建的。如果你深入挖掘,如果你一层一层地展开你的思维,在最底层,你会发现像循环反射这样的东西。就像一切都是从你的嘴巴开始的。然后,你开始做一些事情,比如抓住物体放进你的嘴里,然后像在地板上爬行,这样你就可以够到物体,这样你就可以抓住它们放进你的嘴里,等等。在某个时候,你停止将物体放进你的嘴里,但你正在学习的新事物仍然是用这种概念和技能层次结构来表达的。当你最终进行抽象数学时,你正在使用的构建块最终会解析为这些极其原始的感觉运动子例程。所以,是的,体现性很重要。但与此同时,我认为你所拥有的身体类型和感觉运动空间在很大程度上是可以即插即用的,如果你有一个真正的 AGI。你可以……如果你有一个 AGI,你可以将任何环境、任何感觉运动空间、任何 DSL 插入其中,它就会开始对它变得智能。所以从这个意义上说,体现性很重要,但什么类型的体现性可能不一定是重要的?还有,目标设定也非常重要,这与体现性不同,也与智能不同。如果你只是一个在罐子里的大脑,没有什么可以思考的,你不会很聪明,但是,你也不会真正做任何事情,因为你没有什么可以做的。你没有目标来驱动你的思想。我认为这很重要,如果你观察孩子,尤其如此。你学习任何东西的方式都是通过设定目标并完成它们。你不能真正被动地建立良好的心理模型、良好的世界模型,仅仅通过观察你周围发生的事情,而没有你自己的目标。这不是它的工作方式。目标设定是任何智能体的关键组成部分。
采访者: 我完全同意。我认为,在与像 Karl Friston 这样的人交谈之后,当我们思考智能的物理学时——我们生活在这个史诗般的粒子系统中,它有功能动力学和行为等等——代理和智能,它们并不是显式的。世界模型也不是显式的。所以似乎还有其他一些事情在起作用,这就是为什么在许多情况下,我认为代理和智能是虚拟属性,而不是显式的物理属性。这并不是说我们不能构建一个所有东西都是显式表达的人工智能,因为那将是有用的。我们可以在计算机中构建它,但问题总是存在:我们是否应该把世界看作是由低级粒子和嵌套代理组成的复杂模拟。我有细胞,它们是代理,我的心脏是一个代理,我是一个代理,或者它们是显式表达的。
Francois Chollet: 我认为在我们构建的第一个 AGI(通用人工智能)中,这些不同的组件将在软件中明确分开,因为这是最简单的方法。至少这是我的看法。架构将是显式的。
采访者: 是的。你前几天实际上谈到了功能动力学,这对我来说如天籁之音,作为一个 Westernian 世界观的粉丝。你对此有何看法?
Francois Chollet: 老实说,这是我一直在思考的东西,但我还没有非常清晰的想法。但我确实有一种直觉,关于人类思维是如何进行程序合成的。我认为,有两个尺度、两个层面,思维在这些层面上改变自身。一个是长期尺度,它与抽象挖掘有关,比如抽象生成和记忆形成。它还与神经可塑性有关——你基本上是在改变你大脑中的连接,以存储可重用的程序。
采访者: 你的智能形式体系非常关注内部表征,比如我们头脑中的世界模型等等。而你多年前的一些博客文章里也大量讨论了外部主义传统,即很多认知发生在大脑之外。你是如何协调这两种世界观的?
Francois Chollet: 我坚信我们的大部分认知都是外化的。例如,当我们彼此交谈时,我们使用的词语并非我们自己创造的。我们使用的思维图像、想法也是从某个地方读到或学到的。如果所有这些东西都得靠我们自己来开发,那我们需要极其漫长的时间才能在智力上有所作为。所以,我认为这两种观点之间并没有真正的矛盾,例如,像人类个体一样,是智能的。你拥有智能,我拥有智能。我们可以孤立地使用它,我们也可以从我们的环境中、从我们的生活经验中提取信息。我们可以提取可重复使用的比特,并将它们混合使用以理解新的情况。这就是智能过程。我们作为个体来处理它。但我们也能够交流。我们不仅仅是个人,我们也是一个社会。所以,这些想法,这些可重复使用的抽象概念,我们可以从我们的大脑中提取出来,并将它们投射到外部世界,与他人分享。例如,我们可以写书,可以编写计算机程序,这些程序甚至不需要其他人脑来执行,计算机就可以执行。这个过程就是文化的创造。然后,一旦文化出现,你就可以把它下载到你的大脑中,这就是教育。当你这样做的时候,你就像人为地填满了你的可重用抽象库。所以你走了捷径。这有点像在电影《黑客帝国》中下载技能。学习物理、学习数学,你就是在下载这些非常丰富、可重用的思维模板,就像真正的思维积木一样。然后你可以在你自己的大脑中重新组合它们,应用于新的问题。它使你更聪明,的的确确地更聪明。它使你更容易获得技能,更容易解决问题,等等。
采访者: 讲得真好。我读过几本关于这方面的好书。《语言游戏》,还有马克斯·贝内特的关于智能的书。它基本上是在谈论这个,模仿信息共享的可塑性,让我们能够站在巨人的肩膀上。我想到你提出的问题一个有趣的角度:人类是抽象概念的来源。人类个体的大脑利用他们的生活经验来提取抽象概念,然后他们主要通过语言(但不限于语言)将它们外部化。然后其他大脑可以下载这些抽象概念,并将它们内化,这是一个巨大的捷径,因为你不需要自己体验所有事情就可以开始利用这些抽象概念。但在这个模型中,抽象概念的生成和重组以形成新模型总是发生在大脑内部。唯一外部化的部分是记忆,也就是说你把抽象概念、可重用的构件块从这些单个大脑中移出,把它们放到书籍等等中,然后再下载回来。但是要使它们有用,它们需要被你的大脑内化。那么问题是,抽象概念的生成或重组是否也可能发生在大脑之外呢?在创建 AGI(通用人工智能)的背景下,这倒不一定,因为这正是 AGI 的本质。它将是这种重组和抽象过程,以软件形式编码的合成和抽象过程。但我们今天是否有这样的外部流程来实现这一点?
Francois Chollet: 我认为我们有。我认为特别是科学,它正在进行一种由人类驱动但不是发生在人类大脑内部的综合。例如,我们有能力在实际上无法装入人脑的空间中进行重组搜索。在我们发明的很多东西中,比如,当你创造一台更好的计算机时,你实际上是在对可能的设备空间进行某种重组搜索,但你不可能真正把设备的完整模型保存在你自己的大脑中。相反,模型分布在一些外部化的工件中。我确实相信人类文明正在实现这个高度分布式的综合过程——它是智力过程的一部分。它在外部实现,跨越许多不同的大脑,操纵外部符号和工件。这就是最终构成我们大部分文明的原因,因为我们一直在创造、一直在发明的系统是如此复杂,以至于没有人能够完全理解它们。所以你不能再在人脑中运行这个发明过程了。相反,你正在使用大脑来驱动一个更大的外部化过程。所以我认为认知是外部化的,不仅仅是因为我们有能力写下然后阅读想法、抽象概念,然后在我们的头脑中重新使用它们。我们实际上也在我们的大脑之外运行智能。
采访者: 我完全同意。你写过关于这方面的内容,关于智能是如何集体定位和外化的。但是否存在这样的问题:很多我们发明的东西,比如科学,是一种集体智能,它超越了我们,语言也是如此。但是像模仿这样的事情会发生在生物学之外吗?我的意思是,它当然会发生在这个世界上,《自私的基因》中发生的事情与遗传学有关。但是你可以说,某种模仿实际上会发生在任何具有特定功能动力学模式的开放物理系统中。所以,关于这种外化认知的真正问题是,抽象概念从何而来?也许我们的大脑只是非常擅长从现实世界中构建地图。它只是一种稍微好一点的方式来做已经在外部自然发生的事情。
Francois Chollet: 我认为,在很大程度上,我们外化认知的方式不如我们在大脑中实现认知的方式高效。这些外化的认知过程……你知道,智能是一种搜索过程,对吧,在事物所有可能组合的空间中进行搜索。我认为现在,当你观察技术、观察科学时,这个搜索过程在很大程度上是外化的。但它的外化方式并不十分聪明。我认为我们大致上是在进行蛮力搜索。我经常看到这种情况,尤其是在深度学习研究中。整个深度学习社区发现新事物的方式是尝试所有其他事物,最终找到有效的事物。我相信,如果单个的人类有足够的脑力在他们自己的大脑中为这些事物建模,他们会更有效地找到正确的解决方案。
采访者: 你提到过,我们所发明创造的很多东西,比如当你设计一台更好的计算机时,你就在这个由众多可能设备组成的空间中进行某种重组式搜索,但你不可能真的把你所设想的这台设备的完整模型装进你的大脑里。相反,这个模型是分布式的,散落在一些外化的物件之中。
Francois Chollet: 我相信,人类文明正在执行这种高度分布式的综合过程–这是智能过程的一部分。它是在外部实现的,跨越许多不同的大脑,操纵着外部的符号和人造物。这最终构成了我们文明的很大一部分,因为我们一直在创造和发明的系统是如此复杂,以至于没有人能够完全理解它们。所以你不可能再在人脑中运行这个发明过程了。相反,你是用人脑来驱动一个规模更大的外部化过程。所以我认为认知是外化的,不仅仅是因为我们有能力写下并阅读想法、抽象概念,然后在头脑中重新使用它们。我们实际上也在大脑之外运行着智能。
采访者: 我完全同意。但仍然存在一个问题:许多事物,比如科学,是一种集体智能,它超越了我们,语言也是如此。但是像模仿这样的事情会发生在生物学之外吗?当然,它发生在这个世界上,《自私的基因》中发生的事情与遗传学有关。但是你可以说,某种模仿实际上会发生在任何具有特定功能动力学模式的开放物理系统中。所以,关于这种外化认知的真正问题是,抽象概念从何而来?也许我们的大脑只是非常擅长从现实世界中构建地图。它只是一种稍微好一点的方式来做已经在外部自然发生的事情。
Francois Chollet: 我觉得方向是对的。我们不能盲目相信大型语言模型(LLM)的输出。相反,你应该把它当作一个直观的建议引擎。它会给你一些好的候选方案,但你永远不应该盲目地相信这些候选方案就是你想要的正确解决方案。你应该验证。这就是为什么把 LLM 和一些优秀的验证器结合起来会如此强大的原因。因为它可以帮助你解决组合爆炸问题,这个问题会在你尝试迭代地尝试每一种可能的解决方案时出现。而且你也不会受到 LLM 系统 2 能力不足的限制,对吧?因为你仍然有这“最后一英里”的验证,这将由一个真正的系统 2 类型的解决方案来完成。这个架构非常有趣,因为它也是双向的。LLM 的输出,验证器可能会给你“是”、“否”、“也许”或一些额外的信息,然后其他的 LLM 可以进行微调等等。但我理解的是,它有点粗暴,因为验证器当然是非常特定于领域的。这似乎与 ARC 挑战赛的一些解决方案略有不同。
采访者: 对。
Francois Chollet: 它往往是特定于领域的。而且,你并不总是在一个可以有外部验证器的领域中操作。有时可以有。我认为,特别是对于从输入输出对进行程序综合的情况来说是这样。实际上,对于 ARC 来说也是如此,因为你知道给定某些输入你应该期待什么输出。你正在生成的是处理程序,所以它们实际上可以执行,可以被验证。对于许多其他程序,你没有这样的保证。
采访者: 稍微转移一下话题。代理。
Francois Chollet: 是的。
采访者: 现在,我认为代理的定义是系统的一个虚拟分区,它具有自因果性和意向性,可以控制未来。我认为它是智能的必要条件。我知道你不同意,因为我们前几天讨论过这个。但你认为代理和智能之间是什么关系?
Francois Chollet: 很多人把代理、化身和智能视为几乎可以互换的概念。我喜欢在我的思维模型中将它们分开。我认为智能是代理用来实现目标的工具。它与你的感觉运动空间有关,或者说与你设定目标的能力有关,但它又与它们不同。我认为你甚至可以把它和你的世界模型分开。我不知道你是否是 RTS(即时战略)游戏玩家。
采访者: 例如像《命令与征服》、《魔兽争霸》这类?
Francois Chollet: 《魔兽争霸》。没错。所有这些都是 RTS 游戏。在 RTS 游戏中,有单位四处移动,你可以给他们下达命令,你还有一个迷你地图。想象一下,你选择了一个单位,然后在迷你地图上的某个地方点击鼠标右键,告诉这个单位去那里。你可以把迷你地图看作是一个世界模型。它是对游戏实际世界的一种简化表示,它记录了结构的关键要素,比如东西通常在哪里,你在哪里。当你右键点击迷你地图时,你就是在指定一个目标。在这个比喻中,智能就是寻路算法。它接收这个来自外部的世界模型和目标,并找出代理到达目标的正确行动序列。智能就是关于导航,关于在未来的情境空间中导航。它是在未来的情境空间中寻找路径。在这个比喻中,你可以看到,智能是一种工具,它不是代理本身。代理由许多东西组成,包括目标设定机制——在这个比喻中,它是由玩家你来设定的。它由一个世界模型组成,这个模型使代理能够表示目标的含义,并进行模拟规划。它还包括一个感觉运动空间,就像一个行动空间,并且可以接收感觉反馈。代理是所有这些东西的组合,它们都独立于智能。智能只是一种接收信息并将其转化为可操作模型的方式,你可以用它来进行规划。它是一种将关于世界的信息转化为可以用来预测世界可能如何演变的模型的方式。
采访者: 我同意你所说的所有内容。我认为,在与像 Karl Friston 这样的人交谈之后,当我们思考智能的物理学时——我们生活在这个史诗般的粒子系统中,它有功能动力学和行为等等——代理和智能,它们并不是显式的。世界模型也不是显式的。所以似乎还有其他一些事情在起作用,这就是为什么在许多情况下,我认为代理和智能是虚拟属性,而不是显式的物理属性。这并不是说我们不能构建一个所有东西都是显式表达的人工智能,因为那将是有用的。我们可以在计算机中构建它,但问题总是存在:我们是否应该把世界看作是由低级粒子和嵌套代理组成的复杂模拟。我有细胞,它们是代理,我的心脏是一个代理,我是一个代理,或者它们是显式表达的。
Francois Chollet: 我认为在我们构建的第一个 AGI(通用人工智能)中,这些不同的组件将在软件中明确分开,因为这是最简单的方法。至少这是我的看法。架构将是显式的。
采访者: 是的。你前几天谈到了功能动力学,这对我来说如天籁之音,作为一个 Westernian 世界观的粉丝。你对此有何看法?
Francois Chollet: 老实说,这是我一直在思考的东西,但我还没有非常清晰的想法。但我确实有一种直觉,关于人类思维是如何进行程序合成的。我认为,有两个尺度、两个层面,思维在这些层面上改变自身。一个是长期尺度,它与抽象挖掘有关,比如抽象生成和记忆形成。它还与神经可塑性有关——你基本上是在改变你大脑中的连接,以存储可重用的程序。
采访者: 你说过语言是心灵的操作系统。这是什么意思?
Francois Chollet: 什么是操作系统?它和计算机不一样。它是使你的计算机更可用、更有用的东西。它赋予用户使用计算机的能力。我认为语言对心灵起着类似的作用。我认为语言和心灵是不同的东西,它和智能是分开的,甚至和世界模型也是分开的。但它是一个工具,你作为一个代理,正在利用它使你的心灵、你的思考更有用。所以我认为语言和思考是不同的东西。语言是思考的工具。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/152587.html