five

MultiCodeBench|代码生成数据集|软件开发数据集

收藏
arXiv2024-12-25 更新2024-12-26 收录
代码生成
软件开发
下载链接:
https://github.com/DeepSoftwareAnalytics/MultiCodeBench
下载链接
链接失效反馈
资源简介:
MultiCodeBench是由中山大学、西安交通大学和重庆大学的研究团队创建的一个代码生成基准测试数据集,旨在评估大语言模型在特定应用领域中的代码生成性能。该数据集包含2400个编程任务,覆盖了区块链、云计算、数据分析、深度学习等12个热门软件开发领域,并涉及Python、JavaScript、TypeScript等15种编程语言。数据集的构建过程包括从GitHub相关项目中抽取编程问题,并邀请有经验的标注者重写每个任务的文档字符串,以确保任务质量和避免数据泄露。通过静态分析工具提取每个任务的依赖关系,进一步支持深入的性能分析。MultiCodeBench的应用领域主要集中在软件开发领域,帮助开发者选择适合特定领域的大语言模型,并为模型开发者提供改进领域特定代码生成能力的指导。
提供机构:
中山大学, 西安交通大学, 重庆大学
创建时间:
2024-12-25
原始信息汇总

MultiCodeBench 数据集概述

数据集简介

MultiCodeBench 是一个多领域、多语言的代码生成基准测试数据集,旨在揭示当前主流大语言模型(LLMs)在流行软件应用领域中的代码生成能力。该数据集填补了以往代码生成基准测试主要集中在通用编程任务上的空白。

数据集结构

MultiCodeBench 数据集涵盖了12个不同的应用领域,每个领域对应一个JSON文件,具体包括:

  • Cloud_service.json
  • Block_chain.json
  • Desktop_application.json
  • Distributed_system.json
  • Game.json
  • Mobile.json
  • Web.json
  • Robot.json
  • Enterprise_application.json
  • Data_analysis.json
  • Deep_learning.json
  • IoT.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: 运行脚本。

快速开始

  1. 克隆该仓库。
  2. 运行 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 中的源代码以自定义生成结果。

AI搜集汇总
数据集介绍
main_image_url
构建方式
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,进一步扩展了代码生成评估的广度和深度。
以上内容由AI搜集并总结生成
用户留言
有没有相关的论文或文献参考?
这个数据集是基于什么背景创建的?
数据集的作者是谁?
能帮我联系到这个数据集的作者吗?
这个数据集如何下载?
点击留言
数据主题
具身智能
数据集  4098个
机构  8个
大模型
数据集  439个
机构  10个
无人机
数据集  37个
机构  6个
指令微调
数据集  36个
机构  6个
蛋白质结构
数据集  50个
机构  8个
空间智能
数据集  21个
机构  5个
5,000+
优质数据集
54 个
任务类型
进入经典数据集
热门数据集

典型分布式光伏出力预测数据集

光伏电站出力数据每5分钟从电站机房监控系统获取;气象实测数据从气象站获取,气象站建于电站30号箱变附近,每5分钟将采集的数据通过光纤传输到机房;数值天气预报数据利用中国电科院新能源气象应用机房的WRF业务系统(包括30TF计算刀片机、250TB并行存储)进行中尺度模式计算后输出预报产品,每日8点前通过反向隔离装置推送到电站内网预测系统。

国家基础学科公共科学数据中心 收录

Desert Knowledge Australia Solar Centre PV Power Data

该数据集包含来自澳大利亚Alice Springs的Site 7的太阳能发电数据,包括有功功率(AP,kW)、历史温度(T,℃)、相对湿度(RH,%)、全球水平辐照度(GHI,Wh/m²)和漫射水平辐照度(DHI,Wh/m²)。

github 收录

PUZZLES

PUZZLES是由苏黎世联邦理工学院的研究团队基于Simon Tatham的便携式谜题集合开发的强化学习基准数据集,包含40种不同复杂度的逻辑谜题。这些谜题具有可调整的大小和难度,适用于评估强化学习代理的算法和逻辑推理能力。数据集的创建过程中,研究团队将原始C源代码扩展至Pygame库标准,并集成到Gymnasium框架API中,使得用户可以灵活调整谜题的难度和大小。PUZZLES主要应用于强化学习领域,旨在推动算法和逻辑推理在机器学习中的应用和发展。

arXiv 收录

RAVDESS

情感语音和歌曲 (RAVDESS) 的Ryerson视听数据库包含7,356个文件 (总大小: 24.8 GB)。该数据库包含24位专业演员 (12位女性,12位男性),以中性的北美口音发声两个词汇匹配的陈述。言语包括平静、快乐、悲伤、愤怒、恐惧、惊讶和厌恶的表情,歌曲则包含平静、快乐、悲伤、愤怒和恐惧的情绪。每个表达都是在两个情绪强度水平 (正常,强烈) 下产生的,另外还有一个中性表达。所有条件都有三种模态格式: 纯音频 (16位,48kHz .wav),音频-视频 (720p H.264,AAC 48kHz,.mp4) 和仅视频 (无声音)。注意,Actor_18没有歌曲文件。

OpenDataLab 收录

SKIPP’D

SKIPP’D数据集由斯坦福大学的环境评估与优化(EAO)组创建,旨在为基于图像的短期太阳能预测研究提供标准化基准。数据集包含2017至2019年三年的高质量控制下采样的天空图像和光伏发电数据,适合深度学习模型开发。此外,还提供了高分辨率、高频率的天空图像和光伏发电数据,以及相应的视频片段,以支持研究灵活性。数据集的应用领域包括天空图像分割、云类型分类和云运动预测,旨在解决太阳能预测中的短期波动问题。

arXiv 收录