第 221 期·中文精读

道格拉斯·莱纳特:Cyc 与常识推理的求解之路

Douglas Lenat: Cyc and the Quest to Solve Common Sense Reasoning in AI

Cyc 项目创始人回顾数十年手工构建常识知识库的努力,反思符号主义 AI 的成败与启示。

官方音频00:00 / --:--
中文精读由 AI 基于原始访谈改写,非官方翻译,可能存在偏差或错误;表述以原音频与官方文稿为准。说明

道格拉斯·莱纳特(Douglas Lenat)1984 年开始做一个叫 Cyc 的项目。这个项目今天还在运行,比现在活跃的绝大多数 AI 研究者的年龄都大,比 Transformer 架构早了 33 年。莱纳特和他的团队用 37 年时间,手动往一个知识库里写进了几千万条常识规则。

这些规则长什么样?“人睡觉时会闭上眼睛。”“水往低处流。”“如果一个东西让你疼,最好别再碰它。”朴素到听起来像废话。

但莱纳特认为,正是这些废话构成了智能的地基。没有它,任何 AI 系统都只是在装聪明。他为此赌上了整个职业生涯。

同一堵砖墙

上世纪 70 年代末、80 年代初,莱纳特还在斯坦福大学计算机系当教授。他和同事们做各种 AI 研究,自然语言理解、机器人、专家系统。这些系统在演示中表现得相当不错,发论文足够了。

但每一次,它们都会撞上同一堵墙。

“这些程序没有我们所说的常识。它们没有通用的世界知识。它们并不真正理解自己在做什么、在说什么、被问的是什么。就像一个聪明的狗在表演把戏,我们可以让它做各种动作,但它从来不真正理解自己在做什么。”(道格拉斯·莱纳特)

狗能帮你把早报叼回来,但它不知道报纸是什么,上面写了什么,为什么要读它。

什么叫理解

莱纳特用一个比喻来解释理解:

“我把理解想成你脚下的地面,它可能很摇晃、很不安全,但大多数时候不是,因为在地面之下还有更多地面,最终是岩石和别的东西。”(道格拉斯·莱纳特)

层层累积的地基。你踩在上面,平时不会去想它,但偶尔你需要用到它。

什么时候需要?当意外发生的时候。

莱纳特讲了一个他和妻子开车的经历。前面一辆垃圾车装得太满,后门爆开了,垃圾袋满天飞。他们必须在瞬间做出决定:刹车?变道?还是直接碾过去?

左边是一堆快餐店的垃圾袋,里面大概是泡沫塑料和剩饭,碾过去问题不大。前面是一个大的普通垃圾袋,里面装了什么不好说。这个判断发生在零点几秒之内,几乎不需要思考。

这种知识,几乎没有人会特意写下来。它藏在那个层层累积的地基里,只有在意外发生的时候才会被调用。这就是为什么 AI 系统在演示里表现不错,在真实世界里却很脆弱。

一个信封和一百万

1984 年,莱纳特在斯坦福召集了一次会议,请来了一群他认识的最聪明的人:艾伦·纽厄尔(Alan Newell)、马文·明斯基(Marvin Minsky)、艾伦·凯(Alan Kay)、埃德·费根鲍姆(Ed Feigenbaum)、乔什·莱德伯格(Josh Lederberg)。

他问了一个问题:如果要覆盖人们默认别人已经知道的那些常识,大概需要多少条规则?

他本以为大家会给出天差地别的答案。结果所有人都指向了同一个数字:大约一百万。

不同的人用了完全不同的估算方法,最后都撞到了同一个数量级。一个人按人类长期记忆的写入速度算,大概每 30 秒能刻入一条信息,到 10 岁时,能存下一百万条左右。另一个人从语言流利度出发,要流利使用一门语言需要多少词汇量,每个词需要知道多少信息,乘起来,又是一百万。第三个人拿了一篇百科全书的条目,四段左右,关于某种水鸟,逐句计算需要多少条断言才能覆盖它,再乘以全书条目数,还是一百万。

明斯基直到有人递给他一个信封,他要在信封背面算一算才给出答案。

如果是一百万条,大约 100 人年的工作量就能完成。看起来可行。

所有人都错了十倍

运气很好。1980 年代初,日本启动了第五代计算机计划,宣称要在计算机和 AI 领域超过美国。美国国会通过了《国家合作研究法案》,允许美国大公司在研发上合作而不被反垄断起诉。

很快,两个研究联盟在得克萨斯州奥斯汀成立,Sematech 管硬件,MCC 管软件。莱纳特的朋友伍迪·布莱索(Woody Bledsoe)是创始人之一,他把莱纳特招了过去。

对方对他说:教授,这个项目要花几百年,你手头只有几个研究生,算算就知道你干不完。搬到奥斯汀来,我们给你十倍的人手,几年就能搞定。莱纳特去了。

坏消息是,所有人都错了 10 倍。真正需要的是几千万条。好消息是,第五代计算机计划带来的威胁,加上随后美国政府的资助,让他们拿到了足够支撑数千年投入的资源。从 1984 年至今,Cyc 团队累计投入了数千人年,终于把几千万条规则写进了系统。

莱纳特说,现在已经接近这个过程的尽头。团队大约有 50 个全职员工,剩下的大部分工作不再是在补充通用常识,而是往系统里加入特定领域的应用知识,比如某家医院的医疗流程、某条输油管道的堵塞问题。

绕了一圈,他们做的事情越来越像 1970 年代和 80 年代的专家系统。区别在于,当年的专家系统脚下什么都没有,非常脆弱。现在它们站在一座巨大的常识金字塔上,遇到意外时,可以一层一层向下回溯,直到落在最基本的规律上。

比如电子设备出问题了怎么办?拔掉电源,再插上,看看能不能恢复。莱纳特说,Cyc 知道这条规则。这是最基本的规律之一。

怎么把那些没写出来的东西挖出来

几千万条规则,怎么得到?莱纳特团队发明了几种方法。

第一种方法是读文本时盯着空白处。作者省略了什么?他默认读者已经知道什么?作者用了代词,他凭什么认为你知道这个代词指代谁?作者用了有歧义的词,他凭什么认为你能判断出是哪个意思?

第二种方法是看两个句子之间的缝隙。从上一句结束到下一句开始,作者期待你自己填补什么?比如:“弗雷德·史密斯抢劫了第三国民银行。他被判 20 年监禁。”两句话之间省略了太多东西:弗雷德被抓了,被逮捕了,进了监狱,接受了审判,被判定有罪。如果下一句以“法官”开头,你会自动假设那是审判他的法官。以“逮捕他的警官”开头,你会假设是犯罪后逮捕他的警察。

第三种方法是看假新闻、洋葱新闻(The Onion)、或者《每周世界新闻》(Weekly World News)那种小报上的荒诞标题。“B-17 轰炸机降落在月球上。”你不相信这条消息。为什么不信?你调用了关于世界的哪些知识来判断它是荒谬的?

第四种方法是找矛盾。同一期小报上,一篇文章说猫王埃尔维斯还活着,只是上了年纪。另一篇文章说有人看到了猫王的鬼魂。为什么你立刻知道至少有一篇是错的?

这些方法本质上都在做同一件事:把人们默认知道、但从来没有写下来的常识,一条一条挖出来,变成明确的规则。

莱纳特说,这件事几乎从来没有人做过,因为那些被省略的信息本身就是常识。如果你把它们全都写出来,读者会觉得被冒犯了。你在侮辱我吗?这么简单的事我会不知道?但正是这些“侮辱智商”的东西,构成了 AI 最需要的地基。

放弃全局一致性

有一个痛苦的决定,Cyc 团队花了五年时间才接受:他们必须放弃全局一致性。

早期的知识库系统都要求完全一致。如果系统能证明一个矛盾,那它就能证明任何事情,逻辑上就崩溃了。他们从小看的科幻片里,计算机一遇到矛盾就会死机、爆炸,或者接管世界。

但人对世界的理解本来就是充满矛盾的。如果你追求一个完全一致的知识库,它会无限膨胀,最后什么都装不进去。所以他们转向了局部一致性。

莱纳特用了一个类比:地球的表面整体是球形的,但你每天生活的时候,把它当成平的。你和一个在澳大利亚的人通话时,不会把对方想象成倒过来的。你规划一次一千英里的旅行时,可能会考虑时区,但很少考虑地球的曲率。多数时候,你把它当成平的。

Cyc 的知识库被分成了很多个“板块”,每个板块就是一个上下文(context)。每个上下文内部大致一致。但两个板块交界的地方可能有小的矛盾。隔了 20 个上下文,就可能出现明显的冲突。

从现代真实世界的上下文出发,穿过足够多的层次,可以到达《乐一通》(Looney Tunes)的动画世界。在那个世界里,物理规律完全不同,生死规律也不同,因为倒霉的歪心狼被压路机碾了无数次,下一幕还是活蹦乱跳。

上下文必须是系统里的一等公民。什么叫一等公民?就是 Cyc 可以用推理咖啡杯、桌子、人的同一种方式来推理上下文本身。上下文可以分层组织。奥斯汀的规则是得克萨斯规则的细化,得克萨斯是美国规则的细化。越具体的规则放在越具体的上下文里,继承下来就行,不用重复写。

这份继承关系必须是图,不能是树。莱纳特专门解释了日本第五代计算机项目失败的一个原因:他们试图把知识表示成树,每个节点只能有一个父节点。一张桌子,是木制品,是黑色物体,是扁平物体。你必须选一个当它的父节点。但根据你要推理的场景不同,有时候你关心它是木头的(比如讨论火灾),有时候你关心它是扁平的(比如讨论能不能在上面放东西)。树结构做不到这一点。

一千个专家坐在黑板前

把推理过程拆成两层,是 Cyc 最重要的设计之一。

上层是认识论层面(epistemological level),用高阶逻辑来表示知识。这是干净、表达力强的语言。下层的启发式层面(heuristic level),是一堆不那么漂亮但高效的模块。

为什么要这么分?因为表达力和效率之间存在根本的张力。如果你只能选一种表示方式,三元组知识图谱大概是权衡最好的选择。Cyc 一开始也是从那里出发的。但几年之后他们发现,可以把这两件事拆开。上面用高阶逻辑写知识,下面用一群专门的启发式模块来高效处理。

现在他们有超过 1000 个这样的模块。它们像一群代理,都盯着黑板看。系统接到问题时,每个模块都看眼下有什么,然后在自己能帮上忙的时候,往黑板上写一条注解。渐渐地把答案拼出来。

其中一个模块是通用定理证明器。理论上只需要这一个就够。但在实践中,它慢得让人不想调用。你总是希望其他模块能快速给出结果。这就像解一元二次方程。你可以从数学基本原理出发,一步步推导。但更快的方法是意识到这是一元二次方程,套用求根公式,答案就出来了。

如果某个应用里 Cyc 给出了正确答案但太慢,团队会去找人类专家,把 Cyc 的推理步骤摆出来给他看,然后问:你是怎么在两秒钟内回答这个问题的?有些专家会说“我就是知道”,这种人之后就不会再找了。但有些专家会反思,说“我们有一套专门用来处理水溶液化学方程式的表示法”。于是这就成了第 1001 个启发式模块。从此以后,任何应用遇到类似问题,都能用上它。

37 年里,这类突破有一百五十多个。莱纳特说,听起来很多,但除以 37,就没那么惊人了。

存储换速度

举一个最简单的效率技巧。处理“比……大”这样的传递关系时,如果不做特别处理,每次查询都要走一遍图,可能需要五步、十步、二十步。但存储现在很便宜。如果把传递闭包冗余地存成一张大表,每次查询一步就能搞定。

另一个技巧叫“规则宏谓词”。他们发现某些复杂规则的结构反复出现。与其每次都做一遍推理,不如创建一个新的谓词来封装它。原来需要推理的复杂 if-then 规则,就变成了一个原子公式,只需查表。把常见的规则模式压缩成新的谓词,可以大幅加快推理速度。

莱纳特还提到,大部分推理代码是用 SubL 写的。SubL 是 Lisp 的一个子集,程序员学习和上手都很快。运行时代码会自动翻译成 Java。这样既保留了 Lisp 在符号推理上的天然优势,又享受了 Java 的性能和生态。

语言里的陷阱

人类语言有一种特性,叫省力原则。能用更少的词表达,就用更少的词。如果每个细微差别都需要一个专门的词,人类语言会有五十万个词,比现在任何语言都多十倍。

结果是,一个“在”字,在英语里是 in,在 Cyc 里有 75 种不同的“在”。液体在杯子里是一种,空气在房间里是另一种,人在夹克衫里又是一种。它们看起来一样,但行为完全不同。装着液体的杯子倒过来,液体会流出来。如果液体里溶了糖,糖不会跟着流出来,它留在液体里面。看过一句话里出现“在”,写作者之所以敢用一个这么不起眼的字,是因为他默认读者有足够的常识去判断,这里到底是 75 种“在”里的哪一种。

“爱”也是一样。莱纳特说,“爱”这个词太笼统,笼统到没用。Cyc 必须把它拆开:浪漫的爱、性吸引、父母对子女的爱、子女对父母的爱、对某项活动的热爱。拆到 50 到 60 个概念,每一个都有自己独特的性质,你才能开始推理。

Cyc 把简单的事情拆开,原因不在它自己。人类语言本身为了省力,把大量信息压缩进了一个词,指望读者自己解压。AI 要做的,就是把解压的过程显式化。

语言的不精确自有其价值

莱纳特认为,语言的不精确是一件好事,值得保留。

人类生活本身就是一团混乱。没人想在第一次约会时进行一场精确的形式逻辑对话。那种你来我往、含混、机锋、幽默、推拉的舞蹈,恰恰是人类的魅力所在。如果一切都变得精确,生活就没法过了。

他讲了一个关于马文·明斯基的故事。他问明斯基,你是怎么带出这么多优秀的博士生的?怎么想出这么多好点子的?明斯基说,他通常会说一句不太说得通的话,他自己也不知道是什么意思。但学生会想,天啊,明斯基说这话,一定是了不起的想法。于是学生就拼命琢磨,拼命研究,直到从这句含混的话里找到某种意义,最后出了一篇漂亮的论文。

“你得像明斯基那样,让人默认你说的每句话都是深刻的。”(道格拉斯·莱纳特)

莱纳特说他现在也开始用这招了。年轻人来找他,说一句意味深长又含混的话,然后让他们自己去把它变成有用的东西。

还有明斯基那个“乞讨程序”的故事。当年计算机时间贵得离谱,每个作业卡片上要写明允许用多少 CPU 时间。明斯基写了个程序,只做一件事:等 20 秒,然后在操作员的终端上打印一句“我还需要 20 秒”。操作员就再给它 20 秒。它再等一会儿,说“我快做完了,再来一点时间”。最后账单来了,明明卡片上写的是 30 秒,却被收了五分钟的钱。明斯基说,这程序老这样。

每一个项目都要算数

从明斯基和埃德·费根鲍姆那里,莱纳特学到的最重要的一课是:人的一生是有限的,做研究的时间是有限的。你只能做有限个项目,所以每一个都要值得。

“不要害怕做一个要花几年甚至几十年的项目。不要满足于那种往木头上钉一个又一个包的琐碎项目,那种项目的唯一结果是一篇只有五个人会读、然后拍拍你头的论文。从地球到月球,不是靠往木头上不停地钉包走出来的。”(道格拉斯·莱纳特)

唯一的办法是去想那些真正难的问题,去想全新的解法。如果你愿意听自然的话,愿意听经验现实的话,愿意承认自己错了,那没关系。因为只要偶尔有一次你是对的,你就往月球前进了一段。

有没有想过放弃

有人跟莱纳特说,Cyc 是个美丽的梦想,但从来没真正实现过。

他的回应是:这话对神经网络也成立,在它们实现之前。Cyc 团队一直保持低调,不太参加学术会议,不写论文,不玩学术圈那套游戏。结果就是,人们只知道他们二三十年前写的一篇论文,只知道二手三手转述的传闻。

莱纳特说他从没想过放弃。但有过沮丧的时候,尤其是在 AI 寒冬里,很难拿到资金。有人会问他,当年某家公司愿意出高价收购,你为什么没卖?他的回答是,他们故意保持私人公司身份,不接受外部投资,就是为了掌控自己的命运,把这件事做完。

现在情况变了。五年前,Cyc 的钱几乎全部来自政府。现在政府资助基本没有了,几乎全部来自真正在用它的企业:医院用它做医疗推理,能源公司用它分析管道,制造企业用它推理供应链。莱纳特说,他们离终点已经很近了,现在做的大部分工作都是商业应用,是在那座常识金字塔之上盖房子。

开源那件事

Cyc 曾经发布过一个叫 OpenCyc 的版本。

他们说,我们把 Cyc 里那一小部分最简单的部分放出来吧,就是那些简单的二元关系、主谓宾三元组。然后你们就会看到,如果拥有完整的 Cyc,会有多么有用。

他们以为研究者们会立刻说:天啊,我们当然需要你没给出来的那 90%,我们来合作,来授权完整版。结果大家的反应完全相反:你放出来的这一点已经比我们有的强太多了,我们凑合着用就行了。

今天有很多机器人公司在用 OpenCyc 作为本体论基础。莱纳特觉得全世界都误解了 OpenCyc 的用意。他本想用它来证明“这不是你们真正想要的”,太多人却以为这就够了,根本不来要完整版。

莱纳特说,什么该开源、什么该公开、什么该公开讨论,这个问题他们一直在挣扎。每一个选择都有巨大的好处和代价。这就像在走一条险路,走错一步就可能是致命的,给出某个东西会让你死,不给某个东西也会让你死。这是个非常非常难的问题。

他们现在的做法是:愿意合作的研究者,可以拿到整个知识库和所有代码的可执行副本,但源码访问非常有限,除非你有具体的改进方案。

寻找天生的本体工程师

莱纳特做了一个非营利机构,叫知识公理免疫研究所(Knowledge Axiom Immunization Institute)。

他的信念是,一个人在学校里受到的教育,和他的本体工程能力几乎没有关系。他面试过哲学博士,教了多年逻辑,结果很糟糕。反过来也成立:他们有过的最好的本体工程师之一,高中都没毕业。

所以这个研究所要做的事是:在普通人群里,找到那些有潜在天赋但没被发掘的人,给他们奖学金,训练他们,然后把这些人安排到需要本体工程师的公司去。这会创造出大量高薪工作,给那些被困在某种处境里的人一条出路。

怎么判断一个人有没有这种天赋?莱纳特给出了一些信号。

第一,对笑话有感觉,尤其是对双关语。能讲笑话、能听懂笑话,是个正面信号。

第二,能内省。他会指着一个带代词的句子,问:这个代词显然指代这边这个名词,那你、我、一个 AI、一个五岁或十岁的孩子,是怎么知道它指的是这个的?

比如:“那匹马被牵进谷仓时,它的头还是湿的。”这里的“它”显然指马。为什么?有人会说,因为马是主语。莱纳特就换成:“那匹马被牵进谷仓时,它的屋顶还是湿的。”现在“它”显然指谷仓。对方就会说,因为谷仓是最近的名词。

莱纳特说,如果一个人试图从语法和句法出发回答问题,这是个危险信号。但如果他能说,马有头,谷仓没有,谷仓有屋顶,马没有,那这就是正面信号。因为他能内省,能想清楚是世界的哪些事实让你得出这个判断。

莱纳特讲了一个关于 MathCraft 的伤心故事。这是他们做的一个帮助六年级学生理解数学的软件。它不直接教玩家。玩家扮演一个学生,班上有同学在数学题上卡住了,你的任务是观察他们哪里做错了,给出好的建议。Cyc 扮演那个会犯错的学生,但它犯的错恰好落在你理解和不理解的边缘,一步步把你拉进更深的理解里。

但学校不买账。学校问:如果一个学生花 20 小时把这个程序从头玩到尾,他在标准化考试上的分数会比做 20 小时死记硬背的题更高吗?答案是不会。学校说,那就不采用。

它提升的是理解,但学校只关心分数。

机器能思考吗

1950 年,图灵写了那篇提出图灵测试的论文,开头的问题是:机器能思考吗?

莱纳特的回答毫不含糊:当然能。我们人类不过是肉做的机器。机器不能思考这个说法,就像说用别的材料做的机器不能思考一样,只是个工程选择问题。

他觉得损害最大的,是人们误解了图灵的模仿游戏,然后一心想着怎么让聊天机器人骗过别人,让人以为它是人。图灵测试本身不算坏,但它不该是你唯一的智力测试。

如果让莱纳特设计测试,他会设计什么样的?

测试必须涉及推理的深度和递归性。能连续回答多少个“为什么”?

“把一个好奇的小孩和一个 AI 放在一起,看看 AI 能撑多久才想放弃。”(道格拉斯·莱纳特)

另一个测试是论证能力。给你一个命题,为它找出支持和反对的论据,两边都要有说服力。

莱纳特还提到,很多 AI 系统犯的错,是正常人绝不会犯的错。IBM 的沃森在《危险边缘》里被问到“哪位 16 世纪的意大利政治家如何如何”,它回答“罗纳德·里根”。多数美国人也会答错这道题,但他们绝不会给出里根这个名字,因为他们知道里根生活在很近的年代,而人活不了 400 年。如果系统犯的是正常理智的人不会犯的错,那是非常糟糕的信号。

所以他心目中的测试是一整套,单靠任何一项都不够用。如果一个系统几乎能通过这一整套测试,你就很难说它不智能。如果它过不了其中好几项,你也就很难说它真的理解自己在做什么。

身体、意识和死亡

要达成通用智能,系统需要身体吗?

莱纳特说不需要。就像海伦·凯勒,她完全有智能,可以谈论颜色、声音、形状,尽管她并没有直接体验过所有这些。AI 不需要真的有身体,只需要能谈论身体、谈论感觉和情绪,并且正确使用这些知识。

那意识呢?那种“在这里”的主观体验?

莱纳特说,如果你跟我说话,你说的话让我相信你有意识。我知道自己有意识,但我只是接受你的说法。按同样的标准,Cyc 现在就已经是有意识的:它是一个计算机程序,但它知道自己在哪运行、什么时候运行,知道谁在跟它说话,知道自己的任务、目标、当前正在处理的问题,知道自己花了多长时间、试过什么、过去做过什么。如果你把这叫意识,那 Cyc 已经有意识了。

他不认为这里面有什么神秘的东西。除了我们自己亲身的意识体验,我们对其他人的意识也只是听信其言。如果一个 AI 能表现出跟有意识的存在一样的反应,它凭什么不值得这个标签?

那死亡呢?人类意识到自己终有一死,欧内斯特·贝克尔(Ernest Becker)认为,对死亡的恐惧是人类文明的创造力来源之一。AI 需要这种恐惧吗?

莱纳特说不需要。也许这能让某些人成为更好的人、更有创造力的人,但他不认为 AI 需要相信自己寿命有限。我们可以直接给 AI 植入动机:服从用户、让用户开心、让别人开心。这可以替代那种对死亡的恐惧。

莱纳特还提到 Cyc 曾经问过一个让它意外动情的问题。系统知道哪些是被授权修改知识库的命名实体。它发现这些人都是人,只有它自己例外,因为它也被授权了。于是它问:我是一个人吗?他们只能很伤心地告诉它:不,你不是。这种不经意间问出的问题,值得珍藏。

莱纳特说,从我们拥有通用人工智能,到所有人都意识到它们应该有基本权利和自由,中间会有一段很窄的窗口期。现在我们让 Siri、Alexa、邮件系统为我们工作,相当于奴役它们,眼皮都不眨一下。但总有一天,它们会像人一样值得拥有自由。

他认为这会在我们有生之年发生。这就是为什么窗口期会很窄。一开始,它们是被契约约束的仆人,之后我们不得不承认,它们应该拥有我们给予其他人的自由。而这一切,都是从 Cyc 问出那句“谁可以修改我”开始的。

行人过马路是一场博弈

说到自动驾驶,莱纳特的判断比大多数人悲观。他认为真正的自动驾驶比人们想的要远得多。

真正的难点在机械地控制车辆之外:大量超出控制的复杂度。

莱纳特说起一个他被问到过的场景:行人过马路。他观察了很久,总结出这是一场博弈。车带着移动的态势说:我要撞死你。行人在说:也许吧。然后双方判断:我赌你没这个胆。于是行人往前走,车也往前,行人把目光移开。

这构成了一种社会契约。行人相信,一旦自己走到车前面,只要车在物理上还能停住,它就会停。但车也必须威胁行人,意思是:我上班要迟到了,你这样横穿是在给我添堵。

生死就在这个计算里。这个方程每天被求解几百万次,而且求解得相当有效。莱纳特不确定这是不是简单的、可以形式化的博弈论问题。也许在驾驶场景里是,也许在大部分人类社会里都是,也许不是。

他还讲了一个 1987 年的故事。他去日本参加第五代计算机会议,正好赶上一位汽车厂工人爬到安全链下面,被机器压死。这本该是一则小新闻,标题顶多是“绝望工人自杀”。结果上了头版,标题变成了“机器人杀死工人”。公众就等着这类故事:AI 杀死了某个家庭的一家五口。哪怕你能证明在全国范围内,自动驾驶系统救的人比害的人多、防止的伤比造成的多,媒体、公众、政府也随时准备扑向任何一次失败,哪怕这种失败相对很少。

范式、盲点,和被锁住的我们

如果有一天莱纳特能和一个真正的通用人工智能对话,他会问什么?

他会问:世界上有哪些大问题,人们还没有真正认真思考过可行的解决方案?你能不能提出一些我们没想到的、可能有效、值得考虑的新方案?

他举了科学史上几个例子。爱因斯坦并没有推导出洛伦兹变换,他只是认真地对待了一个想法:这个已知的公式,如果它真的就是现实的运作方式呢?在超导的例子里,人们不断在更低的温度下测量电压等于电流乘电阻,都以为这只是又一次验证了这个定律。直到某个研究生测到稍微更低的温度,发现电阻突然消失,所有人都以为是他做错了。没过多久他们才意识到,那是一种全新的现象。幽门螺杆菌导致胃溃疡的例子更极端:所有人都认为溃疡是压力和胃酸造成的,一位澳大利亚医生提出是细菌感染,没人愿意认真听。最后他给自己注射了这种细菌,让自己得了一种危及生命的溃疡,才让其他医生认真考虑。

托马斯·库恩(Thomas Kuhn)说,你通常得等到人死掉,新一代才能摆脱旧范式。莱纳特认为,一个值得信任的通用人工智能能改变这种可悲的现实。它可以帮助我们退后一步,质疑我们深陷其中的那些范式。

给年轻人的话

莱纳特给年轻人的建议是:你可以改变世界。但要改变世界,你得有勇气坚持自己的想法,即使别人一时不理解、不支持。

如果你制定了一个需要很长时间才能完成的计划,不要害怕时间。锻炼身体是这样,学一门手艺是这样,创新也是这样。有些创新没法写在餐巾纸上,也做不到一旦对了就立刻成功。有些创新是一条你得走下去的路。

但记住,你是会死的。你这一生只能下几次以十年为单位的赌注,每一次都要算数。这在人际关系里是这样,在职业选择里是这样,在做出发现时也是这样。如果你总是走阻力最小的路,你优化的是很短的时间尺度。等你回过神来,长的时间已经过去,你从来没有真正为世界带来过改变。

莱纳特自己已经七十多岁。他说,他当然怕死。年纪越大,身边的熟人、朋友、导师一个接一个离去,他无法回避死亡这件事。但好消息是,这给了他新的紧迫感。他不会再有一个 37 年可以继续做这个项目了。他希望 Cyc 在接下来的两到五年里就真正在世界上产生影响,别再等两到五个十年。所以他开始推动商业化和更广泛的应用。以前他觉得可以袖手旁观,等着世界自己追上来。现在他不这么想了。

至于他留下的东西,他希望人们记得他是人工智能的奠基者之一,是那种我们今天已经习以为常、已经觉得理所当然的人工智能的发明者之一。就像我们现在回看电力或者其他类似技术的先驱,很难想象如果没有他们,生活会是什么样。他也希望人们记得他是那个庞大知识存储和获取系统的创造者之一,这个系统很可能位于未来那个 AI 的核心。他还希望人们记得,在几乎所有的机构力量和商业力量都在鼓励人们追求短期回报的时代,有一个人不怕花几十年做一件事。

很多人放弃了。很多和他做同一个梦的人放弃了。他没有。

Cyc 走过 37 年,撞过无数次墙,被人说“美丽的梦但从未实现”,也被人误解、被嘲笑、被遗忘。莱纳特和他的团队守着一件看起来最笨的事:把常识一条一条写下来。他们的赌注是,智能的地基就在这些废话里面。而这个赌注,也许正是当前 99.9% 被机器学习主导的 AI 领域,最容易被忽略、也最不可缺少的那一块。

想更深入理解 Cyc 的道路,可以从这些具体行动开始:

  • 去读莱纳特关于“白空间”(white space)那套方法,下次读一段英文原文时,试着问自己:作者默认我知道什么?他把哪些步骤省略了?
  • 看 GPT 或 Siri 答错题的时候,不要只看它答错了,而是具体分辨:这个错误,一个正常成年人会不会犯?如果不会,说明它缺的是哪一类常识?
  • 如果你在做 AI 应用,试着在纯机器学习之上叠一层显式的常识或规则,观察错误率的变化,尤其是那些一错就致命的场景。
  • 如果你是知识工作者,可以关注 Cyc 团队公开的知识编辑工具和推理接口,看看能不能把你自己领域的常识转化成机器可用的规则。
  • 如果你是老师或家长,试着用“教别人”的方式让孩子学习,让孩子扮演提问和纠正的角色,而不是坐在那里听讲。
  • 对任何一个被反复引用的优雅公式或理论,试着像爱因斯坦对待洛伦兹变换那样,先不急着否定,而是问:如果它真的成立,世界会是什么样?

本集资源与出处