榜单排名可能是难度分布的幻觉:把基准测试看成"难度轴上的测度"之后
你有没有遇到过这种情况:RLVR 训练跑了两周,loss 在降,肉眼看着生成质量在变好,结果 AIME24 的分数纹丝不动。你开始怀疑训练出了问题,降学习率、换数据配比、回滚 checkpoint,折腾一圈,到头来发现——进步是真的,只是 AIME 那 30 道题恰好没覆盖到模型进步的那个难度区间。
或者另一种:两个模型在榜单上只差 0.3 分,公关稿写"性能相当",但你拿去跑自己业务里的难题,差距大得离谱。你翻一下这个基准的题目构成,发现 80% 都是简单题——两个模型在简单题上确实差不多,可榜单把这部分权重放大了。
这两种翻车场景,一篇 NeurIPS 2026 的论文给了统一的数学解释。结论很朴素:基准分数不只是模型的函数,也是题目难度分布的函数。你只看了前者,忽略了后者。
核心摘要
这篇论文把每个基准测试形式化成"难度轴上的一个经验测度"——每道题等价于在其难度位置放一个单位质量。在这个视角下,榜单失真被拆成两个可量化、可证明的失效模式:测度错配(基准难度分布偏离目标分布,用 Wasserstein 距离衡量)和覆盖缺口(难度轴上存在无题区间,用最大相邻间隙衡量,论文证明了它恰好是检测局部进步的精确 minmax 边界)。作者用 IRT 估了 25 个热门基准的题目难度,发现 10 个 DDM 超 0.10、8 个 Max Gap 超 0.10——AIME 全系的 top-5 间隙和接近 0.5,也就是说难度轴上一半的区域基本是盲区。诊断之后是干预:他们提出 BenchFill,一个难度定向的题目改写搜索算法,每个基准只插 3 道题就把 top-3 间隙和压掉 21% 到 39%,逼近理论 oracle。诊断思路干净,理论结果漂亮,还顺手开源了补齐版 AIME 数据集。我的评价:这不是什么惊天动地的底层突破,但它是"基准科学"里少见的一篇把直觉写成定理、把定理做成工具的扎实工作。
论文信息
- 标题:Your Benchmark Is an Empirical Measure Over Difficulty
- 作者:Yifan Sun, Naicheng Yu, Jiawen Gong, Jingyan Shen, Huan Zhang
- 机构:University of Illinois Urbana-Champaign / UC San Diego / New York University
- 发表:NeurIPS 2026,arXiv:2610.29927,2026 年 10 月 21 日提交
- 链接:https://arxiv.org/abs/2610.29927
- 代码:https://github.com/ASTRAL-Group/benchmark-difficulty-measure
- 补齐数据集:https://huggingface.co/datasets/Yifan99/BenchFill
🎯 问题的根子:分数是积分,积分依赖测度
先把论文的核心形式化讲清楚,其实非常简单。
一个基准 \(B\) 有 \(n\) 道题,每道题 \(x_i\) 有个难度 \(z_i \in [0,1]\)。模型 \(\theta\) 在难度 \(z\) 上的条件表现是 \(s_\theta(z)\)(比如 pass@1)。基准分数就是大家熟悉的平均:
关键一步来了:这个平均恰好等于对某个测度的积分。定义基准诱导的经验测度
其中 \(\delta_z\) 是难度 \(z\) 处的单位点质量。于是 \(S_B(\theta) = \int s_\theta(z) \, d\nu_B(z)\)。
看着像符号游戏?不是。这一步把"题目集合"变成了"难度轴上的质量分布",榜单比较就被拆成两个独立对象的耦合:模型决定的 \(\Delta(z) = s_{\theta'}(z) - s_\theta(z)\),和基准决定的 \(\nu_B\)。两个模型在基准上的分差 \(D_B(\theta',\theta) = \int \Delta(z) \, d\nu_B(z)\)——同一个 \(\Delta\),换一个 \(\nu_B\),结论可以完全不同。
论文用一张 teaser 图讲了两个失效案例,我觉得这张图值得印在每个做评测的人脑子里:

图1:两种基准失效模式。上图 (a) Measure Mismatch:模型 A 和 B 在简单题上打平、在难题上拉开差距;基准质量集中在简单区(蓝色直方图),而你在意的分布偏重难题(橙色直方图),结果基准分 72.1 vs 72.4 "无法区分",目标分布下却是 61.8 vs 68.9 "差异明显"。下图 (b) Coverage Gap:模型在某个局部难度区间进步显著(绿色高亮),但基准在那个区间一道题都没有,观测分数只从 64.2 涨到 64.6,真实的训练进步被完全错过。
这两个案例分别对应论文的两个定理。
失效模式一:测度错配(Measure Mismatch)
引入目标分布 \(\mu\)(代表你真正想评估的难度构成),论文定义 DDM(Difficulty Distribution Mismatch)为基准经验测度与目标分布的 1-Wasserstein 距离:
直觉上就是:要把基准的难度质量搬运成目标分布,平均得搬多远。Theorem 2.1 说,若 \(\Delta\) 是 \(L\)-Lipschitz 的,则
也就是说,Wasserstein 距离直接控制了"榜单分差"偏离"真实分差"的幅度。更进一步:只要 \(|D_\mu| > L \cdot W_1\),两边符号一定一致——排名不会翻转。这个界简单,但给了一个可操作的诊断:算出你基准的 DDM,就知道榜单结论在多大程度上可信。
还有一个绕不开的问题:\(\mu\) 到底选什么?如果我有明确的业务场景,\(\mu\) 就该编码那个场景的难度构成。但多数时候没有先验。Theorem 2.2 证明了:在"性能差异出现在难度轴哪个位置完全未知"的 agnostic 设定下,均匀分布是唯一的 maximin 选择——只有它保证最坏情况下保留的平均差异不缩水。所以论文后续实证统一用 Unif[0,1] 当中性参照。这里先埋个伏笔:这个"中性"选择本身也是有立场的,后面细说。
失效模式二:覆盖缺口(Coverage Gaps)
第二个问题更隐蔽。\(\nu_B\) 是离散测度,只在 \(n\) 个难度点上有质量——没有题的区间,质量严格为零。模型在这样的区间里进步再多,基准分数也一动不动。
论文用最大间隙 \(G(B)\) 来刻画:把难度点排序,找相邻两点(含边界)的最大距离。Theorem 2.3 是全文我觉得最漂亮的结果:把"训练有没有进步"形式化成假设检验(\(H_0\) 无进步 vs \(H_1\) 存在宽度 \(w\)、幅度至少 \(a\) 的区间性进步),则:
- 若进步宽度 \(w \leq G(B)\):无论每道题重复评测多少次,任何水平 \(\alpha\) 的检验功效都只能是 \(\alpha\)——完全检测不到,最坏情况下进步对基准不可见;
- 若 \(w > G(B)\):重复评测次数趋于无穷时,功效趋于 1。
\(G(B)\) 就是检测能力的精确相变边界。不是近似、不是上界,是 sharp 的。这个定理把"基准的局部分辨率"从一个模糊的抱怨变成了一个有精确刻度的量。
🏗️ 怎么落地:IRT 估难度 + 一条完整的诊断流水线
理论要落地,先得解决一个问题:每道题的 \(z_i\) 从哪来?直接用"多少模型做错了"当难度?论文明确反对这个做法——难度是相对于模型能力的:一道题如果只有顶级模型能做对,和一道题所有模型都做不对,失败率可能一样,但难度完全不同。
所以他们用了心理测量学的老工具 IRT(Item Response Theory),1PL 模型:
模型 \(j\) 有能力 \(\theta_j\),题目 \(i\) 有难度 \(b_i\),答对概率是逻辑斯谛函数。这个框架在 LLM 评测圈已经有不少先例——Rodriguez et al. 2021 就用 IRT 分析过榜单,Easy2Hard-Bench(NeurIPS 2024)用 IRT + Glicko-2 给题目打连续难度标签。这篇论文的增量不在 IRT 本身,而在于把 IRT 产出的难度喂给前面那套测度论诊断。

图2:完整流水线。第一步:让多个 LLM 在每道题上做 k 次采样,收集响应矩阵(元素是经验成功率);第二步:诊断响应矩阵(模型信息量、题目信息量、模型反转率、题目反转率四项检查);第三步:拟合 1PL IRT 模型并做贝叶斯诊断(\(\hat{R}\)、ESS、发散转移数、LOO 稳定性);第四步:难度归一化到 [0,1] 后计算两个指标——ECDF 与均匀参照围成的面积(Wasserstein 距离),和排序难度点的最大相邻间隙。
几个工程细节值得点赞:
- 模型选择是分层的:非 agent 基准用了 12 个模型,从 SmolLM2-1.7B 一直到 Qwen3.5-397B-A17B,按 Text Arena 榜单能力排序后分层采样,两端加密。模型能力跨度不够,IRT 的难度轴就立不起来。
- 每道题最多 32 次 rollout,用模型推荐温度——难度估计有随机性,这是在认真处理。
- 诊断链条完整:拟合前查响应矩阵的信息量和单调一致性,拟合后查 MCMC 收敛(\(\hat{R}\)、ESS、发散转移),还做了留一稳健性(去掉任何一个模型,题目难度估计基本不变)。BIC 在 25 个基准里的 21 个上支持 1PL 而非 2PL。
- 25 个基准 × 7 个领域(数学、代码、agent、逻辑、科学、指令跟随、医学),agent 类基准借用了 HAL 平台上 15-66 个闭源模型的评测结果。
说实话,这套流程的严谨程度超过我见过的大多数基准分析论文。难度估计这一步做扎实了,后面的诊断才有意义。
📊 诊断结果:榜单的水分在哪里
直接看主表(Table 1 的关键行,完整表在论文里):
| 基准 | DDM ↓ | Max Gap ↓ | Top-5 Sum ↓ | 题数 |
|---|---|---|---|---|
| MATH-500 | 0.164 | 0.058 | 0.175 | 500 |
| ScienceQA | 0.178 | 0.045 | 0.175 | 4241 |
| IFEval | 0.159 | 0.046 | 0.189 | 541 |
| MedQA | 0.157 | 0.042 | 0.178 | 1273 |
| HumanEval | 0.148 | 0.165 | 0.423 | 164 |
| AMC23 | 0.089 | 0.217 | 0.539 | 40 |
| AIME24 | 0.077 | 0.179 | 0.502 | 30 |
| AIME25 | 0.079 | 0.158 | 0.492 | 30 |
| AIME26 | 0.085 | 0.119 | 0.507 | 30 |
| SWE-bench-Mini | 0.053 | 0.149 | 0.469 | 50 |
| BBH-5 objects | 0.099 | 0.128 | 0.332 | 250 |
| CORE-Bench Hard | 0.036 | 0.113 | 0.363 | 45 |
(加粗为论文标注的偏高值:DDM ≥ 0.10、Max Gap ≥ 0.10 或 Top-5 Sum ≥ 0.30)
几个观察,有些是论文自己讲的,有些是我自己的解读:
测度错配比想象中普遍。 25 个基准里 10 个 DDM ≥ 0.10——难度质量平均要搬过整个难度轴 10% 的距离才能变成均匀分布。最扎眼的是 ScienceQA,4241 道题、DDM 高达 0.178。题多不等于分布好,质量照样可以堆在一小块区域。HumanEval 这个老牌代码基准 DDM 0.148 + Max Gap 0.165 双高,164 道题的难度分布既偏又漏。
AIME 系列是覆盖重灾区,而它恰恰是 RLVR 训练监控的标配。 AIME24/25/26 的 top-5 间隙和都在 0.5 附近——把 [0,1] 难度轴切开看,一半的区域能被 5 个洞瓜分。结合 Theorem 2.3:如果你的模型进步恰好落在这 0.5 的洞里,AIME 分数就是不动,你重复评测一万次也没用。DeepSeek-R1、Qwen3 这些 RLVR 训练全都在用 AIME 监控进步,这件事想想还挺讽刺的。
有人会说:30 道题的基准有洞不是必然的吗? 论文专门回应了这个质疑,我觉得回应得不错:即使大间隙是小基准的统计必然,它依然是未覆盖区间,局部进步照样检测不到——问题是真的,不是伪命题。而且覆盖缺口不只是小基准的病:HumanEval(164 题)和 BBH-5 objects(250 题)的 gap 指标同样偏高,说明这不是纯粹的"题太少"问题,而是难度分布的结构性问题。
但也要说句公道话:AIME 只有 30 道题是历史形成的(每届竞赛就那么多题),用 0.10 这种绝对阈值去卡,小基准天然吃亏。论文的 Top-5 Sum 某种程度上是对题数敏感的指标,读表的时候要带着这个意识。作者自己也承认 Max Gap 内在地依赖基准规模,只是论证了"这反映的是真实的覆盖限制而非统计噪音"。
附录里还有个我觉得被低估的实验:分位数匹配校准。既然错配是病,那能不能靠剪枝治?作者设计了一个贪心算法——按目标分布的分位点取难度位置,每个位置挑最接近的未用题目——把 MATH-500 这类基准剪成校准子集,看剪完之后的模型排序是否更接近同域其他基准给出的参考排序。这个方向比 gap filling 更"省",虽然只是附录级的初步验证。
🔧 BenchFill:把诊断变成行动
诊断完了,下一步自然是怎么治。覆盖缺口的暴力解法是找专家出题——贵,而且慢。论文的方案是 BenchFill:用 LLM 改写现有题目,定向生成目标难度的变体。

图4:BenchFill 的改写-标注-更新闭环。左侧 Rewrite:以记忆中难度最接近目标的题目为父题,连同目标难度和邻近难度参照列表一起喂给改写模型,生成一批子题目(图中示例:把骰子乘积题加上"是完全平方数"、"2 的指数超过 3 的指数"等约束来调难度)。右上 Annotate:子题目经过有效性检查、多模型作答收集、在线 IRT 校准,得到标注难度。右下 Update Memory:新的题目-难度对进入记忆,目标难度(红星)附近的题目越攒越多,下一轮检索到的父题和参照就越来越准。
核心机制拆开看:
目标选择:默认填最大间隙,目标难度取间隙中点 \(z^\star = (z_L + z_R)/2\)——单点插入时中点对间隙的削减最大。
改写:用 MiniMax-M2.7 当改写器(温度 1.0),条件是父题 + 目标难度 + 参照列表。参照列表是关键设计:给改写器看 \(z^\star\) 附近上下各几道题及其难度(比如目标是 0.55,就给它看 0.48、0.50、0.60、0.62 的真实题目),让它知道"这个难度长什么样"。最多 8 轮,每轮 4 个父题 × 4 个子题,参照列表最多 16 对。
难度标注:子题不改 IRT 全模型,而是做在线校准——固定原来估好的模型能力 \(\hat\theta_j\),让 12 个模型在新题上各做若干次,只拟合新题的 \(b\):
这个设计把新题挂到原基准同一把 IRT 尺子上,省掉整个重拟合。
进化搜索:有效子题(GPT-5.4 当裁判验证答案正确性)的题目-难度对进记忆。哪道子题更接近目标,下一轮就更容易被检索为父题或参照——搜索是自适应的,改写器看到的例子随着搜索推进越来越贴合目标。
效果(Table 2):
| 基准 | Baseline 削减 | BenchFill 削减 | Oracle 削减 | BenchFill Target Dev |
|---|---|---|---|---|
| AIME24 | 6.90 | 35.57 | 35.57 | 0.005 |
| AIME25 | 27.44 | 37.56 | 37.56 | 0.005 |
| AIME26 | 17.94 | 33.04 | 33.04 | 0.002 |
| AMC23 | 24.47 | 35.19 | 35.78 | 0.003 |
| Gaokao2023en | 11.45 | 38.88 | 45.47 | 0.004 |
| BBH-3 objects | 14.83 | 29.88 | 32.80 | 0.006 |
| MMLU-Pro-Biology | 22.23 | 30.13 | 36.84 | 0.006 |
| IFEval | 14.94 | 21.09 | 23.44 | 0.007 |
| 平均 | 17.52 | 32.67 | 35.06 | 0.005 |
(削减为 top-3 间隙和的相对降幅 %,越大越好;Target Dev 是选中题目难度与目标的平均绝对偏差,越小越好;Baseline 是预算匹配的均匀父题 best-of-N 改写;Oracle 是每次都精确插在当前最大间隙中点的理想上界)
每个基准只插 3 道题,top-3 间隙和平均压掉 32.67%,对 oracle 35.06% 的追得很紧;AIME 三个年份直接打平 oracle。Target Dev 全线低于 0.01——生成的题目确实落在目标难度上,不是靠量大瞎猫碰死耗子。
最有说服力的实验是 Table 12:光把 gap 指标降下来可能是自嗨,真正的问题是"补完之后,基准能不能检测到以前检测不到的进步"。作者做了个很直接的检验——对 AIME24/25/26 各选一个目标间隙,做轻度 SFT 让模型在那个难度区间有真实进步,然后看三种基准变体能不能用统计检验(分层随机化检验,p < 0.05)把这个进步检出来:
| 案例(模型) | 基准变体 | 增益 | p 值 | 检出 |
|---|---|---|---|---|
| AIME24(Olmo-3.1-32B-Think) | Original | +0.104 | 0.5001 | ✗ |
| + BenchFill | +2.419 | 0.0059 | ✓ | |
| + Baseline | +0.202 | 0.4580 | ✗ | |
| AIME25(Phi-4) | Original | +1.042 | 0.1841 | ✗ |
| + BenchFill | +3.730 | 0.0005 | ✓ | |
| + Baseline | +0.907 | 0.2142 | ✗ | |
| AIME26(Llama-3.1-8B) | Original | +0.208 | 0.4184 | ✗ |
| + BenchFill | +3.427 | 0.0000 | ✓ | |
| + Baseline | +0.101 | 0.4980 | ✗ |
BenchFill 3/3 检出,原始基准和均匀改写 baseline 全军覆没(0/3)。这个实验设计我很喜欢——它证明 BenchFill 不是在优化自己定义的指标,而是真的提升了基准当"进步监视器"的能力。
改写质量的例子(Table 13)也挺有说服力:AMC23 的原题是"对多少个整数 \(n\),\(\sqrt{\frac{\log(n^2)-(\log n)^2}{\log n - 3}}\) 是实数",BenchFill 把分母里的 3 改成 1,难度从 0.535 精确挪到 0.597(目标 0.598);Gaokao 那题把 8×8 棋盘 6 个黑车改成 9×9 棋盘 7 个黑车,难度 0.864 → 0.886(目标 0.885)。改法克制、格式保持、难度可控——不是天马行空地乱造题。
质检流程:GPT-5.4 自动验证 + 人工终审,24 个最终入选题目全部通过人工审核,无替换。作者还基于此发布了社区资源:AMC23-BenchFill(40→80 题)、AIME24/25/26-BenchFill(30→50/52/53 题),全部人工复核。
🔬 我的判断
这篇论文值钱的地方在哪。
第一,Theorem 2.3 那个"最大间隙 = 精确 minmax 检测边界"的结果是真漂亮。把"基准看不见局部进步"从一个模糊的抱怨变成一个有相变结构的数学命题,而且结论是 exact 的不是 bound。做评测研究的人应该把这条定理贴墙上。
第二,它把散落的直觉串成了闭环:测度视角(概念)→ 两个诊断指标(工具)→ 25 基准普查(证据)→ BenchFill(干预)→ 干预有效性的因果验证(Table 12)。多数论文做到第三步就停了,这篇做到了第五步。
第三,工程严谨度在线。IRT 拟合前前后后七道诊断,LOO 稳健性、1PL vs 2PL 的 BIC 比较、后验不确定性分析,附录的实证功夫比很多正文都扎实。难度估计这个最容易被糊弄的环节,他们做的是教科书级的。
但有几个点我持保留意见。
一是均匀目标的立场问题。Theorem 2.2 论证了"无先验时均匀是 maximin 的",数学上没毛病,但现实里几乎不存在真正无先验的评估。你做代码助手,0.9 难度的题可能占你业务的 40%;你筛小学辅导模型,0.2 以下才是主战场。论文的框架完全支持自定义 \(\mu\)(这是它的优点),但主表全部用均匀参照,读者很容易把"偏离均匀"直接当"有问题"——其实错配只相对于你的目标分布才有意义。这一点论文其实写了("Non-uniformity is not inherently problematic when it matches the intended evaluation objective"),但传播过程中大概率会被简化成"DDM 高 = 基准差"。
二是IRT 难度的相对性。难度是相对于那 12 个模型的能力分布估出来的。这套估计在当前模型生态下有效,但模型世代更替之后呢?LOO 稳健性检查的是"去掉一个模型",不是"换一整代模型"。难度轴本身会漂移,这个漂移对 DDM 和 Max Gap 的影响,论文讨论得比较少。
三是改写题的生态位问题。BenchFill 生成的题目来自 LLM 改写,即使人工审核了正确性,它们和"人类竞赛出题"在风格微妙性上有没有系统性差异?模型在这些题上的表现能不能外推到真题上?更现实的一点:这些生成题一旦发布,未来就会进预训练语料(污染),而它们的生成过程依赖现有模型——这里面有个自我指涉的循环,论文没有展开。说实话这块我自己也没想清楚,但总觉得值得警惕。
四是成本。每道子题的在线校准要让 12 个模型各做若干次评测,8 轮 × 16 题 × 12 模型 × 32 rollouts 的评估账单不小。对 AIME 这种 30 题的小基准可行,要给 MATH-500 这种规模做系统性的 gap filling,成本要另算。
和同期工作比,IRT 用于 LLM 评测不是新东西(Rodriguez et al. 2021 的榜单分析、Easy2Hard-Bench 的难度标注都是前置工作),"基准不可靠"的大主题下也有污染、提示敏感、信噪比分析一堆文章。这篇的差异化定位在于:它不研究"分数为什么虚高"(污染那条线),而是研究"分数为什么失真"(分布那条线),并且给了定理级别的刻画。属于把一个大家隐约知道的现象做成了可计算、可修复的工程问题——是扎实的 formalization + tooling 工作,不是底层突破,但这类工作恰恰是领域最缺的。
💡 对工程的启发
如果你在做 RLVR 或后训练,监控基准的选择逻辑值得重做一遍:别只看"题目够不够难"(那是在看均值),要看难度分布的形状。AIME30 题的难度轴一半是洞,用它监控细粒度进步,Theorem 2.3 已经告诉你最坏情况下会漏掉什么。一个务实的做法:把论文开源的 25 个基准难度估计拉下来(GitHub 仓库 data/benchmarks 目录),算一下你监控组合的 gap 指标,或者直接把 AIME-BenchFill 系列加进监控面板。
如果你在设计新基准,交付物里应该带上难度分布图和这两个诊断指标——就像论文说的,基准是难度轴上的测度,那么测度的形状就是基准设计文档的一部分,而不是附赠的统计彩蛋。
还剩一个开放问题:难度轴是一维的,但模型进步是多维的(推理、知识、指令跟随各自进化)。多维 IRT 论文试了,拟合质量不佳(附录 Table 10,mixing 很差)。一维难度是当前工程上稳态的选择,但"进步落在哪个维度"这个问题,一维测度天然回答不了。这可能是"基准作为测度"这个视角下一个值得挖的方向。
论文链接再放一遍:https://arxiv.org/abs/2610.29927 ,代码和 25 个基准的难度标注都在 GitHub(ASTRAL-Group/benchmark-difficulty-measure),补齐版 AIME 在 HuggingFace(Yifan99/BenchFill)。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我