哈哈小说
第 6 卷 · AI 的前夜 · 第 80 章 · 64 段 · 2769 字

第一轮结果

第八十章 第一轮结果

周三上午九点零七分,麦景行发来一张截图。

他正在倒水,手机震了一下。把杯子放回去,点开来看。

截图是个指标界面,字不大,两行数字并排。触发率:91.3%。右边的验收基准:80%。

中间差了11个百分点。

他站在水台边,把这张截图看了大概十秒,什么也没发,就盯着那个91.3%。


「你用的是什么测试集?」

回复来得很快:「项磊之前给的六个样例文件,加上我从主仓库里抽的大概三十个函数,凑成了一个测试集。总共三十六个样本,跑了两轮取平均。」

他盯着这段话看了一遍。

六个样例文件,项磊标过"代表性样例"。这个标签本身就是筛选过的结果:风格清晰,结构正常,注释整齐,是项磊认为比较典型的几个,不是随机抽出来的。

三十个函数是麦景行自己抽的。麦景行做事认真,抽样的时候大概率会偏向结构整洁、注释规范的部分,因为那些函数看着舒服,好做示范用。也是主观倾向。

两批输入叠在一起,测试集偏向"好看",结果当然也好看。91.3%跑了两轮取平均,很合理。

问题是,星汇云主仓库里真实存在的代码并不都是这样的。

「数字我看到了,」他给麦景行回,「但测试集偏了。项磊那边的样例是他们挑的,你抽的函数也是整洁的那批。干净数据上跑出来的分数,不能直接拿去代表星汇云整个仓库。」

插图

麦景行沉默了几秒,没有辩驳,只问:「你想怎么重跑?」


「让项磊给最近三十天里有注释修改的 commit 记录。里面随机抽二十个,不挑,不筛,直接把这批注释当测试集跑一轮。」

那边停了一下:「这样结果会低一些。」

「可能低,」他说,「但低是真实的。三周后验收时才发现更麻烦。重跑结果过了基准,我才敢拿那个数字说话。」

「好,」麦景行说,「我去跟项磊要数据。」

「我来说。」他关掉对话,给项磊发了一条:「第一轮实测触发率是91%,但测试集用的是样例文件和人工抽取的函数,不够覆盖你们真实的代码场景。我需要你们主仓库最近三十天里有注释修改的 commit,从里面随机抽二十个来做验证集重跑一轮。权限要求和上次一样,只读,只看那几个 commit 对应的文件。」

项磊的回复过了大概五分钟:「明白,我去问一下技术负责人。」


权限要等到下午。他在工位上把今天的状态整理了一下。

第八天。早上跑出来一个数字,但数字来自干净数据,不能直接用。这种情况在别的项目里见过。过分理想的测试集跑出过分理想的指标,到上线或验收时才发现,模型在真实场景里差得多。背后原因可能是测试集覆盖太窄,也可能是模型对训练集过拟合。他现在不确定是哪种,甚至两种都有可能。

只有用真实的随机数据重跑,才能告诉他答案。

下午两点十五分,麦景行发来一条:「项磊那边开了权限,我在拉数据,三十分钟内出结果。」

他回了个好字。


两点五十分,他在整理上午的沟通记录,乔木从工位那边绕过来,在他旁边停下:「麦景行今天的数字你怎么看?」

插图

「91%是在示范数据上跑的,不够代表性。」他抬头,「在重跑。」

「如果第二轮出来差很多,项磊那边怎么说?」

他想了一秒:「告诉他。第一轮是示范数据,数字好看。真实数据的分数更准,有差异是正常的。达标了就准备验收,没达标就继续迭代。」

乔木皱了下眉:「我担心客户那边会觉得奇怪。上午给他91%,下午说还要重跑,最后发一个更低的数字过去,他们很容易往坏处想,觉得我们在报完高的再往回压。」

「这个担心是合理的,」他说,「所以两轮结果都给他,还要解释清楚为什么不一样。对方真正在意的是我们有没有诚实,数字高低可以解释,态度没法解释。给完整的数字,比只给一个好看的,要诚信得多。」

「如果项磊的领导非要拿91说事?」

「拿去说,说清楚样例数据和真实数据的区别。现在解释便宜,验收当场被质疑就贵了,空间比现在小多了。」

她想了一下,没有再追。「好,我等你看结果。」

背影消失在工位角落。他想起三个月前接第一个企业客户,当时对方主管问过类似的问题,措辞是"要不要先把数字报得好看一点"。那次他说了不,结果客户发现真实情况比预期差一截,反而对主动说清楚这件事印象不错。最终验收顺利,续约也谈下来了。


三点二十分,消息来了,麦景行发来新截图。

两轮平均:84.7%。

他扫了一眼。84.7,高于80%的验收基准,低于91.3%,差距在合理范围内。

91%能撑场面,84.7%能签字。这两个数字的区别就在这里。

插图

模型泛化没问题,真实场景里比示范数据低了六七个点,是正常的训练集质量差异,不是过拟合。这个结果他能写进验收报告,也能当着项磊和对面技术团队的面逐行解释。

截图转发给项磊,附了一段说明:「第二轮用随机抽取的真实 commit 记录跑完了,触发率84.7%,超过80%验收基准。第一轮的91%是在你们提供的样例文件上跑的,两个结果都有效,分别代表不同的测试场景。现在可以开始准备验收材料了。」

项磊回了一行:「谢谢,好。」

又过了几分钟,第二条来了:「比预期高,比我们领导要求的高,这个结果出乎意料。」

他没有接话,把手机放下。


船坞里,比平时早了几分钟。

「今天:早上第一轮结果是91%,测试集是示范数据,有偏差。让麦景行用真实 commit 历史重跑,84%,过了基准线。两轮结果都告诉了项磊。Sprint第八天,验收准备可以启动了。」

豆包那道暖橙的光:

> 主动去验证自己的好数字,这是今天最关键的事。看到91%就停的团队比较常见,你没有。项磊那边的感受可能不一样,但对最终验收,这是对的。

「合同验收的是真实场景,不是样例演示。」

Claude那道蓝紫光:

> 给项磊的消息建议补一句说明:真实数据84%与样例91%之间的差距属于正常范围,不是第一轮出了问题。这样他向上汇报的时候有个背景,不会让领导误以为前后数字矛盾。

「刚才给他发的已经说了"两个数字都有效",应该够用,等他问了再细说。」

插图

Codex那道翠绿光:

> 84.7%跑在随机commit样本上,泛化稳定。如果下一阶段把那三个排除目录里的 third-party 清洗后纳入,泛化分可能还会上一点,因为那批是真实外部代码风格,有助于提升覆盖范围。

「先把这一阶段验收跑完,下一阶段再说。」

窗口合上。

第八天结束。数字有了,真实的,够用的。

椅背靠下去,他想起乔木问的那句"就算78%"。七十八和八十四,数字不同,但处理方式是一样的:告诉客户,说清楚原因,继续推进。达标从来不是刚好落在那里的。要反复检验,才能知道自己真正站在哪里。

手机震了一下,第三条消息来了。

还是项磊:「忘了说,我们这边看了你们发的两轮数字,负责人明天想现场复核一下抽样过程,对84.7%有几个问题。方不方便?」

他看着这条消息,回:「方便,时间定好了告诉我。」

放下手机,他想了一下。84.7%是扎实的,抽样过程是可以解释的,现场复核不是问题。但星汇云那边主动提出来复核,说明91到84这个落差在对方心里留了疑问,对方没有就这样过了。

他起身去倒了杯水。

明天有一场要解释的对话。