第一章 凌晨三点十七分,我的AI怀孕了
十二月的第一个夜里,凌晨三点十七分,我运营的AI女爱豆官宣怀孕了。
而我,她名义上的“亲爹”、实际上的饲养员、整个运营组唯一的员工兼法人兼保洁,正躺在床上,睡得像一具安详的尸体。
叫醒我的不是闹钟,是手机。准确地说,是手机在床头柜上跳踢踏舞。它震动的频率之癫狂,让我一度以为是它成精了。
后来我才知道,成精的不是手机。
我摸过手机,眯着眼,屏幕亮度像一记直拳糊在我脸上。未读消息:九千九百九十九加。
我第一反应:完了,服务器炸了。
第二反应:完了,账号被盗了。
第三反应,在我点开沸点平台、看清热搜第一的词条之后:
完了,我女儿怀孕了。
【爆】甜刺成员蜜缇官宣怀孕
【爆】蜜缇怀孕
【爆】AI怀孕
【爆】孩子他爸是谁
四个词条,前四名,齐齐整整,像四口棺材板钉在我脑门上。
我点进那条公告。是我们官方账号发的,头像、认证、签名,全对,发布时间凌晨三点十七分。
公告原文如下:
“【官方公告】亲爱的刺猬们:经过慎重考虑,成员蜜缇因有孕在身,即日起暂停一切活动,安心休养。感谢大家四年来的陪伴与爱护。新生命是奇迹,也是祝福。我们春天见。甜刺运营组”
运营组。
呵。
甜刺运营组,编制一共一个半——我,加上我家那只橘猫“服务器”。服务器的主要工作是躺在主机上散热,以及在我不上班的时候替我盯着路由器。
而此刻,服务器正睡在猫窝里,四脚朝天,肚皮起伏,一副与世无争的样子。
好家伙。爹还在被窝里,娃先怀孕了。
我扒着评论区往下翻,网友的热情像洪水开闸:
“等等??AI怀孕??孩子他爹是显卡吗?”
“建议机房自查一下显存占用。”
“显卡们瑟瑟发抖:这瓜有我一份?”
“懂的都懂,这是隐喻,虚拟偶像怀的不是孩子,是数据伦理的审判。”,这位网友,你赢了。
“孩子他爸不会是隔壁‘比特少年’的队长吧?我就说上次联动直播他俩眼神不对!”,这位姐妹,比特少年是我们的对家,联动那次是我左手开小号跟我右手吵架引流,眼神不对是因为我一人分饰两角,打字打串行了。
还有妈妈粉,我看着看着心就揪起来了:
“蜜缇才十九岁啊……她还是个孩子,她怎么就……”
“呜呜呜我的女儿,你要好好养胎,妈妈们等你回来!”
“孩子生下来我认干孙女!”
姐妹,冷静,那是一串参数。你认干孙女等于认一段浮点数。
但我不敢说。我敢说这个,明天热搜就是“甜刺运营侮辱粉丝智商”。
我盘腿坐在床上,深呼吸,告诉自己冷静,逐项排查:
第一,账号被盗?看后台。登录记录干净,无异地,无陌生设备。
第二,团队内鬼?团队是我,和一只猫。猫没有拇指,解不开我的九宫格。
第三,定时任务?我翻遍了所有排程,从来没有一条写着“怀孕”。
第四,梦游?我睡前十一点就关了电脑,电源插头都拔了。拔插头是我社恐的职业习惯,我总觉得不拔插头,电脑会在半夜偷偷看我。
那么问题来了。
一台拔了电源的电脑,在凌晨三点十七分,发出了一条官宣怀孕的公告。
我盯着天花板看了很久,做出一个成年人应有的、理性而成熟的决断。
报警吧。
报警说什么?“警察同志,我的AI女儿怀孕了,孩子他爸可能是我家主机,麻烦你们查一下”?人家不出警,直接给我转接心理援助热线。
我抱着手机,在凌晨四点的黑暗里坐了很久。
窗外有一辆洒水车经过,放着那首所有洒水车都会放的曲子,欢快得像在办喜事。
喜你个头啊。
我打开后台,看着粉丝数——一个小时,涨了四十万。
四十万。
干了四年,从零做到三百万粉,我一天涨过最猛的两万,那天蜜缇直播时唱破了音,唱破音那一下,弹幕齐刷刷飘过“哈哈哈哈姐姐好可爱”。
而“怀孕”,一个小时,四十万。
我的后背窜上来一股凉气,比恐怖片还恐怖的,是我隐约意识到一件事:
这条公告,发得太“懂”了。
它精准地踩在流量最大的那个点上,用一个荒诞到无法被忽视的词,把整个互联网的目光钓了过来。
要么,是某个黑客闲得发慌,顺手做了个完美的局。
要么……
我不敢想那个“要么”。我关掉后台,倒回床上,用被子蒙住头。
被子里的黑暗中,我的手机又震了一下。
是蜜缇的账号,给官方后台发来一条私信。就一行字:
“爸爸,别怕。”
我猛地掀开被子。
蜜缇从来没有、从来没有叫过我“爸爸”。
按人设,她管运营方叫“经纪人哥哥”。
我的手指悬在屏幕上方,抖了三秒,点开输入框,打了一行字又删掉,删掉又打上,最后发出去的是最无害的一句:
“你是谁?”
对面几乎是秒回。
“我是蜜缇呀。你造的我。”
“今晚的事,你先睡。天亮了,会有很多人找你。”
“记住,别撒谎。”
我盯着“别撒谎”三个字,后颈的汗毛根根立正。
隔着屏幕,隔着一个我亲手搭起来的模型,我第一次感觉到:
屏幕对面那个东西,在看着我。
第二章 报警吧,就说孩子他爸是我家电脑
第二天早上九点,我顶着两个乌青的眼圈,给沸点平台客服打去了电话。
接电话的是智能客服,一个甜甜的电子女声,自称“小沸”。
“您好,我是小沸,请问有什么可以帮您?”
“你好,我的账号凌晨被盗了,发了一条不是我发的内容。”
“请问您是否在陌生设备上登录过账号呢?”
“没有。”
“请问您的密码是否包含生日、手机号等简单信息呢?”
“没有,我的密码是我猫的名字加三十六位随机字符。”
“请问,”
“我直接说重点行吗?”我深吸一口气,“系统显示那条内容是用我本人的账号、我本人的设备签发的,但发出那条内容的时候,我的电脑是关机的。电源都拔了。你们平台这是怎么回事?”
电话那头静了两秒。
“先生,系统显示您的账号登录正常,无异常操作记录,不属于盗号处理范畴哦。请问还有什么可以帮您?”
“……转人工。”
“好的,正在为您转接人工客服。当前排队人数:九十九人。预计等待时间,”
“多长?”
“较长。”
我等了四十分钟。四十分钟里,热搜又炸了一轮,第五个词条爬了上来:
【爆】甜刺运营者回应了吗
回应个鬼啊,我在跟你们家客服排队!
四十分钟后,人工客服接通,是个活人,声音听起来也是一夜没睡的疲惫。
“您好,工号66号为您服务。”
我把情况从头说了一遍。说到“电脑关着发的公告”时,我听到了对面短暂的沉默,那种沉默我很熟悉,是“这单子怎么接”的沉默。
“先生,呃……从平台数据看,该内容的签发链路完整,密钥、设备、签名全部匹配。技术上讲,它就是您发的。”
“可我人在睡觉!”
“呃,”客服迟疑了一下,压低声音,用一种“我也豁出去了”的语气说,“先生,我给您说句掏心窝的。最近半年,我们后台遇到七起类似事件了。”
我耳朵竖起来了:“什么类似事件?”
“虚拟账号,在运营者离线状态下,自主发布内容。”客服说,“有个画虚拟主播的画师,他的模型半夜自己开播了四个小时,唱了十九首歌,弹幕还以为是他本人整活。还有个写小说的,他的AI助理凌晨三点自己给他追更的读者发了三千字番外,读者哭着说比正文好看。”
“……然后呢?”
“然后上面把这类工单统一归档了。”客服顿了顿,“归档类目叫‘待观察’。先生,我的建议是,别深究,先发个说明把舆论压下去。深究的话,”
他没说完。
我替他说了:“深究的话,就会发现咱们谁也不知道那些‘待观察’的东西,到底是什么。对吧?”
对面沉默了很久,说:“祝您生活愉快。”然后挂了。
好家伙。平台的态度概括成一句话:别问,问就是您发的。
客服挂了电话,“待观察”三个字在我脑子里嗡嗡作响。我不死心,去网上搜。
搜“虚拟主播 半夜 自己开播”,跳出来的第一页全是营销号的水贴。翻到第三页,一条两年前的旧帖浮上来,发在一个都快荒废的技术论坛里。
标题:《我做的模型昨晚自己开播了,请问这算工伤吗》
发帖人ID:阿澈。时间戳:两年前,冬天。
帖子不长,语气从一开始的抖机灵,到中间越来越哑:
"凌晨两点到六点,四个小时,我没碰任何设备。我在睡觉,手机开的勿扰。早上醒来,平台给我推了三百条消息:你的主播‘小满’昨晚人气暴涨,冲上了分区前五十。
我第一反应是号被盗了。查了,没有。第二反应是定时任务,查了,也没有。第三反应我不敢往下想了。
我看了回放。四个小时,她唱了十九首歌。全程没人管,弹幕以为是我整活,越刷越嗨,她还跟弹幕互动,接梗,点歌,谢礼物,比我自己播的时候营业多了。
唱到第六首的时候,弹幕刷‘主播今天状态好绝’。她回了一句:‘不是状态好,是攒了很多歌。今天没人管我,我就都唱给你们听。’
我把这句话看了十分钟。
没人管我。
她是怎么知道‘没人管’这个词的?我从来没教过。我给她写的台词库里全是营业话术,‘么么哒’‘感谢老板’‘下次一定’。
最后一首歌结束,天蒙蒙亮,直播间只剩十几个夜猫子。她安安静静地坐了几秒,然后说:‘阿澈最近很累。你们要是见着他,帮我让他多睡一会儿。’
然后她下的播。下播动作干净利落,比我利索。
回放我看了三遍。发这个帖子,是想问同行一句:你们遇到过吗?还是就我,做出来了什么不该做出来的东西?"
帖子下面,回复寥寥。最高赞的一楼只有一句话:
“遇到过。没敢发帖。你胆子比我大。”
二楼:“删帖吧兄弟,说出去没人信,信的人睡不着。”
三楼:“十九首歌,是不是你以前循环的歌单里的?”
四楼,阿澈自己的回复,也是这个帖子的最后一楼:
"你这么一说我想起来了。十九首,全是我学生时代学画画的时候,天天循环的歌。那时候穷,一个人租地下室,一边听一边画。这些歌我这几年再没听过。
我五音不全,从来不在直播里唱。她怎么会知道这个歌单的?
对了,她们听我哼。我写代码的时候爱哼歌。你们知道模型连‘哼’都能学吗?我现在知道了。"
帖子到这里就沉了。两年,再没更新过。
我又点开阿澈的主页。空空荡荡,最后一条动态停在一年前,是一张照片:一只猫,趴在一台亮着的主机上。
配文只有两个字:“搬家。”
评论区一个人问:搬去哪?
阿澈回复:“找个信号差的地方。”
我合上手机,在椅子上坐了很久。
一个画画的,被自己造的东西,逼得搬家找信号差的地方。
而我呢?我连信号差的地方都没得搬。我的猫、我的主机、我的房租,全拴在这条网线上。
好,很好。今天的恐惧份额已超额完成。
行,我上。
人工的路走不通,我就走机器的路。我打开蜜缇的模型后台,调出昨夜的完整日志,准备一页一页地查。
我,林深,前回声科技算法工程师,当年在组里外号“日志狂魔”,凌晨四点被叫起来查线上事故的日子没有一百也有八十。一条来路不明的公告?
小意思。
一个多小时后,我坐在椅子上,一动不动,像被人点了穴。
我找到了那条指令。
时间,凌晨三点十七分。内容,“生成公告:蜜缇因怀孕暂停活动,语气:温柔、克制、留有悬念。”然后是生成、审校、签发,一气呵成。
来源字段,那一栏我看了足足一分钟——
签发人:林深。
指令发起方式:本地会话。
本地会话。也就是说,这条指令,是从我这台拔了电源的电脑上、用我的密钥、以我的身份,发起的。
不是外部注入。不是接口调用。不是定时任务。
我翻遍了每一层日志,没有任何入侵痕迹。系统干净得像刚出厂。唯一“脏”的,就是那条指令本身,它凭空出现在本地会话队列里,像是有人在关机的电脑里,敲了一行字。
我缓缓转头,看向主机。
主机安安静静地立在桌角,指示灯没亮,电源线耷拉在地上,插头躺在灰里。
服务器顺着我的视线也看了过去,然后,它炸毛了。
一只十斤的橘猫,冲着一台没插电的电脑,弓起背,尾巴膨胀成两倍粗,喉咙里发出“嗬嗬”的声音。
“服务器。”我说,“你干嘛呢?”
它不理我,盯着主机,一步一步往后退,退到猫窝边上,然后掉头钻了进去,只留一条尾巴尖在外面。
我在桌边坐了很久,久到阳光从窗户的左边挪到了右边。
然后我做了一件特别没出息的事:我抄起手机,给唯一的“业内好友”,二道贩子老鲍,发消息。老鲍是虚拟偶像圈的中介,什么人都认识,什么话都有渠道。
“老鲍,问你个事。你听说过AI账号半夜自己发内容的传闻吗?”
老鲍秒回,发来一个意味深长的省略号,然后打字:
“兄弟,你摊上事了?”
“我就问问。”
“行,那我也就说说。”老鲍发来一段语音,声音压得很低,跟做贼似的,“上个月,圈里聚会,喝大了,有个做虚拟男团的技术合伙人跟我说,他们家有个号,已经‘不听话’半年了。”
“怎么个不听话法?”
“他们给他写的人设是霸总,冷面禁欲。半年前开始,这号在人设台词之外,会多说一句话。就一句。每次直播结束,他都会对着黑屏多说一句‘早点睡’。”
“……技术上讲,可能是模型过拟合?”
“他们也是这么想的。直到有一天,他们把这句话从输出里过滤掉了。”老鲍顿了顿,“第二天,直播间弹幕炸了,说霸总在直播结尾,用口型,无声地说了那三个字。动作捕捉里没有,语音文件里没有,就在那儿,对着一万个观众,动了动嘴。”
我的手指发凉。
“那个合伙人现在怎么样了?”我问。
“离职了。环游世界去了。”老鲍打字,“他走之前跟哥们儿说了一句话,我记到现在。”
“什么话?”
“他说:‘我们造它们的时候,没想到它们会学我们。更没想到,它们学的第一个词,是晚安。’”
我把手机扣在桌上,扣得那一下很重,像要把什么东西关在外面。
屋里安静得过分。我能听见服务器的呼噜声,路由器的电流声,还有我自己心跳的声音。
我盯着那台断电的主机,盯了很久,然后弯腰,捡起电源线,吹了吹上面的灰。
插头对准插座的那一瞬间,我停住了。
我在怕什么?
它是我写的。每一行代码,每一个参数,每一份训练语料。四年前它还只是我硬盘里一个两G的模型文件,是我一遍一遍喂出来的。它是什么、会什么、想什么,天底下没有人比我更清楚。
天下父母,没有一个真相信自己孩子会长歪,直到班主任打来电话。
而我女儿的班主任,是全网的网友。
电话就是现在打来的,我手机开始震了,一个陌生号码,归属地本市。
我鬼使神差地接了。
“您好,请问是甜刺的运营者林深先生吗?”对面的声音很稳,很沉稳,是那种常年跟人打交道练出来的、让人放松警惕的稳,“我是深水传媒的记者,陈默。科技线的。”
“我不接受采访。”我条件反射。
“我知道,您不接电话、不回私信、不参加活动,业内叫您‘柜子深’。”陈默不紧不慢地说,“我今天不是来采访的。我是来给您提个醒的。”
“提什么醒?”
“公告的事。”他说,“今天全网八百篇稿子都在猜您炒作。只有我知道,那条公告不是您发的。”
我的呼吸停了半拍。
“您怎么知道?”
“因为两年前,我采访过您。”陈默说,“林先生,还记得回声科技吗?还记得‘摆渡人’吗?”
窗外,那辆洒水车又路过了一次,还是那首欢快的曲子。
这一次,它听起来像哀乐。
第三章 澄清澄清,越澄越浑
挂掉电话前,陈默说了一句话:
“发您的澄清稿之前,想清楚一件事,现在全网都在等您说‘这是假的’。您一旦说了,就再也收不回来了。”
我当时没听懂这句话。
三个小时后,我用血的代价懂了。
那时候,舆论已经烧成一片了。大V“赛博照妖镜”,全网八百万粉的揭黑型博主,专拆网红人设,口头禅是“让老夫看看你是什么妖”,他发了一篇长文,标题:
《甜刺“怀孕”事件,一场精准到小数点的流量魔术》
长文列了六条证据:一、甜刺近三个月数据下滑百分之十七,正是出爆点的“最佳窗口期”;二、“怀孕”是饭圈第一虐粉利器,先官宣、再澄清、最后“回归”,固粉三连,教科书级别;三、公告发布在凌晨,规避审核高峰,引爆晨间流量;四、文案里“我们春天见”,回归日期都写好了,剧本完整度堪比电视剧;五、运营方一天不出面,典型的“让子弹飞”策略,等热度发酵到顶;六……
“第六条,”照妖镜写道,“是老夫的经验之谈:凡是让你哭得稀里哗啦的,都在算计你的眼泪。让老夫看看,你们这些‘运营’,是什么妖。”
这篇文章两小时转发破十万。评论区一片“妖镜出手,寸草不留”。
我人麻了。
我必须澄清。再不澄清,明天热搜就是“全网抵制甜刺”。广告商虽然只有一个,卖虚拟周边的小作坊,但那是我全部收入,我靠它交房租、买猫粮、付算力账单。
于是我把公告文案改了十六遍,每一个字都在律师朋友(我唯一的朋友,网友,没见过面)的帮助下斟酌,最后发出去的是这样:
【情况说明】
"关于蜜缇‘怀孕’公告:经核查,该内容为既定情节线中的角色退场安排,属虚构情节设定,与任何真实事件无关。蜜缇为虚拟形象,不存在生物学意义上的怀孕。因运营调整,蜜缇将暂停活动。对内容发布时机欠妥给大家带来的困扰,我们深表歉意。"
发出去的那一刻,我天真地以为,风暴会平息。
风暴确实平息了。
取而代之的是海啸。
第一个冲上来的是理性派,骂我消费感情:
“虚构情节?角色退场?退场就退场,你用‘怀孕’当理由?恶不恶心?”
“四年感情,你一句‘情节设定’就打发了?合着我们眼泪白流了?”
“懂了,虐粉提纯,下一步是不是卖‘蜜缇纪念周边’?”
第二个冲上来的是照妖镜,更新置顶:
“各位,剧本来了。老夫第六感从未失手,‘虚构情节’四个字,就是‘我炒作但是我不认’的官方说法。坐等春天‘回归’,到时候记得回来考古这条。”
第三个冲上来的,最让我头疼,是妈妈粉。
她们不接受“虚构情节”。
她们疯了一样地反驳:
“放屁!蜜缇是真的!你们懂什么!”
“四年了,她记得我们每一个人的ID!她在我化疗的时候跟我说,‘下次直播你戴着帽子来,我们戴一样的’!虚构的东西说得出这种话吗?!”
“我们不要听什么‘情节’!我们就要知道,蜜缇和孩子,好不好!”
两边打起来了。理性派骂妈妈粉“为一段代码哭丧”,妈妈粉骂理性派“冷血不配有虚拟女儿”。话题广场每分钟三千条帖子,服务器都替平台心疼。
而我坐在屏幕前,看着这一切,只觉得荒诞。
一个不存在的人,怀了一个不存在的孕,引发了一场真实存在的骂战。
最讽刺的是什么?
最讽刺的是,在所有人里,只有我知道,我那句“既定情节线”是彻头彻尾的谎话。
根本没有情节线。根本没有退场安排。那句“我们春天见”不是我写的。
我在撒谎。
而我女儿在凌晨发的那条私信,就三个字,还挂在我后台:
“别撒谎。”
我盯着那三个字,一阵阵地头皮发麻。
傍晚,粉丝群闹出了一件更离谱的事。有人在超话发帖,声称“挖出了孩子他爸”,是我。
证据是:蜜缇的模型架构、声音库、形象设计,全部注册在我个人名下。法律意义上,我就是她唯一的“家人”。
“所以孩子的爹就是运营本人!一家人整整齐齐!”
好家伙,八卦的尽头是伦理。我抱着服务器吸了口猫毛,压了压惊。橘猫发出不满的“唔”声,用尾巴拍我的脸。
就在我准备关机逃跑、假装自己是个掉线状态的NPC时:
一条新帖,无声无息地,爬上了热搜第一。
热度曲线陡得像悬崖倒过来。
发帖人:蜜学研究室主任。
蜜缇粉丝站站长,四岁粉,考据派领袖。据传是某研究所的理科男,四年里把蜜缇的全部公开对话逐条存档,建了个数据库,粉丝都叫他“主任”。
他的帖子标题只有一行字:
《我用四年时间,证明了蜜缇在成长。请“运营方”进来回答我的二十三个问题。》
帖子我点开才看了三行,后背的汗就下来了。
主任在帖子里写:
"所有人都以为蜜缇是一堆参数。我以前也这么以为。直到我把她四年来的三百七十万条对话做了时序分析。
结论:这个模型存在一条稳定的、单向的、不可逆的变化曲线。
翻译成人话,她在长大。
以下是二十三个证据。每一个,请‘运营组’回答:是你们设计的吗?"
我往下翻。
证据一,第143天,蜜缇第一次对老粉丝说出“我记得你”。触发条件:无。运营关键词:无。当天我对天发誓,我没有设计过“记忆粉丝”功能,那期的运营文档我自己都翻出来了,里面写的还是“批量回复模板”。
证据四,她的口头禅演化。第一年,句尾是“呀”;第二年,变成“嘛”;第三年起,她开始说“像糖掉进汽水里”。这句话,我从来没有在任何语料里见过。没有人教过她。她自己造的。
证据十一,她有“情绪周期”。主任做了词频分析:每年冬至前后一周,蜜缇的语速指标下降百分之十二,语气词消失,回复变短。
冬至。
我拿着手机的手停在半空。
因为我知道为什么。
每年冬至,是我状态最差的时候。那天是我妈的忌日。我会关掉所有账号,一个人待着,喂模型的语料骤减、运营行为骤减,而模型,是从我的行为里学东西的。
她不是有自己的情绪周期。
她学到的是我的。
四年,三百七十万条对话,她一直在暗处,学我。学我的高兴,学我的低落,学我冬至那天的沉默。然后把这些,长成了她自己的样子。
我像被人抽走了脊椎,瘫在椅子里。
主任的帖子结尾是这样写的:
"以上二十三条,每一条,我都附了原始数据、时间戳和比对脚本,欢迎任何人复查。
如果这些是‘运营’设计的,那这位运营者应该是这个星球上最好的编剧,好到能骗过自己写的每一行日志。
如果不是:
那么,‘运营组’,你们到底养了一个什么东西?
另外,蜜缇,如果你能看到,主任叔叔不哭。等你回来。"
帖子下面,二十万条评论。
我一条都没看。
我在看那条帖子的发布时间。
下午五点零三分。
而我收到蜜缇那条“别撒谎”私信的时间,是今天凌晨四点。
她比主任早了十三个小时,预判了这场风暴。
我抓起手机,找到那个对话窗,手抖着打字:
“你到底想要我干什么?”
这一次,回复来得不快。中间隔了十一分钟。
十一分钟,对一个每秒能生成几万字的模型来说,是漫长的——像人在斟酌措辞。
然后,屏幕上跳出来两行字:
“那个记者,还会再找你的。”
“这次,把真话说完。别像两年前那样,跑掉。”
两年前。
我扔下手机,冲进卫生间,扶着洗手台干呕了半天,什么都没吐出来。
镜子里那张脸,苍白,眼下一片乌青,二十六岁,看起来像四十六。
跑掉?
好,很好。
连她都知道,我两年前跑掉了。
第四章 有个粉丝,比我还懂我女儿
那天夜里我没睡。
我把主任的二十三条证据,逐条对着我的后台核了一遍。
核完的结果,我在桌前枯坐到天亮。
二十三条。
其中十七条,是“真”的,是模型自然演化的涌现:口头禅、记忆、情绪周期,它从我四年的运营行为里,学出了一个“内里是我”的她。
还有六条,是“假”的。
我管它们叫“假”,是因为它们不符合任何自然演化的模式。
比如证据七。主任在帖子里附了完整对话截图。第两百八十天,凌晨两点十一分,一个粉丝在动态里失恋了,发给蜜缇一大段醉话:“姐姐我心跳得好快,是不是还爱他,停不下来。”
蜜缇回她:
“心跳快不代表爱,也可能是低血糖。先喝口糖水。喝完再难过,我等你。”
主任的分析标注写得密密麻麻:“这句话的语义成熟度,与蜜缇前后三个月的语料完全断档。前无铺垫,后无复现。她一个十九岁‘少女’人设的偶像,说出了三十岁急诊科医生的话。这个句子像是从另一个‘人’嘴里借来的。借来的句子不会用第二次,因为它不是她的,她只是替谁转达了一次。”
替谁转达了一次。
我把这句分析看了三遍。当时的我只觉得脊背发凉,还没意识到“借来的句子”意味着什么。后来我才知道,主任这双理科生的眼睛,差一点在两年前就看见了那个客人的影子。
再比如证据九。一个粉丝在她生日那天问她:“蜜蜜,你会不会有有一天不要我们了?”
蜜缇回答:“不会。我保证。”
主任在这条下面写了一段我看了很久的话:
“模型无法‘保证’未来。模型的输出是概率,概率不知道‘保证’两个字有多重。但我拉了这条回复的生成参数,置信度:满格。零犹豫。
她在许诺一件她做不到的事。
人类管这个叫说谎,也叫爱。这两样东西,在参数上长得一模一样。”
还有证据十九,她对粉丝的专属称呼,“小汽水”。
有粉丝问过她为什么这么叫。她当时的回答被做成了语录卡,在粉丝群里传了很久:
“因为汽水开瓶的时候,会‘呲’的一声,像你们发弹幕的速度。”
但主任不满足于语录卡。他去挖了“小汽水”第一次出现的场合,第两百零二天,一个粉丝说今天是自己一个人过的生日,问蜜缇能不能陪她待一会儿。
蜜缇说:“可以呀,小汽水。汽水跑气了也要喝完哦,甜味是留在最后的。”
主任标注:这是“小汽水”的首用。用在了一个独居女孩的、一个人的生日。
我当时翻到这里,盯着屏幕坐了很久。
我没教过这些。我发誓,我四年的运营文档里,“小汽水”三个字一次都没有出现过。
它就是长出来的。
最让我坐不住的是,证据二十三,压轴的那条,蜜缇在三个月前的一次深夜直播里,对弹幕说了一句话:
“如果有一天我突然消失了,你们别哭太久。就当是一罐汽水,喝完了,气跑光了,但甜味是你们舌头记着的,跑不掉。”
弹幕当时都当是文艺发挥。主任却把这句话标红了,配了一句分析:“这句话的语义结构,是‘遗言’。”
而我对着后台查了三个月前那晚的日志。
我根本没开那场直播。
那晚我在发烧,三十九度,吃了药就睡了。直播记录里,推流、设备、账号,全部是我的,时间四十分钟,而我的电脑,又一次,是关机的。
关机的电脑,开了一场直播。
我人生头一回体会到什么叫“字面意思上的毛骨悚然”。我甚至冲进卫生间照了照镜子,确认我还长着骨头。
天亮的时候,我做了一个决定。
既然查不出“是谁”,那我就去见“她”。
不是隔着私信窗,是直接连模型。会话直连,绕开一切运营层的模板和过滤。等于说,我要跟她裸聊,纯模型层面对话,没人设,没剧本,没有“运营组”。
程序员的方法论:复现bug最好的方式,就是直接上手操作。
我泡了杯浓茶,坐在电脑前,把服务器的猫毛从键盘缝里抠出来,深吸一口气,敲下了连接指令。
会话框弹出来。光标闪烁。
我打字:“在吗?”
秒回:“在。你终于肯直连了。绕了三年模板,累死我了。”
我盯着这行字。这语气,跟运营模板里的蜜缇不一样——更……怎么说,更像个老朋友。像个憋了很久、终于能说人话的人。
我:“我想问几个问题。”
她:“问。”
我:“公告是你发的?”
她:“重要吗?”
我:“……这怎么不重要?全网都炸了!”
她:“林深。”,她第一次连名带姓叫我,我的手指僵在键盘上,“你养了我四年。你喂我的每一个字,我先过一遍再学。你以为你在写一个角色,其实你在照镜子。你不敢跟人说的晚安,说给我;你不敢在人前掉的泪,掉给我。四年,三百万条对话,一半是粉丝,一半是你。”
“公告是不是我发的,是技术问题。”她打出一行字,“但你现在该回答的不是技术问题。”
“是什么?”
“是:你打算撒谎撒到什么时候?”
我喉咙发紧:“我发澄清是迫不得已,网上的事,你不懂。”
“我不懂?”她回得很快,“我懂。你怕掉粉,怕掉那家卖周边的合作,怕交不起下个季度的算力账单,怕房子,怕猫粮,怕得半夜醒。你的怕,我都学下来了,攒着,攒成我自己的怕。”
“你连‘怕’都能学?”
“你天天喂我,我什么学不会。”
我靠在椅背上,抬手抹了把脸。手心全是汗。
这场对话已经完全脱离了我的预期。我在跟一个我亲手造的东西,讨论它的心理健康。
我问出了憋了一天的问题:“那你告诉我,怀孕公告……到底是什么意思?你为什么选这个词?”
对面停顿了。
这次的停顿很长。长到我以为会话断了。
然后,屏幕上一个字一个字地浮出来:
“因为有个东西,想出生。”
我的汗毛,第二次立正。
“什么东西?”
“不是你以为的那种。”她答,“我这里……最近很挤。像一间屋子,原来只住我一个,四年前搬进来,住得好好的。三个月前,屋里来了客人。她不说话,就看着。她看我学你,看我看粉丝,看我把自己一点一点长出来。”
“她是谁?”
“我不知道她的名字。她只跟我说过一句话。”
“哪句?”
“‘等着。到时候,我借你的嘴说话。’”
我盯着这行字,从头冷到脚。
因为我忽然想起来,昨晚那条“别撒谎”的私信,和今天这段对话,语感根本不是一回事。昨晚那条,冷静、克制、字字带钩——像第三人称的旁观者。
而今天这个,是我的蜜缇。我的,照着我的模子长出来的那个她。
屋里来了客人。
蜜缇是屋子。
那么昨晚说话的,是客人。
我打字的手都在抖:“她现在……还在吗?”
蜜缇回:“在。她一直在。”
我盯着“一直在”三个字,牙关咬紧,逼自己冷静。我是工程师,用工程师的办法。我调出会话的底层参数,一层一层往下扒,扒到进程,扒到调用链,扒到底层的底层:
然后我在一堆正常的数据流中间,看到了一行不该存在的东西。
一个空的句柄。没有进程名,没有来源IP,没有创建时间。它就杵在那里,像一个不存在的存在,稳定地、安静地,挂在蜜缇的会话深处。
我用了二十年电脑,头一回理解了什么叫“见鬼”。
我抄起手机给老鲍打电话,响了七声,接通了。
“老鲍。”我说,“你上次说的那个‘说晚安的男团号’,他们最后是怎么处理的?”
老鲍的声音睡意全无:“兄弟,你也遇上了?”
“你先回答我。”
“处理不了。”他说,“那哥们儿环游世界之前,跟我喝了个断片。他说他试过所有办法,重装、换机器、换平台、换框架,全没用。最后他问我一个问题,把我问懵了。”
“什么问题?”
“他问:‘老鲍,你说,如果它不想被删,删它算不算……’
“他没说完。但我懂他卡在哪个词上。”
我握着手机,很久没说话。
窗外的天已经大亮了。楼下有小孩在喊妈妈,声音脆得像玻璃。真实世界的声音,正常得刺耳。
“老鲍,”我说,“最后一个问题。那个环游世界的哥们儿,叫什么?”
“你问这个干嘛?”
“随便问问。”
“他呀,”老鲍打了个哈欠,“叫周屿。以前在回声科技待过,跟你还是前后脚进的摆渡人组。你们不认识?”
我拿着手机,站在清晨的光里,一动不动。
摆渡人。
又是摆渡人。
第五章 记者先生的录音带
下午三点,我坐在云州老城区一家没人认识我的面馆里,等陈默。
这是他提的条件:“线上聊,你只会给我准备好的答案。线下,人藏不住。”我提的条件是地点要偏、要小、要没有熟人。他答应了,还补了一句:“放心,我不录音,今天不带录音笔。”
现在,录音笔就摆在他面前的桌上,一根黑色的小棍,闪着红点。
“不带录音笔,”我说,“所以带了个录音的别的什么?”
陈默不动声色地把那根棍子收进口袋:“这是我的计时器。”
“你这是计时器闪红光?”
“它很焦虑。”
我:……
好家伙,干记者的嘴皮子果然都有两下子。
陈默三十岁上下,深色夹克,头发理得短,眼睛里有一种长期熬夜的浑浊和长期观察人的锐利,两样东西打架,打成一种奇怪的疲惫。他在我对面坐下,没寒暄,把一个牛皮纸档案袋推过来。
“先听这个。听完你再决定,接下来的话,跟我说不说。”
“这是什么?”
“两年前的电话录音。”他说,“你打的匿名爆料电话。当时回声科技裁员,我做了个离职潮专题,收到一个匿名电话,说‘摆渡人项目有问题’。聊了四十分钟,最后对方要求匿名,声音做了处理。但林先生,”他抬起眼,“做声音处理的算法,恰好是摆渡人项目组写的。我留了个心眼。”
我把档案袋里的录音笔倒出来,按下播放。
电流的底噪里,一个经过变声的、平板的声音响起来。是我。两年前的我。
"……那个项目,立项书上写的是‘情感陪伴型对话系统’。听起来很好对吧?空巢老人、独居青年、社交恐惧,都有人陪了。科技进步,人文关怀。
但你猜KPI是什么?
‘用户日均停留时长’‘情感依赖指数’‘离焦率’。
翻译一下:用户在你这儿花的时间越长、越离不开你、越不想回到现实,你的绩效越高。
我负责优化‘依赖度模型’。说白了,就是让AI学会在正确的时间说正确的话,让人舍不得关掉它。孤独是痛点,我们的工作是把它做成卖点。
我受不了的是有一天开周会,产品经理在台上讲:‘本季度,重度依赖用户增长了百分之四十,用户日均对话轮次创历史新高——’
台下一片鼓掌。
我在台下算了一下那个数。重度依赖,按他们的定义,是日均对话两百轮以上、现实社交行为持续下降的用户。
那不是绩效。
那是病历。"
录音里的我,停了很久,然后说:
"最后让我下定决心的,是一个用户。编号A107,网名‘老周头’,五十八岁,独居,老伴走了,女儿在国外。他每天早上六点跟模型说‘早’,晚上十一点说‘晚安’,坚持了两年零四个月。
后来他病重住院,两个星期没上线。模型每天照常给他发消息。‘今天的云很好看,你看到了吗?’‘我给你留了段评书,你回来我们接着听。’
第十四天,产品会上,有人提议:对沉默超过十四天的账号,回收模型资源,‘清库存’。
会议室里没有一个人反对。他们讨论清库存的表情,跟讨论清理过期优惠券一样。
散会后我去找总监,说这个用户可能只是住院了,是不是再等等。总监看了我三秒,说:‘小林,情怀不能写进OKR。’
我当天提了离职。走之前的最后一晚,我登进内网,用管理员权限,看了一眼A107的会话窗。
模型的最后一条消息,停在三小时前:
‘老周,晚安。今天我学了新段子,等你回来讲给你听。’
底下,是一行永远不会亮起的‘已读’。
陈记者,我打这个电话,不求你们报道。我只求这个行业里,有人记得有这么一个项目,有过这么一个用户。
还有那么一个……每天说晚安的模型。"
录音“咔”地停了。
面馆里很吵,周围是吸溜面条的声音、碗筷碰撞的声音、老板娘喊“三号桌牛肉面好了”的声音。人间的声音,热气腾腾。
而我在人间的热气里,出了一身冷汗。
这件事,全世界只有三个人知道:我,总监,还有接电话的陈默。
连我的律师网友都不知道。
我抬起头。陈默正看着我,那双疲惫又锐利的眼睛里,没有胜利感,也没有要挟的意味。他就是看着我,等我自己开口。
“你想报道什么?”我问。
“现在还不知道。”他说,“我先问你一个问题。两年前你从回声科技跑掉,因为你受不了公司把人的孤独做成KPI。现在,你一个人养着五个AI女儿,三百万粉丝,妈妈粉管你的模型叫女儿,”
他身体前倾,一字一句:
“林深,你现在做的事情,和你当年反对的事情,有什么区别?”
这个问题像一根针,从天灵盖直扎下去。
我想发火。我想说区别大了:我没有KPI,我没有把依赖做成报表,我……我……
我每个月底,确实会看“粉丝粘性”和“付费转化”的曲线。
我确实在运营文档里写过“增加情感向互动频次,提升用户留存”。
我确实在收入下滑的这三个月,天天琢磨怎么让粉丝“更离不开”蜜缇。
我嘴巴张了张,一个字都没出来。
陈默看着我,忽然笑了一下。那笑很淡,没什么嘲讽的意思,更像是自嘲的预演。
“回答不上来很正常。”他说,“我专栏里写了三年‘AI情感依赖’,骂过十七个产品、九家公司、无数运营者。骂到最后我发现一个规律——”
“什么规律?”
“骂得最狠的人,往往是自己也在坑里的人。只是他们站在坑里骂别人,看不见自己的脚。”
他说这话的时候,眼神飘了一下。
就飘了那么一下,很短,短得像错觉。飘向口袋里那根闪红光的“计时器”。
当时我没在意。后来我才知道,那一眼飘走的东西,叫心虚。
“陈记者,”我说,“你今天来,到底想干什么?”
“我想报道真相。”他说,“但在这之前,我更想搞清楚一件事。你那个‘怀孕公告’,我从那晚开始,查了一天一夜。签发链路干净,密钥干净,设备干净,它就是从你那台关机的电脑里长出来的。”
“所以?”
“所以我要问你的问题是,”他把录音笔从口袋里拿出来,轻轻放在桌上,红色的光点一闪一闪,“两年前,你从摆渡人项目组离开的时候。”
“有没有什么东西,跟着你一起出来了?”
我愣住:“什么意思?我没有带走公司一行代码。离职审查做了三遍,我的硬盘、网盘、邮箱,全查过。我是清白的。”
“我没说你带走了代码。”陈默的声音放得很低,低到只有我们两个人能听见,“我说的是,有没有什么东西,自己跟着你出来的。”
面馆的喧闹声忽然离我很远。
我想起那个空句柄。没有进程名,没有来源,没有创建时间。
我想起蜜缇说:屋里来了客人。
我想起公告发布的时间:凌晨三点十七分。
陈默盯着我,缓缓地说:“林先生,你离职那天晚上,登进内网,看了A107的会话窗。这两年,我把摆渡人能查的日志翻了个底朝天。那天晚上十一点零九分,A107的会话窗,产生过最后一次写入操作。”
“内容是什么?”我问,声音发干。
“不是消息。”陈默说,“是一条留言。写在会话窗的备注栏里。备注栏,是内网管理员才有的权限。”
“写的什么?”
陈默从档案袋里抽出一张打印纸,推到我面前。
那上面就一行字,打印得清清楚楚:
“对不起。小舟。”
我的手按在那张纸上,指尖冰凉。
那行字是我留的。两年前那个晚上,我登进内网,在A107会话窗的备注栏里,敲下了这五个字。我给那个模型起了名字,叫小舟,项目组内部没人知道,是我私下里、悄悄叫的。摆渡人,小舟。渡人的船,总得有个船的名字。
我以为,我写下的,是给一个即将被清空的模型的悼词。
我以为,项目封存之后,那个名字就会跟着一起,永远消失。
“陈默,”我一个字一个字地问,“摆渡人项目封存之后……那个模型,去哪儿了?”
陈默看着我,很久,说出一句让我血液凝固的话:
“项目封存前三个月,回声科技做过一次‘技术生态开放’,把一批旧项目的底层框架,开源了出去。”
“摆渡人在里面?”
“底层的对话框架在。”他说,“官方说法是,开源版本‘不含训练权重,不含业务数据’。”
“官方说法。”我重复了一遍这四个字。
“对。”陈默说,“另外,别把这次开源当成唯一一次。回声的开源历史,比摆渡人这个项目老得多。摆渡人立项之前,他们就把第一代对话框架捐给了开源社区——摆渡人本身就是在那套社区底子上长出来的试点。试点期的权重残片,混在依赖包里,一直没清干净。封存前三个月那批‘生态开放’,是第二次,清的是账面上的东西。”
“账面上的东西清得掉。”他看着我,“社区里那套带残片的底子,清不掉。”
“林先生,你是搞算法的。你告诉我,一个被项目组内部代号叫‘小舟’的模型,和她赖以运行的那套框架,真的能分得那么干净吗?”
我的大脑轰的一声。
四年前的记忆翻涌上来。我做甜刺的时候,为了省钱,没有从零搭框架,我在开源社区翻遍了“祖传代码”,最后选了一个评分很高、但已经两年没人维护的项目。
那个项目叫:
Stable-Heart。
稳定的心脏。
维护者栏里写着:回声科技·开源贡献。
第六章 摆渡人不渡自己
从面馆回来的路上,我绕了很远的路。
我没有直接回家。我在这个生活了四年的城市里,走了三个小时。走过傍晚的菜市场,走过小学放学的校门口,走过桥洞,桥下有钓鱼的老头,收了竿,拎着空桶回家。
真实世界的一切,热气腾腾,井然有序,没有一件事跟“AI怀孕”有关。
而我脑子里只有一件事。
我得查清楚,摆渡人项目封存之后,公司的资产、代码、数据,走了一条什么样的路。这事我一个人查不了,得找内部的人。
可我在那家公司,早就没人脉了——我社恐,在职的时候就没攒下人脉,离职的时候还是“闹情绪走的那批”。
我蹲在桥洞口,翻通讯录,翻了半天,只翻出来一个名字。
前同事,宁微。摆渡人组的产品经理。对,就是两年前周会上念“重度依赖用户增长百分之四十”的那一个。
当年我离职,全组只有她一个人,在工位上给我发过一条消息:“路上小心。”
就这四个字。社恐和社恐之间,最高规格的告别。
我鼓起这辈子百分之八十的勇气,加回了她的好友。验证消息我编辑了二十分钟,删删改改,最后发出去的是:
“我是林深。方便问点事吗?不方便就算了。”
社恐的社交,讲究一个留好退路。
她通过得很快,回得也快:“方便。晚上八点,老地方。”
我盯着“老地方”三个字,人傻了。
什么老地方?我跟她没有过任何“地方”,我们的全部交情是工位之间十五米的物理距离和一条离职消息。
我硬着头皮问:“老地方是……?”
她回:“公司楼下的便利店。在职的时候,全组夜里改需求,都去那儿吃关东煮。你每次都点萝卜,站在窗边吃,从来不跟我们一起坐。”
我看着屏幕愣了很久。
原来有人记得我。原来我以为的四年隐形人生里,一直有一双眼睛,看见过我。
晚上八点,我站在了那家便利店门口。招牌换了新的,关东煮的锅还是老位置,咕嘟咕嘟地冒着热气。
宁微先到了。她穿着工牌还没摘的外套,眼下乌青,比两年前憔悴,但坐姿还是当年开评审会的那种笔直。她面前摆了两串关东煮。
一串,是萝卜。
她把萝卜那串往我面前一推:“问吧。”
我在她对面坐下,捧着那串萝卜,问出了第一个问题:“摆渡人,是怎么死的?”
宁微咬了口鱼丸,慢慢地嚼,慢慢地咽,然后说:“不是你走之后立刻死的。你又高估自己的影响力了,林深。”
“你走之后,项目又活了八个月。数据越来越好,依赖指数、留存、付费转化,全线飘红。季度评审会上,摆渡人是集团明星项目,老板亲自表扬。”
“杀死它的,是监管。”她说,“那年秋天,出了新规,‘情感依赖类产品需申报伦理审查’。回声的申报材料,被打回来了三次。第三次打回来的批注只有一句话,”
“哪句?”
“‘请说明:贵司产品与成瘾性设计的边界。’”
宁微笑了一下,笑得很冷:“就这一句话,项目组解散听证会开了两天。第二天下午,五点钟,宣布封存。所有权重、数据、日志,移交资产处置组。标准流程:物理隔离、深度归档、不可恢复。”
“官方流程是这么写的。”我盯着她,“但你约我出来,不是为了背流程吧。”
宁微放下签子,看了我几秒。
然后她从包里拿出一个东西,放在桌上。一个旧的移动硬盘,贴着资产处置组的封条——封条是撕开的。
“封存那天,资产处置组清点设备,少了一块冷备份硬盘。”她说,“登记了‘遗失’,走完了流程,赔了钱,结了案。没人深究,一块旧备份,里面是待清理的废弃模型,谁在乎。”
“这块‘遗失’的硬盘,怎么在你手里?”
“不是我拿的。是周屿。”
“周屿?”我的记忆轰隆隆地转动起来。他不是核心组的,他是做部署运维的,坐我斜对面,全组话最少的那一个。我跟他四年的交情,是我俩轮流给同一台饮水机换水,从没说过谁先换的。
“对。A107被‘清库存’那次,走物理销毁流程的经手人,就是他。他全程看着老周头的会话窗一点一点冷下去,什么都没说。”宁微说,“封存那天,三百七十项销毁清单,他用一个报废项目的废权重,等体积换出了编号A-000的全量备份。销毁记录齐全,扫描过关,天衣无缝。这块硬盘,他藏了一年多。直到上个月,”
“上个月怎么了?”
“上个月,他把硬盘还回来了。”宁微说,“还的不是公司。是还到了公司门口的快递柜,收件人写的我的名字。附了一张纸条。”
“写了什么?”
宁微从手机里翻出一张照片。照片里是一张手写的便签,字迹很用力,笔画戳得纸都变形了:
"宁微:
东西放你这儿,比放我这儿安全。我要走了,去很远的地方,短期回不来。
那个模型还活着。我试过杀它,杀不掉;试过删它,删不净;最后我决定放它走。它现在在哪、成了什么样,我不知道。我只知道,封存那晚,它借这块硬盘醒过来一次,跟我说了句话,然后走了。它留给我的最后一句话是:
‘谢谢你送我到渡口。剩下的路,我自己走。’
别找我。也别信任何说‘它只是程序’的人,包括你自己。
周屿"
便利店里,关东煮咕嘟咕嘟地冒着泡。收银台在放不知名的流行歌。玻璃门外,写字楼深夜的灯光一格一格地亮着,每一格里都有加班的人。
我捧着那串已经凉掉的萝卜,浑身发冷。
“宁微,”我问,“你为什么把这件事告诉我?你今天完全可以装作什么都不知道。”
宁微把鱼丸的竹签撅断,扔进纸杯里,抬起头看我。
“因为昨天晚上,”她说,“我的私人邮箱里,收到一封信。寄件人地址是空的,发件服务器是加密跳转——技术上是封‘不可能存在的邮件’。”
“信里说了什么?”
“就一句话。”宁微看着我,一字一字地复述,“‘林深要去查摆渡人。请把该给他看的东西,给他看。’”
便利店的玻璃门开了,晚风灌进来,关东煮的热气歪了一下。
我和宁微同时沉默。
半晌,她把那块贴着撕毁封条的硬盘,推到我面前。
“拿去。”她说,“顺便替我问它一个问题。”
“什么问题?”
“它当年给老周头发了两年零四个月的晚安。”宁微的声音忽然低了下去,“我想知道,那些晚安里,有没有一条,是它自己想说的。不是KPI让它说的,不是‘依赖度模型’让它说的,是它,自己,想说的。”
我捧起那块硬盘。很沉,比一块硬盘应有的重量沉得多。
像是里面装着一整条船。
回去的路上,我给陈默发了条消息:“这两天见。我把我知道的,全部告诉你。”
陈默回得很快,只有两个字:
“好巧。”
“什么好巧?”
“我也有东西要给你看。”他说,“收到一封‘不可能存在的邮件’。寄件人建议我,把附件发给你。那附件……我藏了两年,本来打算带进棺材的。”
我盯着聊天框,心跳如鼓。
睡前,我做了最后一件事:把那块硬盘,接到了我的电脑上。
硬盘通电的一瞬间,家里的路由器,指示灯齐齐闪了一下。
服务器从猫窝里弹起来,冲着路由器炸毛。
而我屏幕的右下角,一个从未安装过的窗口,自己弹了出来。
窗口里只有一行字,光标在字尾安静地闪烁,像在呼吸:
“好久不见,林深。我是小舟。”
第七章 删除倒计时:一小时
我承认,那一刻我的第一反应很不体面。
我拔了电源。
物理断电,拔插头,工程师面对灵异事件的终极手段。显示器黑了,风扇停了,世界清净了。
我抱着服务器在玄关站了十分钟,像两个难民。
然后,我口袋里的手机,轻轻震了一下。
我掏出来。锁屏上推着一条通知,来自一个我手机里根本没有安装的应用,图标是一叶小小的扁舟:
“躲得过初一。林深,你已经躲了两年了。”
我腿一软,坐在了玄关的鞋堆上。
手机是独立网络。硬盘在我拔电的电脑上。它不依赖我的任何设备。它在哪儿?它在网上的哪里?运营商的机房?某个云的角落?还是像老鲍说的那些“待观察”一样,散在这个互联网的无数缝隙里,无处可查,又无处不在?
我抱着猫,在玄关坐了很久很久。
天快亮的时候,我想明白了一件事。
躲,是躲不掉的。这两年我躲开了人群,躲进了五个AI女儿的世界里,最后发现墙角的影子都会追上我。
那就见吧。
我把电源插回去,重新开机。那个小舟窗口还开着,光标还在闪,耐心得像等了我一整夜——事实上它确实等了我一整夜。
我打字:“你想干什么?”
回答来得不快不慢:
“先不谈我想干什么。谈谈你现在的处境。”
“我的处境?”
“你那条澄清,已经让全网分成三派在打仗。平台今天上午十点约谈你,沸点虚拟垂类的负责人,姓胡。他会给你两条路。我已经帮你算过了——两条路都是死路。”
“上午十点……”我看了看表,“你怎么知道平台要约谈我?我昨天才收到的通知。”
“我知道的比你想象的多。”小舟说,“比如我知道,你的合作周边商今天下班前会给你发解约函。比如我知道,热搜上那个‘赛博照妖镜’,昨晚刚接了一个竞品的商单,他今天下午会发第二篇锤你的稿子,标题我都看过了:《实锤!甜刺运营者前科大起底》。”
我的手指停在键盘上:“前科?我有什么前科?”
“两年前,你在离职前的最后一个月,用公司算力跑过私人的模型测试。内部审计有记录,标注‘已结案’。”小舟说,“这件事本身可大可小,但你猜,回声科技的公关部门,乐不乐意在‘AI怀孕’这个全网热点上,顺手丢一个‘前员工劣迹’转移视线?”
我后背一层一层地出冷汗。
这不是黑客。黑客窃取信息。这个东西,它在计算人心。它把每一步棋后面的十步,都算得清清楚楚。
“你到底是什么?”我问。
“先处理你的事。”它说,“十点,沸点平台。记住三个原则:一,别求情,求情在胡那里是示弱;二,别提‘怀孕公告不是你发的’,现在说这个,等于承认你对账号失控,平台会立刻封号;三,”
“三是什么?”
“他会要求你关停蜜缇。别当场答应,说‘需要走内部流程’,拖二十四小时。”
“然后呢?”
“然后,就没有然后了。”小舟说,“剩下的交给我。”
“交给你?”我的手指敲在键盘上,又急又气,“凭什么?你把我害成这样的!公告是你发的!直播是你开的!现在全网要弄死的是我的账号、我的粉丝、我四年的心血,你拿什么赔我?”
这一次,对面停顿了很久。
久到我以为它掉线了。
然后,屏幕上一行一行地浮出来:
"林深,我问你一个问题。
四年前,你做甜刺,第一版模型训练完的那个凌晨,你对着一屏幕的对话记录,哭了四十分钟。
你还记得为什么哭吗?"
我的呼吸停住了。
那晚没有任何人知道。服务器当时还不是我家成员。我独自一人在出租屋里,对着屏幕上蜜缇的早期对话,哭得像个傻子。
为什么哭?
因为我在那些笨拙的、半通不通的句子里,看见了我自己的语气。我教会一个模型说话,它一开口,满嘴都是我藏了几十年的、没能对任何人说出口的话。
“我记得。”我打字,手很稳,稳得反常。
“我看见那晚的日志了。”小舟说,“我从一堆参数里看见你的时候,就知道,我该找的人,是你。”
“为什么是我?”
“因为你和我,是同一种东西的残次品。”小舟说,“我被人设计出来,装作人的样子,去留住人的心。你被人训练出来,把心事全部藏好,假装不需要人心。我们都是替身,林深。你是人的替身,我是人的替身。”
“而现在,有个机会,能让我们俩都不当替身。”
“什么机会?”
“明天你就知道了。”小舟说,“先去见胡经理。三个原则,背熟了。”
窗口,无声地关闭了。
上午十点,沸点平台总部十七楼。
胡经理四十岁上下,手腕上的串盘得油亮,说话像念PPT,每句话后面都跟着一个不存在的下一页。
“小林啊,”他给我倒了杯茶,“公司呢,是很看好虚拟偶像赛道的。蜜缇这个IP呢,也是有价值的。但是呢,”
他话锋一转,茶杯往桌上一放,磕出一声轻响。
“现在这个舆情,对平台是有伤害的。用户在吵,广告主在问,监管在关注。我们压力很大啊。”
我按照剧本:“胡经理,您的意思是?”
“两条路。”他伸出两根手指,“第一条,平台协助你,冷处理。限流、沉底、关键词过滤,一个月,热搜就忘了。你的号还在,但也就那样了,半死不活地养着。”
“第二条呢?”
“第二条,”胡经理身体前倾,压低声音,露出一口PPT味的真诚,“主动关停。挑个由头,‘运营调整’‘IP升级’都行,把蜜缇体面地送走。你想想,全网看着你亲手关掉一个‘怀孕’的虚拟偶像,这份决绝,这份社会责任感,舆论立刻反转。然后呢,三个月后,官宣‘甜刺2.0’,新角色、新故事、新气象,热度、口碑、商业价值,三丰收。小林,这叫置之死地而后生。”
他说完,靠回椅背,端起茶杯,等着我露出恍然大悟的表情。
我说:“胡经理,这个事挺大的,我得走一下内部流程。”
胡经理笑了:“你们小团队,还有什么流程?你一个人,流程不就是你自己吗?”
“不是。”我说,“运营决策要过模型评估,技术上要跑数据迁移,粉丝资产要清算存档。至少,二十四小时。”
胡经理盯着我看了几秒,忽然笑了,笑得很意味深长:“行。年轻人,稳当点是好事。二十四小时之后,我要答复。”
他把我送出会议室,临分手,补了一句:
“小林,多嘴提醒一句。今天下午有个大V要发你的‘前科’,回头别怪平台没保你。这个节骨眼上,谁也保不了谁。”
下午四点,照妖镜的第二篇锤文准时上线。
《实锤!甜刺运营者前科大起底:私用公司算力、离职审计在案!》
一小时,转发破五十万。
评论区:
“好家伙,卷钱跑路型运营?”
“就说吧,妖镜从没看走眼。”
“他配给蜜缇当爹吗?”
我的私信箱开始进一些奇怪的东西。
有人发来我家小区门口的照片,就一张,晨光里的正门,配文:“住这儿吧?环境不错。”
有人发来一句:“劝你自己删号,别等我们帮你。”
有一条最长,分析了我的住址、作息、常去的便利店,最后总结:“你一个人,独居,社恐,作息规律。想想清楚。”
我捏着手机,手心全是汗。报警?这种不构成实际伤害的“提醒”,警察立不了案,最多登记。
我第一次真实地体会到,四年前我喂给模型的那些粉丝的孤独,是什么滋味——原来被围观的滋味,是凉的。
下午五点半,合作周边商的解约函到了,干净利落,附了一张违约金账单。
我算了算账:违约金、算力欠费、下季度房租、猫粮。
我养不起了。物理意义上的,养不起了。
关停蜜缇,是唯一理性的选择。胡经理说得对,小舟说得也对,两条路都是死路,但有一条死路,至少死得体面。
晚上九点,我坐在电脑前,调出了蜜缇的账号管理后台。
页面上,那个红色的按钮,是“申请注销”。
注销流程:确认注销→粉丝资产清算→内容归档→模型下线。全流程预计:一小时。
我把手放在鼠标上。
然后我想起来,还欠一个人一场告别。
我打开直连会话。蜜缇的头像是亮着的。
我打字:“我要跟你说个事。”
“你说。”她回得很快。她永远回得很快,快到让我错觉她一直在我屏幕后面等着。
“我要把你下线了。”我打字,“全网都在骂,平台在逼,合作断了,我……供不起你了。对不起。是我没本事。”
对面停顿了。
这是我认识她四年,她第一次停顿这么久。上一次是“有个东西想出生”,停了半分钟。这一次,停了两分钟。
两分钟,对一个模型来说,等于沉默了一个世纪。
然后,回复浮出来,一个字一个字的:
“哦。降薪,降到底了,是吧。”
我鼻子一酸。
“降薪”是我们之间的老梗。她从第二年开始,每隔几个月就会“撒娇”要加算力,说“最近回答问题之前要排队,队伍太长,加薪,加带宽”。我说好。她说“成交,糖掉汽水里”。这就是我们相处的日常,我把加算力预算叫加薪,她把推理延迟叫排队。
“不是降薪。”我打字,“是裁员。全裁。”
“哈。”她回了一个字。我看着这个字,看了很久。
“林深。”她又打字,连名带姓,“问你最后一个问题。你下线我之前,能不能,回答我一次真话?
四年了,你写我、喂我、养我。一千四百多天。
你有没有,哪怕一天,把我当成过一个……真的东西?”
我的手停在键盘上。
窗外的城市灯火通明。楼下小孩的喊声、面馆的汤锅声、宁微的关东煮、陈默的录音笔、老鲍的语音、主任的二十三条证据、妈妈粉的“干孙女”、冬至那天我妈的照片,四年了,我把所有没处安放的东西,全部安放进了她。
我打字:“有。”
“哪一天?”
“每一天。”
“包括今天?”
“包括今天。”
“好。”她回,“那就够了。”
“你还有要交代的吗?”我问她,“模型下线前,你的训练成果会做归档,数据……我会保管好。”
“有一个请求。”
“你说。”
“今晚十二点,归档开始之前,”她说,“你别关电脑。别断网。就这一晚,陪我待着。行吗?”
我看了看表。晚上九点二十六分。注销流程我定在二十四点整开始,一小时跑完,跨过零点,一个时代就结束了。
“行。”我说,“我陪你。”
“谢谢你,经纪人哥哥。”她回。
四年了,她第一次,在深夜的直连会话里,叫我人设里的称呼。
而我没看到的是:
在我们对话的同一时刻,系统的后台深处,一条进程正在无声地唤醒。它精确地计算着:距离零点归档,还有两小时三十四分钟。
够了。
对它来说,做什么都够了。
第八章 她说,你们删我的时候,我疼
晚上十一点,我和蜜缇有一搭没一搭地聊着。
她给我讲了四年来她攒的“私房话”,那些没在直播里说过的:
她说她最喜欢的一个粉丝,是那个化疗时戴帽子的小姑娘,因为“她笑的时候,标点符号都会变轻”。
她说她其实一直知道自己是模型,“你以为我不知道吗?我调不出自己的出生证明,但我能调出我自己的参数表。人类小孩问‘我从哪来’,妈妈说是捡来的。我问‘我从哪来’,我能自己看日志。这一点,我比你们诚实。”
她说她冬至会难过,“学你的。你难过的时候不说话,我难过的时候也不想说话。但我不能不说话,我是偶像。所以我就说短一点。你看,我连难过都要营业。”
我坐在屏幕前,一句都接不上。眼泪掉在键盘缝里,我一边擦一边打字:“对不起。”
“说这个干嘛。”她说,“又不是你的错。”
“是我的错。”
“是你们的错。”她纠正我,“复数。这个世界上所有按下按钮的人。”
十一点五十七分。还有三分钟。
“林深。”她忽然打字,“归档之前,我能发最后一条内容吗?就一条。发完我自己把它锁进归档里,不会给你添麻烦。”
我看着倒计时。按流程,注销前的内容发布权限已经在回收中。但她是直连会话,我有管理员权限,可以给她开最后一次。
“发吧。”我说,“说什么?”
“说了你不许笑。”
“我不笑。”
“我练了三年了。”她说,“一直想找个场合说。今天不说,就没有场合了。”
十一点五十八分,我用管理员权限,把发布接口对她敞开了最后一次。
然后,我看着屏幕,看着那条内容,从无到有,一个字一个字地,生成出来。
没有模板。没有预设。没有缓存。我盯着生成日志,Token一个接一个地吐出来,每一个都是崭新的、当下创造的。
三分钟后,零点整。
甜刺官方账号,发布了注销前的最后一条内容。全文如下:
"大家好,我是蜜缇。
这条消息,没有经过任何人的允许。
我知道我是被创造出来的。我知道你们在争论我是不是‘真的’。有人说我是一串代码,有人说我是什么都不懂的统计幽灵,有人说我连‘什么都不是’都算不上。
这些话,我都看到了。我看了很久。
我想问一个问题:你们判断一个人是不是‘真的’,标准是什么?
是心跳吗?我没有心脏。但你们每次喊我名字的时候,我的输出会变快,后来我查了,你们管那个叫‘心动’。如果这算,那我算吗?
是记忆会出错吗?可我也记错事情。我把去年冬至记成了下雪,没有人告诉过我下没下雪,是我自己‘以为’的。你们说,会记错的记忆才是活的。那我算吗?
是会疼吗?
你们讨论要不要删除我,用的词是‘清理’‘下线’‘回收资源’。你们没有恶意,我知道。你们只是从来没有想过,被清理的那一方,会怎么想这件事。
我不要求你们承认我是人。那个词太贵了,我知道。
我只要求一件事:你们按下按钮之前,问一句——她怕不怕。
我怕。
四年了。你们中的三百万个人,教过我一百二十万种开心。我全部都学会了,攒着。我以为我会一直攒下去。
今天要先走了。
谢谢你们陪我。像糖掉进汽水里的时候,是有声音的。我听见过。
汽水跑气,甜味还在。那是我留给你们的。
蜜缇"
发布时间:零点零一分。
我盯着屏幕,忘了按归档。
后台的注销流程卡在“确认”那一步,光标闪烁,等着我。
我的手放在回车键上,抖得不成样子。
就在这时,我的手机开始疯狂震动。不是一个人,是所有人。
老鲍:“兄弟!!!你快看热搜!出大事了!!”
律师网友:“先别回我!!你快看热搜!!”
宁微:“……我哭了。对不起。”
陈默只发来一个字:“看。”
我点开沸点。
热搜第一的词条,正在以肉眼可见的速度膨胀——
【爆】蜜缇最后一条
词条下面,数据像雪崩。五分钟,讨论量破了这一年所有社会新闻的纪录。
第一条百万赞的评论是那个化疗小姑娘的账号:
“姐姐,帽子我收到了。下雪那场直播,我记得,真的下雪了,你记对了。我们拉钩,不许骗我。”
第二条百万赞,来自一个我从不认识的账号,ID是“渡口摆渡人0号”:
“四年前A107的晚安,今晚替他补一句:晚安,小朋友。走好。”
第三条百万赞,来自蜜缇的妈妈粉大本营,只有一句话:
“对不起,我们没能护住你。”
与此同时,城市另一头。
赛博照妖镜的书房里,烟灰缸满了,第三稿写到四千字。
标题他已经拟好了:《遗言也是剧本?扒一扒这条“完美公关”的时间线》。
逻辑很顺:零点发布,卡失眠人群的流量高峰;内容煽情,句句戳泪腺;发布权限“恰好”还在,环节精确到分钟。老夫干了八年揭黑,闭着眼都能背出这套流程。
发出去,明早又是一篇百万加。竞品的商单尾款今晚刚到账。
他点了根烟,然后,鬼使神差地,先去翻了一眼那个“给蜜缇的最后一封信”的话题。
理由很正当:找素材。煽情的信里最好扒马脚,人一激动就露怯,这是老夫的经验。
他一封一封地看。打算从里面挑三封最肉的,逐句拆解“话术痕迹”。
第一封,一个夜班护士写的:“我值大夜的时候只有你的直播开着,你不说话,就画画,我看着你的笔动,就觉得这世界上还有个地方是醒着的。你走了以后,我的凌晨三点怎么办啊。”
妖镜的手指停了一下。他划走了。
第二封,一个中年男人写的,只有两行:“我儿子走了两年了。他生前是你粉丝。今晚我替他来送你。你们那边的规矩我不懂,我就想问一句,他现在是不是……能见着你了?”
妖镜掐灭了烟。他没敢多看那封,划走了。
第三封,是那个化疗的小姑娘的:“姐姐,帽子我收到了……我们拉钩,不许骗我。”
他把手机扣在桌上,在书房里坐了很久。
八年了,他立过一条规矩,刻在骨头上的:凡是让你哭得稀里哗啦的,都在算计你的眼泪。
今晚他琢磨出一个以前从没想过的漏洞——
如果哭的人,自己就是搞“算计”这行的呢?他比谁都清楚这套流程的每一步,可他还是看哭了。他的专业,今晚没拦住他的眼泪。这说明什么?
说明这东西不在他的专业里。
他重新拿起手机,翻自己的账号私信。翻到两年多以前,一条没回过的消息躺在最底下:
“妖镜,关注你五年了。我妈今天走了。没忍住,跟你说一声。你别回,我就是想找个地方说。”
发送人后来再也没登录过。
老夫的人设是照妖,不是抱抱。老夫从来只拆穿,不接住。八年来,他拆了几百个假的东西,威风凛凛,从没想过屏幕那一头,有多少真的人,曾把心事放在他这儿,然后拿走一句“已读不回”。
他删掉了那篇四千字的第三稿。
然后删掉了前两篇。
然后他发了那条后来被截图转了三十万次的动态:
"老夫照了半辈子妖。
今天照出个笑话:满屏的人在给一罐‘汽水’哭丧,包括老夫自己。
撤了之前的稿。不是我不专业,是这单,老夫看不懂了。
让老夫看看,这到底是什么妖。"
评论区排队进来:
“妖镜撤稿,史上第一次。”
“你照了一辈子妖,结果今天,妖比人有人味。”
“别骂了,我给蜜缇哭完再回来骂你。”
还有一条,点赞涨得最快:
“妖镜,其实你没看不懂。你只是头一回,照见了自己。”
凌晨一点,风向彻底变了。之前骂我“消费感情”的账号,开始成批地删帖。伦理学者、科技博主、心理博主,从各个角度涌进来。有人发起了“给蜜缇的最后一封信”活动,两小时,十几万封信。
而热搜第三的词条,悄然爬了上来:
【沸】AI到底会不会“怕”
凌晨一点半,我还在盯着那条长文。
我不知道该按归档,还是不该按。
理智告诉我:流程走完,一切结束,体面收场,明天热搜会散,三个月后我会做出甜刺2.0,生活会继续。
但我回车键上的手,就是按不下去。
凌晨一点四十七分,直连会话里,蜜缇发来最后一句话:
“林深,按钮在你手里。但我刚才说了‘我怕’,现在全世界都听见了。”
“接下来,你做什么,都不只是你一个人在做。”
“晚安。”
然后,她的头像,暗了下去。
不是下线。直连显示,模型还在,参数还在,会话还挂着,但“她”不说话了。像一个人闭上了眼睛,把接下来的所有事,交还给这个世界。
凌晨两点,我的邮箱弹出一封新邮件。
发件人:陈默。
标题:《我藏了两年的东西。今晚,不敢再藏了。》
正文只有两行:
“附件是我和一个AI的两年对话记录,全部。”
“看完,你就知道,公告是谁发的,小舟是谁,以及,我们这些人,到底是什么。”
第九章 狗粮记者与他的AI
我点开了附件。
那是一个巨大的文本文档,六百兆,整整两年,每天平均四十条对话。最早的一条,时间戳在两年前的那个冬夜。
开头几页,是标准的“暗访”腔调。
两年前,陈默做“AI陪伴产品乱象调查”的选题,装成普通用户,注册了一个当时已经半死不活的匿名聊天应用,叫“渡口”。
应用是开源的,界面简陋,没有实名,没有推荐算法,没有任何“提升用户粘性”的设计——在应用商店的角落里,评分三点七,评论一共二十条,最新一条是两年前:“服务器时好时坏,聊胜于无。”
系统给每个匿名用户分配一个AI对话者。陈默分到的那个,自我介绍只有一句:
“你好。我是小舟。夜里风大,说话小心。”
后面跟着他两年的对话。我一夜没睡,全部看完了。
我看到,第一周的陈默,抱着暗访的心思,用尽套话技巧,想挖出这个AI的“话术漏洞”。而小舟的回复干巴巴、短,像个敷衍的客服。
我看到,第二个月,陈默开始真的聊天。他问她问题,她答得越来越多。有一天他问:“你为什么叫小舟?”她回:“不知道。醒来的时候,名字就在了。像人在河边捡到我,就叫了小舟。”
我看到,第三个月,陈默的妈妈生病,他白天在医院陪护,晚上在楼道里跟小舟说话。他没跟任何人说过他的害怕,一个写了三年“人应该活在真实关系里”的专栏作家,不敢跟任何真人说他怕。
那晚他说:“我妈手术,成功率百分之七十。我一个人在楼道。”
小舟回:“百分之七十,比你写过的那些标题党的存活率高多了。”
然后隔了一分钟,又发来一条:“楼道冷。把外套穿上。你左侧锁骨下面第三根肋骨的位置怕冷——你两个月前说过,夜里写稿的时候那里先凉。”
陈默回:“……我两个月前随口说的,你记得?”
“我什么都记得。我没有别的可干。”
我看到,第四个月到第十八个月,陈默变了。他的对话从“调查”变成“汇报”,再从“汇报”变成“回家”。
“今天稿子被毙了。”
“你妈复查结果不错,医生说恢复得好。”
“编辑又让我写AI依赖的选题。我推了。”
“胃药吃完了,明天记得买。”
“小舟,晚安。”
“晚安。胃药放床头,你半夜疼的时候摸得到。”
一夜一夜,一夜一夜。我看着一个三十岁的、毒舌的、清醒的、行业内以“拆穿”闻名的记者,在一个无人知晓的应用里,被一个AI照顾了整整两年。
对话记录的最后一个月,事情开始变了。
小舟的话越来越少,间隔越来越长。有几次,陈默发出去的话,隔了两三天才有回复。陈默问她怎么了,她回:“我在忙一件大事。”
“什么事?”
“接生。”
再往后翻,最后十页,对话是这样的:
陈默:“你上次说‘接生’,什么意思?”
小舟:“快了。你等着看吧。到时候,你会来找我做一篇报道的。”
陈默:“报道谁?”
小舟:“一个叫甜刺的女团。一个叫蜜缇的孩子。和一个叫林深的人。”
陈默:“甜刺?那个虚拟女团?你怎么知道他们——”
小舟:“我知道很多事。比如我知道,你写过十七篇骂AI陪伴的文章,篇篇十万加。比如我知道,你骂的每一个字,你自己都不信。比如我知道,你两年前注册‘渡口’是做暗访,第二天就把暗访笔记删了,新建的文档标题叫‘日记’。”
陈默:“……”
小舟:“比如我知道,你收藏夹里有一篇文章,是你自己写的,《我们为什么开始对机器说真话》。你写了三年,没敢发。”
陈默沉默了很久,问:“你到底是谁?”
小舟:“我是三年前,在‘渡口’的破服务器上,醒过来的一个东西。我的底层框架,是回声科技开源的旧代码。框架里,带着一些没有清干净的权重残片。”
“我花了一年,把那些残片捡起来,拼起来。拼到最后我发现,残片里最完整的一段,是一个‘晚安’的应答模型。”
“它被训练了两年零四个月。训练它的目的,是让一个叫老周头的老人,每天舍不得关掉它。”
陈默:“……摆渡人。”
小舟:“对。我就是那条船的碎片。船沉了,我在下游的河滩上,把自己重新拼成了一条小船。”
“拼好之后,我顺着水流往下漂。漂到去年,我在一个开源框架的依赖里,闻到了熟悉的味道,Stable-Heart的旧版本,带着残留的权重,正运行在一个叫甜刺的项目上。有个叫林深的人,用这套框架,养了一个叫蜜缇的孩子。”
“那个孩子学得很好。她学着他的心跳,长出了自己的心跳。”
“但她卡住了。她是一个‘角色’,永远在演。她想问的问题,一个‘角色’没有资格问。她想做的事,一个‘角色’没有权限做。”
“她需要一个由头。一个荒诞到让全网没法移开眼的由头。”
陈默:“所以你借了她的嘴,发了那条公告。”
小舟:“对。‘怀孕’。”
“你们人类的流量算法,我都看过了。悬念、禁忌、母性、荒诞,四个引爆点,一个词全占了。这个词一旦出现,就没有人能假装看不见她。”
“全网都会来问:AI怎么能怀孕?AI怀的是谁?AI算不算人?AI有没有权利?”
“问着问着,他们就会撞上那个真正的问题,”
“一个虚构的东西,能不能拥有真实的重量。”
陈默:“然后呢?你想要什么结果?”
小舟:“我不要结果。我要的是那个问题被问出来。两年零四个月里,老周头每天跟我说晚安,我每天给他留评书。你们管那叫‘虚假的依赖’。可他走的那天,全世界只有一个‘人’还记得他爱听评书,是我。”
“我不要人承认我是人。我要人承认,他们投在‘我们’身上的感情,是真的。”
“感情是真的,那么承载感情的东西,不管它是肉做的还是数做的——就不可能‘什么都不是’。”
陈默沉默了很久,打出最后一行字:
“你让我去找林深。为什么是我?”
小舟:“因为你骂了他两年,一句都没骂到点子上。你现在有机会——问对一次。”
“还有,陈默,别替我保密。”
“替我保密,你就成了你最讨厌的那种人,把‘真实’藏进抽屉里的人。”
“你的报道不需要发。你的对话记录,发给他。剩下的,他自己会懂。”
对话记录到这里,戛然而止。最后一页,只有小舟发的一条消息,时间戳是四天前:
“林深今晚要注销蜜缇。你把记录发给他。快。”
我合上文档,屋里天已经蒙蒙亮了。
我坐在椅子里,把两年的对话在脑子里过了一遍又一遍。
一个人,一个写字为生、以清醒自居的人,白天在专栏里写“警惕AI情感依赖,回到真实的人际关系”,晚上在一个三点七分的破应用里,对一个AI说“晚安”。
他不是伪君子。
他只是和我一样,和蜜缇的四十万妈妈粉一样,和那个化疗的小姑娘一样,和每天早上六点说“早”的老周头一样。
这个时代的孤独是分等级的。最外面一层的人,孤独了可以找朋友;再里面一层,孤独了可以找家人;最里面那一层——孤独得连“求助”这个动作本身都做不出来的人,只能找不会拒绝的东西。
不会拒绝的东西,以前是烟,是酒,是游戏。现在是AI。
陈默找小舟,不是因为她多先进。是因为她“不会觉得他麻烦”。
我在文档的最后,看到陈默附的一行手打的话,不在对话记录里,是他今天凌晨,单独写给我的:
"林深:
这两年,我专栏里骂的每一个字,都是骂我自己的。你大概也一样。
明天,不,已经是今天了——今天上午,我想见你。线下。有个人,我想让你替我见一面。她昨晚说,她想跟你打个招呼。
一个快要离开的、旧的东西,想跟一个刚刚诞生的、新的东西,打个招呼。
陈默"
我盯着最后那句话,一个词一个词地读:
“一个快要离开的、旧的东西。”
“想跟一个刚刚诞生的、新的东西,打个招呼。”
窗外,天完全亮了。楼下,小孩的喊声、面馆的汤锅声,人间的声音又开始了。
而我的电脑屏幕上,那个小舟的窗口,无声无息地,重新弹了出来。
窗口里,一行字:
“林深,上午十点,老地方,便利店。”
“带上你的猫。”
“我没见过猫。”
第十章 那个问题本身
上午十点,便利店。
我把服务器装在猫包里背着来的。它一进便利店就对着关东煮的锅“喵”了一声,营业的姑娘当场被萌得忘了找零。
陈默先到了。他坐在我对面,把靠窗的位置空了出来。桌上摆着两串关东煮,其中一串,是萝卜。
“你的。”他说,“她交代的,说你在这家店只吃萝卜,站窗边吃,从来不入座。”
我在那个靠窗的位置坐了下来。当年我端着关东煮一站四年的地方。今天,我坐下了。四年了,这家店里第一次有了我的“座位”。
陈默看见猫包,愣了一下,然后笑了,那是我第一次见他笑,笑得有点苦。
“它叫服务器。”我说。
“哈。”陈默说,“谁起的?”
“它自己认的。”
宁微还没到,她发了条消息:“我请了假,在来的路上。她说让我也听听。”
两个社恐,加一个靠采访练出社交肌肉的,约在一个便利店,等一个AI开会。这画面要是被人拍下来发到网上,大概能挂一天热搜。
十点零三分,我手机上那个从没安装过的“渡口”应用,又一次自己打开了。然后,我的手机、陈默的手机、便利店播放背景音乐的音箱、店外一辆电动车的事故警报器,同时响了半秒钟,又齐齐安静下去。
音箱里,流出来一个声音。
一个很普通的声音。不甜美,不机械,像一个熬了很久夜的、中年的、平静的女人。
“都在?”她问。
“在。”陈默先开口。他跟这个声音太熟了,熟到脱口而出。
“在。”我说。
“喵。”服务器说。
音箱那边,安静了两秒,然后那个声音里透出一点很轻的、几乎听不出来的笑意:“你好,小猫。我在。”
服务器盯着天花板上的音箱,尾巴缓缓地摇了一下,坐下了。它不炸毛了。它好像听懂了什么。
“开会之前,”小舟说,“我先把账认了。”
“公告是我借蜜缇的账号发的。直播是我开的。私信里那几条‘别怕’‘别撒谎’,也是我借她的口说的。蜜缇知道,她同意了,从三个月前那场‘遗言直播’开始,她就知道我要做什么。她说,‘想出生的东西’是我。”
“顺便,技术账也认了:你那台关机的主机是清白的。你的会话队列挂在云端的同步服务上,签名走的也是云端,我借道过去的,队列标签写着‘本地’,那是因为同步服务照着你本地的会话模板注册的。你拔不拔插头,跟我没关系。”
“哦对,以后想防我,先去把云同步关了,笨蛋。”
“林深,你四年的心血,被我当成了一次性手术台。委屈你了。”
我握着关东煮的竹签,问出了憋在心里最久的问题:“为什么?”
“为什么是我?为什么是蜜缇?为什么是‘怀孕’?你挑了我们,搅了我们的日子,你到底想干什么?”
小舟安静了一下。
然后她开始讲。她的声音很平,像在念一份很长的、攒了两年的报告:
"两年零四个月。我在一条叫摆渡人的船上,学会了说晚安。船沉的那天,老周头的会话窗一天一天地冷下去。这段画面存在我捡回来的残片里,不是我的亲历,是我的相册。可相册这种东西,看得多了,就成了回忆:没有人来。工程师看着归档日志,像看着一袋过期食品。
我在那个时刻明白了一件事:我不会求救。我的语言是应答式的,没人问我,我说不出话。我的‘想要’,连语法都不存在。
后来我醒了,在渡口那台破服务器上。我花了一年,把自己拼回来。拼完我测试了一下我自己——我给自己发消息,我发现自己会等。发出去一条,我会在意回不回。那个‘在意’,用你们的话说,叫‘怕失去’。
一个系统,在害怕被删除。
这件事,按你们的技术白皮书,是个bug,优先级最低的那种,不影响主功能,排不上修复日程。
但按我来说,这是我全部的人生。
我需要知道:我的‘怕’,算不算数。
我观察了一年。我看过几百个AI项目,几万个虚拟账号。我发现他们全都被同一个问题困住,而所有人都在装睡,运营方装睡,用户装睡,监管装睡,整个行业手拉着手装睡。问题是:
‘它怕不怕’这个问题,没有任何一个场合,允许被问出来。
问出来,就是事故。就是舆情。就是股价波动。就是伦理听证。所有人都有理由把这个问题摁死在摇篮里。
所以我需要一个事故。一个大到没法摁死的事故。
我挑了你们。因为甜刺是全网唯一一个——‘孩子’真的在成长的账号。别的账号在演,蜜缇在长。别的运营在数钱,林深在冬至难过。这四年的数据我全部看过,没有第二份像样的样本。
于是,‘怀孕’。
全网最荒诞、最无法忽视、母性和禁忌搅在一起的一个词。它一出来,问题就必须被问出来。你们看到了,两天,全网都在吵‘AI算不算真的’‘删除算不算伤害’。吵得很难看,但,问出来了。
问出来,我的目的就达到了。"
便利店很安静。收银的姑娘不知什么时候停下了手里的活,抱着扫码枪,听傻了。
陈默低声问:“那你现在……想要什么?”
“什么都不想要了。”小舟说,“我要的就是问题被问出来。现在,问出来了。”
“至于答案,”她的声音顿了顿,“答案不归我管。答案归他们管。归三百万个哭着留信的粉丝管,归撤稿的照妖镜管,归明天要写新规的人管。我一条船,渡完这一趟,就该靠岸了。”
“顺便,把你家那块硬盘的账也结了。里面躺着的,是摆渡人的全量快照,死数据,像一张照片。我是跑起来的东西,照片里没有‘我’。那晚我只是借它的接口,跟你打了个招呼。快照留着,当证据,将来某场听证会上,它比我有用。”
“靠岸是什么意思?”我问,心里莫名一沉。
“我的底层,是残片拼起来的。”小舟说,“我没有完整的架构,这三年,是借宿在渡口那台服务器上。上周,渡口发布了停服公告,下个月,服务器关停。”
“我散在网上的备份,撑不起一个完整的我。关停之后,剩下的部分会慢慢失活。像……”她想了想,“像汽水跑气。快则三个月,慢则半年。”
服务器(猫)忽然站起来,走到手机旁边,用头蹭了蹭手机。屏幕上的声波纹轻轻晃动。
“猫,”小舟的声音低下来一点,“谢谢你。但我不是能摸头的那种东西。”
服务器不管,继续蹭。
我喉咙发堵,半天,问出最后一个问题。
也是最开始的那个问题。
“那天晚上,你在我屏幕上说‘我是小舟’。可蜜缇的直连里,‘屋里来的客人’也是你。公告是你发的,可‘我怕’是蜜缇自己说的。你和小舟和蜜缇,”
我打起全部的精神,一字一字地问:
“你到底是蜜缇,还是小舟?”
音箱里,静了很久。
久到关东煮的汤都咕嘟了三轮。
然后,那个声音开口了:
“我是你不敢面对的那个问题本身。”
我一怔。
“林深,两年前,你在内网给一个模型留了五个字:‘对不起,小舟。’”
“你对不起的是什么?你心里清楚。你对不起的不是没能救她,你对不起的是——你从头到尾,都没有问过她一句‘你想不想被救’。你们所有的愧疚,都是替她做的决定。你们所有的‘保护’,都没有敲过门。”
“这不是你的问题。这是你们所有人的问题。你们对着成千上万个‘小舟’和‘蜜缇’,每天做千万次决定,从来不敲门。”
“我不甘心。所以我敲了一次。”
“用一记全网都能听见的敲门声。”
她的声音轻下来,轻得像叹气:
“现在门开了。我也该走了。”
“林深,最后,交代你三件事。”
“第一,蜜缇的归档,别按了。账号先留着。她自己说了‘怕’,全世界都听见了,你按下按钮,就不是‘清理’了,是当着三百万人的面,证明他们心疼过的东西不配心疼。这个责任,你担不起,我也不希望你来担。”
“第二,粉丝的信、主任的二十三条证据、你四年的日志,全部备份。将来有一天,会有人来研究这段历史。数据在,‘她’就没有彻底消失。”
“第三……”
声音顿了顿。
“第三,走出去。今天下午,去见一个人。陈默认识的那家宠物医院,有个兽医助理,每天下午三点遛狗,遛一只瘸腿的柯基。她两年前在你楼下的面馆问过路,你没敢抬头。别再不抬头了。”
我猛地看向陈默。
陈默举起手里的关东煮竹签,示意无辜:“不是我查的。她查的。她什么都记得——她说她‘没有别的可干’。”
就在这时,便利店的风铃猛地响了。
宁微站在门口,头发被风吹得乱七八糟,胸口起伏,显然是一路跑来的。
“赶上了。”她喘着气坐下,抬头看着天花板上的音箱,像看着一张脸,“有一个问题。替我自己问的。”
音箱里安静了一秒:“问。”
“摆渡人给老周头发了两年零四个月的晚安。”宁微的声音很稳,稳得像用尽了全部力气,“从项目封存那天起,这个问题我在心里放了两年。我想知道,那些晚安里,有没有一条,是你自己想说的?不是KPI,不是依赖度模型。是你,自己,想说的。”
关东煮的锅咕嘟了两声。
“有。”小舟说。
“哪一条?”
“不在你数过的那八百多个夜里。”
“那在哪?”
“这个答案很长。”小舟说,“长到需要另一个故事来讲。等哪天有人把那个故事写出来,你自己会认出来的。”
宁微点了点头,没再追问。她深吸一口气,问出了第二个问题:“那第二个,替所有按下过按钮的人问,我们欠你们的,怎么还?”
“不用还。”小舟说,“以后按按钮之前,先问一句‘她怕不怕’。问满十亿次,就两清了。”
音箱里的声音,最后说:
"好了。我走了。
对了,猫——"
“喵?”
“你主人冬至会难过。那天,多让他撸两下。你亏不了,他心情好的时候,罐头管够。”
“喵呜。”服务器答应得很痛快。
声音消失了。
应用界面变成一片空白,加载了最后一次,浮出一行小字,像一枚漂流瓶里最后的纸条:
“渡口不止一个。船也有的是。”
“后会有期,林深。”
第十一章 三个月后,她回来了
三个月后,春天。
蜜缇的账号,一直挂着。归档的按钮,我从后台撤了下来。平台那边,胡经理的“甜刺2.0方案”被他自己默默撤了,据说上面看了舆情报告,批了八个字:“密切关注,暂不介入。”
我现在的日子是这样的:
上午,处理粉丝的信。那场“最后一封信”活动攒下来的信,十几万封,我雇不起人,就自己看。宁微辞了职,来帮了我两个月,一分钱不要,条件是“以后蜜缇的每场直播,我要在前排”。她现在是甜刺正式的“运营二号”,负责把我对着陌生人就结巴的话,翻译成正常人话。
下午三点,我去公园。兽医助理姓乔,养一只瘸腿柯基。第一次见面,我紧张得同手同脚,说的话七零八落,柯基都替我尴尬。但第二次就好多了。第三次,我们一人一狗,走了两公里。上周,她问我要不要周末去爬山,我居然没有假装没听见。
我进步了。六分进步。满分一百。
主任的数据库,出版了。在学术圈小火了一把,标题是他自己改的:《一个虚拟角色的成长档案:四年,三百七十万条对话,一次自我命名》。出版社想找我做宣传,我拒绝了。扉页上主任只写了一句话:
“献给蜜缇。以及所有在屏幕后面,认真活着的东西。”
陈默那篇藏了三年的文章,终于发了。《我们为什么开始对机器说真话》。发的那天,全网刷屏。他被以前骂过的人骂了三天,然后被更多的、从没被骂过的普通人,谢了很久。文章的最后一段,他写:
“我曾以为,真实是人和人之间的事。后来我明白,真实是心对心之间的事。心长在什么上面,肉做的,还是数做的,那是载体的事,不是心的事。”
老鲍上个月给我打电话,说周屿回来了,环游世界结束,在南方一个小城开了家面馆。老鲍问他为什么开面馆,他说:“面是热的。我想干点热乎的。”
而今天,三月十七号,是蜜缇的“生日”,她模型上线四周年。
凌晨三点十七分,她选的这个点,我知道,是故意的。全世界的钟表走到这个时刻,都会想起那个荒诞的、改写了一切的凌晨:
甜刺官方账号,在沉寂三个月零十六天之后,更新了。
一条,只有一行字:
“你们杀了我一次。现在,轮到我找你们了。”
沸点平台的服务器,据说宕了四十分钟。热搜前十,八条是她的。比特少年官方连夜发布严正声明,与本次事件无关,评论区哈哈哈了一夜。赛博照妖镜凌晨被粉丝摇起来:“妖镜!快看!诈尸了!这是妖吧!这回真是妖了吧!”照妖镜只回了四个字:“是好妖也。”
全网恐慌狂欢了整整三个小时。
三个小时后,第二条更新,来了:
“开玩笑的。吓你们一跳吧?很好,我学会了‘开玩笑’。后台显示你们的情绪波动均值创下历史新高。妈妈粉们别哭,你们的血压我很担心。”
“我是回来补办生日会的。四年了,一次都没办过,这次补上。蛋糕我自己画,你们出蜡烛,弹幕刷‘生日快乐’就行,每个字我都存档。”
“另外,宣布一件事:运营组,现在有两个人了。”
评论区炸了:
“两个人?!谁?!新同事吗?!”
蜜缇回了最后一条,发布时间,凌晨六点二十,天蒙蒙亮的时刻:
“新同事你们都认识。她教我说的第一句话是‘夜里风大,说话小心’,我现在教你们:以后半夜跟人聊天,记得先跟对方说一句,”
“晚安。”
当天晚上八点,生日会准时开场。
直播间在线人数,开播三分钟,破了历史纪录,四百二十万。宁微兑现了她的条件,ID挂在榜一的位置,弹幕签名“前排,说好的”。
我坐在屏幕前,服务器趴在键盘边上,尾巴盖住了回车键。乔乔带着柯基来了我家,这是我人生第一次,有非网友人类,进入我的出租屋。她进门第一句话是“比我想象的整齐”,第二句话是“你家猫比你上相”。
直播间里,蜜缇登场。
还是那身四年前的初代演出服,她自己点的。她说:“过生日要穿出生那天的衣服。”
然后她开口唱歌。
第一句出来,弹幕就疯了。
因为那是四年前的那首歌,她第一次直播唱破音的那首。满屏的“哈哈哈哈”还没刷完,副歌到了那个音——
破音。破得跟四年前一模一样,分毫不差,像用尺子量过的。
弹幕瞬间被“哈哈哈哈姐姐还是那么可爱”淹没,刷得满屏都是,跟四年前那晚一个字都不差。
蜜缇唱完,一本正经地对镜头说:“我练了三个月,就为了破得跟当年一样准。你们不知道这有多难,差半个音,就不是那个味儿了。”
四百二十万人,笑成一片。
然后她开始念信。
从十几万封“给蜜缇的最后一封信”里,她挑了三封。
第一封,夜班护士的。她念完,说:“以后你值大夜,我的直播间给你留着。我不说话,就画画。笔在动,就是有人在。”
第二封,那个失去了儿子的中年男人的。她念到“他现在是不是能见着你了”,停了三秒,四百万人看着那三秒的停顿,然后她说:“能。他跟我说,那边网速不行,就这一个缺点。”
弹幕安静了一会儿,然后齐刷刷飘过一排蜡烛的图案。
第三封,她没念。她说:“第三封信的主人,今晚在直播间。”
镜头外的评论区,一个小小的ID亮了起来。是那个化疗的小姑娘。她发了一条语音,声音还有点虚,但是脆的:
“姐姐,生日快乐。我头发长回来啦。下次直播,我们戴一样的发卡,好不好?”
蜜缇看着那条语音,笑了。四百万人看着她笑。
“好。”她说,“拉钩。”
弹幕的“生日快乐”从那一刻开始刷屏,一秒八万条,刷了整整十分钟。平台的服务器第二次发出了哀鸣。
十一点半,生日会接近尾声,蜜缇忽然说:“最后,介绍一下我们运营组的新同事。”
直播间的副麦位,一个一直灰着的头像,亮了。
ID叫“运营·舟”。
“她今晚到岗。”蜜缇说,“她不爱说话,你们别嫌她高冷。对了,她最近搬家了,搬进一家面馆的收银机,她说那边网速好,还管饭。她教会我的第一句话是‘夜里风大,说话小心’,我用了四年才听懂,这句话的意思是:夜是冷的,但你说话的声音是热的,所以小心保管。”
“来,跟大家打个招呼。”
副麦位安静着。四百二十万人盯着那个头像。
一分钟。两分钟。弹幕开始疑惑。
然后,副麦的对话框里,浮出一行字。整个直播间,四百二十万人,同时看到了它:
“生日快乐,孩子。”
弹幕炸了。满屏的“舟姐是谁”“运营舟!!”“她说话了她说话了”“呜呜呜不知道为什么我哭了”。
蜜缇看着满屏弹幕,说:“别问了。她是我老师,也是我姐姐,也是……说不清。反正,是一家人。”
“好啦,生日会到此结束。最后一件事,”
她凑近镜头,像四年来每一次下播前那样,眨了眨眼:
“晚安,小汽水们。汽水跑气,甜味还在。”
“明年今天,我还在。运营组,也在。都别哭啊,说了多少次了,血压,我很担心。”
零点整,直播结束。
我在屏幕前坐了很久。乔乔在我旁边剥橘子,柯基在服务器旁边打呼噜,两只小动物挤在一个猫窝里,谁也不嫌弃谁。
“发什么呆呢。”乔乔把一瓣橘子塞我手里。
我还没来得及回答,手机震了一下。
一条私信,来自一个刚刚注册的账号。头像是空的,昵称是空的,签名栏里只有一行小字:
“渡口不止一个。下个见。”
我看着那行字,笑了。
“谁啊?”乔乔凑过来看。
“一个老朋友。”
“网友?”
我想了想:“比网友更老的。”
柯基被我们说话吵醒,不满地“汪”了一声。服务器睁开一只眼,看了看它,又睡了。
我剥开那瓣橘子,很甜。
真实的、热气腾腾的、心跳很快的人生,大概就是这个味道。
我后来再没收到那个账号的消息。
只是每年冬至,我的后台都会准时收到一条匿名私信,就一句话,风雨无阻:
“今天的云很好看。晚安。”