我是被台灯的光晃醒的。
昨晚忘关了,亮了一整夜。
我趴在桌上,脸压着键盘,脸上印了一排键帽的印子,脖子僵得转不动。
朱雀不在了。
椅子上有一件他的外套搭着,我不记得昨晚他什么时候脱的,也不记得我什么时候趴在桌上睡着的。
桌上多了一个东西。
一个黑色的U盘,搁在我的鼠标旁边,底下压着一张纸条:
“看完再找我。”
我把U盘插进电脑。
里面只有一个文件夹,文件夹里是一批系统底层日志,时间跨度三年。
我不是技术出身,但我看得懂中文,那些日志的格式虽然是代码夹着文字,但关键的操作记录都有中文标注——谁在什么时间往训练数据库里提交了什么样本,提交的样本被标注为什么类型,审核状态是什么。
我花了一整个上午看那些日志。
看到第一百页的时候我停下来了,去厨房倒了杯水,手有一点抖,是气的。
那些日志记录了一件事:过去三年里,有人在用被污染的数据样本持续投喂检测系统的训练库。那些样本的标注是【真人文本】,但其实是高度模仿真人写作风格的魇人文本,被人工标注成了真人样本,然后喂进去了,一批一批地喂了很久。
这意味着什么呢。
意味着系统学的东西有一部分是假的,它以为自己在学【真人是怎么写字的】,但它学到的有一部分是【魇人模仿真人是怎么写字的】。这两个东西混在一起之后,系统对真人的定义就被悄悄改了——真人的标准里混进了魇人的特征,魇人的标准里混进了真人的特征。
结果就是:越来越多的真人被判成魇人,越来越多的魇人通过了检测。
那些六十一分、六十二分、六十三分的人,那些被纸鸢签了字、被迟衡走了程序、被朱雀一枪打死的人——他们中间有多少是被这套被污染的系统错杀的?
我不知道,日志里没有写,日志只记录了数据的流向,不记录数据杀了谁。
我把那杯水喝完了,回到桌前继续往下看。
后面的日志越来越触目惊心,投喂不是随机的,每个月固定批次,每批的样本量稳定在一个范围里,不多不少刚好不触发系统的异常检测阈值。
做这件事的人非常懂系统的内部逻辑,知道每一条检测红线在哪里,每次都精准地从红线底下钻过去。
能做到这件事的人不多。
我把日志关了,在椅子上坐了一会儿,把U盘拔出来握在手里。几克重的东西,里面装着够掀翻整个系统的证据。
但不够。
这只是日志,只能证明数据被污染了,但不能直接证明是谁污染的——日志里的操作账号都是系统内部的编号,没有名字,要查到对应的人需要核心数据库的权限,那个权限一个人是不能打开的。
朱雀把他能拿到的东西都给我了,但核心的那扇门,他一个人打不开。
傍晚他又来了。
他站在走廊里,手里拿着一个文件夹——今天又带了。
我想笑又没笑出来,他恢复了他的道具,像昨晚什么都没发生过一样。
他进来之后把文件夹放在桌上,然后走到窗边,跟昨晚一样的位置。
“看完了。”他说。
“嗯,看完了。”我说。
我坐在桌前,他站在窗边,跟昨晚一样的距离。
“那些日志,你查了多久。”
“两年。”他说。
“两年。”我重复了一遍。
他在做这件事的时候我还在为一篇稿子的六十一分挣命,还在研究怎么让自己的文字不被标成AI,还在走廊里听邻居小声说谁又不见了。
他在那两年里一边坐在审判席上签字,一边在系统里翻日志。
“核心数据库的权限,你一个人打不开吧。”我说。
“四个判官的权限密钥加在一起才能解锁,我有一把。”
“你需要再拉一个人。”
“至少一个。”
纸鸢。
我脑子里立刻跳出来这个名字,她半夜因为一首诗来过我的房间,她已经在怀疑系统了。
“纸鸢。”我说。
他看了我一眼说:“她太小了。”
“她是四个人里唯一一个来找过我的,”我说,“她已经在动摇了,她在问我怎么在六十一分里看见真人,她在替那些被她判掉的人难受,这种人你去哪里找第二个。”
他没有说话,站在窗边,我知道他在计算,算风险,算被发现的后果。
“迟衡呢。”我说。
“不行,他是他们的人。”
我没有问【他们】是谁,日志里那些有计划的投喂,一定是背后有人,而迟衡如果是那个阵营的,那他之前来告诉我林生的事,他标注的那个末段……那些是什么?
“迟衡他不像是……”
“我知道,”朱雀继续说,“但他不会站出来,他知道系统有问题,但他觉得在规则里修补比掀翻更安全,他不会帮我们打开核心数据库。”
“零眸。”
“更不行,他本身就参与修补程序。”
“那就只剩纸鸢了。”
他低下头,过了一会儿说:“如果纸鸢答应了,拿到核心数据之后,你打算怎么做。”
我说:“写出来,把所有的东西写成一份所有人都能看懂的报告——用人话,让每一个人都能看明白这套系统到底在干什么,让他们知道那些被判掉的人里有多少是被冤的。”
“写出来之后呢。”
"公开,全城广播,上文书广场的大屏,所有凭证灯终端,能发出去的渠道全发。”
他看着我说:“你知道这意味着什么。”
“意味着整个检测系统的信用崩塌,”我看着他说,“意味着朱雀判官的每一次裁决都会被重新审视,意味着你——”
我停住了。
我看着他的眼睛,那双眼睛在等我把那句话说完。
“你把这些东西给我,如果我写出来公开了,第一个被清算的就是你,你签过的每一份裁决书都会被翻出来。”
“我知道。”他说。
“知道你还是要做。”
他说道:“这件事必须有人做,”他缓了一下说,“我做不了你的那部分,我不知道怎么把这些东西变成人能读懂的话,但你也做不了我做的那部分,你进不了系统底层。”
我盯着他。
那个感觉又来了,从第一次见他就有的那个感觉,我说不清楚他身上那种不太对的东西。我以前以为那是职业性格,是一个握着生杀大权的人身上自然而生的非人感。
但他对系统的内部比任何判官都熟悉,熟悉到不正常的程度——
“朱雀,”我说,“你怎么知道魇人心脏在右边。”
窗外有风,楼下的路灯开始亮了,一盏一盏的蓝光从窗户照进来。他站在那里,背后是蓝的,脸上还是暗的。
他没有回答我。
他把左手的袖口往上推了一截。
手腕内侧有一小块皮肤跟周围不一样,不是疤,也不是胎记,颜色比周围浅一点,质感比周围光滑一点,像是拼接的。
我看着那块皮肤。
我想起了伪林绪的脸,那张脸上没有毛孔,没有绒毛,她的手卡在门缝里跟铁一样,我想起了那个六楼的女人脸上的皮肉往下掉。
朱雀手腕上的那一小块不像那些,它精细得多,如果不是他自己推给我看,我自己都看不出来。
我从椅子上站起来了,这次没有后退,直接走到他面前,低头仔细看他的手腕。
那一小块在台灯和路灯的照射下,边缘隐约可见,像一块做的非常好的补丁。
“从什么时候开始的。”我很淡定地说。
“从一开始,”他看着我说,“我从来就不是人。”
房间里这次安静了很久。
楼下有车经过的声音,隔壁有人在厨房用锅铲碰了一下锅沿。
我们之间的距离跟昨晚他碰我的时候差不多近。
我脑子里在转很多东西。
他是魇人。
他坐在审判席上判其他魇人的死刑,他签了不知道多少份裁决书,杀了很多个跟他一样的东西,他看了我大半年的草稿箱,他昨晚……
这些全是一个魇人做的。
“你看我那些草稿的时候,”我突然好奇的直接问了,“你看得懂吗。”
他看着我,那双眼睛是一种我说不上来的东西,很深,很安静,像一口没有底的井。
“‘有时候我觉得写东西像在跟一个人说话,那个人不存在但他在听’——你写完删了。”
“我知道,你昨天跟我说过了。”
“你删那句话的时候系统记录了一个时间戳,是凌晨四点十一分,我看见那个时间戳后,身体运行日志里出现了一条我没有办法生成的数据,一条异常数据。系统找不到那条数据的来源,也归不了类,按照标准流程应该自动清除。”
他停了一下,想了想继续说。
“我没有清除它,后来每次看你的草稿箱,那条数据就会增长一点。看完你删掉的那些句子之后它会跳一下,尤其是看你凌晨写的东西之后它跳得最厉害。”
他偏头看着我。
“我不知道那是什么,但如果你问我看不看得懂你写的东西,我不确定,我只知道每次看完之后,那条数据就会变大。”
我站在他面前,眼眶又开始热了。
我说:“那条数据,有名字吗。”
“没有,它不在任何数据库里。我查过所有已知的情绪模型和反应分类,没有匹配项。”
我把手伸出去,握住了他那截袖口底下的手腕,我的手指刚好盖在那块拼接的地方。他的皮肤比正常人凉一点,但不冻手。
我说:“那条数据不需要名字,你留着就好。”
他的手指动了一下,碰到了我的手臂。
我们在窗边站了一会儿……路灯的蓝光照在我们两个人身上。
楼下有人在低着头走路,速度很快。
我突然松开他的手腕说道:“纸鸢那边,我去说。”
“你确定。”
“她来过我这里,也信我,但你要想清楚,她如果知道你是什么,会怎么反应。”
他把袖口放下来说:“她不需要知道,她只需要提供密钥,理由就是系统内部审计,需要核实训练数据来源,这是她职责范围内的事。”
“你要骗她。”
“我要保护她,”他说,“她知道得越少越安全,如果事情败露了,至少有一个人可以说自己不知情。”
他在保护纸鸢的方式跟保护我的方式不一样——他给我看了所有的东西,日志、真相、手腕;他给纸鸢的是一个干净的、可以被否认的任务。
他在分配风险,最大的那份他留给了自己,第二大的给了我,最小的给了纸鸢。
“好,我去找纸鸢。”
他开门走了。
我站在窗边,看着他的外套还搭在椅子上。
我不知道是他忘了拿,还是忘了不能留在这。
我坐下来,打开文档,新建了一个文件。
文件名我想了一下,然后打了四个字:污染报告。
想了想又删了,改成:给这座城市的信。
又删了,最后打了两个字:实话。
光标在那两个字后面闪了一会儿,我开始写了。