Yuxi on the Wired

Cyc

Code 逻辑 AGI 领域最伟大纪念碑的祭文。历经 40 年,3000 万条规则,2 亿美元,2000 人年的努力,以及无数的承诺,Cyc 最终未能达到其智能成熟阶段,而且可能永远无法实现。由于 Cycorp 的保密性和封闭性,更令人遗憾的是,至今仍没有证据表明它具备通用智能。 AI scaling history Author Yuxi Liu Published April 1, 2025 Modified April 1, 2025

On this page

Abstract

传奇般的 Cyc 项目,即 Douglas Lenat 耗时 40 年,通过扩展符号逻辑来构建人工通用智能的尝试,已经失败了。基于广泛的档案研究,本文揭示了其不为人知的历史,以便广为人知。

Lenat 的旅程始于他关于通过启发式搜索自动发现数学知识的博士研究。他观察到,此类系统最初会取得有希望的发现,但随着它们耗尽最初的启发式规则池,很快就会“失去动力”。他的后续系统 EURISKO 因通过寻找非常规策略赢得锦标赛而闻名,但也面临着类似的限制。这些经历使 Lenat 相信,真正的 AI 需要一个庞大的常识知识基础,以避免智能上的耗尽。

1985 年,他启动了 Cyc 项目,手动编码数百万关于常识的事实和规则,并预测一旦这个“知识泵”被启动,系统将通过阅读自然语言文本和进行自主科学实验来启动真正的机器学习。 Cyc 增长到包含大约 3000 万个断言,耗资 2 亿美元和 2000 个人年。然而,尽管 Lenat 多次预测即将取得突破,但它从未到来。

在资金方面,Cycorp 在 2010 年之前可能有一半资金来自军方和情报部门,自 2016 年以来完全由商业应用资助。Cycorp 实现了小型技术公司罕见的长期财务稳定性,但其系统的所有已知商业用途都涉及专家系统、数据集成和信息检索的标准方法,其功能与 Oracle 和 IBM 等老牌公司提供的类似服务相同。没有证据表明 Cyc 声称的更高智能提供了任何竞争优势。

按照学术标准,Cyc 项目非常封闭。涉及 Cyc 的出版物通常描述的是将信息 输入 系统的方法,很少涉及 输出 系统的应用。在 Cycorp 之外,Cyc 在 AI 研究中,甚至在其最邻近的知识检索领域中,使用也极少。学者们发现该系统难以使用,并且它从未在公开基准上进行过性能测试。OpenCyc 等衍生项目和各种语义网倡议最终都关闭了,没有取得显著的成功。

Cyc 的保密性有多种原因。Lenat 个人没有发布他的博士项目或 EURISKO 的源代码,对开源不感兴趣,并且不喜欢学术界,就像学术界不喜欢他一样。大约在 2015 年左右,当 Cycorp 转向商业应用时,大多数关于 Cyc 的公开信息被故意删除。

Lenat 对 AI 有着单一的哲学愿景,他追求了 40 年。在这种愿景的指导下,他始终如一地拒绝了所有其他的 AI 愿景,包括启发式搜索方法、专家系统方法、机器人方法和神经网络方法。所有这些都被拒绝,要么是寻求“免费午餐”的“浅层模式匹配”,要么是“对物理具身化的神秘崇拜”。

截至 2025 年,在知识泵启动 9 年后,仍然没有迹象表明 Cyc 会实现通用智能。Lenat 项目漫长而缓慢的失败是对 AI 符号逻辑方法的有力控诉。

更多档案资料可在 GitHub 上找到。

In lieu of an introduction

多年以后,当 Douglas Lenat 被知识库嗡嗡作响的服务器所环绕时,他会想起那个遥远的下午,他教会 Cyc 每个人只能看到他们自己的梦想。

Automated Mathematician

在 AI 的土地上,曾经存在着传奇,关于那些生不逢时的人和系统,他们展现了闪耀的才华,但没有后续发展,而 Douglas Lenat 就是拥有三个传奇的人。

Lenat 的第一个传奇是他的 Automated Mathematician (AM),根据传说,该系统通过从模式中提取概念,并将以前的概念混合在一起,自主地发现数学概念 [@lenatAMArtificialIntelligence1976]。正如我们将看到的,这个传说是基本属实的,但有一个需要注意的地方,这引出了他的第二个传奇。

AM 是他 1976 年的博士论文项目,也是 1970 年代众多“自动发现”系统之一——也是如今唯一仍被人们记住的系统。尽管神经网络和其他“自组织”机器学习方法在 1960 年代大多已经消亡,但机器学习并没有消亡,实际上,它正在经历一个逻辑的春天,在“自动发现”的旗帜下蓬勃发展。

Automated discovery

如今,当我们想到“机器学习”时,我们会想到随机森林、神经网络等等。但那时,机器学习被理解为“逻辑 AI 走向元”。好吧,要走向元,我们必须首先理解:什么是逻辑 AI 呢?Simon 和 Newell,逻辑 AI 的两位巨头,已经指明了方向:逻辑 AI 就是启发式搜索。

好吧,国际象棋是一种游戏,欧几里德几何、符号积分也是……也许科学发现本身也是?著名的科学方法,要配得上“方法”这个名称,应该只是逻辑 AI 要解决的另一个问题。剩下的只是走向元,在启发式搜索空间中进行启发式搜索。

在 1977-1983 年期间,Pat Langley 编写了一系列名为 BACON 的程序,该程序以科学经验主义之父 Francis Bacon 的名字命名。它旨在仅从数据中发现科学定律。例如,当给定气体样本的摩尔数 N、压力 P、体积 V 和温度 T 的表格时,BACON 首先尝试包含两个项的简单方程。它会发现 PV 的数据比 P 或 V 显得更“聚集”,因此它会创建一个新量 PV,并将其添加到表格中。然后,它会重复此过程,发现 PV/T 是一个有趣的量,最后发现 PV/NT 是一个 常数 量——理想气体定律被发现了! [@langleyDataDrivenDiscoveryPhysical1981]

在逻辑 AI 框架中,BACON 的问题空间是涉及表格列的所有基本函数的空间,而一个 是导致一个几乎恒定的列的(非平凡的)函数。在每个步骤中,程序都会尝试当前列的简单组合,并启发式地选择最接近恒定的一个。

作为另一个例子,考虑著名的 Dendral 和 Meta-Dendral

Dendral 是专业化学家如何从其原子光谱数据中读出分子结构的人工模型。它的问题空间是将分子切割成片段的所有可能方式的空间,以及片段给出和获取它们原子的方式。它的启发式方法是生成化学上合理和不合理的裂解和转移的规则。例如,蛋白质在 -CO-*-NH- 肽键处裂解是合理的,但在 CO 之间的双键处裂解是不合理的。目标是,给定单个分子的分子光谱数据,构建一个分子结构和一个裂解和转移序列,使其产生数据。

使用 Meta-Dendral,问题空间变得更元,成为可能的化学 规则 空间。它的目标是找到可以解释大量分子结构及其光谱数据的合理规则(根据启发式元规则是合理的)。 Meta-Dendral 通过发现 类固醇 家族的一些裂解规则,证明对工作化学家很有用。有关详细信息,请参阅我关于专家系统的文章。

一般来说,这样的系统首先从一些简单的规则开始,这些规则允许系统根据某些标准获得低分。并且随着它的运行,它构建、修剪和修改规则,以便最终它的规则集允许它获得高分。下表列出了一些 [@walkerHowFeasibleAutomated1987]:

系统名称 | 日期 | 任务 | 数据 | 规则 | 发现方法 ---|---|---|---|---|--- Meta-Dendral | 1976 | 发现用于质谱分析的分子裂解和转移规则 | 分子结构及其光谱 | 分子裂解和转移规则 | 使用元启发式规则生成可能的规则,并在数据上进行测试 Bacon | 1977–1983 | 发现物理定律 | 来自实验的数字数据 | 初等函数 | 符号回归 RX | 1982 | 发现药物副作用和相互作用 | 患者信息数据库 | 药物效果和相互作用规则 | 具有时间滞后的符号回归

The working of AM

您的机器的荣誉得到了保留。

—— Paul Erdős,在检查 [@lenatAMArtificialIntelligence1976, appendix 4] 之后。

在这种背景下,AM 是不同的。它仍然是一个具有问题空间和启发式搜索的逻辑 AI。但是,没有数据:它主要是“自我博弈”。

为了启动 AM,Lenat 首先输入了集合论中的 115 个概念和 ~250 条启发式规则,然后 AM 开始运行,发现了越来越多的构造。大多数都是微不足道的,但少数会很有趣,这些有趣的构造将被存储,从而允许在其上进行进一步的构造。它获得了一个次要传奇的地位,据报道重新发现了许多概念,例如自然数、素数和哥德巴赫猜想。

一个 概念 本质上是一个 框架,它本质上是 面向对象编程 中的对象。一个概念有 25 个可能的 方面,它们是“槽”或“数据字段”。并非所有都需要填写。

一个示例概念 以下是一个填充了许多方面的示例概念 [@lenatRoleHeuristicsLearning1983, table 9.9]:

AM 开始时使用的概念网络。| 表示“is a”。||| 表示“is an example of”。 [@lenatAMArtificialIntelligence1976, 106]

AM 有一个 议程:一个 任务 列表,每个任务都有一个 理由 列表。每个任务的形式为“对概念 C 的方面 F 执行操作 O”。一个任务的 Worth 是它的理由的价值之和。AM 总是执行价值最高的任务。

要执行一个任务,AM 会寻找条件(大部分)满足且价值(非常)高的 启发式规则。每个启发式规则的形式为“如果 <condition>,则运行 <actions>”。每个操作都有 3 种可能的效果:

一些示例启发式规则: