想象一个场景:大模型预训练语料里混进了公开评测集的测试题。模型把这些题的答案“背”了下来,评测分数狂飙,但真实能力并未提升。这就是基准污染(benchmark contamination)——大模型评测领域最头疼的问题之一。为解决此问题,有一类“污染缓解策略”专门在解码阶段干预模型的生成过程,把被记住的答案“压”下去,期望恢复模型的真实水平。但问题来了——怎么判断一个缓解策略有没有真的把模型恢复好?之前的评测指标叫G-AP(Gap of Aggregate Performance,聚合性能差距):先给每道题一个“对/错”的分数,然后求整个数据集上的平均值,再和干净模型的平均值做差。差越小,说明恢复得越好。这个指标看上去很合理,直到你看到这篇论文的标题——《Zero Gap Is Not Restoration》(零差距不是恢复)。来自浙江大学的团队在这篇论文里直接拆穿了G-AP的老底:G-AP读数为零,完全不能证明每一个题目都被恢复好了。恰恰相反,“零差距”可能只是正负误差互相抵消之后呈现出来的假象。这篇论文提出了两个核心贡献:一个更严谨的评测指标SA-PPG,以及一个全新的缓解策略RailCap。下面龙哥带大家一层层拆开看。
针对上述两个缺陷,论文一步一步构建了新的指标SA-PPG(Stratified Aggregate of Per-question Probability Gaps,分层逐题概率差距聚合)。第一步:用解题概率替代0/1离散读数。定义每道题的解题概率为“采样出的回答能解出这道题的概率”,即0/1读数的期望值。实际操作中,对每道题独立采样m个回答,用其中回答正确的比例来估计解题概率。公式如下:公式(3)将解题概率定义为0/1读数的数学期望。这个读数比单次0/1稳定得多,因为采样多次取平均后,随机性被抹平了。第二步:逐题做差,先取绝对值再平均。定义每道题的“逐题概率差距”(PPG,Per-question Probability Gap)为缓解后模型与干净模型在解概率上的差值,然后对所有题目的绝对值取平均,得到A-PPG(Aggregate of Per-question Probability Gaps,逐题概率差距聚合):公式(4)计算每道题上缓解后模型与干净模型的解题概率之差。公式(5)为A-PPG的定义:先对每道题的差距取绝对值,再在全部N道题上取平均。这个指标有一个非常好的性质:A-PPG=0当且仅当每道题的解题概率都与干净模型完全一致。但A-PPG还有一个隐患——等权平均给了“作弊策略”可乘之机。当干净模型本身不太强时,大多数题目的解题概率是0。比如Gemma-4-E2B在GSM8K上连四分之一的问题都解不出来。这种情况下,一个“躺平”策略——让被污染模型在所有题目上全部答错——在这些解题概率为0的题目上完美匹配,分差为零。而在少数解题概率较高的题上,哪怕差距巨大,也会被绝大多数零概率题目稀释。换句话说,只要把模型压到“全不会”,A-PPG也能得到很低的分数。第三步:分层聚合,堵死捷径。为了禁止这种“往高频值上凑”的作弊行为,SA-PPG引入分组机制:先把[0,1]区间等分成B个区间,按干净模型的解题概率把题目分到对应的组;然后在每一组内先平均逐题差距的绝对值,再跨组取平均。这样,解题概率为0的题目虽然数量很多,但它们只能算一组,权重只是1/B,不再淹没其他组的信息。公式如下:公式(13)为SA-PPG的定义:按干净模型解题概率将题目分组后,组内先平均、组间再平均。这一“分层”操作要求缓解策略在干净模型的每一个能力层级上都要完成恢复,任何一个频段上的失败都无法靠其他频段的大数量来掩盖。SA-PPG同样继承了A-PPG的良好性质:只有当所有题目的解题概率都与干净模型一致时,SA-PPG才是零。这意味着一个策略必须逐题地把该压的压到位、该留的留下来,任何一处偏差都会如实反映在指标里。
Cobbe K, Kosaraju V, Bavarian M, et al. Training verifiers to solve math word problems[J]. arXiv preprint arXiv:2110.14168, 2021.Dong Y, Jiang H, Hu H, et al. TED: Can a model remember what it should forget?[J]. arXiv preprint arXiv:2410.02765, 2024.Hou R, Li Y, et al. LNE-blocking: Length-normalized entropy blocking for benchmark contamination mitigation[J]. 2025.