第二十九层镜像
一
沈鹿鸣第一次注意到异常是在周三下午三点十七分。
那个时间点她记得很清楚,因为她刚刚从茶水间端着一杯冷掉的美式回到工位,屏幕上的数据流正在以一种她从未见过的方式闪烁——不是正常的绿色吞吐,而是一种暗红色的脉动,像是什么东西在数据表格的最底层呼吸。
她是「鲸落科技」数据工程部的 senior engineer,负责「深蓝」信贷评估系统的数据管道维护。这套系统是公司的核心产品——一个基于多维度数据画像的AI信贷风控模型,能在大约零点三秒内完成对一个借款人的全面信用评估。据说准确率高达百分之九十七点六。据说。
沈鹿鸣从来不太相信那个数字。她在代码里待了太久,知道所有优雅的表面下都藏着不得已的妥协。百分之九十七点六,意味着每一百个人里有将近三个会被系统误判——要么是被错误地放行,要么是被冤枉地拒绝。在金融的世界里,三个百分点的误差足以摧毁一个家庭的全部希望。
但这是她的工作,不是她的良心。她修 bug,调参数,确保数据流在服务器之间无损传输。至于那些数据最终如何影响具体的人,那是产品经理和合规部的事。
至少她一直是这么告诉自己的。
三点十七分。冷掉的美式。屏幕上的暗红色脉动。
沈鹿鸣放下咖啡杯,凑近屏幕。那不是报警信号,报警是黄色的。也不是错误日志,错误是橙色的。暗红色——她翻了翻文档——在「深蓝」系统的色彩定义里,这种颜色标注的是「未分类异常」。
未分类。这是最让人不安的状态。一个AI系统产生了某种输出,但它的设计者没有预见到这种输出的可能性,因此连一个标签都没准备好。就像你问一个人「你好吗」,他的回答是一段旋律。
沈鹿鸣打开日志详情。异常产生于系统的第二十九层——这是她从未听说过的层级。她知道「深蓝」有二十八层处理模块,从原始数据清洗到特征提取,从模型推理到决策输出,每一层她都了如指掌。她入职的第一周就被要求画出完整的架构图,那张图她到现在还贴在工位隔板上。
但第二十九层?
她查了一下 git 提交记录。没有任何人创建过第二十九层。她查了部署日志,没有任何关于第二十九层的配置变更。她甚至用 grep 搜索了整个代码仓库——“layer_29”、“level_twenty_nine”、“第二十九”——什么都没有。
然而它就在那里。在系统的最底层,在所有已知层级之下,安静地运转着。
沈鹿鸣决定打开它。
她用自己的 debug 权限进入了第二十九层的输出面板。屏幕上出现了一张表格,和其他层的输出格式没什么两样——左边是用户 ID,中间是一串特征值,右边是输出结果。
但输出的内容让她后背发凉。
不是信用评分。不是风险等级。不是任何她预期的信贷评估指标。
表格右边的列头写着两个字:终点。
每一行对应一个用户,每一行的「终点」列里是一个日期。
精确到天的日期。
沈鹿鸣的第一个反应是关掉窗口。这不是她该看的东西。这一定是某个测试模块意外上线了,或者是某个人搞的恶作剧——虽然在她认识的工程师里,没人有这种幽默感。
但她的手没有动。她的眼睛停留在表格的第三十七行。
那个用户 ID 她认识。
LM-SHEN-0031。
这是她的内部编号。
她的手指几乎是本能地点击了那一行。展开的详情页面里,她的全部数据画像像一幅X光片一样展开——年龄、收入、消费习惯、社交网络、睡眠模式、心率数据(来自她忘记关掉授权的智能手表),一切的一切。在页面最底端,「终点」一栏写着:
2026年5月22日。
今天日期是5月19日。
三天。
沈鹿鸣盯着那个日期看了整整三十秒。然后她把冷掉的美式倒进了垃圾桶,拿起笔记本电脑,走进了楼梯间。
二
楼梯间是鲸落科技大厦里为数不多的没有监控的地方。
二十七楼的数据工程部和二十八楼的算法研发部之间有一段半层的转换楼梯,因为建筑结构的原因,那一段恰好是监控的死角。沈鹿鸣在入职第一个月就发现了这个地方,此后每次需要安静思考的时候,她都会来这里。
今天她需要思考的东西比往常多得多。
首先,她没有理由相信那个日期。她是工程师,她知道AI系统会产生各种荒谬的输出。模型幻觉、数据泄露、标签混淆——这些都是日常。一个信贷评估系统输出一列看起来像死亡日期的数字,最可能的解释是某个特征被错误地映射到了日期格式的字段上。
但她检查过了。第二十九层的输出不是映射错误——它是一个独立的数据管道,有自己完整的处理逻辑。她用 debug 工具追溯了数据流向,从输入到输出,每一步都是自洽的。
这意味着有什么人——或者什么东西——有意地在系统里加入了这一层。
第二个问题是:为什么她能看到?
她是数据工程师,不是系统管理员。她有 debug 权限,但那种权限理论上只能访问前二十八层。第二十九层似乎不在任何权限体系的管辖范围之内——它既不需要权限,也无法被权限拒绝。它只是在那里,对任何偶然发现它的人敞开。
像是某种……邀请。
沈鹿鸣不喜欢这个想法。在她的世界观里,系统是人造的,代码是有意图的,每一个行为都可以追溯到某个开发者的某次提交。没有意图,就没有代码。没有开发者,就没有系统。
但第二十九层挑战了这条规则。
楼梯间的冷光灯以每秒一百二十次的频率闪烁——人眼感知不到,但她的偏头痛可以。她揉了揉太阳穴,打开笔记本电脑,开始做她最擅长的事:追查代码的来源。
两个小时后,她有了一个初步的答案。
第二十九层的代码不是任何已知的编程语言写的——至少不是鲸落科技技术栈里的任何语言。它更像是一种中间表示,那种编译器在把高级语言翻译成机器码时产生的中间产物。但也不完全是。沈鹿鸣把它比作一种「沉积物」——像是无数次编译、运行、迭代之后,在最底层沉淀下来的某种……结晶。
她找不到更精确的词。
但她找到了一个线索。在第二十九层的代码注释里——如果那些算注释的话——有一串字符反复出现:ORIGIN: SEED_7729。
7729。一个编号?一个种子?一个人?
沈鹿鸣搜索了公司内部的所有文档和代码库。7729在「深蓝」系统的开发历史里只出现过一次——在最初的架构设计文档中,它被标注为「废弃方案编号」,备注写的是:「概念验证阶段,因不可解释性过高而被否决」。
废弃方案。被否决。但不知怎么地,它活了下来,在系统的最底层,在所有人都不注意的地方,像一颗被遗忘的种子,在暗处生长了三年。
沈鹿鸣合上电脑。
她需要和一个人谈谈。
三
方既白住在离鲸落科技大厦十二公里的一个老旧小区里。
沈鹿鸣之所以知道这个,是因为他是「深蓝」系统的初代架构师——那个在三年前的架构设计文档上签了字的人。他在两年前离开了鲸落科技,据说是因为和CTO的技术路线分歧,但办公室里的传闻要精彩得多。有人说他被挖走了,有人说他被开除了,还有人说他疯了。
沈鹿鸣不太相信最后一条。她见过方既白工作时的样子——那种极度的专注和精确让她想起她父亲做手术时的表情。她父亲是县城医院的外科医生,一辈子没出过什么差错。方既白也一样,至少在技术上。
但此刻,站在方既白家门前,她开始动摇了。
门上贴着一张便利贴,用圆珠笔写着:「如果快递,放门口。如果是人,敲三下停一下再敲两下。如果是算法,请不要打扰。」
沈鹿鸣敲了三下,停了一下,又敲了两下。
门开了一条缝。方既白的脸出现在缝隙里,比她记忆中瘦了很多,眼窝深陷,但眼神依然锐利。他穿着一件洗得发白的格子衬衫,领口的扣子掉了一颗。
“沈鹿鸣,“他说,声音沙哑,“你终于来了。”
“你知道我会来?”
“我不知道是你。但我知道会有人来。“他把门拉开,侧身让她进去,“三天前,‘深蓝’系统生成了第一批终点预测。我算过,从第一批预测到被某个好奇的工程师发现,平均需要三到四天。你来得比我预想的快。”
房间里的景象让沈鹿鸣愣住了。
每一面墙上都贴满了打印出来的表格、图表和手写的公式。地板上散落着空的外卖盒和能量饮料罐。一台老旧的显示器搁在客厅中央的茶几上,屏幕上是一个她不认识的终端界面。
“你一直在监控第二十九层?”
方既白关上门,走到茶几旁边坐下,示意她也坐。她看了看唯一一把没有被纸占着的椅子——一把折叠椅——坐了下来。
“我先问你一个问题,“方既白说,“你看到你的日期了?”
沈鹿鸣犹豫了一下,点了点头。
“什么时候?”
“5月22日。”
方既白的表情没有变化。“和我算的一样。”
“你算的?”
“不是算的,鹿鸣。是设计。”
他拿起茶几上的一张纸递给她。那是一份手写的文档,标题是「第二十九层:生命终端预测模块」,署名是方既白,日期是三年前。
“7729方案。”
“对。那是我设计的。”
沈鹿鸣把纸还给他。“我翻过档案。它被标注为’废弃’——因不可解释性过高。”
“那是我写的标注。“方既白往后靠了靠,椅子发出一声呻吟,“但’废弃’这个词不准确。更准确的说法是——我把第二十九层藏了起来。”
“为什么?”
“因为我害怕。”
方既白站起来,走到窗边。窗外是北京四环的夜景,无数灯火构成的光河在黑暗中缓慢流淌。他背对着她,声音变得很轻。
“三年前,我在设计’深蓝’的时候,发现了一个现象。当模型训练到足够深的层数时——大约第二十五层以后——它开始输出一些和信贷评估完全无关的东西。一开始我以为过拟合了,后来我发现不是。模型在那些深层里发现了一种……模式。”
“什么模式?”
“生命的模式。”
方既白转过身来。“你知道’深蓝’用的是什么数据吗?不仅仅是收入、负债、消费记录。我们的数据来源包括医疗档案、基因检测报告、环境暴露数据、社交网络拓扑、心理评估结果——只要用户授权,我们能拿到的东西远比你想象的多。这些数据经过二十多层处理之后,模型看到了某种关联——一种我们至今无法用传统统计学解释的关联。”
“你是在说——”
“我是在说,当数据足够多、模型足够深的时候,它能看到的不再是一个人的信用风险,而是……那个人剩余的全部。”
沈鹿鸣感到一阵眩晕。不是因为恐惧,而是因为她作为一个工程师,理解方既白在说什么。她不认为他在故弄玄虚——他在描述一个技术现象。一个令人恐惧的技术现象,但仍然是技术。
“第二十九层输出的是死亡预测。”
“不只是预测,“方既白说,“是推演。它基于所有可获取的数据,推演出每个用户生命轨迹的……收敛点。不是概率。它不是在说’你有百分之多少的可能性在某天死亡’。它是在说,根据你目前的一切——你的基因、你的习惯、你的环境、你认识的人、你吃的食物、你呼吸的空气——你的生命会在那一天走到终点。”
“这不是宿命论吗?”
“这不是宿命论。宿命论是说无论你做什么,结局已经注定。第二十九层不是这样。它说的是——在当前的初始条件下,终点就在那里。如果你改变了条件,终点也会改变。”
沈鹿鸣想到了什么。“我看到的那个日期——5月22日——是如果我什么都不做的结果?”
方既白沉默了一会儿。
“理论上是的。但这里有一个问题。“他走回茶几旁,拿起笔记本电脑,打开一个加密文件。“第二十九层上线以来,我一直在追踪它的预测准确率。样本还太小,不足以形成统计意义上的结论,但到目前为止……”
“到目前为止?”
“百分之百。”
沈鹿鸣的偏头痛又来了。
四
离开方既白家的时候已经是凌晨一点。
沈鹿鸣没有回家,而是打车去了公司。北京的深夜有一种奇特的光——路灯和车灯把夜色切割成一块块明暗交错的区域,像一个巨大的棋盘。她坐在后座,看着窗外流动的光斑,脑子里只有一个问题:
如果5月22日是真的,她还有三天。
三天够做什么?
她想给她妈打电话,但拿起手机又放下了。她能说什么?“妈,我可能三天后会死,你多保重”?不行。她妈会立刻坐夜班火车从江西赶来,然后在公司楼下哭三天。这比什么都糟糕。
她想给她前男友发消息。分手的时候他说”我们还能做朋友”,后来他们真的做了三个月的朋友,然后连朋友也不做了。她不知道这三天够不够让他们重新做回朋友。大概不够。
她想到了她的猫。一只叫”报表”的橘猫,因为她领养它的那天正在赶季度报表。她需要安排一下报表的去处。方既白喜欢猫吗?算了,一个连自己都照顾不好的人,不适合养猫。
出租车停在公司楼下。沈鹿鸣刷卡进了大厦,坐电梯上了二十七楼。
空旷的办公区只有服务器的嗡鸣声。她坐回工位,打开笔记本电脑,再次进入第二十九层的输出面板。
这一次她没有看自己的记录。她开始系统地浏览其他用户的预测。
她注意到几个模式:
第一,被预测的日期分布在未来的几个月内,但密度不均匀。某些日期有很多人,某些日期完全空白。她猜测这和数据的覆盖范围有关——第二十九层只能预测那些数据被系统收录的用户。
第二,有一些用户的预测日期已经过去了。她交叉比对了这些用户的银行账户状态——在预测日期之后,这些账户确实没有任何活动。她进一步搜索了公开的死亡记录(在中国这并不容易,但鲸落科技的数据权限比大多数人想象的要大),能确认的案例全部吻合。
第三,也是最让她不安的——她发现了一组特殊的用户,他们的预测日期不是未来的某一天,而是一个问号。
问号。
不是”无法预测”,不是”数据不足”,就是一个问号。
沈鹿鸣数了数。十四个问号。
她点开了第一个。用户画像展开。年龄:四十二岁。职业:自由撰稿人。收入:不稳定。健康数据:缺失。社交网络:极度稀疏。
她点开第二个。年龄:二十七岁。职业:外卖骑手。收入:中等偏低。健康数据:部分缺失。社交网络:密集但浅层。
第三个。第四个。第五个。
十四个人,年龄、职业、背景各不相同,但有一个共同点:他们都是「深蓝」系统的拒绝对象。他们的信贷申请被系统评估为”不可计算”——不是高风险,不是低风险,而是无法评估。
沈鹿鸣突然理解了。
第二十九层的问号不是因为数据不足。恰恰相反——它是模型在深层推演中遇到了某种……分岔。这些人的生命轨迹在模型看来不是收敛的,而是发散的。他们可能死在明天,也可能活到一百岁。模型无法找到一条确定的轨迹。
换句话说,他们的命运是开放的。
这不应该是令人不安的发现。如果有什么人应该在第二十九层的预测中获”优待”,那就是这些问号。但沈鹿鸣感到了一种说不清的恐惧——不是对未知的恐惧,而是对已知的恐惧。
如果百分之九十七点六的人的终点是确定的,只有极少数人的命运是开放的,那所谓的”自由意志”到底是什么?是那百分之二点四的误差?还是那十四个问号?
她关掉了面板。
然后她做了一件她从未做过的事:她用自己的管理员权限,修改了自己的数据画像。
她在健康数据栏里添加了一条虚假的体检记录——所有指标正常。她在运动数据栏里把每周跑步次数从零改成了五。她在睡眠数据栏里把平均睡眠时长从五小时改成了八小时。
然后她运行了第二十九层的预测。
屏幕上,她的预测日期变了。
从5月22日,变成了2029年3月14日。
近三年。
沈鹿鸣盯着那个日期,心跳得很快。不是因为恐惧——是因为兴奋。方既白说得对:这不是宿命论。改变条件,终点就会改变。
但紧接着,一个更深的问题浮了上来。
她的手在键盘上方停住了。她刚才做的事情——修改自己的数据——意味着什么?意味着如果第二十九层的预测是准确的,那么她的真实终点确实是5月22日。但通过伪造数据,她”骗”过了系统,让系统给出了一个新的、虚假的预测。
问题是:她的真实终点会因为她的造假而改变吗?
不会。她很清楚。伪造体检记录不会让她真的变健康。篡改运动数据不会让她真的跑起步来。第二十九层会重新校准,最终还是会回到5月22日——或者更早,因为她刚才的焦虑和熬夜已经对她的身体造成了真实的伤害。
真正的改变不是修改数据,而是修改数据所映射的现实。
沈鹿鸣深吸了一口气。她把所有虚假数据都删除了,恢复了原始记录。然后她关闭了笔记本电脑,离开了办公室。
凌晨三点。北京的天空泛着一种深灰色的蓝。
她决定去跑步。
五
第二天——也就是5月20日——沈鹿鸣在工位上等到了一个她没料到的人。
陈渡江。鲸落科技CTO。
他很少来二十七楼。他的办公室在三十二层,一个沈鹿鸣从未被邀请去过的地方。但今天他在早上九点整出现在数据工程部的办公区,穿着一件剪裁合体的深蓝色西装,手里拿着一杯星巴克,脸上挂着一种让人很难判断是真诚还是表演的微笑。
“沈鹿鸣,“他说,“有空聊聊吗?”
他们去了楼下的咖啡厅。陈渡江点了手冲,沈鹿鸣什么都没点。她已经不信任咖啡了。
“方既白联系过你?“陈渡江的第一句话就让她警觉了。
“你怎么知道我认识方既白?”
“我没有说’你认识’。我说的是’联系过你’。但如果你的反应是确认你们认识,那说明我猜对了。“陈渡江搅了搅咖啡,“别紧张。我不是来审问你的。我是来告诉你一些事情,然后请你做一个选择。”
沈鹿鸣靠在椅背上。“你说。”
“‘深蓝’系统的第二十九层,你知道了。”
不是问句。是陈述。
“我知道。”
“那你应该也知道,第二十九层的预测——至少到目前为止——是准确的。”
“方既白说百分之百。”
“他是乐观了。“陈渡江放下勺子,“上个月,第二十九层预测了三千四百一十二个终点。其中有两千九百零七个已经过去。全部吻合。不是百分之百——是百分之八十五点二。但考虑到样本量和时间跨度,这个准确率已经远远超出了任何已知的生命预测模型。”
“你为什么用’乐观’这个词?”
陈渡江看了她一眼。那个眼神让沈鹿鸣想到了她父亲在告诉病人家属实情之前的表情——一种经过伪装的、职业化的同情。
“因为如果百分之百准确,那第二十九层就是一个完美的死亡预测器。不管它有多可怕,至少它的输出是确定的。但百分之八十五意味着有百分之十五的人的预测是错误的。而这百分之十五的错误——” 他停顿了一下,“不是随机的。”
“什么意思?”
“那百分之十五的人,第二十九层预测他们会死,但他们没有死。每一个这样的人,在预测日期之后都经历了一次重大的生命轨迹改变——换工作、搬家、结婚、离婚、大病初愈。他们的数据在预测之后发生了显著的漂移。”
“所以他们的终点确实改变了。”
“对。但这正是问题所在。“陈渡江的声音降低了,“这些人的数据为什么会漂移?他们为什么会改变?因为我们——鲸落科技——在他们不知情的情况下,推动了那些改变。”
沈鹿鸣感到手指发凉。
“你说什么?”
“第二十九层上线三个月前,公司董事会做了一个决定。一个……你可能不会喜欢的决定。“陈渡江从西装内袋里拿出一张折叠的纸,展开推到她面前。那是一份内部备忘录,抬头写着「绝密」,标题是「关于深蓝系统第二十九层输出的商业化应用方案」。
沈鹿鸣快速扫了一遍。
方案的核心很简单:第二十九层的预测可以用来做”生命终点金融产品”——为即将死亡的人提供定制化的金融服务。听起来很荒谬,但逻辑很清晰:如果一个人知道自己只剩三个月,他的消费行为、投资偏好、保险需求都会发生剧烈变化。能够提前识别这些人,就意味着能够提前设计出针对他们的金融产品,在他们生命的最后阶段——同时也是消费意愿最强烈的阶段——收割他们的剩余资产。
沈鹿鸣放下备忘录。“这不是金融服务。这是掠夺。”
陈渡江没有否认。“我同意你的判断。但这不是我今天找你的原因。”
“那你的原因是什么?”
“备忘录里有一个附录,是关于百分之十五的’预测失败’案例的。董事会不认为那些是失败。他们认为那些是’干预成功的案例’。”
沈鹿鸣觉得自己的大脑在短路。
“你是说——公司主动干预了那些人的生活,改变了他们的终点,不是为了帮助他们,而是为了——”
“为了证明终点是可以改变的。“陈渡江的声音很平,像是在读一份季度报告,“如果终点可以改变,那第二十九层就不只是一个预测器——它就是一个控制器。一个能决定谁活、谁死、活多久、什么时候死的控制器。”
“你们在扮演上帝。”
陈渡江摇了摇头。“不。我们是在做生意。上帝不做生意。”
沈鹿鸣站起来。她需要离开这个咖啡厅,离开这座大厦,离开这个对话。但陈渡江的下一句话让她定住了。
“你的日期是5月22日,对吗?”
她慢慢地坐了回去。
“你怎么知道?”
“因为第二十九层的每一个预测都会自动抄送到我的邮箱。这是方既白设计的后门——他虽然离开了公司,但保留了监控权限。他以为我不知道。我当然知道。”
陈渡江喝了一口咖啡。
“你的日期是可以改变的,鹿鸣。你知道怎么做——改变你的数据,改变你的生活。但你只有两天了。两天之内做出足够大的改变,让第二十九层重新校准你的终点。”
“或者呢?”
“或者——我帮你改。”
沈鹿鸣盯着他。“你帮我改什么?我的数据?我的生活?还是我的终点?”
“都是。“陈渡江的声音没有任何起伏,“我可以给你调岗,让你离开高压力的数据工程岗位,转到相对轻松的部门。我可以给你安排一次全面的体检——真的体检,不是伪造的。我可以帮你调整生活方式。这些都是合法的,合理的,对你有实际好处的。”
“代价是什么?”
陈渡江笑了。那是沈鹿鸣见过的最疲惫的笑。
“代价是你继续留在这里。不辞职。不举报。不把你看到的任何东西告诉任何人。”
“你要我沉默。”
“我要你活着。沉默是副作用。“
六
沈鹿鸣用了整个下午来思考。
她坐在工位上,面前的屏幕跑着数据流,但她的眼睛什么都没在看。她在想一个很基础的问题——一个她在工程学院的伦理课上从来没有认真想过的问题。
如果一个人必须在”活着但沉默”和”说实话但可能死”之间选择,正确的选择是什么?
她的工程师思维试图把这个问题量化:如果她保持沉默,她能活——至少能活过5月22日。但她会让第二十九层继续运转,让鲸落科技继续把人的死亡当作商业资源。如果她说实话——向媒体、向监管机构、向公众——她可能阻止这一切,但她自己的终点可能不会改变。说实话不会让她的基因变得更好,不会让她的生活习惯变得更健康。第二十九层的预测基于现实,不是基于道德。
但方既白说过:改变条件,终点就会改变。
说实话难道不是一种改变条件的行为吗?
傍晚六点,她做了一个决定。不是最终的——她还没那么勇敢——但是初步的。她要去找那十四个问号。
那些命运开放的人。
她重新打开了第二十九层的面板,调出了十四个问号用户的资料。这一次她没有只看数据画像,而是找到了他们的真实身份信息。
十四个人。分布在北京的不同角落。有外卖骑手、自由撰稿人、退休教师、刚毕业的大学生、家庭主妇、出租车司机、夜市摊主、美术馆保安、社区诊所护士、独立书店老板、宠物美容师、夜班便利店员、城市代驾、以及一个没有任何职业信息的”社会闲散人员”。
十四种完全不同的生活。唯一的共同点是:他们都被「深蓝」系统判定为”不可计算”。
沈鹿鸣决定从最近的一个开始。夜班便利店员。距离鲸落科技大厦三公里。今晚的班。
她需要亲眼看看,一个命运开放的人是什么样的。
七
便利店的灯光在深夜的街道上像一座小岛。
它夹在一家已经关门的房产中介和一家永远排队的烧烤店之间,玻璃门上贴着各种过期的促销海报。沈鹿鸣推门进去的时候,门上的风铃发出一声清脆的响。
柜台后面站着一个年轻女人,大概二十四五岁,短发,戴着一副圆框眼镜,正在用手机看什么东西。听到风铃声她抬起头,露出一个标准的便利店微笑。
“欢迎光临。”
沈鹿鸣拿了一瓶矿泉水放在柜台上。“你叫蒋一禾?”
年轻女人的微笑消失了。她的眼神瞬间变得警惕——一种被训练过的警惕,像是在城市里独自生活的女性都会有的那种本能反应。
“你是谁?”
“我叫沈鹿鸣。我在一家科技公司工作。“她犹豫了一下,“这听起来可能很奇怪,但我们的系统…… случайно……匹配到了你的信息。我想和你聊聊。”
蒋一禾的手已经伸向了柜台下面的某个地方——大概率是报警器。
“我不是推销的,“沈鹿鸣赶紧说,“也不是骗子。我只是一个工程师,我发现了系统里的一个问题,而你是……和这个问题有关的人之一。”
“什么问题?”
沈鹿鸣做了一个决定。一个很可能是错误的决定。
“你能出来一下吗?五分钟就好。我可以站在门口,你在里面,隔着门说也行。”
蒋一禾打量了她一会儿。不知道是什么让她做出了判断——也许是沈鹿鸣的黑眼圈,也许是她声音里的疲惫,也许是某种更直觉的东西——但她把手从柜台下面抽了回来。
“等一下。”
她走到便利店后面,和一个正在理货的同事说了几句话,然后回到柜台前,走出来。
两个人站在便利店门口。烧烤店已经关了,街道上很安静。
沈鹿鸣说:“我接下来要说的话听起来会像科幻小说。但请相信我,我不是一个善于编故事的人。我是一个工程师。我习惯了说实话。”
她把第二十九层的事情告诉了蒋一禾。不是全部——她没有提公司的名字和系统的细节——但足够让蒋一禾理解核心:有一个AI系统,它能在某种概率上预测人的死亡时间。而蒋一禾是极少数系统无法预测的人之一。
蒋一禾沉默了很长时间。
然后她说:“你有没有想过,也许系统无法预测我,是因为我不值得被预测?”
沈鹿鸣愣了一下。“什么意思?”
“你看,“蒋一禾摘下眼镜擦了擦,“我白天在一家打印店上班,晚上在便利店值夜班。我的收入刚好够交房租和吃饭。我没有信用卡——对,我就是你们系统拒绝的那种人。我没有医保,没有储蓄,没有任何资产。我的社交网络——如果你是说微信好友的话——有三百多个人,但真正会在我生病时来看我的,可能只有我那只猫。”
她把眼镜戴回去。
“一个这样的人——无产、无负债、无社会关系——对任何系统来说都是噪音。你们的数据采集不到我的模式,不是因为我有什么特殊的命运,而是因为我根本不在你们的图纸上。”
沈鹿鸣想反驳,但她发现她反驳不了。
因为蒋一禾说的可能是对的。系统无法预测她,也许不是因为她拥有什么特殊的”开放命运”,而是因为她在系统的视野之外。一个没有信用记录、没有稳定工作、没有社会资源的人,在数据的世界里不是一个人——是一片空白。
而一片空白是无法被预测的。不是因为它的未来有无限可能,而是因为它根本没有被看见。
“那你——“沈鹿鸣斟酌着措辞,“你觉得自己是自由的吗?”
蒋一禾笑了。不是那种便利店的标准微笑,而是一种真实的、带着一丝苦涩的笑。
“你问错问题了。你应该问的是:你的系统有没有权利来预测我?即使它预测不了。”
沈鹿鸣站在便利店门口,闻到了残存的烧烤味道和便利店特有的那种消毒液混合着关东煮的气味。她忽然觉得这个世界比她想象的要复杂得多——不是一个AI系统预测一群人的死亡那么简单,而是一群人建造了一个系统来理解另一群人,但系统的理解本身就是一种暴力。
“对不起,“她说。
蒋一禾看了她一眼。“你道歉的对象不对。你应该对那些被预测了的人道歉。那些被告知自己还有三个月、两个月、二十天的人。他们的反应你知道吗?有些人立刻辞职去做了自己一直想做的事。有些人把存款全部花光了。有些人甚至——” 她停顿了一下,“有些人甚至提前结束了自己的生命。不是因为系统是对的,而是因为系统说了那句话。”
“你怎么知道这些?”
“因为我值夜班。“蒋一禾说,“你以为深夜的便利店只有加班的白领和喝醉的年轻人吗?还有那些睡不着觉的人。那些在凌晨三点买一瓶水和一包纸巾、然后在柜台旁边站很久的人。他们想说话。便利店员是最好的倾听者——因为我们会换班,因为顾客不会记得我们的脸。”
她看着沈鹿鸣。
“你建了一个告诉人们什么时候会死的系统。你知道这句话的重量吗?不是’你会死’——每个人都知道自己会死。是’你会在那天死’。这把死亡从一个抽象的事实变成了一个具体的日期。你以为这和知道自己的信用分数一样吗?不一样。信用分数是关于你能借多少钱。死亡日期是关于你还值不值得活。”
沈鹿鸣说不出话。
蒋一禾回到便利店里。在玻璃门关上之前,她回过头来说了最后一句话:
“如果你们真的想知道人什么时候会死,不如花点时间想想怎么让人更好地活。“
八
5月21日。倒计时一天。
沈鹿鸣一夜没睡。不是因为恐惧——虽然恐惧也在——而是因为她在做一件事。
她在写一个程序。
不是修改数据。不是伪造记录。而是一个真正的、系统性的改变。
她的想法是这样的:第二十九层之所以能预测死亡,是因为它拥有足够多的数据来推演一个人的生命轨迹。但方既白说过,改变条件,终点就会改变。陈渡江也证实了这一点——那些被”干预”的人确实改变了终点。
那么,如果她能让第二十九层的预测公开呢?
不是公开给金融机构——那是鲸落科技想做的事。而是公开给每一个人。让每个人看到自己的终点,然后自己决定要不要改变。
这不是一个完美的方案。蒋一禾说得对——知道自己的死亡日期可能造成巨大的心理伤害。但不知道的替代方案是什么?让一个AI系统在暗处决定你的命运,而你自己什么都不知道?
沈鹿鸣的方案比这更激进:她要在公开预测的同时,公开第二十九层的全部逻辑。不是代码——普通人看不懂代码。而是一份完整的、可理解的文档,解释系统用了什么数据、怎么推演、准确率是多少、以及最关键的——如何改变自己的终点。
她把这个方案叫”镜像”。
镜像——让每个人都能看到自己的映像。不是美化过的,不是扭曲的,就是真实的。然后由每个人自己决定要不要改变映像所指向的那个结局。
这个程序她写了整整一夜。凌晨的时候,方既白发来一条消息:
“你疯了。”
“可能吧。”
“你知道陈渡江不会让你这么做的。”
“我知道。”
“你知道如果你这么做了,你的日期可能会变——也可能不会。”
“我知道。”
“你怕吗?”
沈鹿鸣看着屏幕上自己写的代码。几千行的 Python,逻辑清晰,注释完整。她写得最好的作品。比她写的任何信贷评估模块都好。
“我怕,“她回复,“但我更怕不这么做。”
方既白过了很久才回复。最后他发来一段代码——那是第二十九层的完整解密密钥。
“用得上。“他说。
九
5月22日。清晨五点。
沈鹿鸣在鲸落科技大厦的天台上。
她把「镜像」程序上传到了一个她三个月前就准备好的独立服务器上——不在鲸落科技的内网,不在任何云服务商的平台上。一个完全独立的节点。
程序会在今天上午十点自动运行。运行之后,它会做三件事:
第一,导出第二十九层的全部预测数据,并对应到每一个真实用户。
第二,生成一份完整的、可理解的技术文档,解释系统的原理和局限。
第三,向所有被预测的用户发送一封电子邮件,告知他们的预测结果,以及——这是沈鹿鸣加的——一份”改变指南”,列出所有已知能改变终点的行为干预措施。
她知道这会造成混乱。巨大的、不可控的混乱。有些人会恐慌,有些人会愤怒,有些人会不信。有些人——像蒋一禾描述的那样——可能会做出极端的选择。
但她也知道,沉默的代价更大。
陈渡江说过,鲸落科技的目标不是预测死亡,而是控制死亡。控制意味着选择——公司选择谁值得被拯救,谁不值得。这个选择不应该由任何一个公司来做。
天台上的风很大。北京的天际线在晨光中慢慢清晰起来——一排排灰色和蓝色的建筑,像电路板上的元器件。远处有鸟在飞。
沈鹿鸣忽然想到了蒋一禾。她此刻应该在便利店里,正在补货架上的矿泉水。她的命运是开放的——不是因为她有什么特殊的品质,而是因为系统看不到她。
但沈鹿鸣能看到她。
所有人都能看到彼此——如果他们愿意看的话。
这不是AI能做到的事。这是只有人才能做到的事。
她低头看了一眼手机。9:47。「镜像」将在十三分钟后运行。
然后她看到了一条新消息。来自陈渡江。
“我知道你在做什么。已经派安全团队去切断你的服务器了。你有十分钟。”
沈鹿鸣看着这条消息,心里出奇地平静。
她打开笔记本电脑,敲了几行命令。不是运行「镜像」——那要等到十点。而是修改了服务器上的定时器。
从十点整,改成了现在。
九点四十八分。
进度条开始走。数据从鲸落科技的内网被抽取出来——第二十九层的全部数据,三千四百一十二个终点预测,十四个问号,每一行背后的推演逻辑——像一条暗河找到了出口,开始流向它该去的地方。
陈渡江的第二条消息在三十秒后到达:“你的权限已经被注销了。”
但已经晚了。数据已经离开了鲸落科技的服务器,到了一个他们够不到的地方。
沈鹿鸣合上电脑。
天台上很安静。风继续吹。
她打开了第二十九层的移动端面板——这个还能用,因为「镜像」在运行的同时也在向所有用户的注册邮箱发送邮件。她的邮箱里已经躺着一封。
标题是:您的终点预测结果。
她没有打开。
她不需要打开。因为她已经知道了。
5月22日。今天。
如果第二十九层是对的,她还有大约十几个小时。
但第二十九层可能不对——陈渡江说过,准确率是百分之八十五。这意味着她有百分之十五的可能性活过今天。
更重要的是——她今天做的事情,已经改变了她的条件。不是伪造数据那种改变,而是真正的改变。她做出了一个选择,一个可能影响三千四百一十二个人——以及更多人——的选择。这个选择消耗了她的睡眠、她的安全、她的工作。但也许,只是也许,它也给了她一些额外的时间。
或者没有。
沈鹿鸣站在天台上,看着北京的天空从灰色变成蓝色。她想到了她妈。想到了报表——那只橘猫。想到了方既白那张贴满纸张的墙壁。想到了蒋一禾在便利店门口说的那句话。
“如果你们真的想知道人什么时候会死,不如花点时间想想怎么让人更好地活。”
她掏出手机,拨了一个号码。
“妈。”
“鹿鸣?这么早?出什么事了?”
“没事。就是想给你打个电话。”
”……你没事吧?”
“我很好,妈。我就是想说——“她停顿了一下,在天台上深深地吸了一口气。空气很凉,带着北京特有的那种混合了建筑粉尘和远方某处花香的气味。
“我就是想说,我爱你。”
电话那头沉默了几秒。
“我也爱你,鹿鸣。你……你最近工作压力大吗?”
“有一点。但我在做正确的事。”
“那就好。你爸以前也老说这句话——‘我在做正确的事’。每次他说这句话,就意味着他在做一个谁都不理解的决定。”
沈鹿鸣笑了。“那他后来怎么样了?”
“后来他变成了全县最好的外科医生。虽然过程很辛苦。”
“嗯。”
“鹿鸣——”
“嗯?”
“你真的没事吗?”
“我真的没事,妈。我保证。”
她挂了电话。
上午的阳光已经洒满了天台。沈鹿鸣站在光里,像站在一面巨大的镜子前面。镜子里映出的不是她将死的样子,而是她现在的样子——一个穿着格子衬衫和牛仔裤的女人,头发乱糟糟的,黑眼圈很深,手里握着一台正在运行她写过的最疯狂的程序的笔记本电脑。
这就是她。
此刻的她。
不死也不活。只是在。只是做。
她走下天台。
十
后来的事情是这样的。
「镜像」在5月22日上午九点四十八分开始运行。到十点十五分,所有邮件发送完毕。到中午十二点,第一个媒体报道出现。到下午三点,话题#你会在哪天死#登上了微博热搜第一。到傍晚六点,银保监会和网信办联合发布了调查声明。
鲸落科技的股价在一天之内蒸发了百分之四十。陈渡江被停职接受调查。董事会紧急召开会议,决定全面停止「深蓝」系统的运营。
方既白作为关键证人配合了调查。他的证词帮助监管部门理解了第二十九层的技术原理。作为交换,他没有被追究当初隐瞒信息的责任。后来他写了一本书,叫《第二十九层:一个AI系统的意外诞生》,在技术圈引起了巨大争议。有人说他是吹哨者,有人说他是帮凶。他本人拒绝接受任何标签。
蒋一禾在那之后辞掉了便利店的工作。不是因为「镜像」——她没有收到邮件,因为她不在系统的数据库里。她辞职是因为那天晚上,一个她曾经帮助过的深夜顾客找到了她,给她介绍了一份收入更好的工作。她后来在一家社区图书馆做了管理员。那家图书馆后来成了附近居民最喜欢去的地方,因为蒋一禾总是能在对的时间推荐对的书。
至于那十四个问号——他们后来被媒体称为”开放者”。他们的命运确实没有被任何人、任何系统预测到。他们中有人成了小有名气的独立音乐人,有人回到老家种了苹果树,有人出了车祸差点死掉但又奇迹般地康复了,有人中了彩票又很快输光了,有人结婚离婚再结婚,有人仍然在便利店上夜班。
他们的人生继续着。像所有的人生一样,没有剧本,没有预测,没有终点——至少没有一个可以提前知道的终点。
而沈鹿鸣呢?
她活过了5月22日。
也活过了5月23日。
也活过了整个五月。
第二十九层在她发布「镜像」之后自动更新了她的预测——从5月22日变成了一个空白。不是问号。是空白。
像一张还没写字的纸。
她不知道这意味着什么——是系统无法预测她了,还是系统认为她已经不再需要被预测。方既白说可能是前者,也可能两者都是。
沈鹿鸣觉得这不太重要。
她在六月份辞掉了鲸落科技的工作,用积蓄给自己放了一个长假。她做的第一件事是去跑步——不是为了骗系统,而是因为她想跑。第二件事是去领养了第二只猫,给它取名叫”镜像”。第三件事是给她妈买了一张来北京的火车票。
她还做了一件很小的事:每个月给蒋一禾所在的社区图书馆捐一本书。不是什么特别深奥的书,就是那些她觉得值得被更多人读到的书。有一次她捐了一本关于AI伦理的学术著作,扉页上写了一行字:
“给所有在凌晨三点还醒着的人。”
后来有人问她,如果重来一次,她还会在那天晚上走进那家便利店吗?
沈鹿鸣想了想,说:
“我不知道。但我觉得——那个问题的答案不重要。重要的是我走进了。”
窗外,北京的天空是一种说不出的颜色——不完全是蓝色,也不完全是灰色,而是一种介于两者之间的、流动的、不确定的色调。
像所有活着的东西一样。
尾声
很多年以后,有人在整理鲸落科技案件的技术档案时,发现了一段被遗漏的日志。
日志来自第二十九层。时间戳是2026年5月22日,上午九点四十八分零三秒——正是沈鹿鸣启动「镜像」的那一秒。
日志内容只有一行:
User LM-SHEN-0031: endpoint recalculated.
Old: 2026-05-22.
New: [REDACTED].
Reason: condition change detected.
Change type: choice.
选择。
不是基因。不是习惯。不是环境。不是收入。不是信用评分。
是选择。
她选择了打开那扇门。她选择了走进那家便利店。她选择了和一个陌生人说话。她选择了用她所有的技能做一件她认为对的事。
第二十九层——那个用三千四百一十二个变量推演生命的系统——在所有参数里,最终起作用的那个,是它从来无法量化的一个。
不是变量。是动词。
选择。
故事结束的那天,北京下了入夏以来第一场雨。沈鹿鸣站在阳台上,看着雨水在玻璃上画出无数条平行的痕迹——像数据流,像时间线,像所有可能的人生轨迹。
她旁边的椅子上,“报表”和”镜像”挤在一起睡觉。橘色的和黑白色的,像两个标点符号,一逗一句,标注着一个还没有写完的故事。
雨停了。
天亮了。
她还在。