MultiCodeBench
收藏arXiv2024-12-25 更新2024-12-26 收录
下载链接:
https://github.com/DeepSoftwareAnalytics/MultiCodeBench
下载链接
链接失效反馈官方服务:
资源简介:
MultiCodeBench是由中山大学、西安交通大学和重庆大学的研究团队创建的一个代码生成基准测试数据集,旨在评估大语言模型在特定应用领域中的代码生成性能。该数据集包含2400个编程任务,覆盖了区块链、云计算、数据分析、深度学习等12个热门软件开发领域,并涉及Python、JavaScript、TypeScript等15种编程语言。数据集的构建过程包括从GitHub相关项目中抽取编程问题,并邀请有经验的标注者重写每个任务的文档字符串,以确保任务质量和避免数据泄露。通过静态分析工具提取每个任务的依赖关系,进一步支持深入的性能分析。MultiCodeBench的应用领域主要集中在软件开发领域,帮助开发者选择适合特定领域的大语言模型,并为模型开发者提供改进领域特定代码生成能力的指导。
MultiCodeBench is a code generation benchmark dataset developed by research teams from Sun Yat-sen University, Xi'an Jiaotong University, and Chongqing University, which aims to evaluate the code generation performance of large language models (LLMs) in specific application domains. This dataset includes 2400 programming tasks, covering 12 popular software development fields such as blockchain, cloud computing, data analysis, and deep learning, and involves 15 programming languages including Python, JavaScript, and TypeScript. The dataset construction process involves extracting programming problems from relevant GitHub projects, and inviting experienced annotators to rewrite the docstring of each task to ensure task quality and prevent data leakage. Dependency relations of each task are extracted via static analysis tools, which further supports in-depth performance analysis. The application scenarios of MultiCodeBench primarily focus on the software development domain, helping developers select appropriate LLMs for specific fields, and providing guidance for model developers to enhance their domain-specific code generation capabilities.
提供机构:
中山大学, 西安交通大学, 重庆大学
创建时间:
2024-12-25
原始信息汇总
MultiCodeBench 数据集概述
数据集简介
MultiCodeBench 是一个多领域、多语言的代码生成基准测试数据集,旨在揭示当前主流大语言模型(LLMs)在流行软件应用领域中的代码生成能力。该数据集填补了以往代码生成基准测试主要集中在通用编程任务上的空白。
数据集结构
MultiCodeBench 数据集涵盖了12个不同的应用领域,每个领域对应一个JSON文件,具体包括:
Cloud_service.jsonBlock_chain.jsonDesktop_application.jsonDistributed_system.jsonGame.jsonMobile.jsonWeb.jsonRobot.jsonEnterprise_application.jsonData_analysis.jsonDeep_learning.jsonIoT.json
评估工具
MultiCodeBench 提供了CodeBleu评估工具,用于评估代码生成结果。CodeBleu工具包含以下组件:
- keywords: 通过代码语法和语义对齐提高相似性准确性。
- parser: 包含数据流图(DFG)提取工具,支持所有覆盖的语言。
- bleu.py: 计算BLEU分数。
- calc_code_bleu.py: 计算CodeBLEU分数。
- dataflow_match.py: 数据流匹配。
- syntax_match.py: 语法匹配。
- utils.py: 工具函数。
- weighted_ngram_match.py: 加权n-gram匹配。
- run_script.sh: 运行脚本。
快速开始
- 克隆该仓库。
- 运行
conda env create -f environment.yml创建名为 MultiCodeBench 的 conda 环境。
评估方法
将生成的代码结果放入 generation_result/docststring_only/{model_name} 文件夹中,然后在 MultiCodeBench/evaluation/CodeBleu 目录下运行以下命令:
bash
python calc_code_bleu.py --model {model_name} --predict_result_base_path generation_result/docstring_only
或者可以直接修改 MultiCodeBench/evaluation/CodeBleu/calc_code_bleu.py 中的源代码以自定义生成结果。
搜集汇总
数据集介绍

构建方式
MultiCodeBench的构建过程经过精心设计,旨在评估大语言模型(LLMs)在特定应用领域的代码生成能力。首先,研究团队通过分析自2020年以来的技术讨论,确定了12个热门的软件开发领域,包括区块链、Web开发、移动应用开发等。随后,从这些领域的高质量开源项目中抽取编程任务,并通过人工标注的方式重写每个任务的文档字符串,以确保任务质量并避免数据泄露问题。此外,团队还开发了基于静态分析的依赖解析工具,提取每个任务的依赖关系,以支持更深入的性能分析。最终,MultiCodeBench包含了2400个编程任务,覆盖了15种编程语言,为LLMs在特定领域的代码生成能力提供了全面的评估基准。
特点
MultiCodeBench的特点在于其多领域、多语言的覆盖范围,以及对真实开发场景的高度还原。该数据集涵盖了12个具体的软件开发领域,每个领域包含200个精心设计的编程任务,确保了对LLMs在特定领域代码生成能力的全面评估。此外,MultiCodeBench支持15种编程语言,能够反映LLMs在不同技术栈下的表现。数据集的另一个显著特点是其丰富的依赖信息,包括导入语句、标准库API、第三方库API以及项目定义的API,这些信息有助于深入分析LLMs在处理复杂依赖关系时的表现。通过人工标注的文档字符串和依赖解析工具,MultiCodeBench确保了任务的高质量和数据的可靠性。
使用方法
MultiCodeBench的使用方法主要围绕评估LLMs在特定领域的代码生成能力展开。用户可以通过提供任务的文档字符串和函数声明,要求LLMs生成目标代码。为了进一步提升评估效果,用户还可以为LLMs提供额外的上下文信息,如导入语句、本地文件上下文、依赖关系等,以帮助模型更好地理解任务需求。通过这种方式,MultiCodeBench不仅能够评估LLMs在特定领域的代码生成性能,还能为开发者提供实用的建议,帮助他们选择最适合其开发需求的LLMs。此外,数据集还支持对LLMs在不同领域中的失败原因进行深入分析,为模型开发者提供了改进方向。
背景与挑战
背景概述
MultiCodeBench是由中山大学、西安交通大学和重庆大学的研究团队于2024年推出的一个多领域、多语言的代码生成基准数据集。该数据集旨在评估大语言模型(LLMs)在特定应用领域中的代码生成能力。随着LLMs在代码生成任务中的广泛应用,现有的基准数据集主要关注通用场景,而忽略了LLMs在特定领域中的表现。MultiCodeBench填补了这一空白,涵盖了12个流行的软件开发领域和15种编程语言,包含2400个编程任务。通过深入分析这些领域的常用技术框架和平台,研究团队从相关GitHub仓库中抽取编程问题,并邀请具有领域经验的标注者重写任务描述,确保任务质量和避免数据泄露问题。MultiCodeBench的推出为开发者提供了实用的指导,帮助他们在特定领域中选择合适的LLMs,并为模型开发者提供了改进领域特定代码生成能力的方向。
当前挑战
MultiCodeBench面临的挑战主要体现在两个方面。首先,现有的代码生成基准数据集主要关注通用场景,而LLMs在特定领域中的表现尚未得到充分评估。不同领域涉及不同的编程语言、技术框架和第三方库,这对LLMs的代码生成能力提出了独特的要求。例如,系统开发通常使用C/C++,而Web开发则涉及HTML、JavaScript等语言,LLMs需要具备对这些领域特定知识的深入理解。其次,在构建MultiCodeBench的过程中,研究团队面临了数据质量和数据泄露的挑战。为了确保任务的高质量,团队从GitHub仓库中抽取编程问题,并邀请领域专家重写任务描述。此外,团队还开发了基于静态分析的依赖解析工具,提取每个任务的依赖关系,以支持更深入的性能分析。这些挑战的克服为MultiCodeBench的构建提供了坚实的基础,使其能够全面评估LLMs在特定领域中的代码生成能力。
常用场景
经典使用场景
MultiCodeBench作为一个多领域、多语言的代码生成基准测试,广泛应用于评估大型语言模型(LLMs)在不同软件应用领域的代码生成能力。其经典使用场景包括对主流LLMs在区块链、云计算、数据分析、深度学习等12个特定领域的代码生成性能进行系统性评估。通过涵盖15种编程语言和2400个编程任务,MultiCodeBench为研究人员提供了一个全面的测试平台,帮助揭示LLMs在特定领域中的优势和不足。
解决学术问题
MultiCodeBench解决了现有代码生成基准测试主要关注通用场景的局限性,填补了LLMs在特定应用领域代码生成性能评估的空白。通过深入分析LLMs在不同领域中的表现,该数据集为研究人员提供了宝贵的见解,帮助他们理解LLMs在特定领域中的代码生成能力,并为模型开发者提供了改进方向。此外,MultiCodeBench还揭示了LLMs在处理复杂依赖关系和第三方库时的挑战,为未来的研究提供了新的视角。
衍生相关工作
MultiCodeBench的推出催生了一系列相关研究,特别是在领域特定代码生成和LLMs性能优化方面。例如,基于MultiCodeBench的研究揭示了LLMs在处理复杂依赖关系和第三方库时的不足,推动了针对这些问题的模型改进工作。此外,该数据集还激发了更多关于多领域代码生成基准测试的研究,如BioCoder和DomainEval,进一步扩展了代码生成评估的广度和深度。
以上内容由遇见数据集搜集并总结生成



