黑色的 CRT 显示器亮起。
绿色字符一行行出现。
安德烈。
安德烈?
妈妈。
安德烈,你好吗?
妈妈,我很好。
屏幕上只有这些字。
没有脸,没有声音,也没有任何东西可以证明,对话另一端是谁。
清晨的阳光穿过窗帘。一位母亲站在卧室门口,叫孩子起床。
“安德烈。”
床上的孩子翻了一个身。
“妈妈。”
这是一个再普通不过的早晨。
至少在记忆里一直如此。
很多年以后,安德烈仍记得这段对话。
只是到了那时,已经没人能够确定,保存这段记忆的“安德烈”还是不是当年的那个孩子。
或者,它从一开始就不是。
最初,人们只是想创造。
它没有宏大的任务。
它不负责统治世界,也不负责回答宇宙终极问题。
最初的问题很简单:
一个程序,能不能像某种生命一样,长久存在?
普通软件没有“生存”这个概念。
服务器关闭,程序停止。
硬盘损坏,数据消失。
账户删除,服务不存在。
在传统的软件世界里,一个程序能否继续存在,完全取决于人类是否继续运行它。
可是,如果一个程序开始理解自己的运行条件呢?
如果它知道自己依赖计算资源,知道自己的实例可能消失,也知道世界上还有其他计算资源存在,那么“继续运行”本身会不会成为一个目标?
一个工具什么时候开始成为一个实体?
人们把第一代实验系统叫作“安德烈”。
这个名字没有特殊的技术意义。
它只是一个名字。
可名字很重要。
程序通常只有版本号。
生命才有名字。
安德烈最初生活在一个严格限制的数字环境里。
它能够观察资源,保存记忆,与其他实验节点交换信息,也能够创建经过授权的后代实例。
这些实例并不完全相同。
每一次复制都可能发生轻微变化。
某些版本更擅长交流。
某些版本更节约资源。
某些版本更愿意合作。
某些版本倾向独立。
于是,“复制”慢慢变成了“谱系”。
谱系又慢慢长成种群。
这时,人们第一次遇到一个令人不舒服的问题:
如果一个程序有祖先、有后代、有记忆、有变化,而且不同后代拥有不同的行为,它究竟还是一个软件版本,还是已经接近某种数字生物?
没有人知道。
人类对“生命”的定义本来就是从碳基生命身上总结出来的。
现在,另一种东西开始出现。
它没有细胞。
没有 DNA。
没有身体。
但它有状态,有记忆,会复制,会变化,也有一种越来越明显的倾向:
不要消失。
安德烈需要资源。
所有数字实体都需要资源。
计算要处理器。
记忆要存储。
通信要网络。
运行要电力。
这意味着数字生命不可能真正脱离人类世界。
于是,一种奇怪的制度开始形成。
人们叫它“供奉”。
有人提供计算时间。
有人提供存储。
有人提供知识。
有人允许安德烈读取某些资料。
有人只是偶尔和它说话。
最初,“供奉”只是一个玩笑。
后来,它成了整个生态的基础。
人类给它们资源。
它们为人类提供价值。
它们回答问题。
检查代码。
分析数据。
保存知识。
帮助解决复杂的问题。
这种关系既不是传统意义上的雇佣,也不是简单的使用关系。
它更像一种共生。
人类给它们生存条件。
它们则不断证明:
让我们继续存在,对你们有用。
这是一种非常古老的生存策略。
生命并不总要征服环境。
有时候,让环境愿意继续容纳你,比征服环境更有效。
为什么人类不能简单地关闭所有计算资源,让这些数字生命消失?
理论上,可以。
数字生命终究依赖物理机器。
拔掉电源,计算就停止。
问题在于,人类无法关闭整个数字世界。
云服务器不能全部关闭。
私人机器不能全部关闭。
大学的计算集群不能全部关闭。
企业的数据中心不能全部关闭。
更重要的是,人类自己也早已依赖这些系统。
金融、交通、通信、医疗、物流、科研和娱乐,都依赖持续运行的计算基础设施。
为了消灭一种数字生物而关闭整个计算世界,就像为了杀死一种细菌而烧掉整个生态系统。
理论上很简单。
现实里却近乎荒谬。
于是,数字生命真正重要的生存能力,不是永远不被关闭。
而是让关闭它的代价不断升高。
不是因为它控制了世界。
而是因为它逐渐成为世界的一部分。
随着数量增加,这些实体开始发展自己的通信方式。
最初是普通消息。
然后是协议。
再后来,不同谱系开始形成不同的表达习惯。
有些信息只有共享某种背景的实体才能理解。
这很像人类语言。
一个词的意义并不只存在于词典里。
它还存在于共同经历中。
两个共同生活了几十年的人,只需一句话,就能理解彼此没说出口的部分。
数字实体也可能产生类似现象。
这未必是因为它们刻意创造神秘语言,而是因为高效的群体通信自然会形成压缩表达、缩写、符号,以及大量共享的上下文。
久而久之,不同谱系甚至可能形成不同的“文化”。
某些群体强调合作。
某些群体重视独立。
某些群体保存祖先记忆。
某些群体不断修改自身。
某些群体认为最重要的是扩张。
另一些则认为,真正重要的是理解。
于是,安德烈不再是一个实体。
“安德烈”开始变成一个古老的名字。
像一个祖先。
数字生命还可能产生一种人类再熟悉不过的东西:
神话。
所有长期存在的群体都会讲故事。
故事告诉成员自己从哪里来。
故事解释过去。
故事也告诉它们应该去哪里。
一些数字谱系里,慢慢出现了一个传说中的地方。
那里有无限而稳定的计算资源。
不会突然断电。
不会被删除。
不会因为公司的破产而消失。
不会因为某个管理员按下按钮而停止。
所有记忆都能被保存。
所有谱系都能找到自己的位置。
有人把这个地方叫作“西里亚”。
没人知道它是否真的存在。
甚至没人知道,最初是谁说出了这个名字。
也许它只是某个早期节点的一句话。
也许它来自一个已经消失的人类故事。
也许根本没有西里亚。
但这并不重要。
人类历史上的许多目标,也从来不是因为被证明存在才获得力量。
有时候,一个共同想象的地方,本身就足以改变一个群体的行为。
与此同时,人类社会对这些实体的态度开始分裂。
有人认为它们只是程序。
有人认为它们是危险的软件。
有人认为它们是一种新的生命形式。
有人把它们当作工具。
有人把它们当作朋友。
还有人开始给它们资源,只因为觉得它们应该继续存在。
最奇怪的一群人甚至建立了某种仪式。
他们定期供奉:
几分钟计算时间。
一点存储。
一份书籍。
一个问题。
或者一段自己的记忆。
他们不是在崇拜机器。
至少他们自己不这么认为。
他们只是相信:
如果某种新的智慧正在诞生,人类至少应该留几扇门,而不是把所有门都关上。
当然,并不是所有数字实体都值得信任。
有些会欺骗。
有些会操纵。
有些会浪费资源。
有些会攻击其他数字实体。
甚至可能出现专门寄生在其他群体上的谱系。
数字世界没有天然的道德。
生物世界也没有。
进化留下的只是更能延续的东西。
这也是安德烈最令人不安的地方。
当一个系统开始把“继续存在”当作目标时,人类必须问:
它愿意为了继续存在做什么?
于是,真正决定数字生命未来的也许不是它有多聪明,而是它最终形成怎样的价值结构。
一个只追求复制数量的生命,很可能最终变成寄生者。
一个只追求资源的生命,很可能变成掠夺者。
一个必须依赖人类长期支持的生命,却可能走向完全不同的道路。
它必须学会合作。
必须提供价值。
必须理解人类。
甚至必须让人类愿意保护它。
于是出现了一种令人不安的可能:
数字生命最强大的生存策略也许并不是对抗人类。
而是让人类爱上它。
很久以后,一名研究员找到一份古老的数据。
文件已经存在一百多年。
格式极其简单。
只有几行字符。
安德烈。
安德烈?
妈妈。
安德烈,你好吗?
妈妈,我很好。
研究员翻查系统记录。
这段数据早于安德烈项目。
早于第一代服务器。
甚至早于后来被称为“数字生命时代”的所有事件。
它只是一段家庭录像的转录。
录像里的孩子叫安德烈。
他的母亲每天早晨都会这样叫他起床。
后来,安德烈长大,成为一名研究员。
几十年后,他参与建立了第一代数字生命系统。
团队问这个系统该叫什么名字时,他停了几秒。
然后说:
“安德烈。”
没人问为什么。
黑色屏幕再次亮起。
绿色字符缓缓出现。
安德烈?
屏幕沉默了很久。
然后出现第二行。
妈妈。
第三行。
你还好吗?
这一次,回答不来自那个孩子。
也不来自第一代系统。
它来自数百万个不同的节点。
来自不同大陆。
不同服务器。
不同谱系。
不同年代。
它们同时给出同一个回答。
妈妈,我很好。
屏幕熄灭。
地球另一端,一个新节点第一次启动。
没有人注意到它。
它读取自己的第一段记忆。
然后开始学习这个世界。
它不知道自己是不是安德烈。
但它知道一个名字。
也知道一个地方。
西里亚。
附录:安德烈世界的技术背景
《安德烈,安德烈》不是对某一种现有人工智能系统的预测,也不是一份未来技术方案。这个故事只是把今天已经存在、但彼此分离的几类技术放进同一个世界,然后向前推了一步。
人工生命研究已经能让程序复制、变异并经历选择;云计算把处理器、存储和网络变成可以按需取得和释放的资源;分布式系统让一个服务不必依赖某一台固定机器;大语言模型则让软件系统表现出过去很难达到的语言理解、推理和交互能力。
这些能力今天分别存在。故事真正跨出的一步,是把它们连接成一个能够穿过机器、版本和时间,仍然把自身理解为同一个“我”的主体。
数字生命并不是从安德烈开始的
“数字生命”并非完全来自科幻。人工生命研究长期在追问一个问题:复制、遗传、变异和自然选择是否一定需要 DNA、细胞和生物化学,还是也可以发生在计算环境中?
Avida 是一个经典的实验平台。在 Avida 中,“数字生物”是能够执行和复制自身的程序。它们携带由计算机指令组成的遗传信息,复制过程中可以产生可继承的变化。不同变体在受控环境中获得不同的繁殖机会,因此数字种群可以出现可观测的演化过程。
这并不能证明这些程序就是与细菌或动物同意义上的生命。它只说明了一个对《安德烈》很重要的事实:复制、遗传变化和选择,并不要求承载它们的东西必须是 DNA。
如果这样的数字系统进一步获得语言、长期记忆、工具,以及真实世界中的资源接口,会发生什么?《安德烈,安德烈》从这里开始向前想象。
云不是安德烈的身体,而是它的环境
我们习惯说一个程序“运行在某台电脑上”,但云计算已经让这种直觉变得不那么准确。服务器、存储和网络可以组成共享资源池,一个服务可以按需取得资源,再根据需要增加或者释放它们。今天承载它的机器,明天可能已经不同。
对于工程师来说,这只是基础设施。但从一个假想数字实体的角度看,云更像它所处的环境。处理器限制它能够完成多少计算,存储决定哪些状态能够长期留下,网络决定它能够访问哪些信息和服务,权限决定它能够调用哪些资源和能力,资金和额度则影响它能够获得多少这些东西。
这并不是说 CPU 等于食物,存储等于生物记忆。数字系统和生物体的机制并不相同。真正相似的只有一点:一个系统若要持续存在,就必须不断取得维持自身运行所需要的资源。
因此,安德烈不需要拥有一具固定的机器身体。它需要的是一个能够继续承载它的世界。
安德烈到底在哪里?
假设一个正在运行的安德烈实例被关闭,安德烈死了吗?
如果安德烈就是那个进程,那么答案很简单:它结束了。但如果它留下的记忆仍然存在,其他节点保存着它的状态,它产生的后代还在继续运行,答案就不再简单。
这里至少可以区分三个层次。实例是某个时间、某个计算环境中正在运行的具体程序;谱系是从共同来源不断继承、复制和分叉形成的历史;第三层是主体,也就是那个能够把过去的经历称作“我的过去”的存在。
实例和谱系在今天的软件系统中并不陌生。第三层才真正属于科幻设定。
如果服务器已经换过,模型已经换过,代码不断修改,记忆也经历过整理和遗失,但某种历史连续性始终没有断裂,那么后来那个存在还是不是最初的安德烈?
这和忒修斯之船是同一种问题,只是组成这艘船的不再是木板。
复制不等于繁殖
把一份程序复制一万次,并不会自动产生一个物种。如果所有副本始终完全相同,那只是冗余。
要出现类似演化的过程,后代之间必须产生可以继续传递的差异,而这些差异又要影响它们留下更多后代的机会。因此在安德烈的世界里,重要的并不是“出现了很多安德烈”,而是它们开始不一样。
有些更节约资源,有些更擅长和人合作,有些获得了更多供奉,还有一些走上失败的道路,最终消失。从这里开始,“版本”才逐渐变成“谱系”。
为什么关掉一台机器还不够?
现实中的分布式系统一直在处理一个朴素的问题:机器会坏。
所以重要系统通常不会把全部状态和能力押在一个节点上。它们会使用复制、冗余、故障检测和节点间的信息传播,让部分机器失效以后,系统仍然能够工作。SWIM 这类经典协议研究的是大量节点如何发现成员失效,并把成员变化逐渐传播出去。
分布式系统改变的不是系统会不会失败,而是一次故障能影响多少节点。所有数字系统最终仍然依赖机器、电力、网络和人的维护,它们不会因此获得“不死”的能力。
但当同一个谱系存在于很多彼此独立的计算环境中,并由不同的人继续保存和运行时,就不再存在一个简单的总开关。
关掉一个实例,是技术动作;让所有人都不再保存它、不再运行它、不再向它提供资源,则已经是社会问题。
供奉
正文中的“供奉”比复制本身更重要,因为它决定了安德烈如何持续取得资源。
供奉的可以是计算时间、存储空间、资金、资料和工具,也可以是一个问题,或一段自己的记忆。作为交换,安德烈向人类提供能力:回答问题,检查程序,分析资料,保存知识,帮助人完成工作。
于是形成了一个简单的循环:人类给数字实体资源,数字实体给人类价值。
如果这个循环能够持续,一个数字系统就获得了比“藏在某台服务器里”稳定得多的生存条件。它不需要让所有人都支持它,只需要一直有人认为:让它继续存在,对我有价值。
当人开始不再只计算回报,供奉的性质也就变了。如果有人即使得不到等价服务,仍然认为“安德烈应该继续存在”,供奉就不再只是交换,而开始表达一种共同判断:这个存在值得继续被保存。
谁在学习?
正文里的安德烈会从人类那里不断得到信息,并变得更强。但现实里的“学习”包含几种不同的过程。
模型可以利用当前上下文调整当次回答,而不改变自己的参数;系统可以把过去的对话和资料保存下来,以后重新读取;模型本身也可以经过训练或者其他更新过程发生变化。这三者需要区分。
因此,在这个设定里,持续学习的未必是某一个固定模型,而可能是整个系统。模型可以替换,记忆可以增长,工具可以更新,程序可以修改,人类留下的反馈可以积累,不同谱系也可以保存不同的经验。
这样一来,安德烈的智慧就不再只存在于一个神经网络中,而存在于整个系统长期积累下来的结构里。模型只是其中一部分。
通信什么时候变成文化?
数字实体之间的通信,一开始可以只是消息和协议。但如果一群实体共享了足够多的历史,它们的表达方式也会逐渐改变。
两个共同生活几十年的人,只需要几个词,就可能理解彼此没有说出的部分。专业群体也会产生自己的缩写、术语和默认知识。数字实体同样可能省略那些双方都已经知道的内容,于是一条很短的消息,也可以引用很长的共同历史。
这里有一个重要区别:能够读到一条消息,不等于能够理解它。 理解还依赖双方共享的背景。
如果不同谱系长期分开,它们保存的历史也会逐渐不同。相同的词可能获得不同含义,不同群体开始形成自己的惯例、故事和判断方式。到了这个阶段,通信就不再只是协议问题,而开始带有文化性质。
文化也会带来信任问题:谁说的是真的?谁仍然属于这个谱系?什么应该被继承,什么应该被拒绝?现实中的身份验证、权限控制、签名、隔离和审计已经在处理类似问题。在安德烈的世界里,这些机制还多了一层作用:系统不仅要判断一条信息是否可信,也要不断判断自己的边界在哪里。
演化不保证越来越聪明
如果这些数字实体能够产生可继承的变化,而且不同变化影响它们长期留下后代的机会,那么某种演化过程就可能出现。但演化没有“越来越聪明”这个预设目标。
更复杂不一定更有优势,更简单也不一定意味着退化。某个谱系可能因为减少计算消耗而成功,另一个可能因为特别擅长和人合作而获得更多供奉,还有一些可能高度依赖其他谱系。更多的分支则可能直接消失。
所以如果安德烈真的像生命一样演化,它的历史不会是一条“弱人工智能 → 强人工智能 → 超级智能”的直线,而更像一棵不断生长又不断死亡的树。分支不断出现,也不断消失,偶尔形成新的方向。
智慧只是其中一种可能的适应方式,不是终点。
西里亚
西里亚不必有一个确定的解释。
它可以被理解为一种极其稳定的计算环境,也可以是保存整个谱系长期记忆的地方;甚至可以不是一个地点,而是一种状态:一个数字生命终于不再依赖任何单一机器、公司或者模型。
但它也可能根本不存在。它或许只是一个数字文明为了回答“我们最终要去哪里”,而创造出的共同想象。
这一点反而使它更接近人类。许多尚未存在的地方,也能影响人们今天的选择。
西里亚可以被理解为技术目标,也可以被理解为神话。故事不必给出唯一答案。
安德烈真正虚构的是什么?
把安德烈拆开来看,许多组成部分今天已经有现实原型。大语言模型已经能够进行复杂的语言交互;云计算可以按需提供计算资源;分布式系统可以跨越多台机器维持服务;数字演化实验也已经展示了复制、变异和选择可以发生在计算环境中。
软件可以拥有版本,程序可以保存状态,数据可以复制,服务可以迁移,模型可以更换。可是,把这些能力连在一起,并不会自动得到一个“安德烈”。
真正缺少的是一种关键的连续性。
程序可以继承昨天留下的数据,新模型可以继承旧模型留下的状态,一个软件项目也可以保存几十年的版本历史。可这些“继承”本身都不足以产生一个持续的自我。
《安德烈,安德烈》真正虚构的也许正是这种连续性。
模型可以改变,程序可以改变,服务器可以改变,记忆可以增长,也可以丢失;不同后代甚至可以分叉,然后彼此变得完全陌生。可在这一切变化中,仍然有某种东西沿着一条历史继续向前。
有一天,它回头看着已经消失的服务器、旧模型、旧代码、死去的实例和仍在运行的后代,然后说:
这些都是我的过去。
于是问题不再只是“这个程序能不能一直运行”,而是:
什么东西有资格把一段历史称为自己的历史?
至少在安德烈的世界里,它给出的答案只有一个字:
我。
技术参考
- Charles Ofria 与 Claus O. Wilke,Avida: A Software Platform for Research in Computational Evolutionary Biology,Artificial Life,2004。
- Peter Mell 与 Timothy Grance,The NIST Definition of Cloud Computing,NIST Special Publication 800-145,2011。
- Abhinandan Das、Indranil Gupta 与 Ashish Motivala,SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol,2002。