#AI#大模型#DevOps

训练数据去重与评测污染:近重复图谱、隔离水位与泄漏门禁

随机切分后再去重会把同源内容留在训练集和评测集两侧。本文用稳定指纹、近重复连通分量和评测隔离水位控制重复与基准泄漏。

本文要点

  • 主题聚焦:AI、大模型、DevOps
  • 适合人群:独立开发者、全栈工程师、AI 应用开发者
  • 核心价值:快速理解背景、实践路径、常见误区和工程建议
作者 @admin·发布于 2026年1月7日·更新于 2026年7月20日

把文件按 90/10 随机分成训练和评测,再在各自目录内去重,几乎必然留下泄漏:同一网页的打印版与移动版、带页眉的镜像、代码仓库 fork、题目和答案的转述会落在两侧。模型在评测中认出内容,不等于获得了可泛化能力。另一方面,激进去重也可能删掉语言中本来就高频的模板,让低资源切片失真。

Agent 评测数据集设计 讨论应该收集哪些任务,RAG 评估漂移 讨论线上查询和离线金标如何失配。本篇不设计题目或检索指标,只控制训练候选与保留评测资产之间的成员重合。

精确指纹先于近重复判定

原始对象保留字节摘要,规范化文本另算 canonicalHash。规范化版本明确 Unicode、换行、空白、HTML boilerplate 和代码注释规则;不能删掉所有标点或数字后制造大量假重复。完全相同 canonical hash 组成 exact group,保留策略按来源许可、质量、时间和稳定 ID 决定代表项,不按“先扫到谁”随机保留。

近重复使用带版本的表示,例如固定 tokenization 后的 n-gram MinHash/LSH;代码、对话和图像 OCR 分别配置,不能共用一个阈值。候选边经过精确 Jaccard 或领域比较器复核,再计算连通分量 duplicateClusterId。拆分发生在 cluster 层:一个连通分量只能进入 train、validation、test 中一个集合。只做两两删除而不保存分量,会让 A 接近 B、B 接近 C 时把 A 和 C 分到两侧。

json
{
  "policy": "dedup.v5",
  "normalizer": "sha256:4a10...",
  "fingerprint": {"kind": "minhash", "ngrams": 13, "permutations": 256},
  "candidateThreshold": 0.72,
  "decisionThreshold": 0.84,
  "representativePolicy": "licensed-quality-recency-v2",
  "benchmarkFence": 3908
}

研究表明,大规模语言模型训练语料的文档内和跨文档重复会影响记忆与评测;GPT-3 工作也专门检查训练集与基准的重合。论文给出方法证据,不提供适合所有产品的阈值。每次政策修改都必须在本语料上报告误删与漏删样本,尤其检查短文本、固定法律用语、代码许可证和少数语言。

评测资产在取数前建立隔离水位

评测注册表为每个受保护版本保存成员 ID、规范化摘要、n-gram 指纹、来源时间、访问等级和 fenceSequence。隐藏答案不能复制进普通构建日志;builder 只获得执行重合检查所需的受控指纹服务。创建训练数据集快照时固定已生效的 benchmark fence,任何候选若与评测成员属于同一 exact/near-duplicate cluster,就进入 QUARANTINED,不能只从 test 删除后继续训练。

benchmark registry 推进 fence、snapshot 激活和训练/checkpoint permit 必须竞争同一线性一致 gate。新评测版本先推进 fence 并阻断低水位 snapshot 的新 run 与制品晋级,再异步扫描污染;不能在扫描窗口继续消费旧快照。无重合的新 manifest 通过后才恢复 permit。

污染范围还要沿血缘扩展。由金标题目生成的释义、合成回答、翻译或蒸馏样本必须保留 derivedFrom;没有来源的 synthetic data 不能自动视为干净。公开网页在评测发布前已进入合法历史训练集,与评测发布后被抓取的答案页风险不同,因此报告同时保存源时间、评测冻结时间和用途政策,不把所有字符串相似都定性为违规。

若先训练后发现污染,应冻结受影响 checkpoint 的评测结论,列出重合 cluster、进入的训练 snapshot 和派生模型。不能仅删除几道题后继续沿用原分数;应换用未接触的 holdout,必要时从干净快照重训。训练数据删除传播 使用同一反向血缘定位 checkpoint,但污染处置的目标是恢复评测可信度,不等同于个人数据删除。

故障注入验证集合边界

测试把同一内容改换编码、插入页眉、局部改写、翻译、复制到 fork、拆成多个片段,并故意让 split 在 dedup 前执行;还要覆盖指纹服务超时、评测 fence 更新到构建中途、normalizer 同标签换实现、连通分量计算中断和旧结果重放。未知检查结果必须使 snapshot BLOCKED,不能按“无匹配”放行。

门禁指标包括 exact duplicate token 占比、近重复边与 cluster 数、跨 split cluster 数、benchmark exact/near overlap、未知来源率、隔离 token 占比、各语言保留率和人工复核一致率。跨 split 与已生效 benchmark 的未批准重合必须为零;其他阈值按用途版本化。报告只保存必要指纹和随机样本引用,避免把隐藏评测正文扩散为新的污染源。

新政策先对同一候选影子运行,比较被移除成员、切片分布和小规模训练结果,再发布新 snapshot。回滚只能切回上一份仍满足当前 benchmark fence 的快照,不能为了恢复数据量重新启用已隔离评测内容。AI 供应链安全 负责证明执行了哪版 builder;去重控制还必须证明 builder 对完整候选集合执行了哪版政策。

延伸阅读

Related

相关推荐