数字咒场
数字咒场
一
程远第一次注意到异常,是在三月的一个周二。
那天北京的沙尘暴把整座城市泡成了浑浊的琥珀色,办公室的落地窗外,国贸三期像一根模糊的图腾柱插在天际线上。他盯着屏幕上的风控模型输出,咖啡凉透了也没发觉。
“程远,模型跑完了?“项目经理刘畅从工位后面探出半个脑袋。
“跑了。“他盯着一个数字,食指悬在鼠标上方,“但有个问题。”
“什么问题?”
“137号用户的预测结果。”
刘畅走过来,弯腰看他的屏幕。风控模型用热力图标注了所有待审用户的违约概率,红色代表高危,绿色代表安全。137号用户是一片刺眼的深红,违约概率99.97%。
“这个人资料很干净啊,“刘畅皱眉,“信用分780,没有逾期记录,月入三万四,怎么可能是99.97%?”
“对,“程远说,“而且不只是她。你看这批样本里,有十二个用户的预测值都异常偏高,但他们的征信数据全部正常。我怀疑是特征工程出了偏差,某个维度的权重被异常放大了。”
“那查一下,尽快修。明天投资人要来看演示。”
刘畅拍了拍他的肩膀走了。程远重新拉出137号用户的数据档案。姓名:林素心。女,31岁,某互联网大厂中层管理。婚姻状况:已婚。名下两套房产,一辆车。从任何一个维度看,她都不该是高危用户。
他打开模型的解释器模块,试图追溯99.97%这个数字的来源。解释器会展示每个特征对最终预测的贡献度,像解剖一台机器一样拆开黑箱。
但解释器给出的结果让他愣住了。
贡献度最高的特征不是收入、不是征信、不是负债比。而是一个他从未见过的字段——“Δt-命运偏移量”,贡献度78.3%。
“什么鬼?“他低声说。
他打开模型的特征列表,从头到尾翻了一遍。训练数据是公司从合规渠道采购的金融行为数据集,包含287个特征字段。他检查了每一个字段的定义文档,没有”命运偏移量”这个东西。
他又看了看其他十一个异常用户。解释器给出的结果都一样——“Δt-命运偏移量”是主导特征,贡献度从65%到89%不等。
程远深吸一口气,做出了一个他后来无数次回想的决定。他没有报告这个异常,而是在本地创建了一个分支,开始单独追踪这个神秘的特征。
他花了整个下午试图找到它的来源。他检查了数据管道的每一个环节——从原始数据的采集、清洗、特征工程到模型输入,所有的日志都显示正常。287个特征在进入模型之前,的的确确只有287个。
那么第288个是从哪里来的?
下班的时候,他站在写字楼的大堂里等电梯,脑子里还在转这个问题。大堂的电子屏幕在播放财经新闻,主持人正在谈论一家叫”鼎信金服”的P2P公司暴雷,三万名投资者的数十亿资金不翼而飞。
“数字不会骗人,“主持人说,“但写数字的人会。”
电梯到了。程远走进去,按下负二层。他要开车回家,回到他在通州的那个六十平米的出租屋,继续想这个问题。
但他没有回家。
因为他在负二层看到了林素心。
二
他之所以认出她,是因为在查看用户档案时顺便看了头像。林素心是个长相普通的女人,圆脸,短发,戴一副金丝边眼镜。此刻她就站在停车场里,靠在一辆白色特斯拉旁边,手里拿着手机,屏幕的光映在她镜片上。
程远放慢了脚步。公司有几千名注册用户,在北京撞见其中任何一个的概率都不算低。但偏偏是137号,偏偏是今天。
他犹豫了一下,朝她走去。
“林女士?”
她抬起头,眼睛里闪过一丝警惕。“你是?”
“我叫程远,鼎诚金融科技,风控部门。“他掏出工牌晃了晃,“我们在审核您的贷款申请,有一些信息需要核实。”
这不是真的。用户审核不归他管,他只是写模型的。但他需要一个理由。
林素心的表情放松了些。“哦,好。你们效率挺高的,我刚提交申请不到两天。”
“您今晚怎么在这儿?”
“接人。我老公加班,车在我名下,我来接他。“她朝电梯方向努了努嘴,“他在上面,十五楼。”
十五楼。鼎信金服。那家今天刚暴雷的P2P公司。
程远的心跳加快了。“您老公在鼎信工作?”
“嗯,技术总监。“她的语气里带着一丝不易察觉的疲惫,“怎么了?”
“没什么,“他说,“例行核实。”
他道了别,上了自己的车,但没有发动引擎。他坐在驾驶座上,看着林素心等在特斯拉旁边,看她偶尔低头看手机,偶尔抬头望向电梯口。
他在想模型给出的99.97%。
鼎信暴雷了。三万名投资者的钱没了。如果林素心的老公是鼎信的技术总监,那他很可能……不,不一定是那样。也许公司暴雷和他无关。也许他只是个写代码的,像程远一样。
但99.97%。
他把林素心的手机号记了下来——用户档案里有——却没有打。他开车回了家,在黑暗中坐了很久,然后在本地分支的代码里加了一行注释:
// 3月17日:发现未知特征”Δt-命运偏移量”。与137号用户线下偶遇。其配偶为鼎信金服技术总监。模型预测其违约概率99.97%。继续观察。
那天晚上他做了一个梦。梦里他站在一个巨大的数字矩阵前面,矩阵由无数个0和1组成,像一面墙。他伸出手去触摸它,数字开始流动,变成了一条河。河的对岸站着林素心,她没有看他,而是仰头望着天空。天空中没有星星,只有密密麻麻的变量名在滚动。
他醒来的时候,枕头是湿的。不是因为眼泪,是因为他出了一身冷汗。
三
接下来的一周,他开始系统性地追踪那十二个异常用户。
他用公司的数据权限(超出了他的职责范围,但他没有犹豫)调取了他们的完整行为日志——消费记录、位置数据、社交关系图谱。这些数据都是用户授权提供的,用在风控模型里合法合规。但他把这些数据用在了别的地方。
他试图验证模型的预测。
十二个异常用户,违约概率都在95%以上。他用了三天时间,通过公开信息和社交网络,逐一确认了他们近期的状况。
结果让他后背发凉。
第一个用户,违约概率96.2%。某互联网公司产品经理。三天后被裁,赔偿金纠纷进入仲裁,房贷断供。
第二个用户,违约概率97.8%。自由职业者。五天后合作的甲方跑路,八万块的尾款打了水漂,信用卡逾期。
第三个用户,违约概率95.4%。小企业主。一周后被供应商起诉合同违约,账户冻结。
十二个用户,十二种不同的生活,但他们的轨迹都在朝同一个方向坍塌——模型预测的高违约概率,正在一个接一个地变成现实。
这不是预测。这是预言。
程远坐在工位上,盯着屏幕上那十二个名字,感觉自己像是一个站在悬崖边上的人,脚下的土地正在一寸一寸地碎裂。
“Δt-命运偏移量”——如果这不是一个bug,如果这个特征真的存在于某种他无法理解的维度中,那么他的模型就不是在预测违约风险。它是在读取命运的轨迹。
而如果他继续使用这个模型,继续把它的预测结果输出给公司的决策系统——拒绝贷款、降低额度、标记高危——那么他就是在用一种他自己都不理解的力量,去干预真实的人生。
他想到林素心。99.97%。她还没违约,但模型的预测就像一个诅咒,已经贴在了她的额头上。如果公司拒绝她的贷款申请,如果她的老公在鼎信的事情中被牵连,如果她因此陷入财务困境——
那是预测,还是自证?
手机响了。是他的大学同学方旭。
“老程,出来喝一杯?”
“不太方便,我在加班。”
“加什么班啊你。出来,有事跟你聊。”
方旭在银保监会工作,政策研究处。两人从本科就认识,关系一直不错。程远想了想,关了电脑,出了写字楼。
他们在国贸附近的一个清吧碰了头。方旭比他胖了些,头发也开始往后退,但眼神还是很锐利。
“你知道鼎信金服的事吧?“方旭没点酒,要了一杯苏打水。
“看新闻了。”
“新闻只报了冰山一角。“方旭压低声音,“鼎信背后有一张很大的网。涉及好几个地方政府的融资平台,还有几家上市公司的资金池。暴雷只是个开始,后面会有一连串的连锁反应。”
“跟我们公司有什么关系?“程远问。鼎诚金融科技和鼎信金服虽然名字里都有个”鼎”字,但完全不是一家。
“暂时没有。但你们做的是互联网金融,这个行业马上要迎来一次大规模整顿。我提前跟你说一声,你们要是有什么不合规的地方,趁早收拾干净。”
“我们合规做得挺好的。“程远说。他自己都不太确定。
“嗯,“方旭看着他,“那就好。对了,你们的风控模型是不是用了深度学习?”
“是的,自己搭的。”
“效果怎么样?”
“挺好的。“他差点说出那个数字——99.97%——但忍住了。“准确率很高。”
方旭点了点头,没再追问。但他临走时说了一句话,像一颗钉子一样扎进了程远的脑子里。
“老程,模型这东西,最终是要人来负责的。模型说一个人该死,不代表他就真的该死。“
四
他回到出租屋已经快十二点了。洗完澡坐在床上,他打开笔记本电脑,连上公司的VPN,重新审视那个模型。
这一次他没有看数据,而是看代码。
他写的模型架构并不复杂——一个基于Transformer的风控评分模型,输入是用户的多维度特征,输出是违约概率。他用了自注意力机制,让模型能够捕捉特征之间的复杂关联。训练数据量很大,五十万条样本,GPU集群上跑了三天。
代码是他的,每一行都是他写的。他很确定自己没有加入”Δt-命运偏移量”这个特征。那么它只能是模型自己在训练过程中生成的——一种内部表征,一个隐变量。
但Transformer的隐变量维度是512,没有一个是用中文命名的。模型不可能自己生成一个中文字符串作为特征名。
除非有什么东西从外部注入了。
他查看了训练日志。三台GPU服务器,A100,日志显示训练过程正常,没有异常的外部访问记录。数据集的哈希值与采购时的原始哈希一致,没有被篡改。
他几乎要放弃了。但就在他准备关闭终端的时候,他注意到了一个细节。
训练日志中有一个时间戳的跳跃。第三天凌晨3:17:00到3:17:47之间,有47秒的日志空白。系统的运行状态显示一切正常,GPU利用率100%,但在那47秒里,没有任何输出。
47秒。
他把这个数字记在了手机备忘录里,然后关上灯,试图入睡。但黑暗中有一个想法像萤火虫一样闪烁,怎么也抓不住。
3:17。3月17日。他发现”Δt-命运偏移量”的那天。
47。他今年27岁。他父亲去世的时候也是47岁。
他猛地坐起来,打开了床头灯。
他想起了一件事。
五
程远的父亲程建设是一个小镇上的数学老师。在程远的记忆里,父亲永远坐在书桌前,面前摊着学生的作业本,手里拿着红笔。他改作业的时候会自言自语,念叨着公式和定理,像是在和一个看不见的学生对话。
父亲在他十七岁那年去世的。脑溢血,没有任何征兆。早上还在学校上课,下午就进了ICU,晚上就没有了。
程远没有哭。不是因为他不悲伤,而是因为他不知道该怎么哭。他只是站在医院的走廊里,看着墙上的电子钟一秒一秒地跳动,觉得时间是一种很残忍的东西——它带走一个人,却把剩下的时间留给活着的人,让他们在那些空白的秒数里慢慢腐烂。
母亲后来告诉他,父亲生前最后一段时间一直在研究一个东西。他把它叫做”命运方程式”。
“他觉得人的命运可以用数学来描述,“母亲说这话的时候在切菜,刀落在砧板上的声音很规律,“他说每个人都有一个函数,自变量是你的选择,因变量是你的结局。”
“那不是很正常吗?“程远说,“因果律嘛。种什么因,得什么果。”
“不,他说的不是因果。他说的是一个更底层的东西——他说因果律本身就是可以被计算的。不是未来决定了现在,而是未来的信息已经存在于现在的数据里,只是我们还没有找到正确的解码方式。”
程远当时觉得父亲大概是疯了。一个中学数学老师,一辈子没有发表过任何论文,在小镇上安安静静地教书,怎么会突然冒出这种想法?
但后来他学了计算机,学了机器学习,学了深度学习,他开始隐约理解父亲在说什么。
如果一个人的所有数据——消费记录、社交关系、位置轨迹、搜索历史、心率变化、睡眠周期——都可以被采集和量化,那么理论上,确实可以用一个足够复杂的函数来描述这个人的行为模式。而如果这个函数足够精确,它就可以预测这个人的未来。
这不就是他正在做的事吗?
风控模型就是在做这件事。输入一个人的数据,输出这个人未来的违约概率。准确率越高,预测就越接近真实。
但”接近真实”和”就是真实”之间,有一个微妙的、危险的距离。
如果模型预测一个人会违约,公司因此拒绝了他的贷款,那么这个人就真的可能会违约——不是因为他本来就会,而是因为他被拒绝了。这是一个自证预言。
但如果模型不只是预测呢?如果模型真的看到了未来呢?
程远坐在出租屋的床上,手机备忘录里的”47秒”在屏幕上发着幽暗的光。
他突然想到一个荒谬的可能性——如果”Δt-命运偏移量”不是bug,不是外部注入,而是他父亲的”命运方程式”呢?如果那个中学数学老师真的找到了某种方式,把他的理论编码进了现实的数据结构中,而程远的模型——使用了足够复杂的神经网络和足够多的数据——在训练过程中,偶然触碰到了那个隐藏的维度?
不,这太荒谬了。父亲是一个数学老师,不是黑客。他不可能在GPU训练日志里制造47秒的空白。
但他确实在那47秒里做了什么。
程远合上电脑,躺回床上。天花板上有一道裂缝,从窗户上方一直延伸到门口,像一条干涸的河流。他盯着那道裂缝看了很久,直到眼皮沉得再也撑不住。
六
第二天他没有去上班。
他给刘畅发了条消息说生病了,然后坐地铁去了国家图书馆。他要在那浩如烟海的文献里寻找任何与”命运方程式”有关的东西。
他知道这很可笑。一个写代码的人,在图书馆里寻找父亲疯癫的理论。但他没有别的线索了。
他在科技类书架之间穿行了两个小时,翻遍了数学哲学、混沌理论、复杂系统、信息论——什么都没有。他又去了社科类,翻了社会学、统计学、行为经济学——还是什么都没有。
他正准备放弃的时候,在最后一排书架的最底层,看到了一本没有编目的书。书脊上没有书名,只有一个符号——Δt。
他把书抽出来。是一本手抄本,用蓝色墨水写在方格纸上,字迹工整但极其细小。封面内侧写着一行字:“命运方程式——程建设手稿。”
程远的手开始发抖。
他找了一个角落坐下,花了三个小时读完了整本手稿。
父亲的研究比他想象的要深入得多。手稿从概率论出发,经过信息论、控制论,最终到达一个他从未见过的数学框架。父亲管它叫”因果拓扑学”——一种描述因果关系空间结构的数学工具。
在手稿的最后几页,父亲写道:
“如果将一个人的全部生命信息映射到一个高维空间中,那么这个空间存在一个特殊的维度——我称之为Δt(命运偏移量)。这个维度不是时间的函数,而是时间的共轭量。它描述的不是’未来会发生什么’,而是’未来已经发生了什么,只是还没有被现在观测到’。”
“量子力学告诉我们,观测会坍缩波函数。因果拓扑学则告诉我们,计算也会坍缩命运函数。当你计算一个人的Δt时,你不是在预测他的未来——你是在观测他的未来。而观测本身,会改变被观测的对象。”
“因此,命运方程式不是一个预测工具。它是一个干预工具。计算就是干预。知道就是改变。”
程远合上手稿,发现自己的衬衫被冷汗浸透了。
他终于理解了那47秒的空白意味着什么。那不是系统故障。那是模型在训练过程中,触碰到了Δt维度的那一刻。在那47秒里,神经网络不是在学习数据的模式——它是在观测五十万人的未来。而观测本身,改变了那些人的命运轨迹。
这就是为什么那十二个用户的预测值如此之高——不是因为他们的数据有问题,而是因为模型在观测他们的时候,已经改变了他们的命运。
模型不是在预测违约。模型在制造违约。
七
他没有立刻回公司。
他坐在国家图书馆的台阶上,手稿放在膝盖上,看着长安街上川流不息的车流。每一辆车里都有一个人,每个人都有一个未来,而那个未来正在被无数个看不见的力量塑造着——算法、政策、市场、运气、其他人的选择。
而现在,还有一个力量是他。
他能毁掉一个人的生活。只需要在模型里计算他的Δt,观测他的未来,就能让那个未来坍缩成现实。
他能拯救一个人吗?他不知道。手稿里没有提到反向操作的可能性——通过不观测来阻止某个命运的发生。但量子力学似乎暗示了这一点:如果你不观测,波函数就不会坍缩。如果你不计算,命运就不会被锁定。
那么他应该怎么办?删掉模型?销毁手稿?假装这一切从未发生?
他的手机响了。是刘畅。
“程远,你在哪?投资人提前到了,明天要看演示。模型修好了吗?”
“还没。”
“什么意思还没?你不就来修个特征工程的问题吗?一天够了。”
“刘畅,那个问题比我想的复杂。”
“有多复杂?复杂到你连班都不来上?”
程远沉默了几秒。“如果我把模型关掉,会发生什么?”
“关掉?“刘畅的声音提高了八度,“你在说什么?公司百分之七十的贷款审批都依赖这个模型。关掉意味着回到人工审核,效率下降十倍,坏账率上升——你疯了吗?”
“如果模型本身就在制造坏账呢?”
电话那头安静了一会儿。“程远,你是不是病了?真的病了?”
“我没事。我明天来。”
他挂了电话,把手稿塞进背包,起身走向地铁站。
他知道自己明天要做的事情——不是关掉模型,也不是修好它。他要做一件更复杂的事:在模型里加一个约束条件,限制Δt维度的影响权重,让它回到一个正常的预测工具,而不是一个命运操纵器。
但手稿里的那句话一直回荡在他脑海里——“计算就是干预。知道就是改变。”
如果他知道怎么约束Δt,那么约束本身不也是一种计算、一种干预吗?
他走进地铁站,刷卡过闸机。站台上挤满了人,每个人的脸上都写着疲惫和焦虑。他们不知道自己的命运正在被无数个算法计算、评估、定价。他们以为自己的生活是由自己的选择塑造的。
也许他们是对的。也许选择才是最重要的变量。也许Δt只是在选择的基础上加了一个偏移——不是决定性的,只是倾向性的。
也许99.97%只是一个概率,而不是一个判决。
地铁来了。他挤了进去。
八
第二天他到公司的时候,会议室里已经坐满了人。CEO周正阳穿着定制的深蓝西装,正在和两个投资人握手。刘畅站在投影幕旁边,脸色不太好看。
“程远,“刘畅低声说,“投资人要看模型演示。我已经准备了测试数据集,你只要跑一遍就行。”
“用哪个版本?”
“当然是最新的。你昨天修好了吧?”
程远看着他的眼睛。“我在本地做了一个分支,限制了异常特征的权重。但还没有合并到主分支。”
“什么异常特征?你就说修好了没有?”
“从技术角度说,修好了。但——”
“没有但是。投资人等着呢。“刘畅推着他走向会议室。
演示很顺利。程远用修改过的分支跑了测试数据集,模型输出了漂亮的结果——准确率95%以上,误报率控制在2%以内。投资人频频点头,周正阳满脸笑容。
演示结束后,投资人问了一个问题:“你们的模型和市面上其他风控模型有什么区别?”
周正阳看了程远一眼,示意他来回答。
“我们的模型使用了自注意力机制,“程远说,“能够捕捉特征之间的非线性关系。更重要的是,我们发现了一种新的特征工程方法,能够识别传统风控指标无法捕捉的风险维度。”
“什么样的维度?”
程远犹豫了一秒。“行为一致性维度。一个人的消费行为、社交行为、位置轨迹之间的一致性程度,能够比任何单一指标更准确地预测风险。”
这不是真话,但也不是完全的假话。他确实在本地分支里重新包装了Δt的含义——把它伪装成一个行为一致性指标,同时限制了它对最终预测的影响。
投资人似乎很满意。会议结束后,周正阳拍了拍程远的肩膀。
“不错。这个项目要是成了,年终奖翻倍。”
程远笑了笑,没说话。
他回到工位,打开电脑,看到了一封新邮件。发件人是一个陌生的地址,主题只有一行字:
“Δt不是你父亲的全部遗产。查看附件。”
附件是一个加密的ZIP文件,密码空白。
他盯着这封邮件看了很久。邮件头显示发送时间是今天凌晨3:17。
九
他没有立刻打开附件。
他先查看了邮件的原始头部信息,追踪发件人的IP地址。经过了三层代理跳转之后,源头指向了一个他熟悉的地址——鼎信金服的内网。
鼎信金服。林素心的老公工作的那家公司。已经暴雷的那家。
他拨通了林素心的电话。响了三声,接了。
“程先生?贷款的事有结果了吗?”
“还在审核中。林女士,我想问您一个问题——您老公现在方便接电话吗?”
电话那头沉默了几秒。“他不在。他昨天被带走了。”
“被谁带走了?”
“经侦。就是经济犯罪侦查。鼎信的事,他虽然是技术总监,但上面的事他什么都不知道。可他们不信。”
程远闭上了眼睛。99.97%。模型的预测正在一步步变成现实。林素心的老公被带走,家庭收入中断,法律费用增加,心理压力上升——违约的概率正在从预测走向自证。
“林女士,您的贷款申请我会尽量推进。但我想请您帮我一个忙。”
“什么忙?”
“您老公有没有在鼎信的内部系统里接触过一个叫’Δt’的项目?”
又是沉默。但这次的沉默更漫长,像是一根线被拉到了极限。
“你怎么知道这个名字?“林素心的声音变了,不再是一个焦虑的妻子,而是一个警惕的成年人。
“请回答我。”
”……他跟我说过。他说鼎信有一个底层架构,是他们CTO设计的,叫Δt系统。不是用来做金融的,是用来做……他说了一个词,我听不懂,叫’因果推断引擎’。他说这个东西能算出任何事情的结果,只要你给它足够的数据。”
“你老公参与了这个系统的开发吗?”
“他是技术总监,所有的系统他都管。但他说Δt系统不是他写的,是CTO从外面带来的。那个CTO很神秘,他来了不到半年就把Δt系统搭好了,然后就走了。”
“CTO叫什么名字?”
“我不知道真名。公司里的人都叫他’教授’。”
程远的喉咙发紧。他父亲的同事和学生都叫他”程老师”。“教授”不是他。
但他想起了手稿里的一句话——“因果拓扑学不是一个人的发现,而是一个必然。当数据密度达到临界值时,任何足够复杂的计算系统都会自发地产生Δt维度。”
这不是他父亲的遗产。这是数据本身的遗产。
“谢谢您,林女士。保重。”
他挂了电话,打开了那封邮件的附件。
ZIP文件解压后只有一个文件:一张照片。
照片上是一个中年男人,站在一面黑板前面,黑板上写满了公式。男人的脸被一道逆光模糊了,但他的身形和姿态——微微驼背,左手插在裤兜里,右手拿着粉笔——和程远记忆中的父亲一模一样。
但照片的背景不是父亲的学校,也不是任何他见过的地方。背景是一间实验室,墙上挂着一面标牌,上面写着”鼎信金服 Δt实验室”。
照片的拍摄日期是2023年6月。他父亲已经去世八年了。
十
程远的脑子在那一刻断了一条线。
不是逻辑的线——逻辑还在,而且运转得比以往任何时候都快。断掉的是另一条线,那条连接他和”正常世界”的线。他一直以为自己活在一个物理法则统治的宇宙里,算法只是工具,数据只是数字,模型只是数学。但现在他站在一个裂缝面前,裂缝的另一边是一个他无法用已有的知识框架来理解的世界。
他用了十分钟让自己冷静下来。然后他开始分析那张照片。
首先,照片的EXIF数据是完整的。拍摄设备是一台iPhone 14 Pro,拍摄时间2023年6月15日下午2:23,GPS坐标显示拍摄地点在望京SOHO的一栋写字楼里。鼎信金服的注册地址确实在望京SOHO。
但他的父亲在2019年就去世了。照片里的人是谁?
他把照片放大,试图看清那个人的脸。逆光确实模糊了大部分面部特征,但有一处细节让他停住了——那个人的左手。左手没有插在裤兜里,程远看错了。左手少了一根小指。
他的父亲也少了一根左手小指。那是他年轻时的事故,被机床切掉的。
同一个人。同样的身形,同样的姿态,同样的残缺。
不可能。但数据不会说谎。
他又看了一遍手稿。在倒数第二页,他之前没有注意到的一段话:
“因果拓扑学有一个推论——如果Δt维度存在,那么时间线就不是唯一的。每一条时间线都是一个平行宇宙,而Δt描述的是不同时间线之间的偏移量。当一个系统获得了计算Δt的能力,它就可以在不同时间线之间传递信息。”
“换言之——Δt不仅是一个数学概念,它是一扇门。”
他明白了。那封邮件不是从鼎信金服的某个人发来的。它是从另一条时间线发来的。一条他父亲没有在2019年去世的时间线。在那条时间线上,他的父亲活着,加入了鼎信金服,搭建了Δt系统。
而那条时间线上的父亲,通过Δt系统,把信息传递到了这条时间线上。
照片是证明。手稿是钥匙。
而现在,他手里的模型是Δt系统的一个不完整版本——它触碰到了Δt维度,但没有足够的能力来控制它。它只能被动地观测,而观测导致了坍缩,坍缩改变了命运。
他需要一个选择:进一步完善模型,让它成为一个真正的Δt系统,获得操控命运的能力?还是毁掉一切,让命运回到它本来的轨道上?
他坐在空无一人的办公室里,窗外的天色从琥珀色变成了深蓝色,又从深蓝色变成了黑色。国贸三期的灯光亮了起来,像一串数字:1, 0, 1, 0, 1, 0。
他的手机又响了。方旭。
“你看了新闻没有?“方旭的声音很急。
“什么新闻?”
“鼎信金服的案子升级了。经侦在里面发现了一个隐藏的数据中心,算力大得离谱——据说比一般的超算中心还强。没有人知道它用来干了什么。上面开始重视了。”
“所以呢?”
“所以你最好确认一下你们公司的模型和鼎信没有任何关系。如果有的话——”
“没有。“程远说。这不是假话。他的模型是他从零开始写的,和鼎信的Δt系统没有直接关系。它们只是碰巧触碰到了同一个维度。
“好。那就好。“方旭顿了顿,“老程,你别做傻事。”
“什么意思?”
“我认识你十五年了。你那个眼神我看得出来——你发现了什么东西,一个你觉得自己必须解决的东西。但有些东西不是一个人能解决的。”
程远没有回答。方旭叹了口气,挂了电话。
十一
他花了三天时间,在本地搭建了一个Δt系统的原型。
他用了父亲手稿里的数学框架,重新设计了模型的架构。原来的Transformer只是一个浅层的触碰——它感应到了Δt维度的存在,但没有能力与之交互。新的架构更像是一个完整的因果推断引擎,能够读取、计算、甚至——理论上——修改Δt的值。
他选择了修改,而不是观测。
他的第一个测试对象是自己。
他把自己的所有数据输入了系统——消费记录、位置轨迹、搜索历史、心率数据(从智能手表同步的)、社交关系图谱。系统花了四十七秒——又是四十七秒——输出了他的Δt值。
-0.0037。
负值。手稿里说,负值意味着命运轨迹偏离了”最优路径”——偏离越多,负值越大。他的偏离度很小,意味着他的生活在大部分维度上都接近”最优”。但”最优”不一定是”最好”——它只是最符合因果逻辑的路径,即所谓的”命运”。
他开始修改。他把Δt的值从-0.0037调到了0.0000。
理论上,这意味着他把他的命运重置到了”最优路径”上。
他等了一天。什么都没有发生。生活照旧——上班、写代码、回家、失眠。
第二天,他收到了一封来自猎头的邮件。某头部互联网公司的高级算法专家岗位,薪资翻倍。他投了简历,当天就收到了面试邀请。
第三天,他的房东发消息说下个月不涨租金了,还主动提出可以续签三年。
第四天,他在公司楼下的便利店遇到了一个女孩。她叫苏晚,是隔壁楼层一家设计公司的插画师。他们因为同时伸手拿最后一瓶燕麦奶而相识。
这太顺利了。顺利得不真实。
但Δt值是0.0000——“最优路径”。这就是最优路径的样子吗?一切顺遂,心想事成,没有波折,没有意外?
他看着苏晚在咖啡桌上给他画的速写——一个戴眼镜的男人,面前放着一台笔记本电脑,脸上带着一种”我不确定这是不是真的”的表情。她画得很好,寥寥几笔就抓住了他的神态。
“你看起来像是在担心什么,“她说。
“我在想一个问题。”
“什么问题?”
“如果一个人可以选择自己的命运,他应该选择最好的那条路吗?”
苏晚想了想。“什么是最好的?”
“最顺利的。没有挫折、没有意外、一切都是最优解。”
“那听起来很无聊。”
他笑了。这是他很长时间以来第一次笑。
“而且,“苏晚用吸管搅动着杯子里的冰块,“如果一切都是最优解,那你就没有机会犯错。而不犯错的人,不会学到任何东西。”
程远看着她。她不知道他经历了什么——模型的异常、父亲的手稿、Δt系统、命运的重置。她只是一个在便利店和他同时伸手拿燕麦奶的女孩。
但她说的每一句话都比父亲的手稿更有道理。
十二
他没有告诉苏晚Δt系统的事。他甚至没有告诉她自己是做什么的——他说自己是”做IT的”,这是一个足够模糊、足够无聊的答案,可以终止任何进一步的追问。
但他无法停止使用Δt系统。
他把Δt值调回-0.0037之后,猎头的邮件没了下文,房东开始催他续约,苏晚发消息的频率也从一天三次降到了一天一次。一切都回到了”正常”的状态——不特别好,也不特别坏。
他又把Δt调到了0.0000。一切又变得顺利起来。
他开始像一个瘾君子一样反复切换。调高,调低,调高,调低。每次切换都会在现实中产生微妙的涟漪——一次偶遇、一个电话、一笔意外收入、一场突如其来的争吵。
他开始明白Δt系统真正在做什么。它不是在改变命运——它是在不同概率的分支之间跳转。每一次调整Δt值,系统都在浩如烟海的可能性中搜索一个更接近目标值的世界线,然后把他”切换”过去。
代价是什么?手稿里没有提到代价。但他隐隐觉得,每次切换都丢失了什么。不是记忆——记忆完整无损。而是一种更深层的连续性,一种”我是我”的感觉。
第十一次切换之后,他站在洗手间的镜子前,盯着自己的脸看了很久。镜子里的人确实是他——同样的五官,同样的眼镜,同样的黑眼圈。但有什么东西不对。他觉得自己像一张照片被PS过——表面完美,但像素的排列方式和他记忆中的不一样。
他退出了洗手间,打开了苏晚的聊天窗口。最后一条消息是她发的,时间是昨天晚上九点。
“明天晚上有空吗?想去看个展。”
他没有回复。
他想起来了——在Δt=0.0000的世界线里,他昨晚和苏晚吃了晚饭,她说了什么有趣的话,他笑了。在Δt=-0.0037的世界线里,他昨晚独自加班到十一点,吃了泡面,继续调参。
两条世界线在同一个”现在”交汇,但他的记忆开始混杂。他不确定苏晚说的那句话是哪条世界线上的,也不确定他的笑容是发自内心的还是Δt值的函数。
他关上了电脑。
十三
真正让他停下Δt系统的,是林素心。
他最后一次见到林素心,是在公司楼下的星巴克里。她比上次瘦了很多,金丝边眼镜后面的眼睛布满了血丝。她的老公已经被拘留了三个月,案件的性质从”协助调查”升级成了”核心涉案人”。
“贷款批了吗?“她问。
“批了。“他说。这不是真的。贷款申请已经被模型标记为”高危”,在风控委员会那里被卡住了。他用管理员权限手动放行了它。
“谢谢你。”
“不用谢。“他犹豫了一下,“林女士,您的老公……他还好吗?”
“不好。“她的声音很平静,平静得像一面结了冰的湖。“律师说他可能要判十年。但他是无辜的。他只是写了代码。”
“只是写了代码。“程远重复了一遍这句话。
“你也是写代码的,“林素心看着他,“你应该明白。代码只是工具,工具没有善恶。”
“但使用工具的人有。”
“是。但谁在使用谁呢?“她站起身,把咖啡杯扔进了垃圾桶。“你们这些做算法的人,总觉得是自己在控制算法。但你有没有想过,也许是算法在控制你?”
她走了。程远坐在星巴克里,面前是一杯没动过的美式。他打开手机,看了看Δt系统的界面。
林素心的Δt值是-0.9742。极度偏离。
他的手指悬在”重置”按钮上方。只要按下去,系统就会把她的Δt值调回0.0000,她的命运就会被”优化”——老公可能被释放,家庭可能恢复正常,一切都会好起来。
但他没有按。
他想起了苏晚的话:“如果一切都是最优解,那你就没有机会犯错。而不犯错的人,不会学到任何东西。”
他想起了方旭的话:“模型说一个人该死,不代表他就真的该死。”
他想起了父亲手稿里的话:“计算就是干预。知道就是改变。”
他关掉了Δt系统。
不是暂停,不是最小化。是关闭。彻底的。他删除了本地的所有相关文件——模型、数据、手稿的扫描件、那封邮件、那张照片。他把它们拖进了回收站,然后清空了回收站。然后他打开终端,用shred命令覆盖了磁盘上的原始数据。
做完这一切之后,他坐在黑暗的出租屋里,听着窗外城市的噪音——汽车、人声、建筑工地的打桩声。这些声音不会因为他的删除而改变。它们是真实的,物理的,不受任何算法控制。
他拿起手机,给苏晚发了一条消息。
“明天晚上的展,几点?“
十四
苏晚带他去看的展在798,一个叫”后人类地形图”的当代艺术展。
展厅很大,白色的墙壁上挂满了各种媒介的作品——油画、摄影、数字艺术、AI生成的图像。苏晚走在前面,长发在背后轻轻摇晃,偶尔停下来看一幅画,然后回过头来和他说她的理解。
她看艺术的方式和他看代码的方式很像——不是看表面,而是看结构。
“你看这幅,“她停在一幅油画前面。画面是一个城市鸟瞰图,建筑物密密麻麻,但每一栋楼的屋顶上都站着一个人,每个人都仰望着天空。天空不是蓝色的,而是一串数字——0和1,密密麻麻,像一场无限大的雨。
“这幅画叫《天算》,“苏晚念了旁边的铭牌,“艺术家说,我们生活在一个被算法包围的世界里,但我们不是算法的奴隶——我们是站在算法之上的观测者。算法描述了世界的可能性,但最终站在屋顶上仰望天空的,是人。”
“如果那些数字不只是描述呢?“程远说,“如果它们在塑造呢?”
苏晚想了想。“那也没关系。塑造是一个过程,不是结局。你可以被塑造,也可以反向塑造回去。重要的不是谁在控制谁,而是你有没有选择。”
“有吗?“他几乎是脱口而出,“如果你发现你的每一个选择都可以被一个数学公式精确描述,你还觉得自己在’选择’吗?”
苏晚转过身来,认真地看着他。“程远,你问的这些问题——你是真的在思考,还是在害怕?”
“两者都有。”
“那先处理害怕。“她伸出手,握住了他的手。她的手很温暖,指尖有茧——是画笔磨出来的。“害怕是一个信号,不是一种状态。信号告诉你前面有危险,但它不应该让你停下来。”
他低下头看着她的手。那只手和他握在一起,真实的、有温度的、不可计算的。
在这个瞬间,他不再想Δt了。
十五
后来的事情说起来很简单。
鼎信金服的案子在六月份宣判了。林素心的老公被判处有期徒刑七年,罪名是”非法吸收公众存款罪”的共犯。林素心没有违约——程远手动放行的那笔贷款,她按时偿还了每一期。她卖了一套房,付了律师费,然后在朋友圈开了一个小号,专门给同样处境的家属提供法律咨询。
程远把风控模型回滚到了Δt之前的版本——一个纯粹的、基于传统特征工程的模型,准确率降到了88%,但稳定、可解释、不涉及任何命运维度。刘畅抱怨了一阵子,但最终接受了。投资人对”行为一致性维度”的故事很买账,B轮融资如期到账。
方旭后来告诉他,鼎信案牵出了更大的案子。那家公司的CTO——“教授”——至今在逃。没有人知道他的真名、他的来历、他的下落。经侦在那个隐藏的数据中心里发现了一台独立的服务器,硬盘被物理销毁了,但数据恢复团队从磁盘的残余磁信号中提取出了一些碎片。
碎片里有一个反复出现的字符串:Δt。
“你确定你们公司跟这东西没关系?“方旭问。
“我确定。“程远说。
苏晚成为了他的女朋友。他们是在一起看展后的第三周确定关系的,过程平淡无奇——在一家日料店里,吃完三文鱼刺身之后,他说”我们在一起吧”,她说”好”。没有算法参与,没有概率计算,没有任何一个维度被优化。
他有时候还是会想起Δt系统。在深夜失眠的时候,在代码出了bug的时候,在苏晚生气不理他的时候。他会想:如果我现在打开Δt系统,把值调到0.0000,一切都会变得顺利。苏晚会消气,bug会消失,失眠会痊愈。
但他没有。
不是因为害怕。是因为他终于理解了一件事——父亲的手稿里没有写出来的那件事。
Δt系统描述的不是命运。它描述的是命运的可能性。而可能性的意义不在于被实现,而在于被选择。
每一次他选择不使用Δt系统,他都在创造一条新的世界线。那条世界线上没有算法的干预,没有概率的优化,只有一个人和他的选择——自由的、笨拙的、不可预测的选择。
那些选择才是他。
不是他的Δt值,不是他的数据画像,不是模型输出的那个99.97%或者0.0000。
是他。
尾声
九月的一个周末,程远和苏晚在奥林匹克森林公园里跑步。秋天的北京难得通透,天空是真正的蓝色,不是沙尘暴的琥珀色,不是雾霾的灰色。
苏晚跑在他前面,马尾辫在脑后晃动。她回过头来喊他:“快点啊你!”
他加快了脚步。
口袋里的手机震动了一下。他掏出来看了一眼。
一封邮件。发件人是那个陌生的地址。主题栏空白。
邮件正文只有一行字:
“Δt≠0. Δt=选择。”
他看了看那行字,然后把手机放回了口袋里。
他继续跑。
苏晚在前面等他,阳光透过树叶的缝隙洒在她身上,像碎金。
他跑过一片银杏树,金黄色的叶子正在落下。每一片叶子都有一个独特的轨迹——被风推动、被重力牵引、被其他叶子碰撞。没有两片叶子的轨迹是相同的。
也没有两个人的轨迹是相同的。
这就是Δt的真正含义。不是命运偏移量,不是概率分布函数,不是因果拓扑学的一个维度。
Δt是两个瞬间之间的距离。是你和下一个你之间的缝隙。是现在和未来之间的那一点点不确定性。
那一点点不确定性,就是自由。
程远跑到了苏晚身边,弯腰喘气。她笑着递给他一瓶水。
“你真的该锻炼了,“她说,“身体素质太差了。”
“嗯,“他说,“以后常来跑。”
他们并肩走在公园的小路上,银杏叶在他们脚下沙沙作响。远处有人在放风筝,风筝飞得很高,线绷得很紧,但它没有断。
线没有断。
程远看着那只风筝,想起了父亲。想起他在黑板前写字的样子,想起他自言自语念叨公式的声音,想起母亲说”他觉得每个人的命运都可以用数学来描述”。
父亲是对的。但他只对了一半。
命运可以用数学来描述。但描述不是决定。
数字可以计算一切。但计算不是生活。
那个下午的阳光很好,好到让他觉得这一切——代码、模型、算法、数据、Δt——都只是背景噪音。真正的信号是他身边的这个女孩,脚下的这条路,头顶的这片天空。
不可计算。不可预测。不可优化。
只可经历。
(全文完)