余量坐标
余量坐标
一
陆鸣知道自己的余量还剩多少。
三百二十七点四个单位。不是钱,不是时间,不是任何可以存进银行的东西。是”余量”——这座城市在两年前开始给每个市民分配的综合性社会资源指标。它像空气一样无处不在,又像氧气一样可以被精确计量。
余量决定了你能住在哪个区域,能在哪家医院挂上号,能在多大流速的自来水下洗澡,甚至决定了你的快递被送到门口还是被扔进小区门口的铁筐里。
余量高的人,天是蓝的,水是清的,地铁不用挤。
余量低的人,连呼吸都觉得带着配额。
陆鸣曾经是余量很高的人。他在”河图科技”做了八年算法工程师,参与构建了这座城市余量系统的核心计算框架。他亲手写的代码,正在这座城市某个地下数据中心的机柜里,日夜不停地计算着一千六百万人的余量。
直到三个月前,他的余量开始莫名下降。
最初是每天减少零点几个单位,像沙漏里细微的沙粒,几乎察觉不到。后来越来越快,一天几个单位,十几个单位,到了上周,每天减少三十多个单位。照这个速度,他最多还能撑十天。
十天之后,余量归零。
归零意味着什么,他比任何人都清楚。他亲手在系统里写过那段逻辑:余量归零的市民,将被标记为”低效用人口”,他们的城市服务权限会被逐级关闭。先是宽带降速,然后是公共交通限制,接着是医疗通道降级,最后是居住权重新分配——简单来说,你会被从现在的住所搬到城市边缘的”集约居住区”。
没人知道集约居住区里面是什么样的。进去的人,没有一个在社交媒体上发过消息。
陆鸣坐在自己四十二平米的公寓里,看着窗外灰蒙蒙的天。他的余量还够他用这台智能咖啡机再煮三百杯咖啡,或者用热水器再洗六十次澡,或者在小区门口的便利店再买一百六十个面包。
他决定不再喝咖啡了。
二
余量系统上线的那天,市长在电视上发表了一段简短的讲话。他说这是”城市治理的里程碑”,是”用科技手段实现社会公平的伟大尝试”。他的声音平静而坚定,像是宣布一场天气预报。
“余量不是限制,而是资源的最优配置。每个人根据自己的贡献和需求,获得相应的城市资源份额。系统是公平的,算法是透明的,数据是安全的。”
陆鸣当时就坐在河图科技的工位上,看着直播。他的主管老邱端着保温杯走过来,用下巴指了指屏幕:“你写的核心模块,听市长这意思,还挺满意的。”
陆鸣笑了笑,没说话。
他确实对自己的代码很满意。余量计算的核心算法是一个多层加权模型,它综合了收入、纳税、社保缴纳、社会信用记录、居住稳定性、消费结构等上百个维度,每六个小时更新一次。理论上,它是一个精密而公平的天平。
但理论是理论。
陆鸣知道,任何算法都只是工具,关键看谁在用它、怎么用它。系统上线后不久,他就发现了一些不对劲的地方——余量的计算模型中,有几个权重参数是”硬编码”的,不是算法自动优化的结果,而是有人手动设定的。
这意味着,有人可以通过调整这几个参数,让某些人的余量升得快一些,让另一些人的余量降得快一些。
他向老邱提过这个问题。老邱的表情变了一下,很快又恢复了平常的温和。
“这是产品层面的决策,不是技术层面的问题。你就管好你的代码就行了。”
陆鸣没有再问。但那天晚上,他在自己的笔记本上记下了一行字:“余量系统有后门。”
三个月后,他被调离了核心算法组,转去维护一个边缘的数据可视化模块。又过了半年,河图科技裁员,他是第一批被优化的人。
N+1的赔偿金到账那天,他的余量是四千三百多个单位,在这座城市算中上水平。足够他悠哉地过上两三年。
然后,下降开始了。
三
陆鸣第一次看到那些数字,是在余量降到五百以下的那个晚上。
他从噩梦中惊醒,额头全是汗。睁开眼的瞬间,他看到天花板上方悬浮着一个淡蓝色的数字:487.6。
他揉了揉眼睛。数字还在。
他坐起来,走到窗边往外看。对面居民楼的窗户亮着几盏灯,每扇亮灯的窗户旁边,都悬浮着类似的淡蓝色数字。有的很高,两千多、三千多;有的很低,一百出头,甚至还有几十的。
在黑暗中没有亮灯的窗户旁,数字是暗灰色的,像是被调低了亮度。
陆鸣以为自己疯了。他冲进卫生间,打开水龙头,往脸上泼冷水。镜子里的自己面容憔悴,眼圈发黑。他头顶也悬浮着一个数字:487.3。
比刚才少了零点三个单位。
他盯着镜子里的数字看了很久。它不像投影,也不像全息影像。它更像是直接出现在他的视觉里的,一种无法用物理学解释的存在。他闭上眼睛,数字消失;睁开眼睛,数字又回来了。
他尝试用手机拍照。照片上什么都没有。
这个能力——如果可以称之为能力的话——只属于他的肉眼。
接下来的几天,陆鸣开始理解这些数字的规律。每个人头顶的数字就是他们的余量,精确到小数点后一位。他走在街上,看到每一个路人都顶着这样的数字,像是某种荒诞的电子标签。
他注意到一些有趣的现象。
穿着体面、步伐轻快的人,余量通常在一千以上。推着婴儿车的年轻妈妈,余量在八百到一千二之间。送外卖的骑手,余量大多在两三百,有些人甚至不到一百。在地铁站口拉小提琴的老人,余量只有二十七点四个单位。
而在城市最繁华的商业街上,那些从黑色轿车里走出来的人,余量无一例外都在五千以上。有一个人,穿着深灰色的风衣,戴着金丝眼镜,从一辆挂着特殊号牌的车里下来,他的余量是九千八百四十七点二。
陆鸣从来没见过这么高的数字。
更重要的是,陆鸣发现他能看到数字变化的轨迹。当他集中注意力盯着某个人的数字看时,数字上方会出现一条细线,像心电图一样,显示着这个人的余量近期变化趋势。大多数人的线是平缓的,有升有降,符合正常的生活节奏。
但有少数人的线是断崖式的——在某个特定的时间点,余量突然大幅下降,然后持续走低。
和他自己的情况一模一样。
四
陆鸣决定找到和他一样的人。
他花了三天时间,走遍了城市的各个角落。他用眼睛记录下每一个余量呈断崖式下降的人,在手机备忘录里记下他们的大致特征和最后出现的位置。
一共十七个人。
他们的共同特征很少:年龄从二十多岁到六十多岁不等,有男有女,职业各异——一个中学老师,一个出租车司机,一个自由撰稿人,一个前公务员,一个菜市场的鱼贩子……唯一的共同点是:他们的余量都在快速下降,而且都发生在某个特定的时间节点之后。
陆鸣找到了其中三个。
第一个是前公务员,姓周,五十三岁,曾经是区民政局的科长。他现在住在城南一个老旧小区的地下室里,余量六十二个单位。他瘦了很多,脸颊凹陷,但眼神还很清亮。
“你是河图科技的人?“周科长警惕地看着陆鸣。
“以前是。我也在被降余量。”
周科长沉默了一会儿,然后从床底下拖出一个纸箱,里面装满了打印出来的文件和报纸剪报。
“我在民政局的时候,负责过余量系统的社会影响评估。我发现了一些东西。“他压低声音,“余量系统的核心参数里,有一个隐藏的权重维度,叫’社会稳定贡献度’。这个名字听起来很正常,但它的实际计算方式——”
他翻出一张表格,上面密密麻麻的数据。
“它不是根据你实际做了什么来计算的,而是根据你’可能做什么’来预估的。系统会分析你的社交网络、消费习惯、出行轨迹、阅读偏好,甚至你在线上社区的发言频率和情绪倾向,然后给你打一个’潜在风险分’。分数越高,你的余量下降越快。”
” predictive policing,“陆鸣脱口而出,“预测性执法。”
“比那更过分,“周科长说,“预测性执法好歹还要等你有犯罪嫌疑。这个系统直接在你什么都没做的时候,就判定了你’可能’会对社会稳定造成影响,然后提前削减你的资源。这不是执法,这是——”
“预制惩罚,“陆鸣接过他的话。
两个人对视了几秒。窗外传来远处工地的打桩声,像是某种沉闷的心跳。
五
第二个找到的人是一个年轻女人,叫沈亦舟,二十七岁,自由撰稿人。她的余量还有一百四十三点七个单位,但下降速度比陆鸣还快。
她住在一家胶囊旅馆里,因为一个月前她的公寓租约被”系统优化”了——房东收到通知,低余量租客的居住权需要重新评估,于是她的合同被提前终止。
“我写过几篇文章,“她坐在胶囊旅馆的公共休息区,手里捧着一杯白水,“关于余量系统对低收入群体的影响。发在几个独立媒体上。阅读量不高,可能就几千人看过。”
“然后你的余量就开始下降了?”
“对。一开始我没注意到,因为下降很慢。后来越来越快,我就知道不对了。“她苦笑了一下,“他们不需要封你的号,不需要删你的文章,甚至不需要找你谈话。只要把你的余量降到一定程度,你就自然失去了发声的能力——你的网络会被降速,你的设备会被限制,你的出行范围会被缩小。最终,你会从这座城市里’消失’,不是物理意义上的消失,而是社会意义上的。你变得不可见。”
陆鸣想起了那些暗灰色的数字——属于黑暗中没有亮灯的窗户的数字。
“你说你写过几篇文章,你还有底稿吗?”
沈亦舟摇了摇头:“都在云端。我的云盘账号已经被冻结了。余量低于两百,云存储服务会被限制。”
她低头看了看自己的水杯,白水在荧光灯下泛着冷光。
“但我记得最核心的数据。我在民政局的一个朋友帮我查过——余量系统上线后的第一年,城市边缘区域的人口迁出率增加了百分之三百四十。而迁入人口几乎为零。那些余量归零的人,全部被转移到了集约居住区。但集约居住区的人口数据——”
“是保密的,“陆鸣说。
“不是保密的。是不存在的。我查遍了所有公开的统计数据,集约居住区的人口、面积、基础设施,全部都是空白。就像那个地方根本不存在一样。”
“但它存在。”
“它当然存在。只是不存在于数据里。“沈亦舟抬起头,“你知道吗,最可怕的不是有人监视你,而是有人能让你的存在从数据中消失。在这个城市里,如果你的数据不存在了,你也就不存在了。“
六
第三个人,陆鸣找了他整整五天。
他叫方远,四十一岁,曾经是河图科技的资深架构师,比陆鸣早两年入职,也是核心算法组的成员。他在系统上线后第八个月离职,原因是”个人原因”。
陆鸣费了好大劲才在一个城中村的出租屋里找到他。方远的变化很大——头发白了一半,脸上布满了不属于这个年纪的皱纹,像是一棵被移到背阴处的树。他的余量只剩十九点八个单位。
“你来了,“方远看到他,没有惊讶,像是早就在等这一天,“我一直在想,什么时候会有人找到我。”
“你知道系统的问题?”
“我不仅知道,我知道得太多了。“方远让他坐下,从枕头底下抽出一个U盘,“这是余量系统的完整源代码,包括那个隐藏维度的计算逻辑。我离职之前拷贝的。”
陆鸣接过U盘,手指微微发抖。
“为什么离职?”
方远笑了笑,笑容很苦:“因为我问了一个不该问的问题。系统上线后,我发现’社会稳定贡献度’这个维度的权重异常高,高到几乎可以覆盖所有其他维度。也就是说,不管你挣多少钱、纳多少税、做多少公益,只要系统判定你的’潜在风险分’够高,你的余量就会被削减。”
“谁设定的这个权重?”
“不知道。代码里没有署名,只有一个内部编号:PM-0971。我查过这个编号,它不在公司的组织架构里。”
“不在公司里?”
“对。它是从外部直接写入的。有人——或者某个机构——在系统上线之前,通过某种渠道,把这几行代码注入了核心模块。而我们这些写代码的人,从来不知道它们的存在。”
陆鸣想起了老邱的那句话:“这是产品层面的决策,不是技术层面的问题。“老邱知道。或者老邱至少知道一部分。
“PM-0971,“陆鸣念了一遍这个编号。
方远看着他,眼神复杂:“你最好别查这个编号。我就是因为查了这个,才变成现在这样的。”
“你已经只有十九个单位了。”
“是啊。“方远靠在墙上,看着天花板上剥落的墙皮,“再过几天我就要去集约居住区了。说实话,我不害怕。我只是觉得——荒谬。我亲手造了一个笼子,然后把自己关了进去。”
他把目光移回陆鸣脸上:“你知道最讽刺的是什么吗?这个系统本来是用来优化资源分配的。它的初始设计是公平的。但在它上线的那一刻,就被人篡改了。技术是中性的,但用技术的人不是。“
七
陆鸣把U盘带回了家,插进了一台已经断网的旧笔记本电脑。
他花了一整夜的时间读完了全部源代码。方远说的是对的。在余量计算的核心模块中,有一个被深深埋藏的子模块,名为”社会稳定贡献度评估器”。它的逻辑是一个复杂的神经网络模型,输入维度包括了几乎所有可以采集到的个人行为数据——消费记录、出行轨迹、社交关系、网络浏览历史、甚至在智能音箱前的对话内容。
而它的输出,是一个介于零到一之间的”风险分”。这个分数会以极高的权重进入余量计算模型,几乎可以单方面决定一个人的余量走向。
更令人不寒而栗的是,这个神经网络的训练数据不是公开的。陆鸣无法判断它是用什么标准来定义”风险”的。但从代码中的注释和参数来看,“风险”似乎与”对现状的不满程度”高度相关。
批评余量系统,是风险。组织社区活动,是风险。阅读独立媒体,是风险。与低余量人群频繁接触,是风险。
而那些被标记为高风险的人,他们的余量会以加速度下降,直到归零。
陆鸣关闭了电脑,坐在黑暗中。窗外是城市的灯光,远处的高楼像是一排排发着光的墓碑。他想起自己写的那些代码——那些精密的、优雅的、高效的代码——它们现在正在黑暗的机房里日夜运转,像一台看不见的织布机,把一千六百万人的生活编织成一张巨大的网。而网的另一端,有一只看不见的手,在拨弄着经纬。
他的余量又下降了。他能感觉到——不是通过数字,而是通过一种更原始的直觉。像是有什么东西正在从他的身体里被缓慢地抽走。
他拿起手机,看到一条推送:“余量系统二期工程即将启动,新增’健康贡献度’维度,鼓励市民积极参与健康管理。”
标题下面是一张阳光明媚的宣传图,一个笑容灿烂的年轻女性在公园里跑步,头顶的数字是绿色的,显示着她的余量在稳步上升。
陆鸣盯着那张图片看了很久。那个女性的笑容太完美了,完美得像是一个算法生成的梦境。
八
第二天,陆鸣去找了沈亦舟。
他在胶囊旅馆没有找到她。前台告诉他,沈小姐的房间已经退了。他问去了哪里,前台摇摇头,说不知道。
他站在胶囊旅馆门口,看着街道上来来往往的行人。每个人头顶都悬浮着淡蓝色的数字,像是一种无声的标签。他的目光在人群中搜索,试图找到沈亦舟的面孔。
没有。
他掏出手机,打开社交媒体,搜索沈亦舟的名字。她的账号还在,但最后一条消息停在了三天前。那是一条转发,内容是一篇关于余量系统与居住权关系的调查报道。报道的标题是《看不见的墙:余量如何重塑了城市的地理》。
再往下翻,就没有了。
陆鸣拨了她的电话。关机。
他有一种不好的预感。他加快脚步,走向最近的一个地铁站。在站口,他看到了一个熟悉的身影——不是沈亦舟,而是那个在地铁站口拉小提琴的老人。老人的余量现在只有十一点三个单位,比上次见到他时又低了很多。
陆鸣在他面前停下脚步,放了一枚硬币在琴盒里。老人抬起头,冲他微微点了点头。
“你知道那个自由撰稿人吗?经常在这附近出没的,年轻女的,戴眼镜。”
老人想了想:“你说小沈?好几天没见着她了。听人说她的余量归零了,被送去集约区了。”
陆鸣的心沉了下去。
“这么快?上周她还有一百多个单位。”
老人叹了口气,琴弓在弦上划出一个低沉的音符:“有的人降得快,有的人降得慢。没什么道理可讲。”
他重新拉起了琴。是一首陆鸣不认识的曲子,旋律很简单,像是摇篮曲,又像是某种遥远的民谣。在嘈杂的地铁站口,琴声细弱得几乎听不见,但它确实存在——像一根细细的线,在钢铁和混凝土的缝隙中穿行。
九
陆鸣回到家,锁上门,重新打开了那台断网的笔记本电脑。
他开始分析U盘里的代码,试图找到PM-0971的更多线索。在代码的深层,他发现了一组加密的配置文件。这些文件使用了河图科技内部的加密协议,而陆鸣——作为前核心算法组的成员——记得密钥的格式。
他花了一天时间破解了加密。配置文件解开后,呈现出一个令他震惊的事实:PM-0971不是一个简单的后门代码,而是一整套”社会控制框架”的技术规范。这份规范的制定者不是河图科技,也不是任何一个公司。
规范的抬头写着:“城市发展综合治理委员会——特别技术工作组。”
陆鸣从来没有听说过这个委员会。在城市的公开行政架构中,不存在这样一个机构。但配置文件中的细节太过详尽、太过专业,不可能是伪造的。它包括了余量系统的长期演进路线图、各阶段的社会影响评估报告、以及一份标注为”绝密”的人口迁移计划。
迁移计划的核心内容是:在未来五年内,通过余量系统的持续运作,将城市边缘区域和低收入区域的人口逐步转移至集约居住区,腾出的土地用于”高附加值产业开发”。计划的目标数字是——迁移四十万人。
四十万人。他们的余量将被系统性地削减至零,然后从这座城市的数据中消失。
陆鸣合上了电脑。他的手在发抖,不是因为恐惧,而是因为愤怒。
他想起了沈亦舟的话:“最可怕的不是有人监视你,而是有人能让你的存在从数据中消失。”
他想起了方远的话:“我亲手造了一个笼子,然后把自己关了进去。”
他想起了那个拉小提琴的老人,余量十一个单位,还在拉琴。
他想起了自己的代码——那些曾经让他引以为豪的、精密的、优雅的代码。
十
接下来的三天,陆鸣几乎没有睡觉。
他在断网的电脑上写了一个程序。这个程序的作用很简单:它可以接入余量系统的数据库(需要一个具有足够权限的管理员账户),找到”社会稳定贡献度评估器”这个子模块,然后将它的权重参数修改为零。
权重归零意味着这个隐藏维度将不再影响任何人的余量。系统会继续运转,但不再携带那个看不见的”后门”。公平不会立刻降临——系统的其他维度仍然存在各种偏差和不平等——但至少,那种系统性的、针对特定人群的定向削减将被终止。
陆鸣知道这个方案不完美。即使他成功了,也只是暂时性的。发现异常后,PM-0971背后的机构会迅速修复权重,甚至升级系统的安全机制,让这种修改不再可能。而且他自己几乎必然会被追踪到。
但他想不出更好的办法。
问题在于管理员权限。他已经不是河图科技的员工了,他的账户在离职时就被注销了。他需要一个当前的、具有足够权限的账户。
他想到了老邱。
老邱现在已经是核心算法组的技术总监了。他的权限足够高。但陆鸣不确定老邱是否会帮他。甚至不确定老邱是否知道隐藏维度的存在。三年前他问老邱的时候,老邱的反应是回避的——回避可能意味着不知道,也可能意味着知道但不能说。
陆鸣犹豫了很久。最终他拨通了老邱的电话。
“陆鸣?“老邱的声音听起来很疲惫,“你怎么想起给我打电话了?”
“老邱,我需要见你一面。有件事很重要。”
“什么事?电话里不能说吗?”
“不能。”
电话那头沉默了几秒。“好吧。明天中午,公司附近的那家面馆。你知道的。”
陆鸣知道。他们以前经常在那家面馆吃午饭,两个人,两碗阳春面,一碟花生米,可以坐一个小时。
十一
面馆还是老样子。白色的瓷砖墙上挂着菜单,老板娘在灶台后面忙碌,空气里弥漫着酱油和葱花的气味。陆鸣早到了十分钟,要了一碗面,慢慢地吃。他的余量现在是二百一十一个单位。每一口面、每一口汤,都像是珍贵的告别。
老邱准时到了。他比三年前胖了一些,头发稀疏了一些,但眼神还是那样——温和中带着一丝精明,精明中又藏着一点疲惫。
他坐下来,也要了一碗面。
“说吧,什么事?”
陆鸣放下筷子,直视着老邱的眼睛:“你知道余量系统里有一个隐藏维度。”
这不是疑问句。
老邱的表情没有变。他拿起筷子,夹了一块牛肉,慢慢地嚼。
“你都知道什么?“老邱问。
“我知道’社会稳定贡献度评估器’。我知道它的权重异常高。我知道它是从外部注入的。我知道它正在被用来定向削减特定人群的余量。我还知道PM-0971和城市发展综合治理委员会。”
老邱放下了筷子。他的面只吃了一半。
“你怎么知道的?”
“方远。他离职前拷贝了源代码。”
老邱闭了一下眼睛。当他重新睁开的时候,温和和精明都消失了,只剩下疲惫。
“方远……他还好吗?”
“他的余量还有不到二十个单位。你告诉我他好不好。”
老邱沉默了很久。面馆里的嘈杂声像潮水一样涌来又退去。老板娘在招呼新来的客人,灶台上的蒸汽模糊了窗玻璃。
“我帮不了你,陆鸣。”
“我没有让你帮我。我只是想让你知道这件事。”
“我知道这件事。我比你知道得更早。“老邱的声音很低,低到几乎被面馆的噪音淹没,“系统上线前的最后一周,我被叫去参加了一个会议。会议上有一个我不认识的人,穿着便装,没有出示任何证件。他告诉我们,系统需要进行一些’必要的调整’。他拿出了一份技术规范,就是那个PM-0971。我们按照规范修改了代码。”
“你就这么做了?”
“我能怎么做?拒绝?然后呢?第二天我的余量会怎样?我老婆孩子的余量会怎样?“老邱的目光落在那碗没吃完的面上,“你以为只有你注意到余量在下降?我的余量也在降。每个月降一点。不多,但一直在降。这是一种提醒——让我知道我随时可以被处理。”
陆鸣没有说话。
“这个系统从第一天起就不是我们设计的那个系统了,“老邱继续说,“我们造了一把秤,他们把它改成了刀。而你——你现在想做的是什么?把刀改回秤?”
“至少让那个隐藏维度失效。”
“然后呢?他们会发现的。几个小时之内就会发现的。然后他们会修复它,加强安全,而你——你会消失。不是那种消失。是真正的消失。集约居住区的那种消失。”
“我知道。”
老邱抬起头,认真地看着陆鸣。他的眼睛里有一种陆鸣从来没有见过的东西——不是恐惧,不是愤怒,而是一种很深很深的悲伤。
“你真的想好了?”
“我想好了。”
老邱又沉默了很久。然后他从口袋里掏出一张纸巾,擦了擦嘴角,站了起来。
“我什么都没给你。你什么都没从我这里拿到。我们来这里吃了一碗面,聊了聊老同事的近况。就这样。”
“当然。”
老邱转身走向门口。走到门边的时候,他停了一下,没有回头。
“我的笔记本电脑还在公司的办公桌上。密码是我女儿的生日。没有锁屏。”
然后他推开门,走了出去。
面馆的门在身后关上,带进一股六月的热风。陆鸣坐在原处,看着老邱那碗没吃完的面,汤已经凉了,面条坨成一团。
他想起了一个很久以前的细节。他刚入职河图科技的时候,第一天中午,老邱带他来这家面馆吃饭。老邱说:“做技术的,最重要的不是聪明,是良心。代码写得再漂亮,如果良心歪了,那就是在作恶。”
那年老邱三十五岁,意气风发,眼睛里还没有疲惫。
十二
当天晚上十一点,陆鸣站在河图科技大楼的对面。
这是一栋二十二层的玻璃幕墙建筑,在夜晚显得像一块巨大的蓝色冰砖。大楼的安保系统很严格——门禁、人脸识别、访客登记,一个都不少。但陆鸣不需要进去。
他需要的只是一台能够接入余量系统数据库的终端。而老邱的笔记本电脑——如果老邱说的是真的——就在大楼内部,已经接入了公司的内网。
陆鸣不需要物理进入大楼。他需要的是远程接入那台电脑。
他在河图科技工作的那些年,记住了公司内网的很多技术细节。虽然他的员工账户已经注销了,但内网的基础架构不会轻易改变。而且他知道一个运维用的测试账户——这个账户是他在职时创建的,用于系统调试,权限不高,但可以访问内网。
离职的时候,他忘记注销这个账户。或者,他不是忘记的。
他打开自己那台老旧的笔记本电脑,连上了一个公共Wi-Fi热点,然后用VPN隧道接入了河图科技内网的边缘节点。测试账户还在。密码是他设的那个——一串看似随机的字符,实际上是他母亲名字的拼音加上她的生日。
他的母亲三年前去世了。在余量系统上线之前。这是他唯一庆幸的事——她不用活在一个连呼吸都要被量化的世界里。
通过测试账户,他找到了老邱的电脑。它在核心算法组的办公区内,IP地址以192.168开头,像一个安静的哨兵。
陆鸣深吸一口气,开始操作。
他通过远程桌面协议接入了老邱的电脑。屏幕亮起来,是一个标准的工作桌面,壁纸是老邱女儿的照片——一个扎着马尾的小女孩,在草地上笑着奔跑。
桌面上有好几个终端窗口,其中一个已经连接到了余量系统的数据库。这是核心算法组日常工作的标配——他们需要实时监控系统的运行状态。而老邱作为技术总监,他的数据库连接具有最高级别的管理员权限。
一切都像老邱安排好的那样。他没有给陆鸣任何东西,但也没有拿走陆鸣需要的东西。
陆鸣打开了那个数据库连接。屏幕上开始滚动数据——一行行密密麻麻的表格和字段,一千六百万人的余量记录,每一个数字背后都是一个活生生的人。
他找到了”社会稳定贡献度评估器”的配置表。在那个表中,隐藏维度的权重参数赫然写着:0.87。
零点八七。这意味着在所有的余量计算维度中,这个隐藏的、不可见的、由外部机构注入的维度,占据了百分之八十七的权重。
百分之八十七。
陆鸣盯着这个数字看了很久。他终于理解了为什么有些人的余量会断崖式下降——不是因为他们做错了什么,而是因为系统判定他们”可能”做错什么,而这个判定的权重接近九成。
九成的命运,掌握在一个看不见的黑箱里。
他的手指悬在键盘上方。只需要把0.87改成0.00,然后按下回车。就这么简单。一个数字的改变,可能改变四十万人的命运。
但他的手指没有动。
不是因为恐惧。而是因为他在数据库的日志中看到了另一条记录。
十三
日志显示,在过去的三个月里,有一个人也在频繁地访问这个配置表。不是通过管理员账户,而是通过一个直接嵌入系统的自动化脚本。这个脚本每隔六个小时运行一次,每次都会微调”社会稳定贡献度评估器”的内部参数——不是权重,而是神经网络模型的阈值。
它在学习。
每次有余量归零的人被送进集约居住区,系统就会收集这些人的全部行为数据,用这些数据来重新训练”风险预测”模型。模型变得越来越精确,越来越敏感,能识别出越来越微弱的”风险信号”。
它不仅仅是一个控制系统。它是一个自进化的控制系统。
每消失一个人,它就变得更聪明一点。
陆鸣的血液像是被冰水浇透了。他想起了沈亦舟——她的余量在一百多个单位的时候突然归零,快得不正常。现在他知道了原因:系统从她身上学到了什么。也许是她写文章的模式,也许是她联系信息源的方式,也许是她思考问题的角度。系统把这些提炼成了新的”风险特征”,然后应用到更多人的评估中。
每一个被消失的人都在为系统提供训练数据。他们在消失之后,以另一种形式继续存在——作为参数、作为权重、作为神经网络中的一个个节点。
这不是预制惩罚。这是预制吞噬。
陆鸣的手指终于落在了键盘上。他把0.87改成了0.00,然后又停了下来。
仅仅改权重是不够的。即使权重归零,模型还在,数据还在,脚本还在运行。只要有人把权重改回来,一切就会恢复原状。而且他现在知道了——系统会学习。它会从每一次干预中学习,变得越来越难以被干预。
他需要一个更彻底的方案。
陆鸣开始重新审视数据库的结构。他发现了一个关键点:“社会稳定贡献度评估器”的训练数据存储在一个独立的数据库中,与主数据库分离。这意味着他可以单独处理这些数据,而不影响余量系统的其他部分。
他写了一段脚本。这段脚本做了三件事:
第一,将隐藏维度的权重归零。
第二,删除”社会稳定贡献度评估器”的全部训练数据。
第三,在配置表中植入一个校验机制——每当有人试图修改隐藏维度的权重时,系统会自动生成一条警报,发送到所有核心算法组成员的企业邮箱。
前两件事是技术层面的解决方案。第三件事是政治层面的——它确保了任何试图恢复隐藏维度的操作都将在技术团队内部留下痕迹。也许这不足以阻止那些人,但至少让他们不能在暗处行动。
他检查了三遍代码,确认没有错误。然后他看了一眼时间:凌晨三点十七分。
他按下了回车键。
十四
系统的反应比他预想的快。
权重归零的瞬间,数据库的状态灯从绿色变成了黄色——这意味着有一个核心参数被修改,系统正在进行一致性校验。十五秒后,状态灯变回了绿色。校验通过。
陆鸣知道他只有很短的时间。系统每六个小时运行一次自动巡检,巡检会发现权重异常。也就是说,他最多有六个小时的窗口。
他迅速启动了第二步——删除训练数据。这是一项更大的操作,数据量超过了两个TB。删除进度条在屏幕上缓慢地爬行,像是一只疲惫的蜗牛。
百分之十……百分之二十……
陆鸣盯着进度条,心脏砰砰地跳。他知道自己应该立刻断开连接,减少被追踪的风险,但他不能——如果中途断开,删除操作会被中断,而系统的日志会记录下这次未完成的操作。
百分之四十……百分之五十……
他的余量又下降了。他能感觉到——像是一根针在皮肤下面缓慢地移动。系统在某个层面上感知到了他的行为,尽管它不知道是谁在做什么,但它的自我保护机制已经被触发。他的余量正在被加速消耗。
百分之六十……百分之七十……
他开始出汗。不是因为热,而是因为他的身体正在对余量的快速下降做出反应。就像是某种无形的重量正在压在他的胸口上,让每一次呼吸都变得更加费力。
百分之八十……百分之九十……
他看到了一个警报弹窗:系统检测到异常数据操作,正在验证操作来源。
百分之九十五……
验证进度:百分之三十。
百分之九十八……
验证进度:百分之六十。
百分之九十九……
验证进度:百分之八十。
百分之百。
删除完成。
陆鸣没有犹豫,立刻执行了第三步——植入校验机制。这段代码很短,只有二十三行,但每一行都经过精心设计。它不会触发任何安全警报,因为它伪装成了一个普通的系统维护脚本,只有在权重被修改时才会被激活。
脚本植入完成。
他断开了连接,关闭了笔记本电脑,把它塞进了背包里。然后他坐在黑暗中,等待着自己的命运。
十五
六个小时后,陆鸣从新闻里看到了效果。
不是头条新闻。是一条不起眼的快讯,藏在财经版的角落里:“余量系统今晨出现技术波动,部分市民余量出现异常变动,技术部门正在进行紧急修复。”
他打开社交媒体,看到了铺天盖地的讨论。有人在晒自己的余量——一夜之间,很多人的余量大幅回升了。那些之前被隐藏维度压低的数字,在权重归零之后,重新回到了它们应有的水平。
一个外卖骑手发了一条微博:“我的余量从六十七变成了四百三十二!怎么回事?是不是系统出bug了?”
一个退休教师发了一条朋友圈:“今天早上去医院,发现自己的医保额度恢复正常了。前几个月一直被限制,说是余量不够。今天突然就好了。”
一个年轻的母亲在短视频平台发了一段视频,画面里是她在超市结账的场景。她的余量足以支付购物车里所有的东西——婴儿奶粉、纸尿裤、一袋苹果。她在视频里哭了。
陆鸣看着这些内容,眼眶发酸。
他知道这个窗口不会持续太久。PM-0971背后的人很快就会发现发生了什么——权重被修改了,训练数据被删除了,而且还有一个会暴露他们操作的校验机制。他们有几种选择:恢复数据(但没有训练数据了,模型需要重新构建,这需要时间),绕过校验机制(陆鸣的代码写得足够隐蔽,短时间内不太可能),或者直接关闭整个系统进行”维护”。
他们选择了第三种。
当天下午,城市电视台发布了一条公告:“因余量系统发现技术故障,即日起暂停服务,进行系统升级维护。在此期间,所有市民的基本城市服务不受影响。”
公告没有提到隐藏维度,没有提到被删除的数据,没有提到被篡改的权重。它用了”技术故障”这个词,干净而模糊,像是一块覆盖在裂缝上的白布。
但裂缝已经存在了。白布盖不住。
十六
系统暂停的第三天,陆鸣在出租屋里等来了一群人。
他们没有穿制服,没有出示任何证件。五个人,三男两女,表情严肃但克制。他们中的一个——戴着金丝眼镜、穿着深灰色风衣的男人——陆鸣见过。就在那条繁华的商业街上,从一辆特殊号牌的车里走出来,余量九千八百四十七点二的那个人。
“陆鸣先生,“金丝眼镜说,声音平静,像是在讨论天气,“我们需要谈谈。”
“请坐。“陆鸣指了指房间里唯一的椅子。
金丝眼镜没有坐。他站在窗前,看着外面的城市。
“你做了一件很勇敢的事,“他说,“但也是一件很愚蠢的事。”
“我知道。”
“你知道系统会在六小时内恢复吗?”
“你们可以选择不恢复。”
金丝眼镜笑了一下。那个笑容没有任何温度。
“你以为你删除了训练数据,系统就废了?那些数据我们有备份。你以为你改了权重,就能改变什么?权重只是工具,工具可以随时换。真正的问题不是权重——是你的思维方式。你以为技术可以解决政治问题。但技术从来都是政治的延伸。”
“所以我让你们的工作变得更困难了一点点。”
“不。你让那些人的处境变得更艰难了。“金丝眼镜转过身,“系统暂停的三天里,城市的基础服务出现了混乱。交通调度失灵,医疗资源分配紊乱,公共安全监控盲区扩大。这些混乱影响最大的人是谁?不是我们。是那些余量最低的人。”
陆鸣沉默了。他知道金丝眼镜说的有一部分是对的。余量系统虽然被篡改了,但它同时也承担着城市基础资源调配的功能。一旦整个系统停摆,最先承受冲击的确实是最脆弱的人群。
“那你们打算怎么办?恢复原来的系统?”
“我们会恢复系统。但会做一些调整。“金丝眼镜的目光落在陆鸣身上,“隐藏维度的权重会被降低。不会归零,但会降低。训练数据会重新构建,但会更加——谨慎。你的校验机制,我们会保留。”
“为什么?”
“因为它提供了一个——“他顿了一下,似乎在寻找合适的词,“缓冲。每一次修改权重都会在技术团队内部留痕,这意味着未来的操作需要更多的——共识。这降低了效率,但增加了稳定性。从长远来看,这对我们也是有利的。”
陆鸣听着这些话,感觉像是在看一场精密的手术。他们不是在惩罚他,不是在威胁他,而是在收编他。把他的反抗变成系统的一部分,把裂缝变成一种可控的释放机制。
“那我呢?“陆鸣问。
“你的余量会恢复到一个正常水平。不会太高,不会太低。足够你过正常的生活。“金丝眼镜走到门口,“但你不会再进入这个行业了。也不会再和方远、周科长这些人联系。你是一个普通的市民,过普通的日子。这就是我们的条件。”
“如果我不接受呢?”
金丝眼镜停下脚步,回头看了他一眼。那个眼神里没有威胁,只有一种奇特的平静,像是在看一个已经注定结局的故事。
“你会接受的。不是因为害怕。而是因为你知道,如果你不接受,那些余量刚刚回升的人,他们的数字会再次掉下去。这次会掉得更快。”
他推开门,走了出去。
其他四个人也跟着离开了。房间里重新安静下来,只剩下窗外城市的噪音——汽车、人声、远处工地的打桩声。
陆鸣坐在床边,低着头,看着自己的双手。这双手写过改变一千六百万人命运的代码,也按下过也许能拯救四十万人的回车键。现在它们空空地垂在膝盖上,什么也握不住。
十七
余量系统在一周后重新上线。
正如金丝眼镜承诺的那样,隐藏维度的权重降低了——从0.87降到了0.31。仍然很高,但不再是压倒性的。训练数据被重建了,但更加”谨慎”——这个词的含义只有他们自己知道。陆鸣植入的校验机制被保留了,这意味着未来的权重修改会在技术团队内部留下记录。
陆鸣的余量恢复到了一千二百个单位。不高不低,恰好在城市的平均水平。刚好够他住在一个不算太差的区域,用正常的网速,坐不太挤的地铁。
他不再能看到那些数字了。
自从系统重新上线之后,他头上悬浮的那些淡蓝色的余量数字就消失了。他不知道为什么——也许是因为他的余量回到了一个”正常”区间,那种特殊的感知能力就不再被触发了。也许是因为别的什么原因。
他走在街上,看着来来往往的行人,他们的头顶干干净净,没有任何数字。一切看起来都很正常,很平和,很合理。
但他知道那些数字仍然存在。在他的视线之外,在某个地下数据中心的机柜里,一千六百万个数字正在被持续地计算、更新、记录。每一个数字背后是一个人,每一个人背后是一段生活,每一段生活都在被某个看不见的算法衡量、评估、定价。
他走进了一家面馆。就是那家他和老邱经常去的面馆。
老板娘认出了他:“好久没来了。还是阳春面?”
“对。一碗阳春面。”
面端上来了。清汤、细面、几根葱花、一勺猪油。和三年前一模一样。陆鸣拿起筷子,挑起一口面,送进嘴里。
面条很筋道,汤头很鲜。他慢慢地吃完了整碗面,连汤都喝光了。
他放下碗,看了看窗外。六月的阳光很强烈,把街道上的一切都照得清清楚楚。行人、车辆、树木、建筑——一切都清晰而具体,没有数字,没有标签,没有算法的影子。
但他知道,在那些清晰的表面之下,有一张看不见的网。网的经纬线由代码编织,网的节点是每一个人的数据,而在网的另一端,有人在拨弄着经纬。
他把钱放在桌上,走出了面馆。
尾声
三个月后的一个清晨,陆鸣在信箱里收到了一张明信片。
明信片没有署名,没有地址,没有邮戳。正面是一幅手绘的画——一个人在地铁站口拉小提琴,旁边站着几个驻足聆听的行人。画风很朴素,像是用彩色铅笔画的。
背面只有一行字,字迹潦草但有力:
“余量不是一切。”
陆鸣把明信片翻到正面,仔细看了看那幅画。拉小提琴的老人弓着背,琴弓在弦上划出一道弧线。在他的脚边,有一个敞开的琴盒,里面有几枚硬币和几张折叠的纸币。
在画的角落里,有一个小小的、几乎看不见的数字。不是淡蓝色的,是黑色的,像是用极细的钢笔写上去的。
那个数字是:0.0。
陆鸣看着那个数字,久久没有动。
然后他把明信片放进了口袋里,走出了公寓。
外面是一个晴朗的秋天的早晨。空气里有桂花的香味,有人在晨跑,有人遛着狗,有人在早餐摊前排着队。他们看起来很普通,很日常,很像是生活本来的样子。
陆鸣走进了人群之中。
他的头顶没有数字。他们的头顶也没有数字。但数字在某个地方存在着,计算着,运转着。而在这座城市的某个角落——也许是一个地下数据中心,也许是一个无人的办公室,也许是一个他永远不会知道的地方——那个他植入的校验机制正在安静地运行着,像一个沉睡的哨兵。
它不会改变世界。但它会让改变世界的人多走一步。
哪怕只是一步。
(全文完)