数据去重、去污染与质量标准
2026-10-31 · 依据 main@de0eae4 源码与 HANDOFF.MD 记录 · 只读核实,未重跑
12SWE-bench Verified 保护家族
596family_duplicate 拒收
0 / 355仅因家族重复被拒中,文件与已准入完全不重叠
1,735 → 989A/C 合并后训练视图
1 · 总流程
2 · SWE 同仓库候选判定(family_recovery.classify)
3 · cap-one 拒收的回收漏斗
4 · 合成题对 LiveCodeBench 的去污染(analysis/synthesis/review.py)
阈值 0.45 未校准,只用于暂停,不证明独立;LCB 旧 L 池因来自累计 release_v6 已整池退役。
5 · 监督位置去重(A/C 合并)
6 · 对照通用三阶段方案
| 阶段 | 通用做法 | 本项目 | 缺口 |
| 精确 | SHA-256 全文 | sha256(去空白前 800 字符)、patch digest、样本/来源/监督区间唯一 | 只在同仓库内比;800 字符前缀相同即碰撞 |
| 词汇模糊 | 字符 n-gram + MinHash-LSH | SWE 比文件集合 Jaccard;合成题词 5-gram 精确 Jaccard | 无跨仓库题面比对;0.8 / 0.45 未校准 |
| 向量 | embedding 余弦 | LLM 教师逐对判定 | 无 embedding 层;教师判定无负对照 |
| 去污染 | 与 benchmark 逐题比对 | 保护家族整仓隔离,4 个检查点 fail-closed | fork / 改名仓库不在精确家族名覆盖内 |
| — | — | 监督位置级去重(轨迹数据特有) | |
7 · 高质量数据的量化标准
高质量 = 学生会进入的状态 × 该状态下正确的下一步 × 真实执行验证且无泄漏。judge accepted 只证明结果修好,不证明每步可模仿:旧 936 条全部 accepted,抽样 H3 回合 71% 被双标注判不应模仿。
L1–L3 判定“合格”,只有 L4 判定“有效”。目前尚无 L4 对照,任何批次都不能称为已证实的高质量。
| 层 | 指标 | 标准 | 状态 |
| L1 | 去污染 | 与 12 个保护家族交集 0;train / dev / benchmark 家族互斥 | 现有 |
| L1 | 真实正确 | 全新环境独立 judge accepted;基线 F2P 失败、P2P 通过;修复后全部通过 | 现有 |
| L1 | 测试判别力 | F2P ≥2 节点或有公开 probe 补强(旧数据 330/936 仅 1 节点) | 建议 |
| L1 | 无答案泄漏 | HEAD 外对象 / 上游副本读取 0,生成期拒绝重采样;R2/R3 意图回合不监督 | 现有 |
| L1 | 训练合同 | ≤65,536 不截断;仅有效 assistant 新输出 loss=1 | 现有 |
| L1 | 去重 | 监督区间只曝光一次;一 Issue 一条;每家族 ≤3 | 现有 |
| L2 | 复读循环 | 近 5 次调用同一调用 ≥3 次的监督回合占比 0(基座 26/50 题出现) | 建议 |
| L2 | 推理失控 | 单回合思考 <20K 字符且 deflate 压缩比 ≥0.1(基座 98 回合写满上限,占输出 60%) | 建议 |
| L2 | 迟迟不动手 | 首次文件写入 ≤ 第 20 步(基座中位 16 / p90 97;教师 9 / 18) | 建议 |
| L2 | 修好不停 | 最后写入后一次可见验证即停,≤5 步,natural_stop(基座中位 20 步;教师 3 步) | 建议 |
| L2 | 验证 | 最后编辑后至少一次测试/复现,用项目自身入口(旧数据 pytest 96.7%) | 建议 |
| L2 | 失败工具调用 | 无后续恢复的失败调用 loss=0(旧监督 read 95%、edit 74% 失败) | 建议 |
| L2 | 抽样审计 | 双标注“不应模仿”率 <10%,附 95% CI(H1/H2 8%,H3 71%) | 建议 |
| L3 | 学生状态覆盖 | 重复 / 截断后 / 第 100 回合后 / ≥64K 上下文的监督份额从≈0 提升;目标配方 P2 45 / P1 40 / P3 15(按监督 token,待 pilot) | 待验证 |
| L3 | 重复曝光 | 同时报告唯一与累计监督 token,倍数≈1.0×(旧 1,735 视图 / 989 唯一) | 现有 |
| L3 | 工具分布 | 提高原生 read/edit 成功份额(旧 bash 96.1%) | 建议 |
| L4 | 训练收益 | P1 / P1+P2 / P1+P2+P3,同初始化、同 LoRA、同监督 token 预算;独立 dev ≥100 题官方判分 | 未执行 |
8 · 代码位置
| 环节 | 位置 |
| 保护家族清单 | swefactory_self/configs/data/protected_swe_families.json |
| split 加载拒收 | storage/native_release.py:84 |
| manifest 拒收 | training/swe_world/prepare_lora_data.py · export_map / manifest |
| problem_key / Jaccard / 判定 | analysis/swe/family_recovery.py:51 · :64 · classify |
| cap-3 规则 | analysis/swe/cap3_rules.py · family_problems;analysis/swe/family_cap3.py:54 |
| 教师去重 | analysis/swe/family_teacher.py |
| 合成题 5-gram | analysis/synthesis/review.py:114 · finish_overlap |
| 监督区间唯一 / 跨 provider | storage/native_release.py:162 · :174 · :180 |