下一章 上一章 目录 设置
20、撞见熬夜敲代码
陆 ...
-
陆铮晚到的时候,比平时晚了四十分钟。
她在楼下泊车时收到鹿清杳的消息——“门没锁,直接进来就行。”消息发送时间是六点二十八分,比她惯例的敲门时间早了两分钟。陆铮晚盯着那个时间看了两秒,锁了车,上楼的步伐比平时快了一点。
推开门的时候,宿舍里只亮着一盏台灯。暖黄色的光在书桌一角圈出一小块明亮的区域,其他地方都隐在昏暗里。苏瑶的床铺空着,被子叠得整整齐齐,书包不在——大概又去社团了。白狐蹲在床铺正中央,见她进来,耳朵转了转,尾巴在床单上轻轻扫了一下,没有发出声音。然后它把下巴搁在前爪上,重新看向书桌的方向,像是在说:别出声,她在忙。
鹿清杳坐在书桌前,背对着门,戴着耳机。屏幕上的代码密密麻麻地铺满了整个窗口,光标在几行红色的报错信息之间跳动。她专注的时候身体会微微前倾,肩膀绷得很紧,脖颈弯成一条好看的弧度。耳机里隐约漏出机械键盘的敲击声——不是她自己在敲,应该是某种教学视频或技术分享。她跟着屏幕上的节奏轻轻点头,嘴里无声地念叨着什么,手指在桌面上无意识地敲着节拍。
台灯的光落在她侧脸上,把她的轮廓从昏暗里勾勒出来。她的眉眼在专注时和平时的温和疏离不一样——眉心微蹙,嘴唇紧抿,眼睛里只有屏幕上跳动的代码。额角有一缕碎发垂下来,随着她点头的动作轻轻晃动,她浑然不觉。左手边的马克杯里,柠檬水已经喝得只剩杯底的薄薄一层,水面不再冒热气,大概凉了很久。
陆铮晚站在门口,没有出声。
她想起上周在会客区,鹿清杳说“帮同学恢复数据只是举手之劳”。说这句话的时候,鹿清杳的语气轻描淡写,像是在说一件不值一提的小事。但此刻陆铮晚看到的不是“举手之劳”。她看到的是这个人在无数个深夜里独自面对屏幕的背影——没有人监督,没有人催促,没有人要求她把每一个bug都调到最优、每一个参数都试到穷尽。但她还是做了。不是因为有人期待,是因为这是她自己的标准。那个标准,比任何人对她的要求都更高。
陆铮晚忽然想到一个词。她不太用这个词来形容人——太过感性,不符合她一贯的认知框架。但此刻看着鹿清杳被屏幕光勾勒出的侧脸,她脑海里只有这个词。
很好看。
不是五官的好看。是那种一个人在最擅长的事情里全情投入时,周身会散发出的、无法被任何妆容和衣着替代的光芒。像打磨了很久的璞玉,在台灯下安静地折射出温润的光泽。
白狐从床上跳下来,无声地走到陆铮晚脚边,用尾巴轻轻扫了一下她的小腿。陆铮晚低头看了它一眼。白狐仰头和她对视,琥珀色的眼睛里带着一种她太熟悉的神情——你也在看她。它没有发出声音,只是把脑袋往鹿清杳的方向偏了偏,像是在说:她很好看吧。
陆铮晚没有回答。但她也没有否认。
她轻手轻脚地把带来的东西放在桌上——一盒冻干,一管营养剂,还有一个纸袋。纸袋里是她在学校门口那家烘焙店买的牛角包,刚出炉的,还带着微微的热度。她路过的时候看到橱窗里摆着牛角包,想起鹿清杳上次吃蛋挞的时候说了一句“其实我更喜欢牛角包”,她自己可能都不记得了。陆铮晚记得。
放下东西之后,她没有叫鹿清杳。她只是安静地站在原地,看着鹿清杳敲代码的背影。鹿清杳正对着一个算法模型的参数反复调试,嘴里念念有词:“不是这个……也不是这个……”她调了三次参数,三次都报错。陆铮晚站在她身后两步的距离,能看到屏幕上红色的报错信息一条条堆叠在终端窗口里。但鹿清杳没有停下来抱怨,也没有分心看一眼别的东西。她只是深吸一口气,把参数重新归零,从另一个角度重新建模。那种专注不是固执,不是钻牛角尖,而是清楚地知道自己正在一步步逼近正确答案,只是需要再多试几次。陆铮晚见过太多人在挫折面前放弃、推诿、或者找别人来背锅。鹿清杳不是那样的人。她遇到问题的时候,眼睛里没有挫败,只有还没解决。好像所有的困难都只是时间问题,而她有的是耐心。
几分钟后,鹿清杳似乎遇到了一个更大的障碍——她停下敲击,把耳机摘下来放在桌上,对着屏幕皱起眉头,手指悬在键盘上方,像是在思考什么复杂的逻辑。然后她忽然若有所觉,微微偏过头。
两人四目相对。台灯的光照在鹿清杳脸上,她的表情从专注的紧绷变为意外,再到一丝不太明显的慌乱——像是被抓到了什么不太想让别人看到的姿态。
“你什么时候来的?”鹿清杳摘下另一只耳机,声音里带着刚回神的微哑。
“五分钟前。”陆铮晚依旧站在原地,保持着进门时的距离。她顿了顿,又补了一句,“看你正忙,没叫你。”
“不忙,就是调试一个参数。进来坐。”鹿清杳站起来,动作太急,膝盖差点撞到桌腿。她眼疾手快地扶住桌上那杯快要被碰倒的凉水,杯子晃了一下,水洒出几滴,她用另一只手接住了杯子。动作流畅,反应极快——整个过程中她的眼睛都没离开过陆铮晚,像是在确认自己刚才专注到浑然不觉的样子有没有被看到。
陆铮晚确实看到了。但她只是走向苏瑶的椅子坐下来,什么都没说。
鹿清杳注意到桌上多出来的纸袋:“这是?”
“牛角包。顺路买的。”陆铮晚的语气依旧平淡,像是在陈述一件微不足道的事,“上次你说比蛋挞好吃,正好路过那家店。”
鹿清杳拆开纸袋的动作慢了一拍。她确实说过这句话——很久以前,吃蛋挞那天随口提了一句,连她自己都不记得了。她把牛角包拿出来,表皮金黄酥脆,拿在手里还带着微微的热度,黄油味在空气中慢慢散开。她低头咬了一口,酥皮在齿间碎裂,满口黄油香。
“……很好吃。”她嚼着面包,含含糊糊地说,“谢谢。”
陆铮晚微微点了下头,目光从她嘴角的酥皮碎屑上掠过,然后移向屏幕上的代码。鹿清杳注意到她的视线,咽下牛角包,主动让开一点位置,指着屏幕上的算法模型解释道:“这是我最近在做的一个AI算法项目,跟实验室合作的。目前卡在一个参数优化的问题上——输入数据量太大,模型训练时间太长,我试了好几种降维方法都不太理想。”
陆铮晚看着屏幕。她的表情依旧是那种惯常的冷静,但目光在代码上逐行扫过,速度很快,不像是在看天书,反而像在读一份再熟悉不过的商业报告。鹿清杳这才想起——陆氏也有自己的AI技术团队。陆铮晚作为掌门人,虽然不写代码,但对算法的理解可能比普通工程师还要透彻。
“你用的是什么优化器?”陆铮晚问。
“Adam。”
“试过SGD吗?”
鹿清杳的手指在键盘上顿了一下:“SGD在处理这种大规模稀疏数据的时候确实比Adam更稳定。不过我上次用SGD的时候收敛速度太慢了——”
“如果加上动量呢?”
鹿清杳的眼睛亮了一下。她猛地转过头看陆铮晚,那一瞬间她脸上的疲惫和挫败感全没了,取而代之的是某种被点燃的光亮。“对——动量项可以弥补收敛速度的问题。我之前怎么就没想到。”她重新戴上耳机,手指飞快地在键盘上敲击起来,语调比平时快了半拍,语速也快了几分,“你等我一下——三分钟——我跑一遍试试。”
陆铮晚靠回椅背,端着那杯已经不烫的柠檬水,安静地看着鹿清杳敲代码。她看过太多人在她面前展示自己的专业能力——有的为了争取投资,有的为了展示价值,有的纯粹是为了在她面前表现。但鹿清杳不一样。鹿清杳让她等一等,不是因为不把她放在眼里,而是因为她知道陆铮晚会等。这种理所当然的信任,比任何刻意的殷勤都更让陆铮晚觉得珍贵。
几分钟后,鹿清杳看着屏幕上的输出结果,嘴角一点点弯起来。是那种从内心深处翻涌上来的、完全不加克制的笑意——眼角微微弯起,嘴唇向上翘,整张脸在台灯和屏幕光的双重映照下,像是被一层温润的光裹着。“成功了。损失函数降了将近四个百分点。”
陆铮晚看着她脸上那种不加掩饰的欣喜,自己的嘴角也微微动了一下:“是你的算法好。我只提了一个名词。”
“那个名词正好是我卡了三天的瓶颈。”鹿清杳把耳机摘下来,转过身面对陆铮晚,“你在商业落地方面的经验可能比我导师还多——不对,你的经验一定比我导师多。陆氏的AI团队做过的项目案例,我在实验室数据库里看到过,都是教科书级别的。”
陆铮晚难得地没有用“举手之劳”或“只是旁观者清”来轻轻带过。她认真地回了一句:“你的算法能力和我的商业落地经验正好互补。以后有什么技术问题——可以一起讨论。”
“你又不写代码。”鹿清杳说完觉得语气太随意了,连忙往回找补,“我是说——你时间那么宝贵,我不好意思老拿这种技术问题烦你。”
“不烦。”陆铮晚的语气依旧是那种公事公办的平稳,但语速比平时慢了一点,“你的思路很清晰,和你讨论问题效率很高。比开董事会有效率得多。”
鹿清杳低下头,手指无意识地拨弄着耳机线,耳尖在台灯的光下泛着淡淡的粉色。她没有说话,但她的嘴角还残留着刚才那个笑容的余韵。
过了一会儿,苏瑶推门进来。她看到陆铮晚坐在自己的椅子上,愣了一下,然后非常自然地拐了个弯,去阳台上收衣服。经过鹿清杳身边时,她低头凑到鹿清杳耳边,用只有两个人能听到的气声说了一句:“她来看你,不是来看狐狸的。”然后若无其事地走到阳台,哼着跑调的歌,把晾衣架上的衣服一件件取下来。
鹿清杳假装没听到,把桌上剩下的牛角包往苏瑶桌边推了推。白狐从床上探出头,看了看苏瑶手里抱着的衣服,又看了看鹿清杳微红的耳尖。然后它从床上跳下来,慢悠悠地走到陆铮晚脚边卧下。这是它第一次在鹿清杳在场的情况下,主动选择卧在陆铮晚脚边。尾巴搭在陆铮晚的鞋面上,姿态随意而自然,像是在说:今晚我不赶你走了。
陆铮晚低头看了它一眼,又抬头看向鹿清杳。鹿清杳正低着头假装在研究键盘上的某个按键,但余光出卖了她——她正用眼角悄悄看着白狐趴在陆铮晚脚边的画面,嘴角弯着极淡极淡的弧度。窗外的梧桐树被夜风吹得沙沙响,几片枯叶从枝头飘落,在路灯的光晕里打着旋。宿舍里很安静,安静到能听见暖气片里水流的声音。苏瑶在阳台哼着跑调的歌,白狐的尾巴轻轻扫过陆铮晚的鞋面,鹿清杳的手指悄悄在键盘上敲了一行谁也看不见的字。