M5-009M5: NLP & Large Language ModelsPretraining Objectives & Data CurationMedium
Mastery:

Pretraining Objectives & Data Curation: 解释数据去重的方法与它为什么重要。

📐 Mathematical Definition
Jaccard(A,B)=∣A∩B∣∣A∪B∣;MinHash:P(hmin⁡(A)=hmin⁡(B))=Jaccard(A,B)\text{Jaccard}(A,B)=\frac{|A\cap B|}{|A\cup B|};\qquad \text{MinHash}: P(h_{\min}(A)=h_{\min}(B))=\text{Jaccard}(A,B)
⚡ Executive Summary
Core Concept: 精确去重(哈希)与近似去重(MinHash/LSH、SimHash);去重防止记忆、减少评测污染、提升训练效率。

📌 Key Takeaways

  • •
    精确:子串/文档哈希(简单但只能查完全相同)
  • •
    近似:MinHash + LSH(估计 Jaccard 相似度,可扩展)
  • •
    去重减少记忆、缓解污染、提升数据效率

📐 Mathematical Derivations

数学机理:<strong>两级去重</strong>。<strong>(1) 精确去重</strong>——用哈希(如 SHA-256)标识文档或子串,完全相同则去除;简单高效,但无法处理'几乎相同'(如同一新闻的多个转载版本、模板微调后的页面)。<strong>(2) 近似去重</strong>——用相似度估计找'近似重复'。主流方法:<strong>(a) MinHash + LSH</strong>——MinHash 的核心性质是:对随机哈希函数 h,P(h_min(A)=h_min(B))=Jaccard(A,B);故用 k 个哈希函数得到 k 维签名,两文档签名相同的比例即为 Jaccard 相似度的估计;再用 <strong>LSH(局部敏感哈希)</strong> 分桶,使相似文档落入同一桶(避免 O(N²) 全比较)。<strong>(b) SimHash</strong>——把文档映射为固定位数的指纹,相似的文档指纹的汉明距离小。<strong>(c) 后缀数组/子串级去重</strong>——在<strong>子串粒度</strong>去重(如找出所有出现超过 k 次的长子串并删除),比文档级更精细(能去掉'文档不同但含大量重复段落'的情况)。<strong>为什么重要</strong>——(a) <strong>减少记忆</strong>:重复数据使模型'背诵'而非泛化(表现为训练 loss 异常低、生成时逐字复现);(b) <strong>缓解评测污染</strong>:若测试集内容出现在训练数据中,评测结果虚高(去重可减轻);(c) <strong>提升数据效率</strong>:重复数据浪费计算(同一内容学多次);(d) <strong>改善训练稳定性</strong>:重复的极端样本可能主导梯度。<strong>去重的粒度选择</strong>——文档级(简单、可能漏掉部分重复)vs 子串级(精细、计算贵);实践中常'文档级 + 子串级'组合。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'重复导致记忆'的机制</strong>——重复数据使模型对同一序列的梯度多次累积,等效于'提高该样本的权重';当重复次数足够多时,模型会'逐字记忆'(研究表明:<strong>重复超过约 4 次后记忆效应显著增强</strong>)。故去重既是效率问题也是泛化问题。② <strong>去重与评测污染的关系</strong>——去重<strong>不能完全</strong>解决污染(测试集可能以'改写形式'出现在训练数据中,难以被去重识别);故还需<strong>专门的污染检测</strong>(如 n-gram 重叠检测、成员推断测试)。③ <strong>去重的副作用</strong>——过度激进的去重会<strong>删除有用的多样性</strong>(如多个版本的同一概念解释);故需权衡'去重强度'与'数据多样性'。④ <strong>工程规模</strong>——对 TB 级语料做 O(N²) 比较不可行;故依赖 LSH 等亚线性方法,且需分布式实现(如 Spark/MapReduce)。⑤ <strong>子串级去重的价值</strong>——网页数据常含大量'模板段落'(版权声明、导航栏),文档级去重无法去除(因为文档整体不同);子串级可精确定位并删除。⑥ <strong>面试要点</strong>——被问'为什么要去重',应给出'<strong>减少记忆 + 缓解污染 + 提升效率 + 稳定训练</strong>'四点,并给出'<strong>精确(哈希)vs 近似(MinHash/LSH、SimHash)+ 文档级 vs 子串级</strong>'的方法分类;能指出'去重不能完全解决污染、需专门检测'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    以为去重只影响效率(也影响泛化与评测可信度)
  • ✕
    只做文档级去重(漏掉模板段落重复)
🎯 Interviewer Follow-ups
  • ?
    为什么去重能提升训练效率?
  • ?
    去重粒度(文档级 vs 子串级)如何选?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM5-008: Pretraining Objectives & Data Curation: 解释数据质量与配比对预训练的影响。📋Back to BankNext →M5-010: Pretraining Objectives & Data Curation: 解释课程学习与数据排序对训练的作用。