跳到主内容

Elo 是怎么算的?对战更新,过程拆开看

2026-10-18 发布 来源:我告诉你AI导航 阅读

国际象棋圈用了半个世纪的老算法,如今被搬来给大模型排座次,它就是 Elo。这个体系只做一件事:每打一场,就根据「赛前预期」和「实际结果」更新双方分数。赢了强敌大涨,赢了弱旅小赚,输给弱旅重挫,AI 大模型对战榜单的座次就是这样一场一...

国际象棋圈用了半个世纪的老算法,如今被搬来给大模型排座次,它就是 Elo。这个体系只做一件事:每打一场,就根据「赛前预期」和「实际结果」更新双方分数。赢了强敌大涨,赢了弱旅小赚,输给弱旅重挫,AI 大模型对战榜单的座次就是这样一场一场滚出来的。

核心想法:赢了强敌多赚

Elo 先用双方分差算出期望胜率。分数差距越大,强者被预期赢得越轻松;实际结果与预期一比,就有了更新依据。爆冷打赢比自己强太多的对手,涨分狠;名正言顺地赢下明显更弱的对手,涨分少;反过来,输给弱者扣得也重。这套机制让分数自动反映「对手是谁」:同样十连胜,从高手堆里杀出来的含金量,系统自己就记进了分差里。

一场对战后的分数更新

走一遍最小流程。假设 A 当前 1200 分,B 是 1000 分,分差 200。第一步查期望:按标准换算,分差 200 对应 A 的预期胜率约七成六。第二步记结果:A 真的赢了,记 1 分。第三步定系数:更新幅度乘以一个 K 值,新秀用大 K 快速归位,老将用小 K 保持稳定,K 常取 16 到 32 之间。第四步算增量:A 的实际表现超出预期两成四,乘 K 后涨约八分,B 相应跌约八分,一方所失即另一方所得。就这么四步,进来两个分数和一个胜负结果,出去两个新分数。

拿 1200 分对 1000 分走一遍,四步就出结果。

步骤本例取值(A 1200 对 B 1000)这一步定什么
查期望分差 200,A 的预期胜率约七成六赛前该赢多少的基准
记结果A 真的赢了,记 1 分实际表现与预期差多少
定系数K 常取 16 到 32,新秀用大 K,老将用小 K更新幅度与稳定度怎么平衡
算增量超出预期两成四,乘 K 后 A 涨约八分,B 跌约八分一方所失即另一方所得

场次要攒多少才稳

Elo 早期对场次极敏感:新模型刚入场打十几场,分数可能大起大落,这时的排名看看就好。一般要几十上百场后,分数才沉淀出相对稳定的水平。所以读对战榜单先看场次栏:场次相近的模型之间比座次才有意义,场次悬殊的要谨慎。此外,对战结果本身有随机性,谁抽到哪道题、评委当天口味都有波动,分数旁边如果没有波动范围,建议参照胜率统计的场次原则自查一下样本量够不够。

Elo 速查表

  • 输入:双方当前分与一场胜负结果
  • 更新幅度:取决于分差、结果与 K 值
  • 读榜前提:先看场次,再看座次
  • 座次含义:反映相对强弱,不代表具体水平的高低

读 Elo 榜单的三个习惯

习惯一:只比场次充足的相邻名次,隔了几十名的差距不用问,肯定显著。习惯二:关注分数走势而不是单点,一个模型连续一周缓步上扬,比某天冲高一次更可信。习惯三:分清对战榜与答题榜,两者测的东西不同,对战榜反映人类评委的偏好,答题榜反映客观题正确率,互相不能替代。对战数据的原始来源里,人类评委的采集方式决定了数据质量,可回看人工评测流程;若裁判模型参与判胜负,先确认经过裁判模型校准。Elo 之外的补充视角还有长文本与专业任务的表现,比如大海捞针的长文检索和代码评测的沙箱跑分,多角度拼图才完整。

对战数据的采集质量直接决定 Elo 的成色。同一道题双方各答一次、评委只看回答不看身份,这是底线;若允许同一评委反复刷同一场对决,数据会被个人偏好污染。平台侧通常做两件事:限制单人评审量、给评委的一致性打分并淘汰不认真者。这些工程细节不出现在算法公式里,却比公式本身更影响榜单可信度,读榜单时若能找到平台对评审机制的说明,可信度评估会顺手得多。

聊聊Elo计算的常见疑问

  • 两个模型的分差多少才算拉开?:没有固定门槛,结合双方场次与波动看,分差小且场次少时按打平处理最稳妥。
  • K 值越大越好吗?:K 大收敛快但抖动大,K 小稳定但归位慢,新模型先用大 K 再过渡到小 K 是常见做法。
  • Elo 分数能跨榜单比较吗?:不能,各榜单的对战池、评委构成与 K 值设定不同,分数只在本体系内有意义。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]