What is 数据去重?
识别和删除数据集中重复或近似重复条目的过程,以防止记忆化伪影并提高训练效率。
Definition
数据去重是检测和删除训练数据集中完全相同或高度相似条目的过程。在LLM微调中,重复可能出现在多个层面:精确重复(相同的指令-回复对多次出现)、近似重复(仅在空格、标点或细微措辞上不同的对)和语义重复(用本质不同的词汇传达相同信息的对)。每种类型需要不同的检测方法,对训练有不同的影响。
精确去重很简单——对每个样本进行哈希并删除哈希匹配的条目。近似重复检测通常使用MinHash配合局部敏感哈希(LSH),能够高效近似地计算文本段落之间的Jaccard相似度。语义去重使用嵌入相似度来发现概念上相同但措辞截然不同的条目,不过这需要更仔细的阈值调校以避免删除有效的变体。
研究一致表明,重复数据会损害模型质量。在包含大量重复的数据集上训练的模型倾向于逐字记忆重复的样本而非学习可泛化的模式。它们还会形成偏向的 概率分布,过度表示重复的内容。Chinchilla论文及后续的数据质量研究表明,去重是预训练中影响最大的数据处理步骤之一,同样的原则也适用于微调数据集。
Why It Matters
训练数据中的重复会产生两个不同的问题。首先,它们导致记忆化:模型学会精确复制重复的样本而非学习底层模式,降低了对新输入的泛化能力。其次,它们造成分布偏差:如果某些主题、风格或回复模式由于重复而被过度表示,模型会在输出中过分加权这些模式。
具体到微调,重复浪费训练计算。在第一次之后多次处理同一个样本不贡献新信息。去重后的数据集训练更快(达到相同质量所需更少的步骤),通常产生更好的模型,因为训练信号更加多样化。跳过去重的团队经常发现,小30%的去重数据集比完整数据集表现更好。
How It Works
实用的去重管道分阶段工作。首先,精确去重使用内容哈希(归一化文本的MD5或SHA-256)来识别和删除完全相同的条目——这很快,能捕获复制粘贴的重复。其次,近似重复检测使用MinHash/LSH高效找到超过可配置相似度阈值(通常为0.8-0.9的Jaccard相似度)的条目。这能捕获仅在微小格式或措辞上不同的条目。
可选地,第三阶段使用基于嵌入的语义相似度来发现表面形式差异很大但概念上相同的条目。这个阶段需要更仔细的阈值校准,因为阈值设太低会删除有效变体,而设太高则会遗漏语义重复。对于增强数据集,去重顺序也很重要:同一原始样本的增强版本最好作为一组保留或删除,而不是单独处理。
Example Use Case
一个团队从三个内部来源聚合训练数据,发现合并后的15,000个样本中有28%是精确或近似重复(常见样本出现在多个源数据库中)。去重后,数据集缩减到10,800个唯一样本。在去重数据集上微调的模型在评估集上比在完整数据集上训练的模型准确率高3%——更少的数据获得更好的结果,因为模型学到了可泛化的模式而非记忆重复的样本。
Key Takeaways
- 数据去重删除完全相同和近似相同的条目,以防止记忆化和分布偏差。
- 精确、近似和语义去重分别处理不同类型的冗余。
- 重复数据导致记忆化伪影并浪费训练计算。
- MinHash/LSH无需逐对比较即可高效检测大规模近似重复。
- 去重数据集通常因促进泛化而优于更大的重复数据集。
How Ertas Helps
Ertas Data Suite在其Clean阶段内置去重功能,在训练数据流入Ertas Studio进行微调之前,自动检测和删除精确和近似重复的条目。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.