数据工程·去重策略竞技场
《AI 数据全书》· 第 7 章 · 安全过滤、去重与隐私合规C4 用 70% 的数据量反获 MMLU 24.3 → 28.1——去重是免费的午餐,但「怎么去重」是一道分粒度的权衡题
🔴 为什么要有这个开关:#13 的正确处置是「删段落」而不是「删整篇」—— 它与 #12 只共享一段免责声明,正文完全不同;把它计成漏检是本工具真值口径的选择,不是算法缺陷。#15 是同模板不同数据的真实招聘信息,§7.3.4 / §7.14 明写过度去重会误杀多样性, §7.8 更把「模板污染」列为 n-gram 失效场景。旧口径把删掉 #15 判为绿色「✓ 命中」, 同时又在结论卡里写「§7.14 的忠告是分粒度按需调节」——同一页里真值与结论互相打脸。
🧮 「共享字数」= 两篇文本的最长公共子串长度(本页 suffix 去重用的同一个 longestCommonSubstring,浏览器内真算); 「独立正文」= 总字数 − 共享字数。主指标只报文档级 P/R,这两条无论怎么处置都不计入 —— 因为 「删一段」和「删一篇」不是同一个判定单位,混在一起算就是跨量纲计数。
Lee et al.(2022)在 C4 上训练 1.5B 模型:去重让训练 token 少了 30%,MMLU 反而 +3.8、TriviaQA +6.2。 重复的边际价值是负的。 §7.3.2 补充:Common Crawl 一个快照中约 20–30% 文档是完全相同副本,另有 10–20% 高度近似。
组合拳把漏检压到 0%——精确去重抓完全一致、MinHash/SimHash 抓近似转载、 Suffix Array 抓句级共享段落(#13 只有它抓得到)、SemDeDup 抓语义改写(#9 / #11 只有它抓得到)。 但误杀没有被消除,而是被继承了下来: 误杀全部来自语义去重的 τ 阈值,把 τ 调低只会让误杀更多。§7.14 的忠告是「分粒度按需调节」,而不是一味提高去重率。
URL 归一 / 精确摘要 / MinHash+LSH / SimHash / 最长公共子串 五种算法在浏览器内真实计算,参数改动会实时改变判定结果。 其中「SHA-256」为同步实现的确定性 128-bit 十六进制摘要(demoDigest),不是密码学 SHA-256,仅用于复现精确去重的判定行为。 SemDeDup 需要 embedding 模型推理,本工具不调用任何模型,改用人工标注的语义相似度矩阵(含 4 组「语义相近但不是重复」的误杀陷阱), 其上的贪心聚类算法是真实的。相对耗时倍数为按方法原理推算的示意值。
URL 归一 / 精确摘要 / MinHash+LSH / SimHash / 最长公共子串 五种算法在浏览器内真实计算,改动参数即时重算; SemDeDup 的语义相似度矩阵为人工标注(不调用任何 embedding 模型)。 章节中标注「待验证」的内容(SemHash-LLM,arXiv:2607.01601)未纳入本工具 —— 这一条保留不做。
STRATEGIES[].cost 相对耗时 (1/1.2/8/4/22/80,按方法原理推算)、HEAT 3×3 检出率热力图、SEM_MATRIX 的噪声底噪(0.02–0.45)、四坑残留污染率的累加系数(基线 5% + 各坑增量)。