Soup数据去重实战:MinHash与语义嵌入双引擎,揪出改写型重复样本的完整指南 Soup数据去重实战MinHash与语义嵌入双引擎揪出改写型重复样本的完整指南【免费下载链接】SoupFine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.项目地址: https://gitcode.com/GitHub_Trending/soup12/Soup在 LLM 微调中Soup一个从一份 YAML 开始微调大模型的开源工具内置了soup data dedup数据去重命令用MinHash近似去重 语义嵌入SemDeDup双引擎帮你揪出训练集里的重复样本——尤其是换了个说法、表面完全不同的改写型重复。这篇文章带你从零看懂两种去重原理、它们的实测差异以及新手最容易踩的阈值坑5 分钟跑通一条完整的去重流水线。为什么微调前必须做数据去重重复样本会让模型过度记忆某些表达训练 loss 好看泛化却变差。更隐蔽的是重复不一定是复制粘贴。样本AWrite a function that sorts a list of integers 样本BWrite a function that sorts an array of integersA 和 B 意思完全一样但用词不同——这就是改写型重复rewording。普通的哈希去重对它无能为力这正是 Soup 提供两套去重后端的原因。MinHash 去重快、轻、默认后端soup data dedup默认使用MinHash LSH局部敏感哈希把每条样本拆成连续 3 个词的shingle如sorts a list为每个 shingle 集合生成 128 维 MinHash 签名用 LSH 索引加速相似度查找两行样本的Jaccard 相似度超过阈值默认0.8判定为重复只保留先出现的那条。它的优点是快且零模型依赖——不加载 torch、不下载模型属于 Soup 的轻量核心功能。但它比较的是词面重叠换个词就认不出来了。相关实现MinHash 去重主逻辑src/soup_cli/commands/data.py语义嵌入去重专治改写型重复加上--semantic参数后Soup 改用SemDeDup思路先把每行文本用嵌入模型默认all-MiniLM-L6-v2编码成向量再按余弦相似度做贪心去重——新行与任何已保留行的余弦值 ≥ 阈值默认0.8就丢弃。soup data dedup train.jsonl --semantic -o clean.jsonl soup data dedup train.jsonl --semantic --threshold 0.85 --field text -o clean.jsonl官方文档里有一组很直观的实测对比同批数据、同一嵌入模型样本对余弦值MinHash--semantic完全相同的重复行1.000抓到抓到sorts a list / sorts an array0.908漏掉抓到改写句 sorts a list of ints0.880漏掉抓到Add two numbers / Multiply two numbers0.759保留正确保留正确可以看到改写型重复的余弦普遍在 0.88 上下MinHash 一律漏检而语义去重能稳定抓住同时不会误伤真正不同的样本。语义去重的核心算法贪心余弦、可审计的pairs报告在 src/soup_cli/utils/semdedup.py官方说明见 docs/data.md。阈值怎么调3 个新手必知要点两个后端的--threshold不通用。MinHash 分支的阈值是 Jaccard 相似度--semantic分支是余弦相似度两套标尺一个数值在 A 后端调好搬到 B 后端毫无意义。语义去重不是改写检测器。实测中真改写的余弦0.49–0.76与必须保留的不同样本0.54–0.76区间重叠——把阈值降到 0.7 去追改写召回率删掉的是真实训练行这种静默数据损失比留一条重复更糟。所以默认 0.8 是刻意保守的只建议在自有数据上验证后微调并且检查被删的样本。语义去重单次上限 5 万行。它是 O(n²) 的贪心匹配超过上限会直接报错而不是偷偷抽样此时先用soup data sample采样再按 tests/test_issue349_measured_fit.py 这类测试的思路在自己的机器上验证性能。快速上手3 步跑通去重流水线# 第 1 步安装依赖二选一 pip install soup-cli[data] # 只跑 MinHash 去重 pip install soup-cli[train] # 需要 --semantic 语义去重 # 第 2 步MinHash 去重轻量快速默认 soup data dedup ./data/train.jsonl --threshold 0.8 # 第 3 步语义去重改写型重复一网打尽 soup data dedup ./data/train.jsonl --semantic -o clean.jsonl不指定-o时输出文件默认为输入文件名_deduped.jsonl且必须位于当前工作目录之下。--field text可以指定只用某个字段参与比较不指定则拼接行内所有文本字段。去重不止一条命令Soup 里的其他防线去重能力还散落在其他命令里构成完整的数据质量防线生成时去重soup data generate --prompt ... --count 200 --dedup-with existing.jsonl合成数据前先和已有数据集比对避免新数据与旧数据重复偏好数据体检soup data lint的near_duplicates检查直接复用了soup data dedup的 MinHash 内核能揪出 DPO 偏好对里的近似重复见 docs/data.md构建期精确去重soup build内建 5 个变换其中dedup_exact负责逐字去重且支持 SQLite 追踪的增量重变换。更多命令速查见 docs/commands.md 与 docs/data.md。总结维度MinHash默认--semantic语义去重比较对象词面 shingleJaccard嵌入向量余弦改写型重复❌ 漏检✅ 能抓住依赖soup-cli[data]soup-cli[train] 小嵌入模型速度快LSH 加速O(n²)上限 5 万行阈值含义Jaccard 相似度余弦相似度一句话选型先用默认 MinHash 扫一遍精确近似重复再用--semantic补刀改写型重复阈值保持默认 0.8想动它之前先看看它准备删掉什么。去重做对了你的微调数据才算真正干净。【免费下载链接】SoupFine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.项目地址: https://gitcode.com/GitHub_Trending/soup12/Soup创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

Python股票系统源码实战:从解压检查到回测验证的完整指南

Python股票系统源码实战:从解压检查到回测验证的完整指南

简介:这是一套基于Python开发的股票交易系统完整源码,面向计算机与金融交叉方向的学生及初学者,适用于毕业设计、课程实践或量化交易入门学习,帮助掌握数据获取、策略回测、风险控制与GUI开发等核心能力。压缩包共143个文件&#…

2026/8/31 13:45:13
B站2019秋招技术岗笔试题拆解:四大方向考点与备考策略

B站2019秋招技术岗笔试题拆解:四大方向考点与备考策略

春招秋招的朋友应该都有体会,B站这套2019秋招技术岗笔试题,前端、运维、后端、移动端四个方向混在一套题里,覆盖面广,基础题多,考题本身不算特别偏门,但想拿高分却很考验平时的积累深度。我拿到这套题之后仔…

2026/8/31 13:45:13
Zen Browser Mods完整指南:5分钟装好第一个扩展,附配置与排错清单

Zen Browser Mods完整指南:5分钟装好第一个扩展,附配置与排错清单

Zen Browser Mods完整指南:5分钟装好第一个扩展,附配置与排错清单 【免费下载链接】desktop Welcome to a calmer internet 项目地址: https://gitcode.com/GitHub_Trending/desktop70/desktop 你开了15个标签页却找不到正在查的那篇文档&#xf…

2026/8/31 13:45:13
在线培训考试系统源码部署与二次开发实战指南

在线培训考试系统源码部署与二次开发实战指南

简介:本资源为面向事业单位特别是公关单位的在线培训考试系统完整源码包,旨在解决员工常态化技能提升与岗位能力考核的数字化需求,适用于公关策略、危机应对、沟通技巧等专题培训场景,兼顾初学者理解系统架构与开发者二次开发需要…

2026/8/31 13:45:13
HyperMesh建模全流程指南:从几何清理到网格质量检查

HyperMesh建模全流程指南:从几何清理到网格质量检查

作为仿真工程师,几乎绕不开 HyperMesh。无论是做白车身刚度分析、零部件强度校核,还是电池包振动仿真,几何清理、网格划分、质量检查、材料属性赋予这些前处理工作,往往占掉整个项目 50% 以上的时间。刚开始接触 HyperMesh 时&…

2026/8/31 13:45:13
快手2020秋招工程B卷复盘:校招笔试考点与备战思路

快手2020秋招工程B卷复盘:校招笔试考点与备战思路

工程岗笔试这事儿,我一直觉得它不像面试,面经漫天飞,笔试经验往往藏着掖着。尤其在秋招这种节点,笔试作为第一道筛子,筛掉的从来不是“不够聪明的人”,而是“没搞清楚游戏规则的人”。今天想跟你聊聊快手20…

2026/8/31 13:40:12