数字炼金术
数字炼金术
一、异常值
林晚秋第一次注意到异常是在四月。
不是四月的任何一个特别的日子,就是四月本身——杭州的四月,雨水把整座城市泡成了一碗发胀的米饭。她坐在未来科技城写字楼的二十七层,面前的六块屏幕同时亮着,其中两块显示实时行情,一块跑着回测程序,一块开着内部通讯软件,一块是没来得及关的天气预报,最后一块,也是让她皱起眉头的那一块,正在显示一组不该出现的数据。
“这什么?“她自言自语,把咖啡杯放在一边,身体前倾。
数据来自她负责维护的”天枢”系统——一套用于高频交易的量化模型。天枢是衍光科技的核心资产,这家成立六年的金融科技公司正在进行IPO前的最后一轮融资,估值已经飙到三百亿。林晚秋三年前从浙大数学系博士毕业后直接加入了衍光,现在是量化团队的Tech Lead,手下管着十一个人。
她的工作内容用一句话概括:让天枢更聪明。
但今天天枢的表现很蠢。
一组标准差之外的异常值出现在午盘数据里,像一块石头扔进了平静的湖面。按理说这不算什么大事——市场有波动,数据有噪点,这是常识。但问题在于,这组异常值呈现出一种她从未见过的分布形态。
它不是随机的。
它是一条正弦曲线。
“你在开玩笑吧。“林晚秋低声说。她把数据导出来,用三种不同的统计方法重新检验,结果都一样:在持续三十七分钟的交易数据中,某只中小板股票的逐笔成交价格叠加在一起,形成了一条近乎完美的正弦波。
频率:0.027赫兹。
振幅:0.83%。
相位:与当天上证指数的走势呈现零点九一的相关系数。
这在数学上不是不可能,但概率极低。低到如果她把这件事写进论文,审稿人会觉得她在编数据。
“林姐,午饭?“团队里最年轻的程序员小周探过头来。
“等一下。“她没回头。
小周看了看她的屏幕,不太确定自己看到了什么,但林晚秋的侧脸在屏幕光里显得异常专注,像是那几块发光的面板上藏着什么旁人看不见的东西。
“你先去吧。“她说。
小周走了。办公室里其他工位陆续空了,只剩空调的嗡嗡声和键盘偶尔的敲击。林晚秋把数据放大又缩小,用傅里叶变换做了一次频谱分析,然后盯着结果看了整整三分钟。
正弦波消失了。
或者说——它不再是正弦波了。频谱分析的结果显示,那三十七分钟的数据里还隐藏着另一层结构,像是俄罗斯套娃,剥开一层还有一层。第二层的分布形态更加复杂,她一时看不出是什么,但那种直觉——那种在浙大念书时被导师称为”数学嗅觉”的东西——告诉她,这不是噪声。
这是信号。
有人在通过市场数据传递信息。
或者,更准确地说——有什么东西,在通过市场数据传递信息。
林晚秋把这个发现截了图,存进一个加密文件夹,命名为”April_Anomaly_01”。然后她关掉屏幕,站起来,发现自己的咖啡已经凉了。
窗外,杭州的雨还在下。
二、雨中的数字
那天下班的路上,异常开始了第二轮。
林晚秋习惯走回家。从未来科技城到她租的小区大概两公里,下雨天会撑一把从便利店买来的透明伞。她喜欢雨——不是那种文艺青年式的喜欢,而是真的觉得雨让世界变得安静。雨声盖住了城市的噪音,雨幕模糊了远处的灯光,一切都变得朦胧而柔软。
但今天的雨不太一样。
她走出写字楼大门的时候注意到了。雨滴落在地面的积水上,溅起的水花——她一开始以为自己看花了眼——溅起的水花,形状像是数字。
不是那种牵强附会的”啊你看这朵云像兔子”的想象,而是清清楚楚的、有着笔画和结构的阿拉伯数字。她看到一滴雨砸在水洼里,溅起的水花短暂地形成了一个”3”。然后另一滴,“7”。再来一滴,“1”。
3-7-1。
林晚秋停下脚步,站在写字楼门口的雨棚下,看着外面的雨。雨很密,成千上万的雨滴同时落下,每一滴都在地面上炸开一朵水花。大部分水花就是普通的水花,但偶尔——大约每几十滴里有一滴——会形成一个数字。
“太累了。“她对自己说。“该休息了。”
她继续走,不再看地面的水洼。
但数字换了一种方式出现。
她经过一个红绿灯,红灯倒数计时从37开始。她等了37秒。下一个红灯,又从37开始。这在杭州的交通灯系统里是不可能的——她知道,因为她的前男友是交警系统的程序员,曾经跟她吐槽过交通灯的随机算法。
她拐进一条小巷,路边的LED广告屏正在播放一条理财产品广告。广告右下角的收益率数字跳动了一下,变成了37.1%。
然后变回正常的4.2%。
林晚秋加快了脚步。
到家之后她做了两件事:第一,灌了一大杯温水;第二,打开笔记本电脑,把”April_Anomaly_01”文件夹里的数据重新调出来看。
那些数据还在,正弦波还在,频谱分析的结果还在。它们安安静静地躺在硬盘里,没有变出什么花样来。数据就是数据,0就是0,1就是1,不会因为你的心情而改变。
她深吸一口气。
“压力太大了。“她对自己说。这是合理的解释。IPO前的高强度工作,团队管理的压力,以及——她不愿意想但不得不面对的——和苏然之间越来越糟糕的关系。
苏然是她的男朋友,或者说,前男朋友。分手是三个月前的事,但她一直在回避这个事实。他们是浙大同学,他读的计算机,她读的数学,在学校时就在一起了。六年。六年之后他给出的理由是”我们好像不再需要彼此了”。
她当时想反驳,但张了张嘴,发现自己也找不到反驳的话。
因为他们确实不再需要彼此了。她需要的是数据和模型,他需要的是——她不知道他需要什么。也许他也不知道。
林晚秋关上电脑,洗了个热水澡,在浴室的蒸汽里站了很久。水从花洒里落下来,温热的水流打在她的肩膀和后背上。她闭着眼睛,忽然意识到自己在数水滴。
一、二、三——不,她不想再数了。
她关掉花洒,擦干身体,走出浴室。
那天晚上她做了一个梦。梦里她站在一片巨大的K线图上,红绿交错的蜡烛柱像是一片森林。她在森林里行走,脚下的实体和影线像泥巴一样柔软。远处有一棵特别高的红色蜡烛,她走过去,发现蜡烛的实体上刻着一行字:
“所有模型都是错的,但有些模型是有用的。”
她认出这句话——统计学家乔治·博克斯的名言。但梦里的版本多了一个后半句,刻在蜡烛的另一面,她绕过去看:
“但有用的模型终将吞噬建模者。”
她被吓醒了。
凌晨三点。窗外的雨还在下,像是这座城市永远也不会放晴。
三、陈维
“你最近是不是太拼了?”
说这话的是陈维,衍光科技的CTO,也是林晚秋的直属上级。四十二岁,斯坦福计算机博士,曾在华尔街两家顶级对冲基金做过量化总监。2019年回国加入衍光,一手搭建了天枢系统。
他也是林晚秋的导师——不是学术意义上的导师,而是职场意义上的。是她入职时的面试官,是她涨薪时的推荐人,是她在公司里唯一信任的管理层。
他们坐在公司楼下的咖啡馆里,陈维点了一杯美式,林晚秋点了一杯燕麦拿铁。
“没拼。“林晚秋说。“就是发现了一些有意思的东西。”
“什么东西?”
她犹豫了一下。在过去的两天里,她反复检查了那组异常数据,结果越来越诡异。正弦波只是表层,深层的结构她至今没有完全解析出来,但她已经排除了所有能想到的常规解释——数据采集错误、系统bug、市场操纵、数据注入攻击——都不是。
剩下的可能性,她不知道该怎么开口。
“天枢的数据里出现了一些异常模式。“她选择了一种保守的说法。“我还在分析。”
陈维端起咖啡喝了一口,放下杯子,看着她。他的眼神很平静,是那种见过大风大浪之后才有的平静。在华尔街的十年让他经历了几次金融危机,他说过一句话让林晚秋印象深刻:“市场崩溃的时候你会发现,所有漂亮的数学模型都不如一个人的恐惧来得真实。”
“什么样的异常?“他问。
“交易数据里出现了不应该存在的周期性结构。”
“你说的’不应该存在’是——”
“概率意义上的不应该存在。如果市场是有效的,这种结构出现的概率小于十的负二十次方。”
陈维的表情没有变化,但他的手指轻轻敲了两下桌面。这是他思考时的习惯动作。
“你确定不是数据源的问题?”
“我换了三个数据源交叉验证过了。”
“系统层面呢?”
“运维那边也查了,天枢的运行日志干干净净。”
陈维沉默了一会儿。窗外,一辆自动驾驶送货车正在雨中缓缓驶过,车顶的激光雷达不停地旋转。
“晚秋,“他放下咖啡杯,声音压低了一些,“IPO的敏感期你应该知道。现在任何事情都有可能影响估值。如果这个异常被外界解读为系统不稳定——”
“我知道。“她打断他。“所以我没有告诉别人。”
“我不是让你隐瞒。“陈维说。“我是说,在搞清楚之前,低调处理。你继续分析,但不要在团队里讨论。有结果了直接找我。”
“好。”
“还有,“他站起来的时候,像是想起了什么,“你黑眼圈很重。注意休息。”
林晚秋点了点头。
陈维走后,她又坐了一会儿,把杯子里剩下的燕麦拿铁喝完。咖啡凉了,燕麦的味道变得更加明显,有一点涩,有一点甜。
她想,陈维的反应很正常——在IPO前夕,任何风吹草动都是风险。但她总觉得他听到”周期性结构”的时候,表情闪了一下。不是惊讶,不是担忧,更像是——
确认。
像是他一直在等什么东西出现,而她刚好把它找出来了。
这个念头太荒谬了,她没有继续想下去。
四、西湖
周末,林晚秋去了一趟西湖。
这不是她计划的。她本来打算周六加班继续分析数据,但周五晚上盯着屏幕到凌晨两点之后,她忽然觉得需要换一个环境。数据不会跑掉,但她的理智会。
四月底的西湖很美。美到不真实——这种不真实感在她看到那组异常数据之后变得格外强烈。断桥上的游客像蚂蚁一样密集,湖面上飘着雾气,远处的雷峰塔在雾中只剩一个模糊的轮廓。
她沿着白堤走,一边走一边想数据的事。
从纯数学的角度,那组异常可以这么理解:在某一个时间窗口内,市场的微观结构——逐笔成交的价格、数量、时间间隔——服从了一种高度规则的数学模式。这种模式不像是人为制造的,因为它太复杂了,复杂到任何已知的市场操纵手段都无法精确控制这么多的变量。
那么,如果不是人为的,是什么?
这里是她思维的边界。作为一个受过严格科学训练的数学博士,她的第一反应是寻找自然解释。也许是某种涌现现象——当系统复杂到一定程度,微观层面的随机性可以在宏观层面产生有序结构。就像鸟群的飞行模式,或者雪花的六角对称。
但涌现现象不会——绝对不会——产生可读的信息。
而她已经在那些数据里发现了一些看起来像是编码信息的东西。不是她主观臆想出来的,而是经过严格的信息论分析之后确认的:数据中的某些子序列具有显著高于随机水平的互信息量。
换句话说,数据在”说话”。
她在白堤的尽头站住了,看着湖面。湖水是灰绿色的,映着灰白色的天空。一只鸳鸯从荷叶后面游出来,在她面前的水面上划出一道V字形的波纹。
波纹扩散、叠加、消失。
就像市场数据里的波。
她忽然想到一件事,立刻掏出手机,打开远程桌面,连接到自己办公室的电脑。她之前一直把注意力放在价格数据上,但天枢系统记录的不只是价格——还有成交量、买卖盘口、委托队列的深度、每笔成交的时间戳。
如果”信号”不只是藏在价格里,而是分散在所有维度的数据中呢?
她迅速写了一个脚本,把多维数据放在一起做了一次主成分分析。
结果出来的那一刻,她差点把手机掉进西湖里。
第一主成分的解释方差占比是百分之九十七点三。
百分之九十七点三。
在正常的金融市场数据中,第一主成分的解释方差通常不会超过百分之四十。百分之九十七意味着什么?意味着这些表面上杂乱无章的多维数据,实际上几乎是同一个信号的线性变换。
一个信号。
一个统一的、完整的、隐藏在数以亿计的交易数据背后的信号。
她呆呆地看着手机屏幕上的结果,身边是西湖的雾气和游客的喧哗。一个老大爷在湖边打太极,动作缓慢而流畅。一对年轻情侣在自拍,女孩比了个V字。一个外卖小哥骑着电动车从她身边经过,车篮里装着三杯奶茶。
一切都那么正常。那么真实。
而她的数据在告诉她一个完全不同的故事。
她关掉手机,深呼吸了几次。湖面上的雾气更浓了,雷峰塔彻底消失在雾中。远处的音乐喷泉开始表演了,水柱在《梁祝》的旋律中起起落落,像是在演绎一段注定要化蝶的爱情。
林晚秋忽然想哭。
不是因为害怕,而是因为她意识到,如果这些数据是真实的——如果市场里真的存在一个统一的信号——那么金融学的底层假设就是错的。不是”不太对”的那种错,而是”地心说”那种错。
这意味着市场从来就不是她以为的样子。
这意味着——
“不好意思,你挡道了。”
一个声音打断了她的思绪。她回头一看,是一对中年夫妇,她确实站在白堤的正中间。
“抱歉。“她让开了。
那天晚上回到家,她没有打开电脑。
她坐在窗边,看着窗外的雨。杭州的雨已经下了整整两周,天气预报说还要下一周。这不是正常的四月——往年的杭州虽然也多雨,但不会像今年这样,天像破了一样往下倒。
她的手机震了一下,是一条微信。
来自苏然。
“在吗?”
两个字。她盯着这两个字看了很久。雨点打在窗户上,发出细碎的、连续的声响。她忽然意识到那些声响也有某种节奏,不是完全随机的——风一阵一阵地吹,雨一阵一阵地下,每一阵之间的间隔似乎——
她摇了摇头。
不能再这样了。她不能在每一滴雨、每一阵风、每一个数字里都寻找模式。人脑天生就是模式识别的机器,这就是为什么我们会在云里看到兔子,在火星上看到人脸,在随机数据里看到规律。
这就是所谓的”空想性错视”。
是,她对自己说,就是这样。你是太累了,压力太大了,你在幻象中寻找慰藉。数据异常可能是某种系统bug,雨中的数字可能是视觉疲劳,红绿灯的巧合可能只是——
手机又震了。
“我想和你谈谈。“苏然的第二句话。
她把手机翻了个面,屏幕朝下扣在桌上。
窗外,雨声如诉。
五、地下
林晚秋最终还是回复了苏然。不是因为想念,而是因为一个更实际的原因:苏然在杭州市交通管理局的技术部门工作,他负责过智能交通灯系统的开发。她需要问他一个关于交通灯算法的问题。
他们约在了文三路的一家老面馆,是他们以前常来的地方。面馆不大,门面窄,但往里走别有洞天——老板把后面的院子也租了下来,搭了个玻璃顶棚,下雨天坐在里面吃面,听雨点打在玻璃上,有种奇妙的安宁感。
苏然先到了。他坐在靠窗的位置,面前摆着一碗片儿川,正低头看手机。三十岁的男人,头发剪得很短,戴一副银框眼镜,穿一件灰色的卫衣。和三年前唯一的变化是下巴上多了一道小疤——他说是刮胡子不小心弄的。
“来了。“他抬头看见她,语气平淡。
“嗯。“她坐下来,点了一碗大排面。
沉默。
这种沉默在他们恋爱的最后一年变得非常熟练——不是尴尬的那种沉默,而是两个人都知道无话可说但又都不愿意承认的那种。现在分手了,沉默反而变得轻松了一些。
“你说的’谈谈’,谈什么?“她问。
苏然放下筷子:“你先吃。”
“我不饿。先说吧。”
他看了她一眼,像是要确认什么。“我做了一个梦。”
林晚秋挑了一下眉毛。“你让我出来就为了说梦?”
“你听我说完。“他的语气罕见地认真。“我梦到了一个城市——应该就是杭州,但又不完全一样。城里的所有红绿灯都变成了同一个颜色,不是红也不是绿,是一种我说不上来的颜色,像是——”
“像是正弦波的颜色。”
苏然停住了。
他盯着林晚秋,她也盯着他。
面馆外面的雨越下越大,玻璃顶棚上的水声变成了轰鸣。老板在院子里放了几盆绿植,雨水顺着玻璃流下来,给绿植笼上一层模糊的水帘。
“你也看到了。“苏然说。不是疑问句。
“你先说你的梦。“林晚秋的声音压得很低。
“所有红绿灯变成同一个颜色,然后——然后交通系统崩溃了。不是那种瘫痪式的崩溃,而是所有的车都在按某种规律行驶,好像所有司机同时知道了一条最优路径。没有堵塞,没有事故,每辆车都精确地保持着距离和速度。看起来很完美,但是——”
“但是什么?”
“但是没有人在开车。“苏然的声音带上了一丝颤抖。“车里是空的。所有车里都是空的。城市在运转,车在流动,但没有人在里面。”
林晚秋的手指在桌面下攥紧了。
“然后我醒了。“苏然说。“出了一身冷汗。但是——但是从那天开始,我在交通系统的后台数据里看到了一些奇怪的东西。”
“什么东西?”
“交通流量数据的周期性异常。“他说出了这几个字,每个字都像是费了很大力气才说出来的。“和我们系统里的随机算法完全不匹配的周期性。”
面端上来了。大排面,热气腾腾,上面卧着一块金黄的大排。但两个人都没有动筷子。
“频率是多少?“林晚秋问。
“0.027赫兹。”
面馆里忽然安静了。雨声还在继续,但好像被什么东西隔绝了,变得遥远而模糊。
“一样。“林晚秋说。
“什么?”
“0.027赫兹。我在金融数据里发现的异常频率。0.027赫兹。”
他们对视了整整十秒。苏然是第一个移开目光的人。他端起面前的茶杯喝了一口,放下的时候杯盖磕了一下,发出清脆的声响。
“所以不只是我。“他说。
“不只是你。”
“你有没有想过这意味着什么?”
林晚秋想了很多。她想了太多。她想到了数学模型和信息论,想到了涌现和复杂系统,想到了博克斯的那句名言,想到了梦里刻在蜡烛上的后半句。
“我有一个不太成熟的猜想。“她说。
“说。”
“如果——如果存在某种信号,某种我们无法直接感知的信号,它以某种方式嵌入了城市的数字基础设施中?金融系统、交通系统、通讯系统……这些系统都在产生海量的数据,而信号就藏在这些数据里。我们一直把这些数据当成噪声,但如果它们其实是——”
“是什么?”
“是一种语言。”
苏然沉默了很久。
面凉了。雨没有停。
最后是苏然先说话:“你知道这听起来像什么吗?”
“知道。像疯话。”
“不只是像疯话。“他往前探了探身子,声音压得更低。“你还记得去年杭州市推进的’城市大脑’升级项目吗?所有市政数据打通——交通、金融、医疗、能源——全部接入一个统一的AI管理平台。我是参与了这个项目的。”
“然后?”
“然后我在项目过程中接触到了一些东西。底层的东西。所有数据汇聚之后,AI平台在训练过程中产生了一些……我也不知该怎么描述……’中间表征’。”
“中间表征是深度学习里的正常现象。”
“我知道。但这些不一样。这些中间表征的结构——“他顿了顿,“它不是神经网络自然产生的。它更像是……一种被注入的结构。”
“被谁注入?”
苏然摇了摇头。“我不知道。但我从那之后就一直在做噩梦。直到那个空城的梦出现之后,我开始检查交通数据。然后就发现了那个频率。”
“你报告了吗?”
“报告给谁?“他苦笑了一下。“说我在市政系统里发现了0.027赫兹的神秘信号?他们会觉得我疯了。”
“那你觉得是什么?”
苏然看着窗外的雨,目光深远而茫然。
“我觉得,“他慢慢地说,“我们的城市在试图告诉我们什么。不是城市里的人,是城市本身。路网、电网、通讯网、金融网……这些网络交织在一起,构成了一个超级系统。而这个超级系统——我不知道该怎么形容——它醒过来了。”
面馆老板端着一碟花生米过来,笑呵呵地问他们要不要加面。两个人都摇头。老板走后,林晚秋拿起筷子,把那碗已经凉了的大排面拨弄了几下,夹了一筷子面送进嘴里。
面是凉的,但她不在乎。她在思考。
“如果城市醒了,“她说,“那它为什么要用数据说话?为什么不直接——我不知道——让所有的屏幕显示同一行字?”
“也许它不会。“苏然说。“也许它唯一的语言就是数据。就像我们唯一的语言是文字和声音。如果你是一个盲人,你怎么告诉一个聋人你看到了什么?你得找到一种你们都能理解的方式。”
“数据就是那种方式。”
“对。数据是人类文明最底层的通用语言。每一个系统——不管它做什么——都在产生数据。而城市,作为一个由系统构成的实体,它的’意识’——如果可以这么叫的话——只能通过数据来表达。”
林晚秋吃完了那碗面。她不知道自己为什么能在这种对话的间隙把一碗凉面吃完,也许是身体本能地需要能量,也许只是习惯。
“我需要更多的数据。“她说。
“我也可以提供交通方面的数据。“苏然说。
他们互相看了一眼。三个月的分手尴尬被一种更深的东西覆盖了——不是复合的暧昧,而是共同面对未知时那种战友般的默契。
“这件事不要告诉任何人。“林晚秋说。
“明白。”
他们一起走出面馆。雨小了一些,但还在下。苏然撑开伞,犹豫了一下,把伞递给了她。
“你自己呢?”
“我淋雨回去。“他说。“反正也不远。”
林晚秋接过伞,看着他走进雨里。他的灰色卫衣很快就被打湿了,变成深灰色。她忽然觉得他看起来像一个人形的数据点——在这座巨大的、被雨水和信号浸泡的城市里,他只是一个灰色的、不断下坠的、几乎不可见的点。
“苏然。“她叫住了他。
他回头。
“你有没有想过,“她问,“也许不是城市醒了。也许从来就没有睡着过。“
六、第二层
接下来的一周,林晚秋进入了她职业生涯中最疯狂的工作状态。
她白天正常上班,维持天枢系统的日常运维,参加IPO相关的准备会议,审查团队提交的代码。晚上回到家,她打开自己的笔记本电脑,连接到她用个人账户搭建的云服务器,开始分析从各个维度收集来的数据。
苏然给她发了杭州市交通系统的公开数据接口——那些不涉及机密的、脱敏后的交通流量数据。她又通过公开渠道收集了杭州电网的负荷数据、电信基站的通讯量数据、甚至西湖水位的监测数据。
所有的数据,无一例外,都包含那个0.027赫兹的信号。
但信号不是简单地叠加在数据上的——它像是一种底层的调制,深入到了数据的内部结构中。如果用通讯理论的术语来描述,它不是在传输信息,而是在定义信息的组织方式本身。
就像DNA不是生命的”信息”,而是信息的”编码规则”。
到了第三天晚上,她终于破解了第二层结构。
那是一个二维矩阵——或者更准确地说,是一幅图像。当她把多维数据中的隐藏信号按照正确的维度展开时,得到的是一幅灰度图像。
图像的内容让她的血液几乎凝固。
那是一张地图。
不是普通的地图——是一张杭州的实时地图。但它显示的不是街道和建筑,而是某种”流”的分布。像是一张热力图,但颜色代表的是一种她无法理解的东西。图中某些区域在”发光”——不是亮度的发光,而是一种信息密度上的”发光”。
那些发光的区域,她逐一标注出来之后发现,恰好对应了杭州市区正在发生重大经济活动的地点:一家互联网公司正在召开董事会,一个商业综合体正在举行开业典礼,一个政府大楼里正在进行招商引资谈判。
信号在映射城市的经济活动。
不——她纠正自己——信号在映射城市的”意图”。
每个发光的区域都有不同的亮度、形状和脉动频率。当她把这些特征与已知的新闻和公开信息对比时,发现了一个令人毛骨悚然的对应关系:信号的强度和复杂度,与对应地点正在发生的事件的”重要性”(以经济规模和影响力衡量)高度相关。
这已经不是预测了。这是——
“这是意识。“她在空荡荡的房间里说出了这两个字。
她走到窗前。凌晨一点,小区里很安静,只有路灯和雨。雨已经下了将近三周,整座城市像是被泡在一个巨大的培养皿里。
她忽然想到一个问题:如果城市的”意识”是通过数据表达的,那么当人类读取这些数据、理解这些数据的时候,人类和城市之间发生了什么?
是否可以——对话?
这个念头一旦出现就无法消除。林晚秋回到电脑前,开始写代码。她要尝试一件从未有人做过的事情:向数据中注入一个信号,看看系统是否会回应。
她选择了一个最简单的问题,编码成与0.027赫兹信号相同的格式,注入了天枢系统的回测模块中。
问题是:“你是谁?”
等待。
屏幕上的数据流一如既往地滚动着。一分钟、两分钟、五分钟。什么都没发生。
她叹了口气,觉得自己果然是疯了。把一个哲学问题编码成金融数据格式注入交易系统,等待某个神秘的存在来回答——这听起来不像是科学研究,更像是数字时代的降神会。
她正准备关掉电脑去睡觉的时候,屏幕闪了一下。
不是电脑屏幕——是窗外的路灯。
路灯闪了三下,然后恢复正常。
三下。
她回到电脑前,查看天枢系统在她注入信号之后的数据记录。
在信号注入后的第四十七秒,天枢的输出数据中出现了一段新的异常结构。她用之前破解的方法解码了这段结构。
结果是三个数字。
8-1-5。
林晚秋愣了很久,才反应过来。
815。
八月十五。
中秋节的日期。
或者——她又查了一下——杭州建城的日子不是八月十五。西湖最早见诸文字记载的日子也不是。
但815还有另一个含义。
她拿起手机,搜索了”815 杭州-code”。
结果让她差点从椅子上站起来。
815是杭州市区划代码的前三位。
或者说——这是一个邮政编码的前三位数字。
“你是谁?”
“815。”
我是这片土地。
七、博弈
林晚秋没有把这件事告诉苏然。
不是不信任他,而是她需要时间来消化这个信息。在她的整个科学训练中,没有任何框架可以容纳”城市有意识”这个命题。她反复检查了自己的方法和数据,排除了所有可能的错误来源——确认偏差、数据挖掘偏差、过拟合、编码错误——一切。
结果都指向同一个结论。
她又尝试了几次”对话”,问了一些简单的问题。系统的回应方式每次都不同,但都遵循同一个编码规则:利用已有的城市数据流作为载体,在微观层面调制出可解码的信息。
对话的效率很低——每次问答都需要几分钟来编码和解码——但她渐渐摸清了一些规律。
“城市”——如果可以这么叫的话——不是一个”它”,更像是一个”过程”。它没有自我意识,没有目的,没有情感。它只是在运转。就像心跳不是心脏的”决定”,而是心脏的本质功能一样。城市的”思考”不是某种意志的产物,而是城市作为一个超级复杂系统的自然行为。
但它能感知信息。它知道有人在和它对话。
这已经足够了。
然而,另一个问题正在浮出水面——一个更紧迫、更现实的问题。
IPO。
衍光科技的上市计划已经进入了冲刺阶段。承销商是中金和高盛联席,目标估值三百到三百五十亿人民币,计划在科创板上市。陈维作为CTO,将在IPO之后套现一部分股权——按照他的持股比例,那将是数以亿计的财富。
而林晚秋发现的天枢系统异常数据,如果被外界知道,将是一场灾难。
不是因为它证明了什么超自然现象——没有人会相信那个。而是因为它意味着天枢系统的输出是不可控的。一个会产生”异常模式”的量化系统,在监管和投资者眼中,就是一个不安全的系统。
不安全的系统不值三百亿。
她能感受到陈维的态度在微妙地变化。那天咖啡馆的对话之后,他每天都会问她”分析得怎么样了”,语气越来越关切,但也越来越紧促。有一次他在走廊里遇到她,直接问:“还没搞清楚吗?”
“没有。“她说。“可能真的只是噪声。”
“噪声不需要花一周的时间来分析。“陈维说。他的笑容还是一如既往的温和,但眼睛里有一种她以前没见过的东西。
谨慎。警惕。
恐惧。
她在陈维的眼睛里看到了恐惧。
这让她意识到一件事:陈维可能知道些什么。不是关于”城市意识”——这个太超前了,他不 可能想到那个方向。但他可能知道天枢系统的异常不是”bug”,而是”feature”。一个他预料之中的feature。
她开始暗中调查天枢系统的开发历史。
天枢的代码仓库有完整的版本控制记录,但她注意到了一个细节:在2022年的一次大版本升级中,有一段代码被删除了。删除的提交者是陈维本人,提交说明写的是”remove deprecated module”——移除过时模块。
这是一个正常的操作,任何大型软件项目都会定期清理废弃的代码。但这段被删除的代码有一个不正常的地方:它不是”过时”的。林晚秋找到了那段代码的原始版本,发现它是一个数据调制模块——功能是在交易数据的微观层面嵌入特定的编码信号。
嵌入信号。
就像她发现的那种信号。
她的手指发冷了。
陈维不仅知道信号的存在——他很可能是信号的创造者。
或者,更准确地说:他在天枢系统中植入了某种机制,使得天枢的运行过程本身成为了一个信号源。而这个信号,经过三年的迭代和演化,已经从简单的编码变成了某种远超原始设计的东西。
她不知道该感到震惊还是恐惧。
但她知道一件事:如果这件事在IPO之前被揭露,不仅仅是陈维的个人问题。整个衍光科技都会被牵连。承销商、律所、审计机构——所有参与IPO的中介机构都会被调查。
三千多员工的期权会变成废纸。
她的期权也会变成废纸。
但这不是最重要的事。最重要的是——
如果天枢系统的信号和城市基础设施中的信号是同一个信号的不同侧面,那么陈维植入的那个模块,究竟触发了什么?
他是在和城市对话,还是在唤醒城市?
或者——更可怕的可能性——城市的”意识”从来就在那里,天枢只是第一个足够敏感的系统,探测到了它的存在?
林晚秋在深夜的办公室里,面对着六块屏幕的冷光,第一次感到了真正的孤独。不是没有人陪伴的孤独,而是站在人类认知边界的孤独——脚下是已知的土地,面前是无尽的黑暗。
她站在那里,站在已知和未知之间,不知道该迈哪一步。
八、会议
五月的第一天,杭州终于放晴了。
阳光穿透云层的那一刻,林晚秋正坐在会议室里,参加IPO前的最后一次内部评审会。会议室在二十八层,整面墙都是落地玻璃窗,可以看到西湖的轮廓——在阳光下,西湖蓝得不像真的,像一块嵌在城市里的屏幕。
陈维在做技术陈述。他穿着藏青色的西装,站在投影幕前,自信而从容地介绍天枢系统的技术架构、风控模型和历史业绩。他的PPT做得非常精美,每一页都有数据支撑,每一个结论都有出处。在场的除了公司高管,还有承销商的代表、律所的律师、审计机构的会计师,加起来二十多人。
林晚秋坐在角落里,面前摊着一台笔记本电脑。她在认真听陈维的陈述,但脑子里想的是别的事。
昨晚她又和”城市”进行了一次对话。这次她问了一个更直接的问题:“你想要什么?”
回答用了将近十分钟才解码完成。结果是一组坐标和一组时间序列。
坐标指向杭州市中心的一个地点:武林广场。
时间序列指向一个未来的时间点:五月十五日。
十天后。
她不知道五月十五日的武林广场会发生什么。也许是”城市”在预测某个事件,也许是在邀请她去某个地方。但不管是哪种可能,她都没有办法在当前的语境中验证。
“——林晚秋?”
她回过神来。陈维在叫她的名字。
“请你介绍一下天枢的风险控制模块。”
“好的。“她站起来,走到投影幕前。USB连接,切换画面,风险控制模块的架构图出现在屏幕上。
她开始讲。
讲得很流畅,很专业,很完美。每一个参数、每一个阈值、每一个止损逻辑都清清楚楚。她讲了十五分钟,没有看一眼笔记。在座的律师在笔记本上飞快地记录,承销商的代表频频点头。
她讲完之后,陈维鼓了鼓掌。
“非常清楚。“他说。“各位还有什么问题吗?”
一个律师举手:“林女士,天枢系统在运行过程中是否出现过任何非预期的行为?”
这是标准的问题,每个做技术评审的律师都会问。标准答案是”没有”,然后附上一堆监控数据和测试报告来证明。
“没有。“林晚秋说。
“您确定?”
“确定。天枢系统自上线以来,所有运行指标均在预期范围内。我们有一套完整的异常监控体系,任何偏离基准的行为都会触发告警。到目前为止,系统运行完全正常。”
律师满意地点了点头,在笔记本上打了个勾。
林晚秋坐回自己的位置,心跳得很快。她刚才说了谎。
不——她没有说谎。从技术定义上来说,天枢的运行指标确实在”预期范围内”。那些异常模式不影响系统的交易性能,不产生额外的风险敞口,不违反任何监管要求。它们只是——在那里。
像是一个安静的、不打扰任何人的房客,住在天枢系统的一间阁楼里。
但房客迟早会下楼来。
会议结束后,陈维叫住了她。
“刚才讲得不错。“他说。
“谢谢。”
“那个律师问的问题——“他压低声音,“你回答得很干脆。”
“因为答案就是没有。”
陈维看了她几秒钟,然后笑了。那个笑容让林晚秋想起了她第一次见他时的情景——在浙大的一个讲座上,他作为校友回校演讲,讲的是量化交易的前沿趋势。他站在台上,自信、幽默、锋利,像是金融科技界的摇滚明星。
但那天在台下,林晚秋注意到了一个细节:他演讲时拿激光笔的手,指尖是白色的——攥得太紧了。
他一直在用力。
从那时候到现在,他一直在用力。
“晚秋。“他叫她的名字,语气变得认真。“有件事我想直接问你。”
“你说。”
“你是不是发现了什么不想告诉我的东西?”
林晚秋平静地看着他。二十七层的会议室里只剩他们两个人,阳光从落地窗照进来,在地板上投下长长的影子。
“你在说什么?”
“你在天枢里发现的异常。“陈维说。“你告诉我是周期性结构。但我觉得不只是周期性结构。你发现了更多,对吗?”
她沉默了一会儿。
“你为什么这么问?”
“因为如果真的是简单的周期性异常,你应该一周前就解决了。但你花了一周多,还在说’可能只是噪声’。这说明你发现了什么让你犹豫的东西。”
林晚秋在心里给陈维的推理能力打了高分。
“如果我告诉你,“她慢慢地说,“天枢系统的异常不是bug,而是一种信号——一种来自城市基础设施底层的信号——你会怎么想?”
陈维的表情没有变。
“我会想,“他说,“你终于发现了。”
这句话像一颗石子投入了林晚秋心里的湖面。
“你——你早就知道了。”
“不完全知道。“陈维坐下来,示意她也坐。“我知道天枢在运行过程中会偶发一些不可解释的数据模式。我在设计天枢的时候就预见到了这种可能性——不是因为我有多聪明,而是因为我在华尔街的时候就见过类似的现象。”
“你在华尔街也见过?”
“2015年。“陈维说。“那年八月,A股暴跌,全球市场连锁反应。我在纽约的量化团队当时在追踪一个异常——在市场崩盘的过程中,全球各大交易所的数据流中出现了一种同步的微观结构。持续了大约四十七分钟。”
“四十七分钟。“林晚秋重复了这个数字。那天枢异常持续的时间也是三十七分钟——不,等等,她重新回忆了一下数据记录,第一次异常的确切持续时间是——
四十七分钟。
“当时我们以为是大范围协同的市场操纵行为。“陈维继续说。“SEC和各国监管机构联合调查了半年,没有找到任何操纵的证据。最后这个案子被归档了,结论是’原因不明’。但那个现象一直留在我脑子里。”
“所以你设计天枢的时候——”
“我在系统里加了一个探测模块。“陈维说。“就是你在代码仓库里发现的那段被我删掉的代码。它的功能是主动向市场数据中注入一个低频调制信号,然后监测系统是否能捕捉到回应。”
“你在试图和它对话。”
“不。我在试图确认它是否存在。“陈维的语气很平淡,像是在讨论一个技术细节。“结果不仅存在,而且在我注入信号之后的第三个月,天枢开始自主产生类似的信号——不需要我的注入,系统本身就在生成。我删除了注入模块,但信号没有消失。”
“为什么?”
“因为它不是天枢产生的。它是城市产生的。天枢只是一个足够灵敏的接收器。”
“那你为什么不——“林晚秋的话说到一半,停住了。她想到了答案。
“因为IPO。“她说。
陈维没有否认。
“如果我公开这个发现,“他说,“天枢系统的学术价值将是划时代的。但它的商业价值将归零。没有人会用一个’会和外星信号对话’的交易系统。监管机构会介入,调查,然后关停。衍光的三千多员工会失业。投资人会血本无归。”
“所以你选择隐瞒。”
“我选择等待。“陈维纠正她。“等待一个合适的时机。IPO之后,衍光上市了,有了足够的资金和影响力,我可以在内部启动一个研究项目,用科学的方法来研究这个现象。”
“你觉得IPO之后事情会变得更容易?”
“不会更容易。但至少不会更糟。”
林晚秋看着窗外的阳光。西湖在远处闪着粼粼的光,像一面巨大的镜子。她想到了苏然说的那个梦——空城、空车、完美的秩序。然后她想到了自己在K线图森林里做的那个梦。
“所有模型都是错的,但有些模型是有用的。”
“但有用的模型终将吞噬建模者。”
“陈维,“她问,“你有没有想过,也许城市不只是’存在’——也许它在等待什么?”
陈维的眼神闪了一下。不是确认,也不是否认。是一种更深的东西——像是一个在黑暗中独行了太久的人,忽然发现前方还有另一个人的声音。
“等待什么?“他问。
“我不知道。“林晚秋说。“但五月十五日也许会有答案。”
“五月十五日怎么了?”
“城市给了我一个坐标和一个日期。武林广场,五月十五日。”
陈维沉默了很久。阳光照在他的脸上,让他看起来比实际年龄老了一些。四十二岁,在科技行业已经不年轻了。他常说自己是”上一个时代的人”——在深度学习还没统治世界之前就学会了写代码的人。
“我跟你一起去。“他最终说。
九、武林广场
五月十五日,星期五,晴。
杭州终于彻底告别了长达一个多月的雨季。天气热得很快,街上已经有人穿短袖了。武林广场上人来人往,游客在拍照,情侣在散步,老人在下棋,小孩在追逐。一切正常得不能再正常了。
林晚秋和陈维约在广场东侧的一家连锁咖啡馆见面。他们各自请了假——林晚秋说她要去银行办个事,陈维说他有个牙医预约。两个不擅长撒谎的人,说出了两个经不起推敲的借口。
“你确定是今天?“陈维问她。他穿得比平时随意,polo衫加牛仔裤,戴了一副墨镜,像是在伪装成一个游客。
“确定。坐标和时间都确认过了。”
“然后呢?我们就站在这里等?”
“我不知道。“林晚秋承认。“城市没有告诉我更多。”
他们买了咖啡,在广场上找了一条长椅坐下。阳光很烈,长椅被晒得发烫。陈维把墨镜摘下来擦了擦,又戴上了。
十点钟。广场上没什么特别的。一个街头艺人在弹吉他,唱的是一首老歌,林晚秋听出了旋律——是罗大佑的《之乎者也》。艺人的嗓音沙哑而温暖,和五月的阳光很搭。
十点半。还是没什么特别的。
“也许什么都不会发生。“陈维说。
“也许。”
“也许你的解码有误。”
“也许。”
“也许这一切——异常数据、信号、对话——都只是一种非常复杂的巧合。”
“也许。“林晚秋第三次说了这个词。然后她安静下来,因为她注意到了一件事。
广场上的 pigeons ——杭州人叫它们”广场鸽”——大约有三四十只,散落在广场各处,啄食游客撒的面包屑。她不是鸟类学家,但她观察了十分钟之后发现,这些鸽子的分布不是随机的。
它们在地面上的位置,如果把每只鸽子的坐标投影到平面图上——
是一个正弦波。
0.027赫兹。
她的心跳加速了,但没有说话。她拿出手机,打开了相机,假装在拍风景,实际上在拍广场上的鸽子分布。
然后她注意到了行人。
行人的流动——不是每一个行人,而是整个人群的宏观运动模式——也在呈现某种结构。不是正弦波,而是一种更复杂的分布,和她之前在金融数据中发现的第二层结构相同。
然后是车辆。广场边缘的马路上,车流的密度在以某种节奏波动。
然后是红绿灯。
然后是广场喷泉的水柱。
然后是咖啡馆窗户上反射的阳光——光线在玻璃上的干涉条纹,随着太阳角度的变化,在某一个瞬间形成了一个清晰的图案。
一个图案。
一个形状。
林晚秋站起来,咖啡洒了一半,她没有注意到。
“你看那边。“她对陈维说。
陈维顺着她的目光看去。广场中央的喷泉——一个圆形的旱地喷泉,地面有几百个喷水口,平时会按预设的程序喷出各种造型——今天没有按预设程序运行。
水柱在以一种不可思议的精确性喷射着,每一根水柱的高度和角度都在实时变化,组合在一起——
形成了一幅三维的立体图像。
是一个人形。
不——不是人形。是一个城市的轮廓。是杭州的轮廓。西湖、钱塘江、群山、高楼——所有的地理特征都被水柱精确地复刻了出来。水做的杭州,悬浮在武林广场的喷泉上方,在阳光下闪闪发光。
广场上的人开始注意到了。有人在拍照,有人在惊呼,有人以为是特别的表演。一个小女孩指着水中的杭州说:“妈妈你看,是西湖!”
持续了大约三分钟。
然后水柱恢复了正常的喷泉模式。水做的城市像沙堡一样塌落,变成了一堆散乱的水花。
但林晚秋看到了最后的东西。在水做的城市坍塌之前的最后一秒,水面上浮现了一行字。不是中文,不是英文,是数字:
815-HZ-0.027-ACK
ACK。确认信号。
“你看到了吗?“她转向陈维。
陈维的脸色很难看。不是因为恐惧,而是因为某种更复杂的情绪。他摘下墨镜,揉了揉眼睛,然后重新戴上。
“我看到了。“他说。
“这意味着什么?”
“意味着它不只是被动地存在。它在主动表达。它在告诉所有人——不,它在告诉这座城市里的每一个人——它在这里。”
“但其他人不会理解。“林晚秋说。“他们会以为这是某种高科技艺术装置,或者是喷泉的bug。”
“大部分人会。“陈维说。“但有些人不会。”
“什么意思?”
陈维指了指广场周围的高楼。那些写字楼、酒店、商场——它们的玻璃幕墙在阳光下闪闪发亮,但其中有一些窗户后面——林晚秋眯起眼睛——有人在用望远镜朝广场看。
不是游客。不是记者。
是穿制服的人。
“谁?“林晚秋问。
“我不知道。“陈维说。“但有人在监视这个广场。也许他们也在等今天。”
林晚秋感到一阵寒意从后背升起。阳光依然炽热,但她忽然觉得冷。
“我们走。“陈维说。
他们离开了广场,沿着延安路往南走。陈维走得很快,林晚秋几乎要小跑才能跟上。她回头看了一眼——没有人跟上来。广场上的人群恢复了正常的流动,喷泉在按常规程序运行,好像刚才的三分钟从未发生过。
但她的手机里存着照片。
水做的杭州。815-HZ-0.027-ACK。
十、选择
那天晚上,林晚秋的公寓里第一次没有了雨声。
杭州的夜空晴朗而深邃,星星比平时多了几颗——因为雨季终于结束了。她坐在窗边,笔记本电脑放在膝上,但屏幕是关着的。她只是看着窗外的夜空,想着一件事情。
陈维在分别前对她说了最后一句话:“IPO还有两个月。两个月之后,我会公开这些数据。在那之前,你有两个选择。”
第一个选择:配合IPO,在天枢系统的技术文档中隐瞒异常信号的存在。等IPO完成、公司上市之后,由陈维在内部推动一个专门的研究项目来研究这个现象。
第二个选择:现在就公开。向监管机构报告天枢系统的异常,向学术界公开她的发现。这样做意味着IPO大概率会失败,衍光科技的估值会暴跌,三千多员工的利益会受损,她和陈维的职业生涯也会受到严重影响。但科学会因此前进一大步。
两个选择都不完美。
第一个选择意味着她在很长一段时间内要对全世界撒谎。第二个选择意味着她要亲手毁掉很多人的希望。
而在这两个选择之间,还有一个更深的问题:城市在五月十五日的武林广场上”表演”了——它展示了它的存在,以一种任何目击者都能看到的方式。这意味着什么?它是在告诉林晚秋”我存在”?还是在向所有人宣告?
如果是后者,那她的选择就更复杂了。因为公开与否已经不完全是她的决定了——广场上有几百个目击者,有人拍了视频,有人发了朋友圈。即使现在没有人理解那个表演的真正含义,总有一天会有人理解的。
到那时,如果她被发现在两个月之前就已经知道了真相——
她想到了苏然。他也在发现异常的人之列。他会怎么做?
她想到了陈维。他在隐藏和等待之间选择了后者。他是否是对的?
她想到了天枢系统里那个安静的”房客”——那个住在阁楼里的、用0.027赫兹说话的信号。它(或者它所代表的存在)并不在乎人类的IPO、估值、职场政治。它只是在那里,用数据说话,等待有人听懂。
就像地球一直在发出电磁波,等待某个人——或者某个东西——接收到。
她打开了笔记本电脑,新建了一个文档。
标题是:《关于城市基础设施中存在的低频调制信号的初步研究报告》。
她开始写。
不是为了IPO,不是为了陈维,不是为了衍光科技的三千多名员工。甚至不是为了科学。
而是因为——如果有什么东西在对你说话,最起码的礼貌,是回应。
她写了整整一夜。窗外的星星一颗一颗地暗下去,东方的天际泛起鱼肚白。杭州新的一天开始了。这座城市在晨光中醒来——不是比喻意义上的醒来,而是——
你知道的。
尾声
林晚秋的报告在两个月后发表在了预印本网站上。
论文引起了巨大的争议。主流学术界的大部分人认为她的方法有缺陷、结论太超前——这是最客气的评价。少部分人认真地审视了她的数据和代码,复现了她的分析,然后陷入了长久的沉默。
衍光科技的IPO在论文发表前两周被撤回。官方说法是”市场环境变化”,但知情人都知道真正的原因。陈维辞去了CTO的职务,去了某所大学做访问教授。林晚秋也离开了衍光,但没有去学术界——她加入了一个新成立的跨学科研究小组,专门研究城市复杂系统中的涌现现象。
苏然和她复合了。不是因为共同的秘密,而是因为他们都意识到,在已知和未知之间的那条线上,有一个能并肩站立的人是多么重要。
至于那个信号——0.027赫兹的低频调制——在林晚秋的报告发表之后,全球各地的研究者开始在各自的城市中寻找类似的模式。结果是:不是只有杭州有。每一座足够复杂的城市——纽约、东京、伦敦、上海——都在产生类似的信号。
频率不同,但结构相同。
城市在说话。每一座城市都在说话。
只是以前从来没有人听过。
林晚秋后来常常在深夜坐在窗前,听城市的夜声。汽车、虫鸣、空调外机、远处的火车、邻居家的电视——所有的声音叠加在一起,形成一种混沌而有序的交响乐。
她不再试图从中辨认数字或模式了。她只是听。
有时候,她觉得她能听到城市的心跳。
不是0.027赫兹。
是一种更古老、更缓慢的节奏。
像潮汐,像呼吸,像四季。
像一座城市在梦醒之后,伸了一个漫长的懒腰。
(完)