
图中题目、答案和同源改写都可能形成重叠,检测命中与真实影响仍须分开判断。
一个模型在测试题上答得很漂亮,是学会了解题能力,还是曾经见过原题?对使用大规模公开资料训练的模型,这个疑问不能靠一句“测试集是独立文件”解决。独立文件可能仍包含相同段落、改写题目或直接暴露答案的解析。
污染不只发生在训练代码里
原题被纳入预训练语料、答案解析混入监督样本、测试样例被用来筛选训练数据,都可能影响评测解释。即便没在训练循环里显式读取 test 文件,题目也可能从其他来源进入流程。
但普通背景知识重叠不一定等于答案泄漏。阅读理解的来源文章被见过,与具体问题和标准答案被直接训练,风险程度不同。检测报告应区分重叠对象,不宜把所有文字交集一律称为已经记住测试答案。
还有一种情况是反复根据测试集反馈修改提示、阈值和模型选择。它未必意味着参数记住了原题,却会让测试集参与开发决策,削弱其作为最终独立检验的作用。这种适应性使用也应记录。
分数会失去哪部分含义
污染可能让模型复现熟悉表达,使评测难以代表未见问题上的泛化。但不能从“发现一条重叠”直接推出整套结果全无价值,也不能假定所有任务受到的影响都相同。
更可解释的做法是分别报告完整集、疑似重叠集和经过检查的子集,并说明筛选规则。若删除的恰好都是容易题,分数变化还混合了难度分布改变,不能把下降全部归因于污染带来的收益。
因此,污染检测率与性能虚增量不是同一个指标。前者描述按某种规则发现了多少重叠,后者需要更谨慎的对照和因果解释,不能直接拿一个百分比乘总分修正。

能看到训练数据时,先做可检查匹配
可以检查精确重复、片段重叠以及近似改写,并保留来源和匹配位置。题干、选项、答案与解析应按任务分别考虑;只查完整题干哈希,会漏掉格式变化或局部拷贝。
近似匹配也会误报。常见定义、模板句和短文本容易碰撞,清洗掉数字或否定词后,两个不同问题还可能被错误合并。命中需要可回溯,不能只保存一个无法解释的污染标签。
数据版本同样重要。评测集后来新增的题目,可能在下一轮训练中公开传播;已有过滤规则也可能存在实现缺陷。应记录实际使用的版本和处理时间,而不是把“曾经做过去重”当作永久保证。
黑盒检测必须说明统计假设
拿不到训练语料时,可以研究模型对某些样例顺序、提示变体或续写的概率偏好,但每种检测方法都有适用条件与误差控制。一个模型把熟悉格式写得顺,不自动证明它见过某一份测试文件。
反过来,检测未命中也不能证明从未训练过。训练暴露次数、记忆方式、接口能力和统计功效,都可能影响能否发现信号。问模型“你见过这道题吗”,其自述也不能当成可靠的训练数据审计记录。
互联网上搜索不到原题同样不是无污染证明:索引覆盖、私有语料、转载和改写都有可能让搜索遗漏。搜索结果可以提供线索,却不能替代对实际训练来源的检查。
防范比事后猜测更有价值
训练与评测在数据版本、权限和处理流程上隔离,候选训练语料在入库前检查基准重叠,最终测试尽量减少参与调参,都是能落实的工作。新增私有或较晚构建的测试,也要说明它覆盖的任务分布,不能只凭“新”就保证公平。
还可以设计针对规则变化的对照题,观察模型是否真正使用题目条件,而不是背诵答案形式。但对照题自身也要经过难度和有效性核对,否则又引入另一种比较偏差。
面试回答别急着下总判决
先解释污染入口,再说能检查哪些重叠、黑盒能提供什么有限证据,最后说明怎样保持评测隔离和报告边界。可信度来自可核对过程,不是一个自称绝对干净的标签。
如果清理疑似重复题后分数下降,你会先宣布原分数全部来自记忆,还是先检查被删除样本与剩余样本是否具有相同难度和分布?