加密邮件在约定时间准时抵达。
林默坐在图书馆角落的电脑前,屏幕的光映着他紧绷的脸。四周是翻书声和键盘敲击声,但他耳中只剩下自己略显急促的呼吸。
他盯着收件箱里那封来自Observer_01的邮件,指尖悬在触控板上。
“资金压力是真的,”他低声自语,像是说服自己,“高额报酬也是真的。至于‘情感数据’……最多不过是个设计蹩脚的推荐系统。”
他点开邮件。
附件是一个经过压缩和加密的ZIP文件,密码在邮件正文中——一串由十六进制字符和特殊符号组成的乱码。
他复制密码,解压文件。里面只有一个名为“CoreModule_Base.py”的Python脚本,以及一份简略的需求文档。
文档标题:《人际关系影响力预测模型V0.1——核心情感权重矩阵优化需求》。
林默的指尖瞬间冰凉。
他滚动鼠标滚轮,强迫自己逐行阅读。文档用冷静的技术语言描述了一个模型:该模型旨在通过分析个体间的互动数据(包括但不限于通讯频率、语义情感倾向、社交网络拓扑结构),预测某一方对另一方“潜在影响力”的消长变化。需要优化的核心模块,是一个名为“EmotionalWeightMatrix”(情感权重矩阵)的类。
文档写道:“当前矩阵在稀疏高维情感特征(如愧疚、隐秘好感、伪装厌恶)的收敛过程中存在振荡,导致预测结果在极端值(接近-100或+100)附近失稳。优化目标:提升收敛速度至少30%,确保极端值预测的平滑性与抗干扰性。”
林默猛地向后靠去,椅背发出轻微的“吱呀”声。
旁边正在看书的女生抬头瞥了他一眼,头顶飘着一个【+2】的淡蓝色数字。他立刻低头,视线重新锁回屏幕。
极端值。接近-100或+100。
这几个字像冰锥,扎进他的视网膜。
他深吸一口气,点开那个Python脚本。代码风格严谨却透着一股冷硬感,注释很少,变量命名多用缩写。他快速浏览,直到看见那个核心的类定义。
```python
class EmotionalWeightMatrix:
def __init__(self, n_individuals):
self.n = n_individuals
初始化情感权重矩阵 W,W[i][j] 表示个体i对个体j的情感权重基线
self.W = np.random.randn(n_individuals, n_individuals) 0.01
情感状态向量 S,动态更新
self.S = np.zeros((n_individuals, EMOTION_DIM)) EMOTION_DIM: 情感特征维度
影响力衰减因子,与社交距离相关
self.alpha = np.zeros((n_individuals, n_individuals))
```
林默的呼吸停滞了。
他的目光死死盯在“情感权重矩阵W”和“情感状态向量S”上。代码的逻辑清晰而冷酷:将每个人抽象为一个索引,情感化为高维向量,人与人之间的影响被建模为矩阵运算和衰减因子。
这和他每天被迫看到的那些头顶数字……结构上太像了。
不,不止是像。
他下意识地环顾四周。图书馆里,学生们低头看书,头顶漂浮着各种颜色和数值:淡蓝的【+3】、浅红的【+15】、深蓝的【-20】……每个人头顶都是一个浮动的标量输出。
而这段代码里,每个人对应一个索引i,情感状态是一个高维向量S[i]——如果把他看到的数字理解为某个情感维度的投影值,把情绪符号理解为其他维度的简化标识……
“如果……”林默听见自己的声音在发颤,“如果我头顶的数字,就是某个类似模型的输出呢?如果我的‘好感度视觉’,就是某种更高维、更实时版本的‘情感状态向量S’的投射?”
一阵寒意从尾椎骨窜上后颈。
他手心开始冒汗,呼吸变得急促。恐慌像潮水一样涌上来——如果每个人都是一段正在运行的代码,情感是向量,社交是矩阵运算,那“我”是什么?是另一个矩阵中的变量,还是意外获得了读取权限的病毒?我所以为的“重生”和“能力”,会不会只是某个更大程序中的一次调试输出?
“停。”
他闭上眼睛,用力掐了掐虎口。
疼痛带来短暂的清醒。
“第一步,确认现象:代码结构与我看到的能力有相似性。”他低声自语,像在调试程序,“第二步,评估影响:可能意味着我的能力有技术根源,也可能只是巧合。第三步,应对措施:继续分析,收集信息,保持警惕。”
他睁开眼,重新看向屏幕。
理性工具开始压制情绪。对,分析才是武器。
问题确实如文档所述,在计算梯度时,对极端情感值的处理过于粗暴,导致迭代更新时容易产生振荡甚至发散。优化思路在他脑中迅速成型:引入自适应学习率,对极端值区域的梯度进行裁剪,或许再加入一个平滑约束项。
但此刻,技术细节带来的安全感很脆弱。他更想知道的是:这段代码是谁写的?Observer_01是谁?这个模型到底用来预测什么?为什么偏偏找上他?
他尝试反向追踪。邮件服务器是海外匿名中继,PGP密钥是新生成的,论坛ID干净得像一张白纸。他写了一个简单的脚本,试图分析代码中可能隐藏的元数据或独特编码风格,一无所获。对方谨慎得可怕。
接下来的三天,林默像一台超负荷运转的机器。
白天上课、应付小组作业。第二天在食堂,他远远瞥见苏晴和闺蜜说笑,头顶的【-99】依旧刺眼。他立刻移开视线——那份稳定不变的负值,此刻在Observer_01的迷雾衬托下,反而显得像一种简单的、可理解的“正常”了。
晚上则完全沉浸在这段诡异的代码里。他凭借前世的经验,重构了核心算法:用Adam优化器替代了原始的SGD,增加了梯度裁剪,引入了一个基于信任度的权重衰减项。他甚至故意留下了一个极其隐蔽的后门——在矩阵归一化函数里,埋藏了一个条件判断:如果检测到某个特定的、极不可能出现的输入模式,就会启动一个递归验证链,并在计算结果中引入一个微小的、累积性的偏差。
这是他给自己留的保险。一个未来或许能用来反制或验证的陷阱。
交付前夜,林默在图书馆赶工最后的测试和注释。
精神高度紧绷了数日,咖啡因过量摄入带来的心悸和视觉疲劳交织在一起。更糟糕的是,他发现自己大脑在处理“好感度视觉”信息时,会不自觉地尝试调用类似那个情感权重矩阵的运算模型——就像看了太多遍某个算法后,看什么都像它的输入。
系统冲突。
沈星言如常坐在他对面,安静地翻着一本厚重的《分布式系统原理》。林默瞥见她书中夹着几张写满算法草稿的便签,字迹工整得像印刷体。
当林默敲下最后一行注释,点击发送加密邮件时,他感到一阵虚脱般的眩晕。他摘下眼镜,用力揉了揉眉心,然后抬起头。
视线模糊中,对面那片稳定的鲜红【+100】,成了混乱世界里唯一确定的坐标。他下意识地望过去,仿佛想从那份异常的稳定中汲取一丝安宁。
沈星言正低头看书,侧脸在台灯暖光下显得沉静。
就在这时,那个数字轻微地闪烁了一下。
不是跳动,而是像电压不稳的灯泡,亮度骤然暗了一瞬,又立刻恢复。
林默僵住了,怀疑是自己眼花了。他屏住呼吸,死死盯住。
【+100】再次闪烁,这次更明显些,数字的边缘甚至出现了极短暂的重影。
能力……不稳定了?
是因为连续几天高负荷分析那个“情感权重矩阵”,自己的大脑在处理“好感度视觉”信息时,也不自觉地尝试调用类似的运算模型,导致了系统冲突和显示错误?
恐慌瞬间攫住了他。这能力是他重生后唯一确凿的“异常”,是他所有判断的基石。如果连这个都开始出错……
沈星言似乎察觉到了他过于强烈的视线。她抬起头,清澈的目光看向他。
林默看到她眼神中闪过一丝极快的担忧——那种情绪闪过得太快,几乎像是错觉,但确实存在。然后才恢复成平日那种不易察觉的询问。
她的头顶,数字已经恢复了稳定,鲜红如初。
林默慌忙避开视线,喉咙发干。
“我……去接点水。”他声音有些沙哑,拿起桌上的空水杯,几乎是逃也似的离开了座位。
走到饮水机前,他接满一杯冷水,一口气喝掉大半。冰凉的水流划过喉咙,却浇不灭心头的躁动。他靠在墙边,闭上眼,试图平复呼吸。
是精神压力太大产生的幻觉?还是这能力本身就有他不了解的限制或周期?
几分钟后,他端着水杯回到座位。
沈星言已经离开了。她的书和笔记本都不见了,桌面空荡。
林默松了口气,又隐隐有些失落。他坐下,准备收拾自己的东西离开。目光扫过摊开在桌上的《算法导论》——那是他刚才写代码时用来参考的。
他的动作顿住了。
在翻开的某一页空白处,靠近书脊的位置,多了一张对折的便签纸。
他拿起便签,展开。
上面没有署名,只有一行用铅笔写下的、极其细小的字。字迹优雅而清晰,是标准的等宽字体风格,就像代码编辑器里的注释:
`// 警惕无限递归,边界条件需绝对稳固。`
林默的心脏猛地一缩,仿佛被无形的手攥紧。
他盯着那行字,足足看了十秒钟。然后,几乎是颤抖着,他迅速打开笔记本电脑,调出刚刚发送出去的那个优化后的代码文件。
他的目光飞快地搜索,最终定格在他自己留下的那个后门函数附近。在那个函数里,他为了实现那个隐蔽的条件触发,使用了一个递归调用结构来验证输入模式的合法性。递归的终止条件设置得很深,理论上极难触发,但……如果输入数据恰好符合某种极端模式,递归深度确实可能超出预设安全阈值。
“警惕无限递归,边界条件需绝对稳固。”
这行注释,精准地指向了他那个后门陷阱里最脆弱的环节——递归可能失控的点。
她看到了他的代码?什么时候?怎么看到的?她怎么可能在这么短的时间内,不仅看穿了他留下的后门,还用如此精准的技术语言给出警告?
而且,这警告是善意的提醒,还是某种……更复杂的信号?
林默缓缓坐回椅子,将那张便签纸紧紧捏在指尖。纸张很薄,铅笔的字迹很浅,稍用力就能擦掉。
他抬起头,看向图书馆门口。临近闭馆,人已稀少,管理员在远处整理书籍。沈星言早已消失不见。
鲜红的【+100】已经随着她的离开而消失在他的视野里,但那个数字所代表的巨大谜团,此刻却重重地压了下来,伴随着这行新的、冰冷的代码注释。
沈星言。不仅仅是对他有莫名好感的“怪胎”同学。
她的技术洞察力深不可测。
而她留下的这句话,究竟是在提醒他代码里的危险,还是在隐喻着别的、更庞大的危险?
林默合上书,将笔记本电脑塞进背包。图书馆的灯光白得刺眼,四周翻书的声音此刻听起来像是某种单调的、持续的背景噪音。他握紧了手中的水杯,金属杯壁传来冰冷的温度。
Observer_01的迷雾尚未散开,沈星言这行突如其来的代码,又织成了第二张迷网。
他意识到,自己之前那份试图用《TODO LIST》掌控一切的规划,在这个开始显露诡异棱角的世界里,显得多么单薄和自以为是。