乐于分享
好东西不私藏

AI 三生三世·第2篇:规则帝国的黄昏

AI 三生三世·第2篇:规则帝国的黄昏

1980 年,DEC 公司差点被自己的订单淹死。
救它的,是一套装着 2500 条 IF-THEN 规则的程序。


序章:把"专家"装进盒子里

1980 年的一个周一早晨,Digital Equipment Corporation(DEC)的订单处理中心一片混乱。

当时 DEC 最畅销的产品是 VAX-11 系列小型机。这是一种模块化到令人绝望的机器——你可以选不同的 CPU、不同的内存大小、不同的磁盘、不同的 I/O 控制器、不同的机柜、不同的线缆。一份完整订单可能包含上百个组件。

问题是,这些组件之间有一张看不见的约束网:这块主板只兼容那种电源;A 型号的机柜装不下 B 型号的磁盘阵列;某些线缆的长度限制意味着你必须把特定的两个模块放到相邻的槽位里。客户下单的时候只会说"我要一台能跑我们财务系统的 VAX",真正把这份订单翻译成一张完整的硬件清单,需要一位真人工程师趴在手册堆里算上半天。

结果呢?DEC 的技术工程师们成了瓶颈。订单越多,出错率越高——发出去的机器经常缺线、缺模块,装到客户机房里才发现不能用,要返工。整个公司被自己的成功卡住了脖子。

就在这一年,一个叫 John McDermott 的卡内基梅隆大学计算机系研究员,给 DEC 交付了一个程序:R1,后来改名叫 XCON(eXpert CONfigurer,专家配置器)。

XCON 不是一个普通的软件。它的内核是一套手工编写的产生式规则——也就是"如果……那么……"的条件判断。这套规则用 OPS5 语言写成,最终规模大约 2500 条。每一条规则都来自 DEC 内部那些真正懂 VAX 的工程师脑子里的经验。系统从 1978 年在 CMU 开发完成,1980 年首次部署在 DEC 位于新罕布什尔州 Salem 的工厂,到 1986 年已经处理了超过 80000 张订单,配置准确率达到 95%–98%。

这个系统上线之后,根据后来 DEC 官方的统计,每年为公司节省了大约 2500 万美元。更重要的是,它让"AI 不只是学术玩具"这件事第一次变成了可以写进财报的事实。

这就是 第二次 AI 浪潮的开场。这一次的主角不再是 Dartmouth 会议上那群挥舞着符号主义旗帜的少壮派,而是一群相信"知识就是力量"的工程师。他们的信条很简单:人类专家之所以厉害,是因为他们脑子里装着海量的领域知识。只要把这些知识掏出来、翻译成规则、塞进计算机,计算机就能变成那个领域的专家。

听起来很美对吧?事实上,它真的美了差不多十年。

然后,它就崩了。

一、第一次寒冬之后:AI 换了一种打法

要理解专家系统的黄金时代,得先回到上一篇结尾的那个冬天。

1973 年,英国数学家 James Lighthill 受英国科学研究理事会委托,写了一份后来被称为"Lighthill 报告"的文件。报告里他把 AI 研究狠狠骂了一通,核心论点是:AI 研究者承诺的一切都没兑现,而且看起来永远也兑现不了。机器翻译不行,模式识别不行,通用问题求解器更是笑话。原因?组合爆炸。上一篇我们讲过的那个怪兽——一个看起来人畜无害的下棋问题,搜索空间大到超过宇宙原子总数。

这份报告直接导致英国政府砍掉了几乎所有 AI 资助。紧接着,美国 DARPA 也开始重新审视自己在 AI 上的投入,大量项目被终止。1974 年到 1980 年,整个领域进入了冰河期。论文发不出来,博士生找不到工作,连"Artificial Intelligence"这个词都成了烫手山芋——很多研究者开始把自己的工作包装成"informatics"或者"machine learning",就为了绕开这个被污名化的标签。

但冰河期之下,有一股暗流在涌动。

早在 1965 年,斯坦福大学就有一个叫 Edward Feigenbaum 的年轻教授和他的学生们,在做一个叫 DENDRAL 的项目。DENDRAL 的目标很具体:给它一个有机化合物的质谱数据,让它推断出这个化合物的分子结构。

这听起来像是一个很窄的应用,和"通用人工智能"的宏伟愿景差得很远。但 Feigenbaum 在 DENDRAL 上折腾了几年之后,得出了一个当时大多数同行都没看到的结论:AI 的难点从来不是"推理",而是"知识"

人类化学家之所以能从一堆质谱数据里看出分子结构,不是因为他们的大脑在做什么神秘的推理,而是因为他们脑子里装着几千条关于"哪种原子组合会产生哪种质谱峰"的经验。这些经验本身并不复杂,复杂的是它们的数量和组织方式。

Feigenbaum 后来把这个观察提炼成了一句在 AI 圈里流传至今的口号:

"Knowledge is power."(知识就是力量。)

这句话真正的分量,是它隐含的那个断言:在 AI 系统里,知识比推理算法更重要

这和上一篇 Simon、Newell 那代人的信念有很大分歧。第一代 AI 研究者的主流倾向是追求通用的搜索算法和通用的推理机制——Simon 和 Newell 的 GPS(General Problem Solver)名字里就写着"通用"两个字。Feigenbaum 说,通用没戏,至少现阶段没戏。你不如老老实实去找人类专家聊天,把他们脑子里的经验一条一条记下来,塞进一个窄但能用的系统。

这个思想路线在 1974 年到 1980 年的冰河期下悄悄成熟,然后在 80 年代初突然爆发——因为硬件终于跟上了,因为学界终于受够了那些空洞的承诺,也因为 DEC 用 XCON 证明了这玩意儿真的能赚钱。

二、产生式规则:让机器"像专家一样思考"

专家系统的核心机制叫做 Production System(产生式系统),它的最小单位是一条 Production Rule(产生式规则),形式简单到可以写在餐巾纸上:

IF  <前提条件>
THEN <执行动作>

比如 DEC 的 XCON 里可能有这样一条规则:

IF  订单包含 VAX-11/780 主机
AND 订单包含超过 32MB 内存
AND 未选择扩展机柜
THEN 自动添加 H9652-MC 扩展机柜

这看起来就是一个 if 语句,有什么稀奇的?稀奇的地方在于:一个专家系统里有成千上万条这样的规则,它们之间会互相触发

这个"互相触发"的过程由一个叫 推理引擎(Inference Engine) 的组件来管理。推理引擎的基本工作流程是一个循环:

1. 匹配(Match):把"工作内存(Working Memory)"里当前已知的所有事实,去和规则库里所有规则的"前提条件"匹配,找出那些条件被满足的规则。

2. 冲突消解(Conflict Resolution):通常有多条规则同时被满足,推理引擎需要决定先执行哪一条。常见的策略包括优先级、最近匹配、规则特异性等。

3. 执行(Act):执行选中那条规则的"动作"部分。动作通常是向工作内存里添加新的事实。

4. 循环:新事实可能触发新的规则。一直循环到没有新规则被触发为止。

这个循环听起来平平无奇,但它背后其实藏着一个在理论计算机科学里很有分量的数学结构。我们可以把产生式系统形式化地写成一个五元组:

其中  是工作内存里事实的集合, 是规则集合, 是匹配函数(判断一条规则的前提在当前事实下是否成立), 是冲突消解策略, 是推理引擎的执行循环。

这里有一个关键的性质:产生式系统和图灵机在计算能力上是等价的。也就是说,只要你有足够多的规则和足够大的工作内存,产生式系统理论上可以计算任何可计算函数。这个等价性由 Emil Post 在 1943 年就证明过——那时候他研究的叫"Post 产生式系统",是图灵机之外另一种通用计算模型。

Post 的工作在当时只是纯粹的数理逻辑,没人把它当回事。谁能想到三十多年后,工业界真的用这种"串联 IF-THEN"的方式搭出了第一批能赚钱的 AI 系统。

值得一提的是,当规则数量变大之后,"匹配"这一步会变得非常昂贵——每个循环都要把所有事实和所有规则过一遍,时间复杂度是 ,对于几千条规则来说根本不能忍。卡内基梅隆的 Charles Forgy 1974 年在一份工作报告里首次提出了 Rete 算法的雏形,1979 年把它写进博士论文,1982 年在《Artificial Intelligence》期刊上正式发表,通过在规则之间共享中间匹配状态,把实际的匹配开销降到了接近常数。Forgy 的导师是我们上一篇讲过的 Allen Newell,而 Rete 最早就是用在 OPS5 语言里——而 OPS5,正是 McDermott 写 XCON 时用的那门语言。这条从 Newell 到 Forgy 到 XCON 的线,是第一次 AI 寒冬期间符号主义血脉延续的一个具体例证。Rete 也成了后来所有产生式系统的性能基石,直到今天很多规则引擎(比如 Drools)里还跑着它的变种。

三、XCON、MYCIN 和那些被"知识"点亮的系统

有了产生式规则这把锤子,80 年代初的 AI 圈开始把世界上的一切都看成钉子。

我们按出场顺序介绍几个最有名的。

MYCIN(1972-1976,斯坦福)。这是 Feigenbaum 学派的代表作,由 Edward Shortliffe 在博士论文里开发。MYCIN 专门用来诊断血液感染疾病并推荐抗生素。它的规则库大约有 600 条,每条规则还带一个"置信度(Certainty Factor)"——因为医生的经验并不是非黑即白的。Victor Yu 等人在 1979 年做过一次广为人知的独立盲测:他们挑了 10 例脑膜炎病例,让 MYCIN 和 8 位人类医疗推荐者(5 位斯坦福传染病学教授、1 位高年资住院医、1 位博士后、1 位高年级医学生)各自给出抗生素方案,然后由 8 位美国各地的专家在不知道出处的情况下打分。结果 MYCIN 的方案被判定"可接受"的比例是 65%,而 5 位斯坦福传染病教授的可接受率在 42.5%–62.5% 之间——也就是说,一个由 600 条规则组成的程序,在这项盲测里打平甚至略优于顶尖医院里最资深的传染病专家

但 MYCIN 从来没被真正用在医院里。原因不是技术,是法律和伦理。当时的美国医疗体系无法回答一个问题:如果 MYCIN 开错了药,谁来负责?是机器、是开发者、还是使用它的医生?这个问题在 2026 年的今天依然没有答案——所有 AI 医疗应用都撞上的那堵墙,MYCIN 早在四十多年前就第一次撞上了。

XCON(1980-1995,DEC)。序章里讲过了。XCON 是历史上第一个真正为公司赚大钱的 AI 系统,也是"AI 能商业化"的第一个铁证。到 1980 年代中后期,XCON 已经处理超过 8 万张订单,维护它以及围绕它的一系列扩展系统(XSEL、XSITE 等)的 DEC 团队规模一度达到相当可观的规模。

PROSPECTOR(1978-1980,SRI)。地质勘探专家系统,用来评估一块地下面有没有矿。1982 年,PROSPECTOR 在华盛顿州 Tolman 山的一次勘探中预测出了一个钼矿床,被誉为"AI 的第一桶金"。这个故事后来被无数次引用——直到 2000 年代有人重新翻出原始记录,发现实际情况比故事复杂得多,但这是后话了。

Internist-I / CADUCEUS(1970s-1980s,匹兹堡大学)。内科医学诊断系统,覆盖了大约 500 种疾病和 3500 条症状规则。它的主要贡献是证明了产生式规则在处理"一个症状对应多种疾病"的歧义场景时仍然可行。

这些系统加在一起,形成了一个很强的叙事:AI 终于找到了商业化的路子。1982 年到 1987 年,美国有超过两百家创业公司专门做"专家系统开发工具"和"专家系统 shell"。整个产业在 1985 年的市场规模被估计在 10 亿美元左右——在那个年代这是一笔巨款。

资本市场开始狂热。SymbolicsLisp Machines IncXerox 等公司专门制造"Lisp 机器"——一种为跑 Lisp 语言和专家系统优化的特制计算机。Symbolics 在 1984 年上市,股价一度飙升。那是 AI 历史上第一次真正的商业化泡沫

四、日本的豪赌:第五代计算机计划

就在美国公司忙着卖 Lisp 机器的时候,太平洋另一边的日本搞了一件更大的事。

1982 年,日本通商产业省(MITI)宣布启动 Fifth Generation Computer Systems Project(第五代计算机系统计划,简称 FGCS 或 ICOT)。这个项目的目标是:在 10 年内,造出能够用自然语言和人类对话、自动从经验中学习、能够推理和做出判断的计算机

听起来就是"造 AGI"对吧?没错,就是造 AGI,只不过是 1982 年的人想象中的 AGI。

日本政府投入的是一笔 10 年的长期预算,最终总开销约 570 亿日元——按当时的汇率大约相当于 3.2 亿美元,这大概占日本电子通信行业全部研发开支的 1% 不到。在 80 年代这依然是一笔巨款。项目的技术路线非常激进:抛弃传统的冯·诺依曼架构,设计一种原生支持并行逻辑推理的硬件,跑 Prolog 语言而不是 Lisp,把并行计算、逻辑编程、知识库和自然语言处理熔在一锅里。

这个计划一宣布,整个西方世界陷入了恐慌。当时的日本已经在半导体、汽车、消费电子这几个领域把美国打得找不着北,美国人开始担心 AI 也要丢掉。DARPA 赶紧追加了 AI 研究预算,英国启动了 Alvey 计划,欧洲启动了 ESPRIT 计划。冷战还没结束,但另一场"AI 军备竞赛"已经悄悄开始了。

这里有一个值得记住的细节。ICOT 的研究主任叫渊一博(Kazuhiro Fuchi),他对这个项目抱有几乎宗教式的信念。他后来说过一句被反复引用的话:

"We play the role of a symbol, but we will become a reality."
(我们扮演一个象征,但我们终将成为现实。)

这句话在 1982 年听起来是一种宏大的宣言,在 1992 年回头再看,则多了一些悲壮的意味。1994 年左右,ICOT 项目以"部分成果移交后续研究机构"的方式悄悄结束。它留下了一种叫 PIM 的并行推理机器、一些关于并发逻辑编程的学术论文、以及一个教训:光有硬件和编程语言的大跃进解决不了"智能"这件事——核心目标里那个能用自然语言对话、能自动推理、能从经验中学习的"第五代计算机",一个都没真正造出来。3 亿多美元砸下去,最后留下的更多是实验室原型和一大堆方法论教训。

这件事标志着一个时代的终结。但要理解 ICOT 为什么会失败,我们需要先看另一条当时没人注意的暗线——一篇发表在 1986 年的论文。

五、暗流:1986 年的那张纸和被它点燃的未来

1986 年 10 月,Nature 杂志第 323 卷刊登了一篇只有四页的论文(pp. 533-536)。三个作者:David Rumelhart、Geoffrey Hinton、Ronald Williams。标题是 "Learning representations by back-propagating errors"。

这篇论文在主流 AI 学界的反响并不算热烈。专家系统正如日中天,Lisp 机器的股票在狂涨,日本在烧钱造第五代计算机,符号主义阵营对一篇讲"多层神经网络怎么训练"的文章没太多兴趣。毕竟早在 1969 年,Minsky 和 Papert 就在《Perceptrons》那本书里给神经网络判了"死刑"——它连 XOR 都学不会。上一篇讲过了。

但这篇四页的论文在连接主义(connectionism)的小圈子里引起了震动,而这篇文章里藏着的那样东西,后来变成了整个深度学习时代的发动机:反向传播算法(Backpropagation,通常简称 BP)。

反向传播的核心思想其实简单得令人难以置信。假设你有一个多层神经网络,输入 ,输出 ,真实标签 。你定义一个损失函数衡量输出和真实值之间的差距:

现在你想调整网络里每一个权重 ,让  变小。怎么调?梯度下降告诉你:

其中  是学习率。这个公式一眼就能看懂:往"让  变小最快"的方向挪一小步。难点在于——怎么算 

对于输出层的权重,求导很直接。但对于深层网络里那些靠近输入的权重,它们对最终损失  的影响要经过好多层的非线性变换,直接对着公式求导会写出一大坨谁都看不懂的式子。

反向传播说:别慌,用链式法则

这个公式看起来吓人,但它表达的东西非常优雅:深层权重的梯度,等于从输出层一路链式乘回来的一串局部梯度。你不需要一次性推导整个网络对单个权重的偏导,你只需要一层一层地、从后往前地把每一层的局部导数传播回去。

为什么必须是"反向"?这里有一个工程角度的直觉解释。假设网络有  层,每层有  个神经元,总共有大约  个权重。如果你对每一个权重都独立地沿着公式往回推导偏导数,相当于把每条从输出到该权重的路径走一遍——总共的计算量会是权重数量的平方级。

但如果你反过来做:先做一次前向传播算出每一层的激活值和最终的损失 ,然后再做一次反向传播——从输出层开始,把梯度像"接力棒"一样一层一层传回去,每一层只需要用上一层传下来的梯度乘以本层的局部导数,就能直接得到本层所有权重的梯度。这样一次前向 + 一次反向,总计算量和前向传播本身是一个数量级的。

这就是反向传播的真正价值所在——它不是一种新的数学发现,而是一种把链式法则高效组织起来的计算顺序。前向给你 loss,反向给你所有权重对 loss 的梯度,代价几乎是免费的。"back-propagation"这个名字描述的其实是计算的流动方向。

反向传播解决了一个困扰神经网络圈将近二十年的问题:多层网络是可训练的。Minsky 和 Papert 1969 年的批评一下子失去了大部分杀伤力——他们证明的是单层感知机学不了 XOR,但 Rumelhart 他们告诉你:多加一层隐藏层,再用 BP 训练,XOR 分分钟解决。

事实上,反向传播的数学原理并不是 1986 年才被发现的。早在 1970 年,芬兰硕士生 Seppo Linnainmaa 就在他的论文里写出了等价的自动微分算法。1974 年,Paul Werbos 在哈佛的博士论文里把它用到了神经网络上。但这些工作一直没能进入主流视野。直到 Rumelhart、Hinton 和 Williams 把它以一种清晰的形式写进 Nature,并且配上了一些令人印象深刻的实验(比如学会一些简单的家族关系推理),神经网络才重新回到了人们的视线里。

但是——这一切在 1986 年到 1990 年之间依然是小众路线。主流 AI 研究者相信专家系统,相信符号主义,相信规则。当他们看到 Rumelhart 那篇论文里的玩具实验(学几种家族关系、判断一小组对称图形),第一反应是"这是个有意思的理论贡献,但离工业可用还差得远"。他们不是全错——以 1986 年的硬件和数据规模,BP 确实还养不起一个真正大的网络。但他们低估了这件事:一旦硬件和数据跟上,BP 这条路会直接把他们所有人甩在身后。这件事他们要到 20 多年后才会意识到。

六、天花板:知识获取瓶颈

在反向传播论文发表之前,专家系统就已经悄悄撞上了一堵墙。这堵墙的名字叫 知识获取瓶颈(Knowledge Acquisition Bottleneck)。

我们回忆一下专家系统的基本假设:人类专家的经验可以被拆解成一条一条的 IF-THEN 规则,然后塞进计算机。这个假设在简单的领域里成立——比如 XCON 处理的 VAX 配置问题,规则虽然多,但都是机械的、确定性的约束。但一旦你想处理稍微复杂一点的领域,麻烦就来了:

第一个麻烦是规则维护的爆炸。 规则数量本身不是主要问题,真正要命的是规则之间的相互作用。当你有几千条 IF-THEN 的时候,添加一条新规则可能会和已有规则产生几十处冲突,每处冲突都要手动排查。XCON 在 80 年代中后期之所以运转得还算正常,一个前提是 DEC 建立了一个专门的维护团队持续喂新规则、调旧规则。这个团队的运维成本随着规则数量线性增长,但系统的能力并没有同步增长——久而久之,维护成本开始追上系统本身产生的收益。

第二个麻烦是专家本身的不配合。 真正的领域专家——比如一位资深外科医生——的经验里有大量是"说不出口的"。他可以给你看一张 X 光片然后说"这个看起来不对劲",但让他解释为什么不对劲,他只能含糊地说"就是感觉"。这种默会知识(tacit knowledge)根本没办法被翻译成 IF-THEN。心理学家 Michael Polanyi 早在 1966 年就写过一本书叫《The Tacit Dimension》讨论这个,可惜专家系统的开发者们那时候没在读哲学。

第三个麻烦是规则之间的矛盾。 当你从多个专家那里收集经验的时候,不同专家的意见经常打架。A 医生觉得症状 X 要优先考虑感染,B 医生觉得 X 要优先考虑免疫反应。到底听谁的?你可以给每条规则加个置信度(MYCIN 就是这么做的),但这只是把问题从"选哪条规则"变成了"选哪个置信度"。

第四个麻烦,也是最致命的专家系统不会学习。一个专家系统今天能处理的问题,明天还是只能处理那些问题。世界变了、领域知识更新了、新的病症出现了,系统不会自己跟上,你必须再一次叫人类专家来写新规则。对比一下——一个医学生花几年学习临床经验,会随着见过的病例越来越多而越来越准;一个专家系统的"经验"上限,永远等于它被手工灌进去的那几千条规则。

这四个麻烦合在一起,让"专家系统"这三个字从 80 年代末开始慢慢变味儿。1987 年前后,Lisp 机器市场开始出问题。一方面,通用工作站(Sun、Apollo)的性能越来越强,价格越来越低,你完全可以在 Sun 上跑 Common Lisp,根本不需要买一台专门的 Symbolics。另一方面,大量客户发现自己买回去的专家系统"看起来很美,但实际用起来维护成本奇高"。

七、1987:崩盘

如果要给第二次 AI 寒冬挑一个标志性年份,就是 1987。

这一年发生了几件事。

第一件,Lisp 机器市场蒸发。Symbolics 的年销售额从 1986 年的峰值开始断崖式下跌,1987 年公司开始大规模裁员,1993 年正式申请破产。另一家主要厂商 Lisp Machines Inc(LMI)更早就撑不住了,1987 年在完成下一代 K-machine 项目之前就宣告破产。Texas Instruments 自己的 Explorer 产品线——技术上源自早年授权的 LMI 设计——也在接下来的几年里逐步停产。整个 Lisp 机器产业在不到两年里从"AI 革命的硬件基础"变成了"过时的贵族玩具"。

第二件,DARPA 砍预算。美国国防部高级研究计划署在 80 年代中期投了一个叫 Strategic Computing Initiative 的大项目,专门投资 AI 和并行计算。到 1987 年前后,DARPA 的新任领导开始质疑这笔钱的回报率,开始系统性地削减"长期、高风险"的 AI 项目。

第三件,风险投资撤离。那些 1983–1986 年冲进 AI 创业圈的 VC,在 1987 年开始大规模撤资。Teknowledge、IntelliCorp、Inference 这几家曾经被称为"专家系统三巨头"的创业公司——它们卖的是通用的专家系统开发壳(shell)——估值在 1987–1988 年之间腰斩再腰斩,一些公司直接从公开市场除牌。

第四件,也是最魔幻的一件:日本的 ICOT 项目还在继续烧钱。这个项目要到 1990 年代初才正式结束,但从 1987 年开始,业界内部已经有越来越多的声音质疑它的方向。ICOT 把重金压在"并行逻辑推理硬件 + Prolog"这条路上,可当专家系统本身的神话开始破灭时,这条技术路线也就失去了它的意义——你再强的推理引擎,也补不了知识获取瓶颈这个窟窿。

1987 年到 1993 年,第二次 AI 寒冬。和第一次寒冬不同,这一次寒冬期间 AI 没有完全停滞——反向传播的研究在几个坚持的实验室里继续进行,Yann LeCun 1989 年在贝尔实验室发表了卷积神经网络应用于手写数字识别的工作,Hinton 继续在多伦多大学推动"连接主义"学派。但整个领域的声誉、资金、人才,都跌到了谷底。研究经费被砍,研究生找不到工作,顶尖大学的 AI 实验室开始被合并或关闭。"Artificial Intelligence"这个词再一次变成了烫手山芋——这是它在 20 年里的第二次。

结语:规则的终点,也是新故事的起点

我们可以在这里暂停一下,回头看看第二次 AI 浪潮到底教给了我们什么。

第一件事是:AI 商业化是可能的。XCON 证明了这一点,即使后来它走向了衰落。这件事在今天看起来是废话,但在 1980 年这是一个真正的突破——在此之前,AI 是学术玩具,是科幻小说,是 DARPA 的赞助项目。XCON 让 AI 第一次变成了可以写进财报的东西。

第二件事是:"知识就是力量"这句话是对的一半。知识确实重要,Feigenbaum 没有错。但知识不能靠人手一条一条敲进系统里。一个真正的智能系统必须能够从数据里自动学习知识,否则它永远会被知识获取瓶颈卡住。这个教训花了整个 AI 圈二十年才真正消化。

第三件事是:符号推理和统计学习不是互斥的,但当时看起来是。整个 80 年代,专家系统派(符号主义)和连接主义派(神经网络)基本是两拨人,老死不相往来。Hinton 后来在一次访谈里回忆,他 1980 年代在卡内基梅隆做博后的时候,系里有人跟他说:"你最好别提 neural network 这个词,否则你会毁了自己的学术生涯。" 直到 2010 年代深度学习爆发,这两派才在工业界重新被人尝试融合——而那又是另一个故事了。

1993 年的冬天是漫长的。专家系统没有消失——XCON 类的系统在很多企业的运维体系里安静地活了下来,变成我们今天所说的"业务规则引擎"(Business Rules Engine),一直用到今天——但它再也不是 AI 的代名词了。符号主义的旗帜倒下了,连接主义的旗帜还没立起来,中间是一段几乎没有人相信 AI 的真空期。

也正是在这段真空期里,Hinton、LeCun、Bengio 这批人守着 BP 的火种继续干。他们没有立刻卷土重来,他们等了差不多 20 年——等硬件、等数据、等时代。下一篇会讲这场等待。


下一篇预告:第 3 篇《深度学习的寒武纪》—— 我们会从 1993 年的寒冬讲起,看看 Hinton 和他的学生们是怎么在无人问津的 20 年里把 BP 磨成利剑,怎么在 2012 年用 AlexNet 一夜之间掀翻整个计算机视觉的桌子。

参考文献

  1. McDermott, J. (1982). R1: A Rule-Based Configurer of Computer Systems. Artificial Intelligence, 19(1), 39–88. 原始 PDF:https://web.cs.wpi.edu/Research/aidg/CS540/papers/McDermott-R1-XCON.pdf
  2. Wikipedia: Xcon. https://en.wikipedia.org/wiki/Xcon
  3. Yu, V. L., Fagan, L. M., Wraith, S. M., Clancey, W. J., Scott, A. C., Hannigan, J., Blum, R. L., Buchanan, B. G., & Cohen, S. N. (1979). Antimicrobial selection by a computer: A blinded evaluation by infectious diseases experts. JAMA, 242(12), 1279–1282. https://jamanetwork.com/journals/jama/article-abstract/366606
  4. Wikipedia: Mycin. https://en.wikipedia.org/wiki/Mycin
  5. Shortliffe, E. H. (1976). Computer-Based Medical Consultations: MYCIN. Elsevier.
  6. Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. https://www.nature.com/articles/323533a0
  7. Forgy, C. L. (1982). Rete: A fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence, 19(1), 17–37. https://www.csl.sri.com/users/mwfong/public_html/Technical/RETE%20Match%20Algorithm%20-%20Forgy%20OCR.pdf
  8. Wikipedia: Rete algorithm. https://en.wikipedia.org/wiki/Rete_algorithm
  9. Wikipedia: Fifth Generation Computer Systems. https://en.wikipedia.org/wiki/Fifth_Generation_Computer_Systems
  10. Feigenbaum, E. A., & McCorduck, P. (1983). The Fifth Generation: Artificial Intelligence and Japan's Computer Challenge to the World. Addison-Wesley.
  11. Wikipedia: Symbolics. https://en.wikipedia.org/wiki/Symbolics
  12. Wikipedia: Lisp machine. https://en.wikipedia.org/wiki/Lisp_machine
  13. Lighthill, J. (1973). Artificial Intelligence: A General Survey. Science Research Council.
  14. Crevier, D. (1993). AI: The Tumultuous History of the Search for Artificial Intelligence. Basic Books.
  15. Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th ed.), expert systems chapter.
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-19 18:35:43 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/537134.html
  2. 运行时间 : 0.099027s [ 吞吐率:10.10req/s ] 内存消耗:5,091.90kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=75c9e6cf39a04203ff1de0e8dba6fd8a
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000539s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000836s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000326s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000312s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000730s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000527s ]
  8. SELECT * FROM `article` WHERE `id` = 537134 LIMIT 1 [ RunTime:0.000766s ]
  9. UPDATE `article` SET `lasttime` = 1776594943 WHERE `id` = 537134 [ RunTime:0.002676s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000248s ]
  11. SELECT * FROM `article` WHERE `id` < 537134 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000434s ]
  12. SELECT * FROM `article` WHERE `id` > 537134 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000385s ]
  13. SELECT * FROM `article` WHERE `id` < 537134 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002063s ]
  14. SELECT * FROM `article` WHERE `id` < 537134 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004958s ]
  15. SELECT * FROM `article` WHERE `id` < 537134 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001761s ]
0.100824s