Chatbot Arena 如何用成对偏好、Elo 或 Bradley–Terry 排名模型?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
用 Bradley–Terry 的胜率公式建立统计模型:两个模型潜在分数之差经过 Sigmoid 得到胜率;Elo 则按每场结果在线更新。一定说明 Rating 是相对值,依赖对手和提示分布,不是绝对能力。追问 Arena 偏差时,补充左右位置随机化、异常投票过滤和 Bootstrap 置信区间。
可以这样答:
Bradley–Terry 假设每个模型有潜在分数,模型 i 战胜 j 的概率是两者分差经过 Sigmoid;Elo 则根据预期胜率与实际结果逐场更新 Rating。它们都能聚合成对偏好,但分数是相对于当前对手集合和提示分布的,不代表绝对能力。可靠排名还要随机左右位置、控制重复或异常投票,并用 Bootstrap 给出不确定区间。
核心回答
Arena 式评测让两个匿名模型回答同一 Prompt,由用户选择 A、B、平局或都不好,再把大量成对结果聚合成相对排名。Elo 把每场结果按当前预期胜率在线更新评分,适合持续到来的比赛;Bradley–Terry(BT)为每个模型学习潜在强度,并用强度差的 Logistic 函数表示成对胜率,可对一批比较做极大似然估计。
二者给出的都是相对尺度,不是“模型有 1200 分能力”的绝对测量。排名取决于 Prompt 分布、参与投票的人群、对手图和时间窗口;模型间分差小于不确定区间时,不应宣称有稳定先后。
展开说明
BT 可写成:若模型 \(i\)、\(j\) 的强度为 \(s_i\)、\(s_j\),则
\[\begin{aligned} \Pr(i \succ j) &= \frac{\exp(s_i)}{\exp(s_i) + \exp(s_j)} \\ &= \sigma(s_i - s_j) \end{aligned}\]Elo 采用类似的预期胜率,但用学习率逐场更新,结果可能受比赛顺序和超参数影响;批量 BT 会全局拟合已有数据。平局可以拆成半胜半负或使用显式平局模型,不同处理会改变估计,因此报告必须说明规则。
如果两个模型几乎没有共同对手,排名连接性会很弱。提示被某一语言、领域或长度主导,也只说明该流量分布上的偏好。匿名能减少品牌偏差,但输出风格仍可能暴露模型身份。
工程实践
保存匿名化和随机展示顺序,过滤机器人、重复或异常投票,同时避免按结果选择性删票。报告样本量、对手覆盖、时间范围、语言领域切片和 Bootstrap 置信区间;对接近模型增加定向对战,而不是只比较点估计。模型更新后使用新版本实体,不能把不同版本投票混成同一个选手。
常见追问
- Elo 与 BT 最大区别是什么? Elo 通常逐场在线更新,BT 通常对全部成对数据做统计拟合;二者都基于相对胜率思想。
- 为什么需要置信区间? 有限且不均衡的对战会让评分有采样误差,点排名无法表达这种不确定性。
- 匿名评测能消除所有偏差吗? 不能,它只能减少品牌先验,用户群、Prompt 分布和可识别风格仍会影响投票。
- 榜单第一代表所有任务最好吗? 不代表。它只反映特定样本、对手和偏好标准的聚合结果。
一句话复习
Arena 用匿名成对偏好估计相对胜率,Elo 适合在线更新、BT 适合批量拟合,但排名必须连同流量分布和置信区间解释。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。