污染修复「零差距」不等于真修复:逐题概率分层度量让排名翻盘

Zero Gap Is Not Restoration: Stratified Per-Question Probability Evaluation and Step-wise Mitigation of Benchmark Contamination

Ruijie Hou, Yueyang Jiao, Zhao Wang, Yingming Li

cs.CL, cs.AI

2026-08-07

污染抑制度量 G-AP 有缺陷:离散 0/1 加先平均会让过/欠抑制抵消;改用逐题概率分层度量 SA-PPG 后,既有修复被高估约 14 倍,RailCap 最优。

这篇在解决什么

公开 benchmark 的测试题会漏进大模型的预训练语料,模型把它背下来,分数虚高。一批工作做污染抑制:在解码阶段动手脚,压住背诵、还原模型真实水平。问题是,怎么衡量抑制做得好不好。

业界常用 G-AP(整体性能差距):先看抑制前后模型在整份测试集上的平均分,再相减。作者指出 G-AP 有两个硬伤。第一,它用每题对或错的离散 0/1 标记代表那道题的表现,但同一题多次采样答案会不一样,0/1 方差极大,复测实验里,离散度量下两批样本的逐题差距均值到 0.190,换成概率度量只有 0.041。第二,它先在全集上平均、再相减,于是这道题被错误压低、那道题被错误抬高,正负抵消,平均差距为零不代表每道题都被还原。所以现有策略看上去很好,可能是度量把问题藏起来了。

方法

两件事:换一个更难作弊的度量(SA-PPG),再给一个抑制策略(RailCap)。

SA-PPG(逐题概率分层差距)。对每道题采样 m 次(实验里 m=50),用答对的比例估计模型解这道题的概率;对污染模型和干净模型各估一遍,逐题相减得到每题的概率差;最后按干净模型的解题概率把题目分到 50 个等宽桶里,每个桶内取绝对差距的平均,再跨桶平均。分层这一步堵了一个空子:如果某策略只在干净模型高概率(本就该对)的题上做手脚、拉低它们的概率,不分层的话整体平均会被这种集中在高频值上的操纵糊弄过去。

RailCap(生成时压污染)。关键观察有两个:在泄露的题上,污染模型的采样回答会塌回到它自己的贪心轨迹,也就是逐字背诵;而在分叉点上,干净模型选的 token 大约一半时候正是污染模型的次优 token。RailCap 据此把判断有没有污染从训练前的一次性估计,变成生成时的逐步监督:先用贪心轨迹建 n-gram 索引,解码每一步检查最近 n 个 token 是不是落进了贪心轨迹的某个窗口;一旦落进,就把下一个轨迹 token 的 logit 压到次大值,压制不断累积,直到回答分布足够分散。它不需要预先猜哪些题被污染。

结果

模型:Llama-2-7B、Gemma-4-E2B、Pythia-12B。干净模型在 1840 条 OpenOrca 加 660 条 GSM8K 训练题上微调,污染模型额外喂 660 条泄露的测试题。测试用 GSM8K test(1319 题)和改写版 PQ。

最具说服力的是排名翻盘。Llama-2 × GSM8K 上:

策略G-APSA-PPG
不干预0.31920.3261
LNE-blocking0.02350.2932
Shortcut0.18120.2476
RailCap0.07280.1914

LNE-blocking 在 G-AP 下看着接近完美(0.0235),换 SA-PPG 掉到 0.2932,只比不干预好一点,排到 RailCap 和 Shortcut 后面。RailCap 在 G-AP 下不是最优(0.0728),在 SA-PPG 下却最优(0.1914)。同一批题、同一个模型,换度量排名就反了。跨 6 个设置(3 模型 × 2 benchmark)RailCap 的 SA-PPG 都是最低。LNE-blocking 这种修复被高估约 14 倍(G-APP 下 0.0207,SA-PPG 下 0.2932)。

为什么重要

对做 benchmark 评测的人,这篇的核心警告是:你用的污染抑制可能没你以为的那么干净,因为旧度量会把过度抑制和抑制不足互相抵消掉。SA-PPG 是一个便宜的诊断(每题采样几十次),值得在做完抑制后跑一遍核对。RailCap 的思路也有独立价值:不预先判定哪些题脏,而是在生成时根据有没有塌回贪心轨迹动态施压,把静态的污染估计换成实时监督。

它也只是一个测量学和单点策略的改进,不是一劳永逸。RailCap 在每个设置下最优,但 SA-PPG 值仍有 0.16 到 0.23,离真正还原还有距离,说明现有抑制手段本身的上限就不高。

局限与存疑

论文没有显式的 limitations 段。从内容看,代价和适用范围值得追问:SA-PPG 要每题采样 50 次、外加一次贪心解码和同域干净模型做参照,对大模型是实打实的算力开销;实验只覆盖数学推理(GSM8K 及其改写),换到代码、长文本、多选等其他题型是否一致没有验证;RailCap 的 n-gram 窗口 n 需要调(论文说 n 取 3 到 7 都在 0.008 内);PQ 改写质量依赖 DeepSeek-V4-Flash,改写本身可能引入噪声。另外干净模型是同架构同数据的对照,真要对一个线上黑盒模型估污染,这种参照未必拿得到。

术语

原文与代码

相关论文

全部论文解读