Yuda Bi
  • About
  • Publications
  • Projects
  • Notes
  • 小说 Novels

第十一章:暗物质

《漫长的求证》第十一章:暗物质:进入实验室半年,他开始明白科研里最重的东西往往看不见——那些已经花掉却不产生结果的时间。

《漫长的求证》 · 第二部「隧」

第十一章:暗物质

You are not finding it. It is finding you.

进入怀特摩实验室第六个月的时候,陆沉开始明白,科研里最重的东西往往看不见。

真正把人往下拽的不是论文,不是公式,也不是会议海报上那几行压得很满的摘要。是那些已经花掉、却不产生结果的时间。它们一周一周累在那里,谁也看不见。

第一次失败来得还不算难看。

那时候陆沉已经把市场数据清洗到能看的程度,开始做相关矩阵的特征值分解。他想找的不是单只股票的涨跌,而是更底下那层看不见的集体运动。白天他跟着组里开会、听报告、回邮件,晚上等实验室安静下来,才把真正想做的东西一点点往前推。楼道里最后总会剩下两种声音,一种是空调出风口轻微的嗡响,一种是服务器机柜风扇不知疲倦地转,像一群脾气很坏的昆虫被关在金属里。

一开始,结果很乱。

不是数据噪声那种乱,是一种更让人烦的乱。特征值的位置会随着时间窗的平移突然跳,前一天还好好的谱结构,换一段窗口就歪了。他盯着屏幕看了两夜,起初以为是数据还不干净,后来才慢慢明白:问题不在脏,是这市场本身就不是一个平稳系统。

他觉得自己找到了修正方法。

办法并不花哨。先把序列做局部去趋势,再在滚动窗口里重标定,让不同时间段的波动被压到可比的尺度上。想明白那一刻,他甚至没站起来,只是把手里的笔往桌上一放,抬头看了眼玻璃窗里自己的影子。夜里两点,实验室已经没人,影子也很淡,像贴在黑玻璃上的一层灰。他把那套修正写进代码,提交任务,给集群排了整整一周。

集群的队列那一周不算挤。陆沉的任务编号尾巴是七二九,前面还有几个跑大模型的任务在排,预计要二十二小时才能轮到他。提交那一刻他把屏幕关了一半,没去看进度。第一晚他回公寓睡了五个小时,醒来第一件事是开手机看集群邮件。没有报错。

那一周他过得像在守一个病人。

白天上课、吃饭、处理助研杂事,晚上回来第一件事就是看日志。数字一行行往下走,像心电图终于开始有了规矩。日志里每一段时间窗的结果都跟着前一段对齐,没有跳变,没有突然变宽的误差区间。他第二天把那几行日志另存成一个文本文件,标题写“baseline_log_v2”。文件大小四百多 K,里面都是数字。

中午他去茶水间倒水,遇见博士后林姐。她正在烤一片冷掉的 pizza。微波炉转盘咔哒咔哒响,pizza 边角微微往上卷。林姐问他最近在做什么。陆沉说,“还在跑那套谱分解。”林姐点点头,从微波炉里把 pizza 端出来,咬了一口:“ Pipeline 跑稳就好。”她说这话的语气没有任何情绪,像在评论今天的天气。陆沉端着杯子站在那里,没接话。

第三天的时候,凯文从旁边经过,停下来扫了一眼屏幕,说:“Looks smoother.”

陆沉说:“应该快出来了。”

凯文点点头,手里端着一杯外带咖啡,杯壁上写着名字,黑色马克笔划得很快。“Smooth is dangerous,”他说,“but sometimes you need dangerous things first.”

陆沉没接这句。他知道 凯文 说得对一半。让图变好看的操作大多自带风险:曲线先稳下来,原来藏在波动里的东西也跟着被压住了。

第七天傍晚,结果出来了。

谱线比之前稳定得多——干净,整齐,挑不出毛病。他盯着那张图看了很久,先没有高兴,反而起了点不安。太顺了。陆沉把窗口参数往前挪,又往后挪,结果还是顺。他又换了一组样本,还是顺。夜里他回公寓煮了一锅最便宜的意大利面,面煮得有点软,番茄酱倒多了,锅边都是红的。他端着盘子站在灶台边吃,吃到一半,忽然想到一个问题。

如果不是系统变稳定了,而是自己把所有不稳定都提前磨平了呢?

第二天一早,他回实验室,把那套修正一步步拆开。

先去趋势。再重标定。再恢复窗口。再看原始分布。看到第三步的时候,他手心开始发热。那套方法确实让谱结构稳定了,但代价是引入了新的偏差。所有他最想保留下来的跃迁信息,都在标准化里被抹掉了一层。不是算法帮他看见了秩序,是他先把世界削成了自己想看的样子。

他把鼠标放下,靠在椅背上,眼睛还盯着屏幕。屏幕里的曲线没变,还是那么平顺。可他知道,那已经不是结果了。那是化妆。

中午怀特摩路过他桌边,问了一句:“How’s the beast?”

陆沉说:“It was tame because I cut off its legs.”

怀特摩看了他一眼,没有笑,只点了点头。“Good,”他说,“at least you noticed.”

这句话没让陆沉好过一点。

那天晚上他主要的感觉不是羞耻,是愤怒。

愤怒先在身体里。他坐在椅子上没动,但右手手指按在桌沿那道刚被打磨过的薄边上,按得太用力,指甲缝里发白。他咬了一下牙,后槽牙位置发出轻微的咬合声。他没让这一下持续。咬牙这个动作他高中那年发现自己一旦开始就停不下来,所以从那以后他遇到这种情绪都强行只允许自己咬一下。咬完他站起来,走到实验室门口,沿着走廊一直走到尽头。走廊那头有一扇通向消防楼梯的门,门把手是冷的。他停在那里深呼吸了三次,每一次都把胸腔撑到最满才慢慢放掉。回到工位的时候他经过自己白板,看了一眼自己白天写在右上角的那个 collective mode 推导。那一行字突然显得很傻。

愤怒于自己差一点就被一张好看的图骗过去,更愤怒于这种事竟然会让人短暂地高兴。他把整整一周生成的中间文件挪进一个新文件夹,命名成 “失败修复第一版”。敲最后一个回车的时候,键盘发出很轻的一声响,像谁在远处打了个结。

那个文件夹他后来一直没删。

实验室公用集群的存储有限,每三个月会跑一次清理脚本。所有标了 “临时”前缀 或者 “归档”前缀 前缀的文件夹都会被删。陆沉特意没用这两个前缀。“失败修复第一版” 就那样安安静静占着 230MB,挤在他主目录最里面。半年后做第三次失败的时候,他想过要把它删掉,最后还是没删。他说不清为什么。大概是他想让那一周的痕迹留着,不是为了纪念,是为了下次再被一张好看的图诱惑时,他知道这种东西他干过一次。

那一晚他没有立刻回公寓。

实验室空了以后,他在窗户前站了一会儿。窗外是冬天里没融的雪,停车场只剩三辆车,每一辆都被一层薄白盖住了顶。他自己映在窗上,脸有点发青。他没有想 凯文 那句“sometimes you need dangerous things first”。他知道 凯文 没说错。可知道没说错和让自己接受是两件不同的事。他在窗前站了大概十分钟,才转身收拾东西离开。

第二次失败慢得多,也更深。

它不突然。它像潮气,从墙根一点一点往上爬,刚开始你看不出什么,等看出来的时候,整面墙已经花了。

前一次推倒重来以后,陆沉把问题收得更小。他不再急着问市场为什么会一起动,而是先问:什么叫一起动?这个问题表面上很笨,像已经问过。但真正往下拆时,他才发现自己以前说的“集体行为”太含糊了。公司同属一个行业,消息一来,会一起涨一起跌;指数大跌那天,几乎所有资产都会被拽着下去。这两种同步在图上看都像相关,可它们也许不是同一种东西。

他一开始没有把它们分开。

短程关联、板块内部的联动、由流动性和情绪造成的整体塌缩,他在谱空间里把这些都叫作“collective mode”。白板上写得顺,报告里说得也顺,连自己都快被说服了。整整两个月,他都在沿着这个前提往下跑。白天做助教,晚上回来写推导。洗衣房的烘干机滚了一轮又一轮,他带下去的衬衫总是忘在机器里,过了半夜才想起。美国超市的鸡蛋贵了一次又降回去,他记得很清。天气也变了,中西部的秋天短得像有人把夏天从桌上一下抽走,树叶昨天还黄着,今天就开始掉。

那段时间里,陆沉常常在实验室白板前站到凌晨。

怀特摩 的白板不好擦,旧笔迹总会留一点淡淡的影。陆沉就在那些影子上面继续写。矩阵、投影、谱分解、关联长度、时间尺度。越写越觉得哪里不对。不是算错,是手感不对。每一步都顺,可两步之间总像差了一个东西,他自己也说不清差在哪。

真正让他停下来的是组会上的一个问题。

那天轮到他更新进展。投影仪的风扇一直在响,灯光打在屏幕上有一点轻微的灰。报告讲到一半,怀特摩忽然抬头问:“When you say collective, do you mean local coordination or global collapse?”

陆沉说:“Both.”

怀特摩没有立刻接话,只用笔在本子上点了一下。

凯文 坐在靠后的位置,转着手里的笔,笔帽一下一下敲着桌边。他没说什么。但陆沉看见他的动作,心里沉了一下。“both” 这个回答他自己听了都不像答案。它什么都包括了,等于什么都没回到点上。

那天晚上,陆沉没回公寓。

楼里清空以后,他一个人把白板全擦掉,只留下最上面两个词:local 和 global。写完以后,他退后两步,看了很久。白板太白了,白得像雪地。过了一会儿,他重新走上去,在两个词中间画了一道很长的竖线。

接下来的三周,他没再碰之前那套完整框架。

他改做玩具模型。先把市场拆成小系统,再一点点加耦合;先看短相关,再看长相关;先看板块内部的同涨同跌,再看真正意义上的全局模式。他像在黑屋里摸家具,摸到一张桌角,才敢往前挪一步。凌晨三点的实验室最像海底。走廊没有人,自动贩卖机的灯长时间亮着,亮得发冷。陆沉常常饿到胃一抽一抽地缩,只好去机器里买一包花生或者一根蛋白棒,吃的时候一边盯着屏幕,一边看白板上的字一点点被夜色压灰。

机器里的花生袋是一种深绿色的小包装,撕口在右上角。袋子从机器掉下来的时候发出一声闷响,落到取物口。每次他蹲下去拿,膝盖会响一下。他这几年从没注意过自己的膝盖,从那个月开始他注意到了。撕开袋子,盐粒会沿着撕口掉出来几粒,落在他衬衫前襟。回到实验室坐下时,他通常会忘了把那几粒盐拍掉,到第二天早上洗澡时才看见。

那段时间他还染上了一个新习惯:每次跑完一组玩具模型,他都会把代码 commit 到一个私人 repo,commit message 只写一句“alive”或“dead”。一周下来,那个 repo 的 git log 里“dead”出现的次数远多于“alive”。陆沉没让自己去数那个比例。他只是每次写完 commit message,就把窗口关了,再开下一个。

某一晚他写到凌晨四点,写错了一个 commit message:本该写“dead”的他写成了“alive”。他发现的时候 commit 已经推上去了。他没有改。他想,这一组虽然结果不对,但它至少让他知道下一步该往哪挪。这一种“不对”也算一种“alive”。第二天他打开 repo 看那一行 commit,发现自己当时多打了一个空格。“alive ”末尾那个空格他也没修。

最后,他不得不承认,自己前两个月抓住的是两个不同层级的东西。

板块内部的联动是一群相熟的资产之间互相影响:声音有边界,方向也清楚。危机前那种真正的集体化是另一回事:它不挑行业、不挑大小,是一种压在所有人头上的同向变化。它们都能在统计量上留下痕迹,可不是同一个谱对象。

明白这一点的那个夜里,陆沉没有发火。

他只是坐在桌前,看着自己两个月的推导和图一页页摊开,像看一叠写错题目的答卷。纸没有错,字也没错,甚至很多地方都写得很认真。错的是题目从一开始就问偏了。

这一回他没愤怒。涌上来的是另一种更慢、也更深的东西。他开始怀疑自己。

他开始反复想,自己是不是根本没有能力区分一个好问题和一个坏问题。是不是那些华人导师说的都对,他只是因为足够认真,才把这种认真误认成了方向感。那段时间,他在超市站在货架前会忽然发呆,盯着一排长得一模一样的燕麦片看很久,最后什么也没拿。夜里躺下以后,脑子里也不是公式,而是怀特摩在组会上那句很短的问题,像针卡在磁带里,不断倒回去。

有一天他在公寓卫生间里洗手。

洗到一半他抬头,在镜子里看见了自己。

他把水关掉。

他没再多看那面镜子。他擦干手出来,把卫生间的灯关了。这之后两周里他洗手都不抬头看镜子。

他还是继续改。

只是那种继续里已经混进了别的东西:不全是求真,还有怕。怕自己再花几个月,最后只是把错误说得更复杂一点;怕那本《统计物理》翻了一遍又一遍,最终也只把他往前推一小段就停住。

那段时间他给自己定了一些怪规矩。

第一条:每天晚上离开实验室之前,必须先在白板上写一行“明天要回到的最低问题”,一个具体到他自己也没法绕过去的小问题。第二天早上他一进门就先回到那一行,做完那一题再做别的。

第二条:每次想到一个看上去聪明的修正,必须先在草稿纸上手算最简单的两个特例。如果两个特例算不出他想要的方向,再聪明的修正都不要写进代码。

第三条:每周五下午把所有这一周的中间文件归档,命名按“周年-周次-状态”。状态那一栏只写两个字之一:“活”或“死”。死的不删,但不再打开。

这三条他没告诉任何人。告诉了别人会显得太刻意。可他自己知道,这三条规矩是他这段时间唯一能扶住自己的东西。

第二条规矩有一次差点没守住。

那是十一月某个周三的下午,他在草稿纸上写一个看上去很优雅的修正:把谱分解换成投影方法,用 spectral projector 直接读出 collective mode。这一招他从一篇 2014 年的论文里看到过,看上去很对路。他立刻想把它写进代码。手伸到键盘上的时候,他想起那条规矩:先在草稿纸上手算两个特例。

他从笔筒里拿了一支铅笔,开始算第一个特例。第一个特例算不通。

不是算不出来,是算出的方向不对。

他把那一页草稿纸卷起来,扔进抽屉。没有撕掉,也没有扔进垃圾桶,那是他给自己留的“墓地”。抽屉里现在已经压着六七张这样的草稿。他后来想过统计这些草稿的“死因”分布,但没真去做。如果没有那条规矩,他刚才会把那一招写进代码,然后又花两周去跑、去验证、去回头发现它不对。两周。

第二条规矩那一下午救了他两周。


第一条规矩用上的次数比第二条多。

十一月里有那么一个傍晚,他在桌前卡了三个小时。他从椅子上站起来,走到白板右下角,拿起一支用得最久的黑色白板笔,用力压笔,在右下角写下一行英文:

“我现在还回答不了的最小的问题是什么?”

字写得很慢。墨色发淡,有两个字母几乎看不清。他坐回椅子,没看回屏幕,只看着那一行字看了十几秒。

那个最低问题他花了三天才答出一句不太满意的答案。第三天傍晚他把那一行擦掉,写下下一个。这样一个一个递下去,他在十一月最后三周里写过的最低问题,从来没有超过一行。


第三条规矩有一个具体的指尖动作。

那是十一月最后一个周五下午。陆沉打开 finder,在 “暗物质项目主目录” 下新建一个子文件夹。当周是 2018 年第 47 周。他键入:

“第四十七周”

后面那一栏是“活”或“死”。他坐在屏幕前用拇指碰了一下回车键。

“第四十七周——活着”

然后他在 “活着” 后面加了一个问号:

“第四十七周——还活着?”

加完以后他又看了五秒,然后把问号删掉:

“第四十七周——活着”

他按下回车。文件夹建好了。

他在 finder 侧栏里能看到上一周的目录 “第四十六周还标着‘活着’”,再上一周 “第四十五周标的是‘垂死’”(那一周是他第一次失败被自己识破化妆的那一周。他当时给那一周打了一个“dying”,不是“dead”,留一点犹豫)。


第三次失败发生在冬天。

那天外面下了今年第一场真正的雪。窗外停车场全白了,几辆车埋在雪里,只露出挡风玻璃和后视镜。实验室暖气太足,陆沉脱了外套,只穿一件旧毛衣,袖口磨得有点起球。他已经连续两周没怎么正常回家。淋浴在公寓里洗,饭在实验室楼下的咖啡馆和自动贩卖机之间对付,睡眠被压成一小块一小块,像在玻璃上哈出来又很快散掉的雾。

可是结果终于像样了。

这一次不是靠修饰,也不是靠概念偷懒。他把层级分开,重做了窗口,重新检查了每一道预处理,再把理论预测和经验谱演化一段段对齐。曲线出来的那个傍晚,他先是不敢相信,后来把图放大,缩小,再放大。屏幕上的那条线像缝在数据里的骨头,位置非常稳。不是完美到假。是刚好能让人认出来,那里面确实有一个结构。

他甚至把图打印了出来。

打印机吐纸的时候卡了一下,热乎乎的纸页卷着边出来,墨还没完全干。陆沉把它压在桌上,看了很久。那张图并不华丽,黑白的,线条克制,像实验室里大多数不会被人转发的图。可他知道那是自己这半年第一次真正想拿去给怀特摩看的东西。

夜里十一点,楼里只剩下很少的人。凯文从会议室出来,看见他桌上那几张纸,停下扫了一眼。

“Looks real,”他说。

陆沉没有谦虚,也没有立刻顺着这句话往下接。他只是说:“I need to check the pipeline one more time.”

凯文点头:“Good. The last error is always the stupid one.”

他走了以后,陆沉又把预处理代码从头翻了一遍。

不是因为不放心,是因为事情太顺的时候,他反而会生出一种接近迷信的谨慎。他从第一行开始看。读文件,清洗缺失值,同步时间戳,滚动窗口,对数收益,对齐标签。代码是他自己写的,每一步都熟。可熟不等于对。读到一半时,他忽然停住。

屏幕右下角的时间是凌晨一点十七。

雪还在下,窗外的白比刚才更厚一点。实验室里只有他这一片亮着。服务器的风扇一直响,响得像有人在隔壁屋里磨刀。陆沉把光标挪回那一行,又看了一遍。再看一遍。然后整个人慢慢坐直了。

是一个 off-by-one error。

窗口切片的时候,他把收益序列和标签序列错开了一位。不是大错。不是程序直接崩溃那种错。恰恰相反,它太小了,小得足以在两周里安静地躲过去,还在最后给你一张近乎完美的图。像扣子从第一颗就扣错了,但因为大衣厚,走很久都看不出来。

陆沉没有马上骂人,也没砸键盘。

他只是把那一行改回去,重新跑了一个最小样本。

五分钟后,小样本结果出来。那条漂亮的曲线塌了。

不是轻微变差,是直接散掉。原来像骨头的那条线一下没了,剩下一堆他已经见过很多次的噪声和犹疑。陆沉又跑了第二组,第三组,结果一样。他把打印出来的图拿起来,看了一眼,又放下。墨已经干了,纸页边缘因为暖气略微卷起,像一张做旧的地图。

他没立刻停下来。

凌晨一点四十六分,他做了一件他自己也没想到的事:他把 bootstrap 重采样脚本翻出来重新跑了一遍。这套脚本他十月里写过,那时候是为了应付组会上一个不太重要的 reviewer,写完就放在 utils 文件夹最底层没再用过。他从抽屉摸出耳机戴上,给集群提交了任务。一千次重采样,每次都重做一遍窗口扫描。如果他这两周看到的那道“谱间隔收窄”是真的,它应该在 bootstrap 里以接近百分之百的频率重现;如果它是一个 finite-size artifact 喂出来的 spurious gap,重现率会贴近随机水平。

他不敢看任务进度条。

他起身去走廊。自动贩卖机的灯还亮着,光从机器面板的塑料后面渗出来,把走廊一小段地砖照得发青。他没买东西,站着读了一遍机器侧面那张贴了很久的“请勿摇晃”小贴纸。回到实验室的时候,bootstrap 任务进度走到百分之四十二。

他坐回去,把电脑屏幕从主显示器切到副显示器,让 bootstrap 跑在副屏,自己拿正屏继续读 off-by-one 之前那段预处理代码。这是他在等结果的时候唯一能做的事:把别处的细节再扫一遍,不让自己一直盯着进度条。

凌晨两点四十一分,bootstrap 完成。

陆沉把窗口切回去,结果一页页弹出来。重现率三十八点二个百分点。distribution 的中位数贴着 baseline,尾部一根细到几乎看不见的小峰,落在他这两周看见的那个“收窄”点附近。不是没有,是太弱了。统计学上勉强能说“有一点点东西”,可那一点点东西可以被有限尺度的偶然涨落生出来。

他把那张 bootstrap 分布图盯了很久。

不是难以接受。是难以理解:他在过去十四天里花了八十多个小时凝视的那一道收窄,原来并不是“被一个 bug 假造的”,也并不是“完全没有”。它是介于这两者之间的某种东西。它存在过一闪,可它不够稳,稳不到能被写进任何一份能站住的报告。这种结果比纯粹的 bug 更难处理。bug 可以修。spurious gap 给你的不是错,是“几乎对”。“几乎对”在科研里通常比错本身更让人困。

屏幕上那一行 38.2% 的数字停在那里。

陆沉看着那个数字,忽然想起一件事。两年前他刚来这间实验室的那个秋天,组会汇报完散场的时候,凯文 顺手翻抽屉找 U 盘,有一本封面发黄的笔记本从抽屉里露出过一截。封皮上用黑色马克笔写着两个词:Phase Transitions。凯文 当时把那本笔记本顺手往里推了推,语气很轻,说了一句“Undergrad stuff”,然后又说“后来发现这个方向太慢了”。

陆沉第一次替 凯文 想到一件事。

凯文 当年放弃这个方向、把那本笔记合上塞回抽屉的某一个晚上,他抽屉里那本封面发黄的笔记本上,有没有过哪一页和今晚屏幕上这道 38.2% 的曲线长得一样?有没有过一道也是先看上去像真的、再被一个更细的检查打回原形的小峰?如果有,凯文 当时是不是也是在凌晨两点四十一分把它合上的,又或者更晚,晚到他自己都不愿意记得是哪一刻。陆沉不知道。凯文 不会告诉他。凯文 已经把那本笔记本塞回抽屉里头很多年了。

陆沉没让自己继续往下想。

把别人的失败拿来给自己的不确定贴一层意义,他知道是科研里最容易的一条路。他没让自己走上去。

他把 bootstrap 结果存进 “失败修复第三版”下面专门留给空结果的子目录。

子文件夹里还有十月那次跑过的旧 bootstrap,文件名按日期排,旧的在最底下。新的那一份贴在最上面,时间戳显示凌晨两点四十一分。两份 bootstrap 之间隔着三个月。他看了一眼日期,把窗口关上。

他坐着没动。

屏幕上还开着之前那张错误的图。它仍然很好看,好看到近乎无辜。可那只是一个小错位喂给他的幻觉。两周。整整两周。白天、夜里、自动贩卖机的花生、楼下咖啡馆冷掉的汤,都被这一个错位吃掉了。

这一次,他连愤怒都没有了。

这一次连愤怒都没有了。他空成了一只壳。

人累到极点的时候,不会立刻崩。先是空。像身体里所有能拿来发火、羞耻、后悔的东西都被掏干净了,只剩一层壳。陆沉把椅子往后推,站起来的时候,膝盖有一瞬发软。他走了两步,没有去饮水机,也没有去厕所,而是绕到实验室那一头的书架前蹲了下来。

最底层堆着一些这间实验室常年没人翻的旧东西:上一任学生留下的几本固体物理讲义、一个空着的硬盘盒、和一个他自己一年前推到那里、之后再也没动过的纸箱。纸箱里是他从国内带过来、不舍得分类也不舍得扔的少量物件:几本她写过批注的旧课本、一支断了笔尖的圆珠笔、还有她大三上学期那本黑皮笔记本。

他把笔记本翻开。

笔记本最后几页是空的。倒数第三页里夹着一张折了两道的信纸,他从前没翻到过。他把它抽出来。纸是从一本作业本上撕下来的,左边的撕口不齐;字是黎知秋的,一气写到底,几乎没有勾画修改。开头是:

廖宁:

写这封不是要寄。寄到你那里只会变成又一封你没空回的信,不如不寄。

我是在物理实验室。今天组里开了一次会。

我得跟你讲一件事。组里六个人,五个男生,一个我。这学期导师定了我做实验小组的负责人。他说我细心,处理数据稳。他没说真正的意思——把一个女生放上去,他自己能少管一半的杂活。

我没有不接。我接了。

接了以后我要订试剂、跟工程师吵气泵的滞后、记考勤、做汇报 PPT、提醒别人交报告。这些事不是物理。这些事只是被叫做“细心”和“稳”。

会议上讨论的是真正的实验。我也在那张桌子边。每一句我都能听懂。可一旦讨论到要伸手做的部分——拆机器、换探头、上电、调相位——五个同组人就自然往前挪一寸。我不是被挤出去的。我是被自然地让走了。他们觉得我应该去处理数据,因为那是我“擅长的部分”。

廖宁,我大学三年没有完整地做过一台谱仪。

老师有一次在走廊里对我说,知秋,女生能做到这一步真不容易。这一句夸了我一次,把我所在的位置往下挪了一格,自己都没注意到。他不是恶意。他是真的觉得自己在替我撑腰。

我后来读到他写给系里的推荐意见——“该生理解能力强,但缺乏物理直觉,适合做计算和数据方向”。这一句字面看着没有问题。可这种话拼在一起,就是把我从学科真正硬的那一头慢慢挪到柔软的那一头。挪一次,挪两次,挪到博士的时候,我大概就再也回不来了。

我不想跟谁吵架。我不知道跟谁吵。

今天来例假。组会从早上九点开到下午两点。我没站起来过。最痛的那二十分钟,我把手搁在桌子下面攥着衣角。投影上一直在切图,有人在讲,有人在反驳。我什么都听见了,什么都没记。会一散,我去厕所站了五分钟。出来的时候,在走廊上碰到那个总比我手快的师兄。他笑笑跟我说,知秋你刚才看起来挺累的,要不下次组会让你跳过吧。

我谢了他。我说不用。

我回了宿舍。我没跟人说话。

廖宁,你不用回这封信。我只是想到了写。你那边怎么样。

知秋

陆沉看完。

他不知道这封信是什么时候写的。他不知道廖宁是不是收到过。他不知道她事后给廖宁打过电话没有,或者后来什么都没说就把这一页翻过去了。这封信里讲的所有事,她在还活着的时候,一次都没跟他讲过。

他把信折回去,夹回笔记本里,把纸箱推回原位。

然后他顺着桌边慢慢坐到了地上。

不是椅子上。

是地板上。

实验室的地板很冷,冷意透过牛仔裤慢慢往上渗。头顶的日光灯发出持续的嗡鸣,像某种没有情绪的审判。屏幕还亮着,那张错误的图就在他侧前方,像一块被人故意挂着不撤的证物。桌下有一只被谁踢进去的矿泉水瓶,瓶身瘪了一半。远处打印机待机时偶尔会响一下,又很快静下去。

陆沉把手臂搭在膝盖上,低着头。

实验室的暖气没关,墙里的水管偶尔发出一种很轻的咔哒,像金属在自己里头收缩。日光灯的频闪他从前没注意过,今晚他注意到了。那不是闪,是一种眼睛勉强能分辨的、贴在亮度底部的微小起伏。屏幕的光落在他左手手背上,他把手翻过来看了一眼,皮肤被白光照得发青,手腕内侧那条静脉的颜色比平时更深一点。

桌脚下那只被踢瘪了的矿泉水瓶离他大概半米远。他没去捡,可眼睛一直停在瓶身被压扁的那一道折痕上。瓶子是某一天某个人扔进来的,他不记得是不是他自己。这种“不记得”今晚特别刺眼。他过去半年里所有的精力都耗在了一件最后被 bootstrap 判为重现率三十八点二个百分点的东西上,而这间实验室里发生过的所有真正的小事,谁踢瘪了一只矿泉水瓶、谁的咖啡渍滴在了哪一格地板上,他都没在自己的记忆里留位置。

地板上有一段时间他什么都不想。

身体里有什么先松开了一截。他听见自己呼吸里那一拍偏长的呼气,听见隔壁实验室某台仪器持续两年的高频蜂鸣。他从来不知道那是哪一台仪器,但这个频率两年里他听过上千次。走廊尽头空调出风口扇叶咔哒咔哒,大约每三秒一下。有人路过走廊,鞋底擦地砖的声音从远走近,过门的时候慢了一拍,然后走过去消失。这间实验室真正在工作的从来不是他一个人。这些机器一直在,这些声音一直在,他在不在并不重要。

然后他想起一件事。

县城高中那间老物理实验室,他高三那年冬天某天放学后跟黎知秋一起留下来调示波器。那台示波器开机以后探头里有一种细细的高频蜂鸣,他当时不知道是什么频率,只觉得那声音像有人在隔壁屋里轻轻吹口哨。黎知秋拿示波探头戳灯丝的时候那个声音变了一下,低了八度。她回头问他这是为什么。他当时没答上来。他们后来也没再讨论过那个声音。他从那天起在自己的记事本上写下“哪天问问那个口哨”。他这一行字写了之后再没翻过那本记事本。今晚走廊尽头那台机器的高频蜂鸣,和县城那间物理实验室那台老示波器的高频蜂鸣,在频率上不是同一档,但它们落在他耳朵里的位置是同一个。

他又想起另一件事。

他刚到美国的那个九月下午,第一次走进这间实验室的时候,地板上有一块没干透的水印,是清洁工那一上午擦地板留下的。他当时穿着一双底很薄的鞋,踩到那块水印上的时候,鞋底滑了一下,他差一点摔倒。他从来没跟任何人讲过那一秒。他坐在地板上,身体重量压住的那块地砖,跟两年前他差点摔倒的那一块,在哪里,他甚至不确定。

地板上还有别的东西被他记住了。

凯文 两年前在那间会议室散会后从后排走过来,在他肩上拍了一下。那一下的位置是右肩往后一点,接近肩胛骨上沿;力道不重,大约停了半秒就移开。凯文 离他大概一臂远,他能闻到 凯文 喝过的外带咖啡的味道,是带奶的,不是黑咖啡。陆沉那两年里没把那一下拍肩想起来过。它是被身体单独保存的,不在他的语言记忆里。今晚他坐在地板上,身体先于他想起了它。

凯文 当时说过一句话陆沉一直没真正懂。

“我只是觉得那间屋子不会。”

陆沉两年前听这句话的时候,以为 屋子 指的是那间会议室,那个 baseline 问题来得很快的、戴细框眼镜博士后那张桌子的那一边。今晚他坐在地板上,听这句话的方式变了一点。它没变成另一个意思。它只是更长了。

他没有给 凯文 发邮件。

他想过的,想过哪怕只发一句 “那间屋子的事你是对的”。可他没发。一旦发出去,这件事就变成另一种东西,变成两个研究员之间互相承认对方早就看清楚的小默契。今晚 凯文 不必知道。凯文 拍肩那一下里已经说完了。

他想过站起来。

身体里某个还在工作的部分告诉他应该站起来:去关掉服务器房间的那盏一直亮着的备用灯,去把桌上摊开的打印纸收一下,去给自己接一杯水。这些动作他做过千百次。可在这一刻它们都用不上。它们都假定有一个“接下来”。他没有“接下来”。他有的只是这一秒钟和这一秒钟的下一秒。

走廊那头的自动贩卖机自动启动了一次内部循环,机器肚子里某个压缩机转了大概十秒,又停。停下来之后实验室更安静,安静到陆沉能听见自己呼吸的节奏。他试着把呼吸放慢,呼吸不听他的,它该多快还多快。

他坐在那里,身体里一切想要起来做点什么的冲动都被一种更慢的东西按住。那种东西不是绝望。绝望是有方向的。这种东西没有方向。它只是停。

他没有算时间。大概过了很久,也可能只有十几分钟。门被推开的时候,他先听见的是钥匙碰门框的一声轻响,然后是一阵很慢的脚步声。怀特摩走进来,手里拿着一个纸杯。杯里大概是咖啡,隔着一段距离都能闻到煮过头的苦味。

他看见陆沉坐在地上,没有说“Are you okay”。

他只是停了停,把纸杯放在最近的一张桌子上,然后朝这边走过来。怀特摩年纪大了,蹲下去不太利索,膝盖弯到一半时明显停顿了一下,最后索性也坐到了地上。背靠着墙。离陆沉大概一臂远。两个人中间隔着一块空地,空地上什么也没有,只有日光灯落下来的一点白。

他们先坐了一会儿。

门关着。实验室里还是那几种声音,风扇,灯,远处不知哪台机器的低鸣。怀特摩 把眼镜摘下来,用衬衫下摆擦了一下,又戴回去。陆沉看见他手背上有些褐色的老年斑,指节很大,骨头像要从皮下面凸出来。

他擦眼镜的那块布,不是新眼镜布。

是衬衫下摆。那一块衬衫边角有一处洗得已经发白,边缘的纱线一头比另一头长出大约半厘米,被反复揪过。陆沉这时才意识到 怀特摩 习惯用衬衫下摆擦眼镜:他不去开抽屉拿新布,他用自己穿在身上的这一块。怀特摩 今晚还穿了一件灰色的羊毛开衫,袖口右边那一处磨开了一道线头,线头大约一厘米长,垂在他手腕外侧。他自己大约知道,大约不知道,反正没有去剪。那一段线头随着他坐下、调整重心、把眼镜放到鼻梁上去的每一个动作,轻轻晃。

陆沉忽然想起一件极小的事。许多年前,一个深夜,黎知秋在电话那头说:我觉得我理解的所有东西最终都会被证明是错的。 他当时只回了一句:那就等它被证明是错的再说,现在先睡觉。 他记得清楚的是她那边长长的水房水声,然后是她轻轻的“嗯”。

现在轮到他自己了。可这间公寓里没人会替他说“那就先睡觉”。

过了一会儿,怀特摩 开口。

“我在七十年代末写过一篇论文。”他说,“关于无序系统里的相变。”

他的声音不高,像在说一件已经放了很久的旧东西,拿起来时不需要太大力。陆沉没有抬头,也没有答。

怀特摩继续说:“那篇论文发出去以后,三十年几乎没人引用。不是五年,不是八年。三十年。每年圣诞节学校放假,我都会把那一期期刊从办公室书架上拿下来,重新读一遍。不是为了怀旧。是为了确认我没写错。”

他说到这里,停了一下。

陆沉终于抬头看了他一眼。

怀特摩 的侧脸在白光下显得更老,鼻梁边的纹路压得很深。他看着前面的地板,没有看陆沉。这段话像是放了很久才被讲出来。

“你知道最糟的不是没人看见。”他说,“最糟的是你一个人拿着某个结构太久,久到连你自己都开始怀疑,是不是只是你比别人更擅长编一个漂亮的故事。那篇论文放在那儿的每一年,我都比前一年更怕。不是怕世界不承认它。我怕的是,万一世界是对的。”

实验室里静得很。

屏幕上的错误曲线还亮着。陆沉看着它,忽然觉得 怀特摩 说的不是一篇老论文,是他自己桌上这张刚死掉的图。你恨世界不看它的时候还撑得住,怕的是有一天怀疑它本身。

怀特摩把手放在膝盖上,继续往下说。

“第三十一年,一个做冷原子物理的年轻人在他的 Nature 论文里引用了我。他说我的方法是他整个框架的起点。后来他得了诺贝尔奖。大家听到这里,通常会以为这是故事的高潮。”他轻轻摇了下头,“不是。那不重要。重要的是七十年代末那个晚上,我一个人在办公室里,知道自己看见了一个真的结构。那种感觉,不是兴奋,不是得意,甚至不是快乐。更像是某种可怕的安静。你突然知道,有一块东西在那儿,不管别人来不来看,它都在那儿。”

他顿了顿,像在给膝盖挪一个更舒服的位置。布料摩擦地板,发出一点干涩的响。

“我也算错过东西。”他接着说,语气没有特意压低,也没有特意提起,“一九八三年我发过一篇短文,关于某个二维系统的临界指数。我以为我找到了一个新的 universality class。论文出来半年以后,一个法国博士生写信给我,礼貌得近乎冷,跟我说他用更大的格子重做了一遍,那个‘新指数’是 finite-size effect 喂出来的伪影。”

他说这一句时声音不重。

“那一晚我把信打印出来读了三遍。我没立刻回。我先去查了我自己的数据,他说得对。我在小格子上看到的那道东西是真的,可它在大格子上消失。它不是一个新指数,它是我系统太小没看见自己已经在跑出 scaling 区域。”

陆沉没有抬头,可他听见自己呼吸的节奏轻轻变了一下。

怀特摩接着说:“我后来给那位博士生写信致谢,并主动联系期刊发了一个 corrigendum。我在那个 corrigendum 里写:The author thanks Dr. X for pointing out a finite-size artifact in the original analysis. 这一句不到三十个字。但我写它的那天下午是我学术生涯里少数几个不愿意再重过的下午之一。”

他说完,喝了一口纸杯里那口已经凉透的咖啡。

陆沉没有问。

他没问 怀特摩 那个 corrigendum 发出去以后那位法国博士生回信了没有。他没问 怀特摩 写信致谢的那一天下午是几月几号。他没问 怀特摩 后来还有没有在那间办公室里独自待过同样的一种下午。这些问题在他喉咙里短暂浮起来又被他自己压回去。陆沉只听着。

“我说这件事不是要安慰你。”他把杯子放回地上,”我只是想让你知道,发现自己看见的东西是 finite-size artifact 之后,活下去并继续工作,是这一行真正发生的事。它发生过。它在我身上发生过。它今晚在你身上发生。它以后还会发生。”

他停了停,像在判断这句话有没有说重。

“那是这一行唯一值得要的东西。”怀特摩说,“如果你是为了别的来的,现在离开还来得及。”

陆沉把视线从那张错误的图上挪开,看向地板。

地板上有一小块被咖啡滴过的旧印,颜色比周围深一点,像木头里长出来的结。他看着那块印子,很久才开口:“我不知道我看到的是不是真的。”

怀特摩没有立刻答。

他把眼镜往上推了一下,镜片反出头顶灯管的一截白。过了几秒,他说:“那就继续看。”

“如果是假的,你会知道的。真的东西有一种……”他说到这里停了停,像在一堆并不合适的词里挑一个最接近的,“inevitability。”

这个词落下来,实验室里又静了几秒。

怀特摩看着前面的黑暗,慢慢把后半句说完:“你不是发现它。你是被它找到的。”

陆沉没有马上明白这句话。

或者说,他明白了一半。另一半还在离他很远的地方,轮廓刚刚开始有,手够不到。他坐在地上,忽然觉得自己这半年以来所有做错的事、白费的时间、跑坏的程序、写满又擦掉的白板,并没有因为这几句话就变轻。它们还在原处。第一周的偏差、第二个月的问题错误、刚刚死掉的那条曲线,沉甸甸地压着。

可他第一次觉得,这些东西也许不是纯粹的浪费。

它们各自占住了一块位置,把他从更顺的那条轨道上一点一点拖偏,拖向更慢、更费力、但也更难骗自己的方向。

怀特摩扶着墙站起来的时候,膝盖轻轻响了一下。他没有伸手拉陆沉,只走过去把那杯已经有点凉的咖啡拿过来,放在陆沉旁边。

“Don’t drink it because it’s good,”他说,“drink it because it’s hot.”

这话说得很随便,甚至有点破坏气氛。陆沉却点了下头。

怀特摩往门口走了两步,又停住,回头看了一眼那块屏幕。

“Leave the false plot there tonight,”他说,“Tomorrow it will look less seductive.”

门关上以后,实验室重新只剩机器的声音。

陆沉坐在地上,把那杯咖啡拿起来,纸杯外壁已经不怎么烫了,只剩一点余温。他喝了一口,很苦,苦得像把整晚的焦糊都煮进去了。他把杯子放下,又抬头看向屏幕。那条错误的曲线还亮着,像雪夜里一条很远的路。它依旧好看,但不再像刚才那样有蛊惑力了。它只是错。

他坐了一会儿。屏幕的光落在地板那块咖啡印上,他看了一会儿那块印。

忽然想:如果是知秋,她现在会怎么看这条曲线。

念头一冒出来,他自己就把它压回去了。这不是一个能在这一刻回答的问题。屋里没有人能替他回答。

很多年以后,会有一个人在另一所大学的走廊里听见这一刻的回声。那个人今晚不在这里。今晚屋里只有他自己。

这还不算答案。

可至少,错就是错。真就是还没找到的真。

那天夜里,陆沉最后没有把屏幕关掉。他在地上又坐了一会儿,直到窗外的雪慢慢停下来,停车场边缘露出一点发灰的凌晨。

他站起身。

桌上还摊着那张被 bootstrap 判过的小样本结果,他凌晨两点四十一分打印出来想看清楚 distribution 尾部那一根小峰的那张纸。他伸手把它拿起来,在掌心里慢慢揉成一团。纸边卷进去,角上折出几道斜的折痕。他没扔。他把它放进抽屉最里头,不是和别的打印纸压在一起,是单独贴着抽屉内壁的那一侧。一张被揉皱的、写着失败的纸,单独留在那里。

抽屉的另一头还有那张超市小票,日期是两周前。鸡蛋、牛奶、番茄、洗衣液。再下面是几根用空的笔芯、一把备用钥匙。这张揉皱的纸贴着抽屉壁。半年以后他会再想起它。今晚他不知道。

他把桌上剩下的打印纸叠好,也压进抽屉最下面。

他把抽屉推回去,声音很轻。

然后重新坐到桌前,打开代码。

外面的雪已经停了。停车场边缘那一道发灰的凌晨慢慢变成发青的早。第一缕真正的日光从百叶窗缝里斜切进来,落在他键盘左手那一侧。陆沉没有把窗帘拉上。他敲下第一个字符的时候,键盘上那一道光跟着轻轻动了一下。

那一天他没有立刻回去碰之前那一整套预处理代码。

他打开一份空文档,把整套 pipeline 的每一步用普通话从头列了一遍:读数据,对齐时间戳,去趋势,重标定,滚动窗口,谱分解,bootstrap。他没用 markdown 也没用 LaTeX,只在每一步后面打一个问号,问自己这一步真正干了什么、它替我做了什么我本该自己做的判断。这种练习他大三的时候做过一次,当时是黎知秋告诉他的。她说“如果你写代码写到自己也不知道每一步在做什么,就把它从头用人话写一遍,写到你能讲给一个不学物理的人听”。她说这话的时候他们坐在县城那间小奶茶店里,她在喝一杯柠檬蜂蜜茶,吸管被她咬得有点扁。

他列完整个 pipeline 的时候已经是早上八点半。

实验室里陆陆续续有人来。第一个进来的是 永,不是周教授那个 永,是组里另一个韩国学生,做计算神经科学的。他端着一杯外带咖啡,看见陆沉,停了一下。永 没问“你昨晚没回家?”,也没问“出什么事了?”。他只是把咖啡放在自己桌上,从背包里拿出一个未拆封的能量棒,过来放在陆沉桌角,说了一句:“Got two. Take one.” 然后回自己桌前坐下,戴上耳机。

陆沉看着那根能量棒,看了两秒。包装是浅蓝色,边角写着“chocolate sea salt”,价格标签还没撕掉,七十九美分。他没立刻拆。他把它放进抽屉,和那张揉皱的草稿纸贴在同一边。

接下来的两周,陆沉做了一件他自己也没想到的事:他把整套 pipeline 拆成了三个版本。

版本一是他过去半年一直在用的那套。他给它保留了原貌,没改。版本二是他在原版基础上,把 off-by-one 修了之后的版本。版本三是他凌晨那一晚 bootstrap 之后想到的另一条路:他不再急着找一个“看起来稳”的窗口,而是让窗口本身的鲁棒性变成一个被独立验证的对象。

这三个版本在他的私人 repo 里分别叫 v_legacy、v_fix、v_robust。他每天晚上跑一遍三个版本,把结果并排打印出来贴在白板上。怀特摩 中午经过他桌边,看见白板上三排图,停下来扫了一眼,没说话,转身走了。傍晚他又经过一次,这次停了更久,最后说了一句:“Don’t kill v_legacy. You’ll need it later.” 陆沉点头。

陆沉看着那三排图,看了大概一分钟。

这一分钟里他没有把 v_legacy 删掉。他知道 v_legacy 是错的(它跑出来的那条曲线在 bootstrap 里只重现 38.2 个百分点),但他不能删。删掉 v_legacy 等于把那段错误从历史里抹掉,等于让自己以后只剩 v_fix 和 v_robust 两份能站住的代码,等于把“我曾经被一道几乎对的曲线带过两周”这件事从自己的目录里删除。怀特摩 那句话回到他脑子里:“It’s the only way to know what fixed it.”

陆沉才听懂这句话。

“the only way to know what fixed it“ 不止说的是 pipeline。它说的是他自己:只有 v_legacy 还活着,他才知道自己后来真正修掉的是什么。把错误删掉的人,最后会以为自己从来没错过。这是 怀特摩 三十年里第一年到第三十一年之间反复对自己确认的东西,今晚 怀特摩 用一句很短的话递回给陆沉。陆沉没有把这句话写进任何笔记。他只是把抽屉里那张揉皱的纸,在脑子里又确认了一次位置:贴着内壁那一侧,还在。

那个周五早上他醒得比平时晚一个小时。

公寓里冷。他起身,先去厨房煮一杯速溶咖啡。咖啡粉是上周打折时多囤的一袋 Folgers Classic Roast,味道偏酸,比他平时喝的那种便宜两美元一磅。他用一只洗了一半的马克杯倒了一杯,坐到厨房的小餐桌前。桌上还放着他昨天吃完意大利面的盘子,他没洗。盘沿那一圈干掉的番茄酱已经发暗。

他喝了一口咖啡。

他第一次允许自己想一件事:如果昨晚 怀特摩 没进来怎么办。

不是埋怨,也不是感激。是一个具体的反事实问题。怀特摩 昨晚是凌晨四点拿着那杯咖啡走进实验室的。他不知道 怀特摩 那一刻为什么会回实验室。他不知道如果 怀特摩 那一晚去开自己车上的什么会、或者去看了一场已经买票一个月的音乐会、或者就在家睡觉,陆沉自己会在地板上坐到几点。他不知道自己会不会站起来。他不知道站起来以后他会不会回公寓。他不知道回公寓以后他第二天会不会出门。这些事情昨晚因为 怀特摩 进来都没有发生。但它们的不发生不等于它们不存在:它们以一种“差一点点”的姿态留在了昨晚的某个角落里。

他没让这个念头停太久。

他把咖啡喝完,把杯子放到水槽里,又把昨晚那个盘子也一起冲了一下,然后穿外套出门。

第二个周末,陆沉去了系图书馆。

他不是去找新文献,他是去把那本 安德森 1958 年那篇关于无序系统局域化的原文从书架最底层翻出来。这篇论文他大三的时候黎知秋让他读过一次,他当时没读懂。这次他从头读到尾,读完才意识到,他这半年在 spurious gap 上撞的那堵墙,和 安德森 当年在固体里看见局域化时撞过的那堵墙,物理上不是同一面墙,气质上是同一面。

他在图书馆窗边坐到关门。

回公寓的路上,下了一场不大的春雨。陆沉没有打伞:他出门的时候没带,回来的时候也懒得回去拿。雨落在头发和外套上,凉,但不至于冷。他走到公寓楼下抬头看了一眼自己住的那个窗口。没开灯,黑的。这是他半年来第一次在外面看自己住的地方,发现它从外面看,和别人住的窗口没有任何区别。

那一晚他回到公寓,先把湿衣服换下,再去厨房煮了一锅最便宜的意大利面。这一次他没把番茄酱倒太多。面煮得也不算软。他端着盘子坐到桌前,旁边摊开那本 安德森 1958,一边吃一边读。读到一半,他在某一页边缘用铅笔写了一句话。不是给自己的,是给那个二十年前在县城台阶上写公式的女孩的:

“我现在懂了你那句话:无序不是混乱,是另一种秩序。”

她不会读到。他知道。可他还是写了。

他把书合上。

他随手拿过桌上那块橡皮,一块用了一半的白色橡皮,边角已经磨成圆,在 安德森 1958 的书脊上轻轻敲了一下。这个动作做出来的瞬间他自己愣了一下。不是因为这个动作奇怪,是因为它让他想起 凯文 在那间会议室散会前在指间转的那支黑色签字笔。笔在 凯文 指尖那种很轻的、几乎不被察觉的旋转,和他这一秒用橡皮敲书脊的那一下,落在桌面的位置不同,可属于同一类小动作:研究员独处时给自己的一种姿态,介于思考和不思考之间。

陆沉承认一件事。

凯文 拍肩那一下里的诚恳是真的。凯文 那个晚上在 LinkedIn 和 NeurIPS rebuttal 之间选择的那条路,在那间屋子里也是真的对的:它就是那个评价体系认得的语言。陆沉自己今天选的这条路,这条用 安德森 1958 在公寓地板上一边吃意大利面一边读到深夜的路,在那间屋子里并不会被看见。这一行字陆沉没写下来。他只是承认了一次,然后让它停在那儿。

他把橡皮放回桌上,站起来,走到书桌前。

抽屉里那张揉皱的草稿纸还在最里面,贴着内壁那一侧。他把抽屉拉开,手停了一下。然后他把那张纸取出来,在掌心里展开。展不平了。它已经放在那里整整一晚加大半天,折痕完全定型。bootstrap 38.2% 那一行字还在,墨色比凌晨那一刻又淡了一点。他看了一会儿,然后做了一件他自己也没准备好的事:他没有把它再展开钉到墙上,也没有把它扔掉。

他把它重新揉成一团。

这一次揉得比凌晨那一次更紧。揉到掌心里几乎只剩一个硬硬的小核,边缘的纸纤维已经被压出包浆。然后他把那个小核重新放回抽屉最里头,贴着内壁的左侧。昨晚 永 的能量棒也在那一侧。两件东西并排,中间隔着一段大约一指宽的空。

塞进去之前他停了一下。

他知道这张纸不该扔:它是一个 finite-size 给他的“几乎对”,是他这半年最重要的失败。他也知道这张纸不该再拿出来用:它已经被 bootstrap 判过,它不能进任何一份能站住的报告。这个状态(不能丢、又不该再拿出来用)是这一章对他来说真正的结尾。

他推上抽屉。声音很轻。

回到桌前的时候,他打开邮箱,看见 怀特摩 凌晨发过来的一封很短的邮件,标题栏空着,正文只有三个词:

“周一见。”

不是回应昨晚发生的任何具体事情,只是把日历推前一步。

陆沉没立刻回。

他坐在那儿看了一会儿,把窗户的百叶窗拉开一点,让那场春雨之后的微微晴的光照进来一点。光落在键盘左手那一侧。他想起昨晚凌晨在实验室里同一束光也落在自己键盘的同一侧。那是地板上爬起来以后他重新坐到桌前时,百叶窗缝里第一缕日光落下来的位置。

然后他在键盘上敲下两个字母,按了发送:

“好。”

第二天他回到实验室,没有把 v_robust 写进任何报告。他只是把它继续往前推。

← 上一章:基线 ← 返回目录 下一章:相变 →

 

Yuda Bi  |  Built with Quarto