遇见数据集

touristgpt/finecf-COTs

收藏
Hugging Face2026-05-27 更新2026-05-31 收录
官方服务:

资源简介:

Codeforces Trace Dataset是一个合成推理轨迹数据集,基于9,413个Codeforces问题(难度评级范围800-3500)。每个问题包含结构化的错误路径探索、发现叙述、伪代码,以及对于难度评级≥1800的问题,还提供完整的可执行C++实现。该数据集旨在训练模型如何思考竞争性编程问题,而不仅仅是解决它们,通过模拟专家思考过程,包括尝试想法、遇到障碍、从失败中提取见解,并最终构建解决方案。

language: - 英语 license: MIT许可证 task_categories: - 文本生成 tags: - 竞赛编程(competitive-programming) - 推理(reasoning) - 代码(code) - Codeforces - 轨迹(traces) - 思维链(Chain-of-Thought) size_categories: - 1K<n<10K # Codeforces 轨迹数据集 这是一个基于9413道Codeforces竞赛题(难度评级800–3500)构建的合成推理轨迹数据集。每道题目均包含结构化的错误路径探索、发现叙事、伪代码,且对于评级≥1800的题目,还提供了可完全执行的C++实现。本数据集旨在教会模型**如何通过竞赛编程问题进行思考**,而非仅仅求解题目。 ## 是什么让本数据集与众不同 绝大多数竞赛编程数据集仅将题目与解法配对,而本数据集完整记录了**完整推理过程**: 1. **错误路径** — 详细探索无效的解题思路,包括其失败原因及可从每一次失败中汲取的经验 2. **发现叙事** — 以第一人称视角记录从失败思路转向正确解法的过程,并附带逐步骤的实操追踪 3. **伪代码** — 适用于直接实现的正确解法伪代码 4. **C++实现** — 完全可执行、符合竞赛规范的C++解法,与伪代码完全一致(仅针对≥1800评级的题目) 5. **新增题目** - 我们补充了来自最新数据集的题目,以及Open-r1数据集的全部题目。(我们已过滤掉缺少题解或其他重要字段的题目。) 本数据集模拟了**专家的思考过程**——尝试思路、遭遇瓶颈、从失败中提取洞见,并逐步构建出最终解法。 这正是本数据集的核心创新:我们将思考轨迹进行了高度结构化的建模,充分参考了程序员的真实思考路径:首先尝试看似合理的思路,经测试后发现其错误,这能够锻炼模型提出假设并通过推理验证思路的能力。 本质上,我们是在复现自然的思考过程,并将其拆解为多个组件,从而能够更便捷地访问思考过程的不同环节。 在轨迹的最后阶段,我们通过向模型提供**正确解法的提示**(而非直接给出答案,模型仍需通过推理得到解法),确保模型能够推导出正确的解决方案。 **每个题目对应的提示本身就是极具价值的数据集资源。** 对于评级≤1700的题目,我们未采用上述完整流程,而是直接要求模型求解题目并展示解题过程,我们发现这种方式在低难度题目上能取得更优效果。 *本数据集的一大优势在于其高度可扩展性:你可以根据需求,在正确路径探索前添加任意数量的错误路径探索。你也可以仅使用正确路径探索部分本身。* ## 数据集结构 每一行对应一道Codeforces题目。本数据集按难度分为两个等级: | 评级范围 | 题目数量 | 处理流程 | 包含内容 | |---|---|---|---| | ≤ 1700 | 4,579 | 简易流程 | 错误路径(描述)+ 简短思考轨迹 + 伪代码 | | ≥ 1800 | 4,834 | 完整(四阶段)流程 | 错误路径(完整探索)+ 发现叙事 + 伪代码 + C++实现 | ### 数据模式(共23列) #### 题目元数据 | 列名 | 数据类型 | 描述 | |---|---|---| | `problem_id` | str | Codeforces题目ID,例如`"1586/I"` | | `problem_name` | str | 题目标题 | | `rating` | float | Codeforces难度评级(800–3500,0代表未评级) | | `tags` | str | 逗号分隔的主题标签(例如动态规划、图论、数学等) | | `time_limit` | float | 时间限制(单位:秒) | | `memory_limit` | float | 内存限制(单位:MB) | | `description` | str | 完整题目描述 | | `input_format` | str | 输入格式说明 | | `output_format` | str | 输出格式说明 | | `interaction_format` | str | 仅适用于交互型题目 | | `note` | str | 额外说明/澄清 | | `examples` | list[dict] | 样例`{input, output}`对 | | `editorial_cleaned` | str | 清理后的官方Codeforces题解 | #### 生成的轨迹字段 | 列名 | 数据类型 | 覆盖范围 | 描述 | |---|---|---|---| | `s1_hint` | str | 98.9% | 指向正确解法的提示 | | `wrong_path_1` | dict | 100% | `{name, exploration}` — 第一种错误思路 | | `wrong_path_2` | dict | 100% | `{name, exploration}` — 第二种错误思路 | | `wrong_path_3` | dict | 43.5% | `{name, exploration}` — 第三种错误思路(如适用) | | `wrong_path_4` | dict | 4.4% | `{name, exploration}` — 第四种错误思路(如适用) | | `small_thinking_trace` | str | 仅适用于≤1700评级题目 | 发现正确解法的简短思考轨迹 | | `small_pseudo` | str | 仅适用于≤1700评级题目 | 正确解法的伪代码 | | `s3_narrative` | str | 仅适用于≥1800评级题目 | 第一人称的完整发现叙事 | | `s3_pseudocode` | str | 仅适用于≥1800评级题目 | 与叙事中变量命名一致的详细伪代码 | | `s4_cpp` | str | 仅适用于≥1800评级题目 | 与伪代码完全一致的可执行C++实现 | ### 错误路径格式 每个`wrong_path_N`均为包含两个键的字典: - **`name`** — 思路名称(例如 *"基于优先队列的贪心算法"*、*"暴力深度优先搜索"*) - **`exploration`** — 完整文本: - 对于**≤1700**评级的题目:思路的简短描述及其失败原因 - 对于**≥1800**评级的题目:第一人称的详细探索过程,展示解题者尝试该思路、碰壁并汲取经验的全过程 ### 发现叙事(≥1800评级) `s3_narrative`字段为第一人称的叙述,记录在所有错误路径探索完成后发现正确解法的过程,遵循固定结构: 1. 总结失败的思路及其问题所在 2. 通过顿悟时刻(例如"嗯……等等——")转换思路 3. 逐步推导正确的算法 4. 结合具体数值追踪完整示例 5. 以关键的结构性洞见收尾 ## 生成流程 本数据集通过四阶段流程使用DeepSeek V3.2生成: - **阶段1** — 给定题目及其官方题解,生成看似合理但错误的解题思路,以及指向正确解法的提示。本阶段还包含一个评判模型,用于评估思路的质量。 - **阶段2** — 针对每个错误思路,生成详细的探索过程,展示解题者尝试该思路、失败并从中学习的全过程 - **阶段3** — 基于错误路径的经验作为上下文,生成正确解法的发现叙事(首次调用)与伪代码(第二次调用) - **阶段4** — 将伪代码转换为完全可执行、符合竞赛规范的C++解法(仅针对≥1800评级的题目) 评级≤1700的题目使用更简单的单阶段流程,而非完整的四阶段流程。 ## 使用方法 python from datasets import load_dataset ds = load_dataset("YOUR_USERNAME/YOUR_DATASET_NAME") # 获取一道带有完整轨迹的高难度题目 row = ds["train"].filter(lambda x: x["rating"] >= 2400)[0] print(row["problem_name"]) print(row["wrong_path_1"]["exploration"]) # 贪心算法失败的原因 print(row["s3_narrative"]) # 正确解法的发现叙事 print(row["s3_pseudocode"]) # 实现用伪代码 print(row["s4_cpp"]) # 可执行的C++解法 python # 直接从Parquet文件加载 import pandas as pd df = pd.read_parquet("mega_dataset.parquet") # 筛选带有至少3条错误路径的题目 multi_path = df[df["wrong_path_3"].notna()] ## 统计数据 | 指标 | 数值 | |---|---| | 总题目数 | 9,413 | | 评级范围 | 800 – 3500 | | 带有完整叙事的题目(≥1800) | 4,834 | | 带有简短轨迹的题目(≤1700) | 4,444 | | 叙事平均长度(≥1800) | ~17,800 字符 | | 伪代码平均长度(≥1800) | ~3,200 字符 | | C++实现平均长度(≥1800) | ~2,300 字符 | | 带有C++实现的题目 | 4,833(占≥1800评级题目的99.98%) | | 带有2条错误路径的题目 | 100% | | 带有3条错误路径的题目 | 43.5% | | 带有4条错误路径的题目 | 4.4% | ## 预期用途 - **监督微调(SFT)**:用于竞赛编程领域的推理模型训练 - **过程监督**:训练模型进行探索、失败并恢复的能力 - **错误路径学习**:教会模型尽早识别死胡同(这对提炼推理过程至关重要) - **课程学习**:题目难度覆盖800至3500评级,可用于阶梯式训练 ## 局限性 - 135道题目的评级为0(特殊/未评级竞赛题目),这些题目大多来自愚人节竞赛,对数据集无实用价值,因此我们未将其纳入有效数据。 - 约1.8%的题目缺少`time_limit`(时间限制)与`memory_limit`(内存限制)字段。 - 叙事内容为合成生成,可能偶尔包含细微的数学误差。 - “错误路径”的设计目标是看似合理但实际错误——部分思路可能实际上是可行的替代解法。(我们已通过评判模型对每条错误路径进行评估,以尽量减少此类情况。)

提供机构:
touristgpt
搜集汇总
数据集介绍
touristgpt/finecf-COTs 数据集图片
构建方式
该数据集基于Codeforces平台上的9,413道编程题目构建而成,题目难度评分覆盖800至3500区间。构建过程采用DeepSeek V3.2模型驱动的四阶段流水线:第一阶段为每道题目生成若干看似合理但实际错误的解题路径,同时提供一条指向正确答案的提示;第二阶段对每条错误路径展开详细探索,模拟解题者尝试、失败并从中汲取教训的过程;第三阶段生成从失败到正确思路的发现叙述和伪代码;第四阶段将伪代码转换为可直接执行的C++实现。对于评分不超过1700的较易题目,则采用简化的单阶段流水线直接生成推理轨迹。整个流程融入了一个评判模型,用于评估错误路径的质量,确保生成内容的合理性。
特点
本数据集的核心特色在于其高度结构化的思维轨迹设计,完整模拟了专家解题者从假设、试错到顿悟的认知过程。每条数据包含多个失败路径的详细探索,记录了解题者为何失败以及从中获取的洞见,随后以第一人称叙述方式呈现从失败到正确方案的发现历程。评分不低于1800的题目还配有详细的伪代码和可直接执行的C++实现代码。数据集的另一亮点是其灵活性,使用者可根据需求自由增删错误路径的数量,或仅使用正确路径部分。此外,每条题目包含了一条精准的解题提示,其本身即构成一个颇具价值的数据资源。
使用方法
可通过HuggingFace的datasets库方便地加载使用,调用load_dataset函数即可获取完整数据集。使用者可按难度进行筛选,例如过滤出评分不低于2400的高难度题目以获取包含完整四阶段信息的样例。获取后可分别访问问题的错误路径探索、发现叙述、伪代码及C++实现等字段。也可直接通过Pandas读取Parquet格式文件进行高效数据处理。该数据集适用于多种训练场景,包括对推理模型进行监督微调、训练模型在探索过程中识别并避开无效路径的过程监督,以及利用从易到难的梯度分布实施课程学习,从而循序渐进地提升模型解决竞赛编程问题的推理能力。
背景与挑战
背景概述
在竞争性编程领域,模型通常仅学习问题与解决方案之间的映射关系,缺乏对复杂推理过程的深度建模。为弥补这一不足,finecf-COTs数据集应运而生,由研究团队利用DeepSeek V3.2模型于近期构建,涵盖9,413道Codeforces问题(难度评分800至3500)。该数据集的核心创新在于系统性地模拟专家思维过程,通过结构化推理轨迹记录错误路径探索、发现叙述、伪代码及可执行C++实现,为训练模型掌握从失败中学习并逐步推导正确解法的能力提供了宝贵资源。其分层设计(≤1700与≥1800)兼顾不同难度需求,显著推动了竞争性编程中推理模型的研究进展,并为监督微调与过程监督等任务奠定了数据基础。
当前挑战
该数据集面临的主要挑战包括:一是如何有效解决竞争性编程中模型因缺乏对错误路径的认知而难以进行深度推理的领域难题,传统数据仅提供正解,忽视了从失败中提取洞察的关键过程;二是在构建过程中,生成高质量且逻辑自洽的错误路径与发现叙述极具难度,需确保路径的合理性及失败教训的启发性,为此引入了评判模型进行质量审核,但仍存在约1.8%元数据缺失及极少数合成叙述中数学误差的风险;此外,部分错误路径可能实为可行解法,如何准确区分与界定仍是难点,且低难度问题采用简化流水线可能限制了推理深度的全面性。
常用场景
经典使用场景
在程序推理与代码生成领域,finecf-COTs数据集被广泛应用于训练大语言模型理解复杂的算法思考过程。不同于传统只提供问题与标准答案的数据集,它通过结构化错误路径探索、发现叙事、伪代码及可执行C++实现,完整还原了专家在解决Codeforces竞赛题时的思维链条。研究者常将其用于监督微调(SFT),使模型不仅学会输出最终答案,更能模拟人类从试错到洞察的推理路径,从而显著提升模型在数学、逻辑与编程结合场景下的泛化能力。
衍生相关工作
该数据集的发布催生了一系列关于推理链结构化的后续研究。一部分工作聚焦于利用其多阶段生成管线(四阶段流水线)构建更细粒度的推理步骤数据集,用于训练模型进行自我修正与反思。另一些研究则将错误路径与发现叙事的对比作为训练素材,探索“对抗性思维链”或“负样本推理”等新范式。此外,基于该数据集中高难度问题的C++实现,研究人员开发了专门的代码执行一致性校验工具,推动了大模型生成代码的可信度评估工作。
数据集最近研究
最新研究方向
该数据集聚焦于将编程竞赛中的完整推理过程结构化建模,通过记录错误路径探索、发现叙事与伪代码生成,推动大语言模型在复杂代码推理能力上的突破。其核心创新在于模拟人类专家在解题时的试错与反思机制,为过程监督、错误路径学习及课程学习等前沿方向提供高质量训练数据,尤其契合当前对模型可解释推理与自我修正能力的研究热潮,对提升AI在算法竞赛等强逻辑领域的表现具有重要推动作用。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务