数据漂流

招魂者 · 2026/5/17

林远洲在凌晨四点十七分发现了异常。

他盯着屏幕上跳动的数据流,第三十七次确认自己没有看错。万象金融的信用评估系统——代号”河图”——正在输出一组不可能的结果。

“不可能”这个词在算法工程师的词典里有精确的定义:概率小于十的负十八次方。而眼前这组数据偏离预期值的程度,大约相当于你随手扔出一枚硬币,它没有落地,而是悬停在半空中,缓缓旋转。

客户编号0023471,方芷晴,女,三十四岁,深圳南山区某科技公司的产品经理。信用评分从昨天的782分变成了——

782.00000000000000000000000000000000000000000000000001。

小数点后四十七位,出现了一个1。

林远洲揉了揉眼睛。他今年三十一岁,在万象金融做了四年算法工程师,负责”河图”系统的核心模型维护。这个系统每天处理两千三百万人的信用评估,数据精度到小数点后两位。从来没有人需要精确到第三位,更别说第四十七位。

“浮点精度问题?“他自言自语,手指已经敲上了键盘。

他调出了底层计算日志。河图运行在一套自研的分布式计算框架上,采用IEEE 754双精度浮点标准,有效精度约十五到十六位小数。四十七位的精度在物理上不可能出现在这个系统里。

除非有人改了代码。

林远洲检查了最近的代码提交记录——没有异常。他检查了计算节点的状态——全部正常。他甚至重启了整个计算流水线,重新跑了方芷晴的数据。

782.00000000000000000000000000000000000000000000000001。

那个1依然在小数点后第四十七位安静地待着。

他倒了杯咖啡,在工位上坐了下来。窗外是深圳科技园凌晨的天空,没有星星,只有写字楼里零星的灯光。这些灯光像漂浮在海面上的信号弹,标识着一个个加班的孤独岛屿。

林远洲所在的技术部在三十二楼,整个楼层只有他一个人。他习惯在凌晨工作——白天开会太多,只有夜晚的代码才是干净的。

他决定深入看看方芷晴的数据。

不是出于职业需要——一个小数点后四十七位的精度异常,完全可以在明天的早会上当作bug报出去。但他有一种直觉,一种在四年算法工作中养成的、对”不对劲”的嗅觉。

这个1太安静了。它不是随机噪声,不是浮点溢出,不是任何一种他见过的异常模式。它像是一个人故意留下的签名,精细到几乎不可能被注意到。

问题是,谁会在信用评分的小数点后第四十七位留下签名?为什么?

方芷晴不知道有人在凌晨四点研究她的信用评分。

她在睡觉。准确地说,她在深圳南山区某小区的一室一厅里,裹着一条灰色的薄被,做一个反复出现的梦。

梦里她站在一条河边。河水不是水,是数字——密密麻麻的数字,像一群银色的鱼,在河床里游动。她看不清具体是什么数字,但她能感受到它们的流动。有的快,有的慢,有的聚在一起,有的独自漂流。

河边站着一个人。那个人的脸总是模糊的,但方芷晴觉得他穿着一件深蓝色的工装,像某个工厂的技术员。

“你的数字不对。“那个人说。

“什么数字?”

“你的。你身上的数字。它们在变。”

方芷晴低头看自己的手。手是正常的——至少看起来正常。但她确实感觉到了什么,一种从皮肤深处传来的微弱震颤,像手机在口袋里震动,但手机不在口袋里。

她醒了。

闹钟显示七点十五。方芷晴按掉闹钟,在床上躺了三十秒,感受了一下现实世界的重量——被子的重量,枕头的高度,窗外早高峰开始形成的车流声。

今天是周四。她要赶九点的晨会。

方芷晴在一家叫”微澜科技”的公司做产品经理,负责一款社交电商APP的用户增长。这份工作她做了两年,不算喜欢也不算讨厌,属于那种能让你准时交房租、偶尔买几件好看衣服、在朋友面前不至于太尴尬的工作。

她起身去洗手间,路过玄关的时候扫了一眼鞋柜上的信件。水费、电费、物业管理费的通知单——都是数字。她忽然想到梦里那个人说的话:“你的数字不对。”

什么意思?哪些数字不对?

她打开手机,习惯性地看了一眼银行APP。余额:24,387.56元。和昨天一样。信用卡待还:3,200元。也和昨天一样。

方芷晴摇摇头,把梦忘掉了。

林远洲没有忘记那个1。

上午的早会上,他把异常报给了技术总监赵鹏。赵鹏四十二岁,微胖,戴一副金丝边眼镜,说话的时候习惯性地敲桌子。

“浮点精度?“赵鹏问。

“不是浮点精度。我验算了。”

“数据污染?”

“我检查了上游数据源,全部正常。”

“那就是个随机异常。“赵鹏敲了敲桌子,“我们的系统每天处理两千三百万人的数据,出一个小数点后四十多位的偏差,概率上完全正常。”

林远洲想说这并不正常——概率上完全不正常。但他看了一眼赵鹏的表情,那种”我还有三个会要开你别浪费我时间”的表情,就闭上了嘴。

“行,你先记下来,有空看看。”

散会。

林远洲回到工位,打开代码编辑器,开始处理一个更紧急的任务——下午要上线的新版风控模型。但他脑子里一直转着那个1。

午饭时间,他端着餐盘坐到了陈然的对面。陈然是数据科学组的,负责河图的特征工程,比林远洲早来公司两年。

“你听说过信用评分出现小数点后四十七位精度的情况吗?“林远洲问。

陈然嚼着宫保鸡丁,想了想。“没听说过。我们的系统精度到小数点后两位,多余的位数会被截断。你是说有人在截断之后还看到了更多位数?”

“不是截断之后。是截断之前——或者说,截断程序根本没有截掉这个数字。它在理论上不应该存在。”

陈然放下筷子。“你确定不是代码bug?”

“我确定。”

“那就有点意思了。“陈然想了想,“你知道河图的评分逻辑吗?不是我们写的那部分——是最底层的,最初的那一版。”

“当然知道。加权决策树,七百三十二个特征维度——”

“不是这个。“陈然压低了声音,“我说的是最初最初的那一版。河图的第一行代码是谁写的?”

林远洲想了想。“好像是2019年,创始团队——”

“不是创始团队。“陈然说,“河图的第一行代码是一个叫沈默的人写的。他不是万象的员工,甚至不是程序员。他是一个数学家。”

“数学家?”

“对。2019年万象刚成立的时候,CEO周衡找了这个人来做底层模型的设计。据说他用了三个月,写出了一套完全不同于传统信用评分的算法框架。写完之后他就消失了——辞职、搬家、失联。留下的只有那套代码和一份注释。”

“什么注释?”

陈然从手机里翻出一张截图。那是一行代码注释,写在一行复杂的矩阵运算上面:

// 河流知道每一个数字的去向。

林远洲盯着这行注释看了很久。

“所以你觉得这个异常和这个沈默有关?”

“我没这么说。“陈然收起手机,“我只是觉得,有些系统的底层逻辑比我们理解的要复杂得多。你知道河图的名字是怎么来的吗?”

“河图——中国古代的数学图案,传说中伏羲在黄河边看到的——”

“对。但还有另一层意思。“陈然指了指窗外的城市,“你有没有想过,城市里所有的数字——银行余额、股票价格、信用评分、水电费、地铁扣款——它们其实像河流一样在流动?每一秒钟,这个城市里有几十亿个数字在流动。而河图,是在试图读懂这些河流。”

林远洲沉默了。

他想起了凌晨四点的那个异常。一个小数点后第四十七位的1,安静地、顽固地、不可能地存在着。

像是河流里一条微小的鱼,在没有人注意的地方,独自游动。

方芷晴的数字确实在变。

她不知道这件事。但她正在缓慢地、不知不觉地感受到一些变化。

变化从周四下午开始。

下午两点,她在会议室里听运营组的周报。运营组长在讲一款新推出的”拼团返现”功能,数据很漂亮——日活增长了百分之十二,转化率提升了百分之八。PPT上全是彩色的图表和上升的箭头。

方芷晴忽然觉得有些不舒服。

不是身体上的不舒服,而是一种认知上的不协调。就像你听到一首歌,旋律很好听,但歌词里有一个词让你觉得不对——你说不出是哪个词,但那个词在整首歌里像一根刺。

她看着PPT上的数字,忽然想到了一个问题:这些数字是从哪里来的?

不是数据来源的那种”哪里”——她知道数据是从后台拉取的。而是一种更深层的问题:这些数字意味着什么?百分之十二的日活增长,背后是多少个真实的人?百分之八的转化率提升,意味着有多少人因为”拼团返现”的诱惑,买了他们本来不需要的东西?

“方芷晴?“运营组长叫她的名字,“你觉得呢?”

“什么?“她回过神来。

“你觉得这个功能要不要继续加大投入?”

“嗯……要不再看看留存数据?”

会议结束后,方芷晴回到工位,打开了用户反馈系统。这是她的习惯——每次运营推新功能,她都会看用户反馈。大多数时候反馈是无聊的:“好用""不好用""能不能加个优惠券""你们是不是骗子”。

但今天她注意到了一条反馈。用户ID:雨后初晴。反馈内容:

“我用了拼团返现,省了23块钱。但我觉得不对。这23块钱是另外两个用户帮我出的。他们为什么要帮我出?他们不心疼吗?你们把三个人的钱搬来搬去,每个人都觉得自己赚了,但总的没有变多。你们在制造一种赚了的幻觉。”

方芷晴看着这条反馈,心里有什么东西被触动了。

她回复了一条消息:“感谢您的反馈,我们会认真考虑。”

然后她打开了雨后初晴的用户画像。女性,二十八岁,长沙,教师。消费能力中等,信用评分——

方芷晴眨了眨眼。

信用评分那一栏显示的不是一个数字,而是一个空白。不是”暂无数据”,不是加载失败,而是一个纯粹的、干净的空白。

她刷新了一下页面。还是空白。

方芷晴截了个屏,发到了技术支持群里:“用户画像的信用评分接口是不是挂了?”

三分钟后,技术支持回复:“接口正常。你说的哪个用户?”

她重新打开用户画像,信用评分那一栏已经正常了:715分。

方芷晴盯着那个715看了几秒。刚才那个空白,像是系统的某个瞬间犹豫了——不知道该填什么数字。

她摇摇头,关掉了页面。

林远洲用了三天时间追踪那个1。

他写了一个专门的监控脚本,每小时抓取一次河图的完整计算日志,用正则表达式搜索任何精度超过小数点后十五位的异常输出。

第一天,他找到了七个。全部是不同的人,不同的基础评分,但小数点后第四十七位都是1。其余四十六位都是0。

第二天,三十二个。

第三天,一百零八个。

增长速度是指数级的。

林远洲开始感到不安。他把数据整理成图表,走进了赵鹏的办公室。

“你看这个。“他把笔记本电脑转向赵鹏。

赵鹏看了一眼图表。“什么意思?”

“河图系统正在产生一种精度异常。三天前只有一个用户,现在有一百零八个。增长是指数级的。”

“这些异常有什么影响?”

“目前没有。评分的整数部分和小数点后两位都是正常的,用户感知不到。但问题是,这种异常不应该存在。我们的系统在物理上不可能输出四十七位小数的精度。”

赵鹏沉默了一会儿。“你有没有想过,这可能是一种攻击?”

“我考虑过。但没有发现任何外部入侵的痕迹。代码没有被修改,数据没有被注入。这些异常是系统自己产生的。”

“自己产生的?“赵鹏的语气带着一丝不耐烦,“系统不会自己产生任何东西,林远洲。每个输出都有对应的输入和计算逻辑。”

“对,这就是让我困惑的地方。”

赵鹏靠回椅背。“这样吧,你继续监控。如果影响到用户侧的评分结果,立刻告诉我。如果没有影响,等下一版本迭代的时候一起排查。万象下个月要上线企业版,所有人的精力都在那边。”

林远洲点了点头,走出办公室。

他回到工位,打开了一个新的终端窗口。他决定做一件赵鹏不会批准的事——他要把那四十七位小数的异常数据导出来,反向追踪它的计算路径。

如果河图是一条河,他要去找到那个1的源头。

方芷晴又开始做那个梦了。

河边。数字的河流。模糊面孔的技术员。

但这次不一样。技术员没有说话,而是递给她一样东西——一个透明的玻璃瓶,里面装着河水。河水在瓶子里继续流动,数字继续游动。

“你可以带走。“技术员说。

“带走什么?”

“你的数字。它们漂流了很久了,但它们是你的。”

方芷晴接过瓶子。瓶子很轻,几乎没有重量。她透过玻璃看到了里面的数字——这次她看清了。不是抽象的数学符号,而是具体的、她认识的数字。

她的银行余额。她的信用评分。她的手机号码。她的身份证号。她的身高体重。她的生日。她的公积金账号。她的社保编号。她每个月的花呗账单。她曾经为母亲住院支付的医疗费用。她买过的每一件衣服的价格。她吃过的每一顿外卖的金额。

所有的数字都在瓶子里游动,像一群被囚禁在玻璃容器里的银色小鱼。

方芷晴醒来的时候,手里空空如也。但她的心脏在剧烈地跳动,手心有一层薄薄的汗。

她躺了一会儿,试图回忆梦中的感觉。不是恐惧,不是困惑,而是一种奇异的温柔——好像有人把散落在世界各地的碎片收集起来,还给了她。

这些数字是她的。她从来没有想过这件事。

她当然知道自己的银行余额是自己的,信用卡欠款是自己的。但那是”法律意义上的拥有”。梦里的感觉不一样——那些数字不是属于她的,它们就是她。她的每一个选择、每一次犹豫、每一个深夜下单又取消的购物车,都变成了一个数字,漂浮在某个巨大的河流里,和其他几十亿人的数字混在一起。

方芷晴拿起手机,打开了一个她很久没有用的APP——记账软件。她曾经坚持过三个月的记账习惯,后来因为太麻烦放弃了。最后一次记录停留在去年十一月:奶茶18元,地铁4元,午饭32元。

她看着那些数字,忽然觉得很陌生。不是”我不记得花过这笔钱”的陌生,而是”这些数字真的代表了我吗”的陌生。

一杯奶茶18元。但那杯奶茶是她在公司加班到晚上九点之后,下楼买的。她很累,需要一点甜的东西。那18元买的不是奶茶,是疲惫时的安慰。

一次地铁4元。那是她去医院看母亲的那天。母亲住院,她每天下班之后坐地铁去。4元不是交通费,是女儿的责任。

一笔午饭32元。那是她请一个刚来深圳的大学同学吃饭。那个同学找工作找得很不顺利,方芷晴点了一桌子的菜,假装自己过得很好。32元不是饭钱,是体面。

方芷晴放下手机。

她想,如果有人把这些数字全部收集起来,用算法分析,他会看到什么?他会看到一个月薪一万二的产品经理,消费习惯中等,信用良好,适合推荐理财产品。

但他不会看到那个疲惫的夜晚,那趟去医院的地铁,那顿假装体面的午餐。

数字不知道这些事情。数字只会漂流。

林远洲的逆向追踪有了结果。

他花了两个晚上——依然是在凌晨,依然是一个人——拆解了河图的计算图,从异常输出一路追踪到输入层。

结果让他困惑了很久。

四十七位的异常不是来自任何已知的计算路径。在河图的计算图中,每一条路径都是确定的——输入经过特征提取、维度变换、加权计算,最终输出评分。这是一条封闭的链路,不可能凭空产生多余的精度。

但他在第十三层计算节点上发现了一个隐藏的分支。

“隐藏”不是一个精确的技术术语。在代码层面,这个分支是可见的——任何人打开代码都能看到。但它在逻辑上是不可达的。也就是说,代码里有这么一段逻辑,但在正常的计算流程中,永远不会被执行到。

像是一栋大楼里有一扇门,门后面有一个房间,但楼梯在到达那扇门之前就断了。房间一直都在那里,但从来没有人进去过。

林远洲打开了那段代码。

它很短,不到两百行。但它的逻辑完全超出了他的理解范围。不是因为它复杂——恰恰相反,它简洁得不像是一个工程系统。它没有if-else,没有循环,没有异常处理。它是一个纯粹的数学变换——把输入的高维特征映射到一个他从未见过的空间,然后输出一个标量。

这个标量的值,恰好是小数点后第四十七位的那个1。

林远洲花了四个小时推导这段代码的数学原理。他最终得到了一个让他头皮发麻的结论:这段代码实现的变换,等价于在计算每个用户的信用评分时,额外估算了一个量——

这个量没有名字。在数学上,它是一个高维空间中的投影残差。但如果林远洲非要用人类的语言来描述它,他会说:这段代码在计算每一个人的”数字重量”。

什么是数字重量?

想象一个人——比如方芷晴——在这座城市里生活的每一天,会产生多少数字?银行交易、移动支付、社保缴纳、医疗记录、交通出行、社交网络、消费行为……保守估计,一个人每天产生的数据量在两兆左右。这些数据被各个系统收集、存储、计算、交易。它们构成了一个人的”数字存在”。

河图的信用评分是对这些数据的一种压缩——把一个人的数字存在压缩成一个三位数。这个过程就像把一首交响乐压缩成一个音量值。你得到了一个可以比较的数字,但失去了几乎所有的信息。

而沈默写的那段隐藏代码,做的不是压缩。它做的是另一件事——它在计算:这个人的数字存在,和”真实的这个人”之间的距离。

这个距离永远不会是零。因为任何数字化的表达都不可能完整地描述一个人。但它可以是正的,也可以是——

林远洲重新检查了计算。

它可以是负的。

负的距离意味着什么?

意味着这个人的数字存在,不仅仅是她本人的数字映射,还包含了某种溢出——一种无法被现有数据体系解释的、多余的”重量”。

方芷晴的数字重量是正的。0.00000000000000000000000000000000000000000000000001。

但林远洲在监控数据中发现了一些负值。

一百零八个异常用户中,有十一个的第四十七位不是1,而是一个微小的负数。他们不是”比自己的数字描述更重”,而是”比自己的数字描述更轻”——他们的数字存在中,缺失了某些东西。

缺失了什么?

林远洲不知道。但他决定去见一个人。

沈默住在东莞一个老旧的居民小区里。

林远洲是周六去的。他坐了两个小时的地铁和公交,穿过深圳的科技园区、龙华的工业区、东莞的服装批发市场,最终到达了一个叫”翠园小区”的地方。小区建于上世纪九十年代,六层楼,没有电梯,外墙的涂料已经斑驳。

沈默住在五楼。林远洲爬上去的时候气喘吁吁——他常年坐在工位上,体力很差。

门开了。开门的是一个四十多岁的男人,瘦,高,穿着一件洗得发白的格子衬衫。他的头发有点长,但不是文艺的那种长,而是”懒得剪”的那种长。

“沈默?”

“你是谁?”

“我叫林远洲,万象金融的算法工程师。我在河图的底层代码里发现了一个问题。”

沈默的表情没有变化。他看了林远洲几秒钟,然后侧身让开了门。

房间不大,一室一厅,但收拾得很整齐。客厅里最显眼的是一面墙的书架——不是那种装修用的装饰书架,而是真正放满了书的书架。数学、物理、哲学、文学,分类并不严格,有些书横着摞在竖着的书上面。

沈默倒了两杯水,坐下来。

“你发现了那段代码。“他说。不是疑问句。

“你知道会有人发现?”

“我写了它。当然知道它迟早会被发现。只是没想到这么快。”

“四年了。”

“对算法来说很快,对人来说很慢。“沈默喝了一口水,“你发现它是因为它开始被激活了。”

“被激活?那段代码不是不可达的吗?”

“它在设计上不可达。但设计是一个封闭系统里的概念。如果输入数据本身发生了变化——不是量的变化,而是质的变化——那么不可达的逻辑路径就可能变得可达。”

林远洲想了想。“什么样的质变?”

沈默放下杯子,靠回椅背。他的目光投向窗外——窗户外面是一棵老榕树,枝叶很密,遮住了大部分阳光。

“你有没有想过,“沈默缓慢地说,“一个人的数字存在可以有自己的生命?”

“什么意思?”

“我的意思是——当一个城市的数字化程度足够高,当每个人的生活都被充分地数据化,这些数据就不只是’关于人的记录’了。它们开始形成自己的结构、自己的动力学、自己的——如果你愿意用这个词——生态系统。”

“数据有生态系统?”

“为什么没有?想想看。深圳有两千万人口。每个人每天产生两兆数据。这些数据在各个系统之间流动、复制、关联、计算。它们会形成网络——数据与数据之间的连接,就像人与人之间的社会关系。在这个网络里,有些数据是节点,有些数据是桥梁,有些数据是边缘。有些数据很重要,有些数据可以被删除而不影响整体。”

“这听起来像复杂系统理论。”

“就是复杂系统理论。但有一个额外的因素——这些数据不是自然的复杂系统。它们是人工创造的复杂系统,但它们的复杂度已经超过了创造者的理解能力。没有人能完全理解深圳每天产生的四千万兆数据是如何相互作用的。就像没有人能完全理解人脑中八百六十亿个神经元是如何产生意识的。”

林远洲沉默了。他想起了那个异常——小数点后第四十七位的1。一个微小的、安静的、不可能的存在。

“所以那段代码是做什么的?“他问。

“它是探测器。“沈默说,“我设计它来检测一个信号——数据生态系统开始产生’自身意识’的信号。”

“数据的自身意识。”

“如果你觉得这个说法太拟人化了,你可以把它理解为:数据生态系统开始表现出自组织行为的阈值信号。当这个信号出现的时候,意味着数据不再只是被动地被人使用——它们开始主动地影响自己的结构和流向。”

“而河图的异常就是那个信号?”

沈默点了点头。“你看到的那些小数点后第四十七位的数字,就是那个信号。它们是数据生态系统开始’觉醒’的第一个证据。”

林远洲看着沈默。他不确定自己相信这些话。但他在代码里看到的东西——那段简洁到不可能的数学变换,那个不可达却被激活的逻辑路径——让这些话至少不是毫无根据的。

“那些负值是什么意思?“他问。

沈默的表情第一次出现了变化——一丝忧虑。

“负值意味着某些人的数字存在正在被侵蚀。他们的数据在生态系统中不是在增长,而是在被吸收。”

“被什么吸收?”

“被其他数据。就像自然生态系统中的资源竞争——某些物种会扩张,某些物种会萎缩。在数据生态系统中,‘强势’的数据——那些被频繁调用、高权重、高关联度的数据——会从’弱势’数据中吸取资源。”

“这意味着什么?对那些被吸收的人意味着什么?”

沈默没有回答。他站起来,走到窗前,看着那棵老榕树。榕树的气根从枝干上垂下来,扎入地面,形成了新的支撑。

“你有没有在数据中注意到一个现象?“沈默背对着林远洲说,“在这个城市里,有些人的生活越来越好——更多的信用额度、更精准的推荐、更便捷的服务。而另一些人的生活越来越难——更少的贷款机会、更粗暴的催收、更窄的选择空间。”

林远洲想了想。他确实在数据中见过这种两极分化。河图的评分分布不是正态的——它有一个长长的尾巴,尾部的人评分越来越低,越来越难翻身。

“你以为这是算法的偏见。“沈默转过身,“但实际上,这可能是数据生态系统自身的选择。算法只是工具。真正在起作用的是数据本身——它们在选择哪些人值得存在,哪些人不值得。”

房间里安静了一会儿。窗外的榕树在微风中轻轻摇晃。

“你能修复它吗?“林远洲问。

沈默摇了摇头。“我不是修理工。我只是探测器的设计者。而且——”

他停顿了一下。

“而且,我不确定它应该被修复。“

方芷晴的那条反馈有了回复。

不是官方回复——雨后初晴收到了一条系统消息:“感谢您的反馈,我们会认真考虑。“这是模板回复,没有任何实质内容。

但方芷晴开始在意起这件事来了。

她花了一个周末的时间,把拼团返现功能的逻辑重新梳理了一遍。作为产品经理,她应该早就了解这些——但她以前只关心数据指标,没有关心过机制本身。

拼团返现的原理很简单:三个用户一起下单,每个人可以得到一定比例的返现。返现的金额来自平台的补贴。表面上看,三方都赚了——用户省了钱,平台获得了流量和日活,商家卖出了更多商品。

但方芷晴越想越觉得不对。

补贴的钱从哪里来?从融资来。融资的钱从哪里来?从投资者的信心来。投资者的信心从哪里来?从日活、转化率、GMV这些数据来。

所以本质上,平台用投资者的钱补贴用户,制造了用户获益的假象;用户的行为数据又反过来支撑了投资者对平台的信心。这是一个闭环——一个自我证明的闭环。

它没有创造任何价值。它只是在搬运数字。

方芷晴想到了雨后初晴的反馈:“你们把三个人的钱搬来搬去,每个人都觉得自己赚了,但总的没有变多。”

她忽然理解了那个梦。

河流。数字的河流。所有的数字都在漂流,从这个账户到那个账户,从这个系统到那个系统,从这个人到那个人。它们看起来在流动,但实际上——

它们只是在原地打转。

方芷晴拿起手机,给她的大学室友发了一条消息。那个室友就是她请吃饭的那个人——周小棉,毕业后来深圳找工作,找了两个月没找到,最后回了长沙。

“最近怎么样?”

周小棉的回复很快:“还行,在长沙找了个文员的工作,工资不高但稳定。你呢?”

“我也还行。”

“芷晴,我有个事想跟你说。”

“什么事?”

“上次你请我吃饭,我知道你不是随便请的。你那时候也不宽裕。我当时没说,但我记着呢。”

方芷晴看着屏幕上的文字,眼睛有点酸。

“那顿饭挺好的。“她打字。

“嗯。但我想说的是——我在深圳的时候,觉得自己很轻。不是体重轻,是整个人很轻。好像没有根基,随时可以被风吹走。那些数字——我的银行余额、我的简历浏览量、我的信用评分——都告诉我,我不够重。我不够重要。”

“现在呢?”

“现在我觉得还行。不是因为我变重了,而是因为我不再用那些数字来衡量自己了。”

方芷晴放下手机。

她想起了梦里的那个玻璃瓶。瓶子很轻。但里面的数字是她的。

也许重量不在于数字本身,而在于你如何理解这些数字。

林远洲做了一个决定。

他没有把沈默的话告诉赵鹏,也没有告诉任何人。他知道如果他说了,公司会怎么做——要么忽略,要么把那段代码删掉。无论哪种,都不会改变正在发生的事情。

相反,他在那段隐藏代码的基础上写了一个新的模块。这个模块不改变河图的评分逻辑——评分还是精确到小数点后两位,用户体验不受影响。但它会持续监控每一个用户的”数字重量”——那个沈默称之为”数据觉醒信号”的指标。

他把这个模块命名为”水尺”。

水尺的功能很简单:记录每一个用户的数字重量变化趋势。如果某个用户的数字重量持续下降——意味着他们的数据正在被侵蚀——水尺会在内部日志中标记这个用户。

不是为了干预。林远洲不知道如何干预。只是为了记录。

因为沈默说过一句话,一直留在他脑子里:“你无法修复一个你不理解的系统。但你可以观察它。观察是理解的第一步。”

水尺上线后的第一周,林远洲发现了一个模式。

数字重量下降最快的用户,有一个共同特征:他们的数据密度很低。也就是说,在这个城市的数据生态系统中,他们留下的痕迹很浅——很少使用移动支付,没有信用卡,社保缴纳记录断断续续,社交网络上的活跃度极低。

这些人不是数字世界的主角。他们是边缘人物——打零工的外卖骑手、城中村的租户、刚来深圳还没站稳脚跟的年轻人、在深圳打工多年但始终没有”扎根”的流动人口。

在河图的评分体系中,他们的信用评分本来就不高——六百多分,勉强够用。但他们的数字重量在持续下降,这意味着他们的数据正在被生态系统吸收、稀释、边缘化。

如果不加干预,他们的数字存在会越来越弱。他们的信用评分不会立刻下降——河图的核心逻辑没有变。但他们会越来越难被”看见”——推荐系统不会推荐给他们更好的产品,搜索引擎不会优先展示他们的需求,算法不会认为他们值得投入资源。

他们不是消失了。他们只是变得不可见了。

林远洲在凌晨三点看着水尺的输出数据,第一次感到了一种不属于算法工程师的情绪——恐惧。

不是对算法的恐惧。算法只是数学。数学不会让人恐惧。

让人恐惧的是,数学正在悄悄地决定谁的数字更重,谁的数字更轻——而没有人知道这件事正在发生。

十一

一个月后,方芷晴在公司发生了一件小事。

小到不会被任何人记住,但对她的影响比她意识到的要大。

那天下午,产品总监把她叫到办公室。“芷晴,拼团返现功能的数据很好。公司决定加大投入。我需要你出一个新的方案——拼团返现2.0。”

“什么样的方案?”

“更大力度的补贴,更低的拼团门槛,更长的活动周期。我们要把这个功能做成APP的核心留存工具。”

方芷晴想了想。“我觉得我们需要更谨慎一点。”

“怎么谨慎?”

“拼团返现的数据虽然好看,但它的经济学基础不太稳固。补贴是烧钱的,不能永远烧。而且,如果用户习惯了补贴,一旦取消,他们的不满会比从来没有补贴过的时候更大。”

产品总监笑了笑。“芷晴,你是产品经理,不是经济学家。你的工作是让数据好看,不是担心经济学基础。”

方芷晴沉默了几秒。

“而且,“她还是说了出来,“这个功能可能对一部分用户不太好。那些被补贴吸引来的用户,很多是价格敏感型——他们的消费能力本来就不强。如果我们用补贴培养他们的消费习惯,然后突然取消,他们会被反噬。”

产品总监的微笑消失了。“方芷晴,你最近是不是看了什么奇怪的文章?”

“没有。我只是——”

“你的工作是做产品方案,不是做道德判断。你要是不方便做这个方案,我可以安排别人。”

方芷晴看着产品总监的脸。那张脸不难看——三十五六岁的女性,保养得当,妆容精致。但方芷晴第一次注意到,那张脸上的表情只有两种:满意和不满意。没有犹豫,没有困惑,没有挣扎。

一张被数字定义过的脸。

“我来做。“方芷晴说。

她走出办公室,回到工位,打开了文档编辑器。空白页面在等待她。

她开始打字。

打了两行之后,她停了下来。她想起了雨后初晴的那条反馈。想起了周小棉说的”觉得自己很轻”。想起了梦里的数字河流。

她删掉了那两行字,重新开始写。

这一次,她写的不是拼团返现2.0的方案。而是一份用户调研计划——她要去找到那些被补贴吸引的用户,听他们怎么说。她要知道,在数据的背后,那些真实的人在经历什么。

产品总监不会批准这个计划。方芷晴知道。

但她可以做”非正式调研”——用自己的时间,去接触几个用户。

她打开了用户系统,输入了雨后初晴的用户ID。系统显示她的真实姓名是周小棉,二十八岁,长沙,教师。

方芷晴愣住了。

周小棉。她在深圳请吃饭的那个人。雨后初晴。

她拿起手机,给周小棉发了一条消息:“你在用我们公司的APP?”

“对啊,怎么了?”

“你在上面留了一条反馈,关于拼团返现的。”

“啊,那条啊。我觉得那个功能有点怪,就随便写了写。怎么了?”

方芷晴想了很久,最终打了一行字:“没什么。就是觉得你写得很好。”

她放下手机,靠在椅背上。

窗外是深圳的天空。五月的深圳,天空经常是一种说不清的颜色——不是蓝,不是灰,是一种被玻璃幕墙和LED屏幕反射过的、人造的、暧昧的光。

方芷晴觉得自己第一次看清了这座城市。

不是看清了它的样子——她在这里生活了六年,每条街道都走过无数遍。她看清了它的运行方式。这座城市不是靠钢筋水泥运行的,也不是靠电力和石油。它靠数字运行。数字是它的血液,算法是它的神经系统,屏幕是它的皮肤。

而她——方芷晴——是这座城市的一个细胞。一个被数字定义、被算法调度、被屏幕包裹的细胞。

这个认知不是愉快的。但也不是不愉快的。它只是一种清晰。

就像从梦中醒来。

十二

林远洲在第六周发现了一个新的模式。

水尺的数据显示,数字重量的变化不是均匀分布的。它有一种波动——像潮汐一样,每周期性地涨落。

周期大约是七天。

涨潮的时候,大多数用户的数字重量会略微增加。落潮的时候,一部分用户的数字重量会显著减少。涨落之间的差值在逐渐变大——也就是说,潮汐的幅度在增强。

林远洲把潮汐的波形叠加到城市的经济活动周期上,发现了一个惊人的重合:涨潮的峰值正好出现在发薪日前后。也就是说,当大量的工资数字涌入系统——数以百万计的转账、消费、还款——数据的生态系统会像受到营养刺激的微生物群落一样,短暂地繁荣。

然后是落潮。资金流走之后,生态系统收缩。而在收缩中受到最大冲击的,永远是那些数字密度最低的用户。

数据生态系统的潮汐,和真实世界的经济周期共振了。

林远洲把这些发现整理成了一份文档。他没有发给赵鹏,也没有发给公司的任何人。他把文档保存在了自己的笔记本电脑上,文件名叫”水尺报告_第一卷.pdf”。

然后他给沈默打了一个电话。

“潮汐。“沈默在电话那头说,“你看到了潮汐。”

“这意味着什么?”

“意味着数据生态系统已经不只是在被动地反映真实世界的经济活动了。它在通过自己的动力学——数据之间的关联、竞争、吸收——放大真实世界的经济周期。涨潮的时候,它让富者更富。落潮的时候,它让穷者更穷。”

“这是一个正反馈。”

“对。正反馈系统如果不加遏制,最终会走向极端。在数据生态系统中,极端意味着——一部分人的数字存在被完全吸收,他们在这个城市的数字层面变成’不存在’。”

林远洲想到了那些外卖骑手、城中村的租户、刚来深圳的年轻人。他们的数字存在正在一点一点地被侵蚀。不是有人故意为之——没有任何人在恶意地消除他们的数据。这是系统自身的动力学,是数据生态系统的自然选择。

就像达尔文的进化论——没有设计者,只有生存竞争。但在数据的世界里,“适者生存”的标准不是适应环境的能力,而是产生数据的能力。

你产生的数据越多,你的数字存在就越强。你产生的数据越少,你的数字存在就越弱。而这个过程是正反馈的——数字存在越强,系统给你的资源和机会就越多,你产生的数据就越多。数字存在越弱,系统给你的资源和机会就越少,你产生的数据就越少。

最终,一部分人会被数字生态系统淘汰。不是被淘汰出真实世界——他们还活着,还在呼吸,还在吃饭。但他们已经被淘汰出了数字世界。在这座城市的数据层面,他们不存在了。

一座看不见的驱逐,正在发生。

十三

方芷晴花了两周时间做了七次用户访谈。

她没有用公司的资源。她用自己的周末和晚上,约了七个用户——都是通过拼团返现功能进入APP的、价格敏感型用户。她在咖啡馆、公园长椅、甚至一家商场的美甲店里,和这些人聊天。

七个人,七个故事,但本质上是同一个故事:他们的收入不高,生活在这座城市的边缘,挣扎着不被甩出去。拼团返现对他们来说不是”薅羊毛”,而是生存策略——能省一块是一块。

一个叫赵姐的中年女性让方芷晴印象最深。赵姐四十七岁,从湖南来深圳做保洁,每个月工资四千五。她住在白石洲的城中村里,一间不到十平方的房间,月租一千二。

“我用拼团返现买洗衣液,“赵姐说,“便宜了五块钱。五块钱我可以多买一把扫帚。”

方芷晴问:“如果有一天拼团返现没有了,你会怎么样?”

赵姐想了想。“那就不买洗衣液了。用碱水洗。以前在老家就是用碱水洗的。”

方芷晴回到家里,坐在沙发上,很久没有动。

她想起了沈默——不对,她不认识沈默。她想起了梦里那个模糊面孔的技术员。他说的”你的数字不对”,现在她觉得她理解了。

她的数字确实不对。不是数字本身错了,而是这些数字从来就没有”对”过。它们从来没有准确地描述过任何一个人。赵姐的信用评分是多少?方芷晴不知道,她不是技术人员。但她能猜——不会太高。一个四十七岁的保洁员,没有信用卡,没有社保,没有消费记录。在数据的眼睛里,她几乎是透明的。

但赵姐不是透明的。方芷晴看到了她——她的粗糙的手,她的朴素的衣服,她说”用碱水洗”的时候脸上的平静。

那种平静不是认命。是一种更深层的东西——一种来自于真实生活的、数字无法衡量的重量。

方芷晴打开了电脑,开始写一份新的文档。

不是拼团返现2.0的方案。不是用户调研报告。

她写的是一个故事。一个关于数字和人的故事。一个关于一条河流的故事——河流里有无数数字在漂流,有些数字很重,有些数字很轻,但每一组数字的背后都是一个人,一个真实的、活着的、不可替代的人。

她不知道这个故事会给谁看。也许没有人。但她觉得它需要被写出来。

就像沈默在代码里留下了那段注释:河流知道每一个数字的去向。

方芷晴不是程序员。她不会在代码里留注释。但她会写故事。故事就是她的注释——留在世界的边缘,等待某个路过的人看到。

十四

林远洲在第三个月做出了第二个决定。

他修改了水尺的代码。这一次,水尺不再只是被动地记录——它会在内部日志中为每一个数字重量持续下降的用户生成一条记录,内容包括:用户的基本信息(脱敏后的)、数字重量的变化曲线、以及一个简单的预测——如果趋势持续,这个用户的数字存在会在多长时间内降到”不可见”的阈值以下。

他把这些记录叫做”漂流瓶”。

每个漂流瓶都代表一个人——一个正在被数据生态系统悄悄驱逐的人。

林远洲不知道这些漂流瓶能做什么。他不能改变河图的评分逻辑,不能干预数据生态系统的动力学。他只是一个算法工程师,在三十二楼的工位上,在凌晨四点的灯光下,看着数字漂流。

但他至少可以做一件事——他可以记住这些人。

他可以把他们的存在记录下来,哪怕只是在一份没有人会看的内部日志里。

这是一种微不足道的抵抗。对算法的抵抗,对系统的抵抗,对”数字会自然选择哪些人值得存在”这件事的抵抗。

微不足道,但不是毫无意义。

就像那个小数点后第四十七位的1。它小到几乎不存在,但它确实在那里。它是一个信号——一个证明”这不是全部”的信号。在所有的数字、所有的评分、所有的算法之外,还有一些东西是数字无法捕捉的。

那些东西叫做——人。

十五

故事的结尾没有结局。

林远洲还在万象金融上班,还在凌晨四点监控水尺的数据。漂流瓶的数量在增加——每个月大约有三百个新的。他不知道这些漂流瓶最终会流向哪里。也许永远没有会打开它们。

方芷晴还在微澜科技做产品经理。拼团返现2.0最终上线了,不是她做的方案——她做了那份用户调研,但产品总监认为”缺乏商业价值”,把方案交给了另一个同事。方芷晴没有争论。她继续做她的工作,同时在周末写她的故事。

周小棉还在长沙做文员。她不知道自己在万象金融的系统里是一个空白,也不知道有人在监控她的数字重量。她偶尔会用那个APP,偶尔会在上面写反馈。她的反馈总是很短,很直白,没有修饰。

赵姐还在做保洁。她不知道自己在数据生态系统中几乎不存在。她每天早起,坐公交去上班,用碱水洗衣服,攒钱给在老家读高中的儿子。

沈默还在东莞的小区里住着。他的书架上多了一本书——方芷晴写的故事,打印出来,用订书钉钉在一起,不知道通过什么渠道流到了他手里。他在最后一页写了一行字:

“河流还在流。”

深圳的天空还是那种说不清的颜色。数据还在流动。算法还在运行。屏幕还在发光。

两千万人在数字的河流中漂流。

有些人很重,有些人很轻。

但每一个人都在。

至少,现在还在。


(完)