five

CPRet

收藏
github2025-05-22 更新2025-05-23 收录
下载链接:
https://github.com/coldchair/CPRet
下载链接
链接失效反馈
官方服务:
资源简介:
CPRet是一个用于竞争性编程检索研究的大规模数据集和基准,包含来自多个在线评测平台(如Codeforces、AtCoder、SPOJ等)的编程问题,数据收集截至2025年5月。

CPRet is a large-scale dataset and benchmark for competitive programming retrieval research, encompassing programming problems from multiple online assessment platforms (such as Codeforces, AtCoder, SPOJ, etc.), with data collection concluding in May 2025.
创建时间:
2025-05-16
原始信息汇总

CPRet: 竞争性编程检索数据集与模型

概述

CPRet是一个面向竞争性编程检索研究的综合套件,包含:

  • 大规模数据集和基准测试
  • 双阶段训练流程(对比预训练+任务微调)
  • 本地检索服务(基于CPRet-Prob模型)

核心组件

数据集

  • 来源平台:Codeforces/AtCoder/SPOJ/Nowcoder/Luogu/Loj
  • 数据截止时间:2025年5月
  • 支持自定义数据扩展(通过compute_embs.py生成嵌入)

检索任务

  1. 简化描述检索
  2. 重复题目检测

技术实现

  • 基础模型:Salesforce/SFR-Embedding-Code-2B_R
  • 训练阶段:
    • Stage1:对比预训练(需≥8 GPUs)
    • Stage2:问题级微调

部署要求

硬件

  • 最低配置:16GB内存/显存
  • 性能表现:
    • CPU(8核):10-20秒/查询
    • GPU(A800):0.1-1秒/查询

软件

  • Python ≥ 3.10
  • PyTorch ≥ 2.0(推荐)

资源获取

  • 嵌入数据:https://huggingface.co/datasets/coldchair16/CPRet-Embeddings
  • 在线演示:http://1.94.255.218:5000/

许可条款

  • 许可证:CC BY-NC 4.0
  • 限制:仅限研究与非商业用途

引用格式

bibtex @misc{deng2025cpretdatasetbenchmarkmodel, title = {CPRet: A Dataset, Benchmark, and Model for Retrieval in Competitive Programming}, author = {Han Deng and Yuan Meng and Shixiang Tang and Wanli Ouyang and Xinzhu Ma}, year = {2025}, eprint = {2505.12925}, archivePrefix = {arXiv}, primaryClass = {cs.SE} }

搜集汇总
数据集介绍
main_image_url
构建方式
在竞技编程领域,CPRet数据集通过系统化的数据收集与处理流程构建而成。研究团队从Codeforces、AtCoder等六大主流在线判题平台抓取题目数据,覆盖时间跨度至2025年5月。采用双阶段训练框架,先基于Salesforce/SFR-Embedding-Code-2B_R模型进行对比预训练,再针对特定检索任务进行微调,最终形成包含题目文本与嵌入向量的结构化数据集。数据采集过程注重多平台覆盖与时间延续性,并通过开源社区机制支持后续数据扩展。
使用方法
使用者可通过Hugging Face平台获取预生成的题目嵌入向量与元数据,快速部署基于Flask的本地检索服务。具体操作包含下载嵌入文件至指定目录,运行轻量级服务脚本即可启动RESTful API接口。针对模型训练需求,项目提供分阶段指导:使用多GPU节点进行对比预训练时需注意设备映射配置,微调阶段则支持单GPU环境运行。研究团队还开放在线演示系统,用户可直接体验核心检索功能后再决定本地部署方案。所有代码均遵循模块化设计原则,便于集成到现有技术栈或扩展新的数据源。
背景与挑战
背景概述
CPRet数据集由Han Deng等人于2025年推出,是一个专注于竞技编程检索研究的大规模数据集与基准测试套件。该数据集由冷椅团队(Coldchair Team)主导开发,整合了来自Codeforces、AtCoder、SPOJ等六大在线判题平台的编程题目,时间覆盖至2025年5月。其核心研究目标在于解决竞技编程领域中的题目检索难题,包括简化描述搜索与重复题目检测等任务。通过引入双阶段训练流程(对比预训练与任务微调)和基于Salesforce大模型的嵌入方法,该数据集显著提升了编程题目语义匹配的精度,为算法竞赛教学和平台优化提供了重要技术支撑。
当前挑战
在领域问题层面,CPRet需应对竞技编程题目特有的语义复杂性——同一算法可能对应多种表述形式,而表面相似的题目可能具有完全不同的解法逻辑。这种高歧义性对传统关键词匹配和简单嵌入模型构成严峻挑战。数据集构建过程中,研究者面临多平台数据异构性整合、题目质量筛选标注、以及计算资源消耗三大难题:不同在线判题平台的数据格式差异需要复杂的规范化处理;手动标注大规模题目对需要领域专家参与;而训练2B参数量的嵌入模型(如SFR-Embedding-Code-2B_R)需配置50GB以上GPU显存,对硬件基础设施提出极高要求。
常用场景
经典使用场景
在竞争性编程领域,CPRet数据集为研究者提供了一个标准化的检索基准,尤其适用于代码竞赛中的题目检索和相似性分析。通过其内置的双阶段训练流程,研究者能够高效地对比预训练和任务特定微调,从而优化检索模型的性能。该数据集广泛应用于算法竞赛平台如Codeforces和AtCoder,为参赛者和教育者提供强大的检索工具。
解决学术问题
CPRet数据集解决了竞争性编程中题目检索的若干核心学术问题,包括高相似度题目的自动识别和简化描述的生成。其提出的基准任务和评估框架为代码检索领域的研究提供了可复现的实验环境,显著提升了模型在复杂编程语境下的泛化能力。这一贡献对自然语言处理与软件工程的交叉研究具有深远意义。
实际应用
在实际应用中,CPRet的检索服务已被集成到多个编程竞赛平台,用于检测重复题目和生成简明题解。教育机构利用其本地化部署版本构建编程题库管理系统,而参赛者则通过在线演示服务快速匹配历史相似题目。该工具显著降低了竞赛组织者的运维负担,同时提升了选手的备赛效率。
数据集最近研究
最新研究方向
在编程竞赛领域,CPRet数据集的推出为检索任务提供了全新的研究视角。该数据集聚焦于代码竞赛中的问题检索与去重,通过双阶段训练流程和对比预训练技术,显著提升了模型在简化描述检索和重复问题检测上的性能。当前研究热点集中在如何利用大规模预训练模型如Salesforce/SFR-Embedding-Code-2B_R,优化编程竞赛场景下的语义检索效率。这一方向不仅推动了智能编程辅助系统的发展,也为算法竞赛平台的题目管理提供了自动化解决方案,具有重要的学术价值和实践意义。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作