下一章 上一章 目录 设置
215、第215章:技术瓶颈与深夜实验室
【“轨 ...
-
【“轨道楼”命名通过后的第四天,周三晚上9点,人工智能交叉实验室】
空气里有种焦灼的味道。
不是真的烧焦了什么,而是那种连续工作太久后,大脑过热、咖啡因过量、焦虑浓度超标的混合气味。实验室里没有开中央空调——有人嫌太冷,有人嫌太干,最后干脆关了,靠窗户开着一条缝维持空气流通。于是各种气味就更加明显:速溶咖啡的香精味,外卖盒里残留的饭菜味,打印纸的油墨味,还有...十几个熬夜的人体味。
白板上已经写满了第九块板子。
密密麻麻的公式像藤蔓一样纠缠在一起,彩色马克笔标出的重点区域像伤口一样醒目。从左边开始看,是陆星衍团队的三种解决方案框架:
方案A:跨域正则化
核心思想:在不同司法管辖区的数据分布差异上添加正则项,强制模型学习通用特征。
问题:正则化系数难以确定,太小没效果,太大会损害模型性能。
方案B:分层联邦学习
核心思想:在不同区域建立子模型,再通过上层协调器聚合。
问题:通信开销巨大,训练时间翻倍,且协调器可能成为性能瓶颈。
方案C:对抗性数据增强
核心思想:生成对抗性样本来模拟不同区域的数据分布差异。
问题:生成过程不稳定,可能引入新的偏差。
三种方案,三天时间,三次失败。
不是完全的失败,而是那种“差一点就成功”的失败。模型在测试集上的表现总是在某个临界点附近徘徊,然后停滞,然后...缓慢下降。像是爬山时到了某个高度,氧气稀薄,每一步都艰难,而且不知道山顶还有多远。
“又卡在78%的准确率了。”小李盯着屏幕上的训练曲线,声音里带着疲惫和沮丧,“昨天是77.5%,今天加了新的正则项,只提升了0.5%。按照这个速度...”
“按照这个速度,我们需要二十天才能达到85%的目标。”小王接话,往后靠在椅背上,揉了揉发红的眼睛,“但客户要求两周内给出初步结果。”
张明站在白板前,手里拿着已经没墨的红色马克笔,还在无意识地在空中比划。他三天没刮胡子了,下巴上冒出了青黑色的胡茬,看起来老了五岁。
“陆老师,”他转头看向实验室角落,“方案D有思路了吗?”
角落里的办公桌后,陆星衍坐在电脑前。
他已经保持同一个姿势两个小时了:身体微微前倾,双手放在键盘上,但很少敲击。大多数时候,他只是盯着屏幕,盯着那些滚动的日志,盯着那些波动的曲线,盯着...那个顽固地停留在78%的准确率数字。
他的脸色比平时更苍白,眼下有浓重的阴影。白衬衫的袖子挽到手肘,露出的小臂线条紧绷。左手拇指和食指无意识地相互摩擦——这是他在思考极度困难问题时的小动作,十年没变。
听到张明的问题,陆星衍没有立刻回答。
他继续盯着屏幕,又过了三十秒,才缓缓开口:
“方案D需要重新设计损失函数。但现有的理论框架不支持我们需要的灵活性。”
声音很平静,但能听出那种被压抑的挫败感。
沈清辞坐在实验室另一端的会议桌旁。
他面前的笔记本电脑屏幕分成四个区域:左上角是工程组的实时监控,显示着服务器集群的负载;右上角是客户发来的最新邮件,语气已经从不耐烦变成焦虑;左下角是团队的工作进度表,一排红色的“延迟”标志;右下角...是陆星衍的背影,通过电脑摄像头的偶然角度捕捉到的。
沈清辞已经三天没回酒店了。
第一天,他说“我陪团队熬一会儿”。
第二天,他说“问题没解决,我回去也睡不着”。
第三天,现在,他根本不需要说了。
团队成员们已经默认沈总会一直在。就像默认陆老师会一直在,默认咖啡机会一直有咖啡,默认问题...最终会被解决。
但今天,这个默认开始动摇了。
因为三天了,问题还在那里。
78%。
那个该死的数字。
沈清辞揉了揉太阳穴,感觉胃部传来熟悉的、隐隐的绞痛。
老毛病了。
压力大、作息乱、饮食不规律时就会犯。
他伸手从随身包里摸出一个药瓶,倒出两片胃药,就着冷掉的咖啡咽下去。药片刮过喉咙的感觉很粗糙,咖啡的苦涩在口腔里弥漫。
他看了眼时间:晚上9点17分。
又看了眼陆星衍的背影。
那个背影,很直,很稳,但...有种紧绷的孤独感。
就像高中时,遇到解不出的竞赛题时,陆星衍也会这样。一个人坐在角落,对着题目,一动不动,像是要把纸看出一个洞来。
那时候,沈清辞会走过去,说:“换个思路?”
有时候陆星衍会不理他,继续思考。
有时候陆星衍会抬起头,眼神里有困惑和求助。
有时候...他们会一起解出那道题。
现在,十年后,沈清辞想走过去。
想说:“换个思路?”
但他不确定陆星衍会是什么反应。
因为在过去的三个小时里,他们已经“换个思路”三次了。
每次都是沈清辞提出一些工程角度的直觉建议,每次陆星衍都会冷静地分析,然后说“理论上可行,但实际数据噪声太大”,或者“计算复杂度会超出预算”,或者...直接沉默,用那种“你不懂数学”的眼神看他一眼。
沈清辞不是数学家,他承认。
他是工程师,是实践者,是解决问题的人。
但在这种纯粹的、理论的、数学的难题面前,他的工程直觉似乎不够用了。
胃部的绞痛又加剧了一点。
沈清辞深吸一口气,强迫自己忽略疼痛,专注看屏幕。
客户的最新邮件里有一句话被标红了:
“如果下周还不能给出可行方案,我们需要重新评估合作价值。”
重新评估合作价值。
翻译一下就是:可能会终止合作。
可能会撤回对“轨道楼”的部分资助。
可能会...让这三个月的一切努力,付诸东流。
沈清辞的手在桌下收紧。
不行。
不能这样。
他必须想出办法。
必须...
“沈总。”
陆星衍的声音突然响起。
沈清辞抬起头。
陆星衍已经转过椅子,正看着他。实验室的灯光在他脸上投下阴影,让他的表情看起来有些模糊。
“你刚才说的‘逆向迭代’,”陆星衍说,“能具体解释一下吗?”
三个小时前,沈清辞在讨论中随口提了一句:“要不要试试我们高中时解决竞赛难题的方法——逆向迭代?”
当时陆星衍立刻反驳:“那是数学题,这是真实数据,噪声太大。”
然后话题就转向了其他方向。
现在,陆星衍主动提起了。
沈清辞愣了一下,然后迅速整理思绪。
“逆向迭代的核心思想是:不从问题本身出发,而是从期望的结果倒推。”他说,站起来,走到白板前,拿起一支还能写的蓝色马克笔。
他在方案C的旁边,画了一个简单的流程图。
“我们现在的问题是:模型在跨区域数据上无法收敛。正向思路是:想办法让模型收敛。”
他在流程图起点写“问题:不收敛”,画箭头指向“目标:收敛”。
“但如果我们反过来呢?”沈清辞在“目标:收敛”旁边画了一个圈,“我们先假设模型已经收敛了,准确率达到了85%。然后问:在什么条件下,这个结果会出现?”
他开始在圆圈周围写条件:
“条件1:模型学到了跨区域的通用特征。”
“条件2:区域特有噪声被有效过滤。”
“条件3:优化过程没有陷入局部极小值。”
写到这里,他停顿,看向陆星衍。
“然后,我们再问:如果要满足这些条件,我们需要设计什么样的算法?”
陆星衍看着他,眼神专注。
“继续。”他说。
沈清辞点头,继续写:
“要满足条件1,我们需要一个能够识别‘通用特征’与‘区域特征’的机制。”
“要满足条件2,我们需要一个针对跨区域噪声的鲁棒性设计。”
“要满足条件3,我们需要...可能需要跳出当前的优化框架。”
他放下马克笔,转身面对陆星衍。
“这就是逆向迭代。先定义成功的样子,然后倒推出成功需要的条件,最后设计满足条件的方案。而不是像现在这样,不断尝试各种方案,看哪个能碰巧成功。”
实验室里很安静。
所有人都看着沈清辞,看着白板上那个简单的流程图。
小李小声对小王说:“听起来...有点道理?”
小王点头:“但实现起来很难吧?怎么定义‘通用特征’?”
张明摸着下巴:“这个思路,其实在机器学习里也有类似的概念,叫‘目标驱动设计’...”
陆星衍站起来,走到白板前。
他看着那些字,看了很久。
然后,他拿起红色马克笔——张明那支没墨的笔旁边,还有一支新的。
他在“条件1”下面画了一条线。
“识别通用特征与区域特征...”他喃喃自语,“可以通过多任务学习框架实现。每个区域作为一个任务,共享一个通用特征提取器,同时各有特定的适配层。”
他在旁边快速写下公式:
L_total = L_shared + λ∑L_local
总损失 = 共享损失 + λ×各区域损失之和
“λ是权衡参数。”陆星衍继续说,眼睛开始发亮,“如果λ太大,模型会过度适应各区域,失去通用性。如果λ太小,区域特有信息会被忽略。”
他转向“条件2”。
“跨区域噪声的鲁棒性...可以用我们之前证明过的自适应隐私预算分配的思想。但不是加噪声,而是加一个‘去噪’模块。在特征层面,而不是数据层面。”
他又写下一行公式。
“条件3,跳出当前优化框架...”陆星衍停顿,思考,“也许我们需要一个元学习器。不是直接优化模型参数,而是优化‘如何优化’的过程。”
他开始在白板上快速书写。
公式,符号,箭头,框架图。
他的手很快,字迹有些潦草,但逻辑清晰。
所有人都看着。
看着那个在三天沮丧后,突然重新点燃的陆星衍。
看着那个...因为一个想法,一个思路,一个来自沈清辞的、被反驳过但又重新拾起的思路,而重新焕发活力的陆星衍。
沈清辞也看着。
看着陆星衍专注的侧脸,看着他在白板上飞舞的手,看着他眼睛里重新出现的光芒。
胃部的疼痛似乎减轻了一些。
或者说,被某种更大的情感覆盖了。
那是...满足感。
是骄傲感。
是那种“我还能帮到他”的欣慰感。
即使十年过去了。
即使他不再是那个数学天才。
即使他的建议曾经被反驳。
但在关键时刻,他的思路,还能给陆星衍一个角度。
还能点燃那束光。
沈清辞笑了。
很浅,但真实。
然后,胃部的绞痛突然加剧。
像有人用拳头在里面狠狠捶了一下。
沈清辞的身体晃了一下,赶紧扶住会议桌。
他深吸一口气,强迫自己站直。
不能倒。
现在不能倒。
陆星衍正在突破。
团队正在重新燃起希望。
他必须撑着。
沈清辞悄悄把手按在胃部,用力按压,试图用物理压力缓解疼痛。
然后,他重新看向白板。
陆星衍已经写完了一个完整的框架草图。
“这是一个元学习框架下的多任务联邦学习架构。”他转身面对团队,语速很快但清晰,“核心创新点有两个:第一,通过共享特征提取器和区域适配层的分离,平衡通用性与特异性;第二,通过元学习器动态调整优化策略,避免局部极小值。”
他看向小李:“实现这个框架,需要修改现有的代码结构。你负责共享特征提取器部分。”
小李立刻点头:“好的陆老师!”
“小王,你负责区域适配层。”
“明白!”
“张博士,你和我一起推导元学习器的数学保证。”
“没问题!”
团队重新动起来了。
那种沮丧的、停滞的气氛被打破了。
取而代之的是一种紧张的、但充满希望的工作氛围。
沈清辞看着这一切,心里温暖。
然后,又是一阵绞痛。
这次更剧烈。
他咬紧牙关,没发出声音。
但额头已经开始冒冷汗。
他看了眼时间:晚上10点40分。
还早。
还需要...撑一会儿。
至少,等陆星衍把核心思路完全理清。
至少,等团队重新上路。
至少...
沈清辞悄悄走到实验室角落的饮水机旁,接了杯热水。
热水烫手,但他需要那种温度来对抗胃部的冰冷疼痛。
他靠在墙上,慢慢喝水。
眼睛还看着白板方向,看着陆星衍和张明讨论公式,看着小李和小王已经开始写代码。
一切都在好转。
除了...他的胃。
【晚上11点30分】
陆星衍完成了一段关键推导,放下马克笔。
转身,想找沈清辞讨论工程实现的时间表。
然后,他看到了。
看到了角落里的沈清辞。
看到了他苍白的脸色。
看到了他额头的冷汗。
看到了他一只手按着胃部,一只手撑着墙,身体微微佝偻的样子。
陆星衍的心脏猛地一紧。
他想起了十年前。
想起了沈清辞胃病发作时的样子。
想起了那些深夜,沈清辞在宿舍疼得睡不着,他会起来给他倒热水,给他拿药。
想起了...那种熟悉的、担心的感觉。
现在,十年后,那种感觉又回来了。
而且更强烈。
因为现在的沈清辞,看起来更脆弱。
因为现在的沈清辞,已经连续工作了三天。
因为现在的沈清辞...在痛,但什么都没说。
陆星衍的手指收紧。
他想走过去。
想问他:你还好吗?
想给他药,给他热水,让他休息。
但他没有。
他只是站在那里,看着。
因为现在的他们,不是十年前的关系。
因为现在的他们,是“陆教授”和“沈总”。
因为...他不知道,走过去,该说什么。
该用什么身份,什么语气,什么表情。
所以,他选择了沉默。
选择了...用另一种方式。
陆星衍转身,走到自己的办公桌前。
打开抽屉。
里面有两盒胃药。
一盒是旧的,过期的,沈清辞十年前吃的那种。
一盒是新的,沈清辞在发布会前夜放在他迷你吧里的。
陆星衍拿起新药,又拿起自己的保温杯——里面还有半杯温水。
他走到沈清辞面前。
没有说话。
只是把药和杯子递过去。
沈清辞抬起头,看着他。
脸色苍白,眼睛里有惊讶,有...别的复杂情绪。
“你...”沈清辞开口,声音有点哑。
“吃药。”陆星衍说,声音很平静,“然后去休息室躺一会儿。”
他把药和杯子塞进沈清辞手里。
动作有点生硬,像是不知道该怎么做才自然。
沈清辞看着手里的药,看着那杯水。
然后,他笑了。
笑容很虚弱,但很温暖。
“谢谢。”他说,倒出药片,和水吞下。
温水滑过喉咙,很舒服。
胃部的疼痛似乎真的减轻了一点——也许是心理作用。
陆星衍看着他吃完药,然后说:
“休息室有沙发。去躺半小时。”
“但工作...”沈清辞说。
“工作不差这半小时。”陆星衍打断他,“你去休息,我们继续。有进展我叫你。”
他的语气很坚定,不容反驳。
沈清辞看着他,看了几秒。
然后,点头。
“好。”他说,“半小时。然后我回来。”
他走向休息室,脚步有些虚浮。
陆星衍看着他的背影,直到他消失在门后。
然后,他转身,回到白板前。
“继续。”他对张明说,“我们抓紧时间。”
但他的耳朵,在听着休息室的方向。
听着那里的安静。
听着...沈清辞是否真的在休息。
【凌晨12点15分】
方案D的框架已经基本成型。
小李和小王在疯狂敲代码,测试初步实现。
张明在推导元学习器的收敛性证明,遇到一个难点,正在皱眉思考。
陆星衍站在白板前,看着整个架构。
理论上,这个框架应该能解决跨区域收敛的问题。
但实际数据会怎样?
不知道。
需要测试。
需要时间。
而他们最缺的,就是时间。
陆星衍看了眼休息室的方向。
门还关着。
沈清辞进去45分钟了。
说好的半小时,但陆星衍没有去叫他。
让他多休息一会儿吧。
陆星衍想。
他看起来...很累。
很痛。
陆星衍转身,想去倒杯咖啡。
然后,他听到休息室里传来一声闷响。
像是...什么东西倒地的声音。
陆星衍的身体瞬间僵住。
下一秒,他已经冲向休息室。
推开门。
看到沈清辞倒在沙发边,一只手撑着地面,试图站起来,但失败了。他的脸色白得像纸,额头上全是冷汗,嘴唇发紫。
“清辞!”陆星衍冲过去,扶住他。
十年了,他第一次叫出这个名字。
不是“沈总”。
是“清辞”。
在那个瞬间,在那个沈清辞倒在地上的瞬间,所有的防御,所有的距离,所有的“请自重”,都崩塌了。
只剩下最原始的担心。
最本能的情感。
沈清辞抬起头,看着他,眼神有些涣散。
“阿衍...”他声音很弱,“我...好像...”
话没说完,他身体一软,彻底晕了过去。
陆星衍的心脏停跳了一拍。
然后,他大声喊:
“张明!叫救护车!”
声音里的恐慌,让实验室里所有人都愣住了。
红灯闪烁,警笛鸣响。
车厢里,沈清辞躺在担架上,脸色苍白,眼睛紧闭。护士在给他测血压、挂点滴。
陆星衍坐在旁边,握着沈清辞没有打点滴的那只手。
那只手,很凉。
陆星衍握得很紧,试图用自己的温度温暖它。
他的脸色也很白,但不是病态的白,是恐惧的白。
脑海里反复回放着刚才的画面。
沈清辞倒地的样子。
沈清辞叫他“阿衍”的声音。
沈清辞...失去意识的样子。
陆星衍的呼吸在颤抖。
他想起十年前,沈清辞离开的那个夜晚。
想起那种失去的感觉。
想起那种...世界崩塌的感觉。
现在,那种感觉又回来了。
而且更强烈。
因为他刚刚开始重新相信。
刚刚开始重新靠近。
刚刚开始...允许自己再次爱这个人。
然后,这个人倒在了他面前。
“血压偏低,心率偏快。”护士说,记录数据,“应该是急性胃溃疡出血,加上过度疲劳和低血糖。具体需要到医院检查。”
陆星衍点头,但没说话。
他的眼睛一直看着沈清辞。
看着那张苍白的脸,看着那紧闭的眼睛,看着那微弱的呼吸。
他在心里祈祷。
用他所有能想到的方式祈祷。
祈祷沈清辞没事。
祈祷这不是什么严重的问题。
祈祷...不要再次失去。
救护车在夜色中疾驰。
窗外的城市灯火,像一条流动的光河。
但陆星衍看不到那些。
他只能看到沈清辞。
只能感觉到手里那只冰凉的手。
只能听到...自己心里,那个在尖叫的声音:
不要离开。
不要再离开我。
求你了。
【凌晨1点,医院急诊室】
沈清辞被推进去检查。
陆星衍等在走廊里。
走廊很冷,白色的灯光,白色的墙壁,白色的椅子。空气里有消毒水的味道,还有...那种医院特有的、混合着疾病和死亡的气息。
陆星衍坐在椅子上,双手交握,放在膝盖上。
他在等。
等医生出来。
等一个结果。
等...命运给他的,又一个判决。
走廊尽头有钟,显示时间:凌晨1点07分。
陆星衍看着那个钟。
看着秒针一格一格地走。
每一格,都像一年。
每一秒,都像一个世纪。
他想起了很多事。
想起了高中时,沈清辞第一次胃疼,他给他买药。
想起了大学时,听说沈清辞在国外胃出血住院,他整夜睡不着。
想起了重逢后,沈清辞给他送胃药,说“新款的,效果更好”。
想起了...刚才,他把药递给沈清辞时,沈清辞那个虚弱的、温暖的笑容。
陆星衍闭上眼睛。
心脏某处,尖锐地疼。
不是生理的疼。
是情感的疼。
是恐惧的疼。
是...爱的疼。
走廊里传来脚步声。
陆星衍睁开眼睛。
医生走出来,是个中年男性,表情严肃但不算太沉重。
“你是家属?”医生问。
陆星衍站起来:“我是...朋友。他怎么样?”
“急性胃溃疡出血,但不算太严重。”医生说,“已经止血了。需要住院观察几天。主要是过度疲劳、压力大、饮食不规律导致的。病人有胃病史吗?”
“有。”陆星衍说,“高中时候就有。”
“那就更要小心了。”医生说,“胃病最怕折腾。这次算警告,下次可能就严重了。病人需要好好休息,调整作息,注意饮食。”
陆星衍点头:“好。我会...我们会注意。”
“去办住院手续吧。”医生说,“病人已经醒了,可以进去看他,但别聊太久,让他休息。”
“谢谢医生。”
陆星衍去办了手续,然后回到病房。
单人病房,很安静。
沈清辞躺在床上,脸色还是苍白,但比刚才好一些了。点滴瓶里的液体一滴一滴落下,像时间的刻度。
他看到陆星衍进来,笑了笑。
笑容很虚弱,但眼睛里有光。
“阿衍。”他轻声说。
陆星衍走到床边,看着他。
看了很久。
然后,他说:
“你吓死我了。”
声音很轻,但每个字都在颤抖。
沈清辞伸出手——没打点滴的那只手。
陆星衍握住它。
这次,手是温的了。
“对不起。”沈清辞说,“我不是故意的。”
“你总是这样。”陆星衍说,声音里有压抑的情绪,“高中时候就是这样,一工作起来就忘记吃饭,忘记休息,然后胃疼。十年了,一点没变。”
“我变了。”沈清辞说,“我知道吃药了。你给我的药,我吃了。”
陆星衍看着他。
看着这个在病床上,还试图开玩笑的男人。
看着这个...让他担心得要死的男人。
然后,陆星衍的眼睛红了。
他低下头,不想让沈清辞看到。
但沈清辞看到了。
“阿衍...”沈清辞的声音也哑了,“别哭。我没事。”
“我没哭。”陆星衍说,但声音哽咽。
他抬起头,眼睛确实红了,但没有眼泪掉下来。
“沈清辞,”他叫他的全名,很认真,“你听好了。从现在开始,你必须按时吃饭,按时休息,按时...照顾自己。如果你做不到,我就...我就...”
他就什么?
他不知道。
他能做什么?
他不是沈清辞的什么人。
没有权利要求什么。
没有资格命令什么。
但沈清辞笑了。
笑容很温柔。
“你就怎么样?”他问,眼神里有期待。
陆星衍看着他,看了很久。
然后,他说:
“我就每天给你送饭。每天提醒你休息。每天...监督你。”
说完,他自己都愣住了。
因为这话,太亲密了。
太像...某种承诺了。
但沈清辞笑得更开心了。
“好。”他说,“我接受监督。从今天开始,你是我的健康监督员。”
陆星衍看着他,然后,也微微笑了。
很浅,但真实。
“睡吧。”他说,“我在这里。”
“你不回实验室?”沈清辞问。
“不回了。”陆星衍说,“张明他们会处理。现在,你需要休息。我也...需要在这里。”
需要在这里。
需要看着你。
需要确认你没事。
需要...不再离开。
沈清辞看着他,眼睛里有复杂的情绪:感动,愧疚,爱,还有...希望。
“阿衍,”他轻声说,“谢谢你。”
“不用谢。”陆星衍说,“睡吧。”
沈清辞闭上眼睛。
很快,呼吸变得平稳。
他睡着了。
陆星衍坐在床边,看着他。
看着这个他爱了十五年,恨了十年,现在又重新爱的人。
看着这个,让他担心,让他害怕,但也让他...重新活过来的人。
窗外的夜色,很深。
但病房里,很暖。
因为有人在。
因为...不再是一个人。
陆星衍握着沈清辞的手,没有放开。
他想,也许这就是轨道重汇的意义。
不是在顺境中并肩。
而是在逆境中,在病痛中,在恐惧中,依然...在一起。
依然不放开。
依然...选择彼此。
陆星衍闭上眼睛。
也睡了。
很浅,但很安心。
因为知道,醒来时,那个人还在。