17K小说网 >> 男生>> 都市小说 >> 第七批 [书号3683133]
选择背景颜色: 1 2 3 4 5 6 7 8
选择字号: 特大 大 中 小

第八章 空壳

《第七批》 老眼童心/著, 本章共6542字, 更新于: 2026-11-04 15:13

回到三楼的时候是晚上九点四十。

楼道里坏了一盏灯,剩下那盏是老式日光灯,镇流器老化了,一闪一闪,闪得人眼晕。

机房门没锁。三楼这间屋子三年没锁过,因为里面没有任何值得偷的东西。

老檀推门进去。

花班和灰贝跟在后面。老阙一瘸一拐走在最后,手里拎着一个塑料袋,袋子里是刚才从食堂打包的四个包子,还热着。

“檀哥。”花班说,“真要动。”

老檀没答。

他径直走到墙角,蹲在那台07号机前面。

那台机器还是老样子。

塔式机箱,比一般的台式机高出一个头,侧面钢板上锈了几块。前面板上那张泛黄的标签,在忽明忽暗的灯光底下反着一点光:

江大工坊项目组•07号机

机箱底下,那块黑色的硬盘露出一个角。

边缘磨得发亮,接口处缠着一圈透明胶带。胶带发黄了,卷了边。

老檀蹲在那儿。

三年了。

他每天从这台机器旁边过,过的时候从来没低过头。

他伸手。

手指碰到硬盘外壳的时候,是凉的。凉得跟这间屋子里的空气不是一个温度。

“檀哥。”灰贝在身后,声音发抖。

“嗯。”

“我哥说,别碰。”

老檀没有回头。

“你哥说的是‘别碰’。”他说,“不是‘永远别碰’。”

“有什么区别?”

“‘别碰’后面还有半句。”

“哪半句?”

老檀的手停在硬盘上。

“碰之前,先想清楚你要拿它干什么。”

机房里安静下来。交换机在窗台上嗡嗡响,声音比平时显得大。

花班在后面小声说了一句:“那你想清楚了吗?”

老檀没答。

他把手往下探,摸到硬盘两侧的螺丝孔,指头卡进去,往上抬。

抬了一下,没抬动。

三年的灰和潮气把硬盘和机箱底粘在了一起,胶带也硬了。他从口袋里掏出一把钥匙,顺着缝里划了一圈,划开那层灰垢,再抬。

这次动了。

抽的时候很轻,几乎没有声音。机箱底把它压出了一道浅浅的印子,印子上的漆比周围新一点。

硬盘拿在手里,翻过来。

背面贴着标签。

标签上手写着几个字,墨水洇开了,只能看清前三个:

工坊—

后面两个字,被磨掉了。

老檀拿手指在那两个字上蹭了蹭。

蹭不掉。是被人用指甲一点一点刮掉的。

“谁刮的?”花班问。

“不知道。”

“为什么刮?”

老檀看着那道刮痕。

“因为那两个字,”他说,“不能让人看见。”

插上硬盘,是在那台2011年的双路E5上。

花班找了一根 SATA 线,又从智能感知组借来的硬盘底座上拆了一个电源转接头,接好,开机。

开机的时候,风扇的声音一下子大了起来。四个人都没说话,站在机箱旁边听着。

系统起来以后,老檀敲了一条命令:

lsblk

屏幕上跳出来几行。

sda 1.8T

sdb 465.8G

“认出来了。”花班说。

465.8G。

一块标准的500G移动硬盘。

老檀敲了第二条:

fdisk -l /dev/sdb

屏幕滚了一下。

/dev/sdb1 * ext4 465.8G

只有一个分区。

老檀敲第三条:

mount /dev/sdb1 /mnt

回车。

没有报错。

“挂上了。”花班说。

老檀敲第四条:

ls -la /mnt

屏幕滚了一下,跳出来四行。

四行。

data/

channel/

kernel/

README.md

机房里静了。花班盯着屏幕,眼睛都不眨。

“檀哥……这硬盘里,是一份完整的。”

老檀把硬盘又翻了一遍。“是原盘。”他说。

“那07号机上那份?”

“那份是拷过去的。”老檀说。

他停了一下。

“三年前有人把它从原盘上拷了一份,留在07号机里。然后把原盘带走了。”

“带走了又送回来。”

“不是送回来。”老檀说,“是藏起来。”

“藏在哪儿?”

“藏在三楼。”老檀说,“藏在谁都能看见的地方。”

老阙在后面开口了。

“檀哥,”他说,“先看 README。”

老檀敲:

cat /mnt/README.md

屏幕上跳出几行字。

跟07号机上那一份,一字不差:

江大工坊项目组 • 核心模块说明

data/ 数据模块。管所有数据的进出。

channel/ 渠道模块。管所有成果的申报与认定。

kernel/ 内核模块。以上两者的根。

三者同源,不可分。

花班看着那五行,念了一遍。

念完,她愣住了。

“檀哥,这跟07号机上那份完全一样。”

“我知道。”

“那我们折腾这一趟,图什么?”

老檀没有立刻答。

他敲了一条命令:

diff -r /mnt/kernel /workshop/kernel

回车。

屏幕空白了两秒。

然后跳出一行:

diff: /workshop/kernel/core.py: No such file or directory

老檀的手停在键盘上。

花班凑过来。

“workshop/kernel 里没有 core.py。”

“那07号机上那份 kernel 里有什么?”

老檀敲:

ls -la /workshop/kernel/

屏幕跳出:

总用量 12

-rw-r--r-- 1 root root 884 2020-06-17 23:14 scheduler.py

-rw-r--r-- 1 root root 612 2020-06-17 23:14 ioctl.py

两个文件。

scheduler.py,884字节。

ioctl.py,612字节。

没有 core.py。

老檀盯着屏幕,隔了几秒,又敲了一条:

ls -la /mnt/kernel/

总用量 20

-rw-r--r-- 1 root root 7316 2020-06-17 23:14 core.py

-rw-r--r-- 1 root root 884 2020-06-17 23:14 scheduler.py

-rw-r--r-- 1 root root 612 2020-06-17 23:14 ioctl.py

-rw-r--r-- 1 root root 1204 2020-06-17 23:14 verify.py

四个文件。

比07号机上那份,多了两个。

core.py,7316字节。

verify.py,1204字节。

花班整个人僵住了。

“檀哥……”

老檀盯着屏幕上那两个文件名。

“三年前,”他说,“那个人把 kernel 拷进07号机的时候,把这两个文件删掉了。”

“为什么?”

“因为这两个文件,”老檀说,“是内核的钥匙。core.py,核心的意思,整个内核就靠它跑。”

“钥匙为什么要拿走?”

“钥匙留在机器上,”老檀说,“谁都能开。”

机房里静了。灰贝坐在角落,抱着那台屏幕裂了的笔记本,屏幕的光照着他下巴。

“檀哥……”

“嗯。”

“我哥他,”灰贝说,“是不是把 core.py 删掉了?”

老檀没有立刻答。

他低下头,看着键盘。

“不是删掉。”他说。

“那是什么?”

老檀抬起头。

“是挖空。”

灰贝把这两个字在嘴里过了一遍,没出声。

“他没删这个文件。”老檀说,“他把文件里的内容掏掉了。”

他敲了一条命令:

cat /mnt/kernel/core.py

屏幕上跳出来一大段。

那是 Python 代码。有 import,有类定义,有函数签名。

但花班看着屏幕,看了十秒,猛地转过头。

“檀哥!”

“嗯。”

“这文件里,没有一行是真的。”

屏幕上那段代码,长这样:

class KernelCore(nn.Module):

"""

核心算子。

输入: x 是 B x L x D 的三维张量

输出: 同形状

要求:

1. 时间复杂度 O(L•D),不得使用 O(L²•D) 的全连接注意力;

2. 参数量 < 1.2M;

3. 不得调用任何第三方注意力实现

(包括但不限于 torch.nn.MultiheadAttention,

transformers., xformers.);

4. 在 D=256, L=512 下, 单卡 1080Ti 上

前向+反向 单步 < 42ms。

"""

def init(self, dim: int):

super().init()

TODO: 实现

raise NotImplementedError

def forward(self, x):

TODO: 实现

raise NotImplementedError

机房里静得能听见硬盘在转。

花班盯着那个 raise NotImplementedError。

“檀哥……”

“嗯。”

“这个文件,”她说,“是个空壳。”

“是个空壳。”老檀说。

“那 7316 字节是什么?”

老檀把屏幕往下滚。

滚过去,后面还有一大段。

那一大段不是代码。

是注释。

密密麻麻的注释。

从数学推导开始:

设 x 是 B x L x D,要构造一个 O(L•D) 的算子。

思路:不做全连接的 QK^T,改用可分解的低秩近似。

令 Q = xW_Q, K = xW_K, V = xW_V, 其中 W 是 D x r, r 远小于 D。

关键:把 softmax(QK^T)V 拆成两块相乘,先算 V 那一侧,用结合律换顺序。

这一步换顺序,误差上界见下面的推导……

往下还有十几行,全是推导。推导完了,是一段伪代码。伪代码完了,是几组测试数字:

参考指标(本组实测,1080Ti, D=256, L=512):

r=16 : 31.2ms loss@10epoch 0.412

r=32 : 36.8ms loss@10epoch 0.338

r=64 : 48.1ms loss@10epoch 0.301 ← 超时

r=48 : 41.3ms loss@10epoch 0.312 ← 临界

最后一行,是手写的一句:

别抄。抄来的跑不到这个数。

花班看着那一行。

“檀哥。”

“嗯。”

“他说‘别抄’。”

“他说了。”老檀说。

“为什么抄来的跑不到?”

老檀伸手,敲了另一条命令:

cat /mnt/kernel/verify.py

屏幕上跳出来一千两百个字节的代码。

代码不长,花班看了三遍才看懂。看完,她的脸白了。

那段代码做的事,只有一件:

它检查你提交的 core.py,是不是从别处抄来的。

检查方式有三层。

第一层,查名字。扫你的代码里有没有出现那几个开源库的名字。

第二层,查手感。它会把你训出来的模型,权重里那些数字的分布,跟几个已知开源模型的分布比一遍。像,就判成“微调产物”。

第三层。

花班看到第三层的时候,愣住了。

第三层是这么写的:

def check_provenance(history: list) -> bool:

"""

检查实现过程的可追溯性。

history: git 提交记录, 每项 (hash, msg, ins, dels)

判定: 若存在任意一次提交, 满足

dels > 0.6 * ins 且 ins > 200

则认为存在“推倒重写”行为。

核心算子必须至少经历一次推倒重写。

"""

花班盯着那几行。

“檀哥。”

“嗯。”

“它检查……你有没有推倒重写过。”

“它检查。”老檀说。

“为什么?”

老檀看着屏幕上那行判定条件。

dels > 0.6 * ins 且 ins > 200

删掉的行数,超过新增行数的六成,且新增超过两百行。

“因为,”老檀说,“抄的人不会推倒重来。”

花班坐在那儿,忽然想起一件事。

她想起自己的 git_log.txt 里有一行:

f3c8a71 重写数据清洗,去掉第三方脚本依赖 1204 insertions, 1893 deletions

删了一千八百九十三行。

加了一千两百零四行。

删的比加的还多。

她抬起头。

“檀哥。”

“嗯。”

“胡老板说的那句‘舍得删’。”

“胡老板说得对。”老檀说。

老檀从桌前站起来。

他把那块黑色的硬盘拿在手里,翻过来,看着背面那张被刮掉两个字的标签。

然后他把它放在桌上,转过身,看着机房里所有人。

“我们现在有一样东西。”他说。

“什么东西?”

“一个空壳。”

他停了一下。

“一个写着要求、写着推导、写着参考数字,但一行实现都没有的空壳。”

他抬手,在屏幕上那段注释上敲了两下。

“它要的是一个人,从头把这个算子写出来。”

他停了一下。

“写出来以后,它还要查这个人,写的过程中有没有推倒重来过。”

机房里安静了。老阙在后面开口了。

“檀哥。”

“嗯。”

“这个算子,能写吗?”

老檀看着他。

“O(L•D) 的注意力替代,参数一兆二,单步四十二毫秒以内。”老阙说,“这个指标。”

“指标怎么样?”

老阙低下头,想了很久。

想完,他抬起头。

“能写。”

“你有把握?”

“没有。”

“那你说能写。”

老阙把那条伤腿从板凳上收下来,坐直了。

“因为那组‘参考指标’里,”他说,“写着 r=48 是‘临界’。”

他抬起头。

“‘临界’这两个字,不是给抄的人写的。”

他停了一下。

“‘临界’是给试到那一步的人写的。他试过。他试到48的时候卡住了,前面31、36都记得清清楚楚,后面64超时了,也记着。这个人把一条路走到头了,才回头在纸上写下‘临界’两个字。”

他把手放在膝盖上。

“能走到头的人写出来的东西,我们也能走。”

老檀站在那儿,看着他。

然后他转过身,走到白板前,拿起粉笔。

在最上面,他写了三个字:

core.py

写完,在底下拉了一条横线。

横线下,写了两行:

要求:O(L•D),<1.2M,<42ms

判定:至少一次推倒重写

他把粉笔放下,转过身。

“谁写?”

机房里没人立刻答。

花班低下头。

她脑子里在过那几行推导。低秩分解,r 取16、32、48、64。先算 V 那一侧,用结合律换顺序。误差上界……

过了一遍,她抬起头。

“檀哥,我来。”

老檀看着她。

“你写过 attention 吗?”

“写过。”花班说,“去年抄过一份 MultiheadAttention 的实现,改了改参数。”

她停了一下,声音低下去。

“……抄的。”

机房里安静了。老檀走到她面前。

“花班。”

“嗯。”

“你那份抄的,现在还在你硬盘上吗?”

花班低下头。

“……在。”

“删了。”

花班猛地抬头。

“删了。”老檀说,“从现在起,你硬盘上所有跟 attention 有关的东西,全部删掉。”

“为什么?”

“因为你要是留着,”老檀说,“你写的时候,手会自己往那边靠。”

花班坐在那儿。

她坐了大概十秒。

然后她伸手,打开自己的移动硬盘,找到那个文件夹。

文件夹里有七个文件。

去年她从 GitHub 上 fork 下来改的,一共两千三百多行。

她看着那七个文件。

那是她大二一年攒下来的东西。里面有几段她自己写的,改参数的时候顺手加的,注释还是她当时打字打错又懒得改的错别字。

然后她按下了 Shift+Delete。

屏幕上跳出确认框:

确定要删除这 7 个项目吗?

花班的手停在回车键上。

停了大概三秒。

然后她按了下去。

屏幕闪了一下,文件夹没了。

机房里没人说话。

老檀走到窗台前,把嘴里那根烟拿下来,在手里转了一圈。

“花班。”

“嗯。”

“两千三百行,删了心疼吗?”

花班低着头。

“……心疼。”

“为什么要删?”

花班抬起头。

她想了很久。

“因为留着它,”她说,“我就永远不知道自己能不能写出来。”

老檀看着她。

然后他把烟塞回嘴里,跳下窗台。

“从今天起,”他说,“core.py 由花班写。”

他停了一下。

“老阙,你写 verify 的测试。”

“行。”

“灰贝,你把 README 里那三行字,抄到白板上。”

“好。”

“我。”

他停住了。

“你干什么?”花班问。

老檀走到墙角,蹲在那台07号机前面。

“我干一件事。”

“什么事?”

老檀伸出手,在那张泛黄的标签上摸了一下。

江大工坊项目组•07号机

“我把这台机器,”他说,“擦干净。”

那天夜里,北枢散得比平时早。

花班留到最后。

她坐在工位上,打开一个空文件,敲下第一行:

import torch

敲完,她停住了。

停了大概一分钟。

然后她把那一行删了。

删完,她重新敲:

import math

老檀在墙角擦机器。

抹布是从洗手间拿的,拧得不干,擦过去留下一道水痕,过一会儿自己干了。

擦到一半,他停住了。

他擦到了机箱侧面靠下的位置。

那里有一块锈。

锈底下好像压着什么。

他拿抹布使劲蹭了两下。

蹭掉那层锈,底下露出来一行字。

那行字是拿什么东西刻上去的,刻得很深,笔画里还残留着一点暗色的东西,像是铁锈,也像别的。

老檀把台灯拉过来,凑近了看。

那是一行小字。

七个字。

那七个字是:

给第七批的,别丢。

老檀蹲在那儿,手还举着台灯。

台灯的光在那七个字上停着,字的边缘被光一照,能看出来刻的时候手有点抖,第一笔比后面的深。

他伸出手,用指腹在那七个字上按了一遍。

按完,他把手收回来,攥成拳,又松开。

机房里很静。花班在工位上敲键盘,敲得很慢,一下,一下。

老檀站起来,把抹布叠好,放在机箱顶上。

然后他低头看了一眼自己刚擦出来的那块钢板。

锈没了,底下是灰白的铁。

他忽然想起机箱底下那块砖。

粉笔圈里的那一块。比周围浅,缝里的水泥粉还没结壳,最多几个月。

他蹲下去,把机箱往外挪了五公分。

砖还在。机箱压着的地方,砖面上的灰是干净的。

老檀没动那块砖。他把机箱推回去,对着原来那道印子对正。

“檀哥。”花班在后面喊,“这一行我写不下去了。”

“哪一行?”

“import math 后面。”

老檀站起来,走过去。

屏幕上只有一个 import math,光标在下一行闪。

“写不下去就别写。”他说,“回去睡。明天再写。”

“明天也写不下去呢?”

“那就后天。”

他把手按在花班肩膀上,按了两下。

“这活儿要写四个月。”他说,“不差今天这一晚。”

第二天夜里十点,老檀抱着那块硬盘,去了南门。

胡记的卷帘门已经拉下来一半。门缝里透着光。

本书首发来自17K小说网,第一时间看正版内容!

作者寄语:
wap_17K
  • 下载17K客户端,《第七批》最新章节无广告纯净阅读。
  • 17K客户端专享,签到即送VIP,免费读全站。
更多

编辑推荐榜

1 大展鸿途
2 风起龙城
3 大秦第一熊孩子
4 仙穹彼岸
5 特种兵之最强国术系统
6 当昼与夜再次相遇
7 夫君寡嫂生野种?来!做亲子鉴定
8 重生改嫁战神公爹,家暴前夫吓尿了
9 协议结束,亿万总裁跪着求续约
10 少年战歌
资讯快递
人气热销 言情热销
潜力大作 女生必读

1 永夜 作者: 江火香猫
科幻末世 1042417 字
永夜:浩劫余生,终见光明

2 校花别沾边,重生的我只想搞钱 作者: 十万字
都市小说 789066 字
都重生了,还不好好搞钱?

3 我死后,姐姐们才开始爱我 作者: 木马非马
都市小说 80082 字
我死后,全家人才开始知道爱我,可我已经死了

4 上门狂婿 作者: 狼叔当道
都市小说 8171953 字
上门赘婿,受辱三年,期约一到,强者归来!

5 武圣之上 作者: 任我独行侠
玄幻奇幻 201339 字
这是个废材靠着金手指,逆天改命的故事!

6 60年代:开局荒年,我带着全村吃肉 作者: 妞妞骑牛
都市小说 415929 字
穿越60年代:开局荒年,我带着全村吃肉

7 这位诗仙要退婚 作者: 人世几春秋
历史军事 1194814 字
这位诗仙要退婚:文韬武略

8 玄幻:遇强则强,我的修为无上限 作者: 史上最帅作者
玄幻奇幻 1481875 字
获得遇强则强系统,我直接啪啪给了天道两个大嘴巴子

9 红豆缘:炮灰也要长命百岁 作者: 翘褚
古代言情 271116 字
开局炮灰剧本怎么办?不慌,苟着苟着就到大结局了

10 神龙诀之九龙剑诀 作者: 光环美男
仙侠武侠 1003350 字
江湖传闻要是得到《神龙诀》,就可以称霸武林!

《第八章 空壳》最新评论

评论本章

还没有人发表评论哦~
我来说两句

换一换