← 返回文章

如何把多维模型 Benchmark 合成一个分数:加权评分与 Bayesian 漂移区间

用业务权重合成 Coding、Agentic 与 Cyber benchmark,并用 Student-t 后验区间表达 benchmark 数量和波动带来的不确定性。

模型评测表越来越长。Coding、Agentic、Cyber 各自有多组 benchmark,不同模型又经常只公布其中一部分。如果只是逐行看最高分,很难回答一个更宏观的问题:在我们关心的能力结构下,哪个模型整体更强,这个判断又有多稳定?

这篇文章给出一套可复用的做法。它保留一个容易沟通的加权分,同时用 Bayesian 后验区间表达可能的漂移空间。benchmark 数量不会被压缩成一个含义模糊的“置信度百分比”;数据越少、跨 benchmark 波动越大,结果会自然表现为更宽的区间。

本文以一张覆盖 Coding、Cyber 和 Agentic 的模型对比表为例。原始值来自截图转录,适合演示方法和当前横向比较,不应被当成经过官方逐项核验的永久榜单。

最终只保留四列

对外分发时,主表固定为四列:模型或系统名称、当前分、后验中位数和 90% 漂移区间。

模型/系统当前分后验中位数90% 漂移区间
Fable 5(含 fallback)94.595.289.4–98.9
GPT-5.6 Sol94.594.187.9–98.9
DeepSeek-V4 Pro-081392.590.781.0–97.1
GLM-5.387.688.181.7–94.1
Kimi K380.380.972.8–88.8
Opus 4.880.380.373.1–87.5
Qwen3.8-Max74.076.666.5–85.9
GLM-5.262.065.156.6–73.7

这四列承担不同角色:

  • 当前分是正式展示和排序口径,直接来自现有 benchmark 的归一化加权平均。
  • 后验中位数是 Student-t 模型估计的稳健中心,用于判断当前分是否受到极端 benchmark 影响,但不替代当前分。
  • 90% 漂移区间描述潜在宏观分的后验范围。它越宽,说明当前证据越不足以支持精确排序。
  • 模型/系统必须保留测试对象的真实形态。例如 Fable 5 含 fallback,应视为系统级结果,不能直接等同于纯基础模型。

第一步:先在每个 benchmark 内归一化

不同 benchmark 的原始量纲并不一致。大多数行是百分制分数,但 GDPval-AA v2 是四位数,ExploitGym 又同时给出 2h 和 6h 两个计数。直接平均这些原始值没有意义。

先在每一行内部做相对归一化:

text
row_score(model, benchmark)
  = 100 × model_value / best_value_in_that_row

该行表现最好的模型得到 100 分,其余模型按比例换算。这样保留的是“相对该行最佳结果的距离”,而不是原始量纲。

ExploitGym 的 2h 和 6h 两个指标分别归一化,再平均成一个 benchmark 家族,避免它因为包含两个子指标而得到双倍权重。

这种归一化很直观,但有一个重要代价:它依赖当前参与比较的模型集合。如果以后加入更强模型,该行的基准会变化,历史归一化分也需要重算。需要长期追踪时,最好换成固定外部锚点。

第二步:用业务权重合成当前分

在每个领域内,对模型已有的归一化 benchmark 分数取平均。缺失项不补 0,也不参与该领域的当前均值。

本文采用以下权重:

text
Coding  = 1/2
Agentic = 1/3
Cyber   = 1/6

当前分的计算式为:

text
current_score
  = 1/2 × mean(Coding)
  + 1/3 × mean(Agentic)
  + 1/6 × mean(Cyber)

这个分数回答的是一个明确问题:在 Coding 占一半、Agentic 占三分之一、Cyber 占六分之一的能力偏好下,模型在已经公开的 benchmark 上总体表现如何?

不把缺失项记为 0,是因为“没有公布”并不等于“得分为 0”。但直接排除缺失项也会带来选择性披露风险:如果一个模型只公布自己表现好的 benchmark,当前分可能偏高。因此,缺失带来的问题不能靠补分解决,更适合通过不确定性区间和覆盖说明表达。

benchmark 数量不适合变成一个置信度百分比

一种常见做法是根据 benchmark 数量生成“置信度”,再用置信度折扣总分。这个方法看似简单,却会把两个不同问题混在一起:

  1. 模型在已有 benchmark 上表现如何;
  2. 我们对这个宏观判断有多确定。

如果用 benchmark 数量直接乘分,数据少的模型会被机械降分。读者最后无法区分它究竟是能力较弱,还是证据较少。

更清楚的做法是保持当前分不变,把不确定性放进一个单独的漂移区间。这样,点估计负责回答“现在看起来有多强”,区间负责回答“这个判断可能漂移多少”。

用 Student-t 模型估计潜在领域能力

对于模型在某个领域内的归一化 benchmark 分数,使用重尾 Student-t 模型:

text
y(model, benchmark)
  ~ Student-t(
      degrees_of_freedom = 4,
      location = theta(model, category),
      scale = sigma(category)
    )

theta(model, category) 表示模型在该领域的潜在稳健中心,sigma(category) 表示该领域跨 benchmark 的共同波动。

选择 Student-t 而不是正态分布,是因为不同 benchmark 的难度、任务结构和测量噪声差异很大。自由度设为 4 后,分布具有更厚的尾部,单个异常高分或低分不会像正态模型那样强烈拉动中心。

同一领域的 sigma 在模型之间共享,让 benchmark 较少的模型也能利用整个领域的数据估计波动;但各模型的 theta 使用相互独立的弱先验:

text
theta(model, category) ~ Normal(50, 100²)

这个先验足够宽,不会把不同模型的中心人为拉向总体平均值。模型之间共享的是领域噪声尺度,而不是能力均值。

用 Monte Carlo 合成宏观后验分布

模型拟合使用 4 条 Gibbs 链,每条链在预热和抽稀后保留 4,000 个样本,即每个领域共有 16,000 个保留样本。

对每一个 Monte Carlo 样本,按照相同业务权重合成宏观分:

text
posterior_score[k]
  = 1/2 × theta_coding[k]
  + 1/3 × theta_agentic[k]
  + 1/6 × theta_cyber[k]

最终取宏观后验分布的三个分位数:

text
后验中位数   = 第 50 百分位
90% 区间下限 = 第 5 百分位
90% 区间上限 = 第 95 百分位

这会让 benchmark 数量和波动以更自然的方式进入结果:

  • benchmark 越少,模型中心估计通常越不精确,区间越宽;
  • 同一模型在不同 benchmark 上波动越大,区间越宽;
  • 某个领域本身分歧越大,共享的领域噪声尺度越高,该领域对总区间的贡献也越大。

这里的 90% 到底是什么

90% 指的是 Bayesian 后验可信区间:

text
P(lower <= latent_macro_score <= upper
  | observed_benchmarks, weights, model_assumptions)
  = 0.90

换成自然语言就是:在当前 benchmark 数据、领域权重、Student-t 模型和先验假设成立的条件下,潜在宏观分有 90% 的后验概率落在这个范围内。

它不是“这个模型有 90% 可信度”,不是未来一定有 90% 的 benchmark 落在区间内,也不是单个 benchmark 内任务成功率的统计误差。这里使用“漂移区间”这个名称,是为了强调宏观判断可能上下移动,而不是给模型贴一个抽象的信心标签。

从结果看,梯队比精确名次更可靠

Fable 5 和 GPT-5.6 Sol 的当前分在一位小数精度下都是 94.5,后验区间也高度重叠。两者可以视为第一梯队,现有证据不足以支持确定性的第一名判断。

DeepSeek-V4 Pro-0813 的当前分达到 92.5,但 90% 区间为 81.0–97.1,是领先模型中最宽的。主要原因是它在 Coding 只有 3/8、Cyber 只有 1/3 的 benchmark 有结果。它的上限很高,但宏观稳定性的证据弱于 Fable 和 GPT。

GLM-5.3 的当前分为 87.6,区间为 81.7–94.1。完整覆盖让它的结果相对稳定,可以看作更可靠的第二梯队,但区间仍与 DeepSeek 明显重叠。

Kimi K3 和 Opus 4.8 的当前分都在 80.3 左右,后验区间大量重叠,应视为同一梯队。把 0.1 分以内的差异解释为能力排名,精度远远超过了数据能够支持的程度。

为什么当前分和后验中位数会不同

当前分是普通平均数,后验中位数则来自 Student-t 稳健位置模型。如果某个模型在少数 benchmark 上出现极低或极高结果,Student-t 会降低这些极端值对中心的影响,因此两者可能存在差异。

例如 Qwen3.8-Max 和 GLM-5.2 的后验中位数高于当前分。这不代表 Bayesian 模型“给它们加分”,而是说明普通平均数更容易被低端极值拉低。

为了让榜单口径稳定,正式排序继续使用当前分;后验中位数只作为稳健性诊断。只有在未来明确决定把稳健中心作为新的主指标时,才应该整体切换,而不是在两种分数之间选择对某个模型更有利的一种。

收敛和敏感性检查

四条链的抽样诊断结果如下:

  • 最大 R-hat 为 1.0003;
  • 最小有效样本量为 8,403;
  • 将 Student-t 自由度从 4 调整为 8,或把 Terminal Bench 2.1 和 3.0 合并为同一相关家族,后验中位数最大变化为 1.18 分;
  • 主要梯队判断没有改变。

这些检查说明 Monte Carlo 抽样已经稳定,主要结论也不依赖某一个非常狭窄的模型设定。但它们不能修复原始数据没有提供的内容,例如任务级样本数、重复运行方差或统一测试配置。

这套区间仍有明确边界

第一,输入来自截图转录,尚未与每个 benchmark 的官方页面逐项核对。它适合当前方法演示和相对比较,不适合直接作为采购或上线决策的唯一依据。

第二,这里估计的是 benchmark 级宏观不确定性。原表没有提供各 benchmark 的任务总数、成功数和重复运行方差,因此无法把单个 benchmark 内部的二项抽样误差或运行噪声纳入模型。

第三,模型假设已公布的 benchmark 对潜在能力具有一定代表性。如果缺失是选择性的,例如只公布优势项目,后验区间仍可能偏乐观。

第四,不同系统的 harness、工具权限、fallback、采样次数和 test-time compute 可能不同。统计模型能够表达分数的离散程度,但不能自动把测试配置变成可比条件。

一个适合长期维护的发布口径

最终推荐的主表仍然只有四列:

text
模型/系统 | 当前分 | 后验中位数 | 90% 漂移区间

排序按当前分,稳定性看后验中位数和区间。区间高度重叠时使用梯队描述,不根据小数点后的微小差异制造确定名次。如果确实需要比较两个指定模型,可以在正文中补充 P(A > B),但不必把它设为常驻列。

这套设计把“性能”和“证据强度”分开表达:加权分保留业务偏好,后验中位数提供稳健中心,漂移区间承载 benchmark 数量与波动。它不能消除 benchmark 的局限,但能让宏观比较少一些虚假的精确感。