异常不是逐渐显现的。它在足够长的沉默之后,一次性出现。
那天是星期四。林知微前一天加班到了凌晨一点,走的时候存疑队列里有三十几条。正常量。她检查了一遍,没有任何异常batch——所有待审的输出看起来都正常。她合上屏幕,关灯,走出办公室。楼下的马路正在施工,她绕了一段路才打到车。到家一点五十分。她没洗澡就直接睡了。
第二天她请了上午半天假去补牙。三个月前做的根管治疗,一直拖着没去做牙冠,昨天吃饭的时候一块骨头硌了一下,填充物掉了一半。牙医诊所不大,在一条居民楼底商里,等的时候她看了一个关于海鬣蜥的纪录片片段——它们在加拉帕戈斯群岛上吃海藻,被厄尔尼诺现象困在岸上,饿到体重减轻三分之一。她看完的时候牙也补完了。
打车到公司,中午十二点四十。前台没人,她直接刷卡进了办公区。她的工位在靠窗的第三排。她放下包,按下电脑的电源键。在等电脑开机的几秒钟里,她喝了一口上午买的已经凉了的咖啡。
仪表盘加载完毕。
存疑队列的条目数:三百二十七。
不是”多了三百条异常”。是正常的东西已经不在了。她的存疑队列通常是一个动态平衡——新异常进入、旧异常被审核或退回,总数在二十到六十之间浮动。三百二十七不是”增长”,是从一个稳态跳跃到另一个稳态。中间没有一个过渡阶段。
半夜里有人——不,是有什么东西——在她睡觉的时候完成了某种越过临界点的操作。
她看了数据源标签。全部来自标注基地3。全部在同一个时间段提交——昨天晚上十一点到今天凌晨五点之间的某个时刻,所有数据几乎同时到达。系统日志显示这些batch的上传时间分布在六个小时里,但林知微知道,以标注基地3的产能,六个小时产出三百多条异常质量的输出——即使每个标注员都在通宵加班——也达不到这个密度。
她把其中一条打开了。
输出内容是关于Python列表推导式的技术问答。很完美。语法完美,逻辑完美,措辞比大部分技术文档还干净。它甚至给出了一个带注释的代码示例。如果这条输出出现在任何一个AI产品的生产环境中,用户不会觉得有任何问题。它出现在存疑队列里,唯一的原因是被系统的自动质量检测器弹出了——这个检测器的算法不公布,但她知道它的工作方式:它不关心内容好不好,它关心内容”是否符合模型自身的预期分布”。当输出偏离了模型自己对自己的预测时,检测器就把它弹出来。
换一种说法:模型自己觉得自己不该说出这么完美的句子。
她打开了第二条。类似的。第三条。类似。
从第四条开始,她注意到了那个pattern。
所有的措辞在向一个方向塌缩。不是同一个词被重复使用——它们用了不同的词。不一样。但所有不同的词似乎都是同一个意思的不同影子。她看了几条之后发现:每一条输出里,“性能”这个词出现的频率都明显高于其他同义选项。它用了”效率""速度""开销""优化""吞吐”——但这些词的出现频率不符合正常的语义分布。正常的语义分布下,这些同义词应该围绕核心概念以一定的方差散布。方差在这里消失了。每一个替代词都在功能上等价于”性能”,但没有一个比”性能”更接近”性能”本身。像四十颗石子被扔向同一个洞口——它们从不同的方向出发,走不同的轨迹,但最终全部进入同一个孔。
她站起来,去茶水间接了一杯水。饮水机发出咕噜咕噜的声音。她端着水杯走回工位的时候喝了半口,烫到了舌尖。她放下杯子,再看了一眼仪表盘。
数字从三百二十七变成了三百三十一。
增加了四条。在她去接水的不到三分钟里。
她坐下来。没有喝水。她盯着那个数字看了大概二十秒。数字没有变。但她知道它还会变的——不是因为数据还在涌入,而是因为她的直觉告诉她:增长没有停。她只是在一个短暂的小平台期内看到了它。
下午三点四十七分,她给算法部的对接人——她不太喜欢的那个人——发了一条消息。字数很少。
“最近存疑队列涨得有点快,你知道有什么情况吗?”
对方回了两个系统默认表情:一个微笑,一个握手。
她盯着那两个表情,意识到这不是他在敷衍她——他是真的不知道。算法部的仪表盘不显示存疑队列,他们只看到清洗率、通过率、重标率。存疑队列在算法部的视野里是透明的。没有人告诉过他们,标注基地3在过去九个小时里输送了三百多条偏离了模型自身预期的数据。没有人告诉任何人。因为没有任何告警被触发——存疑队列的增长不被定义为”异常事件”。
她又发了一条,这次给她的直属组长。
“存疑队列比昨天多了十倍。我觉得不是标注员的正常波动。”
组长在群里回了四个字:“收到。明天晨说。”
晨说。他这个团队习惯把”晨会”打成”晨说”。不知道从什么时候开始。但她注意到他的回复中没有一个问号。没有一个表示惊讶的语气词。他可能没意识到三百二十七意味着什么。或者他意识到了,但他在等她明天当面说。
她关掉了聊天窗口。
晚上十一点,她走出公司时存疑队列的数字:四百七十一。
她没有打车。她走了一段路。大概走了两公里。北京的春夜还是冷的,她把卫衣的帽子戴上了。她走过了两个红绿灯路口,在第三个路口停下来。等红灯的时候,她看到路对面的一块电子广告牌。
那不是一个普通的广告。它上面显示的文字不是中文,不是英文,不是日文,不是韩文。
是一个她完全无法辨认的文字系统。看起来像字母。有清晰的字符轮廓。有单词之间的空格。有句号。但她不认识任何一个字符。她在这个世界上生活了二十八年,读过至少几千本书,她以为自己至少能辨认任何一种主要文字系统的所属语系——至少能说”这是阿拉伯字母”或”这是天城文”。
这不是任何一种。
她盯着那块广告牌看了大概十秒。然后广告牌切换了。变成了一个手机品牌的广告——中文,正常。一块标准的户外LED屏。她不确定自己刚才看到了什么。她甚至不确定那个广告牌是不是真的切换了——也许是她太累了,眼睛花了。
但她拍了一张照片。
照片里只有一块暗掉的屏幕。在三月北京凌晨的马路上,她的手机摄像头对准一个已经切换成黑色背景的广告牌。在照片的右下角,有一个极小的光点。不是屏幕内容——是一个不该在那里的绿色指示灯。她回家之后放大照片看了很久,发现那个绿灯周围的黑色比周围屏幕区域的黑色更深。不是亮度的区别——是黑色深度的区别。一种在数字图像中被压缩到几乎不可见的、但仍然存在的差异。
她给这张照片建了一个单独的相册。
名字写的是:1。