本文来自南京大学计算机学院软件研究所,聚焦于开放环境下的智能软件新技术研究,定位国际学术前沿,面向国家关键需求,承担了一系列国家科技部和基金委重大/重点科研项目。团队拥有包括中科院院士等多名国家级人才,重点关注软件和智能方向,研究成果发表于NeurIPS/ICLR/SOSP/ATC/EuroSys/OOPSLA/PLDI/ICSE/FSE等国际顶级会议,其中多篇文章获得相应会议的最佳论文奖。
大型语言模型 (LLM) 在各种自然语言处理和推理任务中表现出卓越的能力,某些应用场景甚至超越了人类的表现。然而,这类模型在最基础的算术问题的表现上却不尽如人意。当遇到算术问题时,LLM 通常依赖记住特定的表达式及其对应结果的方式输出算术问题的结果。通过简单的实验发现,LLM 只在语言层面表达了对算术运算的逻辑理解,但并没有运用计算逻辑解决算术问题,这对 LLM 在相关领域中的应用造成了重大障碍,同时影响了其推广到新场景的能力。
为了解决这个问题,来自南京大学的研究者提出了一种面向 LLM 的可组装算术执行框架 (CAEF),使 LLM 能够通过模仿图灵机的方式来执行算术,从而理解计算逻辑。此外,CAEF 具有高度的可扩展性,允许组合已经学习到的运算符,以降低复杂运算符的学习难度。评估表明,LlaMA 3.1-8B 模型配合 CAEF 可在 7 种经典数学算术运算的测试中实现了近乎 100% 的准确率,且能够支撑 100 位操作数的计算,而同等难度下, GPT-4o 在一些算术问题测试中无法正确给出计算结果。
该工作的贡献主要有以下部分:
相关工作
LLM 面对数学问题: 当前研究主要集中如何在提高 LLM 面对数学任务的解题性能,通常引入外部工具来辅助 LLM 解决计算部分的内容。一类常见的外部工具为计算器,如 Schick et al. (2024) [1] ,该工作引入了一种自监督学习方法,模型在该方法中学习何时通过 API 访问调用外部工具,类似的策略可以在 Gou et al. (2023) [2] 和 He-Yueya et al. (2023) [3] 中也能找到。另一类工具是编程语言解释器,例如 Python,LLM 生成用于解决数学问题的代码,再交由外部解释器执行代码以获得最终的结果。一个典型的例子是 Lu et al. (2024) [4] ,它将 LLM 视为生成代码并将其提交给外部 Python 执行程序以处理表格上下文中的数学问题。Wang et al. (2023) [5] 采用监督学习的方式让 LLM 学习如何通过构建用于解决数学问题的程序,而 Zhou et al. (2023) [6] 提出了一种零样本提示方法,以实现代码驱动的自我验证,从而提高数学解题性能。
LLM 面对算术问题: 当前也有一些专注于 LLM 算术方面的研究。这些研究的共同目标是尝试教会 LLM 计算逻辑,并通过分步计算的方法拆解计算过程,以提高计算准确性。在这些研究中,Nye et al. (2021) [7] 是一项早期且影响深远的 方法。它在算术领域引入了类似思维链 (CoT) 的思想拆分计算过程,让语言模型把计算的中间步骤输出到一个被称为 “scratchpad” 的缓冲区,显著提高了 LLM 整数加法的性能。Hu et al. (2024) [8] 观察到 transformers 倾向于使用 “基于记忆样例的推理” 来处理算术问题,并提出了一种遵循规则的微调技术,指导模型逐步执行计算。Zhou et al. (2024) [9] 结合了四种技术(FIRE 位置编码、随机位置编码、反向格式(R2L 格式)和索引提示)开发了一种新模型,该模型在两个整数加法问题上实现了 2.5× 的长度泛化能力。
方法描述
该工作设计了一种可以使 LLM 学习模拟图灵机执行的框架 CAEF。图灵机中的转移函数(transition function)描述了基于当前计算状态和纸带信息应该执行什么操作,其中天然蕴含了分步计算的逻辑。此外,组装多个现有的图灵机能够实现更加复杂的计算逻辑,因此图灵机为计算提供了一个很好的思路。然而,LLM 是基于文本的生成式模型,因此如何将图灵机的工作模式有效地转移到 LLM 上成为了一个难点。
图 1. CAEF 框架图示
图 2. 45+67 执行过程
此外,由于计算的初始状态和命令 < > 本身并不存在,CAEF 针对每个操作符需要设计两个组件,一个是用于充当自然语言表示和图灵机风格表示之间 “翻译” 的 aligner,另一个是依照上述流程、负责实际执行计算的 executor,两者以独立的 LoRA adapter 的形式存在。其中 executor 可进一步细分为 basic executor 和 executor composer。针对像加法这样相对容易的基础运算符,可由单一的 LoRA adapter 实现功能,被称为 basic executor;而像乘法这样可以做进一步分解的复杂运算符,其 executor 本身不负责实际运算,它通过组织计算步骤、调用其他运算符的 executor 来实现功能,被称为 executor composer。
Step 1 (aligner):
Step 2 (executor):
state0: ADD, q0, [HEAD1] |5|4 [HEAD2] |7|6 [C] [OUTPUT]
command0: CMD: [C] 0, [HEAD1] RIGHT, [HEAD2] RIGHT, q1
Step 3 (executor):
state1: ADD, q1, [HEAD1]|5|4 [HEAD2]|7|6 [C] 0 [OUTPUT]
command1: CMD: [C] 1, [OUTPUT] 2, [OUTPUT] RIGHT, [HEAD1] RIGHT, [HEAD2] RIGHT, q1
Step 4 (executor):
state2: ADD, q1, |5 [HEAD1]|4 |7 [HEAD2]|6 [C] 1 |2 [OUTPUT]
command2: CMD: [C] 1, [OUTPUT] 1, [OUTPUT] RIGHT, [HEAD1] RIGHT, [HEAD2] RIGHT, q1
Step 5 (executor):
state3: ADD, q1, |5|4 [HEAD1] |7|6 [HEAD2] [C] 1 |2|1 [OUTPUT]
command3: CMD: [OUTPUT] 1, [OUTPUT], [C], qH
Step 6 (executor):
state4: ADD, qH, |5|4 [HEAD1] |7|6 [HEAD2] [C] 1 |2|1|1
command4: No command to execute. Halt state.
Step 7 (aligner):
Executor composer: 以乘法为例,文章介绍 executor composer 的设计过程。乘法可以可以通过加法和小于两个操作符实现。以形式 a×b=c 为例,一种简单的乘法实现可以大致视为循环结构。在循环中使用两个累加器:在每次循环中,一个累加器自增 1,另一个累加器在每次循环中累加 a。当第一个累加器达到 b 时,循环结束,第二个累加器的值即为结果 c。在该过程中,累加器通过现有的加法操作符实现,循环终止条件由小于操作符实现,而乘法自身不参与实际运算,仅驱动该流程的执行。基于该思路,可以构建乘法的抽象执行流程,如图 3 左侧的自动机图所示。以 “89×2=” 这个问题为例,图 3 的右侧展示了 executor 的完整执行流程。
图 3. 89×2 执行过程
通过上述设计,CAEF 赋予了 LLM 执行计算的能力,executor composer 的存在还使得该方法具有很高的扩展性,能够有效处理复杂计算。
实验结果
该工作评估了不同运算符、不同位数情况下的算术准确率。实验使用 LLaMA 3.1-8B 预训练模型作为基础模型,在 +、−、×、÷、==、> 和 < 这 7 个运算符上和三个基准进行了比较:1)LLaMA 3.1-8B 预训练模型基于 LoRA、在仅给出计算结果的数据集上直接微调得到的模型、2)LLaMA 3.1-8B-Instruct、3)GPT-4o。
表 1. 七种运算符的总体评估结果,“LLaMA 3.1 (L)” 代表 LoRA 微调后的 LLaMA 3.1-8B,“LLaMA 3.1 (I)” 代表 LLaMA 3.1-8B-Instruct 模型
表 1 展示了 7 个运算符的 CAEF 方法和基准的评估结果。与基准相比,CAEF 在不同运算符、不同长度的操作数的设置下表现相对稳定,准确率高。特别是对于长数字的任务,例如 100 位加法,通过 CAEF 指导的 LLM 可以有效地学习到计算逻辑。
为了进一步探索 executor 和 aligner 在计算过程中的实际性能,该工作在同一数据集上分别进行了评估。如表 2 所示,可以观察到,即使 executor 必须以迭代方式反复生成中间计算步骤,而 aligner 只执行两个转换步骤,但 executor 的整体性能仍然优于 aligner。executor 在所有实验设置中都达到了 99% 以上的准确率,说明当提供正确的初始状态和命令时,它在绝大多数情况下都能有效工作。另一方面,在大多数情况下,与转换 executor 的输出相比,aligner 在转换原始输入时表现出较低的精度,这表明整个计算过程的瓶颈在于操作数的翻转,而不是计算本身。
表 2. 七种运算符的 executor 和 aligner 准确率,executor 的准确率统计的是从初始状态到最后一步中,每一步都正确、最终计算正确的情况。aligner 的精度分为两部分:从原始输入到 executor 表示的转换,记为 aligner (I),以及从 executor 表示到输出的转换,记为 aligner (O)。
参考文献:
[1] Timo Schick, Jane Dwivedi-Yu, Roberto Dess`ı, Roberta Raileanu, Maria Lomeli, Eric Hambro, Luke Zettlemoyer, Nicola Cancedda, and Thomas Scialom. Toolformer: Language models can teach themselves to use tools. Advances in Neural Information Processing Systems, 36, 2024.
[2] Zhibin Gou, Zhihong Shao, Yeyun Gong, Yujiu Yang, Minlie Huang, Nan Duan, Weizhu Chen, et al. Tora: A tool-integrated reasoning agent for mathematical problem solving. arXiv preprint arXiv:2309.17452, 2023.
[3] Joy He-Yueya, Gabriel Poesia, Rose E Wang, and Noah D Goodman. Solving math word problems by combining language models with symbolic solvers. arXiv preprint arXiv:2304.09102, 2023.
[4] Pan Lu, Baolin Peng, Hao Cheng, Michel Galley, Kai-Wei Chang, Ying Nian Wu, Song-Chun Zhu, and Jianfeng Gao. Chameleon: Plug-and-play compositional reasoning with large language models. Advances in Neural Information Processing Systems, 36, 2024.
[5] Ke Wang, Houxing Ren, Aojun Zhou, Zimu Lu, Sichun Luo, Weikang Shi, Renrui Zhang, Linqi Song, Mingjie Zhan, and Hongsheng Li. Mathcoder: Seamless code integration in llms for enhanced mathematical reasoning. arXiv preprint arXiv:2310.03731, 2023.
[6] Aojun Zhou, Ke Wang, Zimu Lu, Weikang Shi, Sichun Luo, Zipeng Qin, Shaoqing Lu, Anya Jia, Linqi Song, Mingjie Zhan, et al. Solving challenging math word problems using gpt-4 code interpreter with code-based self-verification. arXiv preprint arXiv:2308.07921, 2023.
[7] Maxwell Nye, Anders Johan Andreassen, Guy Gur-Ari, Henryk Michalewski, Jacob Austin, David Bieber, David Dohan, Aitor Lewkowycz, Maarten Bosma, David Luan, et al. Show your work: Scratchpads for intermediate computation with language models. arXiv preprint arXiv:2112.00114, 2021.
[8] Yi Hu, Xiaojuan Tang, Haotong Yang, and Muhan Zhang. Case-based or rule-based: How do transformers do the math? arXiv preprint arXiv:2402.17709, 2024.
[9] Yongchao Zhou, Uri Alon, Xinyun Chen, Xuezhi Wang, Rishabh Agarwal, and Denny Zhou. Transformers can achieve length generalization but not robustly. arXiv preprint arXiv:2402.09371, 2024.
图灵机:计算机科学的奠基之作
图灵机,作为计算机科学的奠基之作,由英国数学家阿兰·图灵在1936年提出。 彼时,计算机科学尚在萌芽阶段,人们依赖机械计算器进行有限功能的计算。 图灵机概念的初衷是为了解决“判定问题”,虽然未能直接解决,但其模型为计算机科学奠定了基础。 图灵机由无限长的纸带、读写头、状态寄存器等元素构成,模拟了人脑进行计算的过程,开启了全新计算方式。 尽管图灵机看起来抽象神秘,却是现代计算机的基石。 从日常使用的电脑、平板、手机到最新的超级计算机,乃至区块链技术,其运行原理皆与图灵机模型相联系。 图灵机概念包含可计算与不可计算问题的区分。 可计算问题存在算法,能对任何输入参数得出答案,如数学加法或简单比较。 反之,不可计算问题如“停机问题”则无法预先判断程序是否停止,属于复杂逻辑范畴。 而“晚上吃什么”这类问题不属于计算范畴,缺乏固定算法解决。 图灵机结构简洁而强大,由控制器、存储器(内存)、输入输出设备等组成,计算过程如同精确的舞蹈,遵循指令集执行操作,直至状态变为停止,最终在纸带上留下输出信息。 现代计算机设计基于图灵机模型,如冯诺依曼体系结构,通过处理器、存储器和外设实现计算过程。 内存虽有限,但借助外置存储实现无限扩展。 图灵完备概念指出,能够模拟单带图灵机的计算模型具备解决所有可计算问题的能力,为衡量计算系统和编程语言提供了标准。 常见编程语言如C++、Java、C#、Python、Haskell等均是图灵完备的,具备解决所有可计算问题的能力。 然而,一些规则或语言并非图灵完备,它们在特定场景下更为适用,如SQL支持复杂数据操作,但不包含循环计算。 图灵不完备的例子有SQL、区块链中的比特币脚本语言和以太坊脚本语言。 综上所述,图灵机与图灵完备概念在计算机科学中占据重要地位,揭示了计算本质,推动了复杂计算系统的理解与设计。 无论是编程语言开发者、普通编程者还是区块链开发者,理解这些概念至关重要。
图灵机被看做是计算机的模型,怎么理解图灵机的程序?与汇编的程序或者其他语言的程序有什么异同呢?
图灵机不是种语言,而是计算机的机器运算原理。 利用储存介质近似于无限长的纸带,以及计算机处理器快速重复的特性,可以将几乎所有能用笔运算出来的数学问题在机器上‘运算’出来。 而其他语言是不用了解机器具体如何实现加减乘除以及其他的复杂计算的(即便是机器语言,也只是输入具体加减指令,不需要你自己设置运算规则)。
人工智能的发展,主要经历哪几个阶段?
1 孕育阶段这个阶段主要是指1956年以前。 自古以来,人们就一直试图用各种机器来代替人的部分脑力劳动,以提高人们征服自然的能力,其中对人工智能的产生、发展有重大影响的主要研究成果包括:早在公元前384-公元前322年,伟大的哲学家亚里士多德(Aristotle)就在他的名著《工具论》中提出了形式逻辑的一些主要定律,他提出的三段论至今仍是演绎推理的基本依据。 英国哲学家培根(F. Bacon)曾系统地提出了归纳法,还提出了“知识就是力量”的警句。 这对于研究人类的思维过程,以及自20世纪70年代人工智能转向以知识为中心的研究都产生了重要影响。 德国数学家和哲学家莱布尼茨(G. W. Leibniz)提出了万能符号和推理计算的思想,他认为可以建立一种通用的符号语言以及在此符号语言上进行推理的演算。 这一思想不仅为数理逻辑的产生和发展奠定了基础,而且是现代机器思维设计思想的萌芽。 英国逻辑学家布尔(C. Boole)致力于使思维规律形式化和实现机械化,并创立了布尔代数。 他在《思维法则》一书中首次用符号语言描述了思维活动的基本推理法则。 英国数学家图灵(A. M. Turing)在1936年提出了一种理想计算机的数学模型,即图灵机,为后来电子数字计算机的问世奠定了理论基础。 美国神经生理学家麦克洛奇(W. McCulloch)与匹兹(W. Pitts)在1943年建成了第一个神经网络模型(M-P模型),开创了微观人工智能的研究领域,为后来人工神经网络的研究奠定了基础。 美国爱荷华州立大学的阿塔纳索夫(Atanasoff)教授和他的研究生贝瑞(Berry)在1937年至1941年间开发的世界上第一台电子计算机“阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,ABC)”为人工智能的研究奠定了物质基础。 需要说明的是:世界上第一台计算机不是许多书上所说的由美国的莫克利和埃柯特在1946年发明。 这是美国历史上一桩著名的公案。 由上面的发展过程可以看出,人工智能的产生和发展绝不是偶然的,它是科学技术发展的必然产物。 2 形成阶段这个阶段主要是指1956-1969年。 1956年夏季,由当时达特茅斯大学的年轻数学助教、现任斯坦福大学教授麦卡锡(J. MeCarthy)联合哈佛大学年轻数学和神经学家、麻省理工学院教授明斯基(M. L. Minsky),IBM公司信息研究中心负责人洛切斯特(N. Rochester),贝尔实验室信息部数学研究员香农(C. E. Shannon)共同发起,邀请普林斯顿大学的莫尔()和IBM公司的塞缪尔(A. L. Samuel)、麻省理工学院的塞尔夫里奇(O. Selfridge)和索罗莫夫(R. Solomonff)以及兰德(RAND)公司和卡内基梅隆大学的纽厄尔(A. Newell)、西蒙(H. A. Simon)等在美国达特茅斯大学召开了一次为时两个月的学术研讨会,讨论关于机器智能的问题。 会上经麦卡锡提议正式采用了“人工智能”这一术语。 麦卡锡因而被称为人工智能之父。 这是一次具有历史意义的重要会议,它标志着人工智能作为一门新兴学科正式诞生了。 此后,美国形成了多个人工智能研究组织,如纽厄尔和西蒙的Carnegie-RAND协作组,明斯基和麦卡锡的MIT研究组,塞缪尔的IBM工程研究组等。 自这次会议之后的10多年间,人工智能的研究在机器学习、定理证明、模式识别、问题求解、专家系统及人工智能语言等方面都取得了许多引人注目的成就,例如:在机器学习方面,1957年Rosenblatt研制成功了感知机。 这是一种将神经元用于识别的系统,它的学习功能引起了广泛的兴趣,推动了连接机制的研究,但人们很快发现了感知机的局限性。 在定理证明方面,美籍华人数理逻辑学家王浩于1958年在IBM-704机器上用3~5min证明了《数学原理》中有关命题演算的全部定理(220条),并且还证明了谓词演算中150条定理的85%,1965年鲁宾逊(J. A. Robinson)提出了归结原理,为定理的机器证明作出了突破性的贡献。 在模式识别方面,1959年塞尔夫里奇推出了一个模式识别程序,1965年罗伯特(Roberts)编制出了可分辨积木构造的程序。 在问题求解方面,1960年纽厄尔等人通过心理学试验总结出了人们求解问题的思维规律,编制了通用问题求解程序(General Problem Solver,GPS),可以用来求解11种不同类型的问题。 在专家系统方面,美国斯坦福大学的费根鲍姆(E. A. Feigenbaum)领导的研究小组自1965年开始专家系统DENDRAL的研究,1968年完成并投入使用。 该专家系统能根据质谱仪的实验,通过分析推理决定化合物的分子结构,其分析能力已接近甚至超过有关化学专家的水平,在美、英等国得到了实际的应用。 该专家系统的研制成功不仅为人们提供了一个实用的专家系统,而且对知识表示、存储、获取、推理及利用等技术是一次非常有益的探索,为以后专家系统的建造树立了榜样,对人工智能的发展产生了深刻的影响,其意义远远超过了系统本身在实用上所创造的价值。 在人工智能语言方面,1960年麦卡锡研制出了人工智能语言(List Processing,LISP),成为建造专家系统的重要工具。 1969年成立的国际人工智能联合会议(International Joint Conferences On Artificial Intelligence,IJCAI)是人工智能发展史上一个重要的里程碑,它标志着人工智能这门新兴学科已经得到了世界的肯定和认可。 1970年创刊的国际性人工智能杂志《Artificial Intelligence》对推动人工智能的发展,促进研究者们的交流起到了重要的作用。 3 发展阶段这个阶段主要是指1970年以后。 进入20世纪70年代,许多国家都开展了人工智能的研究,涌现了大量的研究成果。 例如,1972年法国马赛大学的科麦瑞尔(A. Comerauer)提出并实现了逻辑程序设计语言PROLOG;斯坦福大学的肖特利夫(E. H. Shorliffe)等人从1972年开始研制用于诊断和治疗感染性疾病的专家系统MYCIN。 但是,和其他新兴学科的发展一样,人工智能的发展道路也不是平坦的。 例如,机器翻译的研究没有像人们最初想象的那么容易。 当时人们总以为只要一部双向词典及一些词法知识就可以实现两种语言文字间的互译。 后来发现机器翻译远非这么简单。 实际上,由机器翻译出来的文字有时会出现十分荒谬的错误。 例如,当把“眼不见,心不烦”的英语句子“Out of sight,out of mind”。 翻译成俄语变成“又瞎又疯”;当把“心有余而力不足”的英语句子“The spirit is willing but the flesh is weak”翻译成俄语,然后再翻译回来时竟变成了“The wine is good but the meat is spoiled”,即“酒是好的,但肉变质了”;当把“光阴似箭”的英语句子“Time flies like an arrow”翻译成日语,然后再翻译回来的时候,竟变成了“苍蝇喜欢箭”。 由于机器翻译出现的这些问题,1960年美国政府顾问委员会的一份报告裁定:“还不存在通用的科学文本机器翻译,也没有很近的实现前景。 ”因此,英国、美国当时中断了对大部分机器翻译项目的资助。 在其他方面,如问题求解、神经网络、机器学习等,也都遇到了困难,使人工智能的研究一时陷入了困境。 人工智能研究的先驱者们认真反思,总结前一段研究的经验和教训。 1977年费根鲍姆在第五届国际人工智能联合会议上提出了“知识工程”的概念,对以知识为基础的智能系统的研究与建造起到了重要的作用。 大多数人接受了费根鲍姆关于以知识为中心展开人工智能研究的观点。 从此,人工智能的研究又迎来了蓬勃发展的以知识为中心的新时期。 这个时期中,专家系统的研究在多种领域中取得了重大突破,各种不同功能、不同类型的专家系统如雨后春笋般地建立起来,产生了巨大的经济效益及社会效益。 例如,地矿勘探专家系统PROSPECTOR拥有15种矿藏知识,能根据岩石标本及地质勘探数据对矿藏资源进行估计和预测,能对矿床分布、储藏量、品位及开采价值进行推断,制定合理的开采方案。 应用该系统成功地找到了超亿美元的钼矿。 专家系统MYCIN能识别51种病菌,正确地处理23种抗菌素,可协助医生诊断、治疗细菌感染性血液病,为患者提供最佳处方。 该系统成功地处理了数百个病例,并通过了严格的测试,显示出了较高的医疗水平。 美国DEC公司的专家系统XCON能根据用户要求确定计算机的配置。 由专家做这项工作一般需要3小时,而该系统只需要0.5分钟,速度提高了360倍。 DEC公司还建立了另外一些专家系统,由此产生的净收益每年超过4000万美元。 信用卡认证辅助决策专家系统American Express能够防止不应有的损失,据说每年可节省2700万美元左右。 专家系统的成功,使人们越来越清楚地认识到知识是智能的基础,对人工智能的研究必须以知识为中心来进行。 对知识的表示、利用及获取等的研究取得了较大的进展,特别是对不确定性知识的表示与推理取得了突破,建立了主观Bayes理论、确定性理论、证据理论等,对人工智能中模式识别、自然语言理解等领域的发展提供了支持,解决了许多理论及技术上的问题。 人工智能在博弈中的成功应用也举世瞩目。 人们对博弈的研究一直抱有极大的兴趣,早在1956年人工智能刚刚作为一门学科问世时,塞缪尔就研制出了跳棋程序。 这个程序能从棋谱中学习,也能从下棋实践中提高棋艺。 1959年它击败了塞缪尔本人,1962年又击败了一个州的冠军。 1991年8月在悉尼举行的第12届国际人工智能联合会议上,IBM公司研制的“深思”(Deep Thought)计算机系统就与澳大利亚象棋冠军约翰森(D. Johansen)举行了一场人机对抗赛,结果以1:1平局告终。 1957年西蒙曾预测10年内计算机可以击败人类的世界冠军。 虽然在10年内没有实现,但40年后深蓝计算机击败国际象棋棋王卡斯帕罗夫(Kasparov),仅仅比预测迟了30年。 1996年2月10日至17日,为了纪念世界上第一台电子计算机诞生50周年,美国IBM公司出巨资邀请国际象棋棋王卡斯帕罗夫与IBM公司的深蓝计算机系统进行了六局的“人机大战”。 这场比赛被人们称为“人脑与电脑的世界决战”。 参赛的双方分别代表了人脑和电脑的世界最高水平。 当时的深蓝是一台运算速度达每秒1亿次的超级计算机。 第一盘,深蓝就给卡斯帕罗夫一个下马威,赢了这位世界冠军,给世界棋坛以极大的震动。 但卡斯帕罗夫总结经验,稳扎稳打,在剩下的五盘中赢三盘,平两盘,最后以总比分4:2获胜。 一年后,即1997年5月3日至11日,深蓝再次挑战卡斯帕罗夫。 这时,深蓝是一台拥有32个处理器和强大并行计算能力的RS/6000SP/2的超级计算机,运算速度达每秒2亿次。 计算机里存储了百余年来世界顶尖棋手的棋局,5月3日棋王卡斯帕罗夫首战击败深蓝,5月4日深蓝扳回一盘,之后双方战平三局。 双方的决胜局于5月11日拉开了帷幕,卡斯帕罗夫在这盘比赛中仅仅走了19步便放弃了抵抗,比赛用时只有1小时多一点。 这样,深蓝最终以3.5:2.5的总比分赢得这场举世瞩目的“人机大战”的胜利。 深蓝的胜利表明了人工智能所达到的成就。 尽管它的棋路还远非真正地对人类思维方式的模拟,但它已经向世人说明,电脑能够以人类远远不能企及的速度和准确性,实现属于人类思维的大量任务。 深蓝精湛的残局战略使观战的国际象棋专家们大为惊讶。 卡斯帕罗夫也表示:“这场比赛中有许多新的发现,其中之一就是计算机有时也可以走出人性化的棋步。 在一定程度上,我不能不赞扬这台机器,因为它对盘势因素有着深刻的理解,我认为这是一项杰出的科学成就。 ”因为这场胜利,IBM的股票升值为180亿美元。 4 人工智能的学派根据前面的论述,我们知道要理解人工智能就要研究如何在一般的意义上定义知识,可惜的是,准确定义知识也是个十分复杂的事情。 严格来说,人们最早使用的知识定义是柏拉图在《泰阿泰德篇》中给出的,即“被证实的、真的和被相信的陈述”(Justified true belief,简称JTB条件)。 然而,这个延续了两千多年的定义在1963年被哲学家盖梯尔否定了。 盖梯尔提出了一个著名的悖论(简称“盖梯尔悖论”)。 该悖论说明柏拉图给出的知识定文存在严重缺陷。 虽然后来人们给出了很多知识的替代定义,但直到现在仍然没有定论。 但关于知识,至少有一点是明确的,那就是知识的基本单位是概念。 精通掌握任何一门知识,必须从这门知识的基本概念开始学习。 而知识自身也是一个概念。 因此,如何定义一个概念,对于人工智能具有非常重要的意义。 给出一个定义看似简单,实际上是非常难的,因为经常会涉及自指的性质(自指:词性的转化——由谓词性转化为体词性,语义则保持不变)。 一旦涉及自指,就会出现非常多的问题,很多的语义悖论都出于概念自指。 自指与转指这一对概念最早出自朱德熙先生的《自指与转指》(《方言》1983年第一期,《朱德熙文集》第三卷)。 陆俭明先生在《八十年代中国语法研究》中(第98页)说:“自指和转指的区别在于,自指单纯是词性的转化-由谓词性转化为体词性,语义则保持不变;转指则不仅词性转化,语义也发生变化,尤指行为动作或性质本身转化为指与行为动作或性质相关的事物。 ”举例:①教书的来了(“教书的”是转指,转指教书的“人”);教书的时候要认真(“教书的”语义没变,是自指)。 ②Unplug一词的原意为“不使用(电源)插座”,是自指;常用来转指为不使用电子乐器的唱歌。 ③colored在表示having colour(着色)时是自指。 colored在表示有色人种时,就是转指。 ④rich,富有的,是自指。 the rich,富人,是转指。 知识本身也是一个概念。 据此,人工智能的问题就变成了如下三个问题:一、如何定义(或者表示)一个概念、如何学习一个概念、如何应用一个概念。 因此对概念进行深人研究就非常必要了。 那么,如何定义一个概念呢?简单起见,这里先讨论最为简单的经典概念。 经典概念的定义由三部分组成:第一部分是概念的符号表示,即概念的名称,说明这个概念叫什么,简称概念名;第二部分是概念的内涵表示,由命题来表示,命题就是能判断真假的陈述句。 第三部分是概念的外延表示,由经典集合来表示,用来说明与概念对应的实际对象是哪些。 举一个常见经典概念的例子——素数(prime number),其内涵表示是一个命题,即只能够被1和自身整除的自然数。 概念有什么作用呢?或者说概念定义的各个组成部分有什么作用呢?经典概念定义的三部分各有作用,且彼此不能互相代替。 具体来说,概念有三个作用或功能,要掌握一个概念,必须清楚其三个功能。 第一个功能是概念的指物功能,即指向客观世界的对象,表示客观世界的对象的可观测性。 对象的可观测性是指对象对于人或者仪器的知觉感知特性,不依赖于人的主观感受。 举一个《阿Q正传》里的例子:那赵家的狗,何以看我两眼呢?句子中“赵家的狗”应该是指现实世界当中的一条真正的狗。 但概念的指物功能有时不一定能够实现,有些概念其设想存在的对象在现实世界并不存在,例如“鬼”。 第二个功能是指心功能,即指向人心智世界里的对象,代表心智世界里的对象表示。 鲁迅有一篇著名的文章《论丧家的资本家的乏走狗》,显然,这个“狗”不是现实世界的狗,只是他心智世界中的狗,即心里的狗(在客观世界,梁实秋先生显然无论如何不是狗)。 概念的指心功能一定存在。 如果对于某一个人,一个概念的指心功能没有实现,则该词对于该人不可见,简单地说,该人不理解该概念。 最后一个功能是指名功能,即指向认知世界或者符号世界表示对象的符号名称,这些符号名称组成各种语言。 最著名的例子是乔姆斯基的“colorless green ideas sleep furiously”,这句话翻译过来是“无色的绿色思想在狂怒地休息”。 这句话没有什么意思,但是完全符合语法,纯粹是在语义符号世界里,即仅仅指向符号世界而已。 当然也有另外,“鸳鸯两字怎生书”指的就是“鸳鸯”这两个字组成的名字。 一般情形下,概念的指名功能依赖于不同的语言系统或者符号系统,由人类所创造,属于认知世界。 同一个概念在不同的符号系统里,概念名不一定相同,如汉语称“雨”,英语称“rain”。 根据波普尔的三个世界理论,认知世界、物理世界与心理世界虽然相关,但各不相同。 因此,一个概念的三个功能虽然彼此相关,也各不相同。 更重要的是,人类文明发展至今,这三个功能不断发展,彼此都越来越复杂,但概念的三个功能并没有改变。 在现实生活中,如果你要了解一个概念,就需要知道这个概念的三个功能:要知道概念的名字,也要知道概念所指的对象(可能是物理世界)。 更要在自己的心智世界里具有该概念的形象(或者图像)。 如果只有一个,那是不行的。 知道了概念的三个功能之后,就可以理解人工智能的三个学派以及各学派之间的关系。 人工智能也是一个概念,而要使一个概念成为现实,自然要实现概念的三个功能。 人工智能的三个学派关注于如何才能让机器具有人工智能,并根据概念的不同功能给出了不同的研究路线。 专注于实现AI指名功能的人工智能学派成为符号主义,专注于实现AI指心功能的人工智能学派称为连接主义,专注于实现AI指物功能的人工智能学派成为行为主义。 1. 符号主义符号主义的代表人物是Simon与Newell,他们提出了物理符号系统假设,即只要在符号计算上实现了相应的功能,那么在现实世界就实现了对应的功能,这是智能的充分必要条件。 因此,符号主义认为,只要在机器上是正确的,现实世界就是正确的。 说得更通俗一点,指名对了,指物自然正确。 在哲学上,关于物理符号系统假设也有一个著名的思想实验——本章1.1.3节中提到的图灵测试。 图灵测试要解决的问题就是如何判断一台机器是否具有智能。 图灵测试将智能的表现完全限定在指名功能里。 但马少平教授的故事已经说明,只在指名功能里实现了概念的功能,并不能说明一定实现了概念的指物功能。 实际上,根据指名与指物的不同,哲学家约翰·塞尔勒专门设计了一个思想实验用来批判图灵测试,这就是著名的中文屋实验。 中文屋实验明确说明,即使符号主义成功了,这全是符号的计算跟现实世界也不一定搭界,即完全实现指名功能也不见得具有智能。 这是哲学上对符号主义的一个正式批评,明确指出了按照符号主义实现的人工智能不等同于人的智能。 虽然如此,符号主义在人工智能研究中依然扮演了重要角色,其早期工作的主要成就体现在机器证明和知识表示上。 在机器证明方面,早期Simon与Newell做出了重要的贡献,王浩、吴文俊等华人也得出了很重要的结果。 机器证明以后,符号主义最重要的成就是专家系统和知识工程,最著名的学者就是Feigenbaum。 如果认为沿着这条路就可以实现全部智能,显然存在问题。 日本第五代智能机就是沿着知识工程这条路走的,其后来的失败在现在看来是完全合乎逻辑的。 实现符号主义面临的观实挑成主要有三个。 第一个是概念的组合爆炸问题。 每个人掌握的基本概念大约有5万个,其形成的组合概念却是无穷的。 因为常识难以穷尽,推理步骤可以无穷。 第二个是命题的组合悖论问题。 两个都是合理的命题,合起来就变成了没法判断真假的句子了,比如著名的柯里悖论(Curry’s Paradox)(1942)。 第三个也是最难的问题,即经典概念在实际生活当中是很难得到的,知识也难以提取。 上述三个问题成了符号主义发展的瓶颈。 2. 连接主义连接主义认为大脑是一切智能的基础,主要关注于大脑神经元及其连接机制,试图发现大脑的结构及其处理信息的机制、揭示人类智能的本质机理,进而在机器上实现相应的模拟。 前面已经指出知识是智能的基础,而概念是知识的基本单元,因此连接主义实际上主要关注于概念的心智表示以及如何在计算机上实现其心智表示,这对应着概念的指心功能。 2016年发表在Nature上的一篇学术论文揭示了大脑语义地图的存在性,文章指出概念都可以在每个脑区找到对应的表示区,确确实实概念的心智表示是存在的。 因此,连接主义也有其坚实的物理基础。 连接主义学派的早期代表人物有麦克洛克、皮茨、霍普菲尔德等。 按照这条路,连接主义认为可以实现完全的人工智能。 对此,哲学家普特南设计了著名的“缸中之脑实验”,可以看作是对连接主义的一个哲学批判。 缸中之脑实验描述如下:一个人(可以假设是你自己)被邪恶科学家进行了手术,脑被切下来并放在存有营养液的缸中。 脑的神经末梢被连接在计算机上,同时计算机按照程序向脑传递信息。 对于这个人来说,人、物体、天空都存在,神经感觉等都可以输入,这个大脑还可以被输入、截取记忆,比如截取掉大脑手术的记忆,然后输入他可能经历的各种环境、日常生活,甚至可以被输入代码,“感觉”到自己正在阅读这一段有趣而荒唐的文字。 缸中之脑实验说明即使连接主义实现了,指心没有问题,但指物依然存在严重问题。 因此,连接主义实现的人工智能也不等同于人的智能。 尽管如此,连接主义仍是目前最为大众所知的一条AI实现路线。 在围棋上,采用了深度学习技术的AlphaGo战胜了李世石,之后又战胜了柯洁。 在机器翻译上,深度学习技术已经超过了人的翻译水平。 在语音识别和图像识别上,深度学习也已经达到了实用水准。 客观地说,深度学习的研究成就已经取得了工业级的进展。 但是,这并不意味着连接主义就可以实现人的智能。 更重要的是,即使要实现完全的连接主义,也面临极大的挑战。 到现在为止,人们并不清楚人脑表示概念的机制,也不清楚人脑中概念的具体表示形式表示方式和组合方式等。 现在的神经网络与深度学习实际上与人脑的真正机制距离尚远。 3. 行为主义行为主义假设智能取决于感知和行动,不需要知识、表示和推理,只需要将智能行为表现出来就好,即只要能实现指物功能就可以认为具有智能了。 这一学派的早期代表作是Brooks的六足爬行机器人。 对此,哲学家普特南也设计了一个思想实验,可以看作是对行为主义的哲学批判,这就是“完美伪装者和斯巴达人”。 完美伪装者可以根据外在的需求进行完美的表演,需要哭的时候可以哭得让人撕心裂肺,需要笑的时候可以笑得让人兴高采烈,但是其内心可能始终冷静如常。 斯巴达人则相反,无论其内心是激动万分还是心冷似铁,其外在总是一副泰山崩于前而色不变的表情。 完美伪装者和斯巴达人的外在表现都与内心没有联系,这样的智能如何从外在行为进行测试?因此,行为主义路线实现的人工智能也不等同于人的智能。 对于行为主义路线,其面临的最大实现困难可以用莫拉维克悖论来说明。 所谓莫拉维克悖论,是指对计算机来说困难的问题是简单的、简单的问题是困难的,最难以复制的反而是人类技能中那些无意识的技能。 目前,模拟人类的行动技能面临很大挑战。 比如,在网上看到波士顿动力公司人形机器人可以做高难度的后空翻动作,大狗机器人可以在任何地形负重前行,其行动能力似乎非常强。 但是这些机器人都有一个大的缺点一能耗过高、噪音过大。 大狗机器人原是美国军方订购的产品,但因为大狗机器人开动时的声音在十里之外都能听到,大大提高了其成为一个活靶子的可能性,使其在战场上几乎没有实用价值,美国军方最终放弃了采购。