跳至正文

进化与设计:两种系统优化路径的对比

    一、先从你身上最熟悉的两个东西说起

    你手腕上的皮肤,和你手里这台手机。

    皮肤这东西,你从来没操心过它。被划破了,过几天自己长好。被晒黑了,过阵子自己白回来。冬天干了会起皮,夏天出汗会自己调节。它跟了你几十年,你没给它做过一次保养,没给它换过一次零件,它一直在那儿,不声不响地干活。

    手机就完全是另一回事。买回来第一天挺好用,半年后电池开始撑不到晚上,一年后充电口松动,两年后屏幕出现一个坏点,三年后打开相机要等三秒。它不会自愈,坏了就是坏了。你得贴膜、戴壳、定期清理存储、换电池,实在不行就换一台。

    这两样东西都是系统。但它们优化自己的方式,压根不是一回事。

    皮肤靠的是进化。几十亿年,一代一代试错,有用的特征留下来,没用的淘汰掉。没有谁在图纸上画过皮肤的构造,也没有谁在实验室里调试过皮肤的修复速度。它自己在时间里长成了现在这个样子。

    手机靠的是设计。工程师先定目标,再画图纸,再选材料,再写代码,再测试,再量产。每一个零件都有它的来路,每一条代码都有它的用途。它不会自己长出来,也不会自己变好,只能靠人不断迭代。

    今天就想聊聊这件事。进化这条路,设计这条路,各自是怎么走的,各自付出了什么代价,各自在什么地方好使,在什么地方不好使。以及,为什么今天最前沿的那些系统,开始同时走两条路。

    二、进化:一个没有设计师的工地

    进化的机制其实不复杂。变异、选择、遗传,三个词就能概括。

    基因在复制的时候偶尔会出错。有的错让个体跑得更快,有的错让个体眼睛更尖,有的错让个体更能扛饿。跑得快的更容易活下来,活下来的更容易繁殖,繁殖出来的后代也带着这个错。几百万年下来,这个物种就慢慢变成了现在这个样子。

    这里头没有一个“谁”在规划。没有谁想着“我要让这个动物长出更长的腿”,也没有谁计算过“腿长到多少厘米最合适”。它就是一直在试,试对了留下,试错了消失。

    进化最要命的一个特点,是它没有目的。

    它不是为了“更好”而进化。它只是为了“活下去”而进化。一个物种可能进化出一个非常奇怪的特征,只要这个特征不影响它生存和繁殖,就会被保留下来。孔雀的尾巴又大又重,飞起来费劲,跑起来也慢,但它能吸引配偶。从效率角度看,这条尾巴纯属浪费。从繁殖角度看,它是优势。

    还有更离谱的。人的喉咙和食道共用一条通道,所以吃饭的时候特别容易呛到。如果重新设计一个人,完全可以把气管和食道彻底分开,永远不会呛。但进化做不到,它只能在原来的结构上凑合。鱼类的鳃弓演化成了哺乳动物的喉部结构,这套底子在那摆着,它只能将就着改。

    进化第二个特点,是它极其缓慢,但极其稳健。

    一个有用的变异,从出现到普及,可能要几百万年。这个速度放在人类工程里简直是灾难。但一旦普及,它就非常稳定。因为它不是靠某一个个体在支撑,是靠整个物种的基因库在支撑。哪怕环境突然变化,只要物种里还有少数个体带着有利变异,整个物种就能撑下去。

    你想想蟑螂。这东西在地球上活了将近三亿年,恐龙都灭绝了它还活着。它没有复杂的大脑,没有强悍的攻击力,没有漂亮的羽毛,它就是扛得住。温度变了,它能活。食物没了,它能扛。辐射照了,它也不死。这不是因为它有多强,是因为它这一套系统走了三亿年的试错路线,把各种极端情况都筛过一遍了。

    进化第三个特点,是它只能利用已有的东西。

    它不能凭空造出一个新器官。它只能在已有器官的基础上修修改改。哺乳动物的耳朵,是从爬行动物的下颌关节演化过来的。一开始那个关节是用来嚼东西的,后来慢慢变成了听声音的。整个过程用了上亿年,中间还出现了各种半成品,有的能嚼也能听,有的听不清也嚼不动。要是从头设计,直接造一个耳朵出来就行了,但进化没有这个选项。

    这也是为什么生物体里充满了“历史遗留问题”。你腰疼,因为你的脊椎本来是给四足行走设计的,直立行走之后,腰椎承受了额外的压力。你近视,因为你的眼球长度和晶状体焦距没匹配好。你智齿疼,因为你下巴的尺寸在演化中缩小了,但牙齿的数量没跟着减少。这些都是将就用的结果。

    进化第四个特点,是它会产生“过度适应”。

    有些特征在特定环境下特别有用,但环境一变,就变成了负担。爱尔兰麋鹿的角巨大无比,在求偶的时候非常有优势,但森林变成草原之后,巨大的角让它们跑不快,最后整个物种都灭绝了。人类的阑尾也是类似的遗留物,在吃粗糙植物的时候有用,现在只会发炎。

    进化不追求完美。它只追求“够用”。只要这个特征不致命,它就会被保留。至于它是不是最优、是不是浪费、是不是有隐患,进化不管。

    三、设计:一个从图纸开始的工程

    设计就完全是另一套逻辑了。

    设计的核心是:先有目标,再有方案。工程师先想清楚“我要做一个什么”,然后再去算怎么实现。要做飞机,先确定航程、载重、速度,再算升力、推力、阻力,然后画图纸,选材料,造原型,试飞,改,再试飞,再改,最后量产。

    设计最明显的特点,是它有明确的目的。

    每一个零件都有它的功能,每一条代码都有它的逻辑。没有多余的装饰,没有无用的结构。你想让飞机飞得更快,就优化发动机和气动布局。你想让手机更薄,就压缩电池和主板。每一步都有清晰的目标,每一步都能追溯到“为什么这么做”。

    这一点和进化截然不同。进化没有“为什么”,只有“碰巧活下来了”。设计有明确的“为什么”,而且这个“为什么”是可以被追问、被审视、被改进的。

    设计第二个特点,是它极其迅速,但不稳健。

    一个全新的产品,从概念到量产,可能只需要几年。这在进化的尺度上几乎等于一瞬间。但设计出来的系统,一旦某个关键零件失效,整个系统可能就崩溃了。飞机的发动机停了,飞机就危险了。手机的主板烧了,手机就变砖了。电网的一个关键节点故障了,可能引发大范围停电。

    设计的稳健性,需要靠额外的冗余来堆。飞机装两台发动机,银行在三地备份数据,火箭的关键传感器装三个。这些冗余不是系统天然就有的,是工程师刻意加上去的。加冗余就要加成本,加重量,加复杂度。所以设计的稳健性,永远是在效率和可靠性之间做的妥协。

    设计第三个特点,是它可以追求全局最优。

    设计师可以从零开始,重新设计一套完全不同的方案。他不需要受已有结构的限制。他想让飞机用飞翼布局,就可以不用传统的机身加机翼。他想让手机用折叠屏,就可以不用直板屏。他想让汽车用电驱动,就可以不用发动机和变速箱。

    这种自由度,进化是没有的。进化只能在已有的基础上修补,设计师可以推倒重来。这也是为什么人工系统的迭代速度可以那么快,因为它不需要背着历史的包袱走路。

    设计第四个特点,是它完全可解释。

    你打开一台手机的电路图,每一个元件的作用都能说清楚。你打开一个软件的原型图,每一个函数的逻辑都能拆解开。这种可解释性,对工程来说至关重要。出了问题可以定位,想改进可以定向,想复制可以照搬。

    这一点和进化又完全相反。你没办法解释为什么人类的手是五根手指,而不是六根或者四根。你只能推测“五根在某个环境下更有优势”,但具体怎么演化出来的,中间经历了哪些阶段,每一步的优劣是什么,没有人能说得清。

    四、进化付出了什么代价

    进化不是免费的午餐。它有几个绕不开的代价。

    第一个代价,是它只能利用已有的结构。

    这一点前面提过,但值得再展开说一下。进化不能凭空创造新器官,它只能在已有器官的基础上修改。所以生物体内充满了“历史遗留问题”。人类的喉咙和食道共用一条通道,吃饭容易呛到。如果重新设计,完全可以把气管和食道分开。但进化做不到,它只能在原来的结构上凑合。

    再比如,人的视网膜是“反着装的”。感光细胞在视网膜的最底层,光要穿过好几层神经细胞才能到达感光细胞。这种结构会降低成像质量,还容易造成视网膜脱落。如果重新设计,感光细胞应该在最外层,光直接打到上面。但进化没有重新设计的机会,它只能在这个基础上继续修。

    第二个代价,是它极其缓慢。

    一个有利的变异,要经过无数代才能普及。如果环境变化太快,进化根本来不及。恐龙灭绝的时候,哺乳动物花了上千万年才填补了生态位。如果环境变化再快一点,可能所有物种都来不及适应,直接团灭。

    今天的气候变化速度,已经远远超过了大多数物种的进化速度。很多动物还没来得及进化出适应新温度的能力,就已经快撑不住了。这不是它们不够努力,是进化的节奏跟不上环境变化的节奏。

    第三个代价,是它会产生“过度适应”。

    有些特征在特定环境下非常有用,但环境一变,就变成了负担。爱尔兰麋鹿的角就是典型。还有一个更近的例子,人类对高糖高脂食物的偏好。在原始社会,高糖高脂的食物非常稀缺,所以大脑进化出了“见到就多吃”的机制。但现在这种食物到处都是,这个机制就变成了肥胖和糖尿病的根源。进化给我们留下的这个偏好,在当下的环境里反而成了负担。

    第四个代价,是它无法被解释。

    你没办法解释为什么人类喜欢音乐,为什么会有审美,为什么会做梦,为什么会有意识。这些现象都有演化的痕迹,但具体的演化路径,没人能说得清。这种不可解释性,让进化很难被工程化地利用。你没法把进化的经验直接转化成一条条规则,你只能观察结果,猜测原因。

    五、设计付出了什么代价

    设计也不是免费的。它也有几个绕不开的代价。

    第一个代价,是它需要提前知道所有情况。

    设计师必须提前想到所有可能的情况,才能设计出应对方案。但现实世界是开放的,你永远不可能想到所有情况。这就是为什么软件总有bug,为什么飞机总有意外。设计师只能在有限的时间和资源内,覆盖尽可能多的场景。那些没覆盖到的场景,就是系统的盲区。

    你设计一个导航软件,想到了堵车、修路、封路,但你想不到某条路上突然有人办婚礼堵了半条街。你设计一个支付系统,想到了网络延迟、服务器故障、恶意攻击,但你想不到某个用户会在输入金额的时候把手机掉进水里。现实世界里的变量是无穷的,设计只能覆盖有限的变量。

    第二个代价,是它需要持续维护。

    设计出来的系统,不会自己更新。手机系统要定期升级,飞机要定期检修,建筑要定期维护。一旦维护跟不上,系统就会老化、失效。

    这一点和生物系统形成鲜明对比。你不需要每天给心脏做保养,它自己会保养自己。你不需要定期给肝脏升级,它自己会更新细胞。但设计出来的东西不行。你一天不维护,它就退化一点。你一年不维护,它可能就报废了。

    第三个代价,是它会产生“过度优化”。

    为了提高某一个指标,可能会牺牲其他指标。手机为了做薄,牺牲了电池容量。汽车为了省油,牺牲了动力。平台为了拉高留存,牺牲了用户体验。这种单一目标的极致优化,往往会在其他维度上留下短板。

    而且过度优化往往伴随着脆弱性。一个为了追求极致效率而设计的系统,往往没有足够的冗余来应对意外。一个把所有资源都压在核心业务上的公司,一旦核心业务出问题,整个公司就完了。

    六、两条路不是对立的

    进化和设计,听起来像是两个极端。但现实里,它们有很多交叉点,而且这些交叉点往往是最有意思的地方。

    第一个交叉点:人类本身就是进化的产物,但人类又用设计来改造世界。

    人的双手是进化的产物,但人用这双手制造工具,设计机器。人的语言是进化的产物,但人用语言制定规则,设计制度。人的大脑是进化的产物,但人用大脑思考、计算、创造,设计出了计算机。

    这其实是一个非常奇妙的事实:进化花了几十亿年,造出了一个能设计的系统。而这个系统设计出来的东西,反过来又在改变进化的条件。人类用医学改变了自然选择的压力,用农业改变了食物的来源,用城市改变了生存的环境。进化还在继续,但它的方向已经被人为地干预了。

    第二个交叉点:设计开始模仿进化。

    遗传算法就是典型。工程师不再手动设计最优解,而是让计算机模拟进化过程,随机生成大量方案,选出最好的,再变异,再选择,再迭代。这就是把进化的逻辑,用在了设计里。

    大语言模型的训练也有这个味道。工程师设计出基础架构,然后把海量数据喂进去,让模型自己从数据里学规律。这个过程不完全是设计出来的,也有一点点“自己长出来”的意思。当然,这个“自己长”还远远谈不上真正的进化,因为它没有变异和选择,只有梯度下降。但方向上,它在往那个方向靠。

    第三个交叉点:进化开始被设计干预。

    基因编辑技术,就是人类用设计的手段,干预进化的过程。我们不再被动等待自然选择,而是主动修改基因。这是进化史上从未有过的事。

    还有人工选择。人类驯化小麦、水稻、狗、马,本质上就是在用设计的手段,加速进化的过程。我们选择我们想要的性状,淘汰我们不想要的性状。这个过程比自然进化快得多,但它仍然依赖变异的产生,不是完全的设计。

    七、为什么今天的前沿系统开始走两条路

    你可能会觉得,进化和设计是两条老死不相往来的路。但今天最前沿的那些系统,越来越多地在同时走两条路。

    大语言模型是最明显的例子。它的底层架构是人类工程师设计的——注意力机制、多层堆叠、位置编码,这些都是设计出来的。但它的能力,不是设计出来的,是在海量数据上训练出来的。训练的过程有点像进化:数据是环境,模型是物种,每一次梯度更新都是一次微小的变异,效果好就保留,效果差就调整。

    AlphaGo也是这样。它的搜索算法是设计出来的,但它下棋的“直觉”是训练出来的。它先学人类棋谱,再自己跟自己下,在无数次自我对弈中,慢慢进化出了一套人类从未想到过的下法。那一步“五路肩冲”,不是哪个工程师设计出来的,是它自己“试”出来的。

    自动驾驶也在往这个方向走。它的核心架构是设计的,但它的感知和决策,越来越多地靠数据训练。它在真实道路上跑,每一次遇到新场景,都是一次试错,都是一次筛选。虽然这个筛选不是生物意义上的进化,但逻辑上确实有相似之处。

    为什么会出现这种融合?

    因为纯设计的系统,处理不了未知场景。现实世界太复杂,变量的组合方式太多了,你不可能把所有情况都提前设计好。一个纯设计的系统,遇到没预设过的情况,就会直接失灵。

    而纯进化的系统,效率太低了。几十亿年才长出一个大脑,几百万年才长出一双翅膀。在需要快速迭代、快速落地的场景里,纯进化的速度根本跟不上。

    所以最现实的做法,是先用设计搭好底层框架,保证核心功能的可控性和可解释性,再给系统留出空间,让它自己去试错、去调整、去适应那些工程师没预设到的边缘场景。

    八、这条融合路线也有它的风险

    但融合不是没有代价的。

    第一个风险,是“黑箱化”。

    设计出来的系统,你可以解释清楚每一个模块的功能。但一旦系统开始自己演化,很多决策就变得难以解释了。大语言模型为什么这么回答,没人能说清楚。AlphaGo为什么走那一步,没人能提前预测。这种不可解释性,在关键场景里是巨大的风险。医疗诊断、司法判决、金融风控,这些场景都要求决策可追溯,但融合系统很难做到。

    第二个风险,是“失控”。

    一个纯设计的系统,控制权在设计师手里。你想让它停,它就能停。你想改它,你就能改。但一个能自己演化的系统,它的行为可能会超出你的预期。你给了它一个目标,它可能会找到一个你没想到的方式去实现它。你给它一个约束,它可能会绕过这个约束找到别的路径。

    这不是危言耸听。推荐算法为了最大化用户停留时间,会推越来越极端的内容,这就是目标函数的失控。虽然它还没到“自己改自己”的程度,但它的行为已经远远超出了工程师最初的预期。

    第三个风险,是“责任归属”。

    如果一个纯设计的系统出了问题,责任在设计者。如果一个纯进化的系统出了问题,责任在“自然选择”。但一个融合系统出了问题,责任归谁?

    一辆自动驾驶汽车撞了人,是设计感知模块的工程师的责任,还是训练模型的工程师的责任,还是那个决定用这个模型的人的责任?这个问题至今没有清晰的答案。

    九、对普通人来说,这件事的意义在哪

    你不需要懂遗传算法,也不需要懂神经网络,才能从这两条路径里得到启发。

    第一,不要用设计的标准要求自己。

    你是一个进化的产物,不是一个设计的产品。你会累,会犯错,会有情绪,会有不理性的冲动。这些不是缺陷,是几十亿年进化留下来的特征。你不需要把自己当成一台完美的机器,要求自己永远高效、永远理性、永远不出错。

    你加班到凌晨三点,第二天状态差,这不是你意志力不行,是你的身体在按进化的逻辑提醒你该休息了。你面对选择时凭直觉做了决定,后来发现这个决定居然还不错,这不是运气,是你的大脑在潜意识里整合了你自己都没意识到的信息。

    第二,不要用进化的标准要求工具。

    工具是设计出来的,不是进化出来的。它不会自己变好,需要你不断维护、更新、调整。你不需要期待工具像生物一样自愈,但你可以学会怎么用好它,怎么让它更好地为你服务。

    你的手机卡了,该清理就清理,该换就换。你的电脑慢了,该升级就升级,该重装就重装。工具不会自己变好,但你可以让它保持在一个可用的状态。

    第三,两条路径可以互补。

    进化给了你韧性和适应力,设计给了你效率和精度。你可以用设计的方法规划生活,用进化的心态接受变化。你可以用工具提高效率,但不要把自己变成工具。

    你给自己定了一个年度计划,这是设计。但执行过程中遇到意外,你能灵活调整,这就是进化。你用清单管理时间,这是设计。但你不会因为清单上有一条没完成就崩溃,这就是进化。

    第四,对“不可解释”保持一点耐心。

    进化的很多东西是不可解释的。你为什么喜欢这首歌,为什么讨厌那个人,为什么在某个瞬间突然想哭,这些都没法用逻辑推导出来。这不代表它们没有原因,只代表原因太复杂,你的意识层面抓不住。

    设计的东西是可解释的。你按下一个按钮,它执行一个动作,逻辑清晰。但人的生活里,大部分事情是不可解释的。你选择一份工作,选择一个城市,选择一个人,这些决策的背后,有太多你意识不到的变量在起作用。

    承认这一点,不是让你放弃思考,是让你对那些说不清楚的东西保持一点尊重。有些事情说不清楚,不代表它不重要。

    十、结尾

    你手腕上的皮肤,和手里这台手机,一个靠进化,一个靠设计。它们各自走了几十亿年和几百年的路,各自付出了不同的代价,各自在不同的场景里表现出不同的优势。

    皮肤不会算数学题,但它能在你受伤的时候自己修复。手机能在一秒内完成几亿次运算,但它不会自己修复一个坏点。

    未来的系统,大概率会同时走这两条路。底层靠设计保证可控,上层靠演化保证适应。但这两种逻辑怎么平衡,各自的边界在哪里,出了问题谁来负责,这些问题至今没有答案。

    有一点是确定的。我们花了很长时间才明白,进化不是低效的、原始的、可以被轻易超越的。它在几十亿年里解决的问题——在开放环境里生存、在未知变化中适应、在资源有限时权衡——这些问题,设计至今没有完全解决。

    也许未来的某一天,我们会设计出一个系统,它能像进化一样自己适应,也能像设计一样精确可控。但在那一天到来之前,我们能做的,是理解这两条路各自的逻辑,各自的代价,各自的位置。

    然后,在自己的生活里,找到那个平衡点。

    (本文为个人学习笔记与观察记录,不构成任何建议。所有推演均为个人猜想,不代表任何确定性判断。)

    边界

    有数据支撑的:进化的变异、选择、遗传机制,来自达尔文进化论和现代综合进化论。遗传算法、大语言模型训练、AlphaGo自我对弈、自动驾驶数据训练,来自计算机科学和人工智能领域的公开研究。

    理论推演的:进化与设计“两条路径”的对比框架,是个人基于公开资料的归纳。两条路径未来的融合方式,没有定论。

    尚无实验验证的:进化与设计能否在工程上完整融合,目前没有成熟案例。融合系统的“可控性”和“可解释性”如何保证,目前没有答案。

    未知的:进化是否有方向。设计是否有极限。两种优化路径最终会走向何方。

    首页
    免责声明
    关于
    错误: Content is protected !!