遇见数据集

diagnosis-advantage-grpo

收藏
Hugging Face2026-06-06 更新2026-06-07 收录
官方服务:

资源简介:

Diagnosis-Advantage RLVR 数据集是为支持 Diagnosis-Advantage RLVR 配方(一种使用 GRPO 方法)的训练和评估而构建的。其核心任务聚焦于代码优化:给定一个针对竞争性编程问题的、正确但执行速度较慢的 Python 解决方案(种子代码),模型需要生成一个在保持功能正确性的前提下,执行速度更快的优化版本。数据集的一个显著特点是采用配对A/B变体结构:每个编程问题都对应两个不同的提示变体(A和B),它们共享同一个唯一问题标识符 (`uid`)。变体A采用先诊断后优化的范式,要求模型首先生成一个 `<diagnosis>...</diagnosis>` 格式的诊断分析,然后输出优化后的代码。变体B则作为反事实基线,要求模型直接优化,不提供诊断步骤。这种设计便于对比研究诊断环节对优化效果的影响。数据集包含三个标准划分:训练集(15,686行,对应7,843个问题)、验证集(184行,对应92个问题)和测试集(240行,对应120个问题)。每个数据样本包含以下字段:`prompt`(以聊天格式组织的用户提示,内容内嵌了待优化的慢速种子代码)、`data_source`(标识数据源自 codecontests-o)、`reward_model`(描述用于评估的奖励模型类型和预期的真实输出)、`extra_info`(包含问题ID、提示变体类型、时间限制、所有测试用例的输入、原始的慢速种子代码、测试数量等元信息)、`uid`(作为分组键的问题ID)。该数据集派生自 `caijanfeng/CodeContests-O`(提供测试用例)和 `deepmind/code_contests`(提供Python-3的慢速种子解决方案)。原始数据经过预处理:种子代码长度被限制在6000字符以内,单个测试用例的输入/输出大小被限制在128KB以内(以过滤掉极端消耗内存的案例,此操作保留了约88%的原始测试用例)。需要注意的是,数据集中不包含运行时性能指标,模型的正确性和速度评分需在训练或评估时通过外部工具(如 SandboxFusion)在沙箱环境中执行代码并测量CPU时间来完成。

The Diagnosis-Advantage RLVR dataset is constructed to support the training and evaluation of the Diagnosis-Advantage RLVR recipe, which employs the GRPO method. Its core task focuses on code optimization: given a correct but slow Python solution (seed code) for a competitive programming problem, the model needs to generate an optimized version that executes faster while maintaining functional correctness. A notable feature of the dataset is its paired A/B variant structure: each programming problem corresponds to two different prompt variants (A and B), which share a unique problem identifier (`uid`). Variant A adopts a diagnose-then-optimize paradigm, requiring the model to first generate a diagnostic analysis in the format `<diagnosis>...</diagnosis>`, then output the optimized code. Variant B serves as a counterfactual baseline, requiring the model to directly optimize without providing a diagnostic step. This design facilitates comparative studies on the impact of the diagnostic phase on optimization effectiveness. The dataset includes three standard splits: training set (15,686 rows, corresponding to 7,843 problems), validation set (184 rows, corresponding to 92 problems), and test set (240 rows, corresponding to 120 problems). Each data sample contains the following fields: `prompt` (user prompt organized in chat format, embedding the slow seed code to be optimized), `data_source` (identifying the data source as codecontests-o), `reward_model` (describing the type of reward model used for evaluation and the expected true output), `extra_info` (containing metadata such as problem ID, prompt variant type, time limit, all test case inputs, the original slow seed code, number of tests, etc.), `uid` (problem ID used as a grouping key). The dataset is derived from `caijanfeng/CodeContests-O` (providing test cases) and `deepmind/code_contests` (providing Python-3 slow seed solutions). The original data has been preprocessed: the seed code length is limited to 6,000 characters, and the input/output size of a single test case is limited to 128KB (to filter out extreme memory-consuming cases, retaining approximately 88% of the original test cases). It is important to note that the dataset does not include runtime performance metrics; the correctness and speed scores of the model need to be completed during training or evaluation by executing the code in a sandbox environment using external tools (such as SandboxFusion) and measuring CPU time.

创建时间:
2026-06-05
原始信息汇总

数据集概述

名称:Diagnosis-Advantage RLVR (CodeContests-O, route-B paired A/B)

许可证:Apache-2.0

语言:英语

任务类别:文本生成

标签:代码、代码优化、RLVR、GRPO、推理、CodeContests

数据来源:该数据集源自 caijanfeng/CodeContests-O(测试用例)和 deepmind/code_contests(Python-3 种子解决方案,作为慢速初始代码;种子代码长度限制为 6000 字符)。

数据处理说明

  • 单个测试的 stdin/stdout 被限制在 128 KB 以内,以剔除会导致沙箱执行内存爆炸的病态大尺寸用例,约保留 88% 的测试。
  • 评分在训练/评估时通过 SandboxFusion 进行(正确性 + process_time_ns CPU 时间作为加速信号);本数据集仅提供提示和测试数据。

数据集结构

该数据集包含三个分割:train(训练)、validation(验证)和 test(测试),以 Parquet 格式存储。

分割 行数 问题数(×2 变体)
train 15,686 7,843
validation 184 92
test 240 120

核心设计:每个问题包含两个提示变体,共享同一个 uid(即 GRPO 分组键):

  • 变体 A — “诊断后优化”:模型需先输出 <diagnosis>…</diagnosis> 诊断块,再输出优化后的代码。
  • 变体 B — “直接优化”:不进行诊断,作为反事实基线。

数据列

  • prompt — 聊天格式 [{role: user, content}],内容中嵌入了慢速的种子解决方案。
  • data_source — 固定值 "codecontests-o"
  • reward_model — 格式为 {style: "rule", ground_truth: [每个测试的预期 stdout]}
  • extra_info — 包含以下信息:
    • problem_id:问题ID
    • variant:变体标识("A""B"
    • time_limit:时间限制
    • test_inputs:每个测试的 stdin
    • slow_code:原始的慢速种子代码
    • n_tests:测试数量
  • uid — 等于 problem_id,由同一个问题的 A/B 两行共享,作为 GRPO 的分组键。

使用提示:要获取诊断 vs. 无诊断的测试分割,可通过筛选 extra_info.variant == "A""B" 来提取相应数据。


任务描述

给定一个针对竞赛编程问题的正确但运行缓慢的 Python 解决方案,模型必须生成一个更快且仍然正确的优化版本。该数据集专为 Diagnosis-Advantage RLVR 方法(即 verl GRPO)设计,通过成对的变体对比来评估诊断步骤对代码优化效果的影响。

搜集汇总
数据集介绍
diagnosis-advantage-grpo 数据集图片
构建方式
该数据集源自对代码优化训练范式的深入探索,将经典编程竞赛数据集DeepMind CodeContests与CodeContests-O中的测试用例进行融合,并筛选出正确但执行缓慢的Python种子解决方案作为输入。每道题目被精心构造为两种提示变体:变体A要求模型先输出诊断分析嵌块再生成优化代码,变体B则直接进行优化,形成对比基线的配对结构。数据处理阶段对种子方案长度限制在6000字符以内,并对单个测试的标准输入输出进行128KB的容量截断,剔除极端内存消耗的病理案例,保留约88%的测试用例用于训练与评估。
使用方法
使用者可以通过加载Parquet格式的三个标准数据分片来获取训练、验证和测试样本。每个样本的prompt字段采用聊天格式的用户消息结构,模型需根据输入的慢速种子代码生成对应的优化解决方案。通过筛选extra_info字段中的variant标签可实现诊断与非诊断场景的分离测试。在训练与评估阶段,可利用SandboxFusion沙盒执行框架对模型输出进行正确性验证和CPU执行时间度量,从而获取速度提升信号。奖励模型定义为基于规则的地面真值比较方式,确保优化结果的可靠评估。
背景与挑战
背景概述
在竞争性编程与代码优化领域,模型不仅需生成正确代码,更应具备效率感知能力。诊断优势强化学习数据集(Diagnosis-Advantage RLVR)由字节跳动等机构于2024年创建,基于CodeContests-O与DeepMind代码竞赛数据集构建,核心研究问题在于探索诊断过程对代码优化策略的影响。该数据集通过为每个编程问题提供两种变体——先诊断后优化(A变体)与直接优化(B变体),并借助GRPO算法进行偏好学习,为代码优化任务引入了结构化推理机制。其影响力体现在推动了大语言模型从单纯生成正确代码向兼顾效率与可解释性的范式转变,为自动代码优化、鲁棒强化学习等领域提供了标准化评估基准。
当前挑战
该数据集主要面临三重挑战。首先,在领域问题层面,代码优化需同时保证功能正确性与运行效率,传统单一正确率指标无法反映速度提升,而真实环境下的性能评估受硬件、编译器差异等外部因素干扰,导致泛化困难。其次,构建过程中需处理原始代码竞赛测试用例的极端输入(如超过128KB的测试流,此类病态样本被保留约88%),并需设计沙箱执行环境以安全测量CPU时间。此外,诊断信息的有效性与长度控制形成矛盾——过长诊断会稀释优化信号,过短则无法体现推理优势,亟需平衡两者关系的自适应机制。
常用场景
经典使用场景
该数据集专为代码优化场景中的强化学习与推理能力提升而设计,其核心应用在于训练语言模型从‘正确但低效’的Python代码中提炼出更优解法。通过构建配对变体A(诊断后优化)与B(直接优化),研究者可系统性地评估诊断步骤对优化效果的增益。在代码竞赛领域,此数据集的经典用法包括:引导模型先识别原解的性能瓶颈(如冗余循环、低效数据结构),再生成加速版本,从而将粗放式代码优化转化为可解释的精细推理过程。
解决学术问题
该数据集有效回应了当前大语言模型在代码生成领域面临的‘正确性优先于效率’的困境。传统评测指标(如pass@k)忽略运行时间,导致模型虽能输出正确代码却难以适应实际环境中的性能约束。通过引入基于沙盒执行的CPU耗时奖励信号,数据集将速度优化纳入强化学习框架,推动模型从仅追求语法正确转向兼顾计算效率。这一设计填补了代码智能体在时序推理与资源感知能力上的研究空白。
实际应用
在实际工程场景中,该数据集可支撑自动化代码审查与性能调优工具的开发。例如,在持续集成流水线中,模型可对开发者提交的算法实现进行实时分析,输出带诊断说明的优化建议;在在线判题系统中,它能帮助竞赛选手突破思维定式,通过对比有/无诊断步骤的解题路径,揭示瓶颈定位如何影响最终代码质量。此外,沙盒安全执行机制使其适合部署在需要隔离运行环境的商业平台中,避免恶意代码风险。
数据集最近研究
最新研究方向
该数据集聚焦于代码优化与推理能力的强化学习研究,创新性地引入“诊断优先”策略,通过将问题拆解为诊断与优化两阶段,探索大语言模型在竞争性编程场景中从正确但低效的代码向高效版本迁移的学习机制。研究前沿在于利用GRPO算法结合配对变体(带诊断的A路与无诊断的B路)构建对比性反馈信号,从而量化中间推理步骤对代码加速效果的增益,为提升模型结构化思维与细粒度代码调优能力开辟了新范式。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务