凌晨一点十七分,邯郸的冬夜冷得刺骨。
王鸣盯着屏幕上的邮件,瞳孔微微收缩。
发件人:hr@qiyuan-tech.com
主题:关于算法二组架构调整的通知
正文只有三行字,标准的裁员模板。
“尊敬的同事,因公司业务调整,算法二组即日起解散。您的最后工作日为本月15日,补偿方案为N+1。感谢您在过去三年为启元科技的付出。”
三年。他在启元科技干了三年,从校招进去的实习生一路干到算法工程师,工资没涨过几次,加班倒是没断过。结果年终奖还没发,整个组被端了。
手机在这时候震了起来。
他看了一眼来电显示——妈。
接起来,那头的声音带着掩饰不住的焦虑:“鸣鸣,你爸今晚又说胸口闷,我送他去县医院了。医生说是冠心病,得做支架手术,三万八。家里凑了两万,还差一万八。你看……”
王鸣握着手机的手指微微收紧。
“妈,钱的事你别管,我来想办法。”
“你上个月不是说公司效益不好……”
“没事,我有存款。”他说这话的时候,眼睛盯着屏幕上银行App的余额——4372.68元。
挂了电话,他坐在出租屋的床上,盯着那行数字看了很久。
房子是合租的,月租一千二,押一付三。冰箱里还剩半袋速冻饺子和一瓶老干妈。窗外是邯郸灰蒙蒙的夜空,远处是高炉的火光,这座城市靠着钢铁和化工活着,而他一个搞算法的,在这里就像个异类。
他深吸一口气,打开了公司的工作群。
消息已经炸了。
“算法二组全员裁撤?那我们手上的项目怎么办?”
“听说是因为盘古那个项目亏了太多钱,上面砍预算了。”
“刘伟那孙子怎么没事?他不是算法二组的吗?”
“人家是组长的狗腿子,能一样吗?”
王鸣往上翻了翻,看到一条私聊消息——是隔壁工位的赵岩发来的:“鸣哥,你那个盘古残档的清理报告交了吗?刘伟刚才在群里@你了,说你离职前要把所有项目资料交接清楚。”
他切到和刘伟的聊天框。
果然有一条未读消息:“小王,盘古0.1那个残档的清理报告明天上班前交到我桌上。哦对了,你平时用的那台服务器,我得检查一下有没有‘私人数据’。离职流程你知道的,别让我为难。”
王鸣盯着这条消息,嘴角微微抿了一下。
盘古0.1。
他当然记得那个项目。三年前启元科技从某高校买了一批废弃的AI训练残档,号称要搞“下一代蛋白质预测模型”,结果烧了两千多万,啥也没跑出来。项目被砍了,代码被封存,团队就地解散。他当时刚入职,被分去给这个项目擦屁股——清理代码、归档日志、销毁冗余数据。
就是在清理的过程中,他发现了一件有意思的事。
在那堆被标记为“废弃”的训练日志里,有一条记录很奇怪。那是一组标准的蛋白质折叠训练任务,loss曲线在前两千步很正常地下降,然后在第两千一百步的时候,突然跳了一下——不是发散,而是骤降,降到了一个理论上不可能达到的数值。
他当时以为是bug,反复检查了三遍代码,没发现问题。他又重新跑了一次同样的训练——这次loss曲线恢复了正常,再也没有出现过那次跳跃。
他把那条日志单独拎了出来,存到了一个不起眼的文件夹里。
后来他查了不少资料,发现这种现象在深度学习领域有个说法叫“涌现”——模型在大规模训练中突然展现出超出预期的能力,原因不明,不可复现。学术界吵了好几年,也没吵出个定论。
而盘古0.1的那个残档,似乎就藏着这样一次“涌现”。
只不过,整个启元科技没人注意到这件事。或者说,注意到了也没人在乎——一个烧了两千万打了水漂的项目,谁还会在意一条莫名其妙的日志?
但王鸣在乎。
他花了两年时间,断断续续地在业余时间研究那个残档。他试着复刻训练环境,试着理解那次loss跳跃背后的机制,试着让模型重现那次“涌现”——全都失败了。
直到上周,他换了台机器,装了新版本的CUDA和PyTorch,重新加载了那个残档。
这一次,模型没有报错。
他输入了一个标准的蛋白质折叠测试用例——结果模型输出了一个他从未见过的折叠路径。他查了PubMed,查了Google Scholar,查了所有的公开文献——没有人提过这个路径。
那一刻,他的手是抖的。
但他什么都没说。他知道这种事说出去也不会有人信——一个被废弃的残档,一个无法复现的涌现,一个毫无背景的小算法工程师。谁会当真?
他默默地把那个残档拷到了自己的移动硬盘里,当作一个秘密,藏在了心里。
而现在,他被裁了。
王鸣关掉聊天框,没有回复刘伟的消息。他打开电脑,插上移动硬盘,点开了那个名为“backup_2023”的文件夹。
里面躺着盘古0.1的残档。
他盯着屏幕看了一会儿,然后打开命令行,开始复刻训练环境。
CUDA 11.8,PyTorch 1.13,Python 3.9。他早就把这些环境配置写成了一键脚本。但这次编译到一半又报错了——cuDNN版本不兼容。
他骂了一声,开始手动排查。
折腾了大半个晚上,换了四个版本的cuDNN,终于在凌晨四点多把环境搭好了。
他揉了揉眼睛,输入了那条蛋白质序列。
模型开始跑。
三分钟后,输出结果出来了。
王鸣盯着屏幕,呼吸停滞了一秒。
是一条全新的折叠路径。和他上周看到的那条不一样——这次的路径更短,能量更低,理论上更稳定。
他打开PubMed,一个一个关键词地搜。没有。再搜。还是没有。
他靠在椅背上,心脏砰砰跳着。
但他也知道,这东西不是万能的。上次能跑出结果,不代表下次还能。而且它吃算力吃得厉害——他那台旧笔记本的风扇已经在嘶吼了,CPU温度飙到了九十度。
他深吸一口气,关掉了电脑。
钱的问题还没解决。N+1补偿要等到离职手续办完才能到账,最快也要三天。但父亲的支架手术等不了三天。
他拿起手机,翻了翻通讯录。
能借钱的朋友不多。工作三年,工资不高,也没什么积蓄。几个关系好的同事也都是打工人,房贷车贷压着,谁手里都不宽裕。
他想了想,还是拨通了大学室友张磊的电话。
“磊子,睡了吗?”
“没呢,打游戏。咋了?”
“我爸要做手术,差一万八。你手里方便吗?”
电话那头沉默了几秒。张磊也没多少钱——去年被裁后一直没找到合适的工作,现在靠接外包单子糊口。
“鸣哥,我手里就八千,你先拿去。”
王鸣喉咙一紧:“够了。谢了。”
“客气啥,咱俩谁跟谁。”
挂了电话,他又翻了翻通讯录,找到了另一个大学同学——李明,在深圳做测试,关系还行。
“明子,手头方便吗?我爸手术差一万。”
“一万有,账号发我。”
五分钟后,两笔转账到账了:张磊八千,李明一万。加上自己卡里的四千多,勉强凑够了两万二。
还差一万六。
他盯着余额看了一会儿,又翻了翻通讯录。这次他没有打电话,而是打开了一个许久没打开的App——某借贷平台。额度一万五,日息万分之五。
他犹豫了三十秒。
然后点了“借款”。
审核通过了。一万五到账。
加上之前的两万二,一共三万七。加上卡里剩的零头,刚好三万八。
他深吸一口气,给母亲转了38000元。
附言:“爸的手术费,儿子出了。”
然后他拨通了母亲的电话。
“妈,钱转过去了,你查一下。”
电话那头沉默了几秒,然后是母亲哽咽的声音:“鸣鸣,你哪来这么多钱?”
“妈,我找到新工作了。”
“这么快?你不是刚……”
“嗯,朋友介绍的,待遇不错。你和爸别担心,好好看病。”
挂了电话,他坐在黑暗里,盯着手机上那条转账成功的通知,第一次觉得自己的人生还有救。
但他没有注意到的是,屏幕角落里,一个名为auto_sync的脚本正在后台悄悄运行。
它在尝试连接一个异常的IP地址。
王鸣关了电脑,躺到床上,脑子里已经开始盘算下一步。
注册工作室,找客户,升级算力。他打开手机备忘录,列了一个清单:
1.明天去办离职,争取N+1尽快到账
2.注册个体工商户——“鸣渊技术工作室”
3.筛选邯郸本地企业,找能做蛋白质折叠预测的客户
他翻了个身,脑子里闪过一个名字——华恒生物。邯郸本地的一家工业酶制剂企业,他之前在行业新闻里看到过,好像有一个项目卡了两年没出结果。
他打开浏览器,搜索“华恒生物邯郸”。页面上弹出一行简介:河北华恒生物科技有限公司,专注工业酶制剂研发与生产。
王鸣盯着那行字,拨通了页面上留下的联系电话。
“你好,请问是华恒生物吗?我想找一下贵司的陈总,关于技术合作的事。”
电话那头转接了几次,最后是一个秘书接的:“陈总这周行程很满,最快下周二上午有个空档。”
下周二。今天是周四,还有四天。
王鸣挂了电话,在备忘录里记了一笔:下周二上午十点,华恒生物。
他关掉手机,躺回床上。窗外的天快亮了。
第二天早上八点半,王鸣准时出现在了启元科技的办公楼下。
他穿了件旧羽绒服,背着双肩包,包里装着移动硬盘和那台用了三年的ThinkPad。电梯里碰到几个以前的同事,目光交汇时都有些尴尬——大家都知道算法二组被端了,但谁也不知道该说什么。
他径直走到工位,开始收拾东西。
显示器是自己的,键盘是自带的,杯子是公司发的——算了,不要了。他把移动硬盘和笔记本塞进包里,正准备走人,身后传来一个熟悉的声音。
“哟,小王,来得挺早啊。”
王鸣转过身,看到刘伟正靠在工位隔板上,手里端着杯咖啡,脸上挂着那种让人不舒服的笑。
刘伟比他大五岁,是算法二组的副组长。技术上没什么真本事,但特别会来事儿——对上舔得殷勤,对下踩得狠。王鸣在他手下干了两年,没少被他穿小鞋。
“刘组长,”王鸣淡淡地说,“有事?”
“也不是什么大事,”刘伟走过来,目光扫了一圈王鸣的工位,“就是例行公事。你那个盘古残档的清理报告,写完了吗?”
“写完了,昨天发到你邮箱了。”
“哦,那我回头看看。另外——”刘伟指了指王鸣桌上的那台显示器,“这台机器是你平时用的吧?我得检查一下,看看有没有什么‘私人数据’在上面。”
话里带刺。
周围的同事低着头,假装在忙。
王鸣看着刘伟那张脸,忽然觉得有点好笑。这个人吃回扣的事,他早就知道了——刘伟用公司邮箱注册了好几个外部供应商平台,每次采购硬件的时候虚报价格,差价进了自己的腰包。这事在公司里不算秘密,但一直没人捅破,因为刘伟背后有人。
王鸣本来不想管这闲事,反正都要走了。
但刘伟这副嘴脸,让他有点不爽。
“刘组长,”王鸣拉开椅子,坐了下来,“你来得正好,我昨天整理了一份‘项目资产合规报告’,要不你一起看看?”
刘伟愣了一下:“什么报告?”
王鸣打开电脑,连上了投影仪。他设置了一下投影范围,只展示了采购台账的汇总数据和供应商平台的投诉截图,隐去了具体的交易账号和个人隐私字段。
屏幕上弹出一个PPT文件,封面写着:《算法二组项目资产合规审计报告》。
刘伟的脸色变了一下。
王鸣点了一下鼠标,翻到了第二页。
“这是过去三年,算法二组所有硬件采购的台账,”王鸣的语气很平静,“我把它和供应商平台的公开报价做了个交叉比对,发现了一些有意思的事。”
他翻到下一页。
屏幕上出现了一张表格,左边是采购价格,右边是市场均价,中间的差额标成了红色。
“比如这笔——去年三月采购的十张RTX 3090,采购价是单张两万二,但当时京东的零售价是一万八。差额四万,去向不明。”
刘伟的笑容僵住了。
“再比如这笔——前年十一月采购的一套双路工作站,报价十二万,但同样的配置在电商平台只要八万五。差额三万五,同样去向不明。”
王鸣继续翻页。
“还有这个——刘组长,你用公司邮箱注册过一个叫‘鼎信科技’的供应商平台对吧?那个平台的投诉区里,有好几条关于你虚报价格的投诉记录。虽然投诉被删了,但网页快照还在。”
他抬起头,看着刘伟。
“要不要我继续翻?”
办公室里安静得可怕。
刘伟的脸从白变红,又从红变白。他张了张嘴,想说点什么,但什么也没说出来。
周围的同事偷偷抬头看向这边,眼神里带着震惊和一丝幸灾乐祸。
王鸣关掉了投影。
HR主管愣了半天,小声问:“王鸣,你这个……”
王鸣说:“放心,我只发给了大老板。刘组长的事你们内部处理,我不追究。但我的N+1,今天必须到账。另外——”他顿了顿,“盘古那个残档的清理报告,我可以带走吗?反正公司已经废弃了。”
HR主管看了一眼刘伟铁青的脸,点了点头。
王鸣拿起背包,头也不回地走出了办公室。
身后传来一声杯子摔碎的脆响。
下午两点,王鸣坐在出租屋里,手机收到一条短信——银行到账通知:N+1补偿款,共计67280元。
他看了一眼,没有太多兴奋。
他打开电脑,点开盘古0.1的界面,输入了那条蛋白质序列。
三分钟后,模型输出了一条全新的折叠路径。
他查了PubMed,查了Google Scholar,查了CNKI——无人提过。
他靠在椅背上,长长地呼了一口气。
然后他打开备忘录,在第一行“明天去办离职”后面打了一个勾。
窗外,邯郸的天空依然灰蒙蒙的。
但王鸣知道,有什么东西,正在破土而出。

