← 返回题目列表

微调数据为什么要去重?

中等 第 17 / 26 题 更新于 2026/09/17

简化版

重复样本会被训练多次,相当于给某些事实、模板和风格更高权重,容易造成背诵、回答模式单一和长尾覆盖下降。训练集与验证集近重复还会让指标虚高,掩盖真实泛化能力。

去重应分层进行:规范化后用哈希去精确重复;用 MinHash/SimHash 发现大段重叠;用 Embedding 或模板聚类发现语义近重复。删除时要保留来源质量更高的代表样本,并保护合法高频意图和低资源语言。

去重不是把相似内容全部删除,而是校正无意的采样权重,并阻断跨集合的信息泄漏。

详细版

假设一个模板被复制 1000 次,其他任务各出现 10 次。在逐样本均匀采样中,该模板的梯度贡献可能是普通任务的 100 倍,即使团队从未显式设置权重。

Jaccard 相似度可比较两个 shingles 集合:

J(A,B) = |A∩B| / |A∪B|

MinHash 用较小签名近似 Jaccard,再用 LSH 找候选对,适合大规模文本重叠检测。

方法擅长发现优点局限
内容哈希字节/规范化后完全相同快、精确抓不到改写
MinHash + LSH大段词片重叠可扩展对语义改写弱
SimHash局部文本相似索引简单阈值依赖语料
Embedding 聚类语义近重复能抓同义改写成本高、会误合并
模板抽取槽位替换数据可解释需要领域规则

完整版教学

1. 重复数据如何改变训练目标

经验风险对每条样本求平均,重复样本会多次进入总和,等价于更高权重。模型更倾向复现其答案结构和事实。

有意过采样是可控策略,无意重复则缺少记录和评估,二者必须区分。

2. 精确重复有哪些来源

多次抓取、数据管道重跑、供应商重叠、格式转换和合并版本都可能产生完全重复。先统一换行、空格、Unicode 和无意义元数据,再计算内容哈希。

原始哈希与规范化哈希都可保留,帮助区分字节重复和内容重复。

3. 为什么近重复更难发现

添加前缀、替换实体、调整顺序或轻微改写后,哈希完全不同,但训练信息几乎相同。SFT 合成数据常用固定模板批量替换名词,尤其容易出现。

近重复会降低有效样本量,使验证集看似大,实质只覆盖少数模式。

4. MinHash 如何近似集合相似度

将文本切成 n-gram shingles,多个随机哈希取最小值组成签名。两条文本签名相等比例近似 Jaccard。

LSH 把签名分 Band,只比较落入同桶的候选,避免全量 O(N²) 两两比较。

signature(doc) = [min(h1(shingles)), ..., min(hk(shingles))]
estimated_Jaccard ≈ equal_signature_positions / k

5. n-gram 与阈值如何选择

较短 n-gram 对局部变化敏感但误报多,较长则可能漏掉改写。短问答与长文档不能使用完全相同参数。

阈值必须用人工标注候选对校准;直接复制其他语料的 0.8 阈值,可能删掉大量合法相似问题。

可按长度、语言和来源分别设置策略。

6. Embedding 去重为何有用也危险

向量能发现“如何重置密码”和“忘记密码怎么办”这类语义相似,但也可能把问题相似、答案边界不同的样本合并。

例如不同地区退款政策的问法几乎相同,删除其中一个会丢失关键条件。Embedding 适合召回候选,最终由规则或人工确认。

7. 对话数据应该按什么单位去重

可在消息级、轮次级和完整会话级检查。只比较用户问题会误删上下文不同的回答;只比较整会话又会漏掉重复回答模板。

单位发现问题注意点
单消息固定 Prompt/答案重复缺少上下文
轮次对相同问答模板多轮状态可能不同
整会话全流程复制长度使相似度稀释

通常多层同时运行。

8. 去重与验证集切分顺序

先在全数据上聚类去重,再以重复簇或模板簇为 Group 切分。这样同簇不会跨 Train/Validation。

切分后再做跨集合审计,查看最大相似样本对。只在分区内部去重无法阻止泄漏。

9. 一个重复簇保留哪条

优先保留来源可信、答案正确、格式完整、许可清楚、元数据丰富和时间更新的样本。不要随机保留把高质量样本删掉。

若多条包含互补上下文,可合并或保留不同条件,并记录选择原因和 Cluster ID。

10. 合法高频意图为什么不能全删

“重置密码”等高频意图在真实流量中确实重要。去重后可通过显式采样权重恢复真实频率,而不是保留成千上万内容相同的副本。

显式权重可审计、可调节,也不污染有效样本量统计。

11. 如何防止对低资源数据误伤

小语种或少数领域样本少且表达相似,统一阈值可能删除过多。按语言和领域报告去重率,设置最小覆盖并人工检查高删除率簇。

还要防止文本编码器对某些语言表示较差,导致 Embedding 相似度失真。

12. 如何评估去重效果

报告精确重复率、近重复簇大小、每来源删除率、跨集合泄漏率和下游训练消融。人工抽检“被合并”和“未合并高相似”两类候选。

训练固定 Token 预算的原始/去重模型,比较目标、长尾、记忆和通用能力,验证去重带来的实际收益。

13. 可追溯性如何保留

不要物理丢失所有副本信息。维护原始样本到 Canonical ID 的映射、相似度、规则版本和保留原因。

这样可以审计供应商重叠、恢复误删样本,并在许可证变化时定位全部来源。

14. 常见误区与追问

  • 误区:重复只浪费训练时间,不影响模型。 它还会隐式加权、过拟合和制造验证泄漏。
  • 误区:MD5/SHA 去重已经足够。 改写、模板替换和大段重叠需要近重复方法。
  • 误区:语义相似就应只留一条。 相似问题可能因地区、时间和条件有不同正确答案。
  • 误区:去重后高频业务会学不会。 可用显式采样权重表达频率,而不是保留无意副本。
  • 误区:先随机切分再去重没有问题。 跨集合重复仍会泄漏,应先全局聚类。
  • 追问:亿级数据如何避免 O(N²)? 用 MinHash/SimHash、LSH 或向量 ANN 先召回候选。
  • 追问:怎样选择保留样本? 按来源、正确性、格式、许可、时效和元数据质量排序。

15. 加强记忆

  1. 重复等于隐式权重。
  2. 三层检测:哈希抓精确,MinHash 抓重叠,Embedding 抓语义。
  3. 先全局聚类再切分,最后跨集合泄漏审计。
  4. 保留最优代表,维护 Canonical ID 和来源映射。
  5. 频率显式化:真实高频用采样权重,不用无意副本表达。