five

OJBench

收藏
github2025-07-12 更新2025-07-13 收录
下载链接:
https://github.com/He-Ren/OJBench
下载链接
链接失效反馈
官方服务:
资源简介:
OJBench是一个全面且具有挑战性的基准数据集,专门设计用于评估大型语言模型在竞赛级别的代码推理能力。我们的数据集专注于人类编程竞赛,包含232个严格筛选的竞赛问题,源自中国国家信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)。这些问题被精心分为三个难度等级(简单、中等和困难),基于参赛者投票和实际提交统计数据,并支持Python和C++的双语评估。

OJBench is a comprehensive and challenging benchmark dataset specifically designed to evaluate the competitive code reasoning capabilities of large language models. Our dataset focuses on human programming competitions and includes 232 rigorously selected contest problems, sourced from the National Olympiad in Informatics of China (NOI) and the International Collegiate Programming Contest (ICPC). These problems are meticulously categorized into three difficulty levels (easy, medium, and hard), based on participant voting and actual submission statistics, and supports bilingual evaluation in both Python and C++.
创建时间:
2025-06-14
原始信息汇总

OJBench数据集概述

📘 数据集简介

  • 名称:OJBench
  • 目的:评估大型语言模型(LLMs)在竞赛级别的代码推理能力
  • 来源:中国全国青少年信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)
  • 规模:包含232个经过严格筛选的竞赛题目
  • 难度分级:Easy/Medium/Hard三个等级(基于参赛者投票和实际提交数据)
  • 语言支持:Python和C++双语评估

🔥 最新动态

  • 2025-7:开源评估代码并持续改进
  • 2025-6:发布OJBench数据集和相关论文

📊 关键发现

  1. 先进模型表现:即使是o4-mini和Gemini-2.5-pro-exp等先进推理模型也难以应对高难度竞赛题
  2. 模型类型差异:推理导向模型显著优于非推理导向模型
  3. 开源闭源差距:开源模型在代码推理能力上仍落后于闭源模型
  4. 语言性能差异:多数长链思维模型使用C++表现优于Python
  5. 反馈利用:模型能够利用代码执行环境的反馈改进错误解决方案

🧰 系统要求

  • C++17兼容编译器(g++ 7.0或更高版本)
  • PyPy3解释器

💾 安装步骤

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

  2. 克隆配置OJBench: bash git clone git@github.com:He-Ren/OJBench.git

    • 修改runtime.yaml中的工具路径
  3. 下载测试数据: bash git clone https://huggingface.co/He-Ren/OJBench_testdata

📚 API功能

  1. 初始化函数init(problem_dirs, config_path=..., runtime_path=..., compile_lock_path=...)

    • 设置评判环境
    • 必需参数:问题目录路径
  2. 评判函数

    • judge_jsonl(input_path, output_path=None, num_workers=16, worker_log_path=None, identifier=None)
    • judge_jsonl_data(input, num_workers=16, worker_log_path=None, identifier=None)
    • 输出包含:最终裁决、测试用例详细结果、部分测试裁决等

💬 引用格式

bibtex @misc{wang2025ojbenchcompetitionlevelcode, title={OJBench: A Competition Level Code Benchmark For Large Language Models}, author={Zhexu Wang and Yiping Liu and Yejie Wang and Wenyang He and Bofei Gao and Muxi Diao and Yanxu Chen and Kelin Fu and Flood Sung and Zhilin Yang and Tianyu Liu and Weiran Xu}, year={2025}, eprint={2506.16395}, archivePrefix={arXiv}, primaryClass={cs.CL}, url={https://arxiv.org/abs/2506.16395}, }

搜集汇总
数据集介绍
构建方式
OJBench数据集的构建过程体现了严谨的学术态度和工程实践。研究团队从中国信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)中精选了232道具有代表性的竞赛题目,通过参赛选手投票和实际提交数据,将题目科学划分为简单、中等和困难三个难度等级。为确保评估的全面性,每道题目均提供Python和C++双语版本,并采用DMOJ评测系统作为技术支撑。数据集构建过程中特别注重题目质量把控,所有测试用例均来自真实竞赛环境,保证了评估结果的可信度。
特点
OJBench作为专业级代码评测基准,其显著特点在于专注于竞赛级编程难题的评估。数据集涵盖从7B到671B参数规模的开源与闭源模型,支持推理型和非推理型模型的全面测评。独特之处在于提供了基于测试用例比例的渐进式评估指标(如1/8verdict、1/4verdict等),可深入分析模型在不同解题阶段的性能表现。数据集还创新性地整合了代码执行环境的实时反馈机制,使模型能够根据运行结果修正错误方案,这为研究代码生成模型的自我改进能力提供了理想平台。
使用方法
使用OJBench进行模型评估需要配置包含C++17编译器和PyPy3解释器的运行环境。评估流程分为三个关键步骤:首先通过Git LFS获取托管在Hugging Face的测试数据,包含ICPC和NOI两大题库;其次按照指定格式生成包含模型输出的JSONL文件,系统会自动提取代码片段;最后调用judge_jsonl API进行自动化评测,支持多进程并行处理以提升效率。评测系统会输出包括最终判定结果、详细测试用例反馈以及阶段性评估指标在内的完整报告,研究人员可通过调整worker数量优化评测速度。
背景与挑战
背景概述
OJBench是由中国研究团队于2025年推出的一个专注于评估大型语言模型(LLMs)代码推理能力的基准测试数据集。该数据集精选自中国信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)的232道高质量编程题目,并根据参赛者投票和实际提交数据划分为易、中、难三个难度等级。作为首个面向竞赛级编程任务的评估基准,OJBench支持Python和C++双语评测,覆盖了从7B到671B参数规模的开源与闭源模型,为衡量模型在复杂算法实现和逻辑推理方面的能力提供了标准化平台。该数据集的建立填补了现有代码生成评估在竞赛级题目上的空白,对推动智能编程助手和自动化代码生成研究具有重要意义。
当前挑战
OJBench面临的核心挑战主要体现在两个方面:在领域问题层面,竞赛级编程题目通常包含复杂的算法设计、严格的时空限制和隐蔽的边界条件,这对模型的深层推理能力和代码优化水平提出了极高要求,现有最先进模型在难题上的通过率仍不理想;在构建过程中,研究团队需要解决题目筛选的权威性平衡、测试用例的全面性覆盖以及多语言执行环境的标准统一等技术难题,特别是需要确保不同编程语言在时间效率和内存管理方面的评判公平性。此外,如何设计合理的渐进式评测指标来准确反映模型在不同解题阶段的性能表现,也是数据集构建过程中需要克服的关键挑战。
常用场景
经典使用场景
在编程竞赛和算法研究领域,OJBench数据集为评估大型语言模型在代码推理能力上的表现提供了标准化平台。该数据集精选自中国信息学奥林匹克竞赛(NOI)和国际大学生程序设计竞赛(ICPC)的232道题目,覆盖了从易到难三个难度级别,支持Python和C++双语评估。研究人员利用OJBench可以系统地测试模型在解决复杂编程问题时的准确性和效率,特别是在处理需要长链推理的算法题目时,能够全面衡量模型的代码生成和优化能力。
实际应用
在实际应用中,OJBench数据集被广泛用于测试和优化各类代码生成模型,尤其是在自动化编程辅助工具和在线编程教育平台中。通过使用该数据集,开发者能够验证模型在解决实际编程问题时的可靠性,从而提升工具的实用性。例如,在线编程竞赛平台可以利用OJBench评估模型生成的代码质量,为学生或参赛者提供实时反馈和优化建议。
衍生相关工作
OJBench数据集的发布催生了一系列相关研究,特别是在代码生成和推理模型的优化领域。许多研究工作基于该数据集提出了新的评估方法和模型架构改进,例如针对长链推理任务的渐进式验证技术。此外,部分研究还探索了如何利用模型在执行环境中的反馈来优化代码生成策略,这些成果进一步推动了大型语言模型在编程辅助和自动化代码生成中的应用。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作