边境冲突信号被拦截的第四天,那个被系统忽略的变量自己找上了门。
凌晨四点十一分,南亚四号所在国的邻国宣布关闭两国边境。关闭的理由是“防止不稳定因素扩散”,措辞经过至少三轮外交润色。但监测节点传回的原始情报写了另一件事:边境冲突在当天凌晨发生了第二轮升级。双方边防部队在争议地段的铁丝网两侧对峙了将近三个小时。先是口头喊话,然后是推搡。最后有人开了枪。
没有伤亡报告。枪声本身已经足够。
林序是被值班电话叫醒的。听筒里的声音简短到只剩下坐标和时间。他赶到主控室的时候,屋里已经有五个人。顾远站在主屏幕前,屏幕上是一张南亚区域的实时态势图。两条国境线之间的区域被标成闪烁的红色,像一道刚撕开的伤口。旁边滚动的数据栏里,边境贸易流量曲线断崖式下跌,社交媒体情绪指数在四十分钟内从黄色跳到了深红。
“边境关闭的消息进入系统了吗?”林序问。
“进了。”坐在控制台前的运维工程师没有回头。“作为常规新闻文本进入。没有触发任何预警模型。合规拦截把冲突起源数据全挡在外面了——系统不知道这件事是怎么开始的。它只看到了结果。”
林序站在原地,把这句话含在嘴里嚼了一遍。合规规范拦下了冲突的起源信号。系统在不知情的前提下继续运行其他模块。等到边境关闭这个结果出现,它被归类为孤立事件,没有触发任何连锁预警。而从边境关闭到进一步的区域动荡之间,可能只需要几十个小时。一个因为数据盲区而断裂的因果链条正在南亚的凌晨里独自运转,没有人告诉它它已经断了。
顾远转过身来。他的眼睛里没有血丝,但那种平静比任何疲惫都更让人不安。
“把伊琳叫来。”
伊琳在十二分钟后推门而入。头发随手扎了一下,外套里面还是睡觉穿的t恤。她扫了一眼主屏幕,眼神变了。
“边境关闭。”她说。不是问句。
“三个小时前。”
“冲突起源呢?”
“被3.2拦掉了。”
伊琳没有说话。她走到控制台旁边,弯下腰看运维工程师的屏幕。手指在触摸板上滑了几下,调出边境关闭之前的输入数据清单。翻了两页。
“你们知道问题有多大了吗。”
她的声音不大,但整个主控室的人都在听。
“你们建了一个能预测国家崩溃的系统,它连邻国边境关闭都提前感知不到。不是算不出来——是有人让它看不见。”
没人接话。顾远看着屏幕。伊琳直起腰,把那页清单留在屏幕上,像留在桌上的一张牌。
天亮以后,情况继续恶化。
上午七点,南亚四号所在国的三个主要城市同时爆发了针对邻国关闭边境的抗议活动。首都。最大港口城市。一座靠近边境的工业重镇。三处几乎同时。七点四十分,港口城市的抗议人群突破了警方设置的隔离栏,进入港区作业区域。隔离栏被推倒的影像在社交媒体上传播了不到二十分钟。八点十分,港口管理局宣布暂停装卸作业。
这一次,信号没有被拦截。抗议活动的相关数据在事件发生后的三十分钟内进入GcS预处理管道——它不属于“边境主权争议”,合规规范3.2的拦截条件没有触发。系统开始运行。
但已经晚了十二个小时。从边境关闭到港口停摆之间,有一段关键的因果传导期。如果冲突起源的信号没有被拦截,模型本可以在边境关闭之前就推演出社会动荡向经济节点扩散的可能路径。现在,系统只能对已经发生的事件做出滞后反应。它从一个预测系统退化成了一个监控系统。
林序在工作台上打开日志。他写字的时候手指有点僵,但笔迹仍然很稳。
“GcS今天上午在南亚区域的表现,本质上已经不是V1的失败,而是V1的功能被制度性机制阉割了。3.2规范从源头截断了因果链的输入端,导致模型被迫在残缺数据上运行。结果不是算错——是根本没机会算。”
他把这段写完之后看了一遍。没有发给任何人。日志本合上的声音很轻,像一根针落在棉花上。
上午九点半,周启明出现在主控室门口。
他换了一身衣服。深蓝色西装,领带打得很整齐,和他凌晨四点多被通知紧急情况时的语气一样——不慌不忙。他在门口站了片刻,把屋里所有屏幕都扫了一遍。然后走进来,在顾远旁边站定。
“港口停了。”
“我知道。”顾远没有转头。
“港口停了,而你的系统没有提前预警。我说的是‘你的’,不是‘我们的’。”
顾远转过来。林序看到了他右手的指关节——攥紧,指节微微发白。
“它没有提前预警,是因为你三个月前参与修订的那份合规规范把它的眼睛蒙上了。3.2。政治风险评估小组。跨境信号拦截。你现在站在这里问我为什么没预警——这个问题你该先问问你自己。”
周启明没有立刻回答。他拉了一把椅子坐下来,把双手平放在膝盖上,看着那片闪烁的红色区域。屏幕上港口的停摆标记还在跳动,数据不断涌入。
“3.2规范不是我一个人定的。联合委员会表决通过。当时你也签字了。”
“当时系统还跑不准一个季度内的经济波动。没有人想得到三个月后它需要实时边境信号。”
“所以问题就在这里,顾远。”周启明的声音里多了一种质地——不是冷硬。是某种接近于疲倦的,像旧毛衣被磨薄了之后透出的那种纹理。“你责怪制度拖了技术的后腿。但制度之所以存在,恰恰是因为技术跑得太快,快到没有人来得及问一句——我们该不该让它跑这么快。”
顾远看着他。
“你现在是在替合规拦截辩护?”
“我不是在辩护。我是在告诉你,就算没有3.2规范,也会有别的东西拦住那些信号。跨境政治敏感数据一旦进入模型——你知道意味着什么吗?意味着GcS会对两个主权国家之间的边境冲突做出预测。预测一旦流出这栋楼,引发的不是预警。是恐慌。市场踩踏。军事误判。”
他顿了一下。主控室里的空气像被抽走了一层。
“技术跑在前面没问题。但跑在前面的时候,它得知道身后有没有人拿着它不该碰的东西。”
沉默落了下来。林序站在角落里,把两个人刚才的每一句话在脑子里过了一遍。周启明没有诡辩。顾远也没有推卸责任。但两个人的逻辑放在一起,形成了一个彼此抵消的死结。制度拦下数据,导致技术无法预警。技术无法预警,反过来被制度用来证明技术还不够成熟。一个完美的闭环。两个人都在各自的方向上用力,环越收越紧。
伊琳帮他们切开了这个环。
她一直坐在控制台最左边的那把椅子上,背对所有人,面前是中东能源节点的实时监控画面。从凌晨四点进来之后,她没怎么说过话。林序注意到她的手指一直在滑触摸板,快速翻动中东那边的数据。几分钟之后,手指停了。
她盯着屏幕看了很久。然后站起来,走到主屏幕旁边,把一块辅助显示器切换到中东管网的实时压力数据。三条管线的压力曲线正在同步下降,像三条蛇从同一根树枝上滑落。
“先别吵了。”伊琳说。“中东那条建议干预路径,出了问题。”
所有人都转向她的屏幕。顾远。周启明。运维工程师停下手里的操作。伊琳点开一路子节点,放大一组数值。
“系统建议的方案是调整三条管道压力参数,把负荷从瓶颈节点分流到两条辅助线路。当地能源部门采纳了。”
她转过身来。
“问题是调整幅度和系统建议不一致。实际调整量比模型给出的参数高了百分之十五。”
“为什么?”顾远问。
“当地操作中考虑到了一条辅助管线在历史记录里的承压上限比较保守,决定适当放大安全冗余。工程师的常规判断——不相信纸面数据,相信经验。”伊琳又点开一组新跳出来的报警信号。“但这条辅助管线的实际腐蚀程度,比纸面数据严重得多。去年有一个季度的管道检测报告没有录入系统——又是缺失数据。现在这条管线的压力正在逼近临界值。”
“临界值是多少?”周启明问。他问得很快,比刚才任何一句话都快。
伊琳没有回答。她把光标移到一条正在快速攀升的红色曲线上。曲线已经进入了标有红色虚线的区域,仍在向上。
主控室里的安静忽然变得很重。没有人动。散热风扇的声音好像也远了一层。
“如果这条管线破裂——”伊琳开口的时候声音平稳,但每一个字都压得很实。“断裂点下游三个城市将在四小时内失去天然气供应。现在是十一月。三个城市的总人口——超过八百万。”
她停了一下。窗外北京的天际线上正在浮起一层灰白。
“这不是边境关闭。边境关闭是政治事件。这是从物理层面砸回来的现实。”
顾远盯着那条红色曲线,良久没有说话。然后他转过身,看着周启明。他眼睛里有某种东西在碎裂。不是愤怒。比愤怒深得多。
“你说制度拦下数据是为了防止恐慌和市场踩踏。现在你看看这个——这条管线,这个腐蚀数据,这个百分之十五的偏差。这跟制度没关系。跟政治没关系。跟谁有权定义现实也没关系。”她一字一顿。“这是一段被漏掉的数据。不是因为合规规范被拦住。是因为它从来没有被收集过。从物理世界到数字世界之间有一道缝。你的制度管不了这道缝。我的模型也填不上这道缝。而这道缝漏掉的东西,足够让八百万人在冬天没有天然气。”
没有人接话。周启明的嘴唇动了动,没有发出声音。他转过头去看着那条红色曲线,看了很久。领带打得很整齐,但捏着膝盖的手指攥紧了。
伊琳打破了沉默。她的声音很轻,但比整个房间里任何人的话都更有重量。
“数据是数字化的现实。现实不是数字化的数据。这两者之间差了一个世界。我们迟早会掉进那个世界里。”
林序当时没有把这句话记进日志。不是忘了。是觉得需要花一些时间判断它到底是什么意思。
他后来在日志里补上了。字迹比凌晨那一段稍微用力了一些,笔尖压出了凹痕。
窗外,天已经亮了。中东的三座城市还在睡梦中,没有人知道头顶上有一条高压管线正在逼近它的物理极限。南亚边境的抗议人群在港区外围聚集了整整一天之后开始逐渐散去。港口仍然停摆。两条国境线之间的枪声已经停了,只是谁都不知道下一次会在什么时候响起。
茶水间里有人泡了一壶新咖啡。苦味顺着走廊飘进主控室。运维工程师端起杯子喝了一口,放下,继续盯着屏幕上的红色曲线。它还在攀升。