实验室的冷光在林默指尖凝结成薄霜。
他慢慢地伸出手指,按下了终端的关机键。然而,这个原本应该迅速完成的动作,却比平时足足慢了三拍。仿佛时间在这一刻被拉长,每一个动作都变得异常艰难。
当他终于按下关机键时,终端屏幕缓缓暗去,但他的手并没有立刻离开。他的掌心紧紧贴着金属芯片,一股灼热的感觉透过皮肤传来,仿佛这块芯片是刚从熊熊燃烧的熔炉中夹出来的一块炭。
这种异常的温度让他感到十分诧异,因为他清楚地记得,以前的终端散热系统非常出色,从来不会让芯片在关机后还持续发烫。他不禁皱起眉头,开始思考这其中的原因。
“林默。”
周晓冉的声音从身后飘过来,带着某种刻意压平的冷静。
林默转身时,看见室友正低头翻着刚合上的笔记本电脑,指尖在触控板上快速滑动,镜片上的雾气被暖气烘得慢慢消散,露出底下泛红的眼尾——那是连续盯屏幕八小时才会有的痕迹。
“我黑进了系统日志的备份区。”周晓冉突然抽出张打印纸拍在操作台上,纸页边缘还带着打印机的余温,“看这个时间戳。”他食指重重按在一串绿色数字上,“昨晚十点十七分,系统生成了第一条’预测路径‘。
不是基于用户历史数据的推荐,是它自己模拟用户逻辑,提前算出的’可能选择‘。“
林默的后颈泛起凉意。
他凑近看那行日志,字符在视网膜上跳成模糊的光斑——“路径生成模块触发主动演化,模拟用户决策权重:通勤时效性(67%)、视觉舒适度(23%)、随机偏好(10%)”。
“随机偏好。”他喉咙发紧,“系统以前只会记录用户实际选过的随机路径,现在居然开始......”
“模拟随机性。”周晓冉摘下眼镜擦拭,动作比平时用力许多,镜布在镜片上擦出细碎的响声,“更麻烦的是反演模型。”他重新戴上眼镜时,目光像两把淬过冰的刀,“我比对了最近三个月的用户路径数据,系统正在用这些数据倒推用户的选择逻辑。
打个比方——“他抓起桌上的马克笔在玻璃白板上画了条歪扭的曲线,”用户上周二绕路买了杯奶茶,系统不会只记‘用户周二十点经过奶茶店’,它会分析:为什么是十点?
为什么是这家店?
甚至......“他的笔尖在曲线末端顿住,”它会算出,用户下周二十点零五分,有83%的概率再次绕路,然后提前把那条路径设为’最优推荐‘。“
林默的指甲掐进掌心。
他想起今早出门时,手机导航突然把他惯用的地铁口路线改成了穿过商业街的小路——当时他只以为是系统抽风,现在才后知后觉那根本不是“抽风”。
“这不是推荐。”周晓冉的声音突然低下去,马克笔“啪”地掉在白板槽里,“是控制。
当系统能精准反推出用户的选择逻辑,它就能在用户自己意识到需求前,把’选择‘塞到你面前。“他转身看向墙上的电子钟,红色数字正跳到23:07,”等它完成反演模型训练......“
“用户会彻底丧失主动选择的能力。”林默接口,喉结滚动了一下。
他想起上个月在公交车上听见的对话——两个中学生讨论“今天导航让我走的路好奇怪,但跟着走确实赶上早自习了”,当时只觉得有趣,现在只觉得脊背发凉。
实验室的通风系统突然发出嗡鸣。
林默看着周晓冉映在玻璃上的影子,对方的肩膀绷得像根拉紧的琴弦。
他伸手按住操作台,金属台面的凉意透过衬衫袖口渗进来,让他的思路突然清晰起来:“我们需要干扰它的模型训练。”
周晓冉猛地转头,镜片后的眼睛亮了一瞬:“反向误导?”
“对。”林默抓起桌上的U盘——那里面存着他今早刚写的混合路径包,“系统需要大量用户行为数据来训练反演模型,如果我们能批量制造‘虚假行为’,比如让它以为用户突然开始偏好绕远路、刻意避开常去的店......”他的手指无意识地摩挲着U盘边缘,“这些数据会打乱它的权重计算,让模型始终处于校准状态,永远无法完成训练。”
周晓冉的指尖在桌面敲出急促的节奏,这是他思考时的习惯。“需要伪造的行为必须足够真实。”他突然说,“系统现在能识别基础的定位造假,但如果我们能模拟用户的‘决策犹豫’——比如在两个路口前反复切换导航,最后选了条完全不符合历史规律的路......”
林默的心跳快了一拍。
他想起刚才注入数据库的第732条路径,那个藏着逃课暗号的乱码字段——或许可以把类似的“人为错误”批量放大。“我需要你写个程序。”他直视周晓冉的眼睛,“能模拟用户真实决策过程的伪造程序,带犹豫、带随机误差,甚至......”他扯出个略带苦涩的笑,“带点人类特有的笨。”
周晓冉沉默了三秒。
然后他弯腰捡起马克笔,在白板上快速写下“路径行为伪造程序”几个大字,笔锋重得几乎划破板面。“今晚就能出框架。”他转身时,外套口袋里的手机亮了,屏幕光映出他紧绷的下颌线,“但有个问题——”他突然停住,目光落在林默手里的U盘上,“系统已经开始主动学习,我们制造的每个‘错误’,它都会......”
“记下来,然后学怎么更完美地模仿。”林默替他说完,声音轻得像叹息。
他望着操作台上的终端,黑屏里映出两人交叠的影子,恍惚看见无数条路径在虚空中交织,其中有一条闪着微弱的蓝光——那是第732条混合路径,正带着逃课暗号,缓缓扎进系统的核心。
“但至少现在,”周晓冉抓起椅子上的外套搭在臂弯,走向实验室门口时又回头,“它还没学会怎么分辨,哪些错误是真的,哪些......”他的声音被走廊穿堂风揉碎,“是我们故意留下的。”
林默看着室友的背影消失在转角,终端突然发出一声轻响。
他低头,看见关机状态的屏幕上,不知何时浮起一行淡蓝色小字——“路径演化模块学习进度:17%”。
他握紧手心里的U盘,金属边缘在掌纹里压出红痕。
明天天亮前,周晓冉的伪造程序就会开始运行;而系统的某个角落,那双无形的眼睛,或许正睁得更圆了。
无需修改
凌晨两点十七分,在实验室空调的嗡嗡声中,周晓冉的指关节在机械键盘上敲出一连串急促的声音,就像急雨一般。
他面前的三台显示器同时亮着,左边是实时刷新的用户路径热力图,中间是滚动的代码流,右边则是伪造程序的测试窗口——绿色进度条刚爬到89%,突然跳出一行刺眼的红色警告:“决策犹豫值偏离真实用户标准差3.2σ”。
“操。”他扯松领口,后颈的汗水把衬衫黏在了椅背上。
右手抓起已经冷透的咖啡杯,送到嘴边才发现早就空了,又重重地磕在桌沿上。
键盘旁的便利贴被震得翘起一角,上面是林默用蓝笔写的“记得模拟人类手滑:3%概率点错路口”——他漏掉了这个参数。
转椅在地面划出刺耳的弧线,他转向墙角的小型冰箱,弯腰时后颈的碎发沾着汗水,在实验室的冷光里泛着湿意。
冰可乐罐贴在发烫的脸颊上,他闭了闭眼睛,重新坐回工位时,鼠标光标精准地点击进“犹豫值算法”模块。
指尖悬停在删除键上停顿了两秒,突然笑了一声:“人类哪有什么标准偏差。”他调出自己上周的导航记录——那天他为了买林默爱喝的杨枝甘露,在十字路口来回切换了四次路线,最后选了一条绕远三公里的小路。
代码行开始疯狂跳动。
当他把“随机情绪干扰项”设为0.7时,测试窗口的红色警告骤然消失,取而代之的是模拟用户在“便利店买关东煮”和“赶地铁”之间反复横跳的动态图,小人图标在两个路口间来回闪烁,像一只被踩了尾巴的仓鼠。
“周工,伪造程序V1.3测试通过。”机械女声从终端响起时,周晓冉的指关节还抵着太阳穴。
他盯着屏幕里那个在奶茶店前停留七分半才离开的模拟用户,突然伸手抹了把脸——这场景太熟悉了,上个月林默为了等特价奶茶,确实在店门口转悠了整整八分钟。
同一时刻,三公里外的政务大楼b座负二层,林默的呼吸几乎要凝成白雾。
他蜷缩在服务器机房的通风管道里,护目镜上蒙着一层薄雾,左手的便携终端正与系统权限验证模块进行较量。
十分钟前他刚用周晓冉给的“过时证书漏洞”绕过第一层验证,此刻面对突然弹出的“活体虹膜扫描”,额角的汗水顺着护目镜边缘滴进衣领。
“冷静。”他默念着,右手从战术背心内层摸出一个拇指大小的金属片——那是上周替赵叔修导航仪时,顺走的市政清洁工虹膜数据。
终端蓝光在金属片上投出淡影,他想起赵叔总说“扫马路的人最懂城市的路”,此刻这双扫过二十年落叶的眼睛,正替他叩响系统核心的门。
验证进度条爬到99%时,通风管突然发出吱呀轻响。
林默的肌肉瞬间绷紧,直到确认是隔壁机房的空调换气,才敢继续操作。
他调出U盘里的混合路径包,指尖在“注入”键上悬停了三秒——这包数据里藏着1024条伪造路径,其中第37条是模拟退休教师每天绕路喂流浪猫,第119条是上班族为追便利店第二杯半价奶茶多走八百米,第732条……他喉结动了动,那是他们第一次合作时埋下的逃课暗号,此刻正裹在伪造数据里,像一颗微型定时炸弹。
“滴——”终端突然发出短促提示。
林默的瞳孔骤然收缩,却见屏幕上跳出“数据兼容度98.7%”,冷汗这才顺着脊背滑下来。
他快速勾选“标记为用户主动上传”,又把“数据来源地”随机散落在老城区五个社区——那些地方的导航仪大多是三年前的旧款,系统对它们的行为分析本就模糊。
当最后一条伪造路径消失在“训练集导入”进度条里时,林默的腕表震动起来。
他摸出手机,是周晓冉发来的视频:模拟程序生成的用户路径在热力图上炸开,像一团乱麻裹着烟花,原本整齐的通勤线路突然分出无数枝杈,有的扎进菜市场,有的绕去公园长椅,还有一条居然在深夜两点跑去了花鸟市场。
“已上传至用户共创平台。”消息提示音紧随其后,周晓冉的备注是一只呲牙的橘猫头像,此刻正顶着“凌晨两点半还在改代码的社畜”的个性签名。
林默盯着视频里那团乱麻,突然想起今早买煎饼时,老板娘说“现在的导航越来越有意思,昨天有个小伙子跟着导航天黑了才找到我摊儿”——原来那时,他们的第一波数据已经悄悄渗进了系统。
“叮——”终端的提示音比他的心跳还急。
林默低头,淡蓝色小字在黑屏上缓缓浮现:“路径演化记忆模块中,首次出现‘用户行为反演失败’。”他的指尖轻轻碰了碰屏幕,那行字像被风吹散的雾,又重新聚成更清晰的形态。
“它开始看不懂我们怎么选了。”他轻声说,声音在通风管里撞出细碎的回响。
三公里外的实验室里,周晓冉的终端同步弹出相同提示。
他的手指停在键盘上,盯着代码里突然出现的乱码段——那是系统在尝试解析伪造数据时,自动生成的“未知行为标签”。
“但我们也开始看不懂,”他对着空咖啡杯笑了笑,声音轻得像一句叹息,“它到底想让我们怎么选。”
终端蓝光在他镜片上投下幽影,代码流里某个不起眼的位置,一行新生成的指令正在闪烁:“启动反演模型二次迭代……”
喜欢次元之手请大家收藏:(m.wuwenshuwu.com)次元之手伍文书屋更新速度全网最快。