Loading
宇宙中最有趣的事物从未被设计过,它们是涌现出来的。
一个系统可以是复杂的而不有趣。但一个能产生没有人设计的行为的系统——那完全是另一回事。
群飞从一只鸟转向开始。
三只椋鸟跟上——不是因为它们看到了发生的事,不是因为有人发出信号,而是因为每只鸟都在运行一个局部算法:匹配你最近的七个邻居的速度,保持近距离,不碰撞。这就是全部规则集。三条规则,局部应用,在三千只鸟身上每秒重复三千次。从中涌现的是一种形状——流动的、目的性的、几乎像液体一样——没有任何一只鸟有意为之,不存在于任何一只鸟的位置,在产生它的规则中任何地方都找不到。
那种形状不在规则里,从来就不在。这是大多数工程教育没有让你准备好面对的核心事实。一旦你清楚地看到它,你就开始在任何地方都看到它。
没有单元知道最终图案。改变一个局部阈值,全局结构便会重组。
我们可互换地使用这两个词,而这种粗心让我们付出代价。它们描述两种根本不同类型的系统,混淆它们会导致以可预测的令人沮丧的方式失败的工程决策。
一个繁复系统有许多部件和被设计的行为。瑞士手表是繁复的:数百个组件,精确的公差,行为完全由其设计者规定。商业飞机是繁复的,核反应堆是繁复的。原则上,给定足够的时间,你可以追溯任何输出到其原因。部件与行为之间的关系是详尽且可知的。繁复系统在部件故障时崩溃,它们以匹配其蓝图的方式失败。
复杂系统是不同的。它有很少的规则,通常非常简单,其输出没有被任何人设计。天气是复杂的:大气压力、温度和流体动力学方程支配着一切,但没有人设计了飓风。金融市场是复杂的:遵循自身利益规则的个别交易者产生了没有任何中央机构能够计算的价格发现。生命本身是复杂的:整个动物界记录从 DNA 复制错误和差异存活率中涌现。没有人设计了长颈鹿的脖子,它出现了。
这个区别很重要,因为对繁复系统有效的直觉在应用于复杂系统时会积极地误导你。失败模式不同,干预点不同,最重要的是规则与输出之间的关系不同——在繁复系统中,你得到你设计的东西;在复杂系统中,你得到规则在给定规模下使之成为可能的东西。
三个繁复系统:阿波罗制导计算机,DNS 解析器,供应链物流平台。每一个都复杂,每一个的行为都完全由其构建者规定,每一个都可以通过追踪组件间的因果关系进行审计。
三个复杂系统:英语,人类免疫系统,高峰期交通。每一个都有没有任何单一主体设计或能够设计的连贯稳健结构。你无法审计复杂系统,你只能观察它。
有史以来最清晰的涌现演示在一个浏览器标签页中运行。
粒子生命是一个有四种粒子类型和 4×4 交互矩阵的模拟——十六个数字,规定每种粒子类型对其他类型的吸引或排斥强度。这就是全部规则集。十六个浮点数和牛顿第二定律。
| 规则 | 粒子数 | 出现的东西 |
|---|---|---|
| 4×4 交互矩阵 | 500 | 松散、不断变化的团簇 |
| 4×4 交互矩阵 | 2,000 | 旋转的环,类细胞膜 |
| 4×4 交互矩阵 | 10,000 | 生态系统级行为,稳定种群 |
矩阵没有改变,规则没有改变。唯一的变量是粒子数量——规模——而输出从分散的噪声转变为无可否认地看起来有生命的东西。
这就是规模在复杂系统中的作用。它不只是更多同样的东西。每一个数量级的规模都产生质上不同的涌现结构。在 500 个粒子时,局部交互产生局部效应。在 2,000 时,局部交互积累成介观尺度结构——环、膜、振荡的团块——随时间稳定且对扰动具有鲁棒性。在 10,000 时,这些介观结构开始彼此交互,你得到看起来像生态学的动力学:种群起伏,领地形成,资源竞争在没有定义资源的情况下涌现。
数字对这一切一无所知,它们只是在做算术。但在规模上应用的算术产生了世界。
流体动力学给你湍流。纳维-斯托克斯方程——三个控制粘性流体运动的偏微分方程——简单到可以写在餐巾纸上。它们描述流体元素的动量和质量守恒。在足够高的雷诺数下,它们产生的是湍流:各种尺度的涡旋,能量从大涡向小涡级联,混沌但在统计上可预测。没有人设计圆柱后面的湍流尾迹,是纳维-斯托克斯加边界条件加规模产生了它。方程有三项,行为没有复杂度上限。
蚂蚁群落给你更难解释的东西。蚁后不发号施令——她产卵。关于去哪里觅食、如何应对威胁、何时扩展巢穴,这些决策从数千只工蚁中涌现,每只都遵循局部的化学梯度规则。当研究人员阻断信息素轨迹时,群落不会崩溃,而是重新组织。智能不在任何特定的地方,它是系统在规模上的一种属性,分布在每只蚂蚁身上却不在任何一只蚂蚁身上。
市场给你价格。亚当·斯密的"看不见的手"在比喻之下,是关于涌现的一个主张:遵循局部自身利益规则的个体行为者产生的全球价格信号,编码了比任何中央计划者能计算的更多信息。不管你是否同意斯密的政治立场,数学是正确的。价格发现是复杂交换系统的涌现属性——它无法自上而下计算,只能自下而上发现。
神经科学给你最难的案例:意识。每个神经元要么激发要么不激发,整合其输入,遵循电化学梯度。这些神经元中没有一个是有意识的。大脑中没有意识所在的地方,没有接收信号的小人。意识——如果它是任何可处理的东西——是系统在规模上产生的东西。它从一千亿个局部计算中涌现,没有一个是有意识的。
复杂系统在什么时候产生我们必须视为类别上不同的东西?什么时候"更多同样的东西"变成"某种新的东西"?这不是修辞性问题。这是物理学和心智哲学中最重要的开放问题之一,当答案来临时,它不会让人感到舒适。
当复杂系统以意外方式运行时,本能反应是添加更多规则。这几乎总是错误的。
复杂系统中更多的规则不会产生更多控制,而是产生更多耦合、更多失败模式,以及一个对新颖条件越来越脆弱的系统。规则以你无法完全预测的方式彼此交互——这正是使系统复杂的原因——所以每条新规则都会创造与每条现有规则的潜在交互的组合爆炸。
最稳健的复杂系统由尽可能少的规则在尽可能局部的层次上运行。康威生命游戏运行四条规则,Boids 群聚算法——比计算机动画的群飞更早且启发了它——运行三条。进化运行一条:差异性繁殖。
来自软件工程的两个无限重复的失败模式。第一:微服务蔓延。一个团队经历服务间协调失败,通过添加网关服务、重试逻辑、断路器、集中日志记录、追踪中间件和拓扑约束来回应。每个添加都创造新的故障面并增加任何单个故障的爆炸半径。正确的做法——几乎没有组织会做的——是减少服务数量并简化交互模型。第二:规模化内容审核。一个平台看到有害内容,通过叠加规则来回应:封锁列表、语义分类器、行为标志、速度检查、联合评分。每条规则都是局部补丁,结果是一个规则如此繁多以至于合法内容不断失败,而不良行为者学会规则边界并在边界内运作的系统。复杂系统需要局部信号和最少的全局规则,而不是从上面强加更多全局规则。
三件事同时发生,使这个区别变得紧迫。
AI 系统的规模已经超过任何人都能将其行为追溯到训练规则的程度。大型模型的输出——推理链、类比、代码生成策略——没有被设计,它们出现了。将这些系统视为繁复的(可审计、可追溯、通过添加更多规则可控制)是错误的心智模型,会产生错误的干预。
作为研究工具的模拟正在达到复杂性阈值。当粒子数量、智能体数量和交互丰富度越过某些规模时,模拟就不再是实验,开始成为世界。输出不再是数据,开始成为现象。研究者的工作从测量转向观察——从运行系统到观察出现的东西。
在我自己在 Exira-X 的工作中——生物进化、粒子动力学、思维导图系统——这个模式不断重申自己:最有趣的行为是我没有放进去的那些。找到不对称步态的生物。形成稳定膜的粒子团簇。当我停止试图工程化它并开始让规则运行时出现的涌现结构。这不是巧合,这是论题所在。
大型语言模型不是繁复系统。没有人设计它们通过新颖逻辑谜题推理的能力。没有人写下产生"想象你是一个 1920 年描述广播兴起的历史学家"正确回应的规则。那种行为没有被规定,它涌现了——从应用于足够多文本的下一个词预测,在足够的规模下,以足够的参数量。
这是人们发现最难接受的主张,因为它似乎在贬低某些东西。智能肯定需要有意设计?理解肯定需要一个理解的设计者?群飞说不。粒子生命模拟说不。蚂蚁群落说不。复杂系统产生超越其规则的输出,不是因为发生了什么神奇的事情,而是因为规模创造了涌现的条件,而涌现不会因为可以解释而被贬低。
模型是群飞,它遵循局部规则——预测下一个词,最小化交叉熵损失——在足够的规模下,出现了规则中没有的东西。称之为推理,称之为跨域泛化的模式匹配。名字没有识别重要:这就是复杂系统做的事。
我们用人类语言训练它。人类语言编码了人类推理。模型学习了那种推理的几何——不是作为明确的规则,而是作为从足够多实例中涌现的统计结构。行为是真实的,机制是涌现,两者同时为真,没有一个取消另一个。
我们继续寻找设计者,但没有设计者。只有规则,和规模,以及当你让它们运行足够长时间后出现的任何东西。群飞已经运行了一亿年,语言模型运行了三年。两者都不知道自己在做什么,两者都在做它。
所以真正的问题不是一个系统有多复杂——而是它是否还能让你感到惊讶。
我在 /projects/creature-evolution 和 /projects/particle-life 构建的模拟是对这个问题的赌注。定义规则,设定规模,看看出现什么。