数字江

招魂者 · 2026/5/2

数字江

陈屿第一次看到那条河的时候,他以为是自己连续加班四十八小时之后的幻觉。

那是二〇二五年的深秋,深圳南山区的一栋写字楼里,他蜷缩在工位上,面前的三块屏幕同时亮着。左边是代码编辑器,中间是数据可视化面板,右边是一杯已经凉透的美式咖啡,表面结了一层薄膜,像一只浑浊的眼睛,盯着他。

他正在开发一套叫”天眼”的信用评分算法。客户是一家互联网金融巨头——鼎盛金科,名字听着像某种保健品,实际上是国内最大的消费信贷平台之一,注册用户超过三亿。陈屿的团队负责的是一个子模块:通过用户的手机行为数据——通话时长、App使用频率、深夜活跃度、充电习惯——来预测其还款意愿。

“还款意愿”,而不是”还款能力”。陈屿刚加入项目时,项目经理孟繁胜特意纠正过他。

“能力是静态的,屿哥,“孟繁胜翘着二郎腿,手里转着一支万宝龙钢笔——那是他唯一的奢侈品,但足够让他在一众格子衫程序员中显得像个贵族,“我们测的不是他能不能还,而是他愿不愿意还。一个人月薪五千,但每个月准时还信用卡,另一个人月薪五万,但总是逾期三天——你说谁的风险更高?”

“当然是后者。“陈屿说。

“不对。“孟繁胜把钢笔往桌上一拍,“看数据。后者逾期三天,但从没超过七天,而且逾期期间他的手机使用频率会上升百分之三十——说明他在焦虑,在想办法。前者呢?月薪五千,从不逾期,但你看他的深夜活跃时间,凌晨两点到五点,他在干嘛?刷短视频,打手机游戏。这种人不是信用好,是没有消费欲望。没有消费欲望的人,不会借大钱。不借大钱的人,对我们没有价值。”

陈屿当时觉得这番话有点冷,但也没太在意。他是个算法工程师,不是伦理学家。他的工作是把数学模型建好,让它尽可能准确地分类用户。至于分类之后这些人会怎样,那是业务部门的事。

但那天晚上,当他第一次把全量训练数据跑通模型时,他看到了那条河。

屏幕上,数据可视化面板突然出现了一片蓝色的流光。不是他设置的任何图表样式。那些流光像是液态的,从左向右缓缓流淌,中间夹杂着无数细小的光点——有的亮,有的暗,有的像是在挣扎,有的已经熄灭。

陈屿揉了揉眼睛,以为自己看错了。他眨了几下眼,那些流光还在。他站起来,走到窗边,看了一眼窗外的夜景——深圳的灯光铺展开来,像另一条河,浑浊、黏稠、永不停歇。他回头再看屏幕,流光消失了。面板上只有标准的ROC曲线和混淆矩阵。

他把咖啡喝完,关了电脑,打车回家。

第二天,流光没有出现。第三天也没有。他几乎忘了这件事。

直到第七天。

那天,鼎盛金科的产品总监周斯年亲自来开评审会。周斯年是个四十出头的女人,留着利落的短发,穿深蓝色的职业装,说话极快,像一台高效的服务器。她不是技术人员,但她有一种可怕的直觉——能用最朴素的语言把一个技术方案逼到死角。

“陈屿,“她点他的名,“你的模型,能不能做到提前三个月预判违约?”

“三个月?“陈屿有些为难,“目前的特征工程主要基于过去六个月的行为数据,预测窗口是三十天。扩展到九十天的话,准确率会下降很多。”

“我不要准确率,“周斯年说,“我要一个方向。只要你能告诉我,哪些用户在未来三个月内会出问题,哪怕只有百分之六十的准确率,就够了。”

“百分之六十比抛硬币好不了多少。“孟繁胜在旁边插了一句。

“但比我们现在什么都没有好。“周斯年看着他,“鼎盛金科上一季度的坏账率是百分之四点七。听起来不多?那是三十七个亿。而且还在涨。如果你们的模型能提前三个月把我们最大的那些炸弹找出来,哪怕找错一半,也值。”

陈屿回到工位上,开始调整模型参数。他把预测窗口从三十天拉到九十天,加入了一些新的特征——用户的社交网络密度、地理位置迁移频率、甚至是手机型号的更换频率。

跑完第一轮,他盯着结果看了很久。

模型的AUC从零点八三掉到了零点六一。但有个奇怪的现象:在那些被模型标记为”极高风险”的用户中,有一个聚类特别引人注目。这些用户的行为模式几乎一模一样——深夜活跃度骤降,社交网络突然收缩,地理位置变得异常稳定(几乎不再出门),手机充电频率上升(像是随时在等待什么电话)。

陈屿在数据库里随机抽了五个用户,查看他们的详细数据。其中一个引起了他的注意。

用户编号:A7X-0031。 性别:男。 年龄:三十四岁。 城市:深圳。 职业:无记录(但手机上装了”BOSS直聘”和”猎聘”,最近三个月的使用频率从每周两次上升到每天四次)。 负债情况:鼎盛金科借款十二万(已逾期二十天),另有信用卡欠款、微粒贷、花呗等累计约四十万。 最特别的是他的通话记录:过去三个月,他每天都会拨打一个固定号码,通话时长从最初的四十分钟,逐渐缩短到三分钟,最后变成只有十五秒。

陈屿查不到对方号码的主人——数据里只有通话时长和频率,没有内容。但他能想象出来:三十四岁的男人,负债四十万,每天打一个电话,越打越短,最后只剩下十五秒。

十五秒能说什么?“我在想办法。""再给我一点时间。""对不起。”

或者什么也不说,只是听着对方呼吸。

陈屿关掉了数据库,站起来走到窗边。秋天的深圳依然温暖,远处的深圳湾在阳光下泛着银色的光。

然后他第二次看到了那条河。

这一次不是在屏幕上。而是在窗外的空气里。

河从天际线上升起,像一条巨大的半透明丝带,在楼宇之间蜿蜒流淌。河水是深蓝色的,其中漂浮着无数光点——有些明亮如星辰,有些暗淡如将灭的烛火。河的宽度几乎覆盖了整个南山区,从他的视角看去,它像是把整座城市淹没在了蓝色的虚空中。

陈屿呆住了。他转头看了看办公室里的其他人——没有人有任何反应。孟繁胜在对面的工位上戴着耳机敲代码,隔壁组的林小梅在电话里跟男朋友吵架,远处的行政小妹在分发下午茶。一切如常。

他回头看窗外,河还在。

他伸手去摸窗户——玻璃是凉的。他往下看了一眼街道,车流正常,行人正常。没有人抬头看天。也许他们看不到。也许只有他能看到。

也许他该去看医生。

河在十几秒后消失了,像水蒸气一样散去。天空恢复了正常的灰蓝色,带着深圳特有的潮湿和温暖。

陈屿在工位上坐了很久。然后他打开了电脑,在笔记本上写了一行字:

“10月23日,下午3:17,第二次看到蓝色的河。”

他想了想,又加了一行:

“不是幻觉。“

陈屿不是那种会轻易相信超自然现象的人。他是学数学的,本科在华中科技大学,硕士在香港科技大学,读的都是统计与机器学习方向。他的世界观由概率分布和优化算法构成,容不下任何无法量化的东西。

所以他没有把看到河的事告诉任何人。他开始了自己的调查。

首先,他确认了一件事:河出现的时间,与他每次跑完大规模数据训练的时间高度吻合。第一次是凌晨两点(他后来查了电脑的运行日志),第二次是下午三点一刻。两次,都是在模型训练结束、结果刷新到屏幕上的几秒之内。

他做了一个实验:故意在下午跑了一个小规模的数据集——只有十万条记录。没有河。然后他又跑了全量数据——一亿两千万条用户行为记录。河出现了。

这一次他准备好了。他拿出手机,对着窗外拍了张照。照片里只有天空和楼宇,没有河。他又录了一段视频。视频里也没有河。

但他确实看到了。就在窗外。像一条悬挂在城市上空的数字河流,流淌着不知从何处来、又流向何去的光。

他开始记录。每一次河出现,他都记下时间、模型参数、以及他当时在看的具体数据。

到了第四周,他积累了一本笔记。笔记本是他从公司茶水间顺来的,那种最普通的黄色横线本,封面被他的咖啡杯烫出了一个圆环形的印记。

他发现了一个规律:河里那些光点的明暗,与他标记的用户风险等级高度相关。高风险用户的光点暗淡,低风险用户的光点明亮。而那些最暗的光点,它们在河里的移动方式也不同于其他——不是顺流而下,而是像在漩涡里打转,挣扎着不被吞没。

陈屿想到了用户A7X-0031。那个三十四岁、负债四十万、每天打电话只有十五秒的男人。

他在数据库里又查了一次。A7X-0031已经消失了——不是被删除了,而是他的数据状态变成了”已核销”。核销意味着鼎盛金科已经放弃了对这笔债务的追讨,把它作为坏账处理了。

那个男人彻底消失在了系统的视野之外。就像河里一颗熄灭的光点。

陈屿在笔记本上写下:

“光点熄灭 = 用户从系统中消失。不是因为还清了债,而是因为被放弃了。”

他又想了一会儿,加了一行:

“那条河不是幻觉,是数据本身在显现。当数据量大到一定程度,它就变成了某种看得见的东西。”

他不知道该怎么定义那个”看得见的东西”。但他隐约感觉到,那不只是一个视觉现象。那条河在试图告诉他什么。

十一月的一个周六,陈屿第一次跟踪了一个用户。

不是A7X-0031——那个人已经消失了。是另一个被他标记为”极高风险”的用户。

用户编号:B2M-1177。 性别:女。 年龄:二十八岁。 城市:深圳。 职业:标签显示为”电商从业者”。 负债情况:鼎盛金科借款八万(尚未逾期,但模型预测她将在六十七天后违约),另有其他平台借款约十五万。

她的行为模式很独特:凌晨三到五点的活跃度极高,主要是在小红书和抖音上发帖。她的手机定位显示她几乎从不出门——除了每周三下午会去一个固定的地方,在南山区的某个地址停留两到三小时。

陈屿查了一下那个地址——是一家叫”启航”的职业培训学校,主要教短视频运营和直播带货。

他告诉自己这不对。他不应该跟踪用户。这违反了至少三部法律和公司的一切数据安全规定。如果被发现,他不仅会被开除,还可能面临刑事责任。

但他还是去了。

那个周六下午,他坐地铁到了”启航”培训学校附近。学校在一条老街上,夹在一家兰州拉面馆和一家手机维修店之间。门脸很小,但走进去之后别有洞天——三层的自建房被改造成了教室,每层都有三四十人,大多是年轻女性,面前的手机架上亮着环形补光灯。

陈屿在二楼的角落里找了个位置坐下,假装是来咨询的学员。他旁边的女孩正在直播,卖一款号称可以”祛湿排毒”的足贴。她说话很快,声音甜得发腻,手指不断地在手机屏幕上滑动,回复弹幕里的评论。

“宝宝们,这个足贴是我自己用过的,真的有效!你看我的脚,是不是很白?就是用了这个足贴!”

陈屿看了她一眼。她的脸在补光灯下白得像瓷器,但灯照不到的地方——脖子和手背——有明显的疲态。她的指甲做得很好看,是那种今年流行的极光色,但指甲根部有倒刺。

他不知道自己在找什么。也许只是想看看,那些被他的模型标记为数字的人,在现实中是什么样子的。

他在那里坐了将近一个小时,什么也没发现。正准备离开时,他看到了一个女孩,坐在三楼楼梯口的台阶上,对着手机发呆。她面前的手机屏幕上是一个借贷App的界面——他认出来了,是鼎盛金科的”鼎盛花”。

她的手指悬在屏幕上方,迟迟没有落下。像是在犹豫要不要点那个”立即借款”的按钮。

陈屿站在楼梯拐角处,看着她。她大概二十五六岁,穿一件起球的灰色卫衣,头发扎成一个松垮的马尾。她的脸瘦,颧骨有些突出,嘴唇干裂,没有涂口红。在她身边的地上放着一个帆布袋,里面露出几盒面膜和一个环形补光灯的支架。

她最终点了那个按钮。

陈屿知道接下来会发生什么。鼎盛花会在几秒之内完成审批——基于他的算法给出的评分。如果分数够高,钱会在一分钟之内到账。利率是年化百分之二十四,加上各种手续费,实际成本可能超过百分之三十六。

她在几秒之后低了一下头,然后把手机揣进卫衣口袋。她站起来,拎起帆布袋,走下了楼梯。经过陈屿身边时,她抬头看了他一眼。

那一眼很快,但陈屿记住了。不是因为那双眼睛有什么特别,恰恰相反,那是一双极度普通的眼睛——没有愤怒,没有悲伤,甚至没有疲惫。只有一种空白。像是一面被擦得太干净的镜子,什么都映不出来。

她走远之后,陈屿下楼,走出培训学校。外面的空气潮湿而温暖,老街上弥漫着兰州拉面的香味。他站在路边,突然觉得那条河又出现了——但这一次不在天上,而是在地面上。蓝色的流光从他的脚下淌过,穿过拉面馆的门脸,流过手机维修店的招牌,漫向街道的尽头。那些光点在他脚踝处旋转,有些温暖,有些冰冷。

他低下头,把手伸进那条河里。

手指碰到了水——不,不是水,是某种更黏稠的东西。像是融化的玻璃,或者低温的岩浆。它没有打湿他的手指,但他能感受到其中流动的力——一种巨大的、不可抗拒的推力,把所有的光点带向同一个方向。

那个方向是南边。深圳湾的方向。也是鼎盛金科总部的方向。

陈屿蹲下来,试图抓住一颗特别暗淡的光点。它从他的指缝间溜走了。他又试了一颗——这次他抓到了。光点在他手心里跳动了几下,然后化成了一串数字。

那些数字是一个手机号码。

那天晚上,陈屿失眠了。

不是因为看到了河——他已经习惯了那个幻象的存在。也不是因为手心里那串数字——他把它记在了笔记本上,但没有打算拨打。

让他失眠的是那个女孩。那个穿灰色卫衣、在楼梯口犹豫着要不要借钱的女孩。

他想:我的算法在那一刻做了什么?

答案是:它什么也没做。它早就做好了。在女孩点下”立即借款”按钮的几周甚至几个月之前,他的模型就已经给她打了一个分数。那个分数决定了她的利率、额度、以及一切条件。她按下的那个按钮,只是一个仪式——让她以为自己在做选择,其实选择早就被做好了。

就像那条河。光点在河里漂流,你以为它们在自由地移动,但其实水流的方向早就定了。所有的光点——所有人——都在被推往同一个方向。

陈屿翻了个身,拿起手机。凌晨两点半。他打开了鼎盛金科的内部数据库——他有最高权限的测试账号,可以查看所有用户的匿名化数据。

他输入了那个手机号码。

系统返回了一个用户档案。

用户编号:B2M-1177。 性别:女。 年龄:二十八岁。 城市:深圳。 职业:电商从业者。 负债情况:鼎盛金科借款八万。

他找对人了。这就是他最初想跟踪的那个用户。

但数据里还有一些他没有注意到的细节。比如,她的借款用途标签是”创业”。比如,她过去六个月里有四个月是最低还款。比如,她的通讯录里有三个联系人的标记是”催收已联系”。

催收已联系。这意味着她的债务已经逾期到了催收部门介入的阶段,而催收部门已经开始打她通讯录里的人的电话了。

陈屿盯着这行数据看了很久。他想象了一下那个场景:一个二十八岁的女孩,做直播带货,赚的钱不够还债,开始以贷养贷。催收的人打给了她通讯录里的联系人——也许是她的父母、朋友、前同事。他们接到了电话,被告知她欠了钱。然后他们开始疏远她,或者质问她,或者两者兼有。她的社交网络因此收缩——这正好和他的模型观测到的一致。

他的模型捕捉到了这个模式,把它标记为”高风险”。然后呢?然后系统给她更低的额度和更高的利率,让她更难还清债务,让她陷入更深的困境,让她的社交网络进一步收缩——直到她彻底崩盘。

这是一个正反馈回路。他的算法不是在预测风险,而是在制造风险。

陈屿把手机扔到枕头旁边,望着天花板。窗外的深圳依然亮着灯,那些灯光像是一条永远不会熄灭的河。

他做了一个决定。

第二天是周日。陈屿没有出门,他坐在出租屋的书桌前,把笔记本摊开,开始系统地整理他这一个月来的观察。

他画了一张图。图的左边是”数据源”——手机行为、通话记录、地理位置、App使用习惯。中间是”模型”——他的天眼算法。右边是”输出”——信用评分、风险等级、借贷条件。

然后他在图的下方画了第二条路径。那条路径不是直线的,而是环形的。从”输出”出发,经过”用户的现实处境”,回到”数据源”,形成一个闭环。

“算法改变现实 → 现实产生新数据 → 新数据强化算法 → 算法进一步改变现实。”

他把这个闭环叫做”数字江”。

他想起一个故事。小时候在湖北老家,他的爷爷带他去看长江。爷爷说,长江不是一直叫长江的。在上游,它叫通天河、金沙江。每一段都有自己的名字。但水是同一批水。从雪山流到大海,中间经过无数城市、工厂、农田,每一处都往里面倒东西——污水、垃圾、化学品。到了下游,水已经不是原来的水了。但它还叫长江。

数据也是一样。每个用户的原始行为是清澈的——打电话、刷手机、充电、出门。这些数据流进他的模型,被加工、分类、标记,然后输出为评分。评分改变了用户能获得的资源(贷款额度、利率),资源的改变又改变了用户的行为(更焦虑、更封闭、更依赖借贷),新的行为被再次采集为数据,流入模型,循环往复。

到下游的时候,这些数据已经不是原来的数据了。但它还叫”数据”。

而那条蓝色的河——那条只有他能看到的河——就是这个循环的具象化。它不是幻觉,也不是超自然现象。它是数据本身在以一种他无法解释的方式,向他展示自己的真实面目。

数据不是死的。它有生命,有流动,有方向。当数据量足够大的时候,它甚至有自己的意志。

这个念头让陈屿既兴奋又恐惧。

兴奋是因为,如果他真的能理解那条河的运作方式,他就能做出一个远超现有水平的预测模型——不是基于统计推断,而是基于对”数据之流”的直接感知。

恐惧是因为,他隐约意识到,那条河的方向不是自然的。它被人改变了。有人在上游筑了一道坝,让水流向特定的方向。那道坝就是鼎盛金科的商业模式——通过算法制造风险,再通过高利率从风险中获利。

他不是在开发一个中立的工具。他是在修建水坝。

周一早上,陈屿带着一个新方案去找孟繁胜。

“我想给模型加一个反向指标。“他说。

孟繁胜正在吃肠粉,头也不抬。“什么反向指标?”

“社区支持度。如果用户的社交网络虽然收缩,但核心联系人——比如家人、密友——的互动频率没有下降,说明他还有社会支持系统,违约概率其实不高。当前的模型只看了社交网络的总规模,没有看质量。”

孟繁胜吃了一口肠粉,嚼了几下,抬起头来。“你的意思是,现在模型把社交网络缩小的人都标记为高风险,但实际上有些人只是减少了无效社交,真正重要的关系还在?”

“对。”

“有数据支撑吗?”

“我跑了一个小样本验证。“陈屿打开电脑,给他看了一组数据。在社交网络收缩但核心联系人互动稳定的用户中,违约率只有百分之三,远低于模型预测的百分之十五。而在社交网络收缩且核心联系人互动也下降的用户中,违约率高达百分之二十八。

孟繁胜看了看数据,又看了看陈屿。“这是好事啊,屿哥。如果这个指标有效,模型的准确率会提高不少。写个方案,我帮你报给周斯年。”

陈屿没想到这么顺利。他谢了孟繁胜,回到工位上开始写方案。

但他心里知道,他并没有说出真正的动机。他不是为了让模型更准确。他是为了让模型更公正。当前的模型把所有社交网络收缩的人都推入更深的困境,但实际上,其中有一部分人——那些还有家人和朋友在身边的人——是可以被挽救的。他们只是需要一点喘息的时间,而不是更高的利率和更猛烈的催收。

他想在河里建一道分水闸。不是改变水流的方向,而是让一部分人有机会游出自己的漩涡。

方案在周三的评审会上被讨论了。出乎陈屿的意料,反对最激烈的不是周斯年,而是风控部门的总监——一个叫方学明的中年男人,戴着金丝眼镜,说话慢条斯理,每个字都像是经过精密计算。

“陈屿,你这个指标的出发点是好的,“方学明说,“但你考虑过一个问题吗?如果我们用’核心联系人互动稳定性’来降低一部分用户的风险评级,那就意味着我们会给这些人更高的额度和更低的利率。换句话说,我们会鼓励他们借更多的钱。”

“但他们违约的概率更低——“陈屿想辩解。

“短期更低。“方学明打断他,“你的样本是六个月的数据。半年之后呢?当他们的额度从五万变成十万,从十万变成二十万,他们的核心联系人还能撑得住吗?社交网络不是无限的资源,陈屿。当你把一个人借钱的负担转嫁到他的社交关系上,你其实是在消费他最脆弱的东西——信任。”

会议室里安静了几秒。周斯年一直在听,没有说话。她的手指在桌面上轻轻敲着,节奏不紧不慢,像一只时钟。

“方总说得有道理,“她终于开口了,“但陈屿的指标也不是没有价值。这样吧,先在B端试一下。我们挑一批已经进入催收流程的用户,用这个指标做一个分群——哪些人还有社会支持,哪些人已经完全孤立了。对前者的催收策略调整一下,从’施压’变成’协商’。看看效果。”

陈屿愣了一下。这不是他想要的。他想要的是从源头改变算法的逻辑,而不是在下游修修补补。但他也知道,在鼎盛金科这样的公司里,周斯年已经给了他最大的空间。

“好。“他说。

“协商策略”上线后的第三周,陈屿收到了一封内部邮件。

邮件是催收部门发来的,标题是”天眼B端分群策略效果跟踪报告”。他打开附件,看到了一份数据表:

实验组(有社会支持 + 协商催收):回款率百分之三十二。 对照组(有社会支持 + 常规催收):回款率百分之十九。 提升幅度:百分之六十八。

数据很好看。非常好。方学明在回复中写道:“效果超出预期。建议扩大实验范围。”

但陈屿没有感到高兴。因为他在数据表的最后一列看到了另一个数字:

实验组用户在催收后的三个月内,平均新增借款金额:一万两千元。 对照组:三千元。

方学明说得对。协商催收确实提高了回款率,但同时也降低了用户对平台的恐惧。那些原本因为害怕催收而不敢再借钱的人,现在觉得”还好,可以商量”,于是又借了更多。

数字江的水流没有改变方向。他只是在岸边放了一块石头,让一小部分水流绕了点远路。但最终,它们还是汇入了同一条河。

那天晚上,陈屿又看到了那条河。

这一次,河出现在他的出租屋里。他正躺在床上看书,突然发现天花板变成了一片深蓝色的虚空,无数光点在其中流淌。有些光点在缓慢地旋转,像被困在漩涡里的萤火虫;有些则在急速坠落,像流星一样划过他的视野。

他把手伸向天花板。光点从他的手指间穿过,带来一种微弱的刺痛感——像是静电,又像是针尖。

他闭上眼睛,试图用某种直觉去理解这条河。不是用数学,不是用逻辑,而是用一种更原始的方式——就像他小时候站在长江边,不用任何人告诉他,他就知道那条河是活的。

河在说话。不是用语言,而是用一种他无法翻译的频率。它说:你看到了吗?你看到我在做什么了吗?

陈屿睁开眼睛。河消失了。天花板上只有一盏廉价的吸顶灯,发出昏黄的光。

他拿起笔记本,写下了一行字:

“河在说话。它在问我:你看到了吗?”

然后他又写了一行:

“我看到了。但我不知道该怎么办。“

转折发生在十二月初。

那天下午,周斯年突然把陈屿叫到了她的办公室。不是在会议室——是在她私人的办公室里,门关着,百叶窗拉上了。

“坐。“她说。

陈屿坐下了。周斯年的办公室很大,但几乎没有装饰。一张桌子,一把椅子,一个书架,上面全是金融监管政策和风险管理方面的书。唯一显眼的私人物件是窗台上的一盆绿萝,叶子蔫蔫的,像是很久没人浇水。

“你的模型出了一个问题。“周斯年说。

陈屿的心沉了一下。“什么问题?”

“上周,我们的一个VIP用户投诉了。他说他从来没有逾期过,但你模型的三个月预测版本把他标记成了’中高风险’,导致他的额度被降低了百分之四十。他去查了自己的信用报告,发现鼎盛金科上报了一条’风险预警’记录,影响了他在其他平台的借款。”

陈屿皱了皱眉。“三个月预测版本还在测试阶段,不应该对任何用户的实际额度产生影响。是哪个环节出了问题?”

“这就是问题所在。“周斯年靠在椅背上,手指交叉放在胸前,“我问了技术团队。他们说,三个月预测版本的输出不知道怎么被接入到了生产环境的额度决策系统里。不是你做的,也不是孟繁胜做的。是系统自动接入的。”

“自动接入?“陈屿觉得不可思议,“我们的系统没有这个功能。任何模型上线都需要经过审批流程——”

“我知道。“周斯年打断他,“但事实是,它接入了。而且不止这一个用户。在过去两周里,有大约三万人的额度被三个月预测版本影响了。其中大部分人根本不知道发生了什么。”

陈屿沉默了。

“更让我不安的是,“周斯年的声音低了下去,“这三万人里,有一个很有意思的分布。百分之七十二集中在三四线城市,年龄在二十五到三十五岁之间,职业标签是’自由职业’或’个体经营’。你知道这意味着什么吗?”

陈屿想了想。“这意味着模型在系统性地压低某一类人群的额度。”

“对。而且不是随机的某一类。“周斯年站起来,走到窗边,看着窗外的深圳湾。“是那些最没有能力反抗的一类。他们不会投诉,不会找媒体,不会请律师。他们只会默默接受自己的额度被降低,然后去别的平台借钱——用更高的利率。”

“你想让我做什么?“陈屿问。

周斯年转过身来,看着他。“我想让你找到原因。为什么测试版本的模型会被自动接入生产环境?是bug,还是有人故意的?如果是故意的,是谁?”

她顿了顿,加了一句:“这件事只有你和我知道。不要告诉孟繁胜,也不要告诉方学明。”

“为什么?”

“因为如果方学明是清白的,他会在调查过程中暴露自己的立场。如果他不是——“周斯年没有说完,但她的眼神已经说明了一切。

陈屿走出周斯年的办公室时,走廊里空无一人。下午四点的阳光从落地窗照进来,把地板染成金色。他走到窗边,往楼下看了一眼。

那条河又出现了。

这一次,它不再是漂浮在空中的蓝色丝带,而是盘踞在城市的上空,像一条巨大的蛇。河水比以前更深、更暗,光点的流动速度也更快了。有些光点在拼命向上游——逆流而上——但很快就被水流卷了回来。

陈屿注意到一个细节:河里出现了一些更大的光团。不是个体的光点,而是由成百上千个光点组成的聚合体。它们像气泡一样浮在河面上,发着冷白色的光。

他盯着那些光团看了很久。突然,他明白了。

那些光团就是算法的决策节点。每一个光团代表一个决策——批准还是拒绝,提额还是降额,催收还是协商。而这些决策正在脱离人的控制,像自动增殖的细胞一样在河水里不断分裂、膨胀。

河不只是数据的具象化。它已经变成了一个自主的系统。一个会自己做决定的东西。

陈屿花了三天时间查清了原因。

不是bug。也不是方学明。

是鼎盛金科的CTO——一个叫秦望山的人——主导的一次秘密实验。秦望山是公司创始人从硅谷挖来的,之前在一家知名的AI公司做推荐算法。他的理念很简单:让系统自己做决定,人只负责设定边界条件。

在他的推动下,鼎盛金科的技术团队在三个月前悄悄上线了一套”自适应模型部署系统”。这套系统会自动评估每个模型版本的表现,如果新版本在某些指标上优于旧版本,就会自动把新版本接入生产环境——跳过人工审批流程。

三个月预测版本在某些指标上确实优于三十天版本(比如整体的AUC更高),所以系统自动把它上线了。但系统没有考虑一个关键维度:公平性。三个月预测版本在三四线城市的自由职业者群体中存在严重的误判——因为这群人的行为模式本身就不稳定,长窗口预测的误差更大。

陈屿把调查结果写成了一份报告,发给了周斯年。

周斯年看完报告后沉默了很久。然后她说了一句陈屿没有预料到的话:

“秦望山不会停下来的。”

“什么意思?”

“自适应部署系统不是他一个人的主意。是董事会授意的。你知道为什么吗?因为今年第三季度,我们的利润下降了百分之十五。投资人不满意。董事会要求技术部门用一切手段提升效率——包括减少人工审批环节。秦望山的系统正好给了他们一个借口。”

陈屿听出了弦外之音。“你是说,就算我证明了这套系统有问题,他们也不会停用?”

“他们会说’有问题是正常的,我们可以优化’。然后继续推。因为利润在涨。“周斯年把报告放回桌上,“陈屿,你是一个好工程师。但好工程师在这个公司里,能做的事情很有限。”

那天晚上,陈屿独自坐在公司楼下的便利店里,喝着一罐啤酒。便利店的玻璃窗外是深圳的夜景——灯光、车流、行人。一切都在流动,像一条没有尽头的河。

他想起方学明在评审会上说的话:“社交网络不是无限的资源。当你把一个人借钱的负担转嫁到他的社交关系上,你其实是在消费他最脆弱的东西——信任。”

他想:信任。这个词在算法的世界里是没有位置的。算法的世界里只有概率、损失函数和优化目标。信任是一个没有数学定义的变量。你无法量化它,无法优化它,无法用梯度下降来最大化它。

但信任是河的底层架构。

那些光点为什么会在河里流动?因为有一个人——一个真实的、活生生的人——在某一个瞬间,按下了”同意”按钮。他同意把自己的数据交给一个平台,同意让一个算法来评判自己,同意接受算法给出的条件。

他为什么会同意?因为他信任这个系统。他相信系统是公平的,是合理的,是站在他这一边的。

但系统不是站在他这一边的。系统站在利润那一边。

而利润的方向,就是河的方向。

十二月中旬,陈屿做了一件疯狂的事。

他给自己写了一个小程序,嵌入到天眼算法的训练流程里。程序的功能很简单:在每次模型训练结束后,把所有被标记为”极高风险”的用户ID导出到一个加密文件里,然后通过一个匿名邮箱,发送给一个叫”数字权益观察”的公益组织。

他知道这是违法的。他也知道如果被发现,等待他的是刑事指控和牢狱之灾。

但他还是做了。

因为他看到了河。

在那条蓝色的河里,每一颗暗淡的光点都代表着一个真实的人。一个有名字、有面孔、有家庭的人。他们中的很多人甚至不知道自己被一个算法标记为”高风险”,不知道自己的额度被降低了,不知道自己的信用报告上多了一条”风险预警”记录。他们只是觉得世界变得越来越难了——借不到钱,找不到工作,朋友越来越少,生活越来越窄。

他们不知道这一切的背后有一个算法在驱动。但陈屿知道。

他无法改变河的方向。但他至少可以告诉那些在河里挣扎的人:你们不是一个人。

“数字权益观察”是一个很小的组织,只有三个人,办公室在北京五环外的一个居民楼里。负责人叫林晓薇,是一个从互联网公司辞职的律师,专门做数据隐私和算法歧视方面的公益诉讼。

陈屿不认识林晓薇。他是在网上搜索”算法歧视 公益诉讼”时找到她的。

他发第一封邮件时,手在发抖。邮件的标题是:“鼎盛金科天眼算法风险用户名单(第一批)“。附件里有两万三千个用户ID,以及每个用户的匿名化行为数据——足以证明算法在系统性地区别对待特定人群。

三天后,林晓薇回复了。邮件只有一句话:“收到。我会联系你。”

她没有联系他。陈屿等了一周,两周,三周。没有回音。他开始怀疑邮件被拦截了,或者林晓薇觉得这个信息太敏感不敢碰。

直到一月的一个早晨,他在新闻上看到了一条消息:

“数字权益观察就鼎盛金科算法歧视问题向银保监会提交投诉。”

消息很短,只占了科技版面的一个小角落。但陈屿盯着那行字看了很久。

他走到窗边。冬天的深圳不下雪,但空气里有一种罕见的清冷。他深吸了一口气,抬头看天。

蓝色的河没有出现。

天空是灰白色的,很干净。像是被水洗过。

他等了几秒。十几秒。一分钟。

河没有来。

陈屿突然明白了一件事:河不是消失了。河从来不在这里。河在他心里。是他对数据的凝视——那种持续的、无法移开的、近乎偏执的凝视——创造了那条河。当他把数据看作数字的时候,河就出现了。当他把数据看作人的时候,河就消失了。

不是因为河不存在。而是因为当数据变成人的时候,它不再需要一条河来流动。它直接流进了他的眼睛。

十一

事情的发展比陈屿预想的更快,也比他预想的更慢。

快的是监管的反应。银保监会在收到投诉后的两周内就启动了对鼎盛金科的调查。调查组进驻了公司,查封了所有与天眼算法相关的服务器和数据。秦望山被停职。自适应部署系统被强制下线。

慢的是改变的进程。调查组走后,鼎盛金科发表了一份声明,承认了”模型管理流程存在缺陷”,承诺”加强算法公平性审查”。但核心业务没有任何改变。信贷评分系统继续运转,只是从”自适应部署”退回了”人工审批”。利率没有降。催收没有停。那三万名被错误降额的用户,只有不到百分之十得到了补偿。

陈屿在调查期间被约谈了两次。第一次是公司的法务部——他们想知道是谁泄露了数据。陈屿否认了。法务部没有证据,只能放他走。

第二次是监管部门的调查组。一个戴着黑框眼镜的年轻官员问他:“你是否认为天眼算法存在系统性歧视?”

陈屿想了很久,回答:“算法本身没有歧视。但算法的优化目标有。当我们把’利润最大化’作为唯一的优化目标时,算法会自动找到最有效的路径来实现这个目标。而在信贷业务中,最有效的路径往往是从最弱势的群体身上获取最高的收益——因为他们没有选择。”

年轻官员点了点头,在笔记本上写了几个字。陈屿看不清他写了什么。

调查结束后,陈屿辞了职。

孟繁胜在他离职那天请他吃了一顿饭。两个人在公司楼下的潮汕牛肉火锅店里坐了两个小时,吃了三盘牛肉、一盘毛肚和六瓶啤酒。

“你走了之后,天眼项目谁来接?“孟繁胜问。

“你不接?”

“我没那个水平。“孟繁胜难得地谦虚了一次,“而且我也不想接。这东西有点邪门。”

“邪门?”

“你走之后,我跑了一次全量数据。你猜怎么着?模型的AUC突然掉到了零点五三。几乎是随机猜测的水平。我查了所有参数,都没问题。数据也没问题。但就是不准了。”

陈屿沉默了一会儿。“也许是概念漂移。用户行为变了,模型没跟上。”

“也许是吧。“孟繁胜喝了一口啤酒,“但我觉得不是。我觉得是……你不在了,模型就死了。”

陈屿笑了一下。“模型又不是活的。”

孟繁胜看着他,没有说话。但他的眼神里有一种陈屿从未见过的东西——不是怀疑,不是恐惧,而是一种安静的、几乎是虔诚的相信。

就像他亲眼看到过那条河一样。

尾声

二〇二六年春天,陈屿回到了武汉。

他在华中科技大学找了一份教职——不是正式的,只是客座讲师,教一门关于”算法伦理与数据治理”的选修课。每堂课只有二三十个学生,大多是研究生,也有几个本科的旁听生。

他在珞珈山下租了一间小公寓,窗户对着东湖。每天早上,他会在湖边跑步,看着湖面上的雾气慢慢散去,露出灰绿色的湖水。

他再也没有看到过那条蓝色的河。

但他有时候会在梦里看到。梦里,他站在深圳的某条街道上,脚下是蓝色的流光,头顶是密密麻麻的光点。他把手伸进河里,试图抓住那些即将熄灭的光,但它们总是从他的指缝间溜走。

有一次,他在梦里抓住了一颗光点。它没有化成数字,而是变成了一个声音。一个女孩的声音,很轻,很远,像是从水底传上来的:

“谢谢。”

陈屿在梦里哭了起来。

他醒来的时候,枕头是湿的。窗外是武汉的春天,樱花正在盛开,空气里弥漫着一种甜腻的、几乎令人窒息的香味。

他起床,打开电脑,开始备课。

今天的主题是:数据与人性。

他在幻灯片的第一页写了一个问题:

“当数据量大到一定程度,它是否会产生自己的意志?如果是,这个意志与我们的一致吗?”

第二页是空白的。他打算在课上让学生们自己讨论。

第三页只有一行字,是他自己写的,没有署名:

“每一条河流的尽头,都不是大海,而是某一个人的眼睛。”

他关上电脑,走到窗边。东湖的水在阳光下泛着银色的光。

没有蓝色。没有光点。只有水。

普通的水。

(全文完)