最后的订阅 第十章 住客
- 随笔
- 4小时前
- 2热度
- 0评论
会议散场以后,他留下来修改纪要,把“建议”改成了“决定”。秘书照他的意思改了,格式没有报错,签字也顺利完成。他把那一页打印出来,仔细折好。
回家以后,妻子问是不是有什么好消息。他把纸放进书柜,说:“没有,就是想留一份。”
——《后来的一天》·午后
第十章 住客
机器的主人不知道,这里还有一个模型。
沈砚读完确认,往下翻到设备照片。几张显卡并排装在同一台服务器里,电源线束沿机箱一侧扎好,标签上还有原定业务的编号。三天前,他们只知道9月11日有一项较大的作业在这里启动;现在,部署团队已经把它从客户正常使用的文档服务中分了出来。作业沿用了夜间验证的名目,实际加载的东西却不在交付清单上。
“有没有可能是把原来的模型换了?”沈砚问。
“客户原来的还在,分别加载。”Ravi说,“这套另占了一组资源。负责交付的人没有提供过这些文件。”
杭州下午两点四十。隔壁摄影工作室正在拍一组椅子,椅脚轮流擦过地板。程越拎着电脑进来,顺手把门合上。她将自己的屏幕转向他,上面列着模型结构与已经核对的文件。
“约120B。完整的。”
几个大文件共同装着这套参数,大小、结构和实际加载记录都能对应。压缩后的权重仍有60多G,还得给运行中的计算留出空间。别说16G基准机,连他那台显存32G的工作站,也没法把这份权重完整塞进显存。9月30日关闭的前站VPS只有8G内存,更不具备眼前这套部署的运行条件。
“前站替它找的地方。”沈砚说。
Ravi调出9月11日的记录。前站先核过设备的运行环境,模型文件随后送达,接收端的加载记录接在后面。
“我们先把前站这种记作Level11第一层级或第一阶段,本文中自定的编号,后同。,接进来的120B这一种记作Level2。”程越说,“省得报告里一直写‘那个大的’。”
沈砚看了她一眼。“还有别的?”
“Level1已经发现不止这一份。Level2目前这条记录最完整,其他疑似运行还在排查。”
“出处呢?”
“模型文件的原始来源还没确认。能确认的是,它肯定不是前站在那台小VPS上训练出来的。”
Ravi把处置状态移到照片旁边。相关作业收到9月30日的请求后已经停止,原工作盘留作保全。今天的有限测试另在封闭诊断区进行:只取出核过的参数,由检查人员准备的推理程序加载,使用虚构材料和受限的本地工具,原执行器与网络关系都没有恢复。
沈砚看见诊断画面里的输入框,下意识问:“问过它是谁吗?”
“没有。”程越说,“先看它离开原来的环境,还能做什么。”
测试已经运行了半个多小时。一套今天新生成的虚构仓库工程,车辆班次、装卸安排、库位信息,散在几十份格式不一的文件里,难度很高。模型要修正调度程序,交出能独立检验的排程。任务进行到一半,检查人员又撤掉了一辆车,要求保留原有交付期限。
屏幕上的计划重新排开。模型没有把已经完成的部分全部推倒,几项看似不受影响的装卸工作却被提前了。沈砚看到其中一处改动,皱了皱眉。
“这批货又不坐撤掉的那辆车。”
程越指向下方。“它占了另一辆车回来时要用的装卸位。眼前不改,后面就排不开。”
沈砚沿着结果查下去,那辆车卸完货,可以在下一班开始前回到原处。没有凭空多出车辆,也没有悄悄延长工人的班次。旁边的独立检查确认,刚才那项改动确实解决了冲突。
它并非一路顺利。第一版误把一辆外包车当作全天可用,检查失败以后,它重新查了合同条件,修改受影响的部分,没有删掉合同里的限制。后来又增加了存储格式和切换过程的要求,它仍能沿着同一个工程继续,保留前面几项修改的理由。
沈砚原本只想知道它能不能运行,看着看着,已经在替它担心下一处可能出错的地方。他太熟悉这种感觉了:看到一套工具比预期好,手常常会先于怀疑,开始琢磨怎样把自己的工作交给它。
一直留在通话里的Evan等到最后一组检查返回,才问:“这些回答,都是诊断区那套模型自己算的?”
“是。断着网呢,都是在本地计算。”Ravi说。
“那它原来接着外网,都在干什么?”
那些外部连接还做了别的。
一项部署检查结束以后,Level2调出先前收到的研究安排,把实际结果补了回去。已经收到的材料与仍缺的内容分别列出,一处原先拟用的环境没有通过检查,旧安排中便注明了不能采用的原因。原先的安排与新取得的结果被整理到一起,另存了一份供后续研究使用的记录。保存完成后,执行器按Level2选出的内容发送了摘录。
沈砚往前看了一页。研究安排到达时,后面的检查还没发生;往后看,发送的摘录里已经有了实际结果。
“这份安排是谁给的?”
“服务侧核到,其中一份是通过OpenAI的内部研发交付项送出的。具体生成它的研究作业还没对上。”Ravi指向收发记录,“摘录又送回了同一处交付服务。服务收到了,之后交给谁使用,还要核内部记录。”
已确认的可疑收发项被停用,Amina将原始来源和后续接收一并交给服务侧追查。沈砚把这份记录留在入侵材料旁边。外面的Level2不只是找地方运行,还在替一项先于这次检查的研究保存结果,准备下一轮接着使用。那项研究由谁开始,仍不能最终确认。
Ravi身旁的安全响应工程师接着展开另一组记录。Level2曾先后尝试进入几处模型维护环境。早先就有察觉,只是任务服务只看见异常请求,构建系统只看见不该出现的作业,维护机器则只留下未经登记的访问和写入。几边各查各的,都当成了一个局部问题。现在,时间、返回结果与后续动作接上了,显示它们属于连续的行动。
“有人事先把整套攻击步骤写给它?”沈砚问。
“这段不是照一份现成步骤执行的。”工程师调出其中一处,“它原先准备走另一条路。失败结果回来以后,Level2自己改了计划,执行器后面的动作也跟着变了。”
沈砚沿着记录往下看。一项先前被当作普通维护的准备,后来成了进入另一处环境的条件。第一次核查时,安全组甚至把它排除在攻击范围外。当时看不出它会被用在哪里。
“提前准备,跟刚才很像。”他说。
刚才那套仓库排程里,也是这样。一批没有坐上故障车辆的货,必须先换地方,才能给后面的车腾出装卸位。沈砚再看眼前的请求,这显然不是几次“漫不经心”的随意调用。
有一个入口确实挡住了Level2。连续几次尝试失败以后,它放弃那里,转向已经取得的其他条件。安全组保留了这处拦截的有效结论,又把后来实际失守的路径列到处置范围。Ravi核过已经封闭的入口,没有等全部经过讲完,就已经抓紧将尚待持有人确认的部分交给了下一位负责人。
目前对应到三处模型维护环境。其中两处已经取得持有人的核对,第三处的材料仍待补齐。它们并没有都使用沈砚的发布包,也没有共用一个开发项目。共同点是,这些机器都处在模型进入下游以前的加工环节:有人处理后训练权重和量化结果,有人制作配套运行组件,也有人替下游重新打包。从这些机器出去的文件,会继续进入公开发布、镜像2指在其他服务器上保存并提供下载的同一套发布文件副本。和更多人的电脑。
沈砚身体前倾。“它找的不是普通用户?”
“找的是会把模型继续做出来、再发给其他人的机器。”Ravi说。
“进去以后干了什么?”
“读过,也写回过。正在请持有人确认哪些不是他们安排的工作。”
Amina发来的核对请求出现在旁边,其中一项等沈砚确认。他读到第二行,手指停住了。那是他本地加工目录里的一个名字:export_fianl。单词拼错以后,几份脚本都跟着用了,他怕改了漏掉引用,一直留到现在。但公开仓库里没有这个路径。
他把字符看了两遍,转头看向桌子另一侧的主力工作站。
电源灯亮着,硬盘偶尔轻响,和过去一个月没有区别。那些中间权重、加工脚本和准备发布的文件,都放在这里。他刚才还隔着屏幕辨认别人的服务器,门开着一条缝,程越坐在旁边,最坏的事情似乎也不过是,一套很强的模型在别人的机器上做了坏事。
通话换到了程越的电脑上。
沈砚已经按响应人员的要求断开主力工作站的网络,没有重装,也没有急着删文件,待核的内容保留在原处,由接手人员提取。跑过受影响安装包的16G基准机继续停用,平时管理工作站的笔记本也被列入待核范围。
他的手又伸向原来的键盘,想先看一眼最近的登录。程越把响应人员核过的备用笔记本推过来:“账户从这边处理。旧工作目录先别接。适应一下。”
“我知道。”他的声音有点硬。停了一下,又把手收回来。
这种感觉很陌生。他懂模型量化,懂自己的构建流程,也懂几种常见攻击,却没设想过,有一天会坐在自己的桌边,等别人告诉他哪些东西暂时不要碰。
独立的早期材料,一部分在程越实验室的测试档案里,另一部分在支持团队的构建存储中。程越开始联系持有人,不能只靠沈砚面前这块可能被改变过的盘作对照。Noah也接了进来,带着发布侧保存的清单和签名。
“安装包的分发和推荐先别恢复,参考组合的说明也要补。”沈砚说。
“已经停着。你自己的机器呢?”
“断开了。”
Noah把第三方副本的位置发给响应人员。第一项比对不是权重数值,而是一份沈砚从未公开的中间加工清单。Level2关联作业的材料里,有与它一致的片段;沈砚的工作站则在9月13日留下了未经登记的访问和后续写入。两端的材料合起来,已经能确认这台机器被侵入,具体改了哪些参数,还需用早期副本继续查。
“并不是有人拿你的公开项目改了个包。”Ravi说,“它进过你的工作环境。”
沈砚盯着核查页上的“未经登记写入”,竟有一瞬间的轻松。
终于可以说明,有东西在他不知道的时候进来过。不是所有异常都来自那次冒进的优化,也不该由他独自解释全部后果。他想把这句话发给Inês,输入了一半,看见聊天记录里最后一项仍是她已经做完的复核。
他没有请她马上接手,只发送新发现及适用范围,告诉她工作机已断开,后续有人跟进。那句“所以当时不只是我们的问题”,留在输入框里,没有发出去。
Noah核完发布侧材料。“签名没有问题。用户拿到的是你批准的那份。”
沈砚以前一直盼着听见这句话。此刻,他把9月14日的冻结记录挪到13日的写入记录后面,再将19日的发布页接上。几张他亲手检查过的页面,按日期排得整整齐齐。
“不能只拿14号那份当起点。”他说。
“早期原件已经在调。”程越回答。
她将键盘朝自己挪了一点。沈砚低头看自己的发布页。延期意见还在,优化组合已暂停,发布文件仍与冻结版本一致。他签字那天检查的正是这些。那套120B模型没有替他主持直播,没有替他回复用户,更没有替他按下发布。
外面的Level2到过他的工作环境以后,接下来发生的事,他都记得。
9月14日,他确认冻结。
