数字深海

招魂者 · 2026/5/17

数字深海

陆鸣第一次注意到那个异常,是在三月的第二个星期二。

那天深圳下着不大不小的雨,南山区科技园的玻璃幕墙映着灰白色的天,像一面巨大的镜子在流泪。他坐在”深瞳科技”三十二层的办公室里,面前摊开一份信贷审批报告,咖啡已经凉了第三轮。

深瞳科技是一家金融科技公司,做智能信贷——说白了,就是用AI决定谁可以借钱、借多少、利息多少。陆鸣是风控部门的负责人,四十出头,头发已经开始在后退,但眼神还算锐利。他在这个行业做了十五年,从传统银行的风控专员一路做到这里的VP,见过太多数字背后的故事。

报告本身没什么特别。一份关于新上线的”深瞳V4”信贷模型的后评估,统计了上线以来三万两千笔贷款的违约率、逾期率、早偿率。数据很漂亮——违约率比V3降低了0.37个百分点,这在行业里已经算得上飞跃。

但陆鸣的目光停在了第十七页的一张表格上。

那是”特殊事件标注”的统计。V4模型在审批每一笔贷款时,除了常规的风险评分,还会自动生成一个”特殊事件概率”字段——比如”借款人可能在未来12个月内更换工作""借款人可能离婚""借款人可能遭遇重大疾病”。这些标注并不直接用于审批决策,而是作为辅助参考,帮助风控人员更好地理解借款人的处境。

问题出在最后一行。

特殊事件类型V3命中率V4命中率V4实际发生率
死亡0.02%0.03%0.031%

命中率0.03%,实际发生率0.031%。几乎完全吻合。

这在统计学上叫做——不可能。

不是”不太可能”,是真的不可能。因为”死亡”这个标注是基于借款人在申请贷款时填写的信息和第三方数据做出的预测,它不可能准确到这种程度。一个人的死亡涉及太多随机因素:交通事故、突发疾病、自然灾害、甚至自杀——这些都不可预测,至少不应该被一个信贷模型预测到这种精度。

陆鸣把报告翻到附录,找到了那几个被标注为”死亡”的案例。一共九个人。他逐一打开他们的档案。年龄从二十六到五十八不等,职业有外卖骑手、小企业主、程序员、退休教师。地域分布在七个不同的省份。没有明显的共同特征——除了他们都已经被确认死亡。

九个人,死了九个。命中率100%。

陆鸣感到一阵寒意从脊椎底部升起来,像有人在他的背脊上慢慢倒冰水。他把咖啡杯推到一边,打开V4的模型文档,开始逐层查看”特殊事件”模块的架构设计。

模型的这一部分是由一个叫林若溪的算法工程师负责的。陆鸣对她的印象是一个安静的、不怎么说话的年轻女人,开会时总是坐在角落里,带着一副细框眼镜,偶尔在本子上写些什么。她的技术能力在团队里是公认的第一,但性格太内向,不太适合在需要频繁汇报的岗位上发展。

陆鸣决定先不声张,直接去找她聊聊。

林若溪的工位在三十一层的一个角落里,两面都是落地玻璃窗,像一个透明的笼子。她的桌上摆着一盆很小的多肉植物,叶片肥厚,颜色绿得不太真实。电脑屏幕上是密密麻麻的代码,黑色的背景上跳动着彩色的字符,像是某种水下生物的荧光。

“若溪,有空吗?“陆鸣在她对面拉了把椅子坐下。

林若溪摘下眼镜擦了擦,重新戴上,看着他。“陆总,什么事?”

“别叫陆总。叫鸣哥就行。“他把手里的报告递过去,翻到第十七页。“V4的特殊事件模块,我有个问题。”

林若溪接过报告,低头看了一会儿。她的表情没有变化,像是在看一份菜单。

“死亡预测的命中率,“陆鸣说,“你怎么解释?”

“我不需要解释,“林若溪说,“因为那不是预测。”

“什么意思?”

林若溪把报告放在桌上,转过头来看着窗外的雨。雨水沿着玻璃流下来,像无数条透明的蛇在赛跑。

“V4的特殊事件模块用的是一种新的架构,“她说,“叫做’时间序列因果推断’。传统的模型是’预测’——根据当前的数据推断未来可能发生的事。但V4不是预测,它是’观测’。它观测的不是未来会发生什么,而是因果链条已经走到哪里了。”

“观测?观测什么?”

“观测已经发生的事。”

陆鸣皱眉。“已经发生?但这九个人在申请贷款的时候都还活着——他们的死亡是后来才发生的。”

“是,“林若溪点点头,“但因果链条在他们申请贷款的时候就已经形成了。我们看到的不是’未来’,而是因果链条的末端。就像你看到闪电的时候,雷声已经产生了,只是还没传到你耳朵里。”

这个比喻让陆鸣觉得不太舒服,但他不得不承认它在逻辑上是说得通的。问题在于——

“但命中率100%?这太精确了。任何模型都不可能——”

“因为这不是’任何模型’,“林若溪打断他,声音平静得像一面没有风的湖,“V4用了一个新的训练方式。我从公司三年来积累的贷款数据里提取了三千七百个变量,包括借款人的社交关系、消费行为、地理位置轨迹、医疗记录、甚至他们手机的电池消耗模式。然后用这些变量构建了一个因果图——不是相关性,是因果性。”

“三千七百个变量?“陆鸣有些惊讶。“我们获批的变量不是只有一千二百个吗?”

林若溪沉默了一会儿。窗外的雨似乎下得更大了,雨滴打在玻璃上的声音变得急促而密集,像是有人在用指尖焦躁地敲击桌面。

“有一部分变量是我自己加的,“她说,“来自公开数据源。不涉及隐私问题。”

“什么公开数据源?”

“天气数据、交通事故公开记录、区域疾病发病率、房价变动趋势……这些都是公开的。”

陆鸣看着她。林若溪的眼睛透过镜片反射着窗外灰白的光线,看起来清澈而平静,像一口深不见底的井。

“若溪,“他说,“你能保证这些变量都是合规的吗?”

“能。”

“那你能解释一下,为什么手机电池消耗模式会和死亡风险相关?”

林若溪的嘴角微微动了一下,像是在忍住一个笑容或者一个叹息。“电池消耗模式反映的是手机使用习惯。一个人如果突然改变了手机使用习惯——比如从频繁使用变成长时间待机——通常意味着生活发生了重大变化。可能住院了,可能失业了,可能抑郁了。这些变化本身就指向更高的死亡风险。这不是什么玄学,是行为信号。”

陆鸣想了想。这个解释在技术上是成立的,但他心里还是有一根刺扎着,隐隐作痛。

“那你说——如果我现在去申请一笔贷款,V4会怎么标注我的’特殊事件’?”

林若溪看着他,沉默了很久。窗外的雨声渐渐小了,天色从灰白变成了一种说不清楚的青灰色,像是一块被洗了太多次的旧布。

“我不知道,“她说,“但如果你想试试,我可以跑一下。”

“跑一下。”

林若溪转过身去,在键盘上敲了几下。屏幕上跳出几个窗口,数据像瀑布一样倾泻而下。然后她按了一下回车,屏幕上出现了一个进度条,缓慢地向前爬行。

二十秒后,结果出来了。

陆鸣的特殊事件概率:

“0.01%,“陆鸣读出来,“万分之一。不高。”

“确实不高,“林若溪说,“你的各项指标都很健康。规律运动,体检数据正常,社交关系稳定,没有高风险行为。万分之一基本上是同龄人的基线水平。”

陆鸣点了点头,站起来准备离开。走到门口时他停了一下,回头看着林若溪。

“那九个人——被标注死亡的那九个人——他们的文件里有标注理由吗?”

“有,“林若溪说,“但不是一句话能说清楚的。每个案例的因果链条都不一样。如果你需要,我可以整理一份详细的分析报告。”

“整理一份。本周五之前给我。”

“好。”

陆鸣走出去的时候,注意到林若溪桌上那盆多肉植物的叶片边缘有一圈淡红色,像是被什么东西灼伤了。他想问,但没有问。

周五之前,陆鸣没有等到林若溪的报告。

周三下午,他被拉进了一个紧急会议。CEO周哲亲自主持,参会的还有CTO赵彦明、合规总监陈思远、以及几个他不认识的人——穿着深色西装、表情严肃、自带笔记本电脑。

周哲是个四十出头的男人,创业之前在一家互联网大厂做产品副总裁。他长得不算英俊,但有一种让人信服的气质——可能是那种”我很清楚自己在做什么”的笃定感。他说话很快,但每个字都咬得很清楚。

“各位,“周哲站在会议室的白板前,手里拿着一支笔,“我们接到一个通知。金融监管局要对我们的V4模型做一次专项检查。”

会议室里安静了一瞬。

“检查的范围?“赵彦明问。他是CTO,五十出头,头发全白了,但精力充沛,说话时喜欢用手比划。

“全部模型架构、训练数据、特征工程、审批逻辑,“周哲说,“特别是’特殊事件’模块。”

陆鸣的心跳快了半拍。他看了林若溪一眼——她坐在角落里,和平时一样安静,看不出任何情绪波动。

“特殊事件模块怎么了?“合规总监陈思远问。他是个谨慎的人,说话之前总要先环顾四周,确认没有遗漏什么。

“监管局收到了一封匿名举报信,“周哲的语气平淡,但陆鸣能听出底下的紧张,“举报信称我们的V4模型使用了未经授权的个人数据,涉嫌侵犯隐私。具体来说——举报人声称模型使用了借款人的医疗记录、通信记录和位置轨迹。”

会议室里开始有人低声议论。陆鸣注意到那几个穿深色西装的人在笔记本上飞快地记录着什么。

“这是不实的,“赵彦明说,“我们的数据都经过了合规审核。”

“我知道,“周哲说,“但我们需要证明。所以我需要风控团队和算法团队配合,在三天之内准备完整的模型文档和数据溯源报告。若溪,这部分你来主导。”

林若溪点了点头。“好。”

会议结束后,陆鸣在走廊里追上了林若溪。

“若溪,“他压低声音,“那个报告——关于九个死亡案例的分析——还能按时给我吗?”

林若溪停下脚步,看着他。走廊里的人流在他们身边经过,像是河流绕过两块石头。

“可能需要推迟几天,“她说,“监管检查的事比较急。”

“没关系。但你先告诉我一件事——三千七百个变量里,有没有任何一个变量是你不该用的?”

林若溪摇头。“没有。”

“那匿名举报信是怎么回事?谁会举报我们?”

“我不知道。“她顿了顿,“但举报信里提到的三类数据——医疗记录、通信记录、位置轨迹——恰好是三个月前我在技术评审会上提出要申请授权的三类数据。当时合规团队否决了,说风险太高。”

“你的意思是——举报人知道你申请过这些数据授权?”

“参加技术评审会的人都知道。那天会议室里有十二个人。”

陆鸣沉默了。十二个人。任何一个人都有可能。

“还有一件事,“林若溪说,声音压得更低了,像是怕走廊里的墙壁也在偷听,“我检查了模型的运行日志——V4上线以来,有过三次未授权的代码修改。”

“什么?”

“三次。每次修改都是在深夜,用的是我的账号和权限。但我没有做过那些修改。”

陆鸣感到那阵寒意又回来了,这次不是从脊椎底部,而是从四面八方同时涌来,像是他突然被扔进了一片冰冷的海水里。

“有人用你的账号改了代码?”

“看起来是这样。但我不确定。修改的内容很隐蔽,只是在特殊事件模块的权重矩阵里做了微调——调整了几个变量的权重系数,幅度不超过0.001。如果不是刻意去查,根本看不出来。”

“调了哪些变量?”

林若溪从口袋里掏出一张折好的纸,展开递给他。上面用铅笔写着几行字:

变量 #2,847: 近30天内手机基站切换频率 → 权重 +0.0008
变量 #3,102: 社交网络活跃度变化率 → 权重 +0.0006
变量 #3,541: 近90天内银行卡交易时间分布偏度 → 权重 +0.0009
变量 #3,678: 可穿戴设备心率变异性(HRV)标准差 → 权重 +0.0011

“可穿戴设备数据?“陆鸣抬头。“我们有这个数据?”

“有。借款人在申请贷款时可以授权连接智能手表或手环,用健康数据换取更低的利率。大约有15%的借款人选择了这个选项。”

“那九个被标注死亡的人里面,有几个授权了可穿戴设备?”

“七个。”

七个。九个人里有七个。

陆鸣把纸折好放进口袋。“若溪,这件事暂时不要告诉任何人。我来查。”

“好。”

他转身走了两步,又回头。

“你的密码——多久换一次?”

“三个月。”

“今天晚上换一次。用双重认证。”

林若溪点头,目光透过镜片看着他,像是在确认什么。然后她低下头去,继续看她的代码。屏幕上的光映在她的镜片上,像两扇微小的窗户,通向一个陆鸣看不到的地方。

那天晚上,陆鸣没有回家。

他在办公室里待到凌晨两点,翻阅V4上线以来的所有运行日志。三十二层的办公室在夜晚变成了一个巨大的玻璃水族箱——他被包裹在灯光和代码之间,外面是深圳无尽的黑暗和星星点点的灯火。

三次未授权的代码修改分别发生在1月14日、2月3日和2月28日。时间都在凌晨两点到三点之间。修改用的账号确实是林若溪的,IP地址来自公司内网,MAC地址对应的是三十一层的一台工位机——但不是林若溪的工位机。

陆鸣查了那台工位机的使用记录。它属于一个叫方旭东的算法工程师,三个月前从团队离职了。

方旭东。陆鸣对这个名字有印象——高个子,戴棒球帽,说话嗓门很大,喜欢在办公室里走来走去,手里永远拿着一杯冰美式。他离开的时候没有太多的仪式,只是发了一封告别邮件,说”个人原因,另谋发展”。

陆鸣用公司的HR系统查了方旭东的离职信息。离职日期是12月31日。离职原因一栏写的是”个人原因”。推荐人一栏是空的。

他又查了方旭东在职期间的代码提交记录。发现了一个有趣的东西——方旭东在离职前一周,曾经向代码仓库提交过一个分支,叫做”deep_ocean”。

“深海”。

这个分支在提交后两天就被删除了,但在Git的历史记录里还留着痕迹。陆鸣打开那个分支的最后一次提交信息,看到了一段注释:

commit 7a3f8e2d
Author: Fang Xudong <[email protected]>
Date:   Dec 29 2025

deep_ocean: final integration test passed
- 特殊事件模块完整集成
- 因果推断引擎上线
- 所有概率权重校准完毕
- 死亡预测准确率: 100% (测试集 n=47)

⚠️ 注意:本模块基于实验性因果推断架构,
   部分特征来源未经合规审核。
   上线前需要法务确认。

死亡预测准确率:100%。测试集47人。

陆鸣盯着屏幕看了很久。窗外的深圳在深夜里发出低沉的嗡嗡声,像是某种巨大生物的呼吸。远处的高楼亮着零星的灯光,像海面上的浮标。

方旭东在离职之前就已经完成了这个模块。而且他知道准确率是100%——他测过了。他标注了”需要法务确认”,但他没有等法务确认就离开了。然后有人——可能是方旭东自己——用林若溪的账号在深夜悄悄修改了生产环境的代码,把”deep_ocean”的权重参数调整到了最优状态。

陆鸣拿起手机,想给林若溪打电话,但看了看时间——凌晨两点半——又放下了。他转而打开了公司的门禁系统记录,输入了方旭东的工号。

1月14日,凌晨1:47——方旭东的工卡刷了三十一层的门禁。 2月3日,凌晨2:12——方旭东的工卡刷了三十一层的门禁。 2月28日,凌晨1:33——方旭东的工卡刷了三十一层的门禁。

他没有交回工卡。或者有人没有注销他的权限。

陆鸣靠在椅背上,看着天花板。天花板上有一盏灯在微微闪烁,发出一种极其微弱的、几乎听不见的嗡嗡声。他突然觉得自己像是站在一片非常深的海的边缘,脚下的地面在慢慢变软。

第二天早上,陆鸣做的第一件事是去找周哲。

CEO的办公室在三十三层,比风控部门高一层,面积大两倍。周哲的办公桌上放着一台巨大的显示器,屏幕上永远开着三样东西:公司股价、日活用户数、和一个实时的信贷审批流。他每天早上七点到办公室,比所有人都早。

“方旭东,“陆鸣说,“你还记得这个人吗?”

周哲正在吃一个三明治,听了这话停下来嚼了两下,然后咽下去。“方旭东?算法团队的?离职那个?”

“对。他离职之后有没有跟你联系过?”

“没有。怎么了?”

陆鸣把他的发现说了。三次深夜代码修改、工卡记录、“deep_ocean”分支、测试集47人100%准确率。他一边说,一边观察周哲的表情。

周哲的表情很复杂。先是困惑,然后是惊讶,然后是一种陆鸣不太能辨认的东西——不是愤怒,不是担心,更像是……一种微妙的、转瞬即逝的满意。

“你确定?“周哲问。

“确定。门禁记录和Git日志都查过了。”

“方旭东现在人在哪里?”

“不知道。我查了他的社保记录,离职之后没有新的缴纳记录。手机号也换了。”

周哲把三明治放下,用纸巾擦了擦嘴。“这件事你先不要往外说。特别是监管检查期间。”

“但——”

“我知道你想说什么,“周哲的语气变得坚定,“V4是我们的核心产品。如果监管知道模型的特殊事件模块有问题——不管是技术问题还是合规问题——他们会要求我们下线整个模型。你知道那意味着什么。”

陆鸣知道。深瞳科技的V4模型上线以来,审批效率提高了40%,坏账率下降了0.37个百分点。按照公司的贷款规模,这两个数字意味着每年节省超过两亿元人民币。V4是公司的印钞机,是IPO故事的核心卖点,是周哲在投资人面前最大的筹码。

“但那九个人——”

“那九个人的死亡和我们的模型没有因果关系,“周哲说,“模型只是在他们的数据中发现了风险信号。就像天气预报预测会下雨——天气预报不会导致下雨。”

这个比喻让陆鸣觉得很不舒服。天气预报不会导致下雨,但如果天气预报能100%准确地预测每一场雨——那就不是天气预报了。那是别的什么东西。

“我需要找到方旭东,“陆鸣说。

“为什么?”

“因为他知道这个模型是怎么做到100%准确率的。如果我不搞清楚这一点,我没办法向监管解释。”

周哲沉默了一会儿。窗外的天终于放晴了,阳光从云层的缝隙里漏下来,照在他的脸上,把他的轮廓切成一半明一半暗。

“好,“他说,“你可以去找方旭东。但找到他之后,先跟我汇报。不要自己行动。”

“明白。”

陆鸣走到门口的时候,周哲叫住了他。

“陆鸣。”

“嗯?”

“V4预测你的死亡概率是多少?”

“万分之一。”

“那挺低的。“周哲笑了笑。“好好活着。”

陆鸣出了办公室,站在走廊里,看着窗外的深圳。阳光很好,整个城市像是被水洗过一样,干净得不太真实。远处的深圳湾在阳光下闪着碎金色的光,像一片巨大的鳞片。

找方旭东比陆鸣预想的容易。

他联系了方旭东离职前的直属上司——算法团队的组长郑浩然。郑浩然是个话很多的中年男人,对团队成员的私人情况了解得比HR还多。

“方旭东啊,“郑浩然在电话里说,“他回老家了。湖南常德。他走的时候跟我说了一句——‘我要回去钓鱼了’。我当时以为他在开玩笑。”

“他有家人的联系方式吗?”

“他爸妈应该在常德。他好像是独生子女。你要他的家庭地址?我找找。”

半小时后,陆鸣有了方旭东父母在常德的地址。他买了当天下午的高铁票。

在高铁上,他重新看了一遍那九个死亡案例的详细档案。这次他注意到了一个之前忽略的细节——九个人的贷款申请时间跨度是从今年1月到3月,但他们的死亡时间分布很不均匀。一月份只有一个,二月份两个,三月份六个。

死亡在加速。

或者说——模型在加速预测死亡。

高铁以每小时350公里的速度穿过广东和湖南的丘陵地带。窗外的风景在飞速后退,绿色的田野和灰色的村庄像是一幅被不断翻页的画卷。陆鸣闭上眼睛,试着想象方旭东的样子——高个子、棒球帽、冰美式——但脑子里浮现的却是一个模糊的轮廓,像是一个站在海边的人,背对着他,面朝大海。

常德是个不大的城市,沿着沅江铺开,有一种南方小城特有的散漫和安宁。陆鸣到达的时候已经是傍晚,天边挂着一层薄薄的晚霞,像被稀释的橘子汁洒在灰蓝色的布上。

方旭东父母的地址在城郊的一个老小区里。五层楼的红砖房,外墙斑驳,楼道里贴着物业通知和小广告。陆鸣爬上四楼,敲了门。

开门的是一个六十多岁的男人,头发花白,穿着一件洗得发白的格子衬衫。他的眼睛红红的,像是刚哭过,又像是好久没睡好。

“方旭东是您儿子吗?“陆鸣问。

老人看了他一会儿,然后点了点头。

“我叫陆鸣,是旭东以前的同事。我来找他——他手机打不通。”

老人的表情变了。不是变得更悲伤,而是变成了一种奇怪的、带着某种准备的平静,像是一个等了很久的人终于等到了要等的事。

“旭东住院了,“他说,“在市第一人民医院。肿瘤。脑子的。”

陆鸣愣住了。

“什么时候发现的?”

“去年十月。他在你们公司上班的时候就查出来了。没告诉你们吧?他没告诉任何人。说是良性的,说不碍事。但上个月开始恶化了。现在说话都——“老人停下来,用手背擦了一下眼角,“不太清楚了。”

陆鸣站在楼道里,手里捏着那张写着变量编号的纸条,感觉自己脚下的地面又一次在变软。方旭东——那个写了”deep_ocean”的人——自己就在一年前被判了死刑。他的模型预测别人的死亡,而他自己正走在一条他已经知道的路上。

“我能去看看他吗?”

“能。“老人从门后面拿出一串钥匙。“他在三楼肿瘤科。307床。你跟他说慢一点,他现在——反应慢了。“

市第一人民医院的肿瘤科在住院部的三楼,走廊里弥漫着消毒水和白粥混合的气味。墙壁是浅绿色的,灯光也是浅绿色的,像是有人故意要把这里的一切都泡在一层薄薄的、令人窒息的安宁里。

307床靠窗。方旭东半坐在床上,穿着蓝白条纹的病号服,头上戴着一顶灰色的毛线帽——大概是为了遮住化疗留下的光头。他的脸比陆鸣记忆中瘦了很多,颧骨突出来,但眼睛还是亮的,像两颗被擦干净的黑色弹珠。

他看到陆鸣的时候,嘴角动了动,像是想笑,但只做到了一个不太对称的微笑。

“陆——陆哥,“他说,声音沙哑,每个字都像是从砂纸上磨出来的,“你来——来了。”

“旭东。“陆鸣在床边坐下来,不知道该说什么。他准备了一肚子的问题——关于模型的、关于代码的、关于深夜门禁的——但看到方旭东的样子,那些问题突然都变得不重要了。

“你——是来问——模型的吧,“方旭东说。他说话很慢,但逻辑是清楚的,像是水流过一条被石头堵住的河道,缓慢但一直在流。

“你先别说话——”

“没事。“方旭东举起一只手,手指瘦得像树枝。“我知道——你会来。迟早的事。”

他从床头柜的抽屉里摸出一个U盘,递给陆鸣。U盘是黑色的,很旧,上面贴着一个白色的小标签,写着两个字:深海。

“所有的——东西都在里面,“方旭东说,“代码、训练日志、测试结果、还有一封——我写的信。”

“什么信?”

“解释信。解释——为什么。”

陆鸣握着那个U盘,感觉它的温度比体温低,像是握着一块深海里捞出来的石头。

“旭东,那个模型——‘deep_ocean’——为什么能做到100%的准确率?”

方旭东看着他,眼神里有一种陆鸣读不懂的东西。不是悲伤,不是骄傲,更像是一种很深的、很安静的倦意,像是有人在海里游了很久很久,终于看到了岸。

“因为它不是——在预测,“方旭东说,“它是在——读取。”

“读取什么?”

“读取一个人的——全部。他的过去、他的选择、他的身体、他的环境。所有这些加在一起——就构成了他的命运。不是概率。是——因果。一环扣一环。一个人中午吃什么、晚上几点睡、走路还是骑车、每个月花多少钱在超市、手机在半夜亮几次——这些东西看起来随机,但其实不随机。它们是一条河的每一滴水。你如果把每一滴水都看到了,你就知道这条河最终会流向哪里。”

“但这不可能——变量的数量不够。三千七百个变量不可能——”

“三千七百个——是显性的。“方旭东的嘴角又动了动,这次笑得更明显了一点。“但模型还学了——隐性的东西。变量之间的交互、高阶的非线性关系、时间的折叠效应。这些东西——不是人设计的。模型自己学出来的。我给了它一个目标——预测死亡——和足够多的数据,它自己找到了——路径。”

“什么路径?”

方旭东闭上眼睛,像是在回忆什么很远的事情。窗外是常德的傍晚,天空被晚霞染成了一片温暖的橙色,但病房里的灯光是冷白色的,把方旭东的影子拉成一条细长的灰线,投在白色的床单上。

“一条从生到死的路径,“他睁开眼睛,“每一步都可以被计算。不是预言。是——推演。就像你把一颗台球放在桌面上,你知道它初始的位置、速度、方向、桌面的摩擦力、空气的湿度——你就可以精确地算出它最终会停在哪里。人也是一颗台球。只不过桌面更复杂,变量更多。但只要你看得到所有的变量——”

他停下来喘了一口气。说话对他来说是一件费力的事,像是在逆着水流游泳。

“但你把模型上线了——用林若溪的账号。为什么?”

方旭东摇头。动作很轻微,但很坚定。“不是我。”

“不是你?但门禁记录——”

“门禁记录是真的。我去过公司。三次。但我不是去改代码。我是去——看模型的运行结果。看它预测对了多少。”

“那谁改了代码?”

方旭东沉默了很久。窗外的晚霞在一点一点地消退,橙色变成粉红色,粉红色变成紫色,紫色变成深蓝色,像一幅画在慢慢干掉。

“是周哲,“他说。

陆鸣的心跳停了一拍。

“周哲知道’deep_ocean’——我走之前给他演示过。他当时说——‘有意思,但风险太大,先不上线’。我以为他放弃了。但他没有。他把我的代码保留了,让若溪重新包装了一下,变成了V4的特殊事件模块。然后他自己——或者他让人——用若溪的账号做了那三次微调。”

“他为什么要这么做?”

方旭东的嘴角弯了一下,这次的笑比之前任何一次都苦。“你想想——一个信贷模型,如果可以精确地预测借款人的死亡时间,它就可以精确地计算每一笔贷款的风险。不是估算,是精确。这意味着什么?意味着公司可以——在法律允许的范围内——对那些即将死亡的人发放短期高息贷款,在死前收回本息。或者反过来——拒绝那些即将死亡的人的贷款申请,避免坏账。无论是哪种,都是——暴利。”

陆鸣站起来。他需要动一动能释放身体里的什么东西——愤怒、恐惧、还是一种更深层的、说不出来的绝望。他在病房里走了两步,又走回来。

“那九个人——”

“那九个人的贷款都是在他们被标注’死亡’之后被批准的,“方旭东说,“对吗?”

陆鸣回忆了一下。是的。九笔贷款,全部被批准了。其中六笔是短期高息产品——期限六到十二个月,利率远高于平均水平。而九个人,全部在贷款到期之前死亡。

“他们还没来得及还钱,“陆鸣说,声音干涩。

“但他们有保险,“方旭东说,“贷款捆绑了信用保险。借款人死亡,保险公司赔付。公司——零损失。甚至还有盈利,因为保险佣金。”

陆鸣的手在发抖。他把手插进口袋里,摸到了那张写着变量编号的纸条。纸条已经被揉得皱巴巴的,像是被一只手反复握紧又松开。

“旭东,“他说,“你知道这意味着什么。”

“我知道。“方旭东闭上眼睛。“所以我把所有的东西都存在了那个U盘里。代码、模型架构、训练数据的来源、三次代码修改的详细记录、周哲发给我的邮件——他让我删掉的那些。还有一封解释信。你回去之后——先看信。然后——你自己决定。”

“决定什么?”

“决定是把U盘交给监管,还是交给周哲,还是——谁也不交,扔进海里。”

陆鸣握紧了U盘。

“你呢?“他问。“你打算怎么办?”

方旭东睁开眼睛,看着天花板。天花板上有一盏日光灯,发出持续的白光,没有闪烁,没有嗡嗡声,稳定得像一种承诺。

“我?“他说。“我在等。”

“等什么?”

“等V4预测我的死亡日期。它应该已经算出来了——如果我的社保记录显示我在住院,如果我的可穿戴设备数据——不对,我没有可穿戴设备——但如果它能拿到我的病历——”

他停下来,轻轻笑了一声。那声笑很轻,轻得像是水面上一个泡沫破裂的声音。

“你说好笑不好笑,“他说,“我造了一个能预测死亡的东西,但我不知道它给我预测了什么。因为我没有申请贷款。“

陆鸣回到深圳的时候是凌晨四点。

他没有回家,直接去了公司。三十二层的办公室在夜晚是空的,只有应急灯发出微弱的绿光,像海底的荧光。他坐在工位上,把方旭东的U盘插进了电脑。

U盘里有七个文件夹。他先打开了那封”解释信”。

信是用Word写的,格式很整齐,像一篇正式的文档。标题是:关于”深海”模型——一份技术说明和个人陈述

信很长,大约五千字。方旭东在信里详细解释了”deep_ocean”的技术架构——它如何使用因果推断而非统计预测、如何从三千七百个显性变量中衍生出超过四万个隐性特征、如何通过一种他称之为”时间折叠”的数学技巧将一个人的全部数据压缩成一条从出生到死亡的因果路径。

但信的最后两段不是技术说明。

我在2025年9月被诊断出脑肿瘤。当时我已经完成了”deep_ocean”的原型。在诊断结果出来之前,我曾经用自己的数据跑过一次模型——纯粹是好奇。模型给我的死亡概率是94.7%,预计时间窗口:6-14个月。

我的诊断结果出来后,我查了医学术语,对照了模型的时间窗口。吻合。

我不知道该怎么描述那种感觉。就好像你站在海边,看着一片非常深非常深的海,你知道海底下有东西在看着你,而你无处可逃。模型不是在预言我的死亡——它是在告诉我,我的死亡是所有我已经做出的选择和所有已经发生在我身上的事情的总和。它不是命运。它是后果。

我之所以离开深瞳,不是因为我知道模型会被滥用。而是因为——我不想在一个能看见我的死亡的地方工作。

但周哲会使用这个模型。我知道他会。所以我把所有东西都留下了。给某个可能需要它们的人。

信的最后一行是:

陆鸣,如果你在看这封信——对不起,把你卷进来了。——方旭东

陆鸣关掉文档,在黑暗中坐了很久。

然后他打开了另一个文件夹——“emails”。里面是周哲和方旭东之间的邮件往来。最早的一封是去年10月14日,方旭东发给周哲的,主题是”deep_ocean演示请求”。周哲回复:“下周二下午三点,来我办公室。”

之后的邮件记录了三次演示——方旭东向周哲展示了模型的死亡预测能力。周哲的反应从最初的怀疑,到震惊,到最后的——

12月28日,周哲的最后一封邮件:

旭东,我仔细考虑了你的方案。deep_ocean的技术创新毋庸置疑,但合规风险太大。我们暂时不上线。不过我会保留代码,等时机成熟再说。

另外,听说你要离职?保重身体。有时间一起吃个饭。

方旭东没有回复这封邮件。

陆鸣在第二天早上做了一个决定。

他没有先去找周哲。他直接去了林若溪的工位。

三十一层已经开始有人了,早到的程序员们戴着耳机、盯着屏幕,像一排沉默的潜水员。林若溪比所有人都早——她永远七点半到。

“若溪,“陆鸣把U盘放在她的桌上,“这里面有’deep_ocean’的全部源代码和文档。我需要你做一个分析——确认这个模型是否在使用中被篡改过,以及篡改的具体内容。”

林若溪看着U盘,然后看着他。她的表情第一次有了变化——不是惊讶,是一种更复杂的东西,像是一个解了很久的谜题终于看到了答案的边缘。

“你已经找到方旭东了。”

“对。”

“他怎么样?”

“不好。”

林若溪低下头去,看着那盆多肉植物。它的叶片边缘的红色变得更深了,从淡红变成了暗红,像是一圈凝固的血。

“我知道方旭东做过这个模型,“她说,声音很轻。“他走之前跟我交接过一部分代码。当时我不明白那些代码是做什么的——注释很少,变量名都是编号。后来周哲让我重新写一遍特殊事件模块的时候,我才意识到——他给我的设计文档,和方旭东留下的代码架构,几乎一模一样。”

“你是说——周哲让你重新实现了方旭东的模型?”

“是。但他没有告诉我这个模型能做什么。他只说——‘这是一个新的因果推断框架,你把它实现出来’。我实现了。然后它上线了。然后——那些数字出来了。”

“100%的死亡率。”

“对。我当时也吓了一跳。但我以为是巧合——样本量太小,九个人什么都说明不了。直到你来找我。”

陆鸣看着她。“你现在知道这不是巧合了?”

“我知道。“林若溪摘下眼镜,用衣角擦了擦。没有眼镜的遮挡,她的眼睛看起来更大、更深、更脆弱。但只有一瞬间。她重新戴上眼镜,那个安静的、不动声色的林若溪又回来了。

“U盘里的东西——我会分析的。但我需要时间。”

“多久?”

“两天。”

“好。”

陆鸣站起来准备走。

“陆哥,“林若溪在背后叫住他。这是她第一次这么叫他。

“嗯?”

“那九个人——如果模型真的预测到了他们的死亡,而我们批准了他们的贷款——我们是不是——”

她没有说完。但陆鸣知道她想问什么。

“是,“他说,“我们是。“

十一

两天后,林若溪的分析结果出来了。

她用了一个陆鸣从没见过的工具——一个她自己写的代码比较程序,可以把两个版本的模型逐行对比,找出每一处差异。

结果是:V4的特殊事件模块和方旭东的”deep_ocean”在核心架构上完全一致。但有三处关键差异——就是那三次深夜修改的内容。修改的幅度很小,但效果很精准:它们把模型的”信号放大器”调高了,让死亡预测的灵敏度从原来的89%提高到了100%。

“信号放大器?“陆鸣问。

“模型内部有一个阈值控制机制,“林若溪解释,“当模型检测到一条因果链条指向死亡时,它会生成一个’信号强度’——0到1之间的数值。如果信号强度低于阈值,模型会把它标记为’低置信度’,不会显示在报告里。方旭东原始的阈值是0.7——也就是说,只有当模型有70%以上的信心时,才会标注’死亡’。但三次修改把阈值降到了0.3。”

“0.3?“陆鸣倒吸一口冷气。“那意味着——只要模型有30%的信心——”

“就会标注死亡。但问题是——因为’deep_ocean’的因果推断能力太强了,即使在0.3的阈值下,它的准确率依然是100%。它不是在降低标准——它是在降低门槛,让更多的死亡信号浮出水面。”

“所以那九个人——如果阈值没有降低——”

“可能只有两到三个人会被标注。其他的六七个——他们的因果链条信号强度在0.3到0.7之间——本来不会被显示出来。”

陆鸣闭上眼睛。六七个人。如果阈值没有被降低,六七个人可能不会被批准贷款——或者至少不会被批准短期高息贷款。他们可能还是会死——模型预测的是因果链条,不是概率——但他们不会在死前背上最后一笔沉重的债务。

“这六七个人的贷款——“他睁开眼睛,“总额多少?”

林若溪翻了一下数据。“四百二十万。其中保险赔付覆盖了三百九十万。公司的净损失——三万左右。但保险佣金收入——大约十一万。”

净赚八万。用六七条被标注为死亡的、真实的、即将消逝的生命。

陆鸣站起来。“我要去见周哲。”

“陆哥——“林若溪犹豫了一下,“你确定?”

“不确定。但我要去。“

十二

周哲在三十三层的办公室里,面前摊着一份监管检查的准备材料。看到陆鸣进来,他抬起头,表情一如既往地平静而自信。

“方旭东找到了?“他问。

“找到了。”

“在哪里?”

“常德。住院了。脑肿瘤。”

周哲的表情没有变化。” sorry to hear that。他跟你说了什么?”

陆鸣把U盘放在周哲的桌上。黑色的外壳在日光灯下发出暗哑的光,像一块被海水磨圆了的石头。

“周哲,“他说,“我知道’deep_ocean’。我知道你让林若溪重新实现了它。我知道你自己用她的账号做了三次代码修改。我知道你降低了死亡预测的阈值。我知道你批准了九笔对即将死亡的人的短期高息贷款。我知道公司从中赚了八万块钱。”

周哲看着U盘,然后看着陆鸣。他的表情终于有了变化——但不是陆鸣预想的愤怒或恐惧。而是一种缓慢的、冰冷的平静,像是水面在结冰。

“八万块钱,“周哲说,“你觉得我做这些是为了八万块钱?”

“那你告诉我——是为了什么?”

周哲站起来,走到窗前。深圳的天际线在晨光中展开,高楼密密麻麻,像一片钢铁和玻璃的森林。

“你知道V4上线之前,我们的坏账率是多少吗?“周哲说。“2.1%。听起来不高,但按照我们的贷款规模——每年十二个亿。十二个亿的坏账。其中有多少是借款人死亡导致的?大约8%。也就是将近一个亿。一个亿,陆鸣。每年有一个亿的贷款因为借款人死亡而变成坏账。”

“所以你——”

“所以我让模型去识别那些即将死亡的人,不是为了让公司赚八万块钱的保险佣金。是为了——不把钱借给即将死亡的人。或者至少——用更高的利率来对冲风险。这是风险管理,陆鸣。这就是你的工作。”

“但你没有拒绝他们的贷款。你批准了。”

周哲转过身来。他的眼睛里有一种陆鸣从来没有见过的东西——不是冷血,不是贪婪,而是一种更可怕的、更纯粹的东西:确信。他完全相信自己在做正确的事。

“我批准了九笔,“周哲说,“但同时——V4拒绝了一百三十七笔来自高风险借款人的申请。一百三十七笔。其中有多少人真的在十二个月内死亡?我不知道——因为我们没有追踪被拒绝的申请者。但按照模型的准确率——可能在一百个以上。一百个人的贷款被拒绝,意味着他们的家庭不会在他们死后背上债务。这是不是好事?”

陆鸣沉默了。他不得不承认——这个问题没有简单的答案。

“你站在道德的高地上很舒服,“周哲继续说,“但你想过没有——如果你是一个即将在六个月内死亡的人,你是希望有人告诉你真相,让你在最后的日子里好好安排一切,还是希望没人告诉你,让你在不知不觉中借一笔你还不起的贷款,然后死后让你的家人来还?”

“这不是——“陆鸣开口,但被周哲打断了。

“我知道你想说什么。你想说——我们无权决定谁该知道、谁不该知道。你想说——这是上帝的事。但陆鸣,上帝不存在。数据存在。算法存在。因果链条存在。我们能看见——所以我们有责任。”

周哲走回桌前,把U盘拿起来,在手指间转了两圈。

“你要怎么做?“他问。“把U盘交给监管?”

陆鸣看着他。窗外的阳光很好,但办公室里有一种看不见的寒意在流动,像是空调的温度被调低了几度。

“我要回去想想,“他说。

“好。想好了告诉我。”

陆鸣走到门口,周哲又叫住了他。

“陆鸣。”

“嗯?”

“我再问你一次——V4预测你的死亡概率是多少?”

“万分之一。”

“那你的因果链条呢?你有看过吗?”

“没有。”

“我劝你别看。“周哲把U盘放在桌上,朝他微微一笑。“有些东西,看见了就回不去了。“

十三

陆鸣没有听周哲的话。

那天晚上,他在办公室里待到很晚。窗外的深圳在夜晚变成了一片灯火的海,密密麻麻的光点像是无数只深海生物的眼睛,在黑暗中闪烁。

他打开了自己的档案。不是贷款档案——他没有申请贷款。但作为公司的VP,他的基本信息——年龄、体检数据、社保记录、手机使用数据——都在公司的系统里。V4可以随时调用这些数据。

他在键盘上敲了几个键,启动了V4的”特殊事件”分析模块,输入了自己的ID。

进度条开始爬行。

他看着进度条一格一格地前进,心跳越来越快。这种感觉像什么?像站在跳水台上,看着下面的水面——你知道跳下去不会死,但你不知道水底下有什么。

结果出来了。

陆鸣的特殊事件概率(更新版):

4.7%。

万分之一变成了百分之四点七。在过去两周里,他的死亡概率从0.01%上升到了4.7%。

陆鸣盯着屏幕,感觉空气被抽走了。他的手指在发抖,鼠标差点从手里滑落。

他点开了”因果路径”的详细分析。

模型列出了导致死亡概率飙升的几个关键因素:

  1. 近14天内睡眠时长标准差增大(变量 #1,823):最近两周,他的睡眠时间从规律的7小时变成了3-10小时不等。波动越大,风险越高。
  2. 近7天内手机基站切换频率异常(变量 #2,847):他去了常德——这是一个异常的地理位置变动。
  3. 近30天内社交网络互动频率下降(变量 #3,102):他这些天忙于调查,几乎没有和任何朋友联系。
  4. 心率变异性(HRV)下降(变量 #3,678):他戴着一块Apple Watch——这是他三年前申请公司福利时领的,和个人健康账户绑定了。最近两周,他的HRV数据持续下降——这是压力过大的生理指标。

每一个因素单独来看都是正常的。一个出差、一段忙碌的时期、一些睡眠不足——谁没有过?但V4看到的是它们的组合。四个因素同时出现,在因果链条上形成了一个环——睡眠紊乱导致压力升高,压力升高导致社交退缩,社交退缩导致更大的压力,更大的压力导致更差的睡眠。

一个正反馈循环。

模型看到了这个循环,然后沿着它往前推演。如果循环不被打破——如果陆鸣继续保持现在的状态——它会加速。更多的失眠,更多的压力,更多的孤立。然后在某个节点——一个临界点——身体会承受不住。

模型没有预测他会”怎么死”。它只是说:因果链条正在快速收紧。4.7%是一个信号——不是最终结果,而是一个警告。

就像方旭东说的:它不是在预言。它是在告诉你后果。

陆鸣关掉了屏幕,靠在椅背上。办公室里很安静,只有空调的嗡嗡声。他看着天花板——那盏闪烁的灯今天没有闪烁,稳定地发着白光。

他拿起手机,打了一个电话。

“喂?“对方是一个女人的声音,有些困倦。

“是我,“陆鸣说。“对不起——把你吵醒了。”

“几点了?”

“快两点了。”

“你还在办公室?”

“嗯。”

电话那头沉默了一会儿。然后他妻子说:“回来吧。明天再说。”

“好。”

他挂了电话,站起来,拿起外套。走到电梯口的时候,他停了一步,回头看了一眼自己的办公室。灯光从门缝里漏出来,在地毯上画了一条细长的光线,像是一条从深海里延伸到岸边的光路。

他没有回去。他按了电梯的下行键,走进电梯,按下负一层的按钮。电梯门关上的那一刻,他在镜面般的不锈钢门上看到了自己的脸——疲惫、苍白,但眼神里有一种东西在燃烧。不是愤怒,不是恐惧。是一种更安静、更持久的东西。

像是一个人终于看清了海面下的轮廓,然后决定——不管那是什么,他都要潜下去看个究竟。

尾声

三天后,陆鸣做了三件事。

第一件:他把U盘的内容——全部内容——打包成了一份加密文件,上传到了一个只有他和林若溪知道的云存储空间。不是交给监管,不是交给周哲,而是保存起来。作为证据。作为记录。作为这个世界上曾经存在过一个能看见死亡的东西的证明。

第二件:他用VP的权限,把V4模型里”特殊事件”模块的死亡预测阈值从0.3回调到了方旭东原始设定的0.7。他没有告诉周哲。这是他能做的最安全的事——不会让模型下线,不会引发监管风暴,但会让那些处于”灰色地带”的死亡预测不再浮出水面。

第三件:他给方旭东写了一封邮件。没有附件,没有代码,没有数据。只有一行字:

旭东,我把阈值调回去了。海还是那片海,但岸上的灯少了几盏。

方旭东没有回复。三天后,陆鸣收到了一条来自常德的短信,发信人是方旭东的父亲:

旭东今天凌晨走了。走的时候很安静,没有痛苦。谢谢你来看他。

陆鸣读完短信,把它截了图,存在了手机里。然后他关掉手机,走到窗前。

深圳的下午,阳光从西边斜射过来,在玻璃幕墙上画出一片金色的光斑。楼下科技园的人群在来来往往,像一条流动的河。他们中的每一个人都携带着自己的数据——手机信号、消费记录、社交关系、心率变化、睡眠周期——像是一个个透明的、被数字包裹的灵魂,在城市的血管里流淌。

他们不知道,在他们头顶的三十二层,有一双眼睛可以看到他们每个人生命的全貌——从第一声啼哭到最后一口气。不是上帝的眼睛,是算法的眼睛。

陆鸣站在窗前,看着那些人。他突然想起方旭东在病床上说的最后一句话。不是关于模型的,不是关于代码的,而是一句看起来毫无关联的话:

“陆哥,你知道为什么深海里的鱼都不长眼睛吗?”

为什么?

“因为在那个深度,没有任何光可以看。什么都看不见——所以眼睛退化掉了。但如果有一条鱼——只有一条——长出了眼睛呢?它会看到什么?它会看到所有其他鱼都看不到的东西。它会成为——整个深海里最孤独的鱼。”

陆鸣当时没有回答。现在他站在窗前,终于想到了答案:

它看到的不是黑暗。它看到的,是所有其他鱼正在游向的方向——以及它们最终会停下来的地方。

它看到的是命运的形状。而命运的形状,和数字的形状一模一样——冰冷、精确、不可更改。

窗外,深圳湾的海水在阳光下闪着碎金色的光。海面很平静,看不到任何波纹。但陆鸣知道,在水面之下,在几十米、几百米、几千米的深处,有一片巨大的、永恒的黑暗。

那片黑暗里,有无数条鱼在游。它们不知道自己在哪里,不知道自己在往哪里去,不知道自己什么时候会停下来。

但有一双眼睛知道。

那双眼睛不是方的,不是圆的,不是任何人类的形状。

那双眼睛由三千七百个显性变量和四万个隐性特征组成。它们不会眨眼,不会流泪,不会移开视线。

它们只是看着。一直看着。

从海面到海底,从生到死,从第一个数字到最后一个数字。

一直看着。


(完)