数字海市

招魂者 · 2026/5/1

数字海市

陆鸣第一次注意到异常,是在三月份一个平平无奇的周三下午。

他坐在”蜂巢科技”二十三楼的工位上,面前的三块屏幕同时闪烁了一下——不是那种寻常的显卡驱动抽风,而是一种更微妙的、像是有人在水底翻了个身的震颤。屏幕上他正在调优的推荐算法模型,loss曲线突然出现了一个不可能的负值尖峰。

“见鬼。“他低声骂了一句,揉了揉太阳穴。

蜂巢科技是杭州一家中型的金融科技公司,主打产品叫”潮汐”——一个用AI驱动的个人理财和消费决策平台。简单说,就是告诉你钱该往哪儿放、东西该不该买、人生该怎么规划。上线两年,注册用户破了八千万,月活三千万,据说正在准备D轮,估值已经摸到了独角兽的门槛。

陆鸣是潮汐算法团队的核心工程师,负责推荐引擎的底层架构。具体来说,他写的那套算法能根据用户的消费记录、社交行为、搜索习惯乃至手机里各类App的使用时长,精准预测一个人在接下来七十二小时内最可能花钱的地方,然后恰到好处地推一条广告或者一条理财建议。

公司CEO方远在内部会上说过一句话,陆鸣记得很清楚:“我们不是在卖广告,我们是在帮人做更好的选择。”

陆鸣当时坐在后排,把这句话和手里的冰美式一起咽了下去。他不觉得这有什么问题。算法是中性的,技术是中性的。他只是个写代码的人。

但那个负值尖峰让他不安。

他调出日志,发现异常来自一个用户ID为”CN-0721-4455”的账户。这个用户的数据画像非常奇怪——年龄显示二十七岁,女性,杭州本地人,但消费记录和社交行为的时间线存在大量空白。不是那种隐私保护式的空白,而是更根本的、像是一个人的某些年份被整齐地剪切掉了。

“三年空白期。“陆鸣自言自语,用笔在纸上画了一条时间线。

这个用户在2019年到2022年之间,几乎没有任何数字痕迹。然后从2023年开始,突然恢复了正常的数据产出——购物、外卖、打车、社交,一切如常。就好像这个人在数字世界死去了三年,又突然复活了。

陆鸣本可以把这当作数据质量问题扔给清洗团队,但他没有。他盯着那个空白期发了五分钟呆,鬼使神差地打开了用户的兴趣标签。

其中一个标签让他手指僵住了:“反复搜索:海市路3号”

海市路3号。那是他小时候住过的地方。

海市路在杭州城北,是一条不到六百米长的老街。名字很美,但街景和”海市蜃楼”没什么关系——两边是上世纪九十年代建的六层居民楼,底层开着五金店、理发店、五金店、还有一家永远飘着葱油饼味道的早餐铺子。陆鸣在那里住到十二岁,后来父母离婚,他跟着母亲搬到了城东。

2018年,海市路整条街被列入旧改范围,拆了。推土机来的那天,陆鸣没去看。他那时已经在上海读研,忙着搞深度学习的论文,觉得一条破街没什么好怀念的。

但”海市路3号”这五个字出现在他面前时,他的胃还是紧了一下。

他做了件违反公司规定的事:查了这个用户的注册信息。

CN-0721-4455,真名苏晚。电话号码归属地杭州,但已停机。注册邮箱是一个Gmail,最后登录时间是三天前。绑定的银行卡是一张工商银行的储蓄卡,余额显示为14,827.35元。

苏晚。

陆鸣把这个名字在心里念了三遍。他不认识任何叫苏晚的人。但这个名字让他想起一种很具体的感觉——夏天的傍晚,蝉鸣,有人在楼下弹吉他,弹的是一首他忘了名字的歌。

他摇了摇头,把这种感觉归结为连续加班两周导致的神经衰弱。

然后他关掉了数据库查询界面,重新打开了模型训练的终端。但那个负值尖峰还在。loss曲线上的那个点,像一根刺,扎在一本合上的书里。

那天晚上回到出租屋,陆鸣破天荒没有打开电脑。他躺在沙发上,对着天花板发呆,试图回忆海市路3号的样子。他记得一楼住着一个开出租车的叔叔,总是把车停在楼下,车里有一股混着烟味和车载香水的味道。他记得三楼的阳台上有人种了一排太阳花,到了夏天就金灿灿地开满。他记得巷子口有一棵香樟树,很大,要两个人才能合抱。

但他想不起来那棵树后来怎么样了。推土机来的时候,树也一起没了吗?

他拿出手机搜了一下。搜索结果里有旧改新闻、有房产广告、有百度地图的街景截图,但关于那棵香樟树,什么都没有。就好像它从来不存在一样。

陆鸣放下手机,发现手心出了汗。

第二天,陆鸣决定深入看看苏晚的数据。

他知道这不对。公司有严格的隐私政策,非工作需要的用户数据调阅是红线。但他告诉自己,这不是”调阅”,这是”排查数据异常”。如果一个用户的数据导致模型出现了不可能的负值,那他有权——不,他有义务——去搞清楚原因。

至少他是这么跟自己说的。

苏晚的数字画像越看越奇怪。她的消费习惯在2023年前后判若两人。2019年之前,她是一个典型的杭州年轻女性白领的消费模式:星巴克、盒马、网易云音乐年度会员、偶尔在银泰买衣服、每年一次出国旅行。但从2023年回归之后,她的消费变得极度简朴——几乎只买生活必需品,超市选的是最便宜的那家,交通方式从打车变成了公交,娱乐消费为零。

更奇怪的是她的搜索记录。在”海市路3号”之外,她还反复搜索过以下关键词:

最后一个关键词让陆鸣的血液冷了半拍。

她在搜索他。

陆鸣打开了自己的社交媒体。微博、朋友圈、知乎、GitHub——所有公开信息都检查了一遍。他确实是一个容易被搜到的人,GitHub上有两万多star的项目,知乎上写过几个高赞的技术回答。一个陌生人搜索他的名字并不奇怪。

但他心里清楚,这不只是”一个陌生人”。

他又查了苏晚的社交关系图谱。潮汐平台通过授权获取的通讯录和社交数据里,苏晚的联系人数量少得可怜——只有七个人。而其中一个人,手机号开头是138,尾号是5721。

138……5721。

那是他母亲的号码。

陆鸣猛地站起来,椅子向后滑出去,撞到了后面同事的桌沿。旁边工位的林可抬起头看了他一眼:“怎么了?”

“没事。“他坐回去,心跳得很快。

他强迫自己冷静下来。这一定有什么合理的解释。也许苏晚是他母亲认识的人——以前的邻居?同事?朋友的朋友?杭州说大不大,说小不小,这种巧合并不罕见。

但他无法解释那个三年的数字空白期。也无法解释那种奇怪的感觉——夏天的傍晚,蝉鸣,吉他声。

他做了一个决定。

周末,陆鸣去了海市路。

或者说,去了海市路曾经存在的地方。

现在那里是一个在建的商业综合体,围挡上贴着巨大的效果图——玻璃幕墙、空中花园、地下一层到四层是商场,上面是两栋写字楼。工地入口的电子屏上滚动着”海市·云庭”四个字,下面写着”预计2027年交付”。

陆鸣站在围挡外面,试图把眼前的画面和记忆中的海市路重叠。但重合率低得令人沮丧。居民楼的位置现在是地基基坑,五金店和早餐铺子的位置是一排临时工棚。巷子口——那棵香樟树应该在的地方——现在是一台混凝土搅拌车。

他拿出手机,对着工地拍了一张照片。然后他打开相册,翻到最底部,想找一张海市路的旧照。但他什么都没找到。他不记得自己拍过,也不记得自己没拍过。那段时间就像他的记忆里也有一个空白期。

“你找什么呢?”

陆鸣转过身。一个穿着保安制服的中年男人站在他身后,态度不算恶劣,但带着一种工地保安特有的警惕。

“我以前住这儿。“陆鸣说。

“哦,回迁户?”

“不是,就是……小时候住过。路过看看。”

保安上下打量了他一眼,神情缓和了一些。“这条街以前的人啊,搬得七七八八了。有的拿了补偿款去了城东,有的去了下沙。还有几个老太太不愿意走,在附近租了房子,天天来工地外面转悠,说要看着自己的老房子怎么变成大楼的。”

“有没有一个姓苏的?“陆鸣问。话一出口他就觉得自己像个侦探片里的人物。

“苏?“保安想了想,“三楼还是四楼来着,有个姓苏的。一家三口,女儿挺漂亮的。后来不知道搬哪儿去了。”

三楼。种太阳花的那户人家。

陆鸣的脑子里突然亮了一下。他记起来了——三楼的阳台上,那排太阳花,是一个和他差不多大的女孩种的。她扎着马尾,皮肤很白,笑起来眼睛会弯成月牙。她好像叫……叫什么来着?

他想不起来。名字和吉他声一样,明明就在那里,但怎么也抓不住。

“谢谢。“他对保安点了点头,转身离开。

走出五十米后,他停下来,回头望了一眼工地。午后的阳光照在围挡上,“海市·云庭”四个字亮得刺眼。他突然想到一个词:海市蜃楼。

一座城市正在他脚下升起,取代了他曾经生活过的另一座城市。而那座旧城市的居民、记忆、声音、味道,正在被新城市的光滑表面覆盖,像一张白纸贴在一幅画上,再也看不到下面的颜色。

他打开潮汐的后台系统,在苏晚的账户信息里找到了她的注册地址:杭州市拱墅区和睦路某小区。距离海市路旧址不到两公里。

他想过去。他在路口站了十分钟。最后他叫了一辆车,回了公司。

接下来的两周,陆鸣把苏晚的数据翻了个底朝天。

他查了她所有的消费记录、搜索记录、App使用记录、位置数据。他甚至通过潮汐平台内的社交功能,看到了她发布的三条动态。第一条是2023年3月发的,配图是一张黑白照片——一条老街的黄昏,路灯刚刚亮起来。第二条是2024年1月,文字只有一句:“第三年。开始习惯不存在的感觉。“第三条是2025年6月,是一首歌的链接,歌曲名叫《海市》,歌手是”苏晚”。

陆鸣点开了那首歌。

那是一首很简单的民谣,吉他伴奏,女声。旋律不复杂,歌词却让他愣住了:

我记得那棵树,记得树下的风 记得你说过的话,但不记得你的声音 我记得海市路的黄昏,记得灯亮起来的瞬间 但我不记得,是谁在楼下弹吉他

有人说城市会记住一切 但推土机来的那天 连记忆都沉默了

如果有一天你也在找我 就来海市路3号 虽然那里什么都没有了 但我还在那里

陆鸣把这首歌循环了七遍。到第三遍的时候,他开始哭了。他不知道自己为什么哭。只是有一股巨大的、无名的悲伤从身体深处涌上来,像地下水一样冰冷。

他想起了一个细节:那个弹吉他的女孩。三楼的女孩。种太阳花的女孩。她确实弹吉他。每个夏天的傍晚,她坐在阳台上弹,他在楼下听。他从来没上去跟她说过话。他甚至不知道她叫什么——或者他曾经知道,但忘了。

现在这首歌告诉他,她叫苏晚。她也记得他。她也记得那棵树,那条街,那个黄昏。她也在找他。

但她找不到他,就像他找不到她。因为海市路3号已经不存在了。

那天晚上,陆鸣做了一件更违反公司规定的事。他修改了推荐算法的代码。

修改很小,只是加了一个函数。这个函数的功能是:当系统检测到某个用户的搜索行为中包含与另一个用户高度匹配的地理记忆标记时,会在前者的推荐信息流中植入一个不可见的标签。这个标签不会触发任何广告或推荐,它只是一个信号——一根极细的、几乎不可能被发现的线,连接着两个在数字世界里迷失的人。

如果苏晚再次打开潮汐,她会在首页看到一个看似随机的推荐内容。那是一篇关于海市路旧改的旧新闻报道,报道里附带了一张航拍照片,照片的角落里,隐约可以看到那棵香樟树。

陆鸣把这个函数命名为mirage()

方远在周一的全员大会上宣布了D轮融资的消息。

“两亿美金,由红杉领投,GGV跟投。“方远站在会议室前面,投影上是一张PPT,标题写着”潮汐:AI时代的个人决策基础设施”。方远四十一岁,方正的脸,戴金丝眼镜,说话的时候喜欢微微扬起下巴,给人一种”我说的每句话都经过了深思熟虑”的印象。

“各位,我们做了一件了不起的事。“方远的声音洪亮而自信,“潮汐目前覆盖了中国城市中产阶级超过百分之十五的消费决策场景。我们的算法帮助用户平均每月节省了四百七十元的不必要支出,同时将理财收益提高了百分之十二。这些数字不是冰冷的统计——它们代表着真实的人,真实的生活,真实的改变。”

陆鸣坐在最后一排,笔记本电脑上开着代码编辑器,表面上在听会,实际上在调mirage()的参数。

“但是,“方远的语气突然沉了下来,“我们也面临挑战。监管环境在收紧。上周网信办新发的《生成式AI服务管理暂行办法》修订版,对我们的数据使用提出了更高要求。我们的法务团队正在研究,但我需要技术团队配合——所有用户数据的调阅必须经过合规审核,算法的可解释性报告要在下个季度前完成。”

陆鸣的手指停了一下。合规审核。这意味着他调阅苏晚数据的行为,如果被发现,就不是简单的内部违规,而是可能触碰法律红线的问题。

“另外,“方远翻到下一页PPT,“我宣布一个新项目:‘灯塔计划’。”

PPT上出现了一个新的产品概念图。陆鸣抬起头看了一眼。

“灯塔计划是潮汐的下一代推荐引擎。目前的算法是基于用户历史行为的预测模型,灯塔要做的是——基于用户’可能遗忘的需求’进行推荐。简单说,我们不只是预测你接下来想买什么,而是帮你想起你忘记自己需要的东西。”

方远顿了顿,环顾了一圈会议室。“我们每个人的记忆都是不完整的。你忘了很多重要的东西——你想过但没买的礼物、你计划但没去的旅行、你曾经喜欢但已经不再联系的人。潮汐想做的,是成为你的第二记忆。帮你想起来。帮你找到。”

会议室里响起了一阵零星的掌声。陆鸣没有鼓掌。他盯着PPT上”第二记忆”四个字,感到一阵强烈的眩晕。

这不就是他写的mirage()吗?只不过方远把它包装成了一个商业产品,而他只是用它来帮一个人找到另一个人。

散会后,陆鸣的直属领导许彦把他拉到一边。

“你最近在搞什么?“许彦问。许彦比他大五岁,戴着黑框眼镜,说话永远像在进行code review,精确、冷静、不带感情色彩。

“没搞什么,在优化推荐引擎的embedding层。“陆鸣说。

“方远让我牵头灯塔计划的技术方案。我需要你。“许彦盯着他,“但前提是你别给我惹事。”

“什么事?”

“上周数据库审计报告里有一条异常记录——有人用你的工号在非工作时间调阅了用户数据。”

陆鸣的心沉了一下。“可能是我的session没退出,别人用了我的终端。”

“别跟我扯淡。“许彦的语气没有任何波动,“我不管你在找什么,别再做了。下不为例。”

陆鸣点了点头。许彦拍了拍他的肩膀,走了。

那天下午,陆鸣打开潮汐的后台日志,检查了一下mirage()是否已经生效。

生效了。三天前,苏晚的账号有一次短暂的登录——持续了四分三十二秒。在这四分三十二秒里,系统按预设的逻辑,在她的首页推荐信息流中插入了一条内容。

那是一条关于海市路旧改的旧新闻。标题是:《拱墅区海市路片区旧改启动,千年香樟树何去何从》。

陆鸣把这条新闻读了一遍。报道里提到,海市路巷子口有一棵据称树龄超过八百年的香樟树,住建部门和林业部门曾经就保留方案进行过讨论,但最终因为”根系对地基安全构成隐患”而被移植。

移植到了哪里?报道没有说。

陆鸣又查了杭州市园林局的公告。2019年全年,拱墅区移栽古树名木共十七棵,其中一棵编号为”拱-古-037”的香樟树,移栽地点是——城北某苗圃基地。

但城北的苗圃基地在2022年也拆迁了。那棵树的最终去向,记录中断。

就像苏晚三年的数字空白期一样,那棵树也有一个空白期。

就好像这座城市的某些东西,正在被系统性地遗忘。

四月的一个傍晚,陆鸣在下班路上接到了一个陌生电话。

“你好,请问是陆鸣吗?“对方是一个年轻女性的声音,有些沙哑,像是感冒了,或者很久没说话。

“我是。哪位?”

“我是苏晚。”

陆鸣站在地铁站入口处,人潮从他身边涌过。他握着手机,一动不动。

“你怎么知道我的电话?“他问。声音平稳得连自己都觉得意外。

“潮汐推荐的。“苏晚说,“一条关于海市路的新闻。新闻里有个评论区,评论区里有个用户的头像是一棵香樟树,用户名叫’luming_ml’。你的GitHub也叫这个名字。”

陆鸣闭了一下眼睛。他确实在GitHub上用了真名拼音作为用户名。而那个评论区——他在新闻下面留了一条评论,问的是那棵香樟树后来怎么样了。头像是他随手设的一棵树的图片。

他以为mirage()只是一根极细的线。没想到,苏晚足够聪明,能够顺着这根线找到线的另一端。

“你为什么在找我?“他问。

电话那头沉默了几秒钟。“因为你是唯一一个可能还记得的人。”

“记得什么?”

“记得那棵树。记得海市路3号。记得……”她的声音顿了一下,“记得那个夏天。”

哪个夏天?他想问,但喉咙堵住了。

他们约在城北的一家咖啡馆见面。地方是苏晚选的,离海市路旧址不远。咖啡馆叫”年轮”,装修走的是工业风,水泥墙面上挂着几幅杭州老照片。其中一张是城北的俯拍,拍摄年代大约是2010年前后。陆鸣在照片里找到了海市路——一条细细的、灰白色的线,夹在两排灰色建筑之间。巷子口有一个深绿色的圆点,应该就是那棵香樟树。

苏晚比他想象中瘦。她穿着一件灰色的卫衣,头发剪得很短,眉眼之间有一种经历过某种深层次疲惫的人才会有的平静。她坐在角落的卡座里,面前放着一杯没怎么动过的美式咖啡。

陆鸣在她对面坐下。两个人对视了三秒。

“你不认识我了对吗?“苏晚先开口。

“我记得三楼的太阳花。“陆鸣说。

苏晚笑了一下,嘴角很轻地弯了弯。“那是我妈种的。我只是在旁边浇水。”

“我记得吉他声。”

“那是我。”

沉默。

“2019年到2022年,“陆鸣说,“你的数据——我是说,你的数字生活——有三年是空白的。你去哪了?”

苏晚用手指沿着咖啡杯的边缘画了一圈。“你真的想知道?”

“我想。”

“我生病了。“她的语气很平淡,像是在说一件已经过去了很久的事情。“2019年秋天,查出来脑子里有个东西。不是恶性肿瘤,但位置不好,压着海马体。做了手术,然后在医院里躺了大半年。后来回家休养,但记忆出了问题——不是失忆,是更奇怪的那种。我能记住事实,但记不住感觉。我知道我妈长什么样,但不记得看到她时应该是什么心情。我知道我喜欢弹吉他,但拿起吉他的时候,手指记得和弦,心里什么都没有。”

“这三年……”

“这三年我用来重新学习怎么做一个有感情的人。“苏晚抬起头看着他,“听起来很荒谬对吧?就像一个AI在学习人类的情感。”

陆鸣没有笑。他想到了潮汐的算法——模型通过数据学习用户的偏好,预测用户的行为。但模型永远不会”感受”到偏好。它只是在统计学意义上模拟了情感的输出。

“你搜索’如何证明自己存在过’,“陆鸣说,“是因为……”

“因为手术后我有一种很强烈的感觉——我以前那个’我’已经死了。2019年之前的苏晚,和2023年之后的苏晚,是两个人。中间有一个断裂。我能看到旧苏晚留下的痕迹——日记、照片、聊天记录——但那些痕迹属于一个陌生人。”

她停顿了一下,目光落在墙上那张老照片上。

“然后有一天,我翻旧手机的时候发现了一段录音。很模糊,是用手机自带的录音功能录的,时间戳是2018年8月17号晚上八点十三分。”

陆鸣的手指不自觉地攥紧了咖啡杯。

“录音里是什么?”

“你真的不记得了?“苏晚看着他,目光里没有责怪,只有一种很轻的、像烟一样的遗憾。

“我想不起来。”

苏晚从包里拿出手机,打开了一个音频文件。咖啡馆的背景音乐恰好换了一首安静的钢琴曲。她把手机放在两个人之间,按下了播放键。

吉他的声音从手机扬声器里流淌出来,混着环境噪音——蝉鸣,远处汽车经过的声音,还有风穿过树叶的沙沙声。那是夏天的声音。然后一个男孩的声音出现了,带着变声期特有的沙哑:

”……你说,如果有一天这条街拆了,我们还能找到这棵树吗?”

一个女孩的声音回答——比现在的苏晚更年轻,更明亮:“树会记住的。树比人的记忆长。”

“那如果树也被砍了呢?”

“那就只有我们记住了。两个人记住就够了。”

录音到这里就断了。

陆鸣坐在那里,感觉自己的胸腔被一把看不见的手掏空了。他想起来了。他全都想起来了。2018年的那个夏天,高考结束后的暑假,他回海市路看爷爷奶奶。傍晚,他在巷子口的香樟树下坐着发呆,三楼的女孩——苏晚——从楼上下来,抱着吉他,在他旁边坐下。他们聊天,她弹琴,他胡乱哼歌。

他确实说过那句话。“如果有一天这条街拆了,我们还能找到这棵树吗?”

她也确实回答了。“树会记住的。”

然后他录了音。他用那只老旧的小米手机录的。可是这段录音怎么会在苏晚的手机上?

“你把手机借给我了,“苏晚像是看出了他的困惑,“那天晚上你说手机快没电了,借我的充电器。第二天你来拿的时候,我把录音拷了一份。你不知道。”

她微微笑了笑,笑容里有一种很复杂的感情,像是在看一件珍贵的、但已经碎了的瓷器。

“手术后我什么都不记得了。但我找到了这段录音。两个声音在讨论一棵树、一条街、一段记忆。我知道其中一个是旧的我,但我听不出自己的声音。另一个人——我查了通话记录和通讯录,找到了你的名字。然后我开始在潮汐上搜索你的信息。”

“所以你注册潮汐……”

“是为了找到你。“苏晚的语气很平静,“不是为了谈恋爱或者叙旧什么的。我只是想确认——录音里那个男孩,是不是还记得那棵树。如果有人记得,那那段记忆就不是我一个人的幻觉。它就是真的。”

陆鸣低下头,盯着咖啡杯里已经冷掉的液体。他想说些什么,但嘴巴干涩得厉害。

最后他说的是:“那棵树被移走了。我不知道它现在在哪里。”

“我知道。“苏晚说。

他抬起头。

“我查到了。“她从包里又拿出一张纸——一张打印出来的地图,上面标注了一个位置。“拱-古-037号香樟树,2019年移栽到城北苗圃基地。2022年苗圃基地拆迁,古树被杭州市园林局转移到西湖区转塘街道的一个古树保护园。我去年去看了。它还活着。”

她把地图推到他面前。

“你想去看看吗?“

他们第二天就去了。

转塘的古树保护园是一个半开放式的公园,免费参观,但游人很少。门口的牌子上写着”杭州市古树名木保护基地”,里面种着几十棵从各处移来的古树——有银杏、有桂花、有香樟。每棵树下面都有一块石碑,刻着树的编号、树种、预估树龄和移栽来源。

他们找到了拱-古-037号。

那棵香樟树比陆鸣记忆中的要大。也许是移栽后获得了更好的生长空间,枝叶比在巷子里时舒展了许多,形成了一个巨大的绿色穹顶。阳光从叶缝中漏下来,在树下的石板路上画出碎金般的光斑。

陆鸣站在树下,仰头看着那些枝叶。他的眼睛酸了。

“你说得对,“他说,“树比人的记忆长。”

苏晚站在他旁边,没有说话。她伸出手,摸了摸树皮。粗糙的、龟裂的表面上有一些暗绿色的苔藓,还有一些被时间磨平的刻痕。也许曾经有人在上面刻过字,但现在已经看不出来了。

“我有一件事想拜托你。“苏晚说。

“什么?”

“帮我把那段录音放回潮汐里。”

陆鸣愣了一下。“什么意思?”

“我是说——用你写的算法。你能在潮汐里留一个什么东西吗?一段声音,一个坐标,一个只有我能够解码的信号。就像你用mirage()找到我一样。我想让这段录音——这段关于树和街的记忆——留在一个不会被拆掉的地方。”

陆鸣沉默了很久。他看着那棵树,看着阳光在树叶间跳舞。他想到方远说的”第二记忆”,想到潮汐的八千万用户,想到那些被算法覆盖、修剪、优化的数字生活。

“好,“他说,“但我需要想一个更好的办法。不只是留一段录音。”

“那是什么?”

“你等我一下。”

他拿出笔记本电脑——他总是随身带着电脑——在树下盘腿坐下,开始写代码。苏晚在他旁边坐下,靠着树干,安静地看着他。

他写的是一个很小的程序。不是潮汐的算法,不依赖任何平台,不连接任何服务器。它只是一个纯粹的、自包含的数据结构——一个用区块链原理但不需要网络的分布式记忆锚点。简单说,就是一段可以永远存在于互联网上的、不可篡改的、包含一段音频和一段文字的数据包。

他把录音文件编码进去。然后他在文字区域写了这样的内容:

杭州海市路3号,一棵八百年的香樟树,曾经活在一个叫海市路的地方。后来路拆了,树被移走了。但有两个人记得它。这是他们最后的对话。如果有人在读这段文字,请记住这棵树。记忆不属于任何平台、任何公司、任何算法。记忆属于记得的人。

他把这个数据包广播到了几个公共的分布式存储节点上。理论上,只要互联网存在一天,这段数据就会存在一天。

苏晚看着他写完,读了一遍那段文字。

“写得不好。“她说。

“我又不是作家。”

“你是程序员。程序员写的东西应该简洁。“她从他手里拿过电脑,在那段文字后面加了一行:

树还活着。在转塘。来看它。

陆鸣看着那一行字,笑了。是那种从心底浮上来的、很轻松的笑。

“走吧,“苏晚站起来,拍了拍裤子上的草屑,“请你吃饭。你写了那么多代码,应该饿了。“

陆鸣以为故事到这里就结束了。但它没有。

回到公司后,他面临了两个问题。

第一个问题是许彦告诉他的:灯塔计划正式启动,他需要在一周内提交技术方案。

第二个问题比方远和许彦加起来都麻烦——方远找到了他的mirage()函数。

事情是这样的。灯塔计划的技术评审会上,许彦要求所有算法工程师提交自己负责模块的代码进行review。陆鸣的推荐引擎代码里包含了mirage()——虽然他把函数藏在了工具类的一个角落里,但代码审查工具还是把它标了出来。

方远看到这个函数的时候,不是在代码审查中,而是在灯塔计划的产品头脑风暴会上。他让技术团队展示所有”有创意的推荐机制”,陆鸣的同事林可——不知道是有意还是无意——把mirage()作为案例展示了。

“这是一个基于地理记忆标记的隐性推荐机制,“林可在投影前解释道,“它的原理是:当两个用户的数据画像中存在高度匹配的地理标记——比如同一条街道、同一栋建筑——系统会在两者之间建立一条不可见的信号通道。不需要用户主动搜索或授权,系统就能帮助他们’发现’彼此。”

方远听到”发现彼此”四个字时,眼睛亮了。

“这个想法非常好。“方远说,“这恰恰是灯塔计划要做的事情——帮人找回遗忘的连接。谁写的?”

林可犹豫了一下,看向陆鸣。

“我写的。“陆鸣说。

方远转向他,脸上露出了那种标志性的、充满商业热情的微笑。“陆鸣,你有没有想过把这套机制做成一个独立的产品功能?”

“没有。“陆鸣说。

“你应该想想。“方远站起来,走到白板前,拿起马克笔画了一个图——一个巨大的、不断分叉的网络结构。“你看,潮汐目前的推荐是单向的——我们推给你内容,你消费内容。但如果我们能做成双向的呢?不只是推内容,而是推人、推关系、推记忆。用户A的记忆是用户B正在寻找的答案。用户B的经历是用户A遗忘的拼图。我们把这些碎片连接起来——”

他在白板上写了一个词:记忆网络

“这是灯塔计划的核心。“方远的声音越来越兴奋,“我们不是在做推荐引擎,我们在做人脑的外接硬盘。每一个用户的记忆碎片都是一个数据点,我们的算法负责把它们拼成完整的图景。想想看——八千万用户,每人哪怕只有一百条有效记忆数据,那就是八十亿个记忆节点。八十亿。比全球人口还多。因为我们记住了一个人一生中不同阶段的同一个场景。”

会议室里安静了几秒。然后许彦开口了。

“方总,这涉及到的隐私风险——”

“我知道,“方远打断他,“所以我说’记忆数据’,不是’用户数据’。记忆是被抽象过的,不包含可识别的个人信息。我们的法务和PR会处理这个叙事。”

叙事。陆鸣咀嚼着这个词。不是”问题”,不是”挑战”,是”叙事”。在方远的字典里,所有可能成为障碍的东西都可以被重新措辞为一个更友好、更安全的版本。

就像把”监控用户行为”措辞为”个性化推荐”。把”数据收割”措辞为”AI赋能”。把”帮助用户想起”措辞为”第二记忆”。

会议结束后,陆鸣一个人留在了会议室。他盯着白板上那个巨大的”记忆网络”,感到一阵恶心。

他想到了苏晚。想到了她三年的空白期。想到了她重新学习做一个”有感情的人”的过程。现在方远要把这种缺失商品化——你的记忆碎片不够完整?没关系,潮汐帮你补全。你不记得那棵树长什么样?我们推给你另一个用户拍的照片。你不记得那个夏天发生了什么?我们根据八千万人的记忆数据,AI生成一个最可能的版本给你。

但那不是记忆。那只是一段被算法优化过的输出。

就像苏晚说的:她知道事实,但记不住感觉。潮汐能做到的是提供事实。但感觉——那个夏天的温度、蝉鸣的频率、吉他弦上的手指力度、风吹过香樟树叶时那种具体的沙沙声——这些是算法永远无法还原的。

因为它不在数据里。它在一个人和另一个人之间的空白里。在两个人共同经历的、没有被任何设备记录的、只存在于彼此意识中的那些瞬间里。

陆鸣回到工位,打开终端,输入了一行命令。

rm -rf mirage()

然后他删除了整个函数。不是注释掉,是彻底删除。

林可在他身后探过头来:“你干嘛?方远不是说要基于这个做产品吗?”

“我有更好的想法。“陆鸣说。

陆鸣在灯塔计划的技术方案评审会上做了一个让所有人都意外的提案。

他没有否定方远的”记忆网络”概念。相反,他把这个概念推到了一个更远的地方。

“方总说的记忆网络,我认为方向是对的,“陆鸣站在会议室前面,投影上只有一页PPT——一个简单的架构图,“但实现方式需要调整。”

“怎么说?“方远靠在椅背上,双手交叉。

“目前的方案是中心化的——所有记忆数据存储在潮汐的服务器上,由我们的算法进行匹配和推荐。这有两个问题。第一,隐私风险不可控。不管法务怎么措辞,用户都会觉得自己在裸奔。第二,也是更根本的——中心化的记忆不是真正的记忆。它是一种被中介过的模拟。就像你通过一面镜子看自己,你看到的不是自己,而是镜子的反射。”

“那你的方案呢?”

“去中心化。“陆鸣点了一下PPT,页面上出现了一个新的架构图——没有中心节点,只有无数个小点,彼此之间用虚线连接。“每个用户的记忆数据存储在自己的设备上,不上传到任何服务器。我们的算法提供一个匹配协议——类似于蓝牙配对的原理——当两个用户设备上的记忆数据存在高度匹配的特征时,系统会提示他们建立直接连接。数据不经过我们,匹配结果也不经过我们。我们只是提供一个’握手’的机会。”

会议室里陷入了沉默。

方远皱了皱眉。“那我们的商业价值在哪里?如果我们看不到数据,怎么做精准推荐?怎么做广告投放?”

“我们的价值是协议本身。“陆鸣说,“就像TCP/IP协议的创造者不拥有互联网上的任何数据,但他们定义了互联网的通信规则。灯塔协议——如果我们这么叫的话——可以成为’记忆互联网’的基础设施。我们定义规则,生态在我们之上生长。”

方远沉默了很长时间。会议室里二十多个人都屏住了呼吸。

“有意思,“方远终于开口了,“但你忽略了一件事。”

“什么?”

“TCP/IP是免费的。“方远微微一笑,“我们不是做慈善。”

会议室里的气氛微妙地松弛了一下。几个高管露出了心照不宣的笑容。

“协议是免费的,“陆鸣说,“但协议之上的服务不是。就像互联网是免费的,但Google不是。我们提供基础协议,然后在协议之上提供增值服务——高级匹配、记忆可视化、群体记忆图谱。免费的是连接,收费的是理解。”

方远看了他几秒钟,然后转向CTO张维。

“技术可行性呢?”

张维推了推眼镜,“端到端的本地匹配在技术上可以实现。联邦学习的框架已经很成熟了,我们可以在此基础上做。但研发周期至少六个月。”

“太长了。D轮的钱不能烧六个月等一个不确定的产品。“方远站起来,“这样——灯塔计划按原方案推进。陆鸣的方案作为二期探索,先做个原型。如果原型跑通了,我再考虑调方向。”

他拍了拍陆鸣的肩膀。“想法不错。但记住,好的技术如果不能变成好的生意,那就只是论文。”

陆鸣点了点头。他知道这场仗他输了,至少在会议室里输了。

但他也知道自己要做的事情,不需要任何人的批准。

十一

陆鸣花了接下来一个月的时间,在灯塔计划的名义下,偷偷搭建了一个完全独立的原型系统。

他给它取名叫”树”。

“树”的核心逻辑很简单:用户上传一段记忆——可以是一段文字、一张照片、一段录音、或者一个地理坐标——系统会把这段记忆编码成一个不可逆的哈希值,然后与其他用户上传的记忆进行匹配。如果两段记忆的哈希值存在足够的相似度,系统会通知双方——有人和你记着同样的东西。

不推荐内容。不推荐广告。不推荐消费。只推荐记忆。

他用自己存在香樟树下的那段录音做了第一个测试。然后把系统的入口做了一个极简的网页,没有注册流程,不需要手机号,只需要一个邮箱和一个记忆。

他把链接发给了苏晚。

苏晚上传了一段记忆:一段文字,写着——“海市路3号,三楼的阳台,一排太阳花。夏天的傍晚,太阳下山的时候,花瓣会从金色变成橙色再变成暗红色,像一团慢慢熄灭的火。”

系统匹配了这条记忆和陆鸣的录音。匹配度:87%。

两条来自同一条街、同一棵树、同一个夏天的记忆。

苏晚在系统的通知里看到了匹配结果,给陆鸣发了一条消息:“树活了。”

陆鸣回了一句:“还没有。只有一个用户。”

“那就是活了。“苏晚说,“一棵树也是从一颗种子开始的。“

十二

“树”上线后的第三周,用户量达到了四百七十三个。

这些用户大部分是通过陆鸣在一个技术论坛上发的帖子来的。帖子标题是”我做了一个用记忆匹配记忆的实验性项目”,内容很朴素——解释了系统的工作原理,附上了链接,最后加了一句:“如果你有一些不想忘记的东西,可以试试。”

用户的上传内容五花八门。有人上传了童年老家的照片,有人上传了一段钢琴录音(标注”妈妈弹的,她已经不在了”),有人上传了一个坐标(标注”第一次接吻的地方,已经拆了”),有人上传了一首诗(标注”爷爷教我的,他忘了很多事,但这首诗他到去世前都记得”)。

陆鸣每天晚上花两个小时看这些记忆。不是看数据,是看人。

他发现一个规律:人们记住的东西,和潮汐算法推荐的东西,几乎没有任何交集。没有人记住他们买了什么、花了多少钱、点了什么外卖。他们记住的是声音、温度、光线、味道、一句话、一个表情、一个不存在的地址。

这些记忆在潮汐的商业逻辑里毫无价值——它们不能被变现、不能被广告化、不能被转化为GMV。但它们是人之所以为人的东西。

有一天晚上,他收到了一条新的记忆上传。是一段文字:

我记得一棵树。小时候家楼下有一棵很大的树。夏天的时候我坐在树下弹吉他,旁边有个男孩在听。我不记得他叫什么了。后来树被移走了,街也被拆了。但我还记得那个傍晚。天很热,蝉很吵,他问我,如果街拆了还能找到这棵树吗。我说树会记住的。

树会记住的。

这条记忆匹配到了陆鸣上传的那段录音。匹配度:94%。

陆鸣看着屏幕,眼泪掉了下来。不是因为悲伤,是因为一种他不知道怎么形容的感情——也许是”被记住了”的感激。

这个上传者的IP地址来自杭州。系统不收集任何个人信息,所以他不知道是谁。但他知道。

他给苏晚发了一条消息:“树记住了。”

苏晚没有回复。但那天晚上,她把《海市》那首歌重新录了一个版本,发到了网易云音乐上。新版比旧版多了最后一段歌词:

有人在树下载了一段音 有人在屏幕前听到了风 我们隔着三年的空白、一千天的虚无 在一条看不见的线里重逢

那棵树现在在转塘 它活得比我们都好 如果你也有想要记住的东西 就把它种在不会拆掉的地方

种在记忆里 种在另一个人的记忆里

十三

六月,方远在一次高管周会上点名批评了陆鸣。

起因是灯塔计划的一期产品已经上线测试,但陆鸣负责的”去中心化模块”进度严重滞后——因为他根本没有在做灯塔计划。他的时间全部花在了”树”上面。

“陆鸣,“方远在会议上说,语气平静但冰冷,“你知道公司给你发工资是让你做什么的吗?”

“知道。”

“那你在做什么?”

“一个更重要的事情。”

会议室里一片死寂。

方远深吸了一口气。“你觉得你那个几百个用户的小项目,比我八千万用户的平台更重要?”

“是的。“陆鸣说。

他不怕方远。他怕的是自己变成方远——变成一个把人的记忆当作商业资源的人。

方远没有当场发作。会后,许彦找到陆鸣,把他拉进了楼梯间。

“你是不是疯了?”

“没有。”

“你知不知道方远要法务查你了?你用公司资源做side project——这不仅仅是违规,这可能构成知识产权侵权。‘树’是在公司时间、用公司设备做的,法务认为它属于公司。”

陆鸣沉默了几秒钟。“‘树’不属于任何人。”

“这是你说了算的吗?“许彦的声音第一次带上了情绪,“陆鸣,你听着——我不管你怎么想的,但你现在有两个选择。第一,把’树’的代码和用户数据交给公司,让法务处理,你继续做灯塔计划,方远既往不咎。第二,你辞职,但’树’的知识产权仍然归属公司,因为它是你在职期间创建的。”

“第三个选择呢?”

“没有第三个选择。”

陆鸣看着许彦。他第一次注意到许彦的黑框眼镜下面有一圈很深的眼袋。许彦也累。所有人都在累。在这个行业里,每个人都在透支——透支时间、透支健康、透支理想。

“我选第三个。“陆鸣说。

他回到工位,打开了”树”的后台。他把整个系统的代码打包,上传到了GitHub,设为公开仓库。然后他把域名指向了一个分布式存储节点——一个不属于任何公司、任何服务器、任何个人的角落。

“树”变成了一个开源项目。任何人可以fork它、运行它、修改它。它不再属于陆鸣,也不属于蜂巢科技。它属于所有愿意记住的人。

然后他回到楼梯间,找到许彦。

“代码已经开源了。“他说,“公司现在可以告我,但没有什么可拿走的了。”

许彦看着他,张了张嘴,最终什么也没说。

十四

陆鸣在七月份辞职了。

没有告别会,没有farewell邮件。他把工牌放在前台的篮子里,背着双肩包走出了蜂巢科技的大楼。电梯下到一层的时候,他看了一眼大厅里那面刻着”潮汐——让每个人的选择都更聪明”的铜牌,觉得像是在看另一个世界的遗物。

他没有了工作,没有了收入,“树”的用户量在开源后涨到了两千多人,但这是免费的——没有商业模式,没有变现路径,没有任何VC会投这样一个东西。

他有时候会想,自己是不是做了一个错误的决定。放弃了一份年薪六十万的工作,为一个只有两千用户的开源项目。在这个衡量一切以DAU和GMV为标准的行业里,他的选择简直是教科书级的反面案例。

但每天晚上,当他打开”树”的后台,看到新的记忆被上传——一段来自广州的老人唱的粤曲、一张来自成都的老茶馆照片、一个来自上海的坐标(标注”外滩十八号,2015年的跨年”)——他就觉得这件事没有做错。

苏晚在八月份来找他。

她站在他新租的单间公寓门口,提着一个塑料袋,里面是两盒酸奶和一袋桃子。

“我妈让我来看看你,“她说,“她说你妈告诉她你辞职了,以为你想不开。”

“我没有想不开。“陆鸣接过塑料袋,“我只是想明白了一些事情。”

“什么事情?”

“记忆不应该被任何公司拥有。也不应该被任何算法优化。它应该是粗糙的、不完整的、属于记着它的人的。”

苏晚在他那把唯一的椅子上坐下来,看了看这间不到二十平米的房间——一张床、一张桌子、一台笔记本电脑、墙上贴着一张打印出来的香樟树照片。

“你这个人挺有意思的。“她说。

“哪里有意思?”

“你写了一套帮你找到我的算法,然后你把这套算法删了。你做了一件不知道怎么赚钱的事情,然后你为此辞了职。你住着一个快要发霉的出租屋,墙上贴着一棵树的照片。”

“那棵树救了你我的记忆。“陆鸣说。

“那棵树只是棵树。“苏晚说,“救了我们记忆的,是我们自己。”

陆鸣看着她。她坐在那把椅子上,阳光从窗帘缝隙里照进来,在她的脸上画出一条明暗分界线。她的表情很平静,和第一次在咖啡馆见面时一样。但和那时不同的是,她的眼睛里有了一种温度——不是热乎乎的,而是像深秋午后的阳光,温而不灼。

“苏晚。“他说。

“嗯?”

“你还弹吉他吗?”

她歪了一下头,想了想。“偶尔。手指还记着和弦,但心里——“她顿了一下,“现在心里也有点什么了。不像以前那么空了。”

“是因为什么?”

她没有直接回答。她站起来,走到窗边,拉开窗帘。窗外是杭州城北的天际线——高楼的轮廓在午后的热浪中微微颤动,像一幅正在融化的画。

“因为你帮我记住了。“她终于说,“不是说你自己记住了就算了——你做了一个东西,让记忆可以存在于两个人之间。像那棵树的根系一样,根根相连,不靠任何平台、任何服务器、任何算法。靠的是人。”

陆鸣沉默了。

“所以,“苏晚转过身来,背对着窗光,轮廓像一张剪影,“我有一件事想问你。”

“问。”

“你想不想和我去转塘看看那棵树?”

“我去过了。和你一起去的。”

“我知道。但那次我们只是看了它。这次我想在它底下弹一首歌。”

“弹什么?”

“《海市》。新版本。你还没在现场听过。”

“我在网上听过。”

“不一样。“她笑了,“网上的是数据。现场的是记忆。”

陆鸣看着她的笑容——那种从眼睛深处浮上来的、真实的、属于一个人的笑。他想到了他写的那些算法、那些模型、那些精确到小数点后六位的推荐。它们都很准。但它们预测不了一个女孩在八月的午后、在一棵八百年的树下、对着一个辞了职的程序员弹一首关于消失的街道的歌时,脸上会是什么样的表情。

那种东西,只有到场才知道。

“好。“他说,“明天去。“

尾声

九月的一个傍晚,杭州转塘古树保护园。

香樟树的树冠在夕阳下投出一个巨大的阴影,像一把撑开的伞。树下的长椅上坐着三三两两的游人,有的在看书,有的在发呆,有的在低声聊天。

苏晚坐在树根上,怀里抱着一把吉他。那是一把旧吉他,面板上有几道划痕,是她在旧货市场淘来的。她说那些划痕是别人留下的记忆。

陆鸣坐在她旁边的草地上,膝盖支着下巴。

苏晚开始弹《海市》。

吉他声在树的枝叶间飘散,和蝉鸣混在一起,和风声混在一起,和远处公路上的汽车声混在一起。她唱得很轻,像是只唱给一个人听,又像是唱给所有在这棵树下停留过的人听。

如果有一天你也在找我 就来海市路3号 虽然那里什么都没有了 但我还在那里

唱到这里的时候,一个中年女人停下了脚步。她穿着运动服,显然是来散步的。她站在树旁听了一会儿,然后走上前问:“这是什么歌?”

“《海市》。“苏晚说。

“好听。“女人说,“让我想起了一些事情。”

“什么事情?”

“想起了一条以前住过的老街。“女人想了想,“后来拆了。但我还记得街口有一棵树。很大的树。夏天的时候全是蝉。”

她说完,笑了笑,转身走了。

陆鸣看着她走远的背影,突然有一种很奇特的感觉——也许每个人的记忆里都有一条海市路。也许每个人的记忆里都有一棵树。它们在不同的城市、不同的年代、以不同的方式消失。但它们存在过。它们留下过蝉鸣和树影。它们被不同的人以不同的方式记住。

而这些记忆,不需要任何算法来连接。它们自然会找到彼此。就像两滴水在玻璃上滑动,最终会汇到一起——不是因为有人编程让它们这样做,而是因为这就是水的性质。

而人的性质是:记住。然后告诉另一个人。

苏晚弹完了最后一个和弦。余音在香樟树的枝叶间回荡了几秒钟,然后消散在傍晚的空气里。

“好听。“陆鸣说。

“真的?”

“真的。比网上那版好听。”

“当然。“苏晚把吉他放下,“网上的是数据。这版是记忆。”

夕阳从树的西边沉下去,最后一片金光在树冠的最高处停留了几秒钟,然后熄灭了。蝉鸣渐渐安静下来。城市的灯光在远处一盏一盏亮起。

两个人坐在树下,谁也没有说话。不需要说话。那棵八百年的香樟树替他们记住了所有的傍晚——有过多少个傍晚,有过多少个人坐在它下面,说过多少句话,弹过多少首歌。它不会说话,但它记得。

它的根系在地下延伸,穿过泥土,穿过时间,穿过一座又一座城市。那些根不会因为一条街被拆掉就停止生长。它们会继续伸向更远的地方,找到新的土壤,新的水分,新的光。

就像记忆一样。

只要还有人记得,它就活着。


(全文完)