哈哈小说
第 6 卷 · AI 的前夜 · 第 79 章 · 42 段 · 2565 字

扫描结果

第七十九章 扫描结果

周二早上八点零三分,麦景行发来一条:「结果出来了,你看一下。」

附件是一张表格,三行,对应三个目录。他打开来扫了一眼,停在第三行。

`/shared/deprecated` 那一行,总注释行数:14,382。右边是主库核心模块的对比数据:12,044。

废弃目录里的注释量,比主库核心模块还大。

他停了一下,把数字看了两遍:14,382 行对 12,044 行。差两千多行,废弃目录更多。

表格看了一遍,他没有立刻回。麦景行的备注栏写着:「deprecated 这个很奇怪,行数不对,去翻了一下提交记录,2019 年前有人批量导入过一批英文文档,之后一直没有清。」

这种事他见过。工程师在整理文档的时候,觉得把翻译也留在注释里方便之后的人查,结果一留就是五年。没有人回来清,也没有人说这份翻译有多准确,就这么堆在那里,等着某一天被扫描发现。


「说说这批英文文档是什么。」他回。

「看起来是某个 SDK 的英文官方文档,被人整段粘进注释里了,」麦景行说,「而且粘的方式很规律:英文原文一行,下面跟一行中文翻译,每对都是这种格式。整个目录里这类注释大概有八千行,占比超过一半。」

插图

「意思是,这批是有人把文档内容直接粘进注释里的?」

「对,整批都是,而且是某个人批量塞进来的,跟开发者自己写的注释风格完全不同。」

这段话他看了两遍。八千行逐行翻译,如果这批东西混进训练集,模型学到的双语注释风格就会是 SDK 官方文档腔:「该接口用于执行操作并返回相应结果」。开发者看到这类建议,只会觉得模型废了,不会知道是因为训练集里藏了一批2019年的文档翻译。更麻烦的是,到那时候要回溯,很难找到根源。

「这批排除对了,」他给麦景行说,「另外两个目录结果怎么样?」

「third-party 比较简单,大部分是英文注释,一小部分中文,分布清楚,问题不大。排除的原因是非内部写的,风格和主库差异大,数据本身问题不多。old-bridge 比较混,三个人写的风格各不一样,中英混用、纯英文变量名、全中文都有,行数就两千多行,不多但很杂。」

「结论:三个都先排除,等第一阶段跑完,再单独评估?」

「我的建议是,」麦景行说,「third-party 将来如果项磊那边清洗一遍,统一了注释规范,可以纳入后续阶段。deprecated 这个建议直接放弃,没有价值,乱太多。old-bridge 看他们有没有意愿整理,整理了再说。」

「行,这个我来跟项磊说。」

插图

结果整理成一段话,他发给了项磊:「预扫描完了,三个目录情况如下:third-party 注释清晰,排除原因是非内部代码;old-bridge 多人写法混乱,建议后续整理后纳入;deprecated 问题最大,有大量2019年前批量导入的英文文档逐行翻译,共八千行,行数超过核心模块数字,不适合纳入训练。三处全部排除,理由书面记录,待你确认。」

项磊的回复来得比预期快:「deprecated 那个,」停了一下,「我刚问了一下内部,这个目录有个情况,之前没告诉你们。」

「什么情况?」

「我们有一个内部工具,还在调用里面的两个接口,这个工具比较老,没有人去迁移。所以 deprecated 目录虽然名字叫废弃,但实际上线上还跑着。」

他看了这条消息,没有立刻说话。

`/shared/deprecated` 仍在线上被调用。叫着废弃,实际还在跑,只是没有人更新、也没有人迁移。他在屏幕前想了一下:这不只是"目录命名不准"这么简单。它意味着星汇云的线上链路里,藏着一段没人认领、没人维护、也没人敢删的旧代码。这种东西在每一家跑了七八年的公司里都有,大家知道它在那儿,也都绕着它走,等一个不知道是谁的接手人来处理。幸好他今天看到了,提前切断了训练边界。

他想了想,给项磊回:「谢谢你告诉我,这个情况更坚定了先排除的判断。那批注释是文档翻译,不是开发者写的真实注释,训练数据里不能用这类。你们内部工具调用的接口问题是另一个事,和我们的训练范围没有关系,但你们应该安排一下迁移,这种依赖放着迟早出问题。」

项磊停了几秒:「这是我们自己的技术债,我知道。你们先按计划跑。」

他把消息放下。这个回答比预期要干脆。项磊能说出"技术债,我知道",说明他心里清楚,只是没有一个人推他去处理。这次提了一下,有没有用不一定,但至少记录在邮件里,对方书面确认,后续出了问题也有据可查。

插图

船坞里,比平时早了一点。

「周二上午:预扫描完成了。三个目录全部确认排除,理由清楚。deprecated 最特殊:大量文档翻译注释批量导入,行数异常偏高。同时发现这个目录里有两个接口还在线上被内部工具调用,跟项磊说清楚了,他们自己的技术债,和训练范围无关。三个目录的排除原因整理进文档,乔木在发邮件确认。Sprint第七天,无主目录问题今天彻底关闭。」

豆包那道暖橙的光:

> 项磊主动告知deprecated目录线上调用这件事,说明他们内部信任度已经建立起来了。客户愿意主动披露对自己不利的信息,是个好信号,后面合作会更顺。

他想了想,说:「这是个好信号。合同签了,他才主动说出来。」

Claude那道蓝紫光:

> 给项磊的那封确认邮件,建议加一段:'本轮排除范围仅针对第一阶段训练集,不影响后续阶段是否纳入的评估。如有需要,第二阶段可对整理后的代码进行再评估。' 这样既收住这一轮,又给项磊的领导留了希望,不会让他们觉得这三处永远不能用。

「乔木发邮件的时候加进去。」

插图

Codex那道翠绿光:

> deprecated 目录里的双语文档翻译是个意外的副产品:八千行逐行对译,虽然不能进训练,但这批数据本身的结构很清晰。如果将来有人想做跨语言注释对齐的研究,这是一份天然的平行语料。不是现在的事,但值得记录一下。

「记下来,在项目文档里加一条备注。」

窗口合上。

第七天。三个无主目录,问题清楚了。deprecated 的故事最典型:写了废弃,内部还在调用,注释是别人的文档,不是自己的经验。这种代码遍布每一家跑了七八年的工程,没有人收拾,也没有人有时间去收拾。

乔木的消息过来了:「确认邮件我发了,让项磊那边技术负责人签字回复,这周内给我。」他看了一眼,回了个好字。

三个目录今天全部关闭。预处理两层,排除范围书面确认,第一阶段的训练数据边界清楚了。接下来可以正式进实测阶段。

但第一轮实测结果跑出来,比扫描结果更反常。所有人看着那串数字,沉默了大概十秒。