测试集:Codeforces Rating
| 名称 | Codeforces Rating |
|---|---|
| 类别 | coding |
| 主办方 | Codeforces 平台;标准化评测代表作 CodeElo(阿里 Qwen 团队,arXiv:2501.01257) |
| 开源状态 | open |
| 网址 | 官方页面 |
codeforces真实竞赛题(难度 800–2400+)、与人类同体系 Elo 评分、机器人直交官方平台判题、隐藏测试 + special judge、各家自报口径不一
测试集content/benchmarks/codeforces.md
一句话
直接拿竞赛平台的 Elo 分给 AI 排名
测什么
这不是一个独立题库,而是「用人类竞赛平台的尺子量 AI」:让模型做 Codeforces 上的真实竞赛题(题目难度 rating 从 800 到 2400+),再折算成与人类选手同体系的 Elo rating。题目难度本身有精确定义:一道 rating 为 x 的题,表示 rating 为 x 的人类选手第一次见它有 50% 概率做出。代表作是 Qwen 团队的 CodeElo(2025-01),收录 2024 年 5–11 月的 54 场比赛、387 题,首次做到与人类完全可比的评分。
怎么测
CodeElo 的做法最「硬核」:用机器人把模型生成的代码直接提交到 Codeforces 官方平台,跑平台的隐藏测试和 special judge(约三成题答案不唯一、需要专门判题器),全过才算 Accept,实现零误判。每题最多提交 8 次,失败罚分照平台规则算。Elo 换算把每场比赛当独立事件:将模型的成绩插入该场人类选手名次表,用二分搜索反解出「打出这个名次所对应的期望 rating」,方差比平台官方的逐场更新法更低。
典型任务
一场典型评测就是一场真实比赛:模型拿到题面(保留原始 HTML 格式,含输入输出约定、数据范围和时限),要写出完整可提交的 C++ 程序——论文发现强制用 C++ 时几乎所有模型分数更高,因为竞赛题卡运行时间,而模型默认爱写 Python。题目的算法标签(贪心、DP、图论等 35 种,平均每题 3.9 个)对模型不可见,事后用于分析:模型普遍擅长数学和模拟类题,栽在动态规划和树上。
分数怎么看
rating 直接对照人类段位,是少数「人机同尺」的编程指标。CodeElo 实测(2025 初):o1-mini 拿到 1578,约超过近 90% 的人类参赛者;QwQ-32B-Preview 1261 约在 60 百分位;其余模型大多连最简题都吃力,落在人类最低的 10–25 百分位。此后各厂商发布推理模型时常自报 Codeforces 分数,头部数字已远超于此。
含金量与局限
「CFEval」只是厂商自报 Codeforces 分数时的非正式标签,不是独立基准,本站统一归到本条。各家自报口径差异很大(选题范围、是否允许重复提交、是否真在平台判题、是否对齐训练截止后的新题),横向对比前务必确认方法是否对齐 CodeElo 这类标准化做法。
冷知识
CodeElo 论文发现一个反直觉现象:不给约束时 95% 以上的模型会默认写 Python,但强制改用 C++ 后几乎所有模型分数都上涨——因为竞赛题卡运行时间,而人类选手约八成用 C++。换句话说,大部分模型的「默认手感」和竞赛高分策略是拧着的。
数据来源
本页由仓库 content/benchmarks/codeforces.md 初始化。后续修订通过公开审核队列发布。