购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

01 欢迎来到这个纠缠的时代

连接和反馈是复杂系统的典型标志。技术系统已经变得如此复杂,以致每个专家都仅知道其中的一个部分,没有人能够完全理解整体。我们已经从“启蒙时代”迈进了“纠缠时代”。

1986年初的一个冬日,距离“挑战者号”航天飞机爆炸事件发生还不到一个月,著名物理学家理查德·费曼(Richard Feynman)在调查委员会的听证会上公开了一份调查报告。 [1] 费曼非常冷静地揭示了导致“挑战者号”航天飞机起飞后不久就爆炸解体的原因。问题出在用于密封固体火箭助推器各部分之间缝隙的O型圈上。O型圈其实是一小片橡胶,放入冰水后会失去弹性,也就是说,这种小部件对温度变化非常敏感,所以无法保证密封的牢固性。这些O型圈很可能就是这起导致7名机组人员丧生灾难的罪魁祸首。

与此事件如出一辙的是发生在汽车业中的另一事件。2007年的一天,琼·布考特(Jean Bookout)驾驶着一辆生产于2005年的丰田凯美瑞,行驶在俄克拉何马州的一个小镇上。突然,她的车开始加速,并失去了控制。 [2] 她踩下了刹车,但没有任何作用;她拉起了紧急制动器,轮胎在道路上留下了触目惊心的摩擦痕迹。然而,这些努力都无济于事,汽车最终狠狠地撞到了路堤上。布考特受了重伤,车上的乘客、她的朋友芭芭拉·施瓦茨(Barbara Schwarz)则不幸遇难。

并不是只有布考特一个人遇到这种怪事。事实上,多年以来,在丰田公司生产的汽车中,有多种型号的汽车都曾出现过此类奇怪且危险的故障:汽车在行驶过程中会“违背”驾驶员的意愿保持匀速,甚至还会“擅自”加速。这种意外加速事故已经导致多人伤亡。业内专家分析出了这类事故的几个导火索:驾驶员操作失误,垫毡顶住了油门加速踏板,油门加速踏板黏滞未能及时复原,等等。但是,这些原因并不能解释所有的意外加速事故。在受事故影响的车型中,因为垫毡或油门加速踏板不合格而被召回的并不多,而且我们也没有理由认为,丰田汽车的驾驶员比其他汽车的驾驶员更容易犯错。

无奈之下,丰田公司请来了嵌入式软件专家迈克尔·巴尔(Michael Barr)追查原因,并向他开放了专有数据库以及向来严格保密的软件代码。在6位经验丰富的工程师的协助下,巴尔几经周折终于找到了问题的根源。与此同时,计算机科学家菲利普·库普曼(Philip Koopman)也通过对公开程序的仔细分析,找到了事故发生的大致原因。 [3] 两位专家都认为,对于意外加速事故的发生,丰田发动机软件系统的过度庞大和极度复杂,以及糟糕的设计都应该承担相应的责任。我们无法将事故责任明确地归咎于某个设计或部件出了错,毕竟,这里面存在的问题盘根错节,而且这些问题还会引发汽车软件系统与外部机电系统之间的巴洛克式结构(baroque structure)的大规模交互。无论是单独看来,还是整体看来,这个系统的极度复杂性让我们很难理解这些相互作用、相互影响的部件的深层问题和缺陷。有依据表明,丰田公司本来完全没有必要搞出一个如此复杂的系统,至少在现有情况下,不必如此复杂,它们显然不够小心。

这个“诊断结果”与我们熟悉的“技术失败”并无二致。费曼找到了导致“挑战者号”航天飞机爆炸的单一原因,有所不同的是,我们无法确定导致丰田汽车出现事故的单一原因。无论如何,如果部件堆积得越来越多,设计也越来越复杂,那么灾难便只会越来越多。

事实上,即使找到了导致失败的单一原因,但在极度复杂的系统中,那很可能也只是掩人耳目的东西罢了。1996年,阿丽亚娜5型火箭在发射升空39秒后爆炸,火箭上搭载的4颗卫星均毁于一旦。 [4] 事故分析表明,发生爆炸的原因是,火箭在新环境下使用了一些较为陈旧的软件代码。但是,根据霍默-狄克逊教授的说法,没有任何一个承包商被追责。这次爆炸并不是某个决策失误所致,而是整个发射系统的极度复杂性所致。其他类似的灾难还有三哩岛核电站事故, 尽管有关方面也找到了一个原因,但是究其根本,仍然得归咎于系统的庞大和极度复杂,而非某个部件或决策出了错。

当我们试图将这种复杂性拆解开来时,难免会陷入“挑战者号”航天飞机的主流事故中。 [5] 尽管航天飞机的发射和操作是一项异常复杂的工作,但是很多人都相信,只要彻底核查复杂系统,将其分解开来,确定每个部件如何工作,在什么情况下会出故障,我们就应该能够理解它们。这无疑是一种过于自信的想法,其根源在于:人类的思想拥有无限潜力。人们总认为,只要足够努力,就可以完美地理解身边的一切事物,特别是人类自己所构建的那些东西。

我们观察到,这种情绪在所谓的辉格党式(Whiggish)的进步观念中体现得最为充分。正如科学作家菲利普·鲍尔(Philip Ball)所描述的那样,这种观念认为人类已经踏上了“从无知和迷信的黑暗时代走向理性时代的胜利之旅” [6] 。在科学界和技术爱好者的圈子中,这个观念根深蒂固,正如历史学家伊恩·毕考克(Ian Beacock)在文章中所写:“科技行业讲述了人类‘数字时代’的崛起,那是一个辉格党式的故事:阴郁昏暗的时代行将结束,人类将迎来一个更加美好的未来,一个更幸福、更开放的世界。在那个美丽新世界中,一切都是测量好的、经过精心设计的,并达到了最高效的完美状态。” [7] 当然,坚持这种观点的人还认为,效率和生产力的提高,促使人们为了实现某个令人振奋的目标,而持续关注和理解自身所构建的现代工程。这种辉格党式的观点与社会学家马克斯·韦伯(Max Weber)所描述的“现代思维模式”有关:在一个“不再拥有幻想的世界”中,人们会产生一种感觉,也就是“在原则上,我们可以通过运算来掌握所有事物”。 [8]

然而,这种理解复杂性的方法如今已经失效了。是的,我们正处在一个新时代,正在建立一个新系统,而这个系统是无法从整体上被掌握的 [9] ,或者说,无论对谁而言,它都太复杂了。我们发现,在分析丰田汽车意外加速事故时,无论是不是专家,上述那种陈旧的思维模式都不足以应对其复杂性了。不仅如此,这些情况不只附着在我们缺失的经验中,它们已充斥了我们的整个生活。

[1] James Gleick, “Richard Feynman Dead at 69; Leading Theoretical Physicist,” The New York Times , February 17.

[2] 关于丰田汽车意外加速事故的更多信息,请参阅:Ken Bensinger and Jerry Hirsch, “Jury Hits Toyota with $3-million Verdict in Sudden Acceleration Death Case,” Los Angeles Times , October 24, 2013; Ralph Vartabedian and Ken Bensinger, “ Runaway Toyota Cases Ignored,” Los Angeles Times , November 8, 2009; Margaret Cronin Fisk, “Toyota Settles Oklahoma Acceleration Case After Verdict,” Bloomberg Business , October 25, 2013; Associated Press, “Jury Finds Toyota Liable in Fatal Wreck in Oklahoma,” New York Times , October 25, 2013。

[3] 2014年10月3日,库普曼在他的博客上发表了一个题为“丰田汽车意外加速事故与软件安全案例研究”的演讲。也请参阅:the report by Michael Barr of the Barr Group on Bookout v. Toyota

[4] 关于阿丽亚娜5型火箭的事故详情,请参阅:Homer-Dixon, The Ingenuity Gap 。霍默-狄克逊的部分叙事基于James Gleick, “A Bug and a Crash: Sometimes a Bug Is More Than a Nuisance,” 1996(which originally appeared in The New York Times Magazine , December 1996)。关于这类系统突然崩溃的直接原因与深层原因的讨论,请参阅:Chris Clearfield and James Owen Weatherall, “Why the Flash Crash Really Matters,” Nautilus 023, April 23, 2015。

[5] 我们必须认识到,“挑战者号”航天飞机的失事原因比坊间所传要复杂得多。例如,有种说法是,在发射之前,某些工程师已经预感到这架航天飞机可能会发生“灾难性事故”;尽管他们无法说出准确原因,但是他们的确反对过这次发射。当时,有工程师指出“温度是一个因果性的因素”,但并不确定。请参阅:Wade Robison et al., “Representation and Misrepresentation: Tufte and the Morton Thiokol Engineers on the Challenger,” Science and Engineering Ethics 8, no.1(2002): 59–81。在这个事故的“口述”材料中也有一些线索可以表明,某些工程师似乎知道失事原因;理查德·费曼也得到了这方面的材料,并在听证会上做出了强调。请参阅:Margaret Lazarus Dean, “An Oral History of the Space Shuttle Challenger Disaster,” Popular Mechanics , February, 2016。

[6] Philip Ball, “Science Fictions,” Aeon , October 29, 2012.

[7] Ian Beacock, “Humanist among Machines,” Aeon , June 25, 2015.

[8] Max Weber, “Science as a Vocation,”in From Max Weber: Essays in Sociology , trans. and ed. H. H. Gerth and C. Wright Mills, 129–56(New York: Oxford University Press, 1946, repr.1958) .

[9] 人类一手创造之物,令人类困惑不解。类似的观点,法国诗人保罗·瓦莱里(Paul Valéry)早已“预言”:“因此,所有的问题归根结底是在问:人类心智能不能掌握人类心智的创造物?”转引自:Langdon Winner, Autonomous Technology: Technics-out-of-Control as a Theme in Political Thought (Cambridge, MA: The MIT Press, 1977), 13。 YV/wxC/g7AlkzfTZpkZAJLw3xbX1SuORfHVPenG5LQUczf8mciw+d/9wT/w8RkgI



什么是复杂系统

在这里,我们必须先花些时间讨论一下“庞杂”(complicated)和“复杂”(complex)系统的含义。 尽管我在文中,以及书名中使用这两个术语时所指含义与它们在口语中的意义大致相同,但实际上,它们的准确含义和日常意义存在着一些重要区别。

请想象一下,有许多水上浮标被绑在一起,漂浮在水面。 当一艘船经过时,其尾流会形成一个个小波浪,从而使浮标一个个动起来。但是,每个浮标都无法单独“行动”。因为每一个浮标都通过绳索连接着不同重量和大小的其他浮标,所以任何一只浮标的行动,都会带动其他浮标产生相应的行动。这些行动还可能会引发意想不到的反馈过程,也就是说,浮标的行动会间接地影响到自身。于是,船的简单尾流,在这个复杂的浮标网络中引发了大量级联式(cascade)的行动。如果船以其他方式驶过,比如以另一种速度或角度驶过,那么浮标的行动可能会完全不同。

接下来再想象一下,人们把这些浮标从水中捞了出来,扔在了码头上。它们可能被排列得非常巧妙,却很难描述清楚,我们需要颇多文字才能讲明白它们之间的相对位置,或许还需要附上一些图表,以便日后能复制出同样的排列方法。但是,无论被排列成什么样,这里也不会有趣事发生。因为在这个精巧的网络中不存在级联效应,也不存在反馈过程。说到底,只不过是一堆可以漂浮的东西被放在了码头上。

水中的浮标形成了一个复杂的系统。那么码头上的浮标呢?它们的排列也许看上去很巧妙,但其所构成的系统最多只能说是庞杂的。任何一个系统,要想成为一个复杂的系统,仅仅包含很多组成部分是不够的,各部分之间还必须相互关联,并在“嘈杂的舞蹈”中相互作用才行。在这种情况下,我们可以观察到某些行为特征,那是复杂系统的标志:微小的变化通过网络被级联式放大,并引发反馈过程,同时敏感地依赖于系统的初始状态。这些特征,与其他一些特征一起,使系统从“庞杂的”变成了“复杂的”。

对于这种区别,还可以从另一个角度来思考:生物在活着的时候是复杂的,而死后最多只能说是庞杂的。死去的动物虽不失其复杂特性,但其内部却没有任何过程在发生:整个生命网络,比如血液循环系统、新陈代谢系统、神经系统等,都很“安静”。生命是运动和相互作用的“狂暴之流”,极其复杂精妙,在有生命的机体中,再小的变化都会被级联式放大,进而引发大量行为。另外,即使一个系统是动态的,比如浮在水中的一堆没有被连接起来的浮标,因为其内部不存在相互联系,没有反馈的可能性以及其他类似的属性,所以我们也只能称其是“庞杂的”,而非“复杂的”。

如果将技术定义为人类为特定目的而设计和构建的各种类型的系统,那么就不难注意到,当今最先进的技术几乎都是复杂的系统:动态、功能复杂、规模庞大,而且拥有近乎有机生命体般的复杂性。这些复杂的系统遍布我们周围,从汽车软件到电脑设备,再到城市基础设施。 [1] 那些庞大的、高度互联的软件,其规模足以与百科全书相比。据估计,微软的办公软件就有数千万行计算机程序代码。 [2]

美国的公路系统有30万个交叉路口,每一个路口都有交通信号灯。 这是一个覆盖全美的动态交通网络,所包含的自动纠错系统先进得令人难以置信,尽管我们会因为它经常出问题而嘲笑它愚蠢得令人绝望。该系统的背后是PB级数据(1PB等于100万个GB)和复杂的概率模型。 [3] 随着时间的推移,法律体系也变得越来越复杂。截至2014年,美国联邦税法的总页数已经超过了74 000页。 [4] 这个庞大的法律网络非常复杂,拥有无数个关联点,会对纳税人产生级联式的影响,可以说几乎没有人能从整体上完全理解其功能。

在我们的生活中,复杂的技术系统无处不在,这通常是一件好事。正是在这种庞大的复杂性中,我们发现了惊人的弹性,也就是复原力。这些系统通常拥有许多功能各异的工具箱和故障保险箱,可以帮助人们完成任何“想要”完成的事情。这些系统也为我们提供了连古代皇室都无法想象的生活:免除了辛苦的重复劳动;把水电送到家中;让我们一年到头都可以生活在舒适的温度下;还能帮助我们快速地传递信息。

那么,我们该如何理解复杂系统,而这又意味着什么呢?无论是分析一个现象,还是了解一个系统,都不是非此即彼的二元选择。这种理解其实是一条内涵丰富的光谱。 [5] 换句话说,你可以只从整体上去理解一个系统,掌握它的全局情况,而不一定非得理解其各个组成部分的细节情况;你也可以只理解它的所有组成部分,而不太关注其整体功能;你还可以只了解各部分是如何相互关联的,或者只探究这种关联的最终效应。此外,所有的“理解”都会涉及一些具体活动:描述事物是如何运行的,在不同层面上预测其未来的行为,并在时间充足和资源丰富的情况下通过构建模型来复制它。

回到上文中有关浮标的例子。你或许只能了解到两三个被连接在一起的浮标的行为细节,甚至只能搞清楚一个浮标的行为,而无法描述所有浮标所组成的巨大网络的整体行为;或者,你能够描述浮标的整体运动,却无法预测它们各自的行为。对于软件,你或许可以很好地理解给定程序中的若干模块,例如计算圆周率值的子程序,或是对一组数字进行排序的子程序,但你却不一定能理解它们是如何一起发挥作用的。通常,我们只能把握上述“理解”中的一部分,而非全部。

另外,“理解”也不是固定不变的,它可以通过训练来改进。从来没有下过国际象棋的人,在看到棋局的时候,可能无法将势均力敌的平局和王已经受到致命威胁的残局区别开来。而接受过一定训练的初学者和中段棋手,均能掌握下棋的基本模式,并判断棋局的基本形势和大致走向。国际象棋大师则能一眼看透当前的形势和接下来可能会出现的演变,而后评估棋局并给出可靠的走法,同时弥补潜在的弱点。经过充分训练后,棋手在看到一盘棋时,眼中所见的就不再是一排排、一列列的棋子了,而是诸如“白棋三步就可将死对方”之类的棋局。因此,学习专业知识并接受一定的训练确实可以从根本上改变我们对世界的看法和理解方式。

对于人类构建的系统而言,亦是如此。计算机代码既可能是难懂的天书,也可能是解决难题的优雅方案,这一切都取决于你到底了解些什么。不过,当我们无法完全理解它们时,就会遭到某种特定的失败或打击,也就是某种意想不到的结果。

以空中交通预警防撞系统(Traffic Alert and Collision Avoidance System, TCAS)为例,人们创建这个系统的目的是防止飞机在空中相撞。这个系统会提醒飞机驾驶员注意潜在危险,并告之如何根据规则做出应对。但是,几十年来,这个系统的规则已经变得极其复杂,复杂到全世界只有屈指可数的几个人能够真正了解它。每当有人提出一项新的系统规则时,有关方面就会通过模拟实验来测试其效果。在若干次测试中,如果表现均能达到预期,新规则就会被批准投入使用。

尽管避免飞机相撞本就是一个复杂的挑战,但是从根本上来说,我们为此而建立起来的系统已经变得太过复杂了。不但一般人无法理解,即使是专家,有时候也会对系统在某些情况下所做出的反应感到疑惑。

当结果出人意料时,就意味着我们对相关问题的理解还不够充分,因而无法搞清楚这种结果从何而来。倘若只是视频游戏中的一个错误,那倒也无伤大雅,甚至还能起到娱乐大众的效果。然而,如果是极度复杂的社会保障系统发生了出人意料的状况,我们肯定就无心娱乐了。这些复杂的系统可能是为我们提供水电的基础设施,也可能是执行金融交易的软件,还可能是防止飞机相撞的程序。在这种时候,理解是否到位就成了一个生死攸关的问题。

每个人理解世界的能力天生就有所不同。天才拥有常人难以企及的直觉,他们的跳跃性思维可能远远超出了常人所能理解的范畴。但是,人类的认知能力终归是有限的。随着时间的流逝,我们所构建的各种技术系统变得越来越复杂,系统之间的关联性也变得越来越强,越来越难以理解。无论人类有多聪明,记忆力有多强,都无济于事,因为这些系统的构建方式与人类的思维方式不一样。人类不具备同时应对数百万个组成部分及其之间的大量交互,并将所有结果都记在脑袋中的能力。我们的大脑会“严重超载”,继而宣告失败。

[1] Kevin Kelly, “Cities are technological artifacts, the largest technology we make.” What Technology Wants (New York: Viking, 2010), 81.

[2] David McCandless, “Codebases: Millions of Lines of Code,” infographic, v.0.9, Information Is Beautiful , September 24, 2015.假设一本百科全书有3万页,每一页可以放下1 000行代码,那么据推算,苹果操作系统需要好几本百科全书才能登载完。

[3] Gideon Lewis-Kraus, “The Fasinatng...Frustrating...Fascinating History of Autocorrect,” Wired , July 22, 2014.

[4] Laura Saunders, “Paper Trail,” sidebar to article “Don't Make These Tax Mistakes: Fifteen Common Tax-Filing Errors That Can Cost You Dearly,” The Wall Street Journal , January 31, 2014.17.

[5] 对复杂系统不同层级的理解,请参阅:Stephen Jay Kline, Conceptual Foundations for Multidisciplinary Thinking (Stanford, CA: Stanford University Press, 1995), 268。 YV/wxC/g7AlkzfTZpkZAJLw3xbX1SuORfHVPenG5LQUczf8mciw+d/9wT/w8RkgI

点击中间区域
呼出菜单
上一章
目录
下一章
×