从 monorepo 里挑微调样本,我是怎么把重复样板代码挡在门外的
从 monorepo 筛选微调样本时,重复样板代码是最大陷阱。文章提出三层过滤方案:AST 结构指纹归一化标识符后算哈希,抓“换皮代码”;路径聚类利用目录结构识别同目录批量生成物;diff 信号通过 Git 历史标记长期未修改的死代码。三者叠加可将重复率从 34% 降至 4%,同时避免误杀同构不同义的高价值业务样本。
共 3 篇文章
从 monorepo 筛选微调样本时,重复样板代码是最大陷阱。文章提出三层过滤方案:AST 结构指纹归一化标识符后算哈希,抓“换皮代码”;路径聚类利用目录结构识别同目录批量生成物;diff 信号通过 Git 历史标记长期未修改的死代码。三者叠加可将重复率从 34% 降至 4%,同时避免误杀同构不同义的高价值业务样本。
微调私有代码库模型时,需在训练数据中显式加入完整的 monorepo 多级文件路径,而非仅函数签名或扁平文件名。核心做法包括:每条样本附带真实相对路径与对应 import 语句;构造 20%–30% 的“引用任务”样本强制学习函数到路径的映射;加入负样本和路径变体以区分同名函数与禁止写法;将目录约定写入每条样本前缀。实测加入路径字段后 import 生成正确率从 31% 提升至 87%,约 5200 条样本即可让 7B 模型掌握私有目录规范。
依赖闭包索引是降低 monorepo 调试助手误报的关键。通过解析 package.json 的 workspace 依赖构建传递闭包,将索引范围限定在当前服务及其真实依赖的本地包,实测误报率下降约八成。相比全仓索引,该方法更贴合调试认知边界;相比目录约定,能覆盖共享包中的真实缺陷。团队协作场景可进一步采用全仓索引加归属标签过滤,并在提示词中注入包边界约束以抑制跨包类型相似导致的误报。