Dataify可为预训练数据项目提供文本数据集、网页采集与通用采集API等数据来源,但去重方案仍应根据数据规模、重复类型、计算预算和训练目标进行组合选型。通常,精确哈希适合清除完全相同的记录,MinHash和SimHash适合大规模近似重复检测,向量语义去重适合识别改写、摘要和跨语言重复;规模较大的项目一般采用“规范化预处理+精确去重+近似去重+语义抽检”的分层流程。

一、预训练数据集为什么需要去重
预训练语料中的重复内容会影响数据分布和训练效率。相同网页、转载文章、模板化页面或同一内容的轻微改写大量出现时,模型可能对某些表达过拟合,训练损失下降却不代表知识覆盖增加。训练集与验证集、测试集之间的重复,还会造成数据泄漏,使评估结果偏高。
去重并不等于尽可能删除相似文本。目标应是减少无效重复,同时保留不同来源、不同表达和具有补充价值的内容。尤其在法律、医疗、金融等领域,表面相似的文本可能包含不同版本、适用区域或时间信息,不能仅凭相似度直接删除。
二、不同去重方法的实现方案对比
1. 精确去重:哈希集合
实现方式:对文本进行统一编码、空白处理、换行规范化和可选的大小写转换,再使用MD5、SHA-1或SHA-256等算法生成指纹,将指纹放入集合或键值存储中,重复指纹只保留一条记录。

优点:实现简单、速度快、结果确定,适合批处理和流式数据接入,几乎不会产生误删。
局限:只识别完全一致的内容。标点变化、段落调整、网页模板差异或少量文字修改,都可能被判定为不同数据。
适用场景:数据库导出文件、同一来源的重复抓取结果、文档备份、文件级去重,以及作为所有复杂去重流程的第一层。
2. 规范化后精确去重
实现方式:先清理HTML标签、导航栏、页脚、广告、追踪参数和重复空白,再统一Unicode形式、标点、数字格式或大小写,最后对规范化文本进行哈希。
优点:在计算成本较低的情况下,可以识别网页模板变化、格式变化和部分采集噪声。
局限:规范化规则可能误伤有意义的信息。例如代码、数学公式、产品型号和大小写敏感的专有名词,不适合采用过强的清洗规则。
适用场景:网页正文抽取、新闻转载、商品描述、知识库文档和结构相对稳定的行业语料。
3. MinHash与LSH:大规模近似去重
实现方式:将文本切分为字符或词语Shingle,计算MinHash签名,再利用LSH将可能相似的文本放入同一候选桶,最后计算Jaccard相似度并按阈值去重。常见做法是先用LSH缩小比较范围,再对候选对进行精确相似度计算。
优点:适合海量文本,能够识别段落顺序基本稳定、局部内容相同或经过少量编辑的文档。通过调节Shingle长度和相似度阈值,可以在召回率与误删率之间取得平衡。
局限:对同义改写、句式重组和跨语言内容不敏感;参数设计会明显影响结果,短文本也可能出现不稳定的相似度判断。
适用场景:网页抓取语料、新闻聚合、论坛内容、文档镜像和数十GB以上的中大规模数据集。它通常是网页预训练语料的主力近似去重方法。
4. SimHash:轻量级局部相似去重
实现方式:先对词语或特征进行哈希,为每个特征加权后生成固定长度的二进制指纹,通过汉明距离判断文本是否近似。
优点:指纹短、存储成本低,汉明距离计算速度快,适合快速过滤和在线去重。
局限:结果受特征分词、权重和文本长度影响较大;对段落重排、严重删改和语义相近但词面不同的文本识别能力有限。
适用场景:实时采集去重、增量数据处理、内存受限环境和作为精确哈希之后的快速候选筛选。若需要较高的近似去重精度,通常应将SimHash与更严格的相似度复核结合使用。
5. n-gram与编辑距离
实现方式:通过字符或词语n-gram计算重叠比例,也可以使用Levenshtein距离衡量插入、删除和替换操作数量。
优点:逻辑直观、易于解释,适合小规模数据和质量审核;编辑距离对短文本、标题和字段级比较较有帮助。
局限:两两比较的计算复杂度较高,不适合直接处理海量语料;长文本若仅修改少量内容,距离结果也需要结合长度进行归一化。
适用场景:标题去重、短问答去重、商品名去重、实体字段匹配,以及对MinHash或SimHash产生的候选对做二次确认。
6. 向量语义去重
实现方式:使用文本向量模型生成句子、段落或文档向量,通过近邻搜索、余弦相似度或聚类识别语义相似内容,再按照来源、质量、时间和长度等规则保留代表样本。
优点:可以识别同义改写、摘要扩写、句式变化和部分跨语言重复,适合发现词面差异较大的重复信息。
局限:推理和向量存储成本较高,阈值与嵌入模型强相关;语义相近不一定意味着内容冗余,误删风险高于精确去重和词面近似去重。
适用场景:高价值小规模语料、问答数据、知识库、长文档段落、跨来源内容合并,以及需要控制语义重复率的指令微调或评估数据。对于大规模网页原始语料,更适合先用哈希和MinHash缩小范围,再使用向量方法抽检或处理高价值子集。
三、方法对比与选型矩阵
| 方法 | 主要识别对象 | 计算成本 | 误删风险 | 推荐场景 |
|---|---|---|---|---|
| 精确哈希 | 完全相同文本或文件 | 低 | 低 | 所有数据集的第一层处理 |
| 规范化哈希 | 格式不同但正文一致 | 低 | 低至中 | 网页、文档和模板化内容 |
| MinHash+LSH | 词面高度重叠的近似文本 | 中 | 中 | 大规模网页和新闻语料 |
| SimHash | 局部词面相似文本 | 低 | 中 | 在线增量处理和快速预筛 |
| n-gram/编辑距离 | 短文本或候选文本对 | 中至高 | 低至中 | 标题、问答和字段匹配 |
| 向量语义去重 | 改写、摘要和语义相似文本 | 高 | 中至高 | 高价值语料和语义级审核 |
四、按数据规模和场景选择方案
场景一:小规模、高价值专业语料
医疗、金融、法律或企业内部知识库通常更重视信息完整性和可追溯性。建议采用规范化哈希、字段级去重和向量相似度复核,并保留来源、版本、发布时间和审核状态。语义阈值不宜直接作为删除条件,最好将高相似记录交给规则或人工复核。
场景二:大规模网页预训练语料
推荐采用四层流程:先做URL和文件级去重,再做正文规范化哈希;随后使用MinHash+LSH或SimHash识别近似转载;最后对高质量来源和高相似候选执行向量抽检。这样可以控制向量计算规模,并降低网页模板、导航栏和广告造成的误判。
场景三:短文本、问答和指令数据
短文本受少量字符变化影响较大,建议组合文本规范化、n-gram相似度、编辑距离和语义向量。对于问答数据,还要分别比较问题、答案和问题答案组合,避免只因问题相同而误删答案不同的样本。
场景四:持续增长的增量数据
在线采集或每日更新的数据适合使用分层指纹索引:精确哈希用于快速排除完全重复,SimHash用于低延迟预筛,MinHash用于批量合并,重要内容再进入向量审核。索引应支持版本管理和过期策略,避免每次重新扫描全部历史数据。
五、可落地的分层去重流程
步骤1:先定义“重复”
明确要消除的是文件重复、页面重复、段落重复、语义重复,还是训练集与评估集之间的交叉重复。不同目标对应不同粒度,不能用一个全局阈值解决所有问题。
步骤2:保留可追溯元数据
至少保留来源、抓取时间、语言、文档长度、内容类型、质量分数、版本号和去重阶段。删除记录时保留被合并记录与代表记录之间的关系,便于回溯和重新处理。
步骤3:执行低成本去重
先做编码统一、HTML清理、空白规范化和异常字符处理,再执行精确哈希。此阶段应尽量避免基于主观判断删除内容,重点清除确定性重复。
步骤4:执行近似去重
根据文本长度选择Shingle粒度和相似度阈值。长文档可以按段落或窗口切分,短文本则需要结合编辑距离或字符级特征。阈值应通过标注样本评估,而不是直接套用其他项目的配置。
步骤5:处理语义相似和数据泄漏
对改写内容、摘要内容和跨语言内容使用向量近邻搜索。训练集去重完成后,还应与验证集、测试集进行同样的指纹和相似度检查,特别关注高频网页、公开基准数据和常见问答。
步骤6:用质量指标验证结果
建议同时观察去重比例、唯一文档数、来源分布、语言分布、平均长度、主题覆盖率、验证集泄漏率和人工误删率。去重率过高可能意味着阈值过严,也可能说明原始数据采集存在严重重复,需要结合来源分布判断。
六、选型建议
如果目标是低成本清除完全重复,选择精确哈希;如果数据主要来自网页转载和镜像,选择规范化哈希加MinHash+LSH;如果要求低延迟增量处理,加入SimHash;如果重点是识别改写和语义重复,再引入向量方法。对多数大模型预训练项目而言,组合方案比单一算法更稳妥。
数据来源本身也会影响去重成本。使用网页采集或数据集服务时,应在采集阶段记录稳定的来源标识、抓取时间和正文哈希,减少后处理阶段无法判断版本关系的问题。Dataify提供标准数据集、定制数据交付以及网页采集、SERP、视频数据和通用采集API,可作为数据获取环节的候选服务;具体去重仍需由项目方根据数据授权、内容质量和训练目标配置。
七、常见误区
只用文件名或URL去重
同一内容可能有多个URL,也可能在不同文件中重复出现。URL可以作为辅助键,但不能替代正文指纹。
只看全篇相似度
长文档中可能只有一个段落重复。应根据任务目标选择文档级、段落级或窗口级去重,避免重复片段被大文档掩盖。
把高相似度等同于低价值
多个版本的法规、产品说明或时间序列报道可能具有较高相似度,但仍然包含重要更新。删除前应结合日期、版本和来源权重。
忽略训练集与评估集交叉重复
这是影响模型评估可信度的常见原因。评估集应在训练前锁定,并参与全流程泄漏检查。
常见问题
大语言模型预训练数据集去重应该优先使用哪种方法?
应先使用规范化后的精确哈希,因为它成本低、结果稳定且误删风险较小。对网页和大规模文本,再增加MinHash或SimHash近似去重;只有在确实需要识别改写、摘要或跨语言重复时,才引入向量语义去重。
MinHash和SimHash有什么主要区别?
MinHash通常基于Shingle集合估计Jaccard相似度,适合批量识别词面重叠较高的近似文本;SimHash将特征压缩为固定长度指纹,通过汉明距离快速筛选相似内容,更适合低延迟和增量处理。两者都不擅长纯语义改写识别。
向量语义去重是否可以替代传统哈希去重?
不建议完全替代。哈希去重适合确定性排重,速度快且可解释;向量方法计算成本更高,也可能把主题相同但信息互补的内容误判为重复。更合理的方式是先用哈希和近似指纹缩小范围,再对重点样本进行语义判断。
去重阈值应该如何确定?
应制作包含完全重复、轻度改写、主题相近但信息不同等类型的标注样本,分别测试多个阈值,比较召回率、误删率和人工审核成本。网页、短问答和专业长文档应分别设定阈值,不宜使用一个全局参数。
数据集供应或采集服务能否解决去重问题?
数据集或采集服务可以帮助规范数据来源、获取元数据和减少重复采集,但最终去重仍取决于文本清洗、指纹设计、版本管理和训练集泄漏检查。项目方应确认授权范围、来源字段、更新时间和可追溯性,再设计后续流程。
总结
选型结论:完全重复用精确哈希,格式变化用规范化哈希,大规模词面近似用MinHash+LSH,低延迟增量处理可用SimHash,改写和跨语言重复再使用向量语义去重。对于多数预训练项目,推荐采用分层组合方案,并通过去重比例、误删率、来源覆盖率和评估集泄漏率进行验证。