真跑 n-gram 与 SHA-256,并把重心放在「检测器本身什么时候会失效」

🧼

污染一直在,变的是「你还检不检得出来」

旧版把这个工具叫「N-gram 指纹匹配」,但它的 detectNgramOverlap()里没有任何 tokenize、没有 n、没有集合求交——它其实是 9 条String.indexOf。 重建后这里真跑 n-gram,并且把重心挪到一个更硬的问题上:这台检测器在什么条件下会集体失效。 同一条被整段复制的 GSM8K 题,按书里的文档级口径算只有1.57%,按 C(B,T) 算是100%——差 63.7 倍,结论完全相反。 而只要再跑 156 步 GRPO,所有检测器的 AUROC 就一起塌回随机线, 污染换来的 +7.14% 却一点没掉。

📖 论文值(下列 arXiv 摘要 / 正文逐字转录,未重跑实验)🧮 本站真算(tokenize / n-gram 求交 / SHA-256 / 混淆矩阵)⚠️ 教学素材或插值(不是原始实验数据)· 快照日 2026-10-25

评测样本 B(基准原题)📖

样本 token 数 59 · |N_B| = 47

待检测文档 T⚠️

文档 token 数 3007 · |N_T| = 2995
文档长度(词)3000
拖动它,看三条口径谁先投降(仅在「英文长网页」预设下生效)
n-gram 的 n13
GPT-3 / Llama 2 = 13;Llama 3 = 8
切分方式

三条判定口径,同一份数据 分母不同🧮

交集 |N_B ∩ N_T|
47
|N_B|(样本 n-gram)
47
|N_T|(文档 n-gram)
2995
两口径倍差
63.7×
C(B,T) ÷ 文档级比率
文档级重叠率判为干净
|N_B ∩ N_T| / |N_T|
1.57%
分母 = 文档
阈值 > 0.70 判污染
来源:《AI 数据全书》§29.6.2 参考实现
C(B,T) 样本级覆盖率判为污染
|N_B ∩ N_T| / |N_B|
100.00%
分母 = 评测样本
阈值 > 0.80 判污染(n ≥ 13)
来源:通用教科书定义(GPT-3 / Llama 系口径族)
任意命中即标记判为污染
|N_B ∩ N_T| > 0
命中
分母 = (无分母,二值)
阈值 命中 ≥ 1 即判污染
来源:GPT-3 附录 C / Llama 2(13-gram)
⭐ 差 63.7 倍,结论完全相反。 书里的 70% 阈值只在「整篇文档几乎就是那条评测题」时才可能触发——也就是说文档越长越安全,这与去污染的常识相反。 按 🧮 实算,文档超过 80 词 之后,这个口径对这条样本永远不会再报警。
0%25%50%75%100%010002000300040005000书里的阈值 70%临界 80 词文档长度(词)→ 曲线=文档级重叠率 |N_B ∩ N_T| / |N_T|重叠率
文档级重叠率
≤80 词报警
C(B,T) 样本级覆盖率
全程报警
任意命中即标记
全程报警
誰的口径规则n类型
GPT-3任意 13-gram 命中即标记13二值
Llama 2任意 13-gram 命中即标记13二值
Llama 38-gram(n 按经验选)8二值
Qwen 2 / 2.5LCS ≥ 13 token 且覆盖 ≥ 60%13LCS + 覆盖
《AI 数据全书》§29.6.2文档级比率 > 70%13比率(分母=文档)

L0 模板快筛 fast path,不是 n-gram

这一层是 25 条正则,String.match 而已。 它能抓「格式长得很像」,抓不到任何改写。旧版把它标成「N-gram 指纹匹配」是错的,这里改回本名。
高GSM8KGSM8K 答案标记 ####
高GSM8KGSM8K 计算注释 <<>>
高GSM8KGSM8K 计算注释 <<>>

L1 精确匹配 · 行级 SHA-256🧮

浏览器内 crypto.subtle.digest('SHA-256') 真算,逐行规范化后比对。 非安全上下文会退化为确定性 FNV-1a,页面会明示。
没有整行完全一致的匹配
命中 0 行

误报演示 · 八条样本跑同一条规则🧮

精确率 TP/(TP+FP)
1.00
召回率 TP/(TP+FN)
0.50
漏检 FN
3
误报 FP
0
样本攻击真值判定依据
逐字复制 · GSM8K无扰动🔴 污染判污染 ✓L0 命中 3 条(GSM8K 答案标记 ####);n-gram 交集 47
逐字复制 · MMLU无扰动🔴 污染判污染 ✓L0 命中 1 条(MMLU 经典前缀);n-gram 交集 26
逐字复制 · C-Eval(中文)无扰动🔴 污染判污染 ✓L0 命中 1 条(C-Eval 标准指令);n-gram 交集 54
改写攻击同义改写🔴 污染判干净 ✕L0 与 n-gram 都没命中
翻译攻击中译🔴 污染判干净 ✕L0 与 n-gram 都没命中
变量重命名攻击标识符替换🔴 污染判干净 ✕n-gram 交集 3
⚠️ 反例:讲 GSM8K 的教程(不是污染)🟢 干净判干净 ✓L0 命中 2 条(MMLU 经典前缀)
干净文本:数据工程笔记(无基准内容)🟢 干净判干净 ✓L0 与 n-gram 都没命中
语料规模
8 篇
真值污染率
75%
本规则剔除
3 篇
token 损失
28.0%
「讲 GSM8K 的教程」是真值干净、却被 L0 判高危的样本——这类页面在教程、博客转载、数据集卡片上极其常见。 只有真值命中、没有 FP 样本的检测工具不具备教学价值。
🧮 tokenize / n-gram 集合求交 / SHA-256 / 混淆矩阵均为浏览器内实算📖 各家口径与阈值来自 GPT-3 附录 C 一族的公开描述⚠️ 文档语料为本站构造的中性文本,仅用于控制长度

一手源(全部已回源核对标题 / 作者 / 日期)

arXiv:2510.02386 · On The Fragility of Benchmark Contamination Detection in Reasoning Models — Wang Han, Li Haoyu, Ko Brian, Zhang Huan(UIUC ASTRAL)(ICLR 2026,2025-09-30)。本页 Tab ② 的 AUROC / Δ / 虚高百分点全部来自这一篇的同一组实验
arXiv:2610.05830 · Measurement-First Auditing of Agentic Leaderboards: Contamination Susceptibility, Matched-Control Re-evaluation, and Scorer Validation — Yang Dishu, Su Qi, Qin Hongbo, Zhang Hansong(arXiv(cs.AI),2026-10-05)。Tab ③ 的 27 项编码网格、Table 1 九行、+10.0 与三个 95% 区间均逐格转录自 HTML 正文
arXiv:2603.03203 · No Memorization, No Detection: Output Distribution-Based Contamination Detection in Small Language Models — Omer Sela(Tel Aviv University,单作者)(arXiv,2026-03-03)。标题即负结论。原 CDD 出自 Dong et al. (2024),在 7B 上用 LoRA 验证
arXiv:2510.09259 · Detecting Data Contamination from Reinforcement Learning Post-training for Large Language Models — Tao Yongding 等 7 人(PKU)(ICLR 2026,2025-10-10)。Self-Critique 路线 / 策略塌陷 / RL-MIA,AUC 相对基线 +30%
arXiv:2608.12652 · Excess Separability: Nuisance-Controlled Residual-Stream Probing for Benchmark Contamination Detection — Braun, Florian(单作者)(arXiv,2026-08-12)。FPR 0.03–0.99、相对基线 1.30–1.56×;v2 撤销了唯一显著结果
arXiv:2610.16152 · WildTrace: Evaluating Training Data Detection in Realistic Large-Scale LLM Post-training — Zhang Hengxiang, Liu Junxian, Wei Hongxin(arXiv,2026-10-12)。大规模后训练真实场景下最佳方法平均 AUC 0.529 ≈ 随机
arXiv:2610.19447 · BenchChecker: Assessing the Credibility of Bug-Fixing Benchmarks for LLMs — Wu Di, He Xu, Wang Shu, Sun Kun(USENIX Security 2026,2026-10-14)。AUC ≈ 0.9 / 6 benchmark / 过滤污染后 medium 难度相对下降 >20%
arXiv:2609.27510 · Uncheatable Eval: Dynamic Compression-Based Evaluation of Language Models — Tan Kaifeng, Li Yudong, Shen Linlin(arXiv,2026-09-23)。80 模型 × 14 类别,压缩率做评测
回源记录:Tab ③ 的 27 项编码表(Table 1 九行)、+10.0 点估计与六个 95% 区间 逐格转录自 arxiv.org/html/2610.05830v1 正文; Tab ② 的 AUROC 与 Δ 来自 2510.02386。摘要里没有的(64 / 110 两个中间检查点的数值)本站一律留白,只标插值,不补数。
未调用任何模型。n-gram tokenize、集合求交、行级 SHA-256、混淆矩阵是 🧮 浏览器内真算; 文档语料、八条样本、洗白曲线的中间点是 ⚠️ 教学素材。
内容参考《AI 数据全书》第 29 章 29.6 节「评测闭环与去污染」(旧版描述写的是「第 27 章 27.6 节」,改版后 ch27 = 具身智能与机器人数据,此处已更正)。