绝大多数大模型 benchmark 都在考"答案已经存在"的题;WorldCupArena 反过来,只考"答案还没揭晓"的题——在开球前 24 小时把预测锁死,赛后再对着官方战报打分。它第一次把一场足球赛拆成比分、球员、事件、技战术、整届赛事五层结构来评估模型,并用一套设计得相当克制的评分数学,让"看起来都对了 68%“的模型分出高下。这篇文章真正有价值的地方,不在于"谁预测对了西班牙夺冠”,而在于它给出了一个结构上抗数据污染、且能随新赛事无限续期的评测范式。

一、为什么"赛前预测"是个被长期忽略的正确问题

我们先把这件事的定位说清楚,因为这决定了后面所有设计的合理性。

今天几乎所有主流 benchmark——从知识问答到代码到推理——本质上都在问一个答案已知的问题。它们测的是"你知不知道"和"你会不会推",但它们回答不了另一个问题:模型能不能在事件发生之前,给出一个有用的判断? 这两件事听上去接近,实际上是两种完全不同的能力。前者可以靠记忆和检索兜底,后者只能靠对"当前正在变化的信息"的组织与外推。

足球恰好是检验后者的理想场景,作者选它选得很讲究:

  1. 赛程是公开的——你知道下一场是谁打谁、什么时候开球,可以提前把题目登记好;
  2. 赛前信息一直在变——伤病、阵容、状态、赔率,开球前一刻才尘埃落定;
  3. 最终战报远不止"谁赢"——它包含比分、首发、进球时间、黄牌、控球率、射门数,直到整届赛事的晋级路线和冠军归属。

这三点合起来,意味着足球预测天然是一个**"信息随时间变化 + 输出高度结构化 + 真值赛后才产生"的任务。已有的体育 benchmark(SoccerNet-v2、MatchTime、Sports-QA、SPORTU 等)几乎都在研究已经踢完的比赛**——模型被评估时,答案早就在数据里了;而经典的足球预测模型(Poisson、Dixon-Coles、Elo、贝叶斯)又只盯着"结果/比分分布"这一个窄口径。WorldCupArena 把两者缺的那块补上了:用赛前设定,向通用模型索要一份完整预测

用一句更狠的话概括作者的立场:benchmark 会因为数据污染而"腐烂",而只有"预测尚未发生之事"这一种任务,在结构上对污染免疫。 这是全文最深的一层动机。


二、Benchmark 是怎么搭起来的

2.1 雷打不动的四步流程

无论换成哪个联赛或杯赛,每场比赛都走同样四步(这也是"可复用"的核心保证):

开球

① 登记未来赛程
match list · 时间 · 场地 · 赛制

② 收集赛前信息
阵容 · 近况 · 新闻 · 赔率 · 数据

③ 锁存模型预测
S1 统一证据 / S2 自主检索
开球前 24h 冻结

④ 赛后打分
官方战报到位后
T1–T5 评分

换赛事只改"赛程"和"赛制规则",这四步和场级指标一律不动。这就是为什么它能"一届接一届地续下去",而不必反复拿已经踢完的 2026 世界杯去测新模型。

2.2 两种取证方式:S1 vs S2

这是全文一个关键的对照设计:

  • S1(standardized context):每个模型拿到完全相同的一包证据(阵容、近况、统计、新闻、可用赔率),且不许用工具。这是"给定信息下的纯推理"。
  • S2(self-directed search):agent 只拿到赛程,必须自己去搜。这是"完整产品形态下的深度检索"。

作者非常诚实地强调:S1 vs S2 不是对模型架构的受控对比,因为不同厂商底座和搜索系统都不一样;它对比的是"用户拿到手的完整产品"在两种取证模式下的表现。这个自我限定很重要,后面 RQ3 的结论也据此收敛——这是做研究该有的分寸。

2.3 五层评估:从一场球到一届赛事

全文的分析骨架,是把预测按"范围与结构复杂度递增"分成五层:

T1 比分结果
weight 0.40

T2 球员阵容
0.20

T3 事件时间线
0.15

T4 技战术统计
0.15

T5 整届赛事
0.10

各层的目标、指标与权重(复现自原文 Table 1):

代表性目标指标层权重层内任务权重
T1 核心结果1X2 概率、精确比分、比分接近度、净胜球Brier / exact / scoreline0.401X2 0.35;exact 0.20;scoreline 0.30;净胜球 0.10;出线 0.05
T2 球员级首发、阵型、进球、助攻、全场最佳Jaccard / F1 / nDCG0.20首发 0.30;阵型 0.10;进球 0.35;助攻 0.15;MVP 0.10
T3 事件级进球时间、换人、牌、点球、乌龙matched MAE / event F10.15进球时间 0.45;换人 0.20;牌 0.25;点球 0.05;乌龙 0.05
T4 技战术/统计控球、射门、角球、传球、犯规、扑救sMAPE0.15阵型 0.15;八项统计 0.85
T5 赛事级小组排序、对阵签表、冠军、射手、奖项Kendall / bracket / top-10.10小组 0.25;签表 0.35;冠军 0.20;射手 0.10;奖项 0.10

于是总分(Composite)就是这五层的加权和:

Composite=0.40 T1+0.20 T2+0.15 T3+0.15 T4+0.10 T5 \text{Composite} = 0.40\,T_1 + 0.20\,T_2 + 0.15\,T_3 + 0.15\,T_4 + 0.10\,T_5 Composite=0.40T1+0.20T2+0.15T3+0.15T4+0.10T5

五个权重之和恰为 1,且把最大的份额(0.40)压在"比分结果"上——这与足球预测的直觉一致:先把最难、最重要的"谁赢、几比几"预测好,其余是加分项。

一个值得单独点出的工程巧思在 T5 的整届生成(附录 A.2):整届预测只用两次模型调用。第一次预测全部 72 场小组赛,然后由代码去算积分、净胜球、进球数并按官方规则解析出 8 个最佳第三名和 R32 席位;第二次再让模型基于它自己算出来的签表去预测 73–104 号淘汰赛。这样做的好处是——模型永远看不到真实签表,它必须在自己的小组预测之上一路推演到冠军。这堵住了一个非常隐蔽的作弊口子。


三、评分数学:本文最见功力的部分

这一节是精读的重点。我把四个核心公式逐一拆开,并且独立数值复算了原文声称的每一个数字——结论是:它们全都对得上,误差在小数点级别。这份内部一致性本身就是论文可信度的一部分。

3.1 Scoreline 分:一个被精心约束在 [0, 100] 的铰链评分

精确命中比分得 100 分;否则按下式给"接近分"(原文式 (1)):

Sscore=45 Ir  +  25 ⁣[1−ed5]+  +  20 ⁣[1−et6]+  +  10 ⁣[1−eteam8]+ S_{\text{score}} = 45\,I_r \;+\; 25\!\left[1-\frac{e_d}{5}\right]_+ \;+\; 20\!\left[1-\frac{e_t}{6}\right]_+ \;+\; 10\!\left[1-\frac{e_{team}}{8}\right]_+ Sscore=45Ir+25[15ed]++20[16et]++10[18eteam]+

其中 [x]+=max⁡(x,0)[x]_+ = \max(x, 0)[x]+=max(x,0)正部/铰链算子;IrI_rIr 是"胜平负类别是否预测正确"的指示变量;ed,et,eteame_d, e_t, e_{team}ed,et,eteam 分别是净胜球误差、总进球误差、逐队进球误差

先做一个漂亮的自洽性检验。 精确命中时 Ir=1I_r=1Ir=1ed=et=eteam=0e_d=e_t=e_{team}=0ed=et=eteam=0,代入得:

S=45+25+20+10=100 S = 45 + 25 + 20 + 10 = 100 S=45+25+20+10=100

也就是说,"精确得 100"并不是外挂上去的特例,而是式 (1) 本身在零误差处的取值。四个权重 45+25+20+10=10045+25+20+10=10045+25+20+10=100 的设计,正是为了让满分自然落在 100。铰链算子则保证任何一项都不会变负,于是再离谱的错误也不会产生负分——这句原文的话,数学上由 [⋅]+[\cdot]_+[]+ 严格兜底。

三个误差项其实是同一个二维误差向量的三种投影。 这是我认为原文没有点透、但非常值得展开的一层结构。记预测比分 (h^,a^)(\hat h, \hat a)(h^,a^)、真实比分 (h,a)(h, a)(h,a),令 δh=h^−h, δa=a^−a\delta_h=\hat h-h,\ \delta_a=\hat a-aδh=h^h, δa=a^a,则:

ed=∣δh−δa∣,et=∣δh+δa∣,eteam=∣δh∣+∣δa∣ e_d = |\delta_h - \delta_a|,\qquad e_t = |\delta_h + \delta_a|,\qquad e_{team} = |\delta_h| + |\delta_a| ed=δhδa,et=δh+δa,eteam=δh+δa

即:ede_ded 是误差沿"差轴"(净胜球方向)的投影,ete_tet 是沿"和轴"(总进球方向)的投影,而 eteame_{team}eteam 就是误差向量的 L1L_1L1 范数。由三角不等式立刻得到 ed≤eteame_d \le e_{team}edeteamet≤eteame_t \le e_{team}eteteam;更进一步有一个漂亮的恒等式:

ed+et=∣δh−δa∣+∣δh+δa∣=2max⁡(∣δh∣,∣δa∣)  ≥  eteam e_d + e_t = |\delta_h-\delta_a| + |\delta_h+\delta_a| = 2\max(|\delta_h|, |\delta_a|) \;\ge\; e_{team} ed+et=δhδa+δh+δa=2max(δh,δa)eteam

当且仅当至少有一队进球数被精确命中时取等。换句话说,三项误差不是彼此独立的"三次扣分",而是从同一个错误里量出的三个不同侧面——这解释了评分为何不会因为"重复惩罚同一个错误"而失真。

权重与容忍度的搭配透露了设计者的偏好排序。 注意权重是 25 > 20 > 10(净胜球 > 总进球 > 逐队进球),而分母容忍度是 5 < 6 < 8:

  • 最重要、也与"谁赢"最相关的净胜球,权重最高(25)、容忍最窄(÷5),要求你在这里最精确;
  • 最难精确对齐的逐队进球,权重最低(10)、容忍最宽(÷8),给最多的宽容。

这套"越重要越苛刻、越苛刻越轻分"的标定不是随手写的,它把"想奖励什么"清清楚楚编码进了公式。

两个手算例子(均已用脚本复核):

例 1,预测 2–1、实际 3–1(原文举的例子):Ir=1I_r=1Ir=1ed=∣(2 ⁣− ⁣1)−(3 ⁣− ⁣1)∣=1e_d=|(2\!-\!1)-(3\!-\!1)|=1ed=(21)(31)=1et=∣3−4∣=1e_t=|3-4|=1et=∣34∣=1eteam=∣−1∣+∣0∣=1e_{team}=|{-1}|+|0|=1eteam=1+∣0∣=1

S=45+25(1−15)+20(1−16)+10(1−18)=45+20+16.67+8.75=90.42 S = 45 + 25(1-\tfrac15) + 20(1-\tfrac16) + 10(1-\tfrac18) = 45 + 20 + 16.67 + 8.75 = 90.42 S=45+25(151)+20(161)+10(181)=45+20+16.67+8.75=90.42

方向对、比分近,拿到 90.42 分——比精确命中的 100 略低,符合直觉。

例 2,预测 0–3、实际 3–0(把胜负完全预测反了):Ir=0I_r=0Ir=0ed=6e_d=6ed=6(差轴误差极大,[1−6/5]+=0[1-6/5]_+=0[16/5]+=0),et=0e_t=0et=0(和轴——总进球都是 3,命中),eteam=6e_{team}=6eteam=6

S=0+0+20⋅1+10(1−68)=0+0+20+2.5=22.5 S = 0 + 0 + 20\cdot 1 + 10(1-\tfrac68) = 0 + 0 + 20 + 2.5 = 22.5 S=0+0+201+10(186)=0+0+20+2.5=22.5

这个例子很能说明问题:即便赢家彻底猜反,只要你判断对了"这会是一场 3 球的比赛","和轴"投影仍给你 20 分。这正是三投影正交性的体现——它精准奖励了你唯一做对的那件事,而把你做错的(谁赢、净胜球)归零。是否要给这 20 分见仁见智,但公式的行为是可解释、可预期的,这已经胜过很多拍脑袋的加权。

3.2 可用性感知聚合:区分"没发生"和"没数据"

赛后战报常有字段缺失(比如某场没记录"全场最佳"或阵型)。作者的处理是把缺失真值排除,而不是当成 0 分。在"任务→层"和"层→总分"两级都用同一条加权均值(原文式 (2)):

SA=∑j∈AwjSj∑j∈Awj S_A = \frac{\sum_{j \in A} w_j S_j}{\sum_{j \in A} w_j} SA=jAwjjAwjSj

其中 AAA可用分量的集合,分母对可用权重重新归一化。这个式子本身平平无奇,真正重要的是它背后那句方法论:

“'没有发生’和’没有数据’是两回事。”(There is an important difference between “none happened” and “no data”.)

一场确认没有红牌的比赛,可以支撑"预测无红牌"这条正确判断(照常计分);而一条缺失的红牌记录,只是被排除。把数据供应商的覆盖缺口,和现实中的"确实没发生"分开——这是很多评测偷懒时最容易踩的坑(一律填默认值 0),本文没踩,值得记一笔。

3.3 固定对比标定:一条只改间距、不改排名的显示变换

原始总分挤在 50 附近的窄区间里,微小但稳定的差距在榜单上根本看不出来。作者用一条固定的 S 形(sigmoid)变换来"拉开中段"(原文式 (3)):

C(R)=100⋅σ ⁣((R−50)/5)−σ(−10)σ(10)−σ(−10),σ(x)=11+e−x C(R) = 100 \cdot \frac{\sigma\!\big((R-50)/5\big) - \sigma(-10)}{\sigma(10) - \sigma(-10)}, \qquad \sigma(x)=\frac{1}{1+e^{-x}} C(R)=100σ(10)σ(10)σ((R50)/5)σ(10),σ(x)=1+ex1

它可以被理解成一个带中心 ccc温度 TTT 的通用形式,式 (3) 是 c=50, T=5c=50,\,T=5c=50,T=5 的特例:

C(R)=100⋅σ ⁣((R−c)/T)−σ ⁣((0−c)/T)σ ⁣((100−c)/T)−σ ⁣((0−c)/T) C(R) = 100 \cdot \frac{\sigma\!\big((R-c)/T\big) - \sigma\!\big((0-c)/T\big)}{\sigma\!\big((100-c)/T\big) - \sigma\!\big((0-c)/T\big)} C(R)=100σ((100c)/T)σ((0c)/T)σ((Rc)/T)σ((0c)/T)

我逐条验证了作者声称的三条性质:

  1. 保序(不改排名)σ\sigmaσ 严格单调递增,外层是"减常数 → 除以正数 → 乘 100"的仿射变换,全程保序。所以 RA>RB⇒C(RA)>C(RB)R_A > R_B \Rightarrow C(R_A) > C(R_B)RA>RBC(RA)>C(RB),排名分毫不动。
  2. 锚定端点 0 和 100R=0R=0R=0 时内参为 (0−50)/5=−10(0-50)/5=-10(050)/5=10,分子 σ(−10)−σ(−10)=0\sigma(-10)-\sigma(-10)=0σ(10)σ(10)=0,故 C(0)=0C(0)=0C(0)=0R=100R=100R=100 时内参为 101010,分子=分母,故 C(100)=100C(100)=100C(100)=100。脚本复算 C(0)=0.0, C(100)=100.0C(0)=0.0,\ C(100)=100.0C(0)=0.0, C(100)=100.0,✅。
  3. 与当前模型集合无关:变换只用固定常数(50、5、±10\pm10±10),不含均值/方差这类随数据变化的量。因此新增或移除模型,任何已显示分数都不变——这对一个滚动更新的榜单至关重要。

再把原文那句"把原始分 44 和 47 变成 23.15 和 35.43"复算一遍:

C(44)=100⋅σ(−1.2)−σ(−10)σ(10)−σ(−10)=100⋅0.23148−4.54×10−50.99991≈23.15 C(44) = 100\cdot\frac{\sigma(-1.2)-\sigma(-10)}{\sigma(10)-\sigma(-10)} = 100\cdot\frac{0.23148-4.54\times10^{-5}}{0.99991} \approx 23.15 C(44)=100σ(10)σ(10)σ(1.2)σ(10)=1000.999910.231484.54×10523.15
C(47)=100⋅σ(−0.6)−σ(−10)σ(10)−σ(−10)=100⋅0.35434−4.54×10−50.99991≈35.43 C(47) = 100\cdot\frac{\sigma(-0.6)-\sigma(-10)}{\sigma(10)-\sigma(-10)} = 100\cdot\frac{0.35434-4.54\times10^{-5}}{0.99991} \approx 35.43 C(47)=100σ(10)σ(10)σ(0.6)σ(10)=1000.999910.354344.54×10535.43

两个数字精确吻合。3 分的原始差(44→47)被放大成约 12 分的显示差(23.15→35.43)——sigmoid 在中心 R=50R=50R=50 处斜率最大,正好把扎堆的中段拉开。作者还说明:总分用这套"较强"设置(T=5T=5T=5),各层分用"较温和"的变换(即更大的温度 TTT、更平的曲线、更小的放大),而 Scoreline 显示值用的是中心 70、温度 5 的同族变换——这也是为什么榜单里 Scoreline 会出现 63.16、68.49 这类数值,作者特意提醒:它是显示值,不能当准确率百分比读。

3.4 完整赛事分 T5:把"选对冠军"和"走对路线"分开算

整届完赛后,T5 由四部分合成(原文式 (4)):

T5complete=0.25 G+0.35(0.7 A+0.3 M)+0.20 H0.80 T5_{\text{complete}} = \frac{0.25\,G + 0.35\big(0.7\,A + 0.3\,M\big) + 0.20\,H}{0.80} T5complete=0.800.25G+0.35(0.7A+0.3M)+0.20H

  • GGG:小组排序接近度,用 Kendall’s τ\tauτ 衡量预测排序与真实排序的一致性;
  • AAAround-weighted advancement,“正确的球队是否晋级到第 rrr 轮”,只看选没选对人;
  • MMMround-weighted exact-pairing,“该轮的具体对阵是否精确命中”,看有没有摆对签表位置;
  • HHH:冠军指示,预测西班牙夺冠得 100,否则 0。

轮次权重从 R32 到决赛为 1, 2, 4, 8, 16(几何翻倍)——押中决赛的价值是押中一场 R32 的 16 倍,合理地体现了"越到后面越难、越有信息量"。

为什么分母是 0.80? 这正是 §3.2 那条可用性原则的又一次应用。按 Table 1,完整 T5 的五个分量权重为 小组 0.25 + 签表 0.35 + 冠军 0.20 + 射手 0.10 + 奖项 0.10 = 1.00。而射手/奖项在这个快照里还没有规范化的赛事级真值,于是被排除,剩下 0.25+0.35+0.20=0.800.25+0.35+0.20=0.800.25+0.35+0.20=0.80,除以 0.80 完成重新归一化。方法论一以贯之。

用榜单真实数字复算(脚本逐行验证,全部命中):

以 Claude Opus 4.7 (Thinking + Search) 为例,G=87.5, A=87.0, M=71.0, H=100G=87.5,\ A=87.0,\ M=71.0,\ H=100G=87.5, A=87.0, M=71.0, H=100

T5=0.25(87.5)+0.35(0.7⋅87.0+0.3⋅71.0)+0.20(100)0.80=21.875+28.77+200.80=70.6450.80=88.31 T5 = \frac{0.25(87.5) + 0.35\big(0.7\cdot87.0 + 0.3\cdot71.0\big) + 0.20(100)}{0.80} = \frac{21.875 + 28.77 + 20}{0.80} = \frac{70.645}{0.80} = 88.31 T5=0.800.25(87.5)+0.35(0.787.0+0.371.0)+0.20(100)=0.8021.875+28.77+20=0.8070.645=88.31

对上原文的 88.3。同法复算:Claude Thinking → 87.4 ✅;GPT-5.4 → 73.1 ✅;GLM-5.1 → 48.1 ✅。

AAAMMM 的拆分是这一段最有价值的设计:它把"你知不知道哪些队强"(AAA)和"你摆没摆对签表"(MMM)分开。于是一个通过正确签表路线押中冠军的模型,和一个误打误撞押中冠军的模型,得到的分数不同。冠军项 HHH 贡献 20/0.80=2520/0.80 = 2520/0.80=25 个显示分——这 25 分,正是榜单上"押中冠军的四家(73.1、72.8、87.4、88.3)"与"没押中的一众(39.1–49.0)"之间那道鸿沟的来源。

3.5 其余指标一览

  • T1 三路 Brier:概率预测的严格适当评分(strictly proper scoring rule),奖励良好校准、惩罚过度自信。原文把它重标定为"越大越好"(Table 4 里是 79.8/78.5/79.4 这样的 0–100 刻度)。
  • T2:首发用 Jaccard(集合重合度),射手排序用 nDCG(把正确球员排得越靠前奖励越高,引 Järvelin & Kekäläinen 2002)。
  • T3:进球/牌/换人先用匈牙利算法(Kuhn 1955,二部图最优指派)把预测事件匹配到真实事件,再对时间做 matched MAE,对人/分钟的偏差扣分——一个把"事件对齐"这件麻烦事处理得很干净的选择。
  • T4:控球、射门、角球等计数类用 sMAPE(对称百分比误差,有界、对称、能跨越不同量纲的统计项)。

四、实验:六个 RQ 讲清了什么

作者用六个研究问题组织实验,全部 104 场、13 个系统。先复现主榜(原文 Table 2,NNN 为有效预测数):

模型设定NNNCompositeResultExactScoreline
Claude Opus 4.7 (Thinking)S19533.7668.415.863.16
Claude Opus 4.7 (Thinking + Search)S25831.2670.717.268.49
GPT-5.4S110229.9165.711.856.05
GLM-5.1S110328.5968.013.662.27
GPT-5.4 (Search)S29728.1468.010.358.78
Kimi K2.6S110127.4968.312.962.65
MiniMax M2.7S110126.5365.312.957.35
DeepSeek V4 ProS110326.3168.011.761.02
Gemini 3.1 Pro Preview (Thinking + Search)S28526.1163.511.854.54
Gemini Deep ResearchS25825.4958.612.141.36
Doubao Seed 2.0 LiteS110224.0667.610.858.16
Gemini 3.1 Pro Preview (Thinking)S110223.6959.812.736.95
Qwen3.7 MaxS110422.7861.510.639.85
Polymarket(基线)10465.48.7
BetVictor(基线)10468.316.353.35
人类球迷(基线)9469.715.653.40

RQ1 / RQ2——细粒度暴露了 Result accuracy 藏起来的差异。 好几个系统的胜负正确率都卡在约 68%,只看这一列几乎分不出高下;但一旦看 Exact(只有 10.3%–17.2%)和 Scoreline,差距立刻显现。更关键的是没有任何一个系统包揽全部五层:Claude Thinking 领跑 T1/T2,其检索版领跑 T3,而 Gemini Deep Research 领跑 T4。这正是全文最想证明的一点——“结果正确率相近的模型,在球员、事件、统计上可以天差地别”。

RQ3——加检索并没有稳定地帮上忙,反而普遍略降。 对三个同时测了带/不带检索的模型,不带检索的版本在各自的共享比赛上都更高:加检索使总分变化 −0.26(Claude, N=50N{=}50N=50)、−4.26(GPT-5.4, N=95N{=}95N=95)、−1.03(Gemini, N=82N{=}82N=82),三个全是负的。这是个相当反直觉、也相当有料的发现。作者的克制在于紧接一句"这些是商业产品而非同底座模型,只能说明现象、不能归因"——分寸拿捏得当。

RQ5——对阵市场与球迷,最强模型的优势主要体现在"差得近",而非"押得准"。 Claude Opus 4.7 (Thinking + Search) 的 70.7% 胜负率,仅比人类球迷高 1.0 个百分点、比 BetVictor 高 2.4、比 Polymarket 高 5.3;Exact 17.2% 也只比最强的 Exact 基线 BetVictor 高 0.9。但 Scoreline 68.49 比 BetVictor 高 15.14、比球迷高 15.09。结论很清楚:模型没有在"严格命中"上碾压市场(博彩赔率历来极难击败),它赢在猜错时也猜得更接近真实比分。作者同样点明这是描述性而非配对比较(覆盖场次不同:Claude 检索版仅 58 场,球迷 94 场,市场 104 场)。

RQ4——整届层面:小组排序好猜,淘汰赛路线难猜。 复现原文 Table 3 的关键几行:

模型设定GroupAdv.PairChamp.T5
Claude Opus 4.7 (Thinking + Search)S287.587.071.0100.088.3
Claude Opus 4.7 (Thinking)S184.787.070.4100.087.4
GPT-5.4S186.160.819.4100.073.1
Doubao Seed 2.0 LiteS188.958.715.3100.072.8
DeepSeek V4 ProS188.960.720.20.049.0
Gemini 3.1 Pro Preview (Thinking)S183.334.917.70.039.1

Group 分挤在窄窄的 83.3–88.9,而 Pairing 分从 15.3 一路铺到 71.0。两个 Claude 之所以断层领先,正因为它们既押中冠军西班牙,又押中了西班牙–阿根廷这个精确的决赛对阵(Pair 70.4/71.0,其余多在 19 上下)。这就是 §3.4 里"AAAMMM 拆分"的意义在真实数据上的兑现。

RQ6——赛中(in-play)更新:模型会随比分变化而调整,但这不等于"预判了进球"。 在 100 场、2957 个有效 checkpoint 上,比分发生变化后的胜负正确率从变化前的 55.4–66.9% 跳到变化后的 77.4–78.9%。作者非常谨慎地把这解读为"对新观测状态的适应,而非模型独立预见了进球"——又一次把话说到位。顺带一提,作者拒绝把这套采样描述成"严格的十分钟一次",而是老老实实报告中位间隔 6.8 分钟、四分位区间 6.2–12.4,并对缺失 checkpoint 不做插值。这种对自己数据管道的诚实,在 benchmark 论文里并不常见。

一致性失败:模型们手拉手一起翻车

原文 Table 6 是全文我最喜欢的一张表——它专挑所有系统都猜错的比赛:

对阵实际主流预测失败模式
西班牙–佛得角0–013 家全押 3–0 或 4–0极端热门被逼平,剃光头
荷兰–日本2–212 家押 2–1胜负与比分的高度一致共识
法国–英格兰(三四名)4–6全押 2–1/3–2/3–1一致看好的一方在十球大战里被逆转

其中西班牙–佛得角,市场(去掉抽水后)给西班牙 89.1% 胜率,13 个系统全押 3–0 或 4–0,结果 0–0。这些例子共同说明一件事:当前这批模型高度相关地跟随同一个"热门",一起对、也一起错——即使比赛演化成极不寻常的比分。对"模型多样性"这个话题,这是很有分量的实证。

难度分层(原文 Table 5)的一个反直觉点

  • 重量级热门(某结果 ≥65%):胜负好猜(75.5%),但精确比分并没有变简单(Exact 仅 9.6%);
  • 低比分(总进球 ≤1):全局最难,胜负率 57.7%、Exact 仅 4.6%。

“热门让赢家好猜,但不让比分好猜”——这句朴素结论背后,是把评测从"一个总分"细化到"分层看"的方法收益。


五、研究的意义与不足

如果只能留下三句话,我会这么概括它的贡献:

第一,它把"评测抗污染"从一个防御性补丁,升级成了一种主动的范式。 别的 benchmark 想尽办法防止题目泄露、防止训练集混入答案;WorldCupArena 直接选择了一类答案在评测时根本还不存在的任务。一个赛事踢完,就换下一个联赛/杯赛续上——benchmark 靠"新比赛"生长,而不是靠"假装旧结果未知"。这一步,把足球从一个"有趣的应用场景"抬升为"一种结构上正确的评测机制"。

第二,它证明了"结果正确率"是一个具有误导性的单一指标,并给出了拆解它的完整工具。 从五层 taxonomy,到 Scoreline 的三投影铰链评分,到区分"没发生/没数据"的可用性聚合,再到保序的 sigmoid 显示标定——每一件都是为了让"看起来都对了 68%"的模型,在球员、事件、统计、整届路线上分出真实高下。而且这套评分数值上完全自洽、可独立复算(本文逐一验证过),这对一个声称要"长期公开、可审计"的 benchmark 而言,是信誉的地基。

第三,它给出了一批诚实到有点扫兴、但极其有价值的负面/中性结论。 加检索没稳定帮上忙、最强模型只微弱超越博彩市场、模型们在冷门上集体翻车、赛中"更新"不等于"预见"——这些结论没有一条在替大模型吹嘘。恰恰是这种不替任何人站台的克制,让这份 benchmark 值得信任。研究的意义常常不在于"证明了 A 很强",而在于"提供了一把能公正地量出 A 到底强在哪、弱在哪的尺子"——WorldCupArena 做的正是后一件事。

至于不足,克制地说三点,供后续跟进:S1 与 S2 因底座和搜索系统不同,终究不是受控对比,"检索是否有害"只能存疑而非定论(作者已明确承认);式 (1) 中 eteame_{team}eteam 的具体归约(逐队绝对误差是求和、取大还是取均)在正文里留给了读者去补,本文按"逐队绝对误差之和"来解读并复算通过,但严格定义值得在开源代码里对照确认;以及目前只跑通了一届世界杯(n=1n=1n=1 个赛事),"迁移到联赛"这一核心卖点尚待第二届去兑现。这些都不影响它作为范式的价值——论文本就诚实地把这些边界写进了附录 A.5。


结语

WorldCupArena 最打动人的地方,是它把一个几乎所有人都忽略的问题问了出来:我们有没有认真测过,模型能不能在答案揭晓之前,说出一句有用的话? 它用足球给出了一个可操作、可续期、可审计的答案框架,并且用一套克制而自洽的数学,把"赛前的一句判断"变成了可以逐层打分的结构。2026 世界杯只是它的第一次开球,而不是终场哨。

更多推荐