一篇读懂 ELO:模型竞技场排行榜背后的数学

打开任意一个模型竞技场排行榜(LMArena、各家评测机构的对战榜),你会看到模型后面跟着一个分数:1400、1385、1338……分数差 20 分意味着什么?这个数是怎么从人类用户的一次次「左边更好 / 右边更好」投票里长出来的?答案要从一个下棋的老先生讲起——这套数学优雅到值得每个工程师读一遍,而且它还藏着排行榜使用中最容易被误读的一个细节(见文末置信区间)。

Elo:用「期望胜率」记账

Elo 等级分由物理学家 Arpad Elo 为国际象棋设计(1960 年被美国棋联采用),核心是一个心理物理学的假设:棋手的发挥近似正态分布,等级分之差可以直接换算成期望胜率。换算公式是:

E_A = 1 / (1 + 10^((R_B − R_A) / 400))

R_A、R_B 是两人的分数,E_A 是 A 的期望胜率。分母里的 400 是尺度常数:分差 400 分 ≈ 期望胜率 10:1;分差 100 分约 64:36;分差为 0 则五五开。这个 10 的指数形式让「分数差」有了直觉意义——每差 400 分,弱者赢一局的概率掉一个数量级。

对局之后按实际结果修正分数:

R_A ← R_A + K · (S_A − E_A)

S_A 是实际结果(赢 1 / 平 0.5 / 输 0),K 是更新步长(新人用大 K 快速就位,成熟选手用小 K 保持稳定)。直觉是:赢了不该赢的,大涨;输了不该输的,大跌;意料之中的胜负,涨跌有限。一个 Python 版只需三行:

def elo_update(ra, rb, sa, k=32):
    ea = 1 / (1 + 10 ** ((rb - ra) / 400))   # A 的期望胜率
    return ra + k * (sa - ea), rb + k * ((1 - sa) - (1 - ea))

在线游戏排位、足球评级用的都是这套或它的变体。

从国际象棋到模型对战:迁移中的两处改造

把「棋手」换成「模型」,对战数据来自竞技场的人类盲测投票,机制可以直接照搬——但有两处不得不改:

  1. 没有「平局」的精细处理:模型对战平局率高(都很礼貌、都正确时),Arena 把平局计 0.5 分并做同票拆分处理;
  2. 对局量极不均匀:新模型一发布就被疯狂挑战,老模型一天没几局——在线 Elo 的更新依赖对局顺序,顺序不同结果会漂。

第二点是致命的:Elo 的分数理论上应该反映「实力」,但在线更新让它对对局的先后顺序敏感。两个团队拿同一批对战数据按不同顺序跑 Elo,排行榜可能给出不同的名次。

Bradley-Terry:把「逐场记账」换成「全量联立」

竞技场的解法是 2023 年 12 月公布的换引擎:放弃在线 Elo,改用 Bradley-Terry 模型做全局拟合。BT 模型(谱系可追溯到 Zermelo 1929、Bradley & Terry 1952)在数学上是 Elo 的「静态版」:它假设每个模型有一个潜在实力 θ,A 胜 B 的概率为:

P(A 胜 B) = e^(θA) / (e^(θA) + e^(θB))

然后用全部对战数据一次性做最大似然估计,联立解出所有模型的 θ。它和 Elo 用同一族概率假设(把 e 换成 10 的幂、尺度一换,两者等价),区别只在估计方式:Elo 逐场流式更新,BT 全量联合求解——不依赖顺序、可复现、还能顺手给出统计性质。最后把 BT 系数换算回 Elo 尺度展示,排行榜上的数字看起来还是「Elo 分」,引擎已经换了。

Arena 官方给出的理由是 BT 产生「显著更稳定的排名与更精确的置信区间」,并且公开了计算 notebook:MLE 拟合 BT + bootstrap 重采样约 100 次算 95% 置信区间。

最容易被误读的细节:置信区间

排行榜上每个分数旁边有个 ± 号(如 1385 ± 8)——这个区间比分数本身重要。两模型分数差 15 分,但区间各 ±10,重叠了,正确的读法是「统计上分不出高低」;竞技场的排名展示也按这个原则给并列名次。另一个实用规则:新模型的对战票数达到几百以上,置信区间才收敛到有意义的宽度——看到刚上线的新模型分数暴涨,先看票数和区间宽度,样本不足时排名是噪声。

排行榜方法论本身也有边界:竞技场测的是「人类偏好」,风格、格式、长度都可能带票(评测的更多坑见《大模型评测基准的坑》),所以主流做法是把竞技场分与静态基准、领域评测三面互证。

结语

从国际象棋的等级分到大模型排行榜,中间隔着 60 年和一次「在线 → 全量」的统计升级,不变的是同一个假设:实力可以投影到一个一维刻度上,胜负是刻度的随机采样。Elo 教会我们用期望胜率记账,Bradley-Terry 教会我们用全量数据消除顺序的偏倚,置信区间提醒我们:任何排名都有它的测量误差。下次看到「模型 A 领先模型 B 五分」,你会知道该问的是——区间重叠了吗?

参考资料

← 返回资讯列表

读者留言

COMMENTS 暂无
仅本站原创文章开放留言 · 请勿留下手机号、邮箱等个人信息

还没有留言,来说第一句?