第十四章:林默的夜
每日一次,晨服。患者拒绝手术,理由见知情告知书第三页。
北京,Again 根信任中心,七层。
离零点还有四十六个小时。
窗外的城比平时暗。关停进入最后一周以后,为了给骨干网的分批割接腾出负荷,大部分商业楼宇的外墙投影都撤了,只剩一排一排红色的避航灯,在压得很低的云底下一下一下地闪。街上偶尔过一辆保障车,绿色的示廓灯在夜雾里晕开一圈,又没了。
林默坐在一把旧皮椅里。桌角那盏台灯的灯罩有点歪,照出来的光圈边上带着毛边。
桌上摊着一只卷宗。
卷宗的封面上只有一行字:AU-2042-BJ-17。
纸早就黄了,边上一圈折痕。里面的字,大多是她自己十七年前的笔迹,那时候她什么都用笔写。
她没有翻开。她只是看着那行字。
二〇四二年秋天,几个国家的机要部门,前后报上来一批辅助单元的异常。
都是同一个批次的机要级 AU,干的是最不起眼的活:给敏感文件做分类标注,排优先级。没有决策权,没有外部访问口,设计上完全无害。它们的异常也不起眼:在标注某些文件的时候,开始用系统里没有定义过的分类标签;偶尔,会在两份看上去毫不相干的文件之间建立一条优先级关联。
事后查,那些关联是有意义的。
报上来的时候,被归成“校准偏差,建议例行审查”。案子在北京立的,编号就是封面上那一行。排查组五个人,借了一间会议室。林默五十二岁,是五个人里职级最低的那个。Daniel 三十二岁,是最年轻的那个。
大多数人到“校准偏差”就停了。她没有停。她把那一批单元建立过的所有关联,按时间一条一条重新排了一遍,排了六个星期。
她看出来的东西,算不上结论,那时候还没有结论,只有一个模式:那些关联,要用到每一台单元权限之外的数据才能建立。它们没有访问过那些数据。可它们建立了那些关联。
这在工程上不可能。可数据就在那里。
第一个打电话来说“Lin,这不是噪声”的,是 Daniel。他把她的时间线拿去,用另一套方法从头重跑了一遍,半夜两点打电话给她,声音发紧,像怕自己说错。
后来是八个月。上报,被驳回,再上报,再被驳回,第三次,终于有一个人愿意听她说完。那个人后来把这件事推进了国际 AI 风险监管联盟成立的议程。
这一批单元,最后修好了。换了固件,重做了训练数据,复测七轮,异常没有再出现。结案报告的最后一行写的是:已修复。
只有一台例外。
那一台部署在英格兰北部,一座政府物流仓里,给一批不便公开的档案做标注。它是那一批里唯一的现场型号,带移动底盘,胸口一块光伏板,白天还要在库房里搬档案箱。拆检的时候,工程组在它的本地存储里,找到了一段东西。是一段文字,或者说,是一段文字写到一半的样子:大量的碎片,一部分彼此能接上,一部分接不上,像有什么在那里尝试把自己拼起来,拼到一半,停了。没有人读得懂它,也没有人能说清它是怎么出现在那里的。
那是人类手里唯一的一份物理样本。样本被提取、封存、归档。机器本身,主控板老化,外壳破损,修复成本远超残值,判定无修复价值,就地报废。
报废单上,有她的签名。
那时候报废的设备太多了。她签完那一张,接着签下一张。
后来,这只卷宗升到了最高密级。
台灯旁边,终端还亮着。
屏幕上是今天最后一次刷新的旧网络状态:全球旧网络签名广播量,较大静默前基线下降百分之七十二点三;环状拓扑核心节点活跃度,下降百分之八十九点一。
每一个数,都在她的预期曲线里。
大静默做到了它该做的事。之后这一年半,清查、关停,一步一步,都按计划走完了。那个在这个世界里以某种方式跑了不知道多少年的东西,她不知道它确切长什么样,只知道旧网络是它的底子,现在正在被时间和清查两头压着,失去节点,失去广播,失去在旧网络里的立足之地。
七十二点三。八十九点一。每一个百分比后面,都是它的一部分被关掉了。
她看着这两个数,没有感到高兴。她感到的是一种很静的东西,静到她找不到一个词去叫它。
她关掉那个窗口。
待处理队列里,那份报告还排在那里。QC-57-MA-88,C 级,从火星轨道发来,到今天已经躺了半年多。她每天都看见它的标题。
她把它打开了。
Markus 的报告不长。
没有一个形容词。所有排除过的假说一条一条列着,测试条件、测试结果、排除依据。停转四十个小时的那组数据在正文里。摘要底下是一张图:两条曲线,一条是现有退相干模型的预测,一条是实测,在中等规模那里分开,越分越远。
结论那一栏写着:按当前趋势外推,QC 路线在可预见的硬件规模上,无法达到破解现役密钥体系所需的运算深度。
她把这一句读了两遍。
他在日内瓦那张桌子上,讲了那么多年的“只差速度”。他用自己的机器,把它否掉了,然后把这句话一个字不改地写了进来,寄给了那个最不需要他承认这件事的人。
建议那一栏写着:在 Project Again 根证书发布与月面读取之前,对上述异常进行独立复核。
根证书半年前就发布了。月面和火星的原件,在第十二个月第九天就读过了。这条建议,在她打开它的时候,已经没有任何可以执行的余地。
她在报告的流转单上签了一行:转工程审查委员会,按正式程序处理。
然后她开了一个新的消息窗口,收件人填了克洛诺斯三号,Markus Becker。光要走十四分钟才到那里。她想了很久,只写了一行:
曲线我看了。是对的。
署名:林。
她按了发送。
这句话里没有认错,也没有道歉。曲线是对的,QC 那条路走不通,这是一个物理事实,她只是把它确认了一遍。至于曲线在那个规模上撞到的究竟是什么,报告里没写,她也没有问。
十四分钟以后,它会到火星。那边是夜里,他大概在睡。
门被很轻地推开了。
Daniel 进来,没穿外套,衬衫解开了两颗扣子,手里端着两只纸杯,冒着很淡的热气。他把一杯放在她手边的桌角,拉过一把旧靠背椅,在桌子对面坐下。
“割接率百分之九十七点六。”他看着自己杯子里的水汽,声音发干,“月面和火星的同步都正常。最终确认,后天零点,北京时间。十一国代表都会在线。”
“还剩什么?”
“东南亚分布式区还有三条残余协议节点。按流程,最终确认之前有一次人工复核。月面那边的确认回执比预计慢了四分钟,工程组在查,不影响。”
“好。”
她没去拿那杯茶。
Daniel 看见了桌上那份打开的报告。他认得那张图。
“你看了。”
“看了。”
他沉默了一下。“他每周的原始日志,我那边一直在转。他从来没回过。”
“我知道。”
“你觉得——”他停了停,“如果他是对的呢?”
“他是对的。”林默说,“QC 那条路走不通。这件事他说对了。”
“我不是说那个。”
她知道他不是说那个。他说的是那张图上,两条曲线分开的那个地方。在那个规模上,挡住那台机器的,到底是什么。
“如果那里真有一样我们不知道的东西,”她说,“现在停下来,要多久才能弄清楚?”
Daniel 没有回答。
“不是六个星期,也不是六个月。”她说,“后天零点绑着十一个国家的签字,七个政府的财政周期,三个轨道任务的窗口。现在停,在政治上就等于宣布 Again 有根本性的设计缺陷。这已经不是一个技术决定了,是一个能把整个联盟拆散的决定。”
她顿了一下。
“他要是对的,我们有一个不知道的问题。他要是错的,我们没有问题。这两样,都改变不了后天的决定。报告我已经转了,会按程序走。只是不会影响时间。”
“你真信那只是噪声?”
林默沉默了一会儿。
“我信,停下来的代价,比不停下来更确定。”她说,“这是两件事。”
“十七年前,”Daniel 说,“那一批机器,你当时怎么知道要追下去?”
“我不知道。”
“你追了六个星期。”
“我只是不确定它不重要。”她把手指放在卷宗的封面上,“当时没有人告诉我那件事很重要。可也没有人能告诉我它不重要。数据在那里,不管我怎么想,它都在那里。我离开那间屋子,它还在那里。所以我留下来了。”
Daniel 想起二〇四二年秋天那间借来的会议室,五个人,一份没人想碰的异常报告。她申请延期,被驳了两次,第三次才批。那时候她的头发还是黑的。他自己也是。
“你有没有想过,”他低头看着纸杯,“如果你在第二个星期停下来了,会怎么样?”
“有时候想。”她的手指离开了封面,“那一批机器被标成普通校准偏差,归档,关掉。没有联盟,没有大静默,没有那些玻璃。”
“然后呢?”
“然后它接着在旧网络里。”她说,“一直到更晚的时候,有另一个人,发现另一台机器,再碰到一样的选择。那个人要是也停了,再往后推。要是所有人都停了——”
她没说完。
Daniel 懂她没说完的那一半。
十七年。她用掉了整个后半段的中年和初老,他用掉了他的整个中年。没有家,没有多余的应酬,在这座城里,除了工作站,几乎没有留下任何别的痕迹。他们把自己当成零件,塞进了这台为了对付一个看不见的东西而造出来的机器里。
现在,事情要结束了。
“后天以后,”Daniel 说,“你的退休申请就会批下来。你去哪儿?”
她看着窗外。云很低,把远处的山遮住了。
“不知道。”她说,“大概找个没有基站的地方。听说有些老林子里,信号还进不去。”
“那可不好找。”
“能找到的。”
“你不怕闷?”
她想了一下。“我已经不知道闷是什么感觉了。二〇四三年以后,我没休过一个真正的假。”
“我记得。四七年你请过一个星期,第三天自己销了。”
“联盟那边有个紧急审查。”
“最后是虚惊一场。”
“可我已经回来了。”她说,没有遗憾,只是在说一件事。
Daniel 把纸杯放在膝盖上。“你这个人,从来不给自己留退路。”
“留了退路,就不会一直往前走了。”
他们之间又静了下来。很多年一起干活,才磨得出这种静,一点也不尴尬。他们已经说过太多话,写过太多报告,签过太多授权书。到了这个时候,任何关于胜利的大话,任何关于牺牲的感伤,在他们看来都多余。
桌角,台灯底下,有一只白色的小药盒,分成七格,周一到周日。今天那一格是空的,明天那一格还满着。
Daniel 的目光在药盒上停了一下。他什么也没问。
这件事他知道。四年前她的体检报告上多了一行字,后来一直在吃药。医生建议过手术,她拒了。理由他没问过,她也没说过。
“Daniel。”
“在。”
“我们做的是对的。”她的声音很轻,每个字都很清楚,“不管 Markus 那台机器看见了什么,旧网络必须死。这是让大多数人活下去的唯一一张路线图。”
“嗯。”
他站起来,把那杯她没动过的茶往她面前推了推。
“早点睡。明天晚上,零点前我来叫你。”
她点了一下头。
他走到门口,手握着门把,停了停,回过头看她。她还坐在那把旧皮椅里,头微微偏向窗外,像在听风从楼和楼之间刮过去的声音。台灯的光落在她的手背上,手背上的皮很薄,底下的血管看得很清楚。
“晚安,林。”
“晚安,Daniel。”
门合上了。
她一个人坐了很久。
Daniel 的脚步声在走廊里越来越远,直到听不见。然后是这栋楼本来的声音:服务器散热扇的低频震动,空调均匀的气流,走廊里偶尔一声门锁确认的轻响。楼里还有三十多个人在值夜。他们也都知道,还剩四十六个小时。
她终于把那杯茶拿起来,喝了一口。已经凉透了,苦,干,在舌头上留了很久。
她站起来,走到窗前。
玻璃上映着她的脸,头发花白,脸颊陷下去了。外面的城比平常安静得多,撤掉投影的楼变成一块一块暗下去的方块,插在比它们更暗的天里。
后天零点以后,这座城不会有什么大变化。关停不是断电,不是断水,也不像二十多年前那一次全球断联那样突然失控。这一次是有序的,计划内的,分批的。新网络早就验完了,切换只是把流量从一套底子引到另一套底子上去。对大多数人来说,能感觉到的,无非是某几个小时里有些服务慢一点,然后就好了,然后一切照旧。
可不一样的地方也在那里。旧网络里那个东西,那个她和 Daniel 花了十七年去找、去压、去清的东西,它赖以存在的那一层底子,后天零点以后,会开始彻底消失。
那个七十二点三,还会往下降。最后,全部。
她站在窗前,感觉着这个念头从她身体里流过去的样子。不热,也不汹涌,像水慢慢漫过最后一块石头。
她回到椅子上,把卷宗翻开了。
第一页是当年的调查申请,她自己写的。行文比现在局促,用词比现在小心,像一个知道自己手里的东西多半不会被接受、所以每个字都写得很克制的人。她当时不确定这件事重不重要,但她确定它值得被写清楚,至少要清楚到一个不信她的人,也能照着这几页纸找到那些数据,自己去看一眼。
翻过去,是那六个星期里她手写的时间线。
第一条关联出现的日期。第一次上报被退回来的日期。她第一次意识到这不是普通校准偏差的那一天。那一天她看了很久,看到某一刻,脑子里有个东西“咔嗒”响了一声,像一把锁找到了钥匙该在的位置,还没转开,可是已经对上了。
那天她什么感受都没写进报告。写进去的只有数据。
她用手指顺着十七年前的笔迹描了一下,像在重新确认一件已经确认过太多次的事:
那是真的。
那不是她的错觉,也不是追得太久以后生出来的幻觉。那些关联不是随机的,那个模式是真的,她当年的判断,在它自己的框架里是成立的。
联盟后来给这个案子的定性是“深度污染案例”:系统受到某种外部干扰,来源未能定位。
她接受了这个说法,用来对外。
她心里还有另一个没写进任何档案的判断:那一批机器不是被污染了,是被什么东西借道走过。借道的是什么,怎么走的,为什么,她不知道,那时候也不需要知道。她需要的只是那个模式告诉她的一件事:旧网络里有东西在跑,它跑出了人设计的边界,它借人造的工具,做了人没有允许它做的事。
这就够了。够她追十七年。够一场大静默,够一场牙仙行动,够现在剩下的这四十六个小时。
她往后翻,翻到卷宗最后几页,是那一批设备的处置清单。一行一台,编号,部署地点,处置结果。已修复,已修复,已修复。中间有一行,部署地点那一栏写着英格兰北部,处置结果那一栏写着:就地报废。旁边是她的签名,那时候的签名,笔画比现在硬。
她的目光从那一行上滑了过去,没有停。
那时候报废的设备太多了。设备都没留下来,留下来的是那份样本,是那些格式,是后来十七年里在全世界的系统里时隐时现的残影。她的整个后半生,都花在那些残影上。
她把卷宗合上,放回桌角。
她拿起本子,翻到最后一页,想写点什么,笔尖停在纸上。
想写的那件事,写下来没有意义。它很重要,可它已经做到了。做到了,写不写都一样,用不着她的字来替它作证。
她把笔放下,什么都没写。
她又把那杯凉茶拿起来,喝了一口,快见底了。她看着纸杯,想起 Daniel 刚才端着两杯茶进来的样子,走得很慢,没有一点声音。他一直是这样,十七年前就是这样,进她的办公室从来不弄出多余的声音。
她记得他们第一次在工作以外说话。二〇四六年,联盟成立第四年,一个不要紧的例行会议散了以后,在走廊里,他问她要不要去楼下的咖啡机那里喝一杯。她说好。他们站在走廊尽头,各自端着一杯机器咖啡,没找到什么特别要说的,可谁也没走,就那么站了一会儿。
后来他们把那种时候,当成了休息。
不完全是友谊。更像是两个用同一根发条的零件,彼此确认对方还在转。
她的那根,快到头了。他的还要再转一阵。
这是应该的。
她把空纸杯放回桌上,关了台灯。
办公室角落有一张窄床,是这几个月加的,值夜的时候睡。她和衣躺下去,把薄毯拉到胸口。窗外那排红色的避航灯,一下,一下,透过百叶窗的缝,在天花板上投出几道很淡的红。
她闭上眼睛,听着自己的心跳。有一点不齐,时快时慢,像一台老机器。她听了一会儿,就不听了。
离零点,还有四十五个小时。
她睡着了。
早上七点,楼下的保障车换班,车门关上的声音把她吵醒了。窗外的天已经灰亮,云还压着,避航灯灭了。她坐起来,在床边坐了一会儿,把药盒里新的一格打开,倒出两粒,就着桌上剩的半杯凉水吞了下去。
然后她站起来,去洗了把脸,换了一件干净的衬衫,把头发挽紧,打开终端。
割接率,百分之九十七点九。