five

OJBench

收藏
arXiv2025-06-19 更新2025-06-24 收录
下载链接:
https://github.com/He-Ren/OJBench
下载链接
链接失效反馈
官方服务:
资源简介:
OJBench是一个包含232个来自NOI和ICPC的编程竞赛问题的竞赛级别代码基准数据集,旨在评估大型语言模型(LLMs)在竞争级别代码推理能力。数据集涵盖了从简单到困难的编程问题,通过测试案例评估模型生成的代码的正确性,并支持Python和CPP两种编程语言的评估。

OJBench is a contest-level code benchmark dataset consisting of 232 programming contest problems from NOI and ICPC, designed to evaluate the competitive-level code reasoning capabilities of Large Language Models (LLMs). This dataset covers programming problems ranging from simple to difficult levels, evaluates the correctness of code generated by models through test cases, and supports evaluation for both Python and C++ programming languages.
提供机构:
北京邮电大学, 清华大学, 中国科学院大学, 北京大学, 月之石AI
创建时间:
2025-06-19
原始信息汇总

OJBench数据集概述

1. 数据集简介

  • OJBench是一个用于编程题目评测的数据集,基于DMOJ评测系统构建。
  • 包含NOI和ICPC等竞赛题目的测试数据。

2. 安装要求

  • Python 3.10+
  • Git
  • Git LFS(用于下载测试数据)

3. 安装步骤

3.1 安装DMOJ

bash git clone https://github.com/DMOJ/judge-server.git cd judge-server git checkout f098cd3a49a60186d1fadde5132329ec5f4f2213 pip install .

3.2 安装OJBench

bash git clone git@github.com:He-Ren/OJBench.git cd OJBench pip install .

3.3 下载测试数据

bash git clone https://huggingface.co/He-Ren/OJBench_testdata

4. 使用方法

4.1 初始化

  • 使用init函数设置评测环境
  • 需提供一个或多个问题目录(如data/NOIdata/ICPC

4.2 批量评测

  • 调用judge_jsonl_data函数进行批量提交评测
搜集汇总
数据集介绍
main_image_url
构建方式
OJBench数据集的构建过程体现了严谨的科学方法与系统性筛选标准。研究团队从中国信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)两大顶级赛事中精选232道编程题目,通过洛谷竞赛平台和ICPC官网获取原始数据。每道题目均包含Markdown格式的问题描述和完整测试用例,并经过双重验证流程:首先利用参赛者正确代码验证测试用例有效性,随后人工过滤需要特殊判题程序的非常规题目。为提升国际适用性,采用GPT-4o进行英文翻译并辅以人工校验,最终根据题目难度评分(NOI采用选手投票制2-7分,ICPC通过提交通过率等四项指标计算)划分为Easy、Medium、Hard三个层级。
特点
作为竞争级代码推理基准,OJBench展现出三大核心特征:其一,题目来源具有权威性,全部选自要求严格算法时间复杂度的顶级赛事,平均测试用例数量达31.81个,显著高于常规基准;其二,难度体系科学完备,通过NOI的动态评分机制和ICPC的多维度指标构建三级分类,其中Hard级别题目占比达50.4%,能有效区分模型性能边界;其三,支持Python与CPP双语言评估,契合竞赛场景中CPP作为高效语言的实际应用需求。数据集包含159道NOI题目和73道ICPC题目,整体通过率仅31.81%,其挑战性远超LiveCodeBench等现有基准。
使用方法
使用OJBench评估模型时需遵循标准化测试流程:采用Pass@n作为核心指标,每个问题生成8个候选解,以64k最大token长度支持长链推理。评估时严格运行全部测试用例,仅当通过所有案例才判定为正确解。特别设计的双语言测试框架允许对比模型在Python和CPP下的表现差异,同时支持错误反馈迭代机制——模型可基于编译错误(CE)、时间超出(TLE)等执行反馈进行多轮方案优化。研究人员需注意,由于题目涉及非唯一解的特殊判题场景,建议优先选择标有标准答案的题目子集进行一致性评估。
背景与挑战
背景概述
OJBench是由北京邮电大学、清华大学、中国科学院大学、北京大学及Moonshot AI等机构的研究团队于2025年推出的竞争级代码推理基准测试。该数据集聚焦大型语言模型(LLMs)在算法竞赛中的代码推理能力评估,收录了来自中国信息学奥林匹克(NOI)和国际大学生程序设计竞赛(ICPC)的232道高难度编程题目,填补了现有基准在竞赛级代码评估上的空白。通过双语言(Python/CPP)支持与动态测试用例验证机制,OJBench为模型在严格时间复杂度约束下的算法设计能力提供了标准化测评框架,推动了代码生成模型向人类顶级程序员水平的演进。
当前挑战
OJBench面临的核心挑战体现在两方面:领域问题层面,现有模型在竞赛级编程任务中暴露出算法设计效率不足(如时间复杂度过高)、动态反馈利用不充分(如执行错误修正能力弱)等缺陷,即使顶尖推理导向模型在难题通过率也低于10%;数据构建层面,需克服测试用例完整性验证(过滤特殊判题程序依赖的题目)、跨语言难度标定(针对ICPC问题设计量化评分公式)及竞赛知识覆盖广度(NOI与ICPC题型分布均衡)等难题,这些挑战为未来代码大模型的强化学习训练与推理优化提供了明确方向。
常用场景
经典使用场景
OJBench作为专为评估大型语言模型(LLM)在竞争级编程任务中的代码推理能力而设计的基准,其经典使用场景主要集中在模型能力的全面测试与比较。通过包含来自NOI和ICPC的232道高难度编程题目,OJBench能够有效评估模型在复杂算法设计、数据结构应用及严格时间复杂度约束下的表现。研究者利用该数据集对37种不同模型(包括开源与闭源、推理导向与非推理导向模型)进行系统评估,揭示了当前最先进模型如o4-mini和Gemini-2.5-pro-exp在解决高难度竞赛题目时的局限性。
实际应用
在实际应用中,OJBench为AI辅助编程工具的开发提供了关键评估标准。例如,在在线编程教育平台中,基于OJBench优化的模型可帮助学生理解竞赛级算法设计;在企业技术招聘中,该基准可辅助筛选具备高水平编程能力的候选人。此外,支持CPP评估的特性使其能够直接应用于游戏开发、高频交易等对执行效率要求严格的领域,验证模型生成的代码是否满足工业级性能需求。
衍生相关工作
OJBench的发布催生了一系列围绕竞争级代码生成的研究工作。例如,基于其评估结果的模型优化方法(如DeepSeek-R1的强化学习微调)、多语言代码生成比较研究(如CPP与Python性能差异分析),以及结合执行反馈的迭代修复技术(如图4所示的错误类型修正实验)。相关经典工作包括CodeElo的模型能力排名体系、ProBench的动态问题生成框架,以及Magicoder等模型在OJBench上的迁移学习应用。这些衍生研究共同推动了代码生成领域向更高难度和实用性方向发展。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作