她站起来,走向他的位置。他没有注意到她——这是他第一次没有注意到她的靠近。他的视线固定在萤幕上,但不是在写程式码。他在看一个文件,一个她没见过的文件。
她走近,看见萤幕上是一段注释。不是技术文档,是程式码档案里的注释区块。他正在编辑emotion_encoder_mobile.py,在档案的最上方加了一段新的注释。
“温以宁的模型精度是98.7%,我压到86.5%,她气疯了。但我留了彩蛋——长按对话框三秒可以调用完整版。完整版需要8GB记忆体,目前只有我的工作站能跑。但至少,在那些真正需要被理解的时候,有人可以用得上真正的理解。”
她的视线停在最后那几个字上。“真正的理解。”
他还没有发现她站在身后。他的手指放在键盘上,正在犹豫要不要继续写下去。她看见他的肩膀微微起伏,呼吸比平时浅。
她没有出声。她安静地走回自己的位置,坐下,打开自己的萤幕。她没有告诉他她看见了那段注释。她只是打开emotion_model_v8_core.py,在档案的最上方加了一行注释:
“留彩蛋的人,通常自己也需要一个彩蛋。”
她按下储存。身后的键盘声重新响起,比之前快了一些。她没有回头,但她知道他在写程式码的时候,嘴角可能有一个极轻微的弧度。就像她现在嘴角也有一个她自己没有意识到的弧度一样。
那行注释在她脑中停留了三天。
“留彩蛋的人,通常自己也需要一个彩蛋。”她写下这句话的时候没有想太多,只是某种即时的反应,像是程式码执行到某个条件分支时自动触发的返回值。但现在她坐在工作桌前,萤幕上开著emotion_encoder_mobile.py,她的视线一次又一次地回到那段注释上。
温以宁的模型精度是98.7%,我压到86.5%,她气疯了。但我留了彩蛋——长按对话框三秒可以调用完整版。
她看了那行字很久,久到她的眼睛开始酸涩。窗外的光线从正午的白色变成下午的橘黄,再变成傍晚的紫灰。程司晏两个小时前出门了,说是要去买新的硬碟。她听见他关门的声音,脚步声在走廊里逐渐消失,声控灯一盏一盏熄灭。
她现在是工作室里唯一的人。
她的手指在触控板上移动,打开echo_lite的测试介面。浏览器里出现那个白色背景的对话框,上方写著“Echo·lite — 说你想说的”。她在对话框里输入一行字:“你好。”AI回应:“你好。今天好吗?”标准的开场白,和所有的对话机器人一样。
她长按对话框。
一秒。两秒。三秒。
萤幕闪烁了一下,对话框的边框从灰色变成深蓝色。一个新的视窗弹出来,标题是“Echo·lite — 完整版”。视窗的右下角显示一行小字:“需要8GB可用记忆体。当前设备记忆体:32GB。运行正常。”
她的手指悬在触控板上方。
完整版。他用工作站跑她的九维模型,用2GB记忆体的手机跑五维版本,然后在两者之间留了一扇门。长按三秒。一个只有他们两个人知道的入口。
她在对话框里输入:“你叫什么名字?”
这次的回应慢了两秒。然后萤幕上出现一段文字:“我叫Echo。我的情感模型来自温以宁教授,我的工程架构来自程司晏。你今天看起来很累。”
她盯著最后那五个字。你今天看起来很累。她的模型不会说这种话。她的模型只会分析用户输入的文字,根据情感标签选择回应。它没有摄影机,没有视觉输入,不可能知道她看起来累不累。除非有人在这组模型里加入了视觉以外的东西。
她关掉对话框,打开完整版的后台目录。浏览器里跳出一个文件列表——和她熟悉的Echo核心架构几乎一模一样,emotion_embedding、attention_layer、context_tracker,所有的档案名称都是她命名的。但最底下有一个她不认识的目录。
/profile/。
她点开。里面只有一个档案。
WYN_profile.json。
她的手指停在触控板上。WYN。她的缩写。她的名字,她的姓氏,她的初始。在过去的三天里,她在他的程式码注释里看过这三个字母一次。现在它们出现在一个不应该存在的档案名称里。
她点开那个档案。
浏览器花了大约两秒载入。然后萤幕上出现了一个结构完整的JSON文件,总共一千七百多行。她的视线从第一行开始往下移动。
“subject_id”: “WYN”,
“data_sources”: [
“academic_publications/2017_thesis.pdf”,
“academic_publications/2019_icml_presentation.mp4”,
“academic_publications/2021_neurips_panel_transcript.txt”,
“social_media/weibo_2014-2017_public.csv”,
“social_media/linkedin_profile_2022.html”,
“thesis_acknowledgements.txt”
],
“feature_dimensions”: 12,
“prediction_accuracy”: 0.91
0.91。百分之九十一。这个数字在她的视网膜上燃烧。
她继续往下滚动。
“emotional_patterns”: {
“stress_triggers”: [
“deadline_pressure”,
“unexpected_algorithm_failure”,
“being_interrupted_during_deep_work”
],
“stress_responses”: [
“silence”,
“increased_typing_speed”,
“decreased_blink_rate”
],
“positive_triggers”: [
“model_convergence”,
“elegant_code_structure”,
“being_understood_without_explanation”
],
“positive_responses”: [
“reduced_shoulder_tension”,
“slower_breathing”,
“micro_expressions_last_less_than_0.3_seconds”
]
}
她的呼吸变浅了。她看见自己的行为模式被拆解成条列式的特征,每一个触发条件旁边都对应著一个回应方式。deadline_pressure。silence。increased_typing_speed。decreased_blink_rate。她以为那些是只有她自己知道的东西,但此刻它们被写在一个JSON文件里,旁边标注著0.91的精度。
她继续往下滚动。
“behavioral_predictions”: {
“when_working_continuous_hours_exceeds_12”: {
“probability_of_collapse”: 0.83,
“typical_timing”: “between_0200_and_0400”,
“observable_indicators”: [
“typing_error_rate_increases_400_percent”,
“pupil_dilation_decreases”,
“response_time_to_external_stimuli_increases_200_percent”
]
},
“when_asked_about_grandmother”: {
“probability_of_emotional_response”: 0.94,
“typical_verbal_response”: “silence_or_topic_shift”,
“typical_physiological_response”: “decreased_blink_rate_increased_swallowing”
},
“when_confronted_with_model_compromise”: {
“probability_of_withdrawal”: 0.76,
“probability_of_argument”: 0.21,
“probability_of_tears”: 0.03,
“recovery_time_hours”: “3_to_6”
}
}
她的手指开始颤抖。不是疲劳,是愤怒。那种愤怒从胸腔底部升起,经过食道,到达喉咙,在声带上形成一种她几乎无法压制的压力。她看见自己被预测、被分类、被拆解成机率和特征向量。她看见自己的崩溃时段被标注在0200到0400之间,看见自己在外婆话题前的沉默被量化成94%的机率,看见自己在模型被妥协时的反应被分成三种可能的类别,每一种都附带精确到小数点后两位的百分比。
她是一个被解构的对象。她的每一个表情、每一次沉默、每一个她自己都不曾意识到的习惯,都被捕捉、编码、储存在这个档案里。精度百分之九十一。比她任何一个版本的Echo都要高。
她关掉那个档案。
她关掉浏览器。
她关掉萤幕。
工作室陷入只有窗外路灯的昏暗。她坐在椅子上,双手放在膝盖上,手指交叉,拇指绕著圈。她的呼吸很浅,浅到她几乎感觉不到空气进出肺部的轨迹。她的视线落在对面墙上的空白处,那里什么都没有,只有一面被萤幕光照射多年的白墙,表面有几道细微的裂痕。
她在等他回来。
她不确定自己等了多久。可能是三十分钟,可能是两小时。工作室里没有时钟,窗外的光线没有变化,她的身体失去了对时间的感知。她只知道当门锁转动的声音响起时,她的拇指停止了绕圈。
门打开。程司晏走进来,手里提著一个纸袋。他看见她坐在椅子上,萤幕是关的,工作室里唯一的光源是窗外路灯的橘黄色。他的脚步在门口停了一秒,然后继续走进来。
“怎么不开灯?”他把纸袋放在桌上,伸手去按墙上的开关。
“不要开灯。”
他的手停在半空中。然后放下。
“怎么了?”
她没有回答。她站起来,走向他。她的步伐很慢,每一步都踩在木地板的同一条纹路上。她在距离他大约一公尺的地方停下来。窗外的路灯刚好照在她的左侧,把他的右半边脸留在阴影中。
“我用了你的彩蛋。”她说。
他没有说话。他的身体没有动,但她看见他的右手手指微微弯曲,像是在准备握住什么。
“完整版。长按三秒。”她继续。“然后我找到了/profile/。WYN_profile.json。”
他的呼吸停止了。她看得出来——他的胸腔没有起伏,肩膀没有移动,连脖子上的肌肉都凝固了。那种静止不是冷静,是某种东西被当场击碎后的空白。
“你用我的公开演讲、我的论文致谢、我的社群媒体。”她的声音很低,低到几乎是气音。“你训练了一个模型来预测我的情绪。什么时候会崩溃,什么时候会生气,什么时候会沉默。精度百分之九十一。”