看,也是一种训练。自适应过拟合(adaptive overfitting)说的是:你从来没把测试集拿去训练,只是反复看它、用它筛选模型。可反复看同一套题来做选择,这个动作本身就是一种筛选:你留下的,永远是那个恰好在这批题上表现最好的版本。久而久之,这套题的特异性,就这样被灌进了你的模型。
你多半经历过这件事。你搭了一套 eval 衡量 agent 好不好,反复用它筛选、调参、挑最优版本,eval 分数漂亮地涨了;放到真实使用里,前后毫无区别。模型只是学会了严丝合缝地拟合你那套 eval。这不是个人失误:凡把同一套 eval 同时用作筛选器与成绩单的流程,结构上都在重演这个动作,筛选的次数越多,成绩单越失真。
这个动作在统计学里有正式名字:适应性数据分析。区别一句话就能讲清。非适应性:所有要问数据的问题,在看到数据之前就列好了,经典统计的全部保证建立在这个前提上。适应性:下一个问题取决于上一个答案。你每次根据上一轮分数决定下一步改什么,恰好是后者,于是经典保证整体失效。
两份 2015 年的工作把这件事变成了会计学。Blum 与 Hardt 给 Kaggle 式排行榜(Kaggle:数据科学竞赛平台,选手反复提交模型看排名)设计了 Ladder 算法,病灶点得很直白:参与者被允许反复在排行榜上评估自己的提交,于是可能开始过拟合;他们的解法是只在新提交显著优于历史最好时才更新公开分数:分数不更新,参与者就等于没拿到反馈,这次提交也就没泄漏什么可用信息;只有真正显著超越历史最好的提交才换来一次更新,而这样的超越次数有限。每次提交泄漏的信息量,就这样被卡死了。Dwork 等人在 Science 上给出更一般的定价:用差分隐私机制(Y01 讲过:故意把读数弄糊、限制单次泄漏)中介对 holdout 的访问,可支持指数级多次适应性查询而不失效。两份工作共同确立了一个会计视角:测试集是一笔预算,查询就是支出,「看」的成本必须被记账。
上面这个模拟器值得玩几分钟。默认设置跑到底,榜面分数(发光那条)一路飙升,「全维真实能力」(红线,用户真正体验到的)几乎不动。中间那片发光的空隙就是幻觉,由两部分组成:
- 题目过拟合:模型记住了这一套具体题目的套路、巧合、措辞。换一批新题,这部分瞬间蒸发。把「题库策略」切到「每代换新题」,你会看到它当场清零。现实对应是基准污染:GSM8K(最常用的小学数学应用题基准)的题被吃进训练集,换成照原风格新命制的 GSM1k,一批模型当场掉分(细节在
Y03)。 - 维度窄化:模型确实变强了,但只在 eval 覆盖的那一小部分维度上(模拟默认值 10%)。它是合法但片面的,你练的是被路灯照到的地方。
再把「容量约束」切到零和,这是后果最重的一档。现实里模型容量、数据配比、RL 算力都有限,投给被测维度的就得从别处抽走。你会看到未测维度的能力真实地变成负数:模型不只是没在别处进步,它在主动退化,被 eval 的形状重新塑形。这是「eval 越多,AI 越退化到 eval」最干净的一张图。
理论与经验之间这道缝,先看证据的形状。Kaggle 每场竞赛都有公开榜与私有榜:公榜给日常提交读数,被反复查询;私榜只在赛末揭晓,只看一次。这天然构成对照组。Roelofs 等人量取上百场竞赛里两榜分差的分布,结果分差主要由随机波动解释,不是系统性的适应性透支。这个结果说明什么:全社区反复刷了几个月的公榜,居然没在私榜上露出集体翻车的痕迹。
为什么理论的最坏情况没有兑现?Ladder 与可重用 holdout 防的是一个每次查询都榨取最大信息量的理想对手,现实中的刷榜者效率远低于此:大家的模型彼此相似,一千次提交里有效的独立试探可能只有几十次。旁证还有一组:Miller 等人 2020 年在问答基准上复核,同样未发现适应性过拟合的证据,掉分几乎全部来自新题稍难的自然漂移。Roelofs 那批作者据此写道,holdout 方法跨数据领域、跨损失函数、跨模型类别、跨分析者都相当稳健。这条线如今有了自己的纲领:Hardt 2026 年把 benchmark 本身立为研究对象,称之为机器学习基准的新兴科学,黄支末端的 Y15 会回到它。
于是版图分成两半。经典监督学习那一半,题库足够丰富、优化目标分散、社区靠换架构而非纯刷分推进,退化被稀释到几乎测不到。另一半是优化压力高度集中于单一、可记忆目标的场景:RLHF 死磕人类偏好这个代理,学出谄媚与堆料(Y07、Y08);agentic coding 死磕一套固定题库,前沿模型被审计出能逐词复现 SWE-bench 里人类写好的修复补丁(Y03)。两半之间还有人为放大器:少数厂商在 LMArena(用户盲测投票的模型排行榜)发布前私测多个变体、只公开最好的那个——这些变体全部出自同一家,不像公开竞赛那样被许多彼此独立的参赛者稀释。它等于把全社区分散的适应性查询,集中到了一家之手(Y11)。在集中的这一半,「退化到 eval」是实锤。判断你手里的 eval 危不危险,先看这两个变量:优化压力有多集中,目标有多可记忆。
你能发现「eval 前后毫无区别」,这个发现本身比那套 eval 值钱。第一层境界,eval 绿灯全亮就当成进步;第二层,看见测量本身的失效;第三层,建一套从一开始就知道自己会被博弈、并为此做了设计的评估体系。
留一个问题:Kaggle 那场裁决来自 2019 年以前的监督学习竞赛,那时「模型选择」是提交一份预测文件。今天你对着同一套 eval 调 prompt、换脚手架、挑 checkpoint,适应性查询的形态完全变了,经典裁决能否外推,还没有同等规模的复核。另一半问题更拧:模型相似性既在保护 holdout(有效查询变少),也在制造生态同质化(大家都蒸馏同几个强模型)。同一件事在两条账本上符号相反,该怎么记?
一句话带走:测试集是账户不是镜子,每看一眼都在扣款;只是经典场景扣得慢,而死磕单一目标的场景扣得飞快。
来源 / 延伸阅读
- Blum & Hardt (2015). "The Ladder." ICML,arXiv:1502.04585;Dwork et al. (2015). "The Reusable Holdout." Science 349:636,STOC 版 arXiv:1411.2664。
- Roelofs, Shankar, Recht et al. (2019). "A Meta-Analysis of Overfitting in Machine Learning." NeurIPS,arXiv:1902.03570(Kaggle 百场裁决)。
- Mania et al. (2019). "Model Similarity Mitigates Test Set Overuse." NeurIPS(机制解释);Miller et al. (2020). 问答基准复核,ICML。
- Recht et al. (2019). arXiv:1902.10811;GSM1k (Zhang et al. 2024). arXiv:2405.00332。
- 深化见
research/deep/D4§1;模拟对应experiments/exp4。