创作声明:本文为虚构创作,请勿与现实关联
“凌晨五点,十五楼数据中心,看到消息的准时到。”
凌晨三点零七分,公司核心群突然跳出这条通知。
群里286个人。
在线173人。
已读61人。
没有一个人回复。
我盯着发送人看了几秒。
昨天刚到任的执行副总裁,周既明。
我没有问别人,也没有在小群里打听,只顺手回了两个字。
“收到。”
凌晨四点五十八分,我刷卡上楼。
会议室已经亮着灯。
周既明坐在里面,桌上放着两份材料。
五点整,门外依旧没人。
286个人,最后只有我一个人来了。
周既明没问我困不困。
他把最上面的文件推到我面前。
“十二个小时。”
“查清楚‘归航计划’为什么会死。”
我低头看了一眼。
项目投入9600万。
最终结论:
模型失效,不具备商业价值。
可报告最后一页,有一行数据被红笔圈了出来。
最终测试准确率:97.4%。
周既明看着我。
“沈知遥。”
“如果模型真的失效,这个数字是谁改的?”
![]()
01
我没有马上回答。
凌晨五点零三分。
会议室里除了中央空调的声音,再没有别的动静。
我翻了两页材料。
归航计划,集团去年最大的数字化项目。
目标是把全国直营网点的销售、库存、天气、物流和促销数据接进一个模型里,由系统自动给出补货建议。
预算9600万。
研发周期十八个月。
项目负责人贺闻舟。
可去年十月,项目突然被叫停。
官方结论只有一句。
“核心模型稳定性不足,不具备继续投入价值。”
我又看了一眼97.4%。
“这个数字确定是真实测试结果?”
“我不知道。”周既明说,“所以才让你查。”
我抬头看他。
“为什么是我?”
“凌晨三点零七分,我给286个人发消息。”
周既明把手机转过来。
“61人已读。”
“只有你回复。”
“也只有你到了。”
我没说话。
他继续问:“你当时怎么想的?”
“先判断是不是误发。”
“结果呢?”
“误发概率不高。”
我把手机放到桌上。
“公司核心群没有定时发送权限,新领导第一天也不太可能凌晨三点误操作。临时会议有可能,但这么多人一起叫来,不符合正常工作安排。”
周既明看着我。
“所以?”
“测试。”
“概率?”
我想了想。
“六成。”
他笑了一下。
“剩下四成呢?”
“坑。”
“那你还来?”
我停了两秒。
“因为就算是坑,也得有人先知道坑里是什么。”
周既明没有再问。
他把一张临时授权单推过来。
系统权限等级:A9。
有效时间:12小时。
“从现在开始,归航计划所有文件、邮件、会议记录、预算、人事调动,你都可以看。”
“十二小时后,我要一份报告。”
我看了眼时间。
五点十一分。
“如果查到不该查的东西呢?”
“写你敢写的。”
“那不敢写的呢?”
周既明靠在椅背上。
“留证据。”
这一句话,让我第一次确定,这场凌晨会议根本不是临时起意。
他早就知道归航计划有问题。
只是缺一个不在原利益链里的人。
而我刚好撞了进来。
五点十七分,我回到工位。
系统权限已经打开。
搜索“归航计划”。
1863份文档。
742封内部邮件。
96次项目会议。
17份预算变更记录。
我没从第一份开始看。
先建了一张时间表。
项目立项。
算法测试。
门店接入。
预算变化。
人员调动。
最终验收。
一项项往下排。
上午七点二十六分,我找到第一处异常。
去年七月十二日。
内部压力测试报告。
测试门店312家。
连续运行十四天。
库存预测准确率:
97.4%。
当天技术评审结论:
“模型达到上线标准,可进入最终验收。”
可三个月后的董事会终止报告里,同一项数据变成了:
71.8%。
我把两份文件并排放在屏幕上。
编号相同。
项目名称相同。
测试周期相同。
唯独数据不一样。
更奇怪的是,终止报告里的附件签名页少了一份。
原本应该有四个人签字。
实际只有三个。
缺的那个人叫:
![]()
贺闻舟。
我继续往下翻。
上午八点零九分。
系统里跳出一条修改记录。
最终验收数据曾在提交董事会前十一天,被人整体替换过一次。
操作权限来自:
数据平台中心。
我点开审批人。
名字只有三个字。
梁宗屿。
02
梁宗屿。
数据平台主管。
也是现在“罗盘系统”的负责人之一。
我没有马上往他身上扣帽子。
先查替换数据的依据。
七月的测试用了312家直营网点。
可九月底最终验收前,梁宗屿突然发起一项“数据洁净度复核”。
理由写得很正式:
历史样本存在污染风险,建议重新选择测试门店。
审批通过得很快。
不到两个小时。
新测试集只剩47家门店。
我把这47家门店名单导出来。
一眼就看出了问题。
29家门店在测试周期内发生过装修、搬迁、供应商切换或者大规模促销。
其中8家甚至连续停业超过十天。
这种数据拿来做模型终验,结果不可能正常。
我重新跑了一遍当年的测试逻辑。
准确率:
72.1%。
和董事会报告里的71.8%几乎一致。
我盯着屏幕看了很久。
不是模型突然失效。
是有人换了一套本来就会失败的数据。
上午九点四十。
我开始查预算。
归航计划进入最后验收阶段时,原定480万的第三方门店实测费用,被临时砍到120万。
审批意见:
“控制项目边际成本。”
批准人不是梁宗屿。
是集团运营委员会副主任,顾成曜。
随后是人员调动。
项目首席模型师被调往新加坡业务组。
产品经理孟书岚被取消核心系统权限。
两名工程师同时收到绩效预警。
理由都不一样。
一个“跨区域支持”。
一个“组织优化”。
一个“能力不匹配”。
单看都说得过去。
可全部集中在项目终验前三个月,就不正常了。
我继续往下查。
上午十点二十一分。
一个新项目出现。
归航计划正式终止十八天后,梁宗屿向集团提交了“罗盘系统”。
业务目标:
智能预测直营网点销量和库存。
预算:
1.26亿。
我把归航计划的立项书和罗盘系统的提案放在一起。
核心功能重合超过80%。
甚至有三张流程图,只换了颜色和字体。
我往下翻到立项推荐人。
顾成曜。
办公室里很安静。
我却越来越清醒。
归航计划停下来,罗盘系统才能拿到预算。
继续查邮件。
梁宗屿和顾成曜的公开往来很多。
大多数都很正常。
我把关键词从项目名称换成时间节点。
九月二十八日。
项目终验数据被替换前一天。
一封没有主题的内部邮件跳出来。
发件人:
顾成曜。
收件人:
梁宗屿。
只有一句话。
“归航停下来以后,罗盘才能进去,别把事情做得太明显。”
梁宗屿回复:
“明白。”
我截图。
![]()
保存。
又做了离线备份。
但这还不是最让我在意的。
贺闻舟当时是项目负责人。
他不可能看不出数据有问题。
为什么终止报告上没有他的签名?
为什么项目结束后,他没有申诉,没有发邮件,没有公开质疑,直接离职?
上午十一点零七分。
我搜索他的个人工作空间。
账户已经冻结。
普通权限无法进入。
A9权限却还可以读取归档。
里面几乎被清空了。
只剩一个隐藏目录。
名称:
“原始测试。”
创建时间是他离职前三天。
我打开。
里面保存着最终验收前的全部原始数据。
312家门店。
十四天运行记录。
完整模型日志。
我重新计算。
97.38%。
和最初那份报告一致。
除此之外,还有一份没有发送出去的邮件草稿。
收件人一栏是空的。
正文只有几句话。
“测试数据被替换。”
“预算与人员调整均非正常项目行为。”
“我已保留原始证据。”
“但现在的问题,已经不是一个项目。”
最后一句被删过一次。
我恢复历史版本。
看到原文后,手停在鼠标上。
“他们真正要保的,不是罗盘系统。”
下面还有一句。
“如果继续查,可能会碰到更上面的人。”
我往下翻。
没有名字。
没有附件。
贺闻舟把最关键的东西拿走了。
可我也终于明白。
他当年不是不知道真相。
他是知道得太多,所以才走。
03
中午十二点四十。
距离十二小时截止只剩四个多小时。
我开始写报告。
第一部分:
归航计划真实测试情况。
第二部分:
最终验收数据变更过程。
第三部分:
预算、人员、资源调整时间线。
第四部分:
项目终止与罗盘系统立项的时间重叠。
写到责任判断时,我停了下来。
梁宗屿。
顾成曜。
我手里都有证据。
尤其那封邮件。
只要放进去,性质就完全不同。
可问题也很简单。
我只是经营分析部一个普通员工。
周既明刚来一天。
我甚至不知道,他和董事会到底是什么关系。
如果现在把两个人直接写死。
报告一旦泄露。
我第一个出局。
我删掉已经打出的名字,改成:
“存在明显非技术性干扰,且部分关键决策存在利益冲突风险,建议由独立审计组继续核查。”
下午四点五十三分。
报告发出。
不到一分钟。
周既明回我:
“十九楼。”
我进去时,他已经看到了最后几页。
“坐。”
我坐下。
他没有寒暄。
“你查到的,比你写的多。”
不是疑问。
我点头。
“是。”
“为什么不写?”
“我不确定您到底想查到哪一步。”
周既明抬眼。
“还怕什么?”
“怕报告没到董事长桌上,我先收到离职通知。”
他看了我几秒。
随后把报告合上。
“敢赌,不等于一次把命押完。”
“至少你没蠢到拿着两封邮件就去敲高层办公室的门。”
我松了一口气。
但他下一句话让我重新坐直。
“我已经把报告发给董事长了。”
“明天上午开临时管理会。”
我一愣。
“这么快?”
“归航计划会重启。”
周既明把一份新的项目计划推给我。
周期:
70天。
试点门店:
80家。
目标:
完成真实业务环境验证。
我看到负责人一栏时,以为自己看错了。
沈知遥。
“周总,这不合适。”
“哪里不合适?”
“我不是技术负责人,也没带过项目。”
“所以?”
“这种规模至少应该由总监级负责。”
周既明看着我。
“当年总监级的人很多。”
“项目还是死了。”
我没接话。
“你只需要负责两件事。”
“第一,把正确的人拉进来。”
“第二,确保没人再用流程把它掐死。”
我看着那份任命书。
这是机会。
也是靶子。
第二天下午。
全员经营会上,周既明正式宣布归航计划重启。
项目负责人:
沈知遥。
会场安静了两秒。
随后议论声直接起来。
最前排,梁宗屿站了起来。
“周总,我有疑问。”
他语气很平。
“归航计划当年四十多人的团队,投入近亿元都没做成。现在让一个经营分析员工负责,是不是太冒险?”
所有人都看向我。
我站起来。
“梁总说得对。”
“这个项目风险很高。”
他似乎没想到我先承认。
我继续说:
“但去年它到底有没有失败,现在还不能下结论。”
梁宗屿脸色变了一下。
“什么意思?”
“七十天以后,用新数据重新跑一次。”
“能不能成,到时候再说。”
会议结束后,我发布了全公司招募通知。
一天。
0人。
两天。
还是0人。
第三天下午五点十六分。
我收到第一封申请邮件。
发件人:
程野。
算法工程师。
绩效连续两年C。
正文只有一句。
“贺老师当年的模型,我想再跑一次。”
04
程野二十九岁。
第一次见面,他抱着电脑,直接坐到我对面。
“先说清楚。”
“我不是冲着你来的。”
“我知道。”
“我是冲着贺老师。”
我看着他。
“你跟过归航计划?”
“没有。”程野说,“我当年刚进公司,进不了核心组。但贺老师帮我改过一套模型。”
他停了一下。
“他不是会拿失败项目糊弄公司的人。”
我把任命书推过去。
“风险知道吗?”
“知道。”
“梁宗屿也知道你来了。”
程野点头。
“那正好。”
第二个人是孟书岚。
归航计划原产品经理。
项目终止以后,被调到直营网点客服中心。
她进门第一句话就是:
“我不要原来的职级。”
“什么意思?”
“项目做成以后再谈。”
她坐下来。
“我只想把当年那口气出了。”
我问她当年为什么不申诉。
孟书岚沉默了一会儿。
“贺闻舟都走了,我们几个留下的人,谁敢说?”
“他离职前说过什么?”
“只说了一句。”
“别再查了。”
我记住了这句话。
第三个人叫杜骁。
三十八岁。
供应链架构负责人。
三年前拒绝在一份库存异常报告上签字,被调出核心系统组。
他看完项目计划,只问:
“数据权限谁批?”
“梁宗屿。”
杜骁笑了。
“那你麻烦大了。”
事实很快证明,他没说错。
第一次申请40家门店实时数据。
驳回。
理由:
项目尚未完成稳定性验证。
第二次申请模型训练算力。
驳回。
理由:
集团GPU资源紧张。
第三次申请六家直营网点试点。
还是驳回。
审批人全部是梁宗屿。
我拿着三份驳回单去找他。
“梁总,董事会已经同意项目重启。”
“我知道。”
“那为什么资源一项不给?”
梁宗屿靠在椅背上。
“沈经理,重启不代表可以跳过制度。”
“你们现在连稳定版本都没有,我凭什么把核心数据和门店交给你?”
“等我们做出稳定版本,再申请。”
“对。”
“没有数据,稳定版本怎么做?”
他笑了一下。
“那是你这个项目负责人的问题。”
我看着他。
没有争。
回到临时办公室后,我把三张驳回单贴到白板上。
程野问:
“怎么办?”
“换路。”
“他不给全国实时数据,我们就从历史日报重建。”
孟书岚联系原来认识的区域经理,拿到公开经营报表。
杜骁从旧系统里整理脱敏接口。
程野把模型拆成小任务,利用夜间闲置服务器训练。
没有正式预算。
四个人自己买硬盘、测试机和网络设备。
第六周。
第一版模型终于跑出来。
正常经营门店预测准确率:
95.9%。
我们第一次觉得有机会了。
可加入促销、极端天气和跨区域调货后。
模型连续七次崩掉。
最差准确率:
63.2%。
程野连续查了两天。
最后把电脑转向我。
“代码没错。”
“数据也没错。”
“那错在哪?”
他指着旧架构。
“这里少了一层动态修正模块。”
孟书岚立刻抬头。
“当年有。”
程野看着她。
“系统里没有。”
孟书岚脸色变了。
“我见贺闻舟演示过。”
“那份版本比现在这个完整。”
办公室一下安静下来。
如果她没记错。
就意味着公司系统里保存的归航计划源码,本身就不是最终版本。
有人删掉过最关键的一层。
而当年唯一有权限单独保存完整模型的人。
只有贺闻舟。
05
项目只剩十七天。
模型的动态修正模块还是没找到。
就在这时,梁宗屿主动发来邮件。
标题:
《归航计划中期公开评审通知》。
参会名单很长。
技术中心。
产品中心。
供应链平台主管。
直营网点负责人。
集团管理层。
还有两名董事会代表。
时间定在七天后。
我看完名单,程野只说了一句:
“他这是准备公开判我们死刑。”
孟书岚把电脑合上。
“现在系统一压促销数据就掉到七十以下,真上去演示,我们撑不住。”
杜骁问我:
“要不要申请延期?”
我摇头。
“不能。”
“为什么?”
“我们延期,他会说系统不成熟。”
“我们不去,他会说我们不敢公开验证。”
我把评审名单重新看了一遍。
“他想把我们逼到台上,那就上。”
第二天,我去找周既明。
“评审会我参加。”
他抬头。
“想清楚了?”
“嗯。”
“梁宗屿会当着所有人的面拆你们的系统。”
“我知道。”
“如果演示失败呢?”
“项目基本结束。”
周既明没有劝我。
只问:
“那你准备怎么赢?”
我说:
“先把系统救回来。”
“然后让他自己解释,去年为什么也用同样的方法卡归航。”
周既明看了我几秒。
“这才对。”
“防守只能让你死得慢一点。”
接下来七天。
程野继续逆向恢复旧模型。
孟书岚重做十二组演示场景。
杜骁准备三套备用环境。
我则重新整理去年所有审批记录。
预算削减。
人员调动。
数据替换。
系统权限。
还有梁宗屿和顾成曜那封邮件。
如果梁宗屿在评审会上主动把旧项目拿出来攻击。
我就顺着他的话,把去年归航计划怎么死的,一项项摆出来。
评审会前一天。
晚上十一点四十三分。
我刚准备离开公司。
程野突然打电话。
“沈总。”
“你最好现在下来。”
“怎么了?”
“我找到东西了。”
我赶到办公室时,他正坐在一台旧测试机前。
那台机器是从归航项目废弃设备里找到的。
硬盘损坏严重。
杜骁修了三天才勉强读取。
程野指着屏幕。
“这里有一份删除日志。”
创建人:
贺闻舟。
创建时间:
归航计划正式终止前六小时。
我往下看。
文件不是代码。
也不是模型。
而是一份:
《公开技术复核申请》。
内容已经全部填写完成。
包括原始测试数据异常。
最终测试集被替换。
资源调整记录。
还有三份附件。
可这份申请从来没有提交。
我看向收件对象。
不是梁宗屿。
不是顾成曜。
甚至不是当时的技术负责人。
而是另一个名字。
我盯着那个名字看了几秒。
“怎么会是他?”
程野没回答。
他点开最后一个附件。
一段17秒的录音。
播放键按下。
前几秒只有办公室环境声。
随后,一个男人开口。