five

m-a-p/MdEval

收藏
Hugging Face2025-02-12 更新2025-04-08 收录
下载链接:
https://hf-mirror.com/datasets/m-a-p/MdEval
下载链接
链接失效反馈
官方服务:
资源简介:
MDEVAL是一个包含20种编程语言,共3.9K测试样本的多语言代码调试大规模基准数据集,专注于三种bug修复任务。它极大地推动了代码LLM在多语言场景下的极限。

MDEVAL is a大规模 multilingual debugging benchmark covering 20 programming languages with 3.9K test samples and three tasks focused on bug fixing.
提供机构:
m-a-p
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程与自然语言处理交叉领域,代码调试能力的多语言评估一直是亟待解决的难题。MDEval数据集应运而生,旨在构建一个大规模、多语言的代码调试基准。其构建方式严谨而系统:首先,精心挑选涵盖20种编程语言的3.9K个测试样本,确保语言多样性与代表性;其次,针对每个样本,设计了三类核心任务——自动程序修复、缺陷定位与缺陷识别,以全面评估模型的调试能力;最后,数据集覆盖了47种不同的错误类型,既包含跨语言的通用错误,也囊括了如Rust中的“Missing Mut”和C语言中的“Misused Macro Definition”等语言特有错误,从而构建了一个层次分明、内容丰富的评估体系。
特点
MDEval数据集的核心特点在于其前所未有的多语言广度与任务深度。它横跨20种编程语言,从主流语言如Python、Java到小众语言如Rust、C,极大地拓展了代码调试评估的边界。该数据集不仅规模宏大,包含近4000个精心设计的样本,而且任务设置精巧,将调试过程拆解为修复、定位与识别三个子任务,能够从不同维度细致衡量模型的能力。此外,其错误类型的丰富性(47种)确保了评估的全面性和挑战性,能够真实反映模型在复杂多语言场景下的鲁棒性与泛化能力。
使用方法
使用MDEval数据集进行模型评估需遵循标准化流程。首先,用户需准备模型推理结果,按照指定文件夹结构存放,每个语言对应一个JSONL文件,其中每条数据需包含'question_id'、'buggy_code'、'instruction'等字段,并将模型生成的修复代码填入'llm_response'字段。随后,可通过执行提供的脚本(如`sh inference/chat.sh`)进行推理,并根据任务类型(如APR)运行对应的评估脚本(如`sh excute/apr.sh`)。为简化环境配置,官方还提供了Docker镜像,用户可直接拉取使用,确保评估结果的可复现性。
背景与挑战
背景概述
在软件工程领域,代码调试作为保障程序正确性的关键环节,长期依赖于人工经验与静态分析工具,效率与覆盖面均存在显著局限。随着大语言模型(LLMs)在代码生成任务中展现出惊人潜力,如何系统性地评估其在多语言环境下的调试能力成为亟待探索的前沿问题。m-a-p/MdEval数据集正是在此背景下应运而生,由来自多所高校与研究机构的研究团队于2024年共同创建。该数据集覆盖20种编程语言、包含3900个测试样本,并设计了自动程序修复、缺陷定位与缺陷识别三项核心任务,旨在全面衡量代码大模型在多语言场景下的调试能力。MdEval的发布填补了多语言代码调试基准的空白,为对比开源与闭源模型的实际差距提供了标准化评测平台,对推动代码智能领域的研究具有里程碑意义。
当前挑战
MdEval数据集所面临的挑战首先体现在领域问题的复杂性上:代码调试不仅要求模型理解语法语义,还需具备跨语言识别47种错误类型的能力,包括通用错误与特定语言独有的缺陷(如Rust的‘Missing Mut’、C语言的‘Misused Macro Definition’),这对模型的泛化能力提出了极高要求。其次,在数据集构建过程中,团队需确保各语言样本的均衡性与任务标注的准确性,尤其是在处理低资源编程语言时,获取高质量错误样本与测试用例的难度显著增加。此外,如何设计统一的评估协议以兼容不同模型架构的输出格式,并避免数据泄露导致评测失真,同样是构建过程中的关键挑战。这些困难共同构成了MdEval在推动多语言代码调试研究时必须克服的障碍。
常用场景
经典使用场景
MdEval作为一个大规模多语言代码调试基准测试,其核心用途在于评估和提升代码大语言模型在多语言环境下的调试能力。该数据集覆盖了20种编程语言,包含3900个测试样本,并设计了自动程序修复、缺陷定位和缺陷识别三项任务,为研究者提供了一个全面且标准化的平台,用以衡量模型在跨语言场景中识别和修复代码错误的表现。通过这一基准,学者们能够系统性地比较不同模型在多语言调试任务上的优劣,从而推动代码智能领域的发展。
解决学术问题
在学术研究中,MdEval有效解决了现有代码调试基准测试语言覆盖范围有限、任务单一的问题。传统基准大多聚焦于少数主流语言,未能充分反映多语言编程的实际需求。MdEval通过涵盖20种语言和47种错误类型,包括语言特有的错误如Rust的'Missing Mut'和C语言的'Misused Macro Definition',为研究者提供了更全面的评估视角。这一基准帮助揭示了开源与闭源模型在多语言调试能力上的真实差距,为改进模型泛化性和鲁棒性提供了关键见解,促进了多语言代码修复技术的理论突破。
衍生相关工作
MdEval的发布催生了多项衍生研究工作。其提出的多语言调试评估框架被后续研究广泛采用,例如基于MdEval的排行榜已成为衡量代码LLMs的重要参考。研究者基于该基准开发了针对特定语言或错误类型的优化模型,如改进的缺陷定位算法和多任务学习策略。此外,MdEval的数据集结构启发了其他多语言代码理解基准的构建,推动了代码修复、代码审查等相关领域的交叉研究。这些工作共同丰富了多语言代码智能的研究生态,加速了从学术成果到工业落地的转化进程。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务