five

HumanEval-MRI-Cpp

收藏
Hugging Face2025-08-15 更新2025-08-16 收录
下载链接:
https://huggingface.co/datasets/eth-sri/HumanEval-MRI-Cpp
下载链接
链接失效反馈
官方服务:
资源简介:
HumanEval-MRI-C++数据集是一个基于HumanEval的C++代码多区域填充版本。通过从原始解决方案中随机删除1到3个代码片段生成。该数据集被用于评估论文《Constrained Decoding of Diffusion LLMs with Context-Free Grammars》中的模型。数据集包含测试集,每个示例包括代码片段、缺失的代码片段以及测试用例。
创建时间:
2025-08-13
原始信息汇总

HumanEval-MRI-Cpp 数据集概述

数据集基本信息

  • 源数据集: zai-org/humaneval-x
  • 下载大小: 148031 bytes
  • 数据集大小: 834118 bytes
  • 测试集样本数: 473
  • 测试集大小: 834118 bytes

数据集特征

  • instance_id: 字符串类型,唯一标识实例
  • number_spans: 整型,表示移除的跨度数量
  • prompt: 字符串类型,问题描述
  • declaration: 字符串类型,函数声明
  • splits: 字符串序列,分割后的代码片段
  • removed_spans: 字符串序列,被移除的代码片段
  • canonical_solution: 字符串类型,标准解决方案
  • test: 字符串类型,测试用例

数据集用途

  • 该数据集是C++翻译版HumanEval的多区域填充版本,通过从标准解决方案中随机移除1到3个跨度生成。
  • 用于论文《Constrained Decoding of Diffusion LLMs with Context-Free Grammars》中的评估。

示例使用

python from datasets import load_dataset import json

dataset = load_dataset(eth-sri/HumanEval-MRI-Cpp) for instance in dataset[test]: print(json.dumps(instance, indent=2)) break

示例实例

json { "instance_id": "CPP/0_spans_1", "number_spans": 1, "prompt": "/* Check if in given vector of numbers, are any two numbers closer to each other than given threshold.

has_close_elements({1.0, 2.0, 3.0}, 0.5) false has_close_elements({1.0, 2.8, 3.0, 4.0, 5.0, 2.0}, 0.3) true */ #include<stdio.h> #include<vector> #include<math.h> using namespace std; bool has_close_elements(vector<float> numbers, float threshold){ ", "declaration": "#include<stdio.h> #include<vector> #include<math.h> using namespace std; #include<algorithm> #include<stdlib.h> bool has_close_elements(vector<float> numbers, float threshold){ ", "splits": [ " int i,j;

for (i=0;i<numbers.size();i++)
for (j=i+1;j<numbers.size();j++)
if ",
";

return false;

}

" ], "removed_spans": [ "(abs(numbers[i]-numbers[j])<threshold) return true" ], "canonical_solution": " int i,j;

for (i=0;i<numbers.size();i++)
for (j=i+1;j<numbers.size();j++)
if (abs(numbers[i]-numbers[j])<threshold)
return true;

return false;

}

", "test": "#undef NDEBUG #include<assert.h> int main(){ vector<float> a={1.0, 2.0, 3.9, 4.0, 5.0, 2.2}; assert (has_close_elements(a, 0.3)==true); assert (has_close_elements(a, 0.05) == false);

assert (has_close_elements({1.0, 2.0, 5.9, 4.0, 5.0}, 0.95) == true);
assert (has_close_elements({1.0, 2.0, 5.9, 4.0, 5.0}, 0.8) ==false);
assert (has_close_elements({1.0, 2.0, 3.0, 4.0, 5.0}, 2.0) == true);
assert (has_close_elements({1.1, 2.2, 3.1, 4.1, 5.1}, 1.0) == true);
assert (has_close_elements({1.1, 2.2, 3.1, 4.1, 5.1}, 0.5) == false);

} " }

搜集汇总
数据集介绍
main_image_url
构建方式
HumanEval-MRI-Cpp数据集是基于C++翻译版本的HumanEval数据集构建的多区域填充版本。该数据集通过从原始数据集的规范解决方案中随机移除1至3个代码片段生成,旨在评估代码填充任务的性能。构建过程中保留了原始数据集的函数声明、提示信息和测试用例,仅对解决方案部分进行结构化处理,形成具有明确空缺位置的评估样本。
特点
该数据集的核心特点在于其多区域填充的评估范式,每个样本包含1到3个需要填充的代码片段空缺。数据集完整保留了原始HumanEval-x的测试验证机制,确保填充结果的正确性可验证。样本结构包含实例ID、空缺数量、函数声明、分割位置标记、移除片段及完整解决方案等丰富字段,为代码生成研究提供细粒度的评估基准。
使用方法
使用该数据集时,可通过HuggingFace的datasets库直接加载,获取包含473个测试样本的数据集。每个样本提供分割位置信息和移除片段内容,研究者可据此设计代码填充模型。评估时需将生成内容填入指定位置,利用原始测试用例验证功能正确性。数据集配套提供标准化的评估代码,支持与论文中报告的基准结果进行直接对比。
背景与挑战
背景概述
HumanEval-MRI-Cpp数据集是基于HumanEval-X的C++翻译版本,通过随机移除1至3个代码片段生成的多区域填充版本。该数据集由ETH Zurich的研究团队开发,主要用于评估论文《Constrained Decoding of Diffusion LLMs with Context-Free Grammars》中的方法。其核心研究问题聚焦于如何利用上下文无关文法约束扩散语言模型的解码过程,以提升代码生成任务的准确性和鲁棒性。该数据集的推出为程序合成和代码补全领域提供了新的评估基准,推动了相关技术的进步。
当前挑战
该数据集面临的挑战主要体现在两个方面:其一,在解决代码生成和补全问题时,如何确保模型能够准确理解并填充缺失的多个代码片段,同时保持代码的逻辑正确性和语法合规性;其二,在构建过程中,随机移除代码片段可能导致语义不连贯或语法错误,增加了数据清洗和标注的复杂度。此外,多区域填充任务的评估标准需兼顾局部准确性和全局一致性,这对评估指标的设计提出了更高要求。
常用场景
经典使用场景
在程序语言理解与生成领域,HumanEval-MRI-Cpp数据集通过多区域填充任务的形式,为评估模型在复杂代码补全场景下的性能提供了标准化测试平台。其经典使用场景聚焦于大语言模型对C++代码片段的上下文理解能力测试,要求模型根据被随机移除1至3个代码片段的残缺程序,准确预测并填充缺失部分。这种设计有效模拟了真实编程环境下开发者需要处理的不完整代码情境。
衍生相关工作
围绕该数据集衍生的经典工作包括ETH Zurich团队提出的语法约束扩散模型解码方法,其论文《Constrained Decoding of Diffusion LLMs with Context-Free Grammars》成为程序生成领域的重要参考文献。后续研究进一步扩展了该数据集的应用维度,包括跨语言代码迁移、程序缺陷修复等方向,形成了一系列具有影响力的学术成果。
数据集最近研究
最新研究方向
在程序代码生成与补全领域,HumanEval-MRI-Cpp数据集作为HumanEval-X的C++多区域填充变体,正推动着代码生成模型在复杂上下文环境下的性能评估研究。该数据集通过随机移除标准解决方案中的1至3个代码片段,构建了更具挑战性的多区域填充任务,为评估模型在真实编程场景中的代码理解与生成能力提供了新基准。近期研究热点集中在如何结合上下文无关文法约束解码策略提升扩散语言模型的代码生成质量,相关成果已应用于智能编程助手和自动化代码修复系统开发。这一方向的发展不仅促进了程序合成技术的进步,也为软件工程领域的智能化转型提供了关键技术支撑。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作