《人工智能:现代方法》(Artificial Intelligence: A Modern Approach)第四版中文版于近期问世,机器之心对作者 Stuart Russell 教授进行了专访。作为 AI 领域的经典,《人工智能:现代方法》几经再版,内容和结构反映出两位作者不断发展的理解。最新第四版是他们把近十年 AI 进展,尤其是深度学习所带来的影响纳入整体框架后给出的最新阐释,体现了两位大师对人工智能趋势和学科体系发展的洞见。
本次采访也依循「a modern approach」,希望从一种切合技术和时代发展的视角,展现 Russell 教授对技术动向、智能理论,以及流行 VS 经典的思考,为 AI 研究人员和从业者带来启发。
Stuart Russell 供职于加州大学伯克利分校,现任计算机科学系教授(曾任系主任)、人类兼容人工智能中心主任。1990 年获得美国国家科学基金会杰出青年科学总统奖,1995 年获得 IJCAI 计算和思想奖。他是 AAAI、ACM 和 AAAS Fellow,在人工智能领域发表论文 300 余篇,涉及主题广泛。图片来源:kavlicenter.berkeley.edu
Russell 教授相信在接下来的十年,人们的关注点将从对端到端深度学习的倚重,重新回到由模块化的、基于数理逻辑的、语义明确定义的表示(representation)所构成的系统,而深度学习将在获取原始感知数据方面扮演至关重要的作用。需要强调的是,模块化的、语义明确定义的表示不一定是由手工设计或不灵活的,这样的表示完全可以从数据中学习。
至于如今大火的 ChatGPT,Russell 教授认为关键是要区分任务领域,弄清楚在什么情况下使用它:ChatGPT 可以是一种很好的工具,如果它能锚定在事实基础上,与规划系统相结合,将带来更大的价值。但问题是,我们目前不清楚 ChatGPT 的工作原理,也很可能无法弄清它们,这需要一些概念上的突破,而这样的突破很难预测。
他认为要构建真正智能的系统,我们应当更加关注数理逻辑和知识推理,因为我们需要将系统建立在我们了解的方法之上,这样才能确保 AI 不会失控。他不认为扩大规模是答案,也不看好用更多数据和更多算力就能解决问题,这种想法过于乐观,在智力上也不有趣。
如果罔顾深度学习数据效率低这一根本性的问题,「我担心我们在自欺欺人地认为我们正在走向真正的智能。我们所做的一切实际上是向根本不是真正智能模型的东西添加越来越多的像素。」
-1-
机器之心:在您看来,以 ChatGPT 为代表的大规模预训练语言模型(LLM)是否从本质上将人工智能提升到一个更高的水平?LLM 是否克服了深度学习系统的一些根本性问题,比如常识获取、知识推理?
Stuart Russell:我首先想到的回答是——我们不知道,因为没有人知道这些模型是如何工作的,包括创造它们的人。
ChatGPT 知道什么?它能推理吗?它在什么意义上理解了答案?我们不知道。
我在俄勒冈州立大学的一个朋友问模型「大象和猫哪个大?」模型回答「大象大」,但换种问法「大象和猫,哪个不比另一个大?」模型回答「大象和猫哪个都不比另一个大」。所以你说模型知道大象和猫哪个更大吗?它不知道,因为换种问法,它就得出自相矛盾的结论。
那么,模型知道什么呢?
我再举个例子,也是实际发生的事情。这些模型的训练数据中有大量的国际象棋棋谱,用统一的代码和符号表示,一局棋看起来是 e4 e5 Nf3 Nc6 Bb5……的序列。棋手知道这些符号的含义,知道这些序列所描绘的走子过程。但模型不知道,模型不知道有棋盘,也不知道走子,在模型看来这些符号就是符号。所以,当你和它下盲棋时,你说「我们来下国际象棋吧,g4」,它可能回复「e6」,当然这可能是一步好棋,但模型并没有对弈的概念,它只是从训练数据中找到相似的序列,并对这些序列进行适当的转换,然后生成下一步棋。在 80% 甚至 90% 的情况下,它会生成一步好棋,但其他时候它会走出很傻或者完全不符合规则的棋,因为它没有在棋盘上下棋的概念。
不只是下棋,我认为这实际上适用于所有现在大模型在做的事情:80% 的情况下它看起来像一个很聪明的人,但在余下 20% 的时间里它看起来像一个彻头彻尾的白痴。
看起来聪明是因为它有大量的数据,人类迄今为止写的书、文章……它几乎都读过,但尽管如此,在接受了如此之巨的有用信息后,它还是会吐出完全不知所谓的东西。所以,在这个意义上,我认为语言大模型很可能不是人工智能的一种进步。
ChatGPT 真正令人印象深刻的是它的泛化能力,它能够在其与用户进行的对话和此前读过的文本中找到相似之处并进行适当的转换,所以它的回答看起来很智能。但是,我们不知道模型是如何做到这一点的,我们也不知道这种泛化能力的边界在哪里,我们不知道这种泛化是如何在电路中实现的。
如果我们真的知道了,那确实可以说是人工智能的进步,因为我们能够把它作为一个基础,我们能够基于 ChatGPT 开发其他系统。但现阶段而言,一切都还是谜。我们所谓往前走的唯一方法是——模型不 work?好吧,我们再给它更多数据,把模型再做大一点。
我不认为扩大规模是答案。数据终有用完的一天,而现实世界总有新的情况发生。当我们编写国际象棋程序的时候,那些真正能把棋下好的程序,都能很好地应对从未见过的情况,原因只有一个,那就是这些程序了解国际象棋的规则,能够将棋子在棋盘上位置的演变——可以落子的点,对手接下来可能的走法,包括棋谱里从未有过的走法——进行可视化。
我们现在还远远无法在现实世界的一般情况中做到这一点。同时,我并不认为语言大模型让我们距离实现这一目标更近了。除了一点,那就是你或许可以说,语言大模型让我们能够使用存储在文本中的人类知识。
如果我们能把语言大模型锚定在已知的事实中,它们会更加有用。想想看有 5000 亿个事实的谷歌知识图谱,如果 ChatGPT 能锚定在这些事实中,与这些事实相关的问题都能给出正确的回答,那么 ChatGPT 会更加可靠。
如果我们能想办法把语言大模型耦合到能够正确进行推理和规划的推理引擎中,那你可以说我们突破了人工智能的一个瓶颈。我们现在有很多规划算法,但要让这些规划算法进行正确合理的规划,比如制造一辆汽车,给它们提供所需的知识,是很难做到的,因为需要了解的东西太多了,很难把它们全部写下来,并且保证全都是对的。但语言大模型读遍了所有关于汽车的书籍,也许它们可以帮助我们构建出必要的知识,或者干脆按需回答必要的问题,这样我们在做规划时,就能获取所有这些知识了。
相比于只把 ChatGPT 看成是帮你做某件事情的黑盒子,把语言大模型与规划算法相结合,让它们成为规划系统的知识输入,这将带来真正有价值的商业工具。据我所知,已经有人在朝着这个方向努力了,如果成功,那将会是一大进步。
机器之心:作为教师,您如何看待 ChatGPT——您会允许学生用 ChatGPT 生成论文吗?作为用户,您如何看 ChatGPT 催生的各种应用,尤其是商业应用?
Stuart Russell:几周前,当我在达沃斯世界经济论坛上与商界人士交流时,每个人都在问我关于语言大模型,以及如何在他们的公司中使用这些模型的问题。
我认为你可以这么想,那就是你会把一个 6 岁的孩子放在你公司里同样的岗位上吗?
虽然两者在能力上存在差异,但我认为是可以这样类比的。语言大模型、ChatGPT 不可信,它们没有常识,会一本正经地给出错误的信息。所以,如果你要在公司里使用 ChatGPT 或类似的模型,你必须非常地小心。如果你把公司里的某些岗位或职责看作是网络中的节点,语言在这些节点里输入和输出——当然,你完全可以这样看,很多工作就是如此,比如记者,教授们做的也是这样的事情。但是,这并不意味着你能用 ChatGPT 取代他们。
在教育方面我们必须非常谨慎。ChatGPT 的出现让很多人陷入恐慌。有人说,啊我们必须在学校里禁用 ChatGPT。另一部分人则说,禁用 ChatGPT 太荒谬了,他们翻出 19 世纪的一些讨论——当时有人说啊我们必须禁止机械计算器,因为如果学生开始使用机械计算器了,那他们永远都学不会正确做数学计算了。
这听起来是不是很有说服力?我们是不是好像没必要禁止 ChatGPT?但是,这个类比是完全错误的——机械计算器自动化的,恰恰是非常机械的过程。将 26 位的数字相乘是非常机械的,是一套指令,你只要按照步骤,一步一步一步一步一步一步来,就能够得到答案。遵循指令的知识价值是有限的,尤其是当人并不理解指令作用的时候。
但 ChatGPT 将要取代的并不是机械地遵循指令,而是回答问题的能力,阅读理解的能力,将想法整理成文的能力。如果你连这些都没有学会,就让 ChatGPT 代而为之,那你可能真的会长成废人。
现在有电子计算器了,但我们仍然教孩子们算术,我们会教他们算术的规则,努力让他们理解数字是什么,数字如何对应于物理世界中的事物,等等。只有当他们获得了这种理解,掌握了算术规则之后,我们才会给他们电子计算器,这样他们就不必按照机械的工序进行繁琐的操作。
在我们那个年代,当时还没有计算器,我们用的是打印出来的表格,里面有各种正弦余弦和对数函数的值,从来没有人说用了这些表就学不会数学了。
所以,我们必须弄清楚什么时候学生开始使用像 ChatGPT 这样的工具是合适的。回答你刚才的问题,如果你能找到写论文这个任务中无脑的部分——其实写论文的过程中有很多时候是无需动脑的,只是在机械地重复繁琐又无聊的工序——那么你大可使用 ChatGPT,我对此没有任何异议。
但是,写作并不全是枯燥无聊的工序,写作本质上是一种思考,也是人学会思考的一种方式。我们最不想要的是盲目使用 ChatGPT 的人,他们既不理解问题也不理解答案。
至于 ChatGPT 的其他应用,比如生成图片或者音乐,我想情况也类似,关键是分清楚任务领域。我认为艺术创作的过程可以大致分为两部分,首先是对你想要创作什么有一个概念,然后是根据你的构想把它实际创造出来的相对机械的过程。对某些人来说,后者非常具有挑战性,无论他们多么努力,也无法制作出好看的图片,所以我们才会有受过专门训练的艺术家,尤其是商业艺术家,他们的工作不涉及太多创意,更注重按需求制作图片的能力。我认为这是一个受到极大威胁的职业。
我在写书时就有这样的经历,《人工智能:现代方法》中有五六百幅插图,几乎都是我自己画的。制作一张好的插图或图示是一个缓慢而艰苦的过程,需要很多技巧和技能。如果有大模型或应用能生成跟我书里那些插图一样的图表或技术图示,我非常乐意使用它们。
基于模型、基于效用的智能体。来源:《人工智能:现代方法(第 4 版)》插图 2-14
通用学习型智能体。来源:《人工智能:现代方法(第 4 版)》插图 2-15
-2-
机器之心:我们不清楚 ChatGPT 的原理,但通过工程实现,得到了在某些情况下好用的工具;ChatGPT 似乎也是将人纳入回路的一个很好的例子。从工程角度看,ChatGPT 是否是一种进步?
Stuart Russell:我不确定 ChatGPT 是否可以被称为工程,因为通常讲,我们认为「工程」是一门应用工程科学的学科,将物理学、化学、机械学、电子学等知识组合起来,以复杂而巧妙的方式制造出对人类有用的东西。同时,这些东西为什么会有用,我们是理解的,因为它们那些有用的性质是我们通过特定的方法实现的,并且可以复现。
但我们是如何开发 ChatGPT 的呢?纳入人类的反馈是有用的,但从结果看,ChatGPT 是我们是在大量数据集上做梯度下降得到的。这让我想起了上世纪 50 年代,当时有大量的精力被投入到遗传编程中,人们寄希望于通过模拟生物演化来实现智能的 Fortran 程序,结果一败涂地。
理论上讲,当你有足够多的 Fortran 程序并让它们产生足够多的突变,原则上是可能会产生比人类更聪明的 Fortran 程序的。只是这种原则上的可能并没有在实践中成真。
现在,你在足够大的电路和足够多的数据上做梯度下降,突然之间就能创造出真正的智能了?我觉得可能性不大,或许比进化 Fortran 程序多那么一点——但也说不好,或许 Fortran 程序才更有可能,因为有理由认为 Fortran 程序是一种比电路(circuits)表示能力更强的语言,而在 1958 年他们放弃 Fortran 程序那会儿,当时的计算能力比我们现在要低 15 或 16 个数量级。
机器之心:那不用「工程」这个词,您如何看 OpenAI 正在做的这件事?
Stuart Russell:OpenAI 正在做的,你可以称其为烹饪(Cookery),因为我们真的不知道这些模型的原理。就好比我做蛋糕的时候,我不知道它是怎么变成蛋糕的,人类做蛋糕已经有几千年历史了,在尝试了许多不同的原料和许多不同的方法,在各种原料和方法上做大量的梯度下降后,有一天发现了一个神奇的东西——蛋糕,这就是烹饪。现在我们对蛋糕的底层原理有了更多的了解,但仍不完美。通过烹饪,我们能得到的有限,这个过程也不具有大的知识价值。
要是因为 ChatGPT 的一些根本性问题,有一天你通过输入提示(prompt)或指示(instruct)怎么都得不到你想要的答案该怎么办?再去修改食谱?把 token 从 4000 提到 5000,再把网络层数翻一番?这不是科学,而且我认为这在智力上并不有趣。
尝试理解语言大模型的工作原理的研究当然是有价值的,因为 ChatGPT 正在进行大量惊人的泛化,只有弄清楚这是如何发生的,我们才可能真正开发有意义的智能系统。现在有很多人投身于此,这方面也有大量发表的论文。
但 ChatGPT 的内部机制是否能被理解,我认为很难说,它可能过于复杂,我们没有办法对里面发生的事情进行逆向工程。
一个有趣的类比是 3 万年前发生在人和狗之间的事情。我们不了解狗的大脑是如何工作的,你很难完全弄清楚一只狗在想什么,但我们学会了驯化它们,现在狗已经融入我们的生活,它们扮演着各种有价值的角色。我们发现狗擅长很多事情,包括看家护院、陪孩子玩耍,但我们并没有通过工程来实现这一点,我们通过育种、通过调整配方,对这些特性进行选择和改良。但你并不会期望你的狗帮你写文章,你知道它们做不到这一点,并且你也很可能并不希望你的狗能做到这一点。
ChatGPT 这整件事令人意外的地方在于,我认为这是 AI 系统第一次真正进入了公众的视野,这是一个很大的变化。OpenAI 自己有句话说得好,那就是尽管 ChatGPT 不是真正的智能,但它让人体尝到了真正的(人工)智能实现后,每个人都能用那种智能做各种他们想做的事情的滋味。
机器之心:另一个很多人关注的点是 LLM 所带来的中间任务的消失。您认为这些中间任务,比如语义分析、句法分析,从一种技术迭代的视角,现在还有多大价值,将来真的会消失吗?那些处在中间的 AI 研究人员和从业者,那些没有强大硬件资源,也没有强大领域知识的人,是否存在失去工作的危险?
Stuart Russell:这是一个好问题。事实是现在很难发表语义分析的论文,实际上,现在很难让 NLP 社区的人听进去任何事情,除非你讲语言大模型,或者用大模型刷新大基准。几乎所有的论文都是关于刷新大基准的,你很难发表一篇不是关于刷新大基准的文章,比如语言结构、语言理解,或者语义分析、句法分析,等等,于是评测大模型的大基准成了写论文的唯一选择,而这些大基准其实跟语言没有任何关系。
某种意义上说,如今的自然语言处理领域,我们不再研究语言,我认为这是非常不幸的。计算机视觉也是如此,在如今大部分的计算机视觉研究中,我们不再研究视觉,我们只研究数据、训练和预测的准确性。
至于接下来如何发展 AI,我认为应该关注那些我们理解的方法,关注知识和逻辑推理。原因有两方面,首先我们希望 AI 系统是可靠的,我们需要从数学上确保它们安全和可控,而这意味着我们必须理解我们所构建的系统。
其次,从数据效率的角度考虑,如果要实现通用智能,数据效率将是必须的,人脑以 20 瓦而不是 20 兆瓦的功率运行。电路不是一种很有表现力的语言,这些算法的数据效率比人类学习低好几个量级,你很难在电路里写下我们知道的关于这个世界的很多事情。在我们有了通用计算机和编程语言后,我们就不再使用电路,因为在程序中表达我们想要什么要简单得多,也好用得多,人工智能社区在很大程度上已经忘记了这一点,很多人都误入了歧途。
-3-
机器之心:《人工智能:现代方法》第四版有一个重要的更新,那就是不再假设 AI 系统或智能体拥有固定的目标。此前人工智能的目的被定义为「创建一些试图最大化期望效用的系统,其目标由人设定」,现在我们不再给 AI 系统设定目标,为什么会有这样的一种转变?
Stuart Russell:原因有几点。首先,随着人工智能走出实验室,走入现实世界,我们发现其实很难完全正确地定义我们的目标。例如,当你在路上开车时,你想快速到达目的地,但这并不意味着你应该以每小时 200 英里的速度行驶,而你如果告诉自动驾驶汽车安全第一,它可能永远停在车库里。在安全和快速到达目的地,以及对其他司机友好、不让乘客感到不舒服、遵守法律法规……等等各种目标之间需要权衡。路上总会有一些风险,会发生一些无法避免的意外,很难把你在驾驶时的目标全部写下来,而驾驶只是生活中一件很小、很简单的事情。所以,从实际操作的角度讲,给 AI 系统设定目标是不合理的。
其次则涉及到我在书中举的迈达斯王的例子(King Midas Problem)。迈达斯是希腊神话中的一位国王,他非常贪婪,求神赐予他点物成金的力量,神满足了他的愿望,他碰到的一切都变成了金子,他实现了他的目标,但后来他的水、他的食物也成了金子,他的家人被他碰了之后也成了金子,最后他在黄金围绕中悲惨地死去。这警示我们,当你为非常强大的系统定义目标时,你最好确保你所定义的目标是绝对正确的。但既然我们已经知道我们做不到这一点,那么随着 AI 系统越变越强大,它们不知道真正的目标是什么就越来越重要。
目标其实是一件非常复杂的事情。例如我说午饭想买个橙子,这可以是一个目标,对吧?在日常语境中,目标被视为某种可以被实现的东西,一旦实现了,事情就完结了。但在哲学与经济学定义的理性选择理论中,其实并不存在这样的目标,我们有的是对各种可能的未来的偏好或排序,每一种可能的未来都从现在一直延伸到时间的尽头,里面包含了宇宙中的所有。我想,这是对目标、对人类真正想要什么的一种更复杂、更深远的理解。
机器之心:这种转变对人工智能接下来的发展有怎样的影响?
Stuart Russell:自上世纪四五十年代人工智能伴随计算机科学诞生以来,研究人员需要对智能有一个概念,这样才能以此为基础进行研究。虽然早期的一些工作更多是模仿人类的认知,但最终胜出的是理性的概念:一台机器越能通过行动实现其预期目标,我们就认为它越智能。
在人工智能的标准模型中,我们致力于创造的就是这种类型的机器;人类定义目标,机器完成余下的部分。例如,对于确定性环境中的求解系统,我们给定成本函数和目标标准,让机器找到实现目标状态的代价最小的动作序列;对于随机环境中的强化学习系统,我们给定奖励函数和折扣因子,让机器学习最大化期望折扣奖励和的策略。在人工智能领域以外也能见到这种方法:控制学家最小化成本函数,运筹学家最大化奖励,统计学家最小化预期损失函数,经济学家最大化个人效用或群体的福祉。
但标准模型其实是错误的。正如刚才所说,我们几乎不可能完全正确地指定我们的目标,而当机器的目标与我们真正期望的目标不符时,我们可能会失去对机器的掌控,因为机器会先发制人,采取措施,不惜一切代价确保其实现既定目标。几乎所有的现有 AI 系统都在标准模型的框架中开发的,这就带来了很大的问题。
在《人工智能:现代方法(第 4 版)》中,我们提出人工智能需要新的模型,新的模型强调 AI 系统对目标的不确定性,这种不确定使机器会去学习人类的偏好,采取行动前征求人类的意见。在 AI 系统运行期间,必须有一些信息从人类流向机器,说明人类的真正偏好,而不是人类在最初设定目标后就无关紧要了。这需要让机器与固定的目标解耦,以及让机器与人类实现二元耦合。标准模型可以被视为一种极端的情况,也即在机器的作用范围内,可以完全正确地指定人类所期望的目标,例如下围棋或解谜。
我们也在书中提供了一些示例来说明新模型的工作原理,例如不确定偏好、关机问题(off-switch problem)、辅助博弈(assistance game),等等。但这些都只是开始,我们才刚刚开始研究。
机器之心:在人工智能这个快速发展的领域,如何紧跟技术趋势又不盲目追逐热点?AI 研究者和从业者应该将什么常记于心?
Stuart Russell:要构建真正智能的系统,我认为根本问题是能够用一种具有表示性的语言去表示宇宙中包含的各种不规则。智能和电路的本质区别就在于此,据我们所知,电路不能很好地表示那些不规则,这在实践中表现为数据效率的极端低下。
举一个简单的例子,我可以写下正弦函数的定义(用数学公式),或者我可以尝试用大量像素凭经验描述正弦函数。如果我只有 1000 万像素,我只能覆盖正弦函数的一部分,如果看我已经覆盖的区域,我似乎有一个很好的正弦函数模型。但实际上,我并没有真正理解正弦函数,我不知道函数的形状,也不知道它的数学性质。
我很担心我们在自欺欺人地认为我们正在走向真正的智能。我们所做的一切实际上是向根本不是真正智能模型的东西添加越来越多的像素。
我认为在构建 AI 系统时,我们需要关注那些具有基本表示能力的方法,其核心在于能够对所有的对象(object)进行声明。假设我要把围棋的规则写下来,那么这些规则必须适用于棋盘上的每一格,我可以说对于每个 x 每个 y 会怎样,我也可以用 C++ 或 Python 来写,我还可以用英语写,用一阶逻辑写。这些语言都能让我以非常简洁的方式写下规则,因为它们都具有表达这些规则的表示能力。但是,我无法在电路中做到这一点,基于电路的表示(包括深度学习系统)不能表示这一类的泛化。
罔顾这一事实而企图通过大数据实现智能,在我看来很荒谬,这就好比说不需要理解什么是一颗围棋的棋子,因为我们有几十亿的训练样本。你想想看人类智能做的事情,我们建造了 LIGO,检测到了来自宇宙另一端的引力波。我们是怎么做到的?基于知识和推理。在建造出 LIGO 之前,我们从哪里去搜集训练样本?很显然,前人了解到了一些事情,包括他们的感官体验,然后用英语和数学这样一些表示性的语言将其记录下来,我们从中学习,了解到宇宙运行的规律,并基于这些进行推理和工程和设计,等等,从而观测到了宇宙另一端的黑洞碰撞。
当然,基于大数据实现智能是可能的,很多事情都是可能的,进化出一个比人类更加智能的 Fortran 程序也是可能的。但我们花了两千多年理解知识和推理,也开发出了大量基于知识和推理的优秀的技术,并且基于这些技术开发出了成千上万的有用的应用。现在你对智能感兴趣,却不关心知识和推理,我对此无话可说。