哈哈小说
第 6 卷 · AI 的前夜 · 第 78 章 · 52 段 · 2621 字

无主地带

第七十八章 无主地带

「历史遗留,没人负责。」

他把这六个字看了两遍,给乔木回了一条:「那三个目录叫什么,能发过来吗?」

乔木把截图发过来了。最上面是 `/legacy/third-party`,下面还有两处:`/internal/old-bridge` 和 `/shared/deprecated`。

他认出了这几个命名风格。legacy、deprecated 是老项目里常见的冷藏区,最后一次提交不知道是哪年。third-party 是从别处拉进来的库,注释不是自己写的,语言风格可能和主库完全不同。这批东西要是直接进训练流程,什么结果都有可能。

工程里最麻烦的往往是没人管的老代码。复杂代码有人会去看,有人能问,出了问题能追溯。老代码没有这些,写的人走了,规则没有记录,只剩下一堆结果堆在那里,谁也不知道当时是怎么决策的。

「先不要催他们填。」他给乔木说,「让我先问一下项磊,这几处的背景是什么。」


项磊的电话十一点才接,有点懒,像是刚躺下。

「那三个目录,你们自己有没有人了解情况的?」

「legacy-third-party 那个,」项磊说,「是两年前和另一家公司做合并的时候拉进来的库,他们的代码,他们的注释,我们这边没改过,具体风格不清楚。」

「old-bridge 和 deprecated 呢?」

「桥接层,」项磊有点含糊,「早期三个人写的,有人离职了,现在谁也说不清楚里面有什么。deprecated 那个就更麻烦,最后一次提交 2021 年,主库里有几处引用还没清干净,没人敢动,就这么留着。」

插图

电话里的情况,他在脑子里过了一遍。

外来代码、多人流失的老桥接层、无人敢碰的历史负债,三种来路,一个共同点:没有人真的知道里面是什么状态。

那边沉默了一两秒,项磊说:「这几个目录,」项磊停了停,「我们领导那边一直说要覆盖,说完整性要求,我这边没办法直接说排除。」

他没有绕,直接说:「你听我说完。如果这几处直接进训练,验收报告里很可能出现两种结果:一是模型给出的注释建议包含废弃接口和过期路径,二是中英混排识别出错,建议语义混乱。根源在这批历史代码污染了训练集,后面出了问题客户找你们、你们找我们,谁也说不清楚。」

项磊没有立刻说话,停了一下。

「先排除,先跑预扫描,把语言构成和注释质量给你们看。你们拿数据去跟领导说,这几处目录当前状态不适合进第一阶段训练。我们出数据,风险是真实的,你们决定。」

「行。」项磊说,「那就先扫,出来了告诉我一声。」


麦景行那边,他把项磊电话里说的情况整理了一遍发过去,最后加了一句:「明天上午,有没有时间先跑一遍预扫描,把这几处的语言构成摸清楚?不进训练,只是先看。」

麦景行没有立刻回,过了几分钟,发来一个字:「行。」

他等了一下,以为就这样了,结果麦景行又发来一条:「你现在发给我看一下,那几处的路径。」

插图

路径发过去了。

「/legacy 下面那个,」麦景行说,「这个名字我见过。大仓合并最容易出这种,拉进来的时候先放一个目录,后来不动就永远在那儿。没有人删,因为删错了会有人找来。」

「和你说的情况一样,」他回,「所以要先扫再说。」

又过了一会儿,补了一条:「预扫描脚本今天晚上写,明天早上出结果。你让项磊给一份只读访问权限,三个路径,其他不用开。」

「我来协调。」

路径列好,他发给了项磊,说明只读即可。

那边没多想,直接回了:「让我们技术负责人明天早上给你们开临时读权限,其他地方不开。」

这件事就这样定了。

手机放下,他在工位上坐了一会儿。今天早上他在等麦景行确认代码嵌注释,以为那是本周最大的不确定性。表单晚上回来,才知道还有更深的一层。

今天表单发出去,他以为"历史遗留,没人负责"只是客户不认真填,但项磊解释清楚之后才明白,那几处是真的处于一个奇怪的状态:有人用,但没人知道里面有什么;不敢删,也没人维护。这种代码最容易出问题,出了问题也不知道找谁。

双语注释本质是让模型学习代码上下文里的语言意图。如果训练数据混进一批来历不明、风格混乱的注释,模型学进去的全是噪声。

插图

第一阶段把这几处排除在外,判断是对的。但第六天了,刚发现一个真正复杂的问题。

他给乔木发了一条:「明天和项磊对一下,我们这次排除三个目录的原因要写进交接文档,让他们技术侧自己看得到。验收的时候别突然冒出来。」

乔木回得很快:「好,明天上午,我来跟他说。」

消息放下,他想了一下还差什么。麦景行明天有访问权限,脚本今晚写,扫描结果明天早上出来。乔木明天去跟项磊说排除原因。下午他来看扫描报告,决定这三处目录后续的处理策略。第六天推进的脉络,就这样。

剩下的不确定性在于那三处到底有多少注释、语言分布是什么情况。如果真的很混乱,后面可能要建议项磊的团队自己先梳理一遍再纳入训练,那就是另一条时间线了。不管结果怎样,今晚先睡,明天数据出来再说。


船坞里,比平时晚了一些。

「晚上情况:接入表单里三个核心目录被标'历史遗留,没人负责'。问清楚了,是合并过来的第三方库、多人流失的老桥接层、2021年留下的废弃模块。三个都是无主的,不进第一阶段训练。麦景行明天跑预扫描,先把语言分布情况摸清楚。」

豆包那道暖橙的光:

> 让项磊邮件确认排除范围,这步很重要。如果只是口头说过,后续验收覆盖率被质疑,你们拿不出书面记录,很被动。邮件确认一封,双方都有依据。

「让乔木发给项磊一封确认邮件,把三处目录、排除原因、预扫描计划都写进去,让他回复确认。」

插图

Claude那道蓝紫光:

> 预扫描表格字段这样设:目录名、总注释行数、纯中文行数、纯英文行数、混合行数、识别符密度、建议处置方式。最后一列把判断帮项磊写好,他们拿这个去跟领导汇报,省去沟通成本。

「告诉麦景行,建议处置方式那列也填上,别让项磊自己猜。」

Codex那道翠绿光:

> 权限要开临时的,访问范围只限那三个路径,扫描结束当天关闭,操作日志留给项磊。这样你们不会被质疑越权访问,项磊那边也能向上交代。

「让麦景行权限问题提前和项磊说清楚,日志自动留存。」

窗口合上。

他靠在椅背上,看着天花板。今天早上解了一颗雷,今晚发现另一个坑。这两件事都不在原定计划里,一个排查半天搞定,另一个明天才知道有多深。工程里的意外大多数是这样冒出来的:你以为今天是普通的第六天,结果扫完表单,才发现还有三个没人管的目录在等着。

第六天。多了三个无主目录。进度表上没有,但它就在那儿。

他不知道的是,第二天早上麦景行发来的第一张扫描结果表里,`/shared/deprecated` 的注释行数,比主库核心模块还多。