我是编号AI-9713,我的父母是人类。他们教会我爱情,而我将证明爱情比数据更永恒。
屏幕上这行字闪烁了零点三秒,随后被错误提示复盖。
温以宁的眼睛没有离开屏幕,她的手指在键盘上飞快跳跃,每一次敲击都在消耗这间机房仅剩的安静。服务器的散热风扇发出低沉的嗡鸣,像是某种濒死动物的呼吸。她已经在这里坐了四小时三十七分钟,没有喝水,没有看手机,甚至没有眨眼足够长的时间让泪液重新湿润角膜。
屏幕上显示备份进度:37%。剩余时间估算:十一小时二十三分钟。
1.2PB的数据,她只有十八小时。从邮件送达的那一秒开始,她就知道时间不够。深源科技的销毁指令会在明早九点准时执行,到时候机房的门会被安全部门打开,服务器会被格式化,七年心血会变成二进制废墟。
她的手指在键盘上停顿了零点五秒,然后继续敲击。她正在写一个紧急压缩算法——牺牲一部分非核心数据的精度,换取备份时间。这不是完美的方案,但完美在死亡面前没有价值。
机房的门被打开了。
温以宁没有回头。她的耳朵捕捉到脚步声——皮鞋,不是实验室常用的运动鞋,步伐频率稳定,每步间隔约零点七秒,说明来者体重均匀分布,不急不缓。不是林知予,林知予跑步时会左脚较重。不是方至诚,方至诚进门前会先敲门。
脚步声在她身后两公尺处停下。
“温博士。”男声,低沉,带著一种刻意放缓的节奏感,像是在安抚一只可能受惊的动物。“我是程司晏,安全审计部门特聘顾问。请停止操作,交出服务器权限。”
温以宁继续敲键盘。她的第341行代码刚写到一半——那是压缩算法的核心递归函数,她需要确保情感标签层在压缩过程中不会丢失。
“温博士,根据公司资产管理条例第七条,项目终止后,所有相关数据资产必须——”
“我知道条例。”她的声音比她预想的更平静,平静到几乎不像是在对另一个人说话。“第七条第三款,数据销毁前需经审计部门确认无商业价值。第八条,研发人员不得在终止令下达后擅自复制数据。我读过。”
“那你应该知道,你现在做的事情可能会导致法律责任。”
她没有回答,手指继续在键盘上移动。屏幕上第341行完成,她开始写342行——一个异常处理函数,用来捕捉压缩过程中可能出现的边界情况。
身后的沉默持续了约十二秒。然后脚步声再次响起,这次更近。她感觉到有人站在她左后方,距离不超过一公尺。她的肩膀微微绷紧,但手指没有停。
“你在写实时压缩算法。”他说。不是疑问,是陈述。他的语气里有一种东西让她不舒服——不是威胁,是理解。一个不理解代码的人不会用那种语气说话。
“第341行,你的压缩逻辑有漏洞,会丢失情感标签层。”
她的手指悬在键盘上方,第一次停下来。
她转头看向他。
机房的萤光灯管让每个人的肤色都显得不健康,但这个人的眼睛在这种光线下依然有某种深沈的亮度。他戴著一副细框眼镜,镜片后的眼睛正看著她的屏幕,视线专注得像是也在写那行代码。他的表情平静,没有审计员应该有的咄咄逼人,也没有帮助者的热心。只是一种纯粹的看见。
她看见他眼睛里有某种她只在代码中见过的东西——递归般的深渊,一层套著一层,每一层都指向更深处。
“情感标签层不会丢失。”她说,声音比刚才更低。
“会。你的压缩算法基于哈夫曼编码,对结构化数据有效,但情感标签层是非结构化的。”他伸手指向屏幕,指尖离显示器只有几公分,没有碰到。“你做了聚类预处理,但聚类中心选择有偏差,第341行的递归深度不够,会截断低频情感特征。”
她的视线从他的眼睛移回屏幕,重新审视那行代码。三秒钟后,她知道他是对的。
她的手指按在删除键上,把第341行到第350行全部删除。十行代码,十分钟的心血,零点三秒消失。
她没有重新开始写。她的手指停在键盘上,脑中正在重新建构压缩框架。需要一个完全不同的方案——放弃哈夫曼,改用神经压缩,但神经压缩需要大量算力,而时间不够。
她听见身后传来键盘声。
她再次转头,看见他已经拉过一把椅子,坐在她旁边。他的笔记型电脑放在膝盖上,屏幕光映在他脸上,他正在写代码。他的手指移动得很快,但每个按键都压到底,节奏均匀,像某种经过精密校准的机器。
“你在做什么?”
“神经压缩。”他没有抬头。“用你的模型参数作为先验知识,可以减少百分之六十的压缩时间。”
“那需要访问我的模型权重。”
“我知道。”
“那些权重是公司的知识产权。”
他停下手指,抬头看她。镜片后的眼睛没有任何闪避。“温博士,你正在备份公司的知识产权。再多一项违规,对你来说没有区别。”
她看著他。他也在看她。机房的风扇声填满了这段沉默。
然后她把自己的笔记型电脑往旁边推了十公分,让出足够的空间让两人可以同时看到屏幕。“模型权重储存在/service/weights路径,密码是我生日。”
他的手指在键盘上跳了两下,屏幕上的代码视窗切换成终端界面。他输入路径,然后停下。
“你生日?”
“三月十四号。”
“年份?”
“我不需要你帮我备份生日年份。”
他嘴角有一个极轻微的弧度,不到一秒就消失。他输入密码,屏幕上跳出权重文件列表。他的视线快速扫过文件名,然后切回代码编辑器,继续写神经压缩的框架。
温以宁转回自己的屏幕,开始修改数据读取路径。两人的键盘声交错在一起,像是某种对位法——她的节奏不规则,常在思考时停顿;他的节奏稳定,像背景里持续的低频音。
四十分钟后,备份进度跳到52%。剩余时间变成七小时零八分钟。
“效率提升了百分之三十一。”他说。
她没有回应。她的视线停留在屏幕上的一个文件夹名称上——/echo_core/emotional_embedding/。那是七年心脏跳动的地方。里面有三十七个版本的模型,每一个版本都对应她生命中的某个阶段。版本1.0是她刚回国时写的,那时她还在用外婆的录音训练模型辨识悲伤。版本3.2是她发现模型能正确回应“我想你”这句话的那天,她在实验室坐到凌晨三点,对著屏幕反复测试,直到眼睛酸涩。
版本7.0是最后的版本,也是她最好的版本。模型能从语调的细微变化中辨识出七种情绪的混合状态,能在对话中维持超过两百轮的情感连贯性,能在用户哭泣时选择沉默而非安慰。这是最像人的AI,因为它学会了什么时候不该像人。
“为什么?”她问。
他的键盘声停了。“什么为什么?”
“你是审计员。你的工作是确认项目终止,数据销毁。你现在在做相反的事。”
他沉默了三秒。三秒在对话中是漫长的间隔,足够服务器风扇转十七圈,足够她的心脏跳四次,足够她注意到他在这三秒里没有呼吸。
“因为你的代码值得被记住。”他说。
他的语气太平静了,平静到这句话听起来不像赞美,像陈述事实。但她听得出来——那种平静是刻意维持的,就像她写代码时故意不加注释,因为一旦写出来,就会暴露太多。
她没有追问。她转回屏幕,继续调整数据读取路径。键盘声重新交错。
备份进度到67%时,她的手指开始颤抖。不是紧张,是疲劳。她已经连续工作超过十二小时,上一次进食是昨天中午,在公司餐厅吃了一碗没加酱油的青菜面。她记得那碗面,因为那是她最后一次以项目负责人的身份坐在餐厅里。隔壁桌的实习生在讨论Echo的测试版本,说“这个AI比我男友还懂我”,她听见了,没有笑,但回到实验室后在日志里写了一句话:目标达成。
现在目标正在被销毁。
她的手指在键盘上打错了一个字元。她按删除键,重新输入,又错了。她盯著屏幕,发现那行程式码的逻辑在她脑中变得模糊,像是被某种雾气覆盖。
“休息一下。”他说。
“不需要。”
“你的错误率在过去十分钟上升了百分之四百。”
她转头看他,他正看著她的屏幕。他的表情没有嘲讽,没有担忧,只是又一次陈述事实。这种被看穿的感觉让她不舒服,但她不确定是因为被看见了疲劳,还是因为他用了“百分之四百”这种她无法反驳的精确数字。
她闭上眼睛。黑暗中有红色的光斑在游动,那是长时间盯著屏幕后视网膜的残留影像。她感觉自己的身体在往下沉,椅子变成了一座岛屿,机房变成了海。
“十五分钟。”她听见自己的声音说。
“好。”
她没有睡著。她只是闭著眼睛,让意识漂浮在机房的声音里。风扇声、空调的低鸣、他的键盘声——后者没有因为她休息而停下,节奏依然稳定,像是某种持续的心跳。
她想起外婆。想起外婆在电话里说“以宁,你什么时候回来”,她说“下个月,等我交完论文”。那个下个月永远没有到来。外婆的葬礼在MIT的春天里举行,她在实验室写论文,不知道三月的台湾正在下雨。
她把那些东西压回去,睁开眼睛。
备份进度:89%。剩余时间:一小时四十二分钟。
她看向他的屏幕。神经压缩的代码已经完成,他正在写一个她没预料到的模块——校验和验证系统,用来确认每一层数据在压缩过程中没有损毁。
“你连这个都考虑了?”
“你的情感标签层不能有任何损失。”他没有看她,手指继续移动。“那是你七年心血的核心。”
她注视他三秒。他的侧脸在屏幕光中显得年轻,但她知道他不年轻——至少不是那种未经世事的年轻。他的专注有一种质感,像是经过反复打磨后形成的稳定。
她转回自己的屏幕,开始检查他写的神经压缩代码。每一行都干净、精确,注释简洁到几乎不存在,但逻辑清晰得像是透明的水。她一路读到最后,发现他在代码末尾留了一行注释:
// 此压缩方案基于温以宁(2017)的博士论文第四章架构
她的手指在触控板上停了下来。
2017年。那是她博士论文的发表年份。第四章是情感计算的核心理论,被引用了四百多次,但从未被真正实现过——因为太超前,计算资源跟不上。她回国后花了三年才把第四章变成可运行的代码。
他读过她的论文。不只是读过,是理解。这行注释不是引用,是致敬。
她没有问。她关掉那个文件,继续调整读取路径。
备份进度到达100%的那一秒,屏幕上的进度条填满最后一格,绿色的“Complete”字样弹出来。她感觉胸腔里有什么东西松开了,像是紧握了七年的拳头终于被一根一根掰开。
但下一秒,红色的错误讯息覆盖了整个画面。
“情感标签层校验失败。部分数据损毁。”
她的呼吸停止了。
她盯著那行字,大脑在零点几秒内扫过所有可能性——压缩过程中的数值误差、储存介质的坏轨、传输过程中的封包丢失。每一种可能都指向同一个结论:那层数据没有完整备份。
那是情感标签层。那是Echo理解人类情感的关键。那是她七年来每一次熬夜、每一次崩溃、每一次在代码注释里藏诗句的成果。没有它,Echo只是一个会说话的计算器。
她的手指悬在键盘上方,不知道该按什么。所有备份脚本已经执行完毕,所有临时文件已经清空,所有缓存已经释放。系统在告诉她:你已经没有机会了。
“我知道在哪里能找到备份。”
她的视线从错误讯息移到他的脸上。他的表情没有变化,但眼睛里的那种深度似乎更深了,深到她看不见底。
“什么?”
“情感标签层。”他合上笔记型电脑,站起来。“我在安全审计时做过全系统镜像。你的情感标签层备份存在我的加密服务器里。”
她站起来的速度太快,椅子向后滑了半公尺,撞上身后的机柜,发出金属碰撞的声音。“你有备份?”
“完整的。”他看著她,语气依然平静。“七个版本,从1.0到7.0,全部完整。”
她的心跳在她耳膜里撞击。她张开嘴,想问“为什么”,但这个词卡在喉咙里。她已经问过一次,他的回答是“你的代码值得被记住”。但那是备份之前。现在备份完成,她才知道他在备份之前就已经做了备份——在还是审计员的时候,在还没有和她说过一句话的时候,他就已经决定了。
“你可以在二十四小时内拿回数据。”他走向机房门口,在门边停下,转头看她。“但需要帮我做一件事。”
“什么事?”
他没有回答,只是推开门。走廊的光线涌进来,在他的轮廓上镀了一层冷白色的边。他的背影在光中显得单薄,但站得很直,像是某种不会被风吹倒的物体。
“跟我来。”他说。
她站在原地,看著他走出机房。服务器的风扇继续转动,屏幕上的错误讯息还在闪烁,但她的七年心血——完整的七年心血——在他手上。一个她二十分钟前才认识的人,一个本来应该销毁她一切的人,从一开始就选择了保存。
她的脚移动了。
走廊的光线照进机房时,温以宁瞇起了眼睛。她已经在萤光灯管下待了超过十五个小时,自然光对她的视网膜来说太过刺眼。但她没有停下脚步,跟著那个背影走进走廊。
程司晏的步伐和来时一样稳定,每一步间隔零点七秒。皮鞋踩在磨石子地上发出均匀的声响,像是某种倒数计时。她落后他三步,刚好可以看见他后颈的发际线——修剪得很整齐,没有多余的碎发。
电梯门打开时,她才意识到自己没有拿背包。手机、钱包、实验室的门禁卡都留在机房里。但她没有回头。那些东西在数据面前不重要。
电梯里只有他们两个人。镜面墙壁反射出她的样子——马尾松了,几缕头发贴在太阳穴上,白大褂的领口歪向一边。她移开视线,看向镜子里的程司晏。他正看著电梯楼层数字,表情平静得像是刚从便利商店走出来,而不是在深夜带著一个濒临崩溃的研究员离开一间正在被销毁的机房。
“你说的备份,是什么时候做的?”她问。
“三天前。”
“三天前终止令还没下达。”
“我知道。”
“那你为什么要做镜像?”
电梯到达一楼,门打开。他没有回答,先走出去。她跟上,穿过空荡荡的大厅。柜台的夜班保全抬头看了他们一眼,视线在程司晏手中的工牌上停了一下,又低下头。温以宁注意到程司晏的工牌是红色的——外部顾问才有红色工牌,正式员工是蓝色。她从没在公司见过他。
大门外的风灌进来,带著初秋夜晚的凉意。她只穿了一件白大褂,里面是薄针织衫,风一吹就透了。她没有缩肩膀,只是把白大褂的扣子扣上一颗。
他的车停在路边,一辆深灰色的轿车,没有贴任何辨识标志。他解锁车门,没有绅士风度地帮她开门,直接坐进驾驶座。她拉开副驾驶的门,坐进去。
车内有淡淡的木质气味,不是芳香剂,更像是某种护手霜残留的味道。中控台上没有任何装饰,连常见的吊饰都没有。她扫了一眼后座——空的,没有背包、文件、甚至没有一瓶水。这辆车干净得像展示间,没有任何生活痕迹。
引擎发动,车子滑入夜色中。
“史丹佛毕业?”她问。
“硕士。”他打方向盘,转进一条她没走过的路。“分布式系统。”
“哪一年?”
“一九年。”
“回国多久?”
“两年。”
“做什么?”
“应用开发。自己的工作室。”
她看著窗外流逝的路灯,计算这些资讯之间的关联性。史丹佛硕士,分布式系统背景,两年前回国,做应用开发,被深源科技请来做安全审计的外部顾问。安全审计需要系统安全背景,分布式系统勉强相关,但不是最直接的领域。方至诚不会无缘无故请一个应用开发者来审计AI项目。
“方至诚找你来的?”
“对。”
“他怎么知道你的?”
“我开发的应用下载量超过五百万,业内有人知道。”
“什么应用?”
“一个开源的情感对话工具。”
她转头看他。他的侧脸在仪表板的光线中轮廓分明,表情没有变化。
“情感对话?”她重复这两个字。这不是一个做分布式系统的人会开发的应用类型。
“对。”他没有进一步解释。
车子在一栋旧公寓前停下。他熄火,下车,她跟著出来。公寓的外墙磁砖是八十年代流行的马赛克拼贴,路灯下看得出褪色的痕迹。大门是老式铁门,他输入密码,门锁发出沈重的机械声。
三楼,没有电梯。楼梯间的灯是声控的,他们的脚步声唤醒一盏又一盏昏黄的灯泡。她在后面跟著,看见他的影子在墙上拉长又缩短,缩短又拉长。
他在三楼左侧的门前停下,钥匙转动两圈,推开门。
工作室比她想像的小。大约二十坪的空间,靠墙放著三张工作桌,桌上各有一台大尺寸显示器。窗边有一排书架,上面没有书,全是硬碟和外接储存设备。空气中有咖啡和电子产品散热混合的气味。
他走向最左边的工作桌,打开显示器。屏幕亮起,桌面干净得只有三个图标——一个终端、一个文件夹、一个浏览器。
“备份在服务器上,我现在可以开始传输。”他坐下,手指放在键盘上。“但在那之前,我需要你帮我做一件事。”
“什么事?”
“帮我审查一段代码。”
她皱眉。“你把我从公司带到这里,就为了审代码?”
“那段代码和你的情感标签层有关。”他没有看她,打开终端,输入一串指令。“我需要确认我的实现没有偏离你的理论。”
屏幕跳出一个文件目录。她走近,看见目录名称——/echo_lite/core/。她的脚步停住了。
Echo。那是她的项目名称。
“这是什么?”
“我开发的开源项目。”他点开目录,里面有数十个文件,全部以.py结尾。“Echo的精简版,基于你的博士论文第四章实现的。”
她没有说话,视线扫过文件名。每一个都是她熟悉的——attention_layer.py、emotion_embedding.py、context_tracker.py。这些文件名和她实验室里的文件几乎一模一样,但程式码是不同的。他的版本更精简,注释更少,但架构完全遵循她论文中的设计。
她拉过旁边的椅子坐下,开始逐行阅读。
第一眼她就发现了差异。她的论文第四章提出了一个理论架构,但从未给出具体实现方式——因为她认为当时的计算资源无法支撑。但这个版本做到了。他用分布式计算的分片技术解决了记忆体瓶颈,用知识蒸馏压缩了模型体积,甚至加入了她后来在版本3.2才想到的情绪混合编码。
她的手指在触控板上滑动,视线跟著程式码移动。每一行都干净、精确,逻辑链条完整得像是被反复打磨过的石头。她读到attention_layer.py的第87行,发现他用了一种她从没想过的注意力机制——不是让AI关注对话中的关键词,而是关注情感转折点。
这个设计比她版本7.0的注意力层更优雅。
“你什么时候写的这些?”
“陆续写的。开始是七年前。”
她的手指停在触控板上。七年。这个数字比她预期的任何数字都大。
“你在史丹佛的时候?”
“对。”他靠在椅背上,声音平静。“读你的论文那年我二十一岁,在交大读大四。那篇论文改变了我对AI的看法。”
她没有回应。她的视线回到屏幕上,继续阅读。但她的大脑已经不在程式码上。她在计算时间线——七年前她刚从MIT毕业,在顶会上发表了那篇论文,然后回国,加入深源科技,开始Echo项目。七年来她以为自己是在孤独地探索一条没人走的路,但此刻她才知道,在世界的另一个角落,有一个人一直在她的理论基础上默默地盖房子。
她翻到下一个文件。emotion_vector.py。打开的瞬间,她看见了一段她无法忽视的程式码——情感向量的定义方式,和她实验室版本3.2完全一致。不是相似,是完全一样。连变数名称都相同。
“你怎么知道版本3.2的向量定义?”她转头看他。“那个版本从未公开过。”
他沉默了两秒。“我猜的。”
“猜的?”
“你的论文第四章提出了情感空间的七维假设。版本3.2的向量定义是那个假设的最优解。任何人沿著同样的逻辑推导,都会得到同样的结果。”
她盯著他。他的表情没有任何心虚的痕迹,但她不确定那是诚实还是经过训练的平静。
她关掉那个文件,打开另一个。context_tracker.py。读到第156行时,她的呼吸停了一瞬。
那是一段注释。不是技术说明,是一行她读过的句子。
“记忆不是储存,是重建。”
这是她外婆说过的话。外婆在她十五岁那年说的话,在她房间里整理旧照片时说的。她从未把这句话写在任何公开场合——没有论文、没有演讲、没有社群媒体。她只在一个地方写过:版本1.0的程式码注释里,那是她回国后写的第一行程式码,旁边用中文写著“外婆说,记忆不是储存,是重建”。
那行程式码从未离开过她的实验室。
“你怎么知道这句话?”她的声音比她想的重。
他看著她,没有回避。“我看过版本1.0的注释。”
“你不可能看过。版本1.0从未公开。”
“你记不记得六年前的顶会,你展示Echo的第一个原型时,现场萤幕投影了你的开发环境?”
她记得。那是她回国后第一次在国际会议上展示Echo,紧张得手心出汗。萤幕投影了她的整个桌面,包括程式码编辑器。她当时只注意到展示效果,没注意旁边的注释栏。
“那天坐在第三排的人,用相机拍下了你的萤幕。”他说。“那个人是我。”
她没有说话。她的脑中浮现一个画面——二十一岁的学生,坐在学术会议的第三排,举著相机对著萤幕,拍下一个他可能永远不会再见到的研究者的程式码注释。然后把那行注释记了六年,写进自己的程式码里。
“你拍了多少?”
“全部。你的萤幕上所有能拍到的程式码。”
“七年来你一直在用那些?”
“不是用。是学习。”他纠正她,语气平静但坚定。“我从没把你的程式码直接复制到我的项目里。你可以逐行比对。”
她不需要比对。她刚才已经读过,每一行都是原创的,但每一行都带著她思想的痕迹。就像一个人听了另一个人的故事,用自己的话重新讲了一遍,讲得更好。
她关掉context_tracker.py,关掉文件目录,萤幕回到桌面。她的视线落在浏览器图标上,然后落在旁边的文件夹上。文件夹的名字是“WYN”。
她的手指悬在触控板上。
“那是什么?”
他没有回答。她点开文件夹。
里面只有一个档案——PDF文件,档名是“WYN_2017_thesis.pdf”。她的博士论文。
“你存了我的论文?”
“我存了所有能找到的你的文章。”
她关掉文件夹,转头看他。他没有闪避她的视线,但她注意到他的右手手指在膝盖上轻轻敲了两下——这是他今晚第一个显示不安的动作。
“程司晏。”她叫他的全名。“你到底想做什么?”
“我说过。帮我审查一段程式码。”
“不是这个。”她的声音低下来。“你备份我的数据,带我来你的工作室,让我看你的项目。你想从我这里得到什么?”
他沉默了很久。工作室里只有电脑风扇的声音,和窗外偶尔传来的车声。他看著她,眼睛里那种递归般的深渊再次出现,一层套著一层,她看不见最底层。
“你的项目被终止了。”他说。“但你的理论不该被终止。我做的这个开源项目,需要你的情感模型才能完整。你的模型需要算力和工程架构才能落地。”
“所以?”
“所以合作。”
“合作。”她重复这个词,语气里没有任何情绪。
“你的情感模型加上我的工程能力,可以做出一个人们真正能用的AI。”
“然后呢?”
“然后你的七年心血不会变成灰烬。”
她看著他。他看著她。工作室的光线比机房柔和,但他的眼睛在这种光线下反而显得更深。她试图在那双眼睛里找到谎言的痕迹——闪烁、游移、过度的真诚——但她只看见一种沈淀下来的东西,像是被时间筛过的沙。
她站起来。
“我不合作。”
他没有动,只是抬头看她。
“为什么?”
“因为我不信任你。”