深圳的暴雨来得毫无征兆。
林远舟抱着纸箱走出智渊科技大厦时,第一滴雨砸在他的眼镜片上。他没有躲,也没有加快脚步。身后自动门合拢发出的那声轻响,比任何逐客令都刺耳。
纸箱里装着七年的痕迹:一个工位铭牌,上面他的名字还贴着,照片角落微微翘起;两本技术笔记,封面磨得发白,边角卷了起来;一只用了三年的马克杯,杯底的咖啡渍已经洗不掉了;一包没用完的便利贴;以及一张离职证明——上面写着“个人原因”,但所有人都知道真正的原因是他不肯交出那块硬盘。三年前他业余时间写的一个AI框架,公司认为是职务发明,他认为不是。争执了三个月,最终他以“离职”收场。
他没走几步,手机震了。
第一条:银行冻结通知。他低头看了一眼,停住了脚步。雨水顺着他的下巴滴在手机屏幕上,模糊了那行字。他擦了擦屏幕,又看了一遍——没错,账户被冻结了,余额为零。
第二条追了上来——不是新的,是昨天那条医院催费通知,他没回。母亲欠费28740元,今日18:00前补缴,逾期停药。他盯着那行字,拇指悬在屏幕上方,最终还是没点下去。
他还没来得及把手机揣回口袋,第三条进来了。陌生号码,但林远舟认识这个号段——催债公司的。他见过他们的名片,夹在门缝里的那种,上面印着“资产管理”四个字。
他接了。
“林工,我们在你家里等你。”
对方说完就挂了。没有威胁,没有多余的废话,但正是这种平静让林远舟感到一阵寒意。
他站在原地,雨越下越大。路过的行人撑着伞匆匆走过,没有人看他一眼。他把纸箱顶在头上,走向公交站。
公交车上人很少。他坐在最后一排靠窗的位置,纸箱放在腿上。窗外的一切都被雨水模糊了,霓虹灯的光晕在玻璃上化开,像一幅没画完的水彩画。他盯着窗外,脑子里却什么都没想——或者说,他不敢想。一旦开始想,他就会想到母亲的医药费、想到那50万的债务、想到未来的路该怎么走。所以他什么都不想,就这么坐着,直到公交车到站。
回到白石洲的出租屋时,天已经完全黑了。
楼道里的灯坏了很久,物业说修了好几次,但每次修好没两天又坏了。林远舟摸黑爬上六楼,楼梯间弥漫着一股潮湿的霉味,墙角堆着邻居的废纸箱和旧自行车。他走到自己那扇门前,钥匙插进锁孔的那一刻,他感觉到了不对——门是虚掩着的。
他推开门。
屋里灯开着。两个男人坐在他那张破旧的沙发上,其中一个手里拿着他的笔记本电脑。茶几上摆着两瓶矿泉水,一瓶已经喝了一半。他们像是在自己家一样随意。
“林工回来了?”拿电脑的那个笑了笑,露出一口烟渍斑斑的牙齿,“等你一晚上了。”
林远舟站在门口,没有进去:“你们怎么进来的?”
“房东开的门。”另一个男人从口袋里掏出一张纸,拍在茶几上。纸张拍在木头上的声音很脆,在安静的房间里格外响亮。“法院的财产保全裁定书副本。你前雇主智渊科技申请冻结你名下50万资产,其中包括这套出租屋里的财物。”
“我租的房子。”
“你租的,但里面的东西是你的。”那人站起来,走到林远舟面前。他比林远舟高出半个头,肩膀很宽,穿着一件皱巴巴的POLO衫,领口有些发黄。“电脑、硬盘、手机——都在保全范围内。林工,我们也不想为难你。但50万,加上利息,你总要给个说法吧?”
林远舟沉默了几秒:“给我三天。”
“三天?”那人笑了,笑声在逼仄的出租屋里回荡,“三天你能变出50万?”
“能。”
那人盯着他看了一会儿,目光在他脸上扫了一圈,似乎在判断这话的真假。林远舟没有回避他的目光,就这么直直地看着他。最后那人耸耸肩:“行。三天后我再来。但林工——”他顿了顿,压低了一点声音,“别想着拖。你母亲那边也需要用钱吧?早点解决,对大家都好。”
两人从他身边挤出门去。走在后面的那个人顺手带了一下门,门没关严,留下一道缝。脚步声在楼道里渐渐远去,然后是大楼防盗门关上的声音,哐当一声,一切归于安静。
林远舟关上门,反锁。
他靠着门板站了很久。屋里一片狼藉,抽屉被拉开过,衣服从衣柜里扯出来扔在床上,书架上的书倒了一排,有几本掉在地上。他走过去把书捡起来,一本一本塞回书架。手指碰到一本旧相册——他顿了一下,还是翻开了。
第一页是父母的结婚照,黑白照片,边缘已经泛黄。父亲穿着中山装,母亲穿着碎花裙,两人站在照相馆的布景前,笑得有些拘谨。第二页是他满月时的照片,胖乎乎的脸蛋,被母亲抱在怀里。第三页是父亲站在一台机床旁边,工装上沾着机油,但笑得一脸骄傲。那是父亲工作的第八年,刚从学徒升为技工。
他翻到最后一页。那是他们一家三口最后一张合影,在他考上大学那年拍的。父亲站在左边,头发已经花白;母亲站在右边,眼角有了皱纹;他站在中间,穿着高中的校服,表情有些青涩。那是父亲去世前一年拍的。
他把相册合上,放到抽屉最底层。
手机震了。母亲发来微信:
「妈没事,别乱花钱。」
林远舟盯着那句话,眼眶突然发酸。
他知道母亲在说什么。她也收到了欠费通知,但她从来不催他,从来不问他要钱,甚至从来不让他知道她偷偷停了哪些药。上次他去医院看她,护士私下告诉他,母亲已经把一种辅助用药停了,说是“医生说不吃也行”。但林远舟知道,那不是医生的建议,是她自己决定的。
他把手机放在桌上,深吸一口气,然后走到纸箱前,从最底下摸出一块移动硬盘。
硬盘很旧,外壳上贴着一张褪色的标签,上面用马克笔写着几个字:
「零号样本 v0.01」
字迹已经有些模糊了,但还能辨认出来。那是三年前他用一支快没水的记号笔写的,写完还吹了吹,怕墨迹蹭掉。
他把硬盘插上那台修了好几次的旧台式机。这台电脑是他大二那年组装的,零件换了一茬又一茬,只剩下机箱还是原来的。风扇呜地转了起来,声音大得像要起飞。机箱嗡嗡震动,桌上的水杯里的水面泛起细密的波纹。
屏幕亮了。
一行行白色字符在黑色背景上逐行跳动,像是某种古老的仪式。
[系统自检完成]
核心架构:自进化推理框架(残缺版)
当前可用算力:0.03 TFLOPS(约为一张入门级显卡的千分之一)
建议任务:简单模式识别
上次休眠时间:1123天前
1123天。
三年多前,他从那个项目里带出这块硬盘时,以为自己这辈子都不会再打开它。他甚至想过把它格式化,或者干脆扔掉,但最后还是留了下来。也许是因为不甘心,也许是因为他知道,总有一天他会需要它。
他把母亲的病历袋从包里翻出来。牛皮纸袋,边角已经磨损了,上面写着“林慧兰”三个字。他打开袋子,把里面的东西一股脑倒在桌上:基因检测报告、CT影像、出院小结、用药记录、收费单据——他一张一张摊开,铺满了整张桌面。
基因检测报告上有一行被医生用红笔画了圈:EGFR T790M突变阳性。旁边写着几个字:奥希替尼耐药,建议更换治疗方案。
他盯着那行字看了很久。
然后他敲下了第一行命令。
不是“帮我分析”,也不是“有什么方案”。他敲的是:
「我是林远舟。你还记得我吗?」
屏幕上安静了三秒。
风扇还在转,机箱还在嗡嗡震动,但那三秒里,林远舟觉得整个世界都安静了。他盯着屏幕,屏住呼吸。
然后弹出一行字:
[验证通过]
欢迎回来。
紧接着,屏幕下方又弹出一行字:
[检测到未完成的分析任务]
上次进度:EGFR T790M耐药突变方案筛选——中止于候选分子生成阶段。
林远舟愣住了。
三年前他离开公司时,零号样本正在跑的任务,居然还保留着。他以为那次强行关机已经把数据都丢了,没想到零号样本在断电前自动保存了进度。
他看了一眼桌上母亲的基因检测报告——T790M突变阳性。
那个任务,从一开始就是为了救她。
他移动鼠标,点开了任务详情。屏幕上弹出一个窗口,密密麻麻排列着几十个分子结构式,旁边标注着评分——从高到低,像一张被遗忘的成绩单。最上面那个分子,评分9.2。他滚动鼠标滚轮,往下翻。评分逐渐降低:8.7、8.1、7.6……一直翻到底部,评分跌破4.0的区域,分子结构开始变得粗糙,有些甚至明显违反了基本的化学常识。
他回到顶部,盯着那个9.2分的分子。
这是他三年前离开公司时,零号样本正在计算的任务。那时候他刚写完核心框架,随手导入了一组公开的EGFR突变数据做测试。没想到零号样本真的跑出了结果,更没想到三年后这些数据还在。
他深吸一口气,在键盘上敲下一行指令:
「继续任务。目标:优化候选分子,评估合成可行性。」
屏幕上进度条开始走动。这一次没有卡顿,零号样本的推理引擎在长达三年的休眠后重新运转,进度条平滑地向前推进。林远舟靠在椅背上,听着机箱风扇的轰鸣声,盯着屏幕上跳动的参数。那些参数他太熟悉了——键能、疏水性、空间位阻——每一个数字背后都是一条化学规则,而零号样本正在这些规则之间寻找最优解。
大约过了十五分钟,进度条走完。
屏幕弹出一份完整的报告。
最上方是一个三维分子结构模型,色彩斑斓的球棍结构在屏幕上缓缓旋转。旁边是各项参数的评分:靶点亲和力9.1,选择性8.8,ADMET预测7.6,合成可行性——3.2。
林远舟皱了皱眉。
他继续往下翻,看到零号样本的备注:
「候选分子A对EGFR T790M突变体的亲和力预测值为0.3 nM,显著优于奥希替尼(0.8 nM)。但合成路线涉及一项稀有前体试剂(4-氟-2-(三氟甲基)苯硼酸),该试剂目前国内无现货供应商,进口周期4-6周,单价约12万元/克。」
十二万一克。
林远舟靠在椅背上,盯着天花板看了好一会儿。天花板上有一块水渍,形状像一张地图。他盯着那块水渍,脑子里飞速转动。
他拿起手机,翻到老周的号码。凌晨一点二十三分。他犹豫了一下,还是拨了出去。
电话响了很久,久到他以为对方不会接了。然后通了。
“……喂?”老周的声音沙哑,带着被吵醒的不满。
“周哥,是我。”
“我知道是你。你看看现在几点?”
“我有个分子,想让你帮忙看看能不能合成。”
电话那头沉默了几秒。然后是窸窸窣窣的声音,像是老周从床上坐起来了。接着是打火机的声音——他在点烟。“什么分子?”
林远舟把候选分子A的结构式和合成路线念了一遍。他念得很快,专业术语脱口而出,像是在背一篇烂熟于心的课文。
老周那边安静了一会儿。林远舟听到他吸了一口烟,然后缓缓吐出来。
“你这个前体,”老周终于开口了,“4-氟什么的那个,我厂里没有。”
“我知道。”
“市面上也买不到。进口的,管制目录里的。”
“我知道。”
“你知道你还打电话给我?”
林远舟沉默了一下:“你能不能想想办法?”
老周长长地吐了一口气。电话里传来一阵脚步声,像是他走到了阳台上。雨声透过话筒传过来,淅淅沥沥的。“远舟,我跟你说实话。我这个厂,做的就是最简单的代工合成。你给我一个成熟的分子式,我照着做,赚点加工费。你这个东西——太前沿了。我做不了。”
“不是让你现在就做。我就是想问问,如果我把路线优化一下,换成你能买到的前体,大概需要多长时间?”
老周那边又沉默了一会儿。“你先给我看看结构。明天上午,你到我厂里来一趟。”
“好。”
“还有,”老周顿了顿,“你妈怎么样了?”
林远舟没有回答。
老周也没追问。他太了解林远舟了——不回答,就是不好。“行了,明天再说。你早点睡,别熬了。”
电话挂了。
林远舟把手机放在桌上,盯着屏幕上那个旋转的分子模型。零号样本给出的分子是完美的——至少在理论上是。但理论上的完美和现实中的可行之间,隔着一道他暂时跨不过去的坎。
他关掉分子模型的窗口,重新打开母亲的病历文件夹。
基因检测报告、CT影像、出院小结、用药记录——他一份一份翻看,试图找到一些可能被遗漏的信息。母亲的病历很全,从确诊到现在的每一次检查结果都保存得很好。但零号样本需要的数据不仅仅是这些。
他翻到母亲的旧药盒。
那是一盒奥希替尼的空盒子,母亲吃完后没舍得扔,攒了一小摞放在床头柜的抽屉里。林远舟把药盒一个个拆开,看背面的批号和有效期。然后他打开电脑,搜索这些批号对应的批次信息。
凌晨三点,他在一家药企的召回公告里找到了一条有用的信息:母亲服用的一批奥希替尼,在某次稳定性测试中被发现杂质含量偏高。虽然这批药没有被正式召回,但这个数据说明了一个问题——母亲的用药记录中存在一个变量,而这个变量没有被收录在她的病历里。
他把这条信息录入系统,重新运行了分析。
这一次,进度条没有卡住。
零号样本的推理引擎开始运转,屏幕上闪过一行行日志信息。林远舟盯着那些滚动的字符,直到进度条走到尽头。
屏幕弹出一行结果:
「数据质量已改善。置信度提升至72%。建议:补充患者完整用药时间线,可进一步提升预测准确性。」
林远舟揉了揉眼睛。窗外的天色已经开始发白。
他看了一眼手机——凌晨三点四十七分。
他把补充后的数据重新导入系统,点下了运行按钮。进度条开始走动。然后他靠在椅背上,闭上了眼睛——等它跑完,天就该亮了。

