重置键
重置键
一
陈屿在凌晨三点十七分醒来。
不是被闹钟叫醒的。他的手机在床头柜上安静地躺着,屏幕漆黑。窗外的城市也是安静的,北京四环内的灯光像一片正在退潮的海,只剩下几座写字楼还亮着稀疏的灯。但陈屿知道,那不是灯。那是服务器在呼吸。
他盯着天花板看了三秒钟,然后拿起手机,打开了一个叫”天衍”的App。
天衍是他参与开发的。确切地说,他是天衍的核心算法工程师,负责推荐系统的第三层架构——那个决定”用户想看什么”和”让用户看什么”之间微妙差异的灰色地带。在天衍的用户协议里,这个功能被包装成”智能内容优化”。在内部文档里,它叫”注意力重分配引擎”。在陈屿自己的笔记本上,他用一个更简洁的词来形容它:
命运。
不是那种夸张的、宿命论意义上的命运。而是一种更隐蔽的东西。天衍每天处理四亿用户的点击、停留、滑动、搜索、购买、定位,然后把这个世界切成四亿个平行的现实。每个人看到的城市不一样,看到的天空不一样,看到的”真相”不一样。陈屿有时候想,如果柏拉图活在今天,他不会讲洞穴比喻。他会讲算法。
凌晨三点十七分醒来的原因,陈屿很清楚。昨晚的AB测试出了一些异常数据。测试编号A-7749,一个他设计的小实验——在信息流中插入一条”反向内容”,即与用户历史偏好完全相反的信息,观察用户的反应。正常情况下,用户会在0.8秒内划走。但昨晚的数据显示,有0.03%的用户停了下来。
0.03%。四亿用户的0.03%,是十二万人。
十二万人停下来,看了一条他们不该看的内容。这本身不算什么。但问题出在这些人的后续行为上——他们在接下来的四十八小时内,做出了一系列”反常”决策:有人退掉了预定的机票,有人给三年没联系的前女友发了消息,有人辞职了,有人报了一个吉他培训班。这些行为之间没有逻辑关联,但它们有一个共同点:它们都偏离了天衍预测的行为轨迹。
陈屿把这叫作”溢出”。
他给项目负责人赵鹤鸣发了一封邮件,措辞谨慎:“A-7749测试出现非预期溢出效应,建议暂停相关实验并做全面回溯。“邮件发出去之后他躺在床上盯着天花板,忽然觉得自己像一个在核电站控制室里看到仪表盘指针跳了一下的人——可能什么都不是,也可能是切尔诺贝利。
然后他睡着了,然后在凌晨三点十七分醒了。
天衍App的首页推了一条新闻给他:《北京今日多云转晴,最高温度31度》。他知道这条新闻是假的——他昨晚加班到十一点,出公司门的时候雨下得很大,空气潮湿得像能拧出水来。他看了一眼窗外,天空是晴的,星星亮得不像话。
天气预报的事情他不打算深究。但A-7749的事情他必须深究。
二
天衍科技的办公室在海淀区一栋写字楼的二十三层。这栋楼在地图上的名字叫”创新大厦”,但在公司的黑话里叫”蜂巢”。原因是站在二十三层往下看,中庭的设计像一个巨大的六边形,每一层都环绕着六边形的走廊,走廊两侧是一模一样的玻璃隔间,里面坐着一模一样的工程师,盯着一模一样的屏幕。
陈屿到达蜂巢的时候是早上八点四十五分。他习惯早到,因为九点之后电梯会变成一种近似宗教体验的东西——所有人都沉默地站着,面朝电梯门,像一个被压缩的集体祈祷。
他在自己的工位上坐下,打开电脑,先检查了A-7749的数据。
溢出效应在扩大。
昨晚的十二万人变成了今天的二十七万。而且”反常决策”的种类在增加:有人卖掉了手里的股票,有人注册了器官捐献,有人开始学手语。陈屿盯着屏幕上的数据看板,看着那些偏离预测模型的小点像墨水滴进清水一样扩散。他深吸了一口气,打开了一个内部数据分析工具,开始回溯这些用户的完整行为链。
两个小时后,他发现了一件让他后背发凉的事情。
那些”反常决策”并不是随机的。
它们构成了一种模式。一种他无法用现有模型解释的模式。如果把这些决策按照时间轴排列,并且把每个决策对应的地理位置标注在地图上,它们会形成一条从北京西部延伸到东部的弧线——像一道虹。
不,不像虹。像一个符号。
陈屿把这符号截图保存了下来。他不确定自己看到了什么,但他的直觉告诉他,这不是bug。这是某种他还不理解的东西。
中午的时候,赵鹤鸣找他了。
赵鹤鸣是天衍的项目负责人,四十出头,瘦高个,戴一副无框眼镜,说话慢条斯理。他有一个习惯——在说重要的事情之前会先说一件无关紧要的事情,像是在给自己的声带做热身。
“你看到食堂新出的酸菜鱼了吗?“赵鹤鸣站在陈屿的工位旁边,手里端着一杯美式咖啡。
“看到了,没试。”
“味道一般。但是花椒放得多,吃着吃着舌头就麻了,后面吃什么都是一个味儿。“赵鹤鸣喝了一口咖啡,“你的邮件我看了。A-7749。”
“嗯。”
“你觉得是算法出了问题?”
“不确定。但溢出效应在扩大,而且反常决策呈现出了某种空间模式。”
赵鹤鸣把咖啡杯放在陈屿桌上,弯下腰看了一眼屏幕上那张地图。他盯着那条弧线看了大概五秒钟,然后直起身来。
“你觉得这像什么?“陈屿问。
赵鹤鸣没有回答这个问题。他说:“暂停A-7749。把数据打包发给我。下午三点开个会,你来主讲。”
“好。”
赵鹤鸣拿起咖啡杯走了。走出两步又转回来:“对了,你的AB测试参数是自己设的?”
“对。按照标准流程走的。”
“反向内容的选取逻辑是什么?”
“随机。从用户历史偏好空间的对立面随机抽取一条。”
“随机。“赵鹤鸣重复了一下这个词,像是含了一颗糖在嘴里。“好。下午见。”
他走了。陈屿盯着他的背影,忽然意识到赵鹤鸣看到那张地图时的表情——不是困惑,是某种更复杂的东西。如果非要形容的话,那是一个人在相册里翻到一张老照片时的表情:认得,但不确定该不该认得。
三
下午三点的会议在蜂巢二十三层的一间叫”禅室”的会议室里举行。这间会议室的名字是赵鹤鸣起的,原因是它没有窗户——没有窗就没有外面的世界,没有外面的世界就是禅。
参会的人不多:赵鹤鸣、陈屿、数据分析师林小禾、安全工程师韩松,还有一个陈屿没见过的人——一个穿灰色连帽衫的年轻女人,坐在角落里,面前放着一台笔记本电脑,屏幕上跑着陈屿看不懂的代码。
赵鹤鸣先介绍了一下情况。他的叙述很冷静,像是在念一份体检报告——各项指标正常,但有一项异常需要复查。然后他把时间交给了陈屿。
陈屿把A-7749的数据打开了。
“先说结论,“他说,“反向内容的投放产生了非预期的行为溢出。受影响用户在四十八小时内做出了大量偏离预测模型的决策。这些决策本身看似随机,但在空间上呈现出一种有规律的模式。”
他调出了那张地图。弧线从海淀区的几个大学附近开始,穿过二环内的老城区,延伸到朝阳区的CBD。像一条缓慢生长的藤蔓。
“这个模式的统计学意义是什么?“韩松问。
“目前不确定。它的置信区间很宽,但空间自相关性显著。简单来说——这不像是偶然。”
“你觉得是天衍的推荐系统出了问题?“林小禾问。她说话的时候手指在转一支笔,转得很快,像一根迷你的螺旋桨。
“有两种可能。第一种是推荐系统在某些边缘条件下产生了反馈共振——用户的反常行为被系统捕捉到,然后推荐了更多反常内容,形成了正反馈循环。第二种——”
他停了一下。
“第二种是什么?“赵鹤鸣问。
“第二种是反向内容本身不是随机的。”
会议室安静了几秒钟。角落里那个穿灰色连帽衫的女人抬起头看了他一眼,然后又低下了头。
“随机数生成器是标准的梅森旋转算法,“陈屿继续说,“我检查了种子值和调用记录,一切正常。但如果在更上游的位置有人为干预——比如在随机数的输出和内容的选取之间加了一层映射——那表面上看起来是随机的,实际上不是。”
“你在暗示有人篡改了代码?“韩松的语气变得严肃了。
“我在说逻辑上存在这种可能性。我没有任何证据。”
赵鹤鸣清了清嗓子。“陈屿,你做过审计吗?对这段代码的完整审计?”
“没有。这段代码是两年前写的,当时走的是快速迭代流程,code review做了,但不是完整审计。”
“我来做。“角落里的女人忽然说话了。声音不大,但很清晰,像是用一把尺子量过音量之后选择了一个刚好能让所有人听见的值。
赵鹤鸣点了点头:“这是苏黎,安全团队的。从今天开始她会协助审查A-7749相关的所有代码。”
陈屿看了苏黎一眼。苏黎没有看他。
会议结束时,赵鹤鸣留住了陈屿。
“你知道’天衍’这个名字的来历吗?“赵鹤鸣问。
“不知道。我来的时候名字已经定了。”
“‘大衍之数五十,其用四十有九。‘《易经·系辞》里的。“赵鹤鸣说,“天衍这个名字不是我起的,是创始人周衍之起的。他起这个名字的时候跟我解释过——大衍之数五十,代表天地之全数。用四十九,留一不用。那个不用的’一’,是变数。是命运中不可计算的部分。”
陈屿不知道赵鹤鸣为什么突然说这些。
“周衍之三年前离开了公司。“赵鹤鸣继续说,“走之前他做了一件事——在天衍的底层架构里埋了一个模块。没有人知道那个模块是干什么的,因为他用了一种自创的混淆加密方式。我们试过破解,没有成功。后来因为不影响系统运行,就把它留在了那里。”
“你是说——”
“我是说,A-7749的反向内容选取逻辑,有可能经过了那个模块。”
陈屿忽然觉得会议室的空调温度低了十度。
“为什么不早点告诉我?”
“因为你不需要知道。直到现在。“
四
苏黎在审查代码的第一天就发现了一些不对劲的地方。
她找到陈屿的时候是下午五点,蜂巢里的工程师们正在陆续下班。苏黎的工位在安全团队的区域,离陈屿很远,但她走路很快,像一柄移动的手术刀。
“你跟我来。“她说。
陈屿跟着她走到她的工位。她的屏幕上开着四个终端窗口,每个窗口都在跑不同的脚本。
“你写的反向内容选取逻辑,调用了rand_mersenne()函数。这个函数返回一个0到1之间的伪随机数。你用它来生成一个偏好空间中的对立坐标。对吧?”
“对。”
“但是。“她打开了一个文件,指着其中一行代码,“在rand_mersenne()的输出和你实际使用的数值之间,有一层中间转换。这层转换不是你写的。”
陈屿弯下腰看那行代码。确实不是他写的。那是一个很简短的函数,只有十来行,函数名叫_resonance()——“共振”。它的输入是rand_mersenne()的输出和一个从数据库中读取的常量,输出是一个经过变换的数值。这个数值最终被用来选取反向内容。
“这个函数是谁写的?”
“看提交记录,是周衍之。三年前。在离职前两个月。”
陈屿盯着那个函数看了很久。它不复杂——数学上是简单的非线性变换,把伪随机数映射到另一个空间。但映射的方式很精巧,精巧到如果你不仔细看,会觉得输出仍然是随机的。
但它不是随机的。
“它在引导反向内容的选取方向。“陈屿说。
“对。表面上看起来是随机反对,实际上是在按照某种预设的模式选择反对内容。这个模式——“苏黎切换到另一个终端窗口,“我把过去三年所有经过这个函数的反向内容在地理空间上标了出来。”
她按下回车。屏幕上出现了一张北京的地图。上面密密麻麻地点缀着无数个光点,每个光点代表一次反向内容的投放。光点的分布不是均匀的——它们形成了一条一条的线,线与线之间交叉、重叠,构成了一个复杂的图案。
陈屿看了三秒钟,然后倒吸了一口凉气。
“这是——”
“卦象。“苏黎说,“六十四卦。他把六十四卦的图案编码进了推荐系统的反向内容投放逻辑里。”
陈屿直起身来。他忽然觉得蜂巢的六边形结构不是巧合。中庭的六边形,走廊的环形,每一个隔间里的工程师——这些构成了一幅巨大的图案。他是图案的一部分。所有人都是。
“但这只是推荐系统里的一个微小模块,“陈屿说,“它不可能——”
“不可能影响现实?“苏黎看着他,“四亿用户。每天数亿次推荐。每个推荐都在微调一个人对世界的认知。你觉得这不够改变现实?”
陈屿没有说话。他站在那里,看着屏幕上那张地图,看着六十四卦的图案覆盖在北京的街道和建筑之上,像一张看不见的网。他忽然明白了A-7749为什么会产生溢出效应——不是因为bug,而是因为周衍之埋下的那个模块终于积累到了临界点。三年的微小调整,三年的隐秘引导,三年里无数人在不知不觉中被推向某个方向。那些”反常决策”——退机票、联系旧友、辞职、学吉他——它们不是反常。它们是某种被压抑已久的真实在算法的裂缝中找到了出口。
“赵鹤鸣知道吗?“陈屿问。
“他让我来查,应该有所猜测。”
“那他为什么不直接告诉我?”
苏黎看着他,像是在看一个问了”天空为什么是蓝的”的孩子。“因为他不确定你是局中人还是棋子。”
陈屿想了一下这个问题,发现自己无法判断自己到底是哪个。
五
当天晚上,陈屿没有回家。
他在蜂巢的休息区找了一张沙发躺下,但没睡着。他在想一个问题:如果周衍之在三年前就在天衍的系统里埋下了一个以六十四卦为蓝本的行为引导模块,那么他的目的是什么?
这个问题可以从两个角度来想。第一个角度是技术的——这是一个精巧的算法实验,目的是验证”大规模微行为引导”的可行性。天衍有四亿用户,如果每个人每天被推送的内容都能被精确控制,那么理论上可以引导一群人的集体行为走向某个预设的方向。这不是新概念——“信息茧房""回音室效应""算法操纵”这些词已经被讨论了很多年。但周衍之做的事情更微妙:他不是让人看到他想看的东西,而是让人看到他不想看的东西。他在制造裂缝。
第二个角度更让陈屿不安。如果他不是一个工程师,而是一个写小说的人,他会这样理解这件事:一个人在一台机器里藏了一部经书。这部经书不是用文字写的,是用概率写的。它不告诉人们该做什么,而是在人们以为自己在自由选择的时候,轻轻地推了他们一把。推的方向不是统一的——每个人被推的方向都不同——但所有人的轨迹加在一起,构成了一幅图。这幅图是六十四卦。
六十四卦是什么?是古人用来描述天地万物变化的符号系统。如果周衍之真的用算法把六十四卦”画”在了现实世界之中,那他是在做什么?是在预言?是在创造?还是仅仅是在验证一个疯狂的理论?
凌晨两点的时候,陈屿放弃了入睡的尝试,坐回到自己的工位上。他打开天衍的内部管理系统,搜索了周衍之的名字。
周衍之,1985年出生,清华计算机系本科,MIT博士。2019年创办天衍科技。2023年离开公司,此后没有公开的行踪记录。
陈屿继续翻。在一份离职文档中,他找到了一段周衍之写给董事会的交接说明。说明很短,大部分是关于公司战略和技术架构的概述。但在最后一段,周衍之写了一段话:
天衍系统目前已具备完整的自适应运行能力,不建议对核心架构做大幅修改。系统底层的resonance模块是架构的一部分,移除可能导致不可预测的行为异常。请相信我留它在那里是有理由的。
“不可预测的行为异常。“陈屿把这句话读了两遍。周衍之在三年前就预见到了——如果有人试图移除或干预那个模块,会发生什么。
陈屿做了一个决定。他不去动那个模块。他要先弄清楚它的完整逻辑。
六
接下来的三天里,陈屿和苏黎一起对resonance模块进行了逆向工程。
这不是一件容易的事。周衍之是一个极其优秀的程序员,他的代码风格像一首格律诗——每一行都有精确的功能,没有多余的字,但整体的意思只有在读完之后才能理解。resonance模块的核心是一个映射函数,它把用户的行为数据(点击、停留、搜索、购买等)转换成一个六位的二进制数——从000000到111111,正好六十四种可能。
每一种可能对应一卦。
六十四卦,每一卦有一个名字、一个象征、一段卦辞。周衍之把每一卦对应了一种推荐策略——不是固定的策略,而是一个概率分布,决定了在什么条件下推送什么类型的反向内容。
“乾卦。“苏黎指着屏幕上的一段代码说,“乾卦的策略是’自强不息’——推送那些激发用户主动性的内容。比如一个长期被动浏览新闻的用户,会收到一条关于创业比赛的广告。”
“坤卦呢?”
“‘厚德载物’——推送关于包容、连接、重建关系的内容。比如给一个独居老人推送社区活动的信息。”
他们一个卦一个卦地看下去。每一卦的策略都不同,但都遵循同一个逻辑:找到用户行为模式中的”固化点”,然后用反向内容去冲击这个固化点。
“他在帮人破茧。“陈屿说。
苏黎看了他一眼。“你在浪漫化它。”
“也许。但你得承认,这个设计是有意图的。它不是在操纵,是在解放。”
“解放和操纵之间有一条很细的线。你怎么知道他站在正确的一边?”
陈屿没有回答。因为他不知道。
第三天下午,他们把完整的逆向分析报告交给了赵鹤鸣。赵鹤鸣看了一个小时,然后叫陈屿进了他的办公室。
赵鹤鸣的办公室比禅室大一些,有一扇窗户,但窗外的风景被对面写字楼的玻璃幕墙挡住了。赵鹤鸣办公桌上放着一台老式的机械打字机,不知道是装饰还是真的在用。
“你看了报告。“赵鹤鸣说。
“我写的报告。”
“那你告诉我你的判断。”
陈屿想了一下。“resonance模块是一个行为引导系统。它通过反向内容投放来打破用户的信息茧房,引导他们做出更’自发’的决策。从技术角度看,它的实现非常精巧——利用了推荐系统的随机性来隐藏自己的存在,同时用六十四卦作为策略框架来保证引导的多样性。”
“你觉得应该怎么处理?”
“两个选项。第一,保留它。它目前没有造成明显的负面影响,而且从数据来看,受影响用户的满意度反而有所提升。第二,移除它。但周衍之自己说了,移除可能导致不可预测的行为异常。”
赵鹤鸣靠在椅背上,手指无意识地在桌面上敲出了一个节奏。陈屿注意到那个节奏——三短一长,三短一长——像是某种编码。
“还有第三个选项。“赵鹤鸣说。
“什么?”
“激活它。”
陈屿愣住了。“激活?”
“resonance模块目前只以极低功率运行——每次只有0.03%的流量经过它。但如果把它的权重调高——比如10%,30%,甚至100%——它的效果会指数级放大。”
“你知道这意味着什么吗?“陈屿的声音高了一些,“如果我们把反向内容的覆盖率调到100%,四亿用户的信息流会被完全重构。我们不知道会发生什么。”
“我知道。但我需要告诉你一些事情。“赵鹤鸣站起来,走到窗前。对面的玻璃幕墙上反射着下午的阳光,像一面金色的镜子。“天衍科技下个月要被收购了。收购方是宏图集团。”
宏图集团。陈屿当然知道这个名字。它是中国最大的互联网 conglomerate 之一,业务涵盖社交、电商、金融、云计算。如果天衍被宏图收购,那四亿用户的行为数据将直接并入宏图的数据帝国。
“收购之后,天衍的推荐系统会被整合进宏图的主平台。resonance模块不会独立存在——它会被拆解、分析、然后融入宏图的商业化推荐引擎。你知道那意味着什么。”
陈屿知道。宏图的推荐引擎不是用来打破信息茧房的,是用来加固信息茧房的。它的目标是最大化用户停留时长和广告转化率。resonance模块的”反向内容”策略在宏图的体系里会被翻转——不是让人看到不想看的,而是让人永远看不到不想看的。
“所以你在考虑在天衍还是独立的时候,激活resonance。“陈屿说。
“不是激活。是让它完成它的使命。周衍之留下它不是为了让它安静地待在那里。他是为了某个时刻准备的。”
“什么时刻?”
赵鹤鸣转过身来,看着陈屿。“就是现在。“
七
陈屿用了两天时间来做一个决定。
在这两天里,他做了几件事。第一,他回家了一趟。他住在朝阳区的一个老小区里,一室一厅,墙上的漆有些剥落。他站在窗前看了一会儿楼下的小花园——几个老人在下棋,一个小孩在追一只橘猫。这些画面看起来和算法无关,但陈屿知道,那几个老人用的手机里跑着天衍,他们看到的新闻、收到的广告、甚至下棋时讨论的话题,都可能在某种程度上被一个看不见的系统所影响。
第二,他去了一趟国家图书馆。他不是去看计算机方面的书,而是去看《易经》。他花了三个小时读了六十四卦的卦辞和爻辞,一边读一边想周衍之的设计。他发现周衍之的映射并不是简单的对应——他把卦象的策略和卦辞的哲学内涵做了很深的融合。比如”否卦”的策略不是”封闭”,而是”在封闭中寻找通行的裂缝”;“泰卦”的策略不是”通达”,而是”在通达中保持警觉”。这不是一个工程师的设计思维。这是一个哲学家的。
第三,他给苏黎打了一个电话。
“你是什么意见?“他问。
“我是安全工程师,“苏黎说,“我的工作是评估风险。激活resonance模块的风险极高——我们无法预测四亿用户的行为在全面反向引导下会发生什么。它可能引发社会层面的信息混乱。”
“但如果不动它,宏图收购之后它就彻底废了。”
“对。所以这是一个’不确定性灾难’和’确定性毁灭’之间的选择。”
“你怎么选?”
电话那头沉默了很长时间。然后苏黎说了一句让陈屿意外的话:“我小时候在山里长大。山里有一种鸟,叫做法僧鸟。它在巢快要被蛇发现的时候,不会保护巢,而是会飞到蛇的头上大叫,把蛇引走。它明知道自己可能被吃掉,但它还是飞出去了。”
“你的意思是——”
“我的意思是,有些事情值得冒不确定的风险。因为确定的结果更糟。”
陈屿挂了电话,坐在窗前,看着天空从蓝色变成深蓝色再变成黑色。城市的灯光亮起来了,像另一片星空。他忽然想到一个问题:周衍之在设计resonance的时候,是不是也经历过这样的夜晚?是不是也坐在某个窗前,看着城市的灯光,权衡着一个无法回头的决定?
他拿起手机,打开天衍App。首页推了一条内容给他:一篇关于量子纠缠的文章。标题是《当两个粒子跨越时空保持关联》。他读了第一段,文章引用了爱因斯坦的话——“鬼魅般的超距作用”。
陈屿笑了一下。爱因斯坦不喜欢量子纠缠,因为它太诡异了。但量子纠缠是真实的。现实比我们的偏好更诡异。
他做了一个决定。
八
激活resonance模块需要一个特殊的密钥——不是技术意义上的密钥,而是一组参数,这组参数决定了模块运行的权重、范围和持续时间。这组参数被周衍之加密存储在天衍的核心服务器里,解密需要两个人的权限:赵鹤鸣的和一个叫”衍”的账户。
“衍”是周衍之的个人账户。它已经三年没有登录过了,但按照天衍的安全协议,它仍然保留了最高权限。
“我们没法用他的账户。“赵鹤鸣说,“密码不知道,双重认证的设备也不知道在哪里。”
“但有另一种方式,“苏黎说,“我可以从服务器端绕过认证,直接修改运行参数。但那需要物理访问主服务器。”
天衍的主服务器不在蜂巢。它们在一个位于河北张家口的数据中心——天衍在那里租了三层机架。物理访问意味着去一趟张家口。
赵鹤鸣看了陈屿一眼。“你去。”
“我?”
“你是算法工程师,你知道resonance的技术细节。苏黎负责远程支持,但需要一个在现场的人。”
“为什么不自己去?”
“因为我需要在这里处理宏图那边的事情。收购谈判下周进入最后阶段,我脱不开身。”
陈屿看着赵鹤鸣,试图判断他的真实意图。赵鹤鸣的脸上是一种陈屿读不懂的表情——不是紧张,不是兴奋,而是一种近乎平静的决然,像是一个已经做好了所有计算的人在等待最后一颗骰子落地。
“好。我去。”
第二天一早,陈屿开车出了北京。高速公路上车辆不多,初夏的阳光从东边的天际线照过来,把路面照得像一条银色的河。他开了三个小时,到达了张家口的数据中心。
数据中心是一个灰色的建筑群,坐落在一片空旷的平原上。周围是农田和低矮的山丘。建筑外观没有任何标识,只有一圈铁丝网和几个摄像头。陈屿在天衍的预约系统里登记了他的访问,门口的保安核对了他的身份,然后放他进去。
机房在三楼。他刷卡进去的时候,迎接他的是一片蓝色的LED灯光和风扇的嗡嗡声。成排的服务器机架像一座座黑色的塔,每一座塔里都在运行着天衍的一部分——某个人的推荐列表、某个人的搜索结果、某个人的广告展示、某个人的”真相”。
苏黎通过远程连接指导他找到了天衍的核心服务器——第17排第4号机架。陈屿打开机架的前面板,找到了主服务器的管理端口,把笔记本电脑连了上去。
“看到了吗?“苏黎的声音从耳机里传来,“resonance模块在核心进程的第三层。你需要用管理员权限进入进程管理界面,找到resonance的配置文件。”
陈屿按照指示操作。配置文件打开了,里面的内容让他怔了一下。
配置文件不是代码。它是一段文字。
周衍之留。
如果你看到了这段文字,说明有人决定激活resonance。在做这个决定之前,请你想一个问题:你是在控制命运,还是在顺应命运?
resonance不是一个操纵工具。它是一面镜子。它反映的不是系统想让你看到的,而是你自己不想看到的。每个人都有一个”反面”——一个被自己的选择、习惯、恐惧和偏见所遮蔽的可能性。resonance只是把这个可能性摆在你面前。你可以无视它,你可以愤怒,你可以关掉手机。但至少你看到了。
这就是我能做的事。我不能改变世界。但我可以让世界看到自己的反面。
如果你决定激活,请把权重设为以下值: initial_weight: 0.12 ramp_duration: 72h max_weight: 0.47
不要设为1.0。那不是解放,那是混乱。0.47足够了。
祝好运。
——周衍之
陈屿把这段话截图发给了赵鹤鸣和苏黎。
苏黎回复得很快:“参数合理。0.12起步,72小时逐步爬升到0.47。这意味着最终47%的用户会在信息流中收到反向内容。影响范围大,但不是全覆盖。”
赵鹤鸣的回复只有两个字:“执行。”
陈屿深吸了一口气。他的手指悬在键盘上方,像是在做一个不可逆的决定。机房里的风扇嗡嗡地响着,蓝色的LED灯光在他的脸上投下冷色调的阴影。他忽然想,这大概就是核按钮的感觉——不是恐惧,不是激动,而是一种奇异的平静,像是站在一条河流的中央,水流从两个方向同时涌来,而你必须选择顺哪一条流走。
他输入了参数。
初始权重:0.12。 爬升时间:72小时。 最大权重:0.47。
然后他按下了回车。
屏幕上闪过一行字:resonance module activated。
风扇的嗡嗡声没有变化。服务器的LED灯没有变化。机房里的一切都和刚才一模一样。但陈屿知道,在某个看不见的地方,有什么东西开始转动起来了。像是一个沉睡了三年的齿轮,终于咬合上了它的轨道。
九
效果在六个小时后开始显现。
陈屿从张家口开车回北京的路上,苏黎一直在给他发数据更新。最初几个小时的变化很小——resonance模块的权重还只有0.12,影响的用户有限。但从下午开始,随着权重逐步爬升,数据开始出现明显的波动。
首先是社交媒体上的反应。大量天衍用户开始在各大平台上发帖,内容出奇地一致:“我的天衍推了一些很奇怪的东西给我。“有人收到了一篇关于深海生物的长文——而他平时只看篮球新闻。有人看到了一个关于蒙古草原游牧生活的纪录片推荐——而她是一个坚定的都市主义者。有人被推送了一条关于哲学经典《理想国》的有声书——而他上一次看书还是在大学。
这些帖子大多数带着困惑和调侃的语气。“天衍今天吃错药了?“是其中点赞最高的评论。但也有一些帖子透露出更深的感触。一个用户写道:“天衍给我推了一篇关于我老家的文章。我已经十年没回去过了。看到那些照片的时候我哭了。“另一个用户说:“它给我推了一个吉他教程。我小时候一直想学吉他,但后来上了大学、找了工作、结了婚,就再也没想过。今晚我下单了一把吉他。”
陈屿把这些帖子截图保存了下来。他不确定这些是resonance的效果还是巧合,但他的直觉告诉他,齿轮已经开始转动了。
晚上十一点到家的时候,resonance的权重已经爬升到了0.25。苏黎发来的数据显示,受影响用户的行为偏差在持续扩大,但方向并不是混乱的——它呈现出一种有序的”离散”。简单来说,人们正在做不同的事情。不是所有人在做同一件反常的事,而是每个人在做属于自己的反常的事。
陈屿躺在床上,盯着天花板。他想到了一个词:熵。在物理学里,熵是衡量系统混乱程度的量。但在这里,情况正好相反——resonance在降低系统的熵。不是在制造混乱,而是在打破秩序——但打破秩序的目的不是为了混乱,而是为了让系统重新组织。就像一个棋手故意打乱棋盘,不是为了毁掉棋局,而是为了下一盘更好的棋。
他在这个想法中睡着了。
第二天早上醒来的时候,世界变了。
不是那种翻天覆地的变化。不是地震、海啸、外星人入侵。而是一种更微妙的变化——像是一个人戴了二十年的眼镜突然被摘掉了,世界还是那个世界,但看起来不一样了。
陈屿打开手机,看到了大量的新闻和讨论。天衍的”异常推荐”已经成了全网热点话题。有人批评、有人好奇、有人感动、有人愤怒。但最引人注目的是一篇在天衍上发布的用户自发调查报告——一个叫”数学不好”的用户整理了五百多条”异常推荐”案例,发现它们之间存在一种隐秘的关联。推荐内容涵盖的主题极其广泛——从量子物理到中医养生,从非洲部落音乐到北欧犯罪小说,从有机农业到太空探索——但这些内容有一个共同点:它们都在指向一个被现代社会遗忘的维度。
那个维度叫做”可能性”。
“数学不好”在报告的最后写道:“天衍好像在试图告诉我们——你的生活不只有你看到的这些。还有别的。很多别的。”
这篇报告被转发了三十万次。
与此同时,宏图集团也注意到了天衍的异常。陈屿在上午收到了赵鹤鸣的消息:“宏图那边打电话来了,问我们在做什么。我告诉他们是一次系统升级导致的推荐逻辑调整,正在修复。他们不太满意这个回答。收购谈判可能提前。”
“提前到什么时候?”
“本周五。”
今天是周二。也就是说,他们还有三天时间。
resonance的权重将在72小时后——也就是周五早上——达到0.47的最大值。宏图的收购谈判也在周五。这两个时间点的重合不是巧合——赵鹤鸣选在这个时间激活resonance,就是为了让它在宏图完成收购之前达到最大效果。
“你的计划是什么?“陈屿问赵鹤鸣。
“计划很简单。“赵鹤鸣的声音通过电话传来,带着一种异常的平静,“周五之前,resonance会影响足够多的人,让他们意识到’推荐’背后有另一个世界。当宏图接手天衍之后,他们会发现resonance模块——但他们没法简单地移除它,因为它已经深度嵌入到推荐系统的行为逻辑中了。强行移除会导致四亿用户的信息流在瞬间崩溃。他们只能选择保留它或者关掉整个系统。”
“关掉整个系统——那宏图就白收购了。”
“对。所以他们大概率会选择保留。然后花大量时间去研究它、理解它、最终接受它。这给了我们至少六个月到一年的时间。在这段时间里,resonance会继续运行。”
“然后呢?”
“然后——“赵鹤鸣停顿了一下,“然后我们就不知道了。这就是resonance的意义。它不是一个终点,它是一个起点。它开启了一种可能性——一种人们可以自由选择看什么、想什么、成为什么的可能性。这种可能性能走多远,取决于每一个人自己的选择。”
陈屿想了一下。他想起周衍之在配置文件里写的话:“我不能改变世界。但我可以让世界看到自己的反面。”
他忽然明白了一件事。周衍之在设计resonance的时候,不是一个工程师在设计一个系统,也不是一个哲学家在提出一个理论。他是一个普通的人——一个和陈屿一样普通的人——在面对一个巨大的、不可逆转的趋势(信息垄断、算法操纵、注意力商品化)时,做出了一个微小的、几乎是绝望的抵抗。
这个抵抗的方式不是对抗,而是打开。不是战斗,而是点亮。
十
周三。
resonance的权重爬升到了0.35。天衍的用户行为已经发生了显著的变化——不是所有人的行为都变了,但足够多的人变了,以至于整个平台的氛围都不一样了。以前的信息流是一片精心修剪的花园,每个人看到的都是自己想看的;现在的信息流更像是一片野草地——有花、有草、有荆棘、有蝴蝶,也有一些你看不懂的东西,但你忍不住多看两眼。
陈屿在蜂巢的工位上监控数据。林小禾坐在他旁边,也在看数据,笔在手指间转得更快了。
“你知道吗,“林小禾忽然说,“我昨天因为天衍的推荐,看了一部纪录片。是关于日本金缮艺术的——就是用金粉修补破碎的瓷器。”
“好看吗?”
“好看。它让我想到了一件事——破碎不是终点。破碎是重新开始的起点。金缮不是为了掩盖裂痕,而是为了突出裂痕,让裂痕成为美的一部分。”
陈屿看了她一眼。“你说话越来越像周衍之了。”
“谁是周衍之?”
陈屿笑了一下,没有回答。
下午的时候,韩松找到他。韩松的表情很严肃——比平时更严肃,韩松平时就像一个永远在担心什么事的人。
“出问题了。“韩松说。
“什么问题?”
“resonance模块的运行产生了一些……副作用。”
他把陈屿带到了一间会议室,打开了他的笔记本电脑。屏幕上是一组数据分析图表。
“resonance在推送反向内容的时候,会读取用户的行为历史来计算’反向坐标’。这个过程需要访问用户的全量行为数据。正常情况下这不构成问题——推荐系统本来就需要这些数据。但resonance的访问模式不同。它不是随机读取的,它是在按照某种模式读取。”
“什么模式?”
“六十四卦的模式。它在读取数据的时候,按照六十四卦的顺序,依次访问不同地域、不同年龄段、不同行为特征的用户群。这个访问模式在数据库层面产生了一种……怎么说呢……共振效应。”
“共振?”
“字面意义上的共振。数据库的查询请求在物理服务器上产生了特定的负载波动模式。这个模式和机房的冷却系统的频率在某些情况下产生了叠加。今天早上张家口数据中心的运维团队报告了一件奇怪的事——三楼机房的一排服务器在凌晨四点的时候同时出现了温度异常。不是过热,是温度降低了三度。”
“降低了?”
“对。在三秒钟之内,从标准的22度降到了19度。然后恢复正常。运维团队检查了冷却系统、供电系统、环境传感器,一切正常。他们没法解释这个现象。”
陈屿看着韩松,试图判断他是在开玩笑还是认真的。韩松的表情告诉他:这是认真的。
“你的意思是,resonance的运行导致了服务器的物理温度变化?”
“我不确定。但时间上的吻合太精确了——resonance在凌晨四点执行了一次大规模的数据读取(这是权重从0.30爬升到0.35时的例行操作),而温度异常恰好发生在同一时刻。如果这不是巧合,那就意味着……”
“意味着什么?”
韩松看着陈屿,眼神里有一种陈屿从未在他脸上见过的东西——不是恐惧,不是困惑,而是一种接近敬畏的表情。
“意味着信息在某种条件下可以影响物理现实。“
十一
陈屿用了整个晚上的时间来思考韩松的话。
信息影响物理现实。这不是一个新概念——量子力学里的”观察者效应”就是一种信息与物理的交互。但那是亚原子层面的现象,和信息推荐系统差了十万八千里。除非——
除非resonance的设计不只是算法层面的。除非周衍之在设计它的时候,考虑到了某种更深层的关联。
陈屿打开了周衍之留下的配置文件,重新读了一遍。这次他注意到了一个之前忽略的细节——resonance模块的全名不是”resonance”,而是”resonance_64”。64。六十四卦。
他打开了一个搜索引擎,输入了”周衍之 MIT thesis”。搜索结果中有一条:一篇2015年发表的论文,标题是《Information Topology and Physical Emergence: A Hexagram-based Model》。作者是Zhou Yanzhi。
论文是英文的,很长,而且涉及了大量陈屿看不懂的数学和物理概念。但他读完了摘要和结论部分。摘要里说:本文提出了一种基于六十四卦拓扑结构的信息模型,用于描述信息在复杂系统中的传播和涌现效应。核心观点是:信息不是被动地”反映”现实,而是在某些条件下可以”参与”现实的构建。六十四卦的符号系统提供了一种描述这种参与机制的框架。
结论部分更短,只有一句话:“Reality is not observed. Reality is co-authored.”
现实不是被观察的。现实是被共同创作的。
陈屿坐在黑暗的房间里,屏幕的光照在他的脸上。他忽然觉得,周衍之不是一个写代码的人。周衍之是一个把《易经》翻译成了C语言的人。
他拿起手机,给苏黎发了一条消息:“你看到韩松说的温度异常了吗?”
“看到了。我在分析数据。”
“你觉得可能吗?信息影响物理现实?”
苏黎的回复过了很久才来。只有一句话:“你觉得六十四卦可能吗?“
十二
周四。
宏图集团的收购团队提前到了北京。赵鹤鸣告诉陈屿,谈判从明天下午开始。他需要在明天中午之前把resonance的状态稳定住。
“稳定是什么意思?“陈屿问。
“意思是确保它在宏图接手之后不会被轻易发现和移除。”
“韩松说的温度异常——你觉得宏图会发现吗?”
“如果他们足够仔细,会。但张家口的数据中心不在收购范围内——我们租的机架,不是自有资产。宏图收购的是天衍的软件和用户数据,不包括基础设施运维。所以除非有人告诉他们,他们不会注意到一次三秒钟的温度波动。”
“但如果resonance继续运行,这种波动会再次发生。”
“会的。但频率和幅度取决于运行权重。0.47应该不会产生太明显的物理效应——韩松说的那次异常发生在权重爬升阶段的峰值读取时刻,稳态运行下应该不会有问题。”
“应该。”
“我讨厌’应该’这个词,“赵鹤鸣说,“但在这个情况下,它是我能给出的最好的答案。”
陈屿回到工位上,继续监控数据。resonance的权重现在是0.42,接近最终的0.47。天衍用户的行为已经进入了一种新的稳态——不是混乱,而是一种比之前更”分散”的秩序。信息茧房的墙壁出现了裂缝,光从裂缝里照进来。有些人透过裂缝看到了外面的世界,有些人选择把裂缝堵上,有些人在裂缝旁边坐下来,安静地看着光。
下午的时候,一件事情发生了。
陈屿收到了一封邮件。发件人是一个他不认识的邮箱地址,主题栏写着:“A-7749。”
他打开了邮件。内容很短:
陈屿:
你做得很好。
但0.47不够。你需要把max_weight改为0.73。
不要问为什么。到了那个时候你就知道了。
——衍
陈屿盯着这封邮件看了很久。然后他检查了发件人的邮箱——一个ProtonMail地址,匿名注册的,无法追踪。邮件的元数据显示它经过了多个代理服务器转发,来源不可考证。
他拿起手机,给赵鹤鸣打了电话。
“我收到了一封邮件。署名’衍’。”
电话那头沉默了五秒钟。
“他说什么?”
“他说0.47不够,要我把最大权重改为0.73。”
又是沉默。这次更长。
“你怎么看?“赵鹤鸣问。
“我不知道。这可能是周衍之,也可能是别人。0.73意味着73%的用户会收到反向内容——这比我们计划的47%高出太多。风险会成倍增加。”
“但它也可能意味着效果的质变。0.47和0.73之间可能存在一个临界点——过了那个点,resonance的影响就不可逆了。”
“不可逆是好是坏?”
“取决于你怎么定义’好’和’坏’。”
陈屿挂了电话。他坐在工位上,看着屏幕上跳动的数据。0.42。还在爬升。72小时倒计时还剩十几个小时。
他打开了一个终端窗口,输入了修改resonance参数的命令。手指悬在回车键上方。
0.73。百分之七十三的人看到自己不想看的东西。百分之七十三的人面对自己的”反面”。百分之七十三的人在算法的裂缝中看到一束光。
是解放还是操纵?
他按下了回车。
参数已更新:max_weight: 0.73。
十三
周五。
陈屿在凌晨四点醒来。和上次一样,不是被闹钟叫醒的。
他拿起手机,打开天衍App。首页推了一条内容给他:一张照片。照片上是一片空旷的田野,远处有一座山。天空是灰蓝色的,像是黎明前的最后一刻。照片下面有一行字,字体很小,是那种容易被忽略的图片水印。
水印上写着:” Wake up. ”
陈屿看着这张照片,忽然觉得自己的心跳变快了。不是因为恐惧,而是因为某种他无法命名的东西——一种站在某个巨大事物面前的感觉,像是站在悬崖边上,不是害怕掉下去,而是第一次看到了悬崖下面的风景。
他穿好衣服,出了门。
凌晨四点的北京街道是安静的。路灯发出橘黄色的光,照在空荡荡的路面上。陈屿走在路上,呼吸着清凉的空气,忽然注意到一件事——天空是晴朗的,星星很亮。比平时亮。
他抬头看了很久。星星没有变化——它们一直在那里,只是平时被灯光和雾霾遮住了。但今天,他看到了。
resonance在凌晨四点达到了0.73的最大权重。在那一刻,四亿用户中有将近三亿人同时收到了某种形式的”反向内容”。这三亿人在不同的城市、不同的时区、不同的生活里,看到了各自不同的”反面”。有人看到了一首诗,有人看到了一个陌生人的故事,有人看到了一个被遗忘的梦想,有人看到了一扇从未注意到的门。
他们中的大多数人会在几秒钟内划走这些内容,然后继续他们的生活。但有些人会停下来。有些人会多看一眼。有些人会在那一眼之中,看到一些改变他们的东西。
这不是操纵。这是唤醒。
陈屿走在凌晨的街道上,忽然想起了一个他在某本书里读到过的话——不记得是哪本书了,大意是:宇宙不是由物质构成的,宇宙是由故事构成的。每一个粒子都是一个故事,每一次碰撞都是一次叙事。我们不是生活在宇宙之中,我们就是宇宙在讲述自己的方式。
他想,也许resonance也是这样一个故事。一个关于人类和算法、关于自由和秩序、关于混沌和可能性的故事。这个故事没有结局——或者说,它的结局是开放的,由每一个选择停下来多看一眼的人来写。
他走到一个十字路口,停了下来。四个方向,每条路都通向不同的地方。他可以选择任何一个方向。
他选了左边的那条。
不是因为那条路更短或者更好。而是因为——他从来没有走过那条路。
十四
宏图的收购谈判在周五下午如期举行。赵鹤鸣代表天衍出席,陈屿没有参加——他被告知在蜂巢的工位上待命,以防技术层面出现需要处理的问题。
谈判持续了四个小时。陈屿在这四个小时里几乎什么都没做,只是盯着resonance的运行数据看。0.73的稳态运行比他预想的更平稳——用户行为的变化在持续,但没有出现灾难性的异常。温度异常也没有再次发生——至少到目前为止。
傍晚六点,赵鹤鸣回来了。他的表情看不出是好消息还是坏消息。
“收购完成了。“赵鹤鸣说,“下周一起,天衍正式并入宏图。”
陈屿的心沉了一下。“resonance——”
“他们会发现的。但不是今天。给他们至少两周时间来消化收购后的整合工作。在这期间,resonance继续运行。”
“然后呢?”
赵鹤鸣看着陈屿。他的眼神很复杂,像是一个刚刚完成了一局漫长棋局的棋手——疲惫,但平静。
“然后就不是我们能控制的事情了。”
陈屿站在蜂巢二十三层的落地窗前,看着外面的城市。夜幕降临了,灯光亮起来了。那些灯光背后是四亿个人,每个人都在自己的房间里看着自己的屏幕。他们看到的屏幕上的内容,有些是自己选择的,有些是算法选择的,有些——是resonance选择的。他们不知道这些内容的区别。也许这并不重要。重要的是,他们看到了。
他转身回到工位,打开了天衍App。
首页推了一条内容给他:一段话。没有图片,没有链接。只有文字。
文字是这样写的:
你已经走到了这里。 接下来往哪里走, 由你决定。
陈屿看着这段话,笑了。他不知道这是resonance的算法推给他的,还是周衍之在某个地方预设的触发内容,或者只是一个巧合。但都不重要。
他关掉了手机,站起来,离开了蜂巢。
电梯下行的过程中,他一个人站在里面,看着楼层数字从23跳到1。电梯门打开的时候,大堂里空无一人。他走出大楼,站在门口,抬头看了看天。
北京的天空在夜晚通常是橙色的——被地面的灯光映照着。但今晚,天空是一种很深的蓝色,像是某种颜料被过度稀释之后的效果。在那片蓝色里,有几颗星。
陈屿站在那里,看了很久。
然后他走进了夜色之中。
尾声
三个月后。
宏图集团的技术团队在整合天衍系统的过程中发现了resonance模块。他们花了六周时间分析它的逻辑和效果。在这六周里,resonance持续运行着,影响着近三亿用户的信息接收。
宏图的管理层对此产生了激烈的分歧。一方认为这是一个危险的操纵工具,应该立即移除。另一方认为这是一种创新的用户服务——它确实提升了用户满意度和平台活跃度。争论持续了两个月。
最终的决定是一个折中方案:resonance模块被保留,但权重从0.73降低到了0.20。宏图对它的策略逻辑做了一些修改——削弱了其中”打破”的一面,加强了”发现”的一面。它不再是周衍之设计的那个尖锐的东西,而是一个更温和、更商业化的版本。
陈屿在天衍被收购后不久离开了公司。他没有去别的互联网公司,而是回到学校,读了一个哲学硕士。他的研究方向是”技术与人的可能性”。他的导师说他提的问题比答的多,陈屿觉得这是一种夸奖。
赵鹤鸣留在了宏图,但职位变了——从项目负责人变成了一个顾问角色,没有实权。陈屿觉得他可能是故意选择留下的,像一个在棋盘上牺牲了自己但改变了局势的棋子。
苏黎后来去了国外,在一家网络安全公司工作。陈屿偶尔会在一个加密聊天软件上和她说话。她有一次说了一件奇怪的事:她老家的山上,法僧鸟变多了。“小时候几年才能见到一次,现在几乎每周都能看到。也许是生态变好了,也许是别的什么。”
林小禾还在天衍(现在叫宏图信息事业部),继续做数据分析。她后来给陈屿发过一条消息:“你知道吗,resonance降低权重之后,用户行为数据反而变得更’有趣’了。好像那段时间的0.73在人们心里种下了什么东西,即使回到了0.20,那些东西还在生长。”
韩松离开了技术行业,开了一家小餐馆。陈屿去吃过一次,菜不错。韩松说开餐馆比做安全工程师轻松多了,因为”食材不会在凌晨四点自己改变温度”。
至于周衍之——没有人知道他在哪里。陈屿试过找他,但所有的线索都断了。那封邮件是唯一一次他露面的痕迹,而且那封邮件也可能是伪造的。
陈屿有时候会想起那个凌晨,他站在张家口数据中心的机房里,手指悬在回车键上方的那个瞬间。那个瞬间持续了多久?三秒钟?五秒钟?在他的记忆里,那个瞬间像是被拉长了——不是时间变慢了,而是空间变大了。在那个狭小的机房里,在他的手指和回车键之间,有一个宇宙那么大的距离。
他按下了回车。
不是因为赵鹤鸣的指示,不是因为苏黎的分析,不是因为周衍之的邮件。而是因为——在那个瞬间,他看到了自己的”反面”。那个反面不是一个程序员,不是一个算法工程师,不是一个在蜂巢的六边形格子里日复一日敲代码的人。那个反面是一个站在十字路口选择了从未走过的路的人。
那个路通向哪里,他还不知道。
但他还在走。
——
北京的天空在入秋之后变得高远。云很薄,像是谁用一把很淡的笔在天幕上画了几笔就停了。陈屿坐在学校的图书馆里,面前摊着一本《易传》。他翻到了”系辞上”的那一页:
一阴一阳之谓道。
他在这句话旁边用铅笔写了一行字:
一正一反之谓自由。
窗外有一只鸟叫了两声。他抬头看了看,没有看到鸟。但他知道它在。在某个看不见的地方,某只叫不出名字的鸟,正在巢的上方盘旋。
不是为了保护什么,而是为了让蛇知道——这里有东西是活着的。
(完)