“计算机”,顾名思义,是做“计算”的机器。计算是人所特有的智力活动,除人以外的任何动物都不会计算。但究竟什么是计算,什么不是计算?一般人并不清楚。问小学生“2+3=5”是计算吗?大家都会点头;问“找出全班期考成绩最高的同学”是计算吗?多数都摇头。
关于“什么是计算”的研究起源于20世纪初的一场数学基础危机。那时有个数学家、逻辑学家罗素(Russell)提出了著名的“罗素悖论”:令S是由所有不是自己的元素的集合组成的集合,问S是不是它自己的元素?无论回答“是”或“否”都会出现矛盾。这个悖论动摇了现代数学的基础。为了从根本上解决这个危机,当时国际数学界公认的领袖、德国哥廷根大学的希尔伯特(Hilbert)教授提出了一个计划,这个计划包含两条路线:
1、建立一个公理系统,从中可以推导出所有的数学真命题(完备性),并且不会推出任何矛盾(协调性,也称自洽性)。
2、寻求一个判定过程,其每一步都可以机械地执行,给定任何数学命题,都可以在有穷步内终止,输出“yes”(该命题为真)或“no”(该命题为假)。
1931年,哥德尔(Gödel)发表了(两个)不完备性定理,说明第一条路线走不通。那么第二条路线呢?关于判定过程的难点在于“机械地执行”不是可以在数学中定义的概念。1935年图灵在剑桥大学的讨论班上对此给出了一个简明的回答:“Something that can be done by a machine”,可以由机器完成的就是可以“机械地执行”的。直观地看,机器(machine)是人造的非生命体,其特点是没有自主性、行为可重复。基于这个认识,图灵在1936年发表的划时代的论文中,定义了“A-machine”,一种抽象机器(后人称为“图灵机”)。图灵的目标是要证明A-machine的停机问题不可判定(以否定的方式解决希尔伯特的判定问题),为此他构造了一种特别的A-machine,称为“U-machine”(Universal A-machine,后人称为“通用图灵机”)。将任意A-machine按一定的规则编码成由0、1组成的串,放在U-machine的纸带上,U-machine就能模拟该A-machine的计算过程。U-machine可以模拟所有的A-machine,包括它自己。现代通用计算机的“存储程序式体系结构”,其思想直接来源于通用图灵机。通用计算机由硬件和软件两部分组成。硬件,即CPU,是用电路实现的指令集。用通用计算机解决任何问题,都需要由人将解决问题的思路用指令编出相应的程序(软件),交给CPU执行。电路是一种机器;按图灵的说法,能由机器执行的就是机械的,因此程序是人的机械智力活动的描述。通用计算机理论上可以执行所有的程序,它不仅是工具,还是构建工具的平台——这就是现在常说的“软件定义”。通用计算机上配置的软件越多,所具备的功能就越多。但计算机不能自主地增加或提升自己的功能,因为设计软件的过程不是机械的,需要创造性的智能。对于“可以机械地进行”的智能活动,计算机超越了人类。人算不过计算机,就像人跑不过汽车。希尔伯特计划的两条路线都没有成功,这个计划失败了。但其否证所导致的两个结果——哥德尔不完备性定理和通用图灵机——却产生了极其深远的影响。哥德尔不完备性定理表明,严格的形式推理无法穷尽所有的数学真理;这个结论对数学基础和数学哲学的研究产生了巨大的冲击。而通用图灵机直接导致了通用计算机的诞生,改变了整个世界的面貌,其影响远远超出了逻辑学和数学的范畴。从广义的角度评价,希尔伯特计划所引发的研究成果远远超出了其原先设定的解决数学基础危机的目标,是巨大的成功。计算机问世以来,应用领域不断扩展,从早期的数值计算、账务处理、自动控制,到互联网、搜索查询、社交媒体、网络购物……,这些扩展都是由人编写的软件实现的。但是还有很多重要的应用领域,比如医学影像判读、语音识别、手写体识别、机器翻译等,我们希望计算机也能比人做得更快、更好,但却无法直接编出有效的程序。以医学影像判读为例。医学专家可以从肺部的CT影像识别出肺里是否有肿瘤。但是我们不知道医学专家大脑里的近1000亿个神经元细胞是通过怎样的活动过程得出这个结论的,也不知道在他从不是专家到成为专家的漫长过程中,由这些神经元细胞组成的神经系统发生了怎样的变化,所以无法编写程序来模拟这个识别过程。但我们可以退而求其次,让医学专家对大量的肺部CT影像标注是否有肿瘤,用这些加了标注的影像对(在计算机上实现的)人工神经网络进行训练,然后用经过训练的神经网络识别CT影像。这被称为“机器学习”。因此,机器学习不是学原理,也不是学方法,而是学结果。机器学习是“人工智能”的一个分支,也是目前最重要的分支。那么“智能”(指人的智能)究竟是什么?研究“智能”的主要是哲学家和心理学家,不同的流派对这个概念有不同的界定。这里列举两个:1.人的脑力素质,包括从经验中学习、适应新情况、理解和处理抽象概念,以及应用知识操控所处环境的能力1。2.抽象、逻辑、理解、自我意识、学习、推理、规划、创造力、批判思维、解决问题2。遗憾的是,“智能”这个概念至今还没有一个确切的定义,属于尚未解决的哲学问题3,因此目前只能列举多数研究者都认同的一些属性特征来界定,但这容易产生误解。比如一个主体,只要它具有以上特征中的某一个或某几个,我们就可以说它“具有人的智能”。这么说既对,也不完全对。因为“具有人的智能”可以理解成“具有人的某些智能”,也可以理解成“具有跟人一样的智能”。在谈论人工智能与人的智能之间的关系时,我们需要特别留意自然语言的这种多义性和模糊性。这两年出现的大语言模型是自然语言处理的颠覆性进展。自然语言处理涉及语法、语义、语用等多个方面。举几个简单的例子:(1)猴子爬到树上去了;(2)快乐爬到树上去了;(3)石头爬到树上去了。第(1)句有没有问题?首先看语法。“猴子”是名词,“爬”是动词,“到树上去了”是状语。名词可以做主语,动词可以做谓语,所以“猴子爬到树上去了”在语法上是没问题的。语义呢?看这句话所表达的意义是否符合客观世界。我们在动物园、野外、电视里经常看到猴子确实是会爬到树上去,所以这句话在语义上也是对的。第(2)句中,“快乐”是形容词,形容词不能做主语,因此这句话在语法上是不对的。第(3)句话对不对呢?石头是名词,名词可以做主语,但是这句话在语义上是不对的,因为在现实世界里,我们没有看到过石头会爬树。我们说“快乐爬到树上去了”在语法上不对,是因为形容词不能做主语。但如果家里养了一只猫,给它取名叫“快乐”,我们看到这只猫爬到树上去了,就说“快乐爬到树上去了”,这对不对呢?传统的自然语言处理为了应对这些困难,想了很多办法,比如对包括词在内的各种语法单元进行标注,例如猴子可以爬、石头不能爬,等等,构造庞大的语料库。但自然语言极其复杂,有很多词是多义的,还有很多典故和很多特定的用法,无法标注完全,所以传统的自然语言处理一直做不好。是否可以避免这种繁琐的标注方法呢?我们换个维度看这三个句子:考虑它们在所有已经发表的文字材料中出现的频次,容易发现“猴子-爬-树”出现的频次要远远高于“快乐-爬-树”和“石头-爬-树”出现的频次。因此,如果我们把所有已经发表的文字材料收集起来,不加任何标注,对人工神经网络进行训练,统计出字(token)之间的关联度,那一定是“猴子-爬-树”的关联度要远远高于“快乐-爬-树”和“石头-爬-树”的关联度。在此基础上,对所给的问题按照关联度预测下一个字,逐字拼出回答,这样生成的回答在形式上也会是合规的。大语言模型的成功,得益于存在巨量的文字材料。这些文字材料的内容不一定对,网络上的很多话可能是错的,不同书籍的观点可能是针锋相对的,但是它们在语法上、形式上都是合规的。这是千百年来人类社会对教育投入的结果。大家都知道,机器学习能否成功,主要取决于训练数据集的质量。如果数据质量不好,有很多噪声,就训练不出可用的模型。因为用来训练大语言模型的文字材料在语法上、形式上是高质量的,所以它生成出来的语句在语法上、形式上也是合规的、通顺的。由于大语言模型能够生成通顺的语句,也被称为“生成式AI”。从信息查询的角度看,大语言模型就像是一个巨大无比的“模糊化”的资料库。为什么说模糊?要从几百亿GB规模的资料库中,按内容查找所需要的信息,用传统的自然语言处理技术不可能做到。大语言模型的办法是按文字出现的统计相关性,而不是内容相关性,来检索这个资料库,因此可以做到实时性。统计相关性高的,往往也是内容相关性高的。但“往往”不等于“一定”,所以是“模糊”的。如果不对怎么办?有各种纠正的办法,比如通过微调(fine-tuning)的方式对出错的部分做进一步的训练,或者通过后校验的方式人为地直接修改大语言模型的输出。但是大模型不知道它生成的语句是不是对的,因为一段语法上、形式上合规的语句是否正确,取决于它所表达的意义与外在的客观世界是否吻合,而这在文字符号的世界里是无法检测的。因为大语言模型只是在文字符号的世界里打转,做各种操作,不能将它所生成的语句与外在的客观世界做比较,所以无法知道它所生成的话对不对。用哲学的语言讲,大语言模型没有批判思维。另外一个问题:大语言模型有没有创新性?我们以力学的创立为例。力的概念很早就有了,但第一个试图对“力”给出严格定义的是古希腊时代的亚里士多德。他认为“力是维持物体运动状态的作用”。因为根据他的观察,任何运动的物体如果没有外力加在它上面就会逐渐停下来。由于所有的直接观察似乎都支持这个观点,在1800多年的时间里,几乎没有人对这个定义提出异议。直到1687年,牛顿发表了划时代的论著《自然哲学的数学原理》,给“力”下了一个新的定义:“力是改变运动状态的作用”。牛顿将“维持”改为“改变”,不是凭空想出来的。在他之前已经有一些科学家,如伽利略等,做了很多实验,观察到物体在运动过程中会受到阻力,如果没有阻力,运动的物体就不会停下来。伽利略、牛顿这些科学家有洞察力,能够通过科学实验,透过现象看到本质。牛顿的定义符合客观规律,所以他能够提出力学的各种定律,包括万有引力定律。应用这些定律,我们可以设计出汽车、火车、飞机、火箭,可以盖高楼、建大桥,改变了世界的面貌。而在他之前的1800多年里,在不符合客观规律的定义占统治地位的年代,这些进步不可能发生。在这个意义下,我们可以说:原始创新是社会进步的第一推动力。回到关于大语言模型有没有创新性的讨论。我们可以做一个思维实验,假设在1687年就出现了大语言模型,问它:力是什么?大家想想它会怎么回答?科学创新的要素,一是科学实践,包括科学观察、科学实验;二是洞察力,能从表面现象中发现以前没有人看到的本质。大语言模型的基本原理是从巨量的形式上合规的文字材料中算出关联度,然后利用关联度预测下一个字,这是它成功的内在逻辑。然而这个内在逻辑也决定了它不具备原始创新的能力;这既因为大语言模型只是在文字材料中打转,不具备科学实践能力,也因为原始创新是“从无到有”。在1687年,所有已经发表的文字材料里没有出现牛顿关于力的定义,所以那时的大语言模型(假设有)不可能把这个定义凭空生成出来。大语言模型的成功,激起了一场前所未有的智能热。有些人认为,我们用所有的文字材料,包括所有的书籍,其中记载了人类的所有知识,训练大语言模型,由此大语言模型掌握了人类的所有知识,已经或者将会超越人类的智能。这里的问题在于,他们把机器学习理解成是学知识、学原理、学方法,其实不然。机器学习只是学结果,而大语言模型主要依赖于统计文字出现频次的相关性,然后利用这种相关性生成回答。因此不存在大语言模型超越人类智能的问题。计算机、机器学习、大语言模型,都是人类创造的工具。人类之所以创造工具,就是因为它们在某些方面比人强,“超越”了我们。计算机在机械的智力活动上远远超过了人类,但没有人因此而惊呼“计算机超越了人类”。而当大语言模型在回答一些问题时超过了人类的平均水平,“人工智能超越人类”的声浪就不绝于耳。由于大语言模型问世的时间还不长,多数人对它了解不够,而且绝大多数公众和媒体人士不知道计算机的工作原理,对智能也只有模糊的理解(“智能”至今还没有确切的定义),媒体上出现一些炒作并不奇怪。但炒作不利于科学研究的健康发展。科学研究的目的是为了认识客观规律,从而利用这些规律造福人类。科学研究最基本的原则是实事求是。而炒作恰恰违背了实事求是的原则,对此我们要保持清醒的头脑。机器学习,特别是深度学习的成功,帮我们解决了大量无法直接用编程解决的问题,大大拓宽了计算机的应用范围,但这是有代价的。机器学习是基于统计做推断,而基于统计做出的推断,不可能是准确的,而只能是概率的。概率可以看作是一种近似。近似可以分成两类,一类是有误差范围的近似。数值计算得到的结果一般都是近似值,因为大量数学问题的解,都含有像π、这样的无理数,无法算出准确值,只能用近似值。但是我们计算这类近似值的时候,还可以算出它的误差范围。只要我们的系统设计和工程实现都能容忍给定的误差范围,这种近似值的使用就是百分百安全、百分百可靠的。因此这种近似是可控的。另一类近似是没有误差范围的,概率就属于这一类。利用人工神经网络推断出来的结果,没有误差范围,无法做到百分百的安全可靠,是不可控的。我们设计、实现的计算机应用系统中,如果用到机器学习,需要考虑如何避免出现灾难性的事故。这是有教训的。比如曾经有一辆特斯拉Model S汽车在自动驾驶状态下,把前面大货车的白色车厢识别成天空,导致车毁人亡。类似的事故发生过很多。现在人工智能技术越来越多地应用到安全攸关的领域,包括军事领域,如果出现类似的错误,后果将不堪设想。在安全攸关领域使用人工智能技术,一定要有底线意识,不能容许灾难性的事故发生。
除了由于机器学习的概率特性而产生的不可控问题外,大语言模型还带来了新的挑战。虽然大语言模型不知道它生成的回答对不对,但它却总是以非常确定、自信的口吻加以陈述。如果用户看不出回答中的错误(按基于大语言模型的聊天机器人的用户协议,用户要对判别聊天机器人的回答是否正确负责),就会导致虚假或错误的信息流传等社会问题,对人类现有的知识环境造成严重污染。现在各国政府都在谈论人工智能的治理,治理就是为了防止出现问题。计算机是人类有史以来创造出的最伟大的工具。深度学习、AlphaFold、大语言模型……这些令人震惊的进展都是人发挥创造性智能,利用计算机强大的机械智能取得的。人类又可以进一步利用这些工具,在更高层次上开展创造性的智能活动。这是一个螺旋式上升的创新过程,推动着人类文明持续向前发展。这个过程只能是由人主导,计算机,包括在计算机上实现的各种智能系统,都无法主导,因为它们没有创新性的智能。今年有一个特大的好消息,诺贝尔物理学奖和化学奖都颁发给了深度学习相关的工作。机器学习已经取得了巨大的成功,但是还有很多编不出程序的问题尚待解决,比如机器翻译、软件安全漏洞挖掘等,这些都需要我们发挥创造性的智能,做原创性的研究。做跟风、赶热门的“研究”,大语言模型比我们强;赶热门的论文,大语言模型几分钟就能生成出来。这种“论文”既没有学术价值,也没有应用价值,是对科研资源的浪费。中国计算机学会成立已经62年了。这60多年来我们见证了计算机的应用领域不断拓展、我国计算机事业飞速发展的伟大历程。但还有更多的问题需要我们去解决。作为中国计算机学会的会员,让计算机为人类解决更多的问题是我们的使命、我们永恒的追求。https://dl.ccf.org.cn/video/videoDetail.html?_ack=1&id=7225805846317056
1 Sternberg R J. Human intelligence[OL]. Encyclopedia Britannica, (2024-10-30). https://www.britannica.com/science/human-intelligence-psychology.
2 Wikipedia. Intelligence[OL]. https://en.wikipedia.org/wiki/Main_Page.
3 Wikipedia. List of philosophical problems[OL]. https://en.wikipedia.org/wiki/Main_Page.
CCF会士、名誉理事。中国科学院院士,中国科学院软件研究所研究员。主要研究方向为计算机程序的形式语义学及形式化方法。
lhm@ios.ac.cn