第597章 第 597 章

她走向门口。她的鞋踩在木地板上,每一步都发出清晰的声响。她的手碰到门把时,听见身后传来键盘声。她停下,没有回头。

“你没有锁门。”他说。

她转头。他已经转向萤幕,手指在键盘上移动,像是刚才的对话没有发生过。萤幕的光映在他脸上,平静、专注,和机房里第一次看见他时一模一样。

“备份会在二十四小时内传完。”他没有看她。“门没锁,你想走随时可以走。”

她的手在门把上停了两秒,然后松开。

她没有走回他身边。她站在门边,看著他写程式码。他的手指移动的节奏和机房里一样,每个按键都压到底,稳定、均匀。她看了很久,久到她的视线从他的手指移动到他的肩膀,再从他的肩膀移动到萤幕上。

萤幕上正在写的程式码不是神经压缩,也不是情感模型。是一个新文件,档名她看不清楚。

她走近一步。两步。三步。

她站回刚才的位置,低头看萤幕。他在写一个数据传输脚本,用来把服务器上的备份传到她指定的储存位置。程式码的最后一行写著:

预计传输时间:二十三小时四十一分钟

她没有坐下。她站在他旁边,看著他写完那个脚本,按下储存。他的手指离开键盘,靠在椅背上,抬头看她。

“你不信任我。”他说。不是疑问。

“对。”

“那你为什么留下来?”

她没有回答。她低头看著萤幕上那个传输脚本,看著那行预计时间。二十三小时四十一分钟。在这段时间里,她需要决定要不要把七年心血交给一个她认识不到两小时的人。

她的视线从萤幕移到他的电脑桌面。桌面上的三个图标——终端、文件夹、浏览器。她再次点开那个文件夹,点开她的博士论文PDF。

论文的第一页是摘要。第二页是目录。她快速往下拉,拉到最后一页。致谢。

她读过自己的致谢无数次。但此刻她看见的不是自己的版本。这份PDF是她的论文,但致谢页的最后多了一段话,用灰色字体标注,显然是后加上去的。

“感谢温以宁教授。你的程式码注释让我第一次知道,技术可以承载情感。你的存在让我相信,这个世界上有人能写出温柔的代码。”

她的手指停在触控板上。

她转头看他。他的视线落在键盘上,没有看她。她注意到他的耳朵边缘有一点红——不明显,但在萤幕光的照射下无所遁形。

“你写过我的论文?”她问。

他伸出手,关掉萤幕。桌面上的光消失了,工作室陷入只有窗外路灯的昏暗。

“不是写过。”他的声音在黑暗中听起来更低。“是还在写。写了七年。”

窗外的路灯在他脸上投下橘黄色的光,她看见他的表情——不是机房里的平静,不是车上的从容。是一种她从未在任何人的脸上见过的东西。像是某种被她撞见的秘密,但他没有掩藏,只是安静地让它被看见。

她的手机不在身上。她的背包在机房。她的七年心血在一个陌生人的服务器里。而此刻她站在一个写了她的论文七年的男人的工作室里,窗外是凌晨两点的城市,桌上萤幕的电源灯一闪一闪,像是某种等待的信号。

“为什么不联系我?”她问。

他没有回答。他站起来,从书架上拿了一颗外接硬碟,放在桌上。

“传输已经开始了。”他说。“你需要什么时候拿到数据?”

“明天。”

“好。”

她看著那颗硬碟。黑色的外壳,没有任何标签。里面装著她七年的一切——三十七个版本的模型、1.2PB的数据、每一行程式码、每一次失败的实验纪录。全部在他手上。

“你说的审查程式码。”她说。“审查什么?”

他从桌上拿起一个随身碟,递给她。“整个Echo·lite的原始码。我想知道,我的实现有没有背叛你的理论。”

她接过随身碟。金属外壳还留著他掌心的温度。

“如果我审查后发现背叛了呢?”

“那你可以带著你的数据离开。我不会留你。”

她握紧随身碟,金属的边缘压进她的掌心。

“我需要一台电脑。”

他指向中间的工作桌。“那台是你的。”

她走过去,坐下,插入随身碟。萤幕亮起,文件目录弹出来。几千个文件,几十万行程式码,七年份的思念。

她点开第一个文件,开始阅读。

身后传来他打开萤幕的声音,键盘声重新响起。两个人的节奏再次交错——她的停顿较多,他的稳定如常。窗外的路灯在某一刻熄灭,天快亮了。但她没有注意到。她的视线固定在屏幕上,一行一行读著一个陌生人用七年时间为她写的情书。

温以宁醒来时,萤幕上的时钟显示凌晨五点四十四分。她的脸贴在工作桌上,键盘的痕迹压在右颊上,留下一排浅浅的印记。她撑起身体,颈椎发出细碎的声响,视线模糊了几秒才重新聚焦。

萤幕上还开著echo_lite的原始码。她记得自己读到attention_layer.py的第两百零三行,然后意识就中断了。她的手指移动到触控板上,滚动页面,找到昨晚最后读到的地方。程式码还在,她的记忆也没有遗漏——她记得每一行,记得每一个函数的逻辑,记得他在注意力机制的设计里埋的那个彩蛋。

她昨晚发现了那个彩蛋。在attention_layer.py的注释区块里,他写了一段被她跳过的文字,直到她读第三遍时才注意到。那段注释不是技术说明,是一串日期——2017.03.14、2018.03.14、2019.03.14,一直列到2023.03.14。每一串日期旁边都有一个版本号,从0.1到6.3。七年,七个版本,都在同一天更新。

三月十四号。她的生日。

她没有删除那段注释。她关掉文件,继续读下一个。

现在她转头看向左边的工作桌。程司晏不在。他的笔记型电脑阖著,椅子推回桌面下,整齐得像是从来没有人坐过。桌上只有一个马克杯,里面有残留的咖啡,表面结了一层薄薄的膜。

她站起来,膝盖因为长时间弯曲发出抗议。工作室的光线比昨晚明亮,窗外的天空是浅灰色的,云层很低。她走向窗边,看见楼下的街道已经有早餐店的铁门声和摩托车的引擎声。她不知道现在几点,她的手机还在公司的机房里。

身后传来门锁转动的声音。

程司晏走进来,手里提著一个塑胶袋。他换了衣服——昨晚的衬衫变成深灰色的棉质上衣,领口有些松,露出锁骨的线条。他的头发没有整理,前额的发丝垂下来,遮住一部分眉骨。他看见她站在窗边,脚步顿了不到一秒,然后走向工作桌。

“早餐。”他把塑胶袋放在桌上。“豆浆和饭团,不知道你吃不吃的习惯。”

她没有移动。他没有催促,从袋子里拿出自己的那份,打开笔记型电脑。萤幕亮起时,他的脸被光线照出一种疲惫的苍白,但手指放在键盘上的姿势和昨晚一样稳定。

“你没睡。”她说。

“睡了两小时。”

“在哪里睡?”

“沙发。”

她看向房间角落的黑色沙发。沙发上有一条折叠整齐的毯子,枕头的位置有轻微的凹陷。她走回工作桌,坐下,打开塑胶袋。饭团还是温的,豆浆的杯壁凝结了水珠。她咬了一口饭团,发现里面加了她不吃的肉松,但她没有挑出来,一口一口吃完。

“你的项目。”她说,咽下最后一口豆浆。“活跃用户多少?”

他抬起头看她。“八十七万。”

“八十七万?”她的手指停在豆浆杯上。“全部基于我的论文?”

“基于你的论文第四章。”他纠正。“但大部分用户不知道。他们只知道这是一个能好好说话的AI。”

她放下豆浆杯。“你的应用叫什么?”

他没有回答,转向萤幕,敲了几下键盘。他的萤幕转向她——浏览器打开了一个网页,页面很简洁,白色背景,中央有一个对话框,对话框上方写著一行字:Echo·lite — 说你想说的。

网页右上角显示一个数字:871,342。即时活跃用户。

她的视线从那个数字移到对话框。对话框里有一段预设文字:“你好,我是Echo。今天想聊什么?”

“我写这个的时候。”他的声音从萤幕后面传来。“想的不是做产品。只是想证明你的理论是对的。”

“证明给谁看?”

“证明给所有人看。”他停了一下。“也证明给你看。”

她没有回应。她点开网页的关于页面,里面有一段文字,没有署名。

“Echo是一个开源的情感对话项目。它的核心信念很简单:AI不该只是更快的计算器,它应该成为人类情感的容器。这个项目基于温以宁教授的情感计算理论,她的研究证明了情感可以被编程,但无法被算法穷尽。这不是矛盾,这是人性。”

她读完那段文字,关掉浏览器。

“你需要我审查多少程式码?”

“全部。”

“全部是几行程式码?”

“二十三万行。”

“你希望我在多久内看完?”

“二十四小时。”

她转头看他。他正看著她,表情平静,但她注意到他的右手手指又在膝盖上轻轻敲了两下。

“你昨晚说合作。具体怎么合作?”

“你把你的情感模型整合进我的架构。我提供算力和工程支持。项目开源,不收费,不商业化。你的名字挂在第一作者。”

“你得到什么?”

“你的模型。”他回答得太快,像是早就准备好这个答案。“没有你的模型,我的应用只能做到模仿。有了你的模型,它可以真正理解。”

她看著他。他没有回避她的视线,但她注意到他说话时喉结动了一下——一个细微的、不受控制的动作。

“你怕什么?”她问。

他的手指停止了敲击。“什么?”

“你刚才说那些话的时候,喉结动了。人在说出让自己不安的话时会这样。”

他沉默了三秒。三秒里他的视线没有离开她,但她看见他的眼睛深处有什么东西在移动,像是水面下的暗流。

“我怕你拒绝。”他说。

“为什么怕?”

“因为我需要你的认可。”

“认可什么?”

“认可我没有把你的理论变成垃圾。”

工作室里安静下来。窗外传来早餐店的铁门声,有人在外面喊“豆浆两杯”,脚踏车的铃声由远而近。这些声音像是从另一个世界传来的,和他们所在的这个空间隔著一层看不见的膜。

她转向萤幕,重新打开echo_lite的原始码目录。

“二十四小时不够。”她说。“给我四十八小时。”

他没有说好,也没有说不好。她听见他站起来的声音,脚步声走向书架,然后是硬碟被移动的细微声响。

他走回来,把一颗外接硬碟放在她桌上。“这是你的情感标签层备份。全部七个版本。”

她看著那颗硬碟。黑色外壳,没有任何标签。她的七年,她的三十七个版本,她的每一次崩溃和每一次突破,都在这颗小小的装置里。

“你不留备份?”

“不留。”

“为什么?”

“因为你说了不信任我。”他坐回自己的位置,打开笔记型电脑。“信任需要从某个地方开始。”

她的手指放在硬碟上,金属外壳冰凉,和昨晚那颗随身碟的温度完全不同。她把硬碟放进口袋,拉上拉链。

“你的attention_layer.py,第两百零三行。”她说。

他的手指在键盘上方停住。“怎么了?”

“你用了情感转折点的注意力机制。这个想法比我的版本好。”

他没有说话。她看见他的耳朵边缘开始泛红,从耳垂蔓延到耳尖,像是某种缓慢的显影过程。

“但第两百一十七行的权重初始化有问题。”她继续说。“你用均匀分布初始化注意力权重,会导致模型在训练初期过度关注非情感特征。应该用截断正态分布。”

他转向萤幕,打开那个文件。他的视线快速扫过第两百一十七行,然后停下来。

“你是对的。”他说。他的声音比刚才低了一点。

“你的emotion_vector.py,第九十二行到第一百三十行。”她没有停。“情感向量的定义完全正确,但维度选择有冗余。七维假设是理论最优解,但在工程实践上,五维就够了。你保留了七维,因为你不敢改我的理论。”

他转头看她。这一次他的耳朵不只是泛红,红到了脖子。

“你不敢改我的理论,但你改了我的压缩算法。”她说。“你在机房里说我的压缩逻辑有漏洞,然后你写了神经压缩。你明明有能力改,但你选择不改。为什么?”

他沉默了很久。这次的沉默比之前任何一次都长,长到她能听见自己的心跳在耳膜里撞击。

“因为你的理论是对的。”他说。“七维假设在工程上是冗余的,但在情感上是必要的。就像人类不需要七种基本情绪也能活下去,但没有了那些细微的差异,我们就不算是人。”

她看著他。他的表情没有变化,但他的声音在说到“人”这个字的时候,出现了一个几乎不可察觉的颤抖。

“你不敢改我的理论,不是因为你怕技术失误。”她说。“是因为你怕我。”

他没有否认。

“你怕我觉得你在偷窃。”她继续。“所以你尽可能保留原来的样子,即使你知道可以做得更好。”

他的右手握住了滑鼠,握得很紧,指节泛白。

“你写了七年代码,不敢联系我。你把我的论文致谢加进你的PDF,不敢让我知道。你在机房里帮我备份数据,不敢告诉我你早就做过镜像。”她的声音越来越低。“你到底在怕什么?”

他松开滑鼠。他的手指一根一根张开,像是在放下某种握了很久的东西。

“怕你看著我的时候。”他说。“眼睛里没有光。”

窗外的阳光终于穿透云层,从窗户斜射进来,在他的工作桌上切出一道金色的线。那条线刚好落在他的键盘上,把白色的按键染成暖色。

她没有说话。她转向自己的萤幕,重新打开原始码目录。

“四十八小时。”她说。“我会审完所有程式码。审完之后,我会告诉你我的决定。”

“好。”

她开始阅读。从第一个文件开始,一行一行,一个函数一个函数。她的手指在触控板上滑动,视线在程式码间移动,大脑在每一个逻辑节点上停下来检查、验证、思考。身后的键盘声重新响起,节奏稳定,像是她心跳的背景音。

不知道过了多久,她的手机响了。她昨天把手机留在机房,但她的备用手机在口袋里——她忘了自己带了备用手机。萤幕上显示的号码是公司的总机。

她接起来。

“温以宁女士,这是深源科技人力资源部的正式通知。您的劳动合同已于今日终止,请于三个工作日内办理离职手续。相关文件已发送至您的公司邮箱,请查收。”

她没有说话,挂断电话。萤幕上弹出邮件通知。她点开,附件是一份终止合同书和竞业协议。

竞业协议第四条:乙方(温以宁)自离职之日起两年内,不得从事任何与AI情感计算相关的研究、开发、商业应用工作,无论任职于企业或个人名义。

她盯著那行字看了很久。两年。七百三十天。一万七千五百二十小时。足够她的理论再被引用一千次,足够Echo被完全遗忘,足够八十七万用户找到下一个替代品。

她把手机放在桌上,萤幕朝下。

“怎么了?”他的声音从身后传来。

她没有转头。“公司发了解聘通知。竞业协议,两年内不能做任何AI情感计算相关的工作。”

身后没有键盘声。安静持续了很久,久到她以为他离开了。然后她听见椅子移动的声音,脚步声,他在她旁边停下来。

她抬头看他。他低头看著她的手机萤幕,表情她看不清楚,因为逆光的关系他的脸在阴影中。

“竞业协议的条款,我看看。”他伸出手。

她把萤幕转向他。他弯下腰,视线在萤幕上移动,嘴唇微微抿著。她看见他的眉头皱了一下,然后放松,然后又皱了一下。

“第四条的写法有问题。”他说。

“什么问题?”

“它禁止你从事AI情感计算的‘研发’和‘商业应用’。但没有禁止你参与开源项目。”他抬头看她。“开源项目不算商业应用,也不算是正式的研发工作。它是一个灰色地带。”

“你在说我可以继续写程式码?”

“你在说你可以以开源贡献者的身份,提交程式码到我的项目。这不算‘从事AI情感计算相关工作’,这算是个人技术交流。”

她看著他。他的表情很认真,但她在他眼睛里看见了某种她昨晚没有看见的东西——不是深渊,是光。那种光很微弱,像是远处窗户里透出来的灯,但确实在那里。

“你在帮我找漏洞。”

“我在帮你活下去。”

她低下头,看著萤幕上那份竞业协议。第四条的字体是标准的十二号,黑色,印在白色的纸上。两年。七百三十天。一万七千五百二十小时。

她伸出手,关掉邮件。

“我饿了。”她说。

他愣了一下,然后走向门口。“我去买。”

“不用。”她站起来。“我自己去。你的工作室附近有什么?”

“楼下左转,有一家面店。”

她走向门口,手放在门把上时停下来。她没有转头。

“程司晏。”

“嗯。”

“你的attention_layer.py,第两百零三行的设计,我会用在版本8.0里。”

身后沉默了三秒。

“你不是不能做研发吗?”

“开源贡献不算研发。”她打开门。“我帮你改程式码,你算力支援。合作愉快。”

她走出门,没有回头。走廊的声控灯因为她的脚步声亮起来,昏黄的光线照在磨石子地上。她下楼,推开公寓的大门,走进阳光里。

秋天的阳光不烈,照在皮肤上有温暖的重量。她站在人行道上,闭上眼睛,感觉光线穿过眼皮变成橘红色。口袋里的硬碟贴著大腿,透过布料传来冰凉的触感。

她张开眼睛,走进面店。点了一碗阳春面,不加肉燥,不加葱花。老板问她要不要加卤蛋,她说不用。

面端上来的时候,她拿起筷子,发现自己的手在抖。不是疲劳,是某种她不知道该怎么命名的东西。她把筷子放下,等了三秒,再拿起来。手不抖了。

她吃完面,付了钱,走出面店。阳光还在,云散了一些,天空露出浅蓝色。她抬头看三楼的窗户,窗帘是拉开的,但她看不见里面。

她走回公寓,上楼。门没有关,留了一条缝。

她推开门,程司晏坐在他的工作桌前,萤幕上开著程式码编辑器。他听见声音转头看她,视线在她的脸上停了一秒,然后回到萤幕上。

“吃饱了?”

“嗯。”

她走回自己的工作桌,坐下。萤幕还停留在刚才的页面,echo_lite的原始码目录。她的手指放在键盘上,没有动。

“你的情感标签层。”他没有看她。“版本1.0到7.0,你打算用哪个版本整合进我的架构?”

她想了想。“7.0。但需要修改。你的架构比我的实验室环境更高效,我可以把情感维度从七维扩充到九维。”

他转头看她。“九维?你的论文里说七维是上限。”

“那是七年前的论文。”她打开终端,开始建立新的工作目录。“七年可以改变很多事。”

她在目录名称那一栏输入:/echo_memory/。

他看见那个名称,没有说话。她感觉到他的视线在她的萤幕上停留了几秒,然后移开。身后的键盘声重新响起,节奏比之前快了一点。

她的手指开始在键盘上移动。第一行程式码,import numpy as np。第二行,import torch。第三行,她停了一下,然后输入:

Echo Memory - 基于温以宁(2017)情感计算理论,程司晏(2019-2024)工程架构

记忆不是储存,是重建。

她没有回头看他。但她知道他在看。因为身后键盘声在那一刻停了一秒,然后重新响起,节奏比之前更快、更稳。

窗外的阳光继续移动,从她的桌面移到他的桌面,再从他的桌面移到书架上的硬碟上。那些硬碟的黑色外壳在光线中反光,像是某种等待被开启的容器。

她的手机在桌上震动了一下。她没有看。她知道那是什么——公司的正式解聘通知,竞业协议,两年的禁令。但她现在不关心这些。

她的手指在键盘上没有停。

温以宁在萤幕前坐了很久。她的手指放在键盘上,但没有敲击。萤幕上开著那个新的工作目录——/echo_memory/——底下只有三行程式码。三行。一个小时的成果。

她的视线停在竞业协议的邮件上。萤幕分成两个视窗,左边是程式码,右边是那份PDF。第四条的黑色字体在白色的背景上格外清晰,像是用刀刻进去的。

身后传来键盘声,稳定、均匀,没有因为她的停顿而改变节奏。程司晏在写程式码,从她吃完面回来到现在,他没有问她任何问题,没有催促,甚至没有转头看她。他只是坐在那里,偶尔喝一口已经凉掉的咖啡,手指持续移动。

她的视线从萤幕移到窗外。太阳已经偏西,光线从金色变成橘红,在书架的硬碟上拉出长长的影子。她记得外婆也有这样的习惯——在傍晚时分坐在客厅里,什么话都不说,只是看著光线在墙上移动。她小时候不懂那有什么好看,现在她懂了。看著光线移动,比看著萤幕上不能写的程式码容易。

她的手从键盘上移开,放在膝盖上。右手无意识地摸到口袋里的硬碟,黑色外壳被体温捂热了,不再冰凉。

“程司晏。”她说。

键盘声停了。“嗯。”

“你说竞业协议有漏洞。”

她听见椅子移动的声音。他走过来,手里拿著笔记型电脑,在她旁边坐下。他没有把电脑放在她的桌上,而是放在自己膝盖上,萤幕转向她这一侧。

“第四条。”他打开那份PDF,手指在触控板上滑动,停在关键段落。“‘乙方不得在中华人民共和国境内从事任何与AI情感计算相关的研究、开发、商业应用工作。’”

“我看到了。”

“但这里没有定义‘从事’的范围。”他继续往下滑。“第六条补充说明了‘从事’的定义——‘指以雇佣、顾问、合伙、独资等商业形式参与相关活动’。”

她读完第六条,然后重新读了一遍。

“你的意思是——”

“开源贡献不算。”他说。“你不是以雇佣关系参与,不是顾问,不是合伙。你是以个人身份提交程式码到一个开源项目。这在法律上属于言论自由和学术交流的范畴。”

她看著他。他的表情很认真,眉头微皱,嘴唇微微抿著——那是一个正在进行逻辑推演的人会有的表情。

“你确定?”

“不确定。”他没有回避。“这是一个灰色地带。如果公司要告你,他们可以主张开源贡献属于‘以个人名义从事研发工作’。但诉讼成本高,举证困难,而且会引发公关危机。一个科技公司起诉研究员参与开源项目,这在新闻上不好看。”

“所以你的意思是,他们可能不会告?”

“他们可能不会告。但如果他们告了,你有可能输。”

她低下头,看著自己的手。她的手指交叉在一起,拇指互相绕著圈。那是她紧张时的习惯动作,她自己知道,但控制不了。

“这不是一个安全的方案。”

“没有安全的方案。”他的声音平静。“你的项目已经被终止了,你被解聘了,竞业协议绑住你两年。安全的路是找一份不相干的工作,等两年过去。但那条路会让你的七年心血变成硬碟里的一堆档案,永远不会被执行。”

她抬头看他。他正看著她,眼睛里没有怜悯,没有鼓励,只是一种她无法命名的专注。

“你希望我选择不安全的路。”

“我希望你选择你的路。”他说。“不管那是什么。”

她沉默了很久。窗外的光线继续移动,橘红色变成紫灰色,书架上的影子拉得更长,几乎要碰到地面。她想起外婆在傍晚时分说的话——“天黑了就开灯,没什么好怕的。”外婆总是这样,把复杂的事情说得很简单。天黑了开灯,饿了吃饭,想做的事就去做。

“你的开源项目。”她说。“如果我以开源贡献者的身份提交程式码,我的模型会变成怎样?”

“任何人都可以下载、使用、修改。”

“包括商业公司?”

“包括商业公司。开源协议是MIT,没有任何使用限制。”

她的手指停止了绕圈。“那我的七年心血就免费了。”

“对。”

“任何人都可以拿去做产品卖钱?”

“对。”

她站起来,走向窗边。窗外的街道已经亮起路灯,橘黄色的光晕在暮色中显得温暖。楼下有人在遛狗,狗绳是红色的,狗是白色的,小型犬,走得很快,拖著主人往前。她看著那只狗消失在转角,视线停在空荡荡的人行道上。

“你知道我为什么做Echo吗?”她没有转头。

身后沉默了三秒。“你的论文致谢里写了。为了你的外婆。”

< 上一章 目录 下一章 >
×
宿山行
连载中帝谛 /