CPRet
收藏arXiv2025-05-19 更新2025-05-21 收录
下载链接:
https://github.com/coldchair/CPRet
下载链接
链接失效反馈官方服务:
资源简介:
CPRet 是一个针对程序设计竞赛的检索基准套件,包含四个检索任务:两个以代码为中心(即 Text-to-Code、Code-to-Code)和两个新提出的以问题为中心的任务(即 Problem-to-Duplicate、Simplified-to-Full),由自动抓取的问题-解决方案数据和手动注释的组合构建。我们的贡献包括高质量的训练数据和可靠的评估所需的时分离测试集。此外,我们还基于此数据集开发了两个任务特定的检索器:CPRetriever-Code,通过一个新颖的 Group-InfoNCE 损失进行问题-代码对齐训练,以及 CPRetriever-Prob,为识别问题级相似性进行了微调。这两个模型都取得了优异的结果,并已开源供本地使用。最后,我们对 LiveCodeBench 进行了分析,发现高相似度问题提高了模型通过率并降低了差异化,突出了未来基准测试中需要考虑相似性的重要性。
CPRet is a retrieval benchmark suite for programming contests, which includes four retrieval tasks: two code-centric ones (Text-to-Code and Code-to-Code) and two newly proposed problem-centric tasks (Problem-to-Duplicate and Simplified-to-Full). It is constructed from a combination of automatically crawled problem-solution data and manual annotations. Our contributions include high-quality training data and a time-separated test set required for reliable evaluation. Additionally, we developed two task-specific retrievers based on this dataset: CPRetriever-Code, which conducts problem-code alignment training with a novel Group-InfoNCE loss, and CPRetriever-Prob, which is fine-tuned for identifying problem-level similarity. Both models have achieved excellent performance and have been open-sourced for local use. Finally, we conducted an analysis on LiveCodeBench, finding that high-similarity problems improve model pass rates and reduce performance disparity, highlighting the importance of considering similarity in future benchmark design.
提供机构:
清华大学, 上海人工智能实验室, 香港中文大学, 北京航空航天大学
创建时间:
2025-05-19
搜集汇总
数据集介绍

构建方式
CPRet数据集通过自动爬取和人工标注相结合的方式构建,涵盖了来自多个在线编程竞赛平台的问题和解决方案。数据收集过程中,特别关注了问题的重复性和相似性,通过社区讨论和专家验证,标注了近700对重复问题。此外,数据集还包含了17,000对简化版和完整版问题描述,用于支持跨抽象级别的检索任务。为确保评估的可靠性,测试集采用了时间分离策略,仅包含2023年以后发布的最新问题。
特点
CPRet数据集具有四大核心特点:首先,它覆盖了四种检索任务,包括两种代码中心任务(文本到代码、代码到代码)和两种问题中心任务(问题到重复、简化到完整)。其次,数据集具有高度的语言多样性,支持多种编程语言和问题描述语言。第三,通过时间分离的测试集设计,有效避免了数据泄露问题。最后,数据集提供了丰富的元数据,包括问题难度、时间戳和问题类型(ICPC/OI风格),支持多维度的模型评估和分析。
使用方法
使用CPRet数据集时,研究人员可通过其GitHub仓库获取完整数据资源和预训练模型。对于代码中心任务,建议使用CPRetriever-Code模型,该模型采用创新的Group-InfoNCE损失函数优化问题-代码对齐。对于问题中心任务,CPRetriever-Prob模型经过专门微调,擅长识别问题级别的语义相似性。评估时应注意使用官方划分的训练测试集,并遵循时间分离原则以确保结果可靠性。数据集还支持自定义任务开发,如新颖性检测和教育应用等场景。
背景与挑战
背景概述
CPRet数据集由清华大学和上海人工智能实验室的研究团队于2025年提出,旨在解决竞争性编程领域中的问题检索挑战。该数据集聚焦于算法竞赛中日益严重的题目重复性问题,不仅影响比赛公平性,也威胁到大型语言模型评估的有效性。作为首个面向竞争性编程检索任务的基准套件,CPRet涵盖了代码中心型和问题中心型共四类检索任务,其创新性地构建了包含自动爬取数据和人工标注的高质量训练集,并采用时间隔离的测试集设计以确保评估可靠性。该工作发表在arXiv预印本平台,对编程竞赛组织和AI代码生成模型的评估范式产生了深远影响。
当前挑战
CPRet数据集面临的核心挑战体现在两个方面:在领域问题层面,竞争性编程题目存在语义相似但表述差异化的特性,传统检索模型难以准确识别重复题目;同时题目与解决方案代码间的跨模态对齐也极具挑战性。在构建过程中,研究团队需要处理多平台数据的异构性问题,包括不同编程语言解决方案的归一化处理,以及人工标注700组重复题目对时保持判据一致性(分为精确匹配、近似匹配和方法匹配三级)。此外,简化版与完整版题目描述的语义对齐、测试集的时间泄漏防范,以及解决方案代码的功能等价性验证都是构建过程中的技术难点。
常用场景
经典使用场景
在编程竞赛和大型语言模型评估中,CPRet数据集被广泛用于解决相似问题检索的挑战。该数据集通过自动爬取的问题-解决方案数据和手动标注的注释,构建了四个检索任务,包括两个以代码为中心的任务和两个以问题为中心的任务。这些任务不仅能够评估模型在问题描述和解决方案代码之间的对齐能力,还能识别问题级别的相似性,从而在编程竞赛和模型评估中提供更公平和准确的基准。
衍生相关工作
CPRet数据集衍生了一系列相关研究,特别是在代码检索和问题相似性识别领域。基于该数据集开发的CPRetriever-Code和CPRetriever-Prob模型在多个任务中表现出色,并被开源供本地使用。此外,CPRet的研究还揭示了问题相似性对模型通过率的影响,为未来基准测试的设计提供了重要参考,推动了相似性感知评估方法的发展。
数据集最近研究
最新研究方向
随着大语言模型在编程竞赛评估中的广泛应用,CPRet数据集的提出为解决竞赛题目重复性问题开辟了新的研究路径。该数据集不仅构建了面向代码检索的文本-代码、代码-代码任务,更创新性地设计了问题-重复题、简化-完整题两项问题中心检索任务,填补了该领域在题目级语义检索评估方面的空白。通过引入Group-InfoNCE损失函数和时序分离的测试集构建方法,CPRet有效解决了传统评估中因题目相似性导致的模型能力虚高问题。最新研究发现,题目相似性与模型通过率呈显著正相关,这一发现对编程竞赛公平性和大模型评估的可靠性提出了新的思考维度,推动了相似性感知评估范式的发展。
相关研究论文
- 1CPRet: A Dataset, Benchmark, and Model for Retrieval in Competitive Programming清华大学, 上海人工智能实验室, 香港中文大学, 北京航空航天大学 · 2025年
以上内容由遇见数据集搜集并总结生成



