模块组合的问题

(如果觉得又臭又长,你可以直接跳到后面的 证明 部分(证明组合派不可能做出真正的智能))

很多人认为只要把多个模块组合在一起,就能实现智能。

弊端

给参工具模块擦屁股

不论你试图'整合'任何外部模块,都会带来弊端,使得你不得不花时间来更新所有参与组合的 '模块',因为环境永远在变,未来不可预知,工具模块总是需要更新:

技术或模块弊端代价上限
深度学习人力标注、巨大的更新耗能使得系统不能即时更新无限 ∞
图谱人力标注、且需要进行很多难以达成的“语法”转换无限 ∞
NLP人力定义、需编写海量的专用算法,比如数字的识别和处理,主谓宾定状补的特殊处理等无限 ∞

以上这些技术,用在工具场景下,都是非常“好”的工具,但用在智能场景,则很难覆盖特例,也很难即时更新

穷途末路

随着环境的变化,各种工具都会逐渐展露出缺陷和弊端,从长远看,其修补的代价也趋近无限大,以至于只有两个选择:

  1. 你不得不参与到各种工具的开发中,试图提升 “外部模块” 的功能完整性。
  2. 你不得不等待别的团队进行模块的更新(比如更新纽扣问题,下面的简单证明过程会提到)。

但是,由于环境永远在变动,所以工具的缺陷和代价是无限的,上面两点都不可能最终达成。

避免陷入自我合理化

人往往对那些比较熟悉或熟练的事情产生好感,如果长期处在工具设计圈中,会对各种工具产生一种无须证明的好感,最终合理化这些工具的使用并认为"工具就是智能",偏离了智能的设计初衷。

避免浪费精力

试想一下,有没有哪一种工具会停止更新? 微信、抖音、计算器、字典、词典、操作系统,这些都需要不停更新。而且这些工具都需要人力参与才能更新。不更新的项目,全都死了。由于环境的动态的,所以工具必须随着环境变迁持续更新。

不管你整合哪一种外部工具,它们都存在这样或那样的问题,虽然做出了很多看似酷炫的工具,但最终都存在各种问题,最终,你都不得不参与到外部工具的修补的队伍中、或等待工具的修补。最后导致很多精力被浪费在修补和等待中。

粗略的证明

从人脑角度

大部分智能设计者都认为自己的参照物是人脑,如下图:

为了方便讨论,我们先把大脑简化成下面这幅模样,如下图:

然后我们先假设组合派是正确的,把大脑切分成两个模块(或多个模块),如下图:

接下来,由于两个模块之间需要通信,所以我们人为地设定一个接口,连一条红线代表接口:

然后我们反思一下,我们在工业级,或者 IT 界,有没有遇到过能够 “自动” 生成的 “接口”?

答案是,似乎没有,目前为止,大部分接口都需要人类程序员参与才能建立。

好,我们接着往下走。

现实生活中,单一接口能传达的信息极其有限,不仅格式受限,带宽也受限,往往达不成理想的沟通,所以你不得不持续增加接口,如下图:

如果项目比较简单还好,几条搞定了,但如果是大型应用或者你期望的智能项目,接口还必须持续增长,如下图:

请记住一个前提,大部分接口(可能是全部的接口)都是用人力(程序员)来定制和衔接的。负责衔接的团队会越来越庞大。相关的 bug 也会越来越多,下面是腾讯微信大部分版本的更新简介:

强如腾讯,也没办法写出完美的程序,同样需要修修补补。

随着功能的增多,模块间接口继续增加:

到了这种地步,要不反思一下:

  1. 到底有没有必要从大脑中切分出模块?
  2. 费这么多人力搞这么多接口,最后变成了有多少人力就有多少智能,为什么不能让系统自己生成接口(链接)?
  3. 模块论、组合论,一定适用于智能项目吗?
  4. 为什么不能让系统自动学习而无需人工干预?

我们再回头看人脑的皮层,是不是一个相对完整的整体? 至少没有明确的分界线:

显示生活中,你也找不到任何一个皮层被切分还依然智力正常的人类。

纽扣问题

  1. 假设你要建造一个系统,一个 “ 侦探 ” 系统
  2. 只做推理部分,剩余的感知,交给 “深度学习” 这个外部模块,也就是说,你走的是组合路线
  3. 此时案发现场遗漏了一个纽扣,不是被害者的,所以显然是凶手留下的。
  4. 过了几分钟,找到了几个嫌疑人,于是你的系统打算观察几个嫌疑人的身上有没有遗失纽扣。
  5. 于是内核系统向外围模块(深度学习)发出了识别的请求。
  6. 结果外围模块的识别结果是这样一个数组:['穿着夹克的男人','穿着红裙的女人', ... ]
  7. 这显然不符合内核的需求,主要是因为对应的深度学习模块不是针对纽扣来训练
  8. 于是你向谷歌发了一封信,希望他们在训练的时候,加上图片中是否包含纽扣,以及纽扣是否缺失标注
  9. 过了几天,过了几周,然后又过了几个月,你发现没有回信。
  10. 于是你决定,不得不自己训练一个自己的 “深度学习” 模块,但很快你发现一个问题,要构建足够大的视觉模型,以及频繁更新大模型,需要的代价很大,如下图:

注意,这不是一次性的费用,而是每当你遇到任意一个 纽扣问题(未经标注)或类似的问题,你都必须付出 1200 万美元的代价。

问题如果进一步细化,比如特定图案、特定材质的纽扣,代价就更大了。

你心想,没关系,只要人类社会里出现过的规则或事物,你只要有足够的耐心,有足够多的标注团队、足够多的算力,你就可以达成这个智能系统(于是你又想起了谷歌,但谷歌依然没有回信)。

那么,那些不曾出现过的规则呢?

兔狗实验

看看你的 “侦探” 系统能不能应对这种情况:

侦探系统遇到一个小女孩,她掌握了核心案情,她要求你必须跟她玩一个即时制定规则的游戏,她才会把案发现场的实情告诉你

这是一种即时游戏、交互式游戏,游戏参与者可以随时协商游戏规则,比如这个游戏:

  1. 看见兔,说狗。
  2. 看见狗,说兔。

规则可以随时变化:

  1. 抽到梅花代表成功。
  2. 抽到黑陶代表失败。

也可以反过来:

  1. 抽到梅花代表失败。
  2. 抽到黑陶代表成功。

此时,由于外围系统(深度学习)并没有这些即时规则标注数据,更不可能训练相反的规则,所以外围系统只能向内核输出 ['我看见了兔,但我不擅长推理规则']

此时,小女孩觉得这个太简单了,毕竟外围模块还能识别出兔子,于是她突然改变了规则,随机在草稿上画了一些图案

小女孩指了指左边的图案说,看见这个说兔, 然后指了指右边的图案,看见这个说狗

这些潦草的图案(甚至可以更潦草),远远超出了深度学习的训练范围,所以它只能输出 我什么也看不见

此时,侦探系统没办法,只能给你打电话,让你帮忙识别这幅图的左边和右边分别是什么。

发现没有,你的系统需要一个 “保姆” 常年跟着它,系统整合的外部模块越多,需要保姆插手的地方就越多。

你可能会反驳说,需要保姆的系统,也是侦探系统啊。

是的,这个 “侦探”系统必须依附一个人类智能体才能体现出它的智能。

同理,我们可以推出如下结论:

  1. 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “决策系统”。
  2. 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “聊天系统”。
  3. 一个包含了推理功能的组合派系统,需要绑定一个人类,才能做 “咨询系统”。

注意,以上的关键字是:绑定一个人类

这样的系统,只能成为工具或应用,但永远跟真正的智能差那么几步。

如何做才能算统一和完整?

(不定时更新...)

Last Updated:
Contributors: poerlang