JMigBench
收藏arXiv2026-02-11 更新2026-02-12 收录
下载链接:
https://github.com/NishilAmin1213/JMigBench
下载链接
链接失效反馈官方服务:
资源简介:
JMigBench是由伦敦大学学院团队构建的Java代码迁移基准数据集,专注于评估大语言模型在Java 8至Java 11版本升级中的表现。该数据集包含45个精心筛选的函数对,覆盖8类废弃API,平均函数长度9.69行,数据来源于开源仓库的真实迁移案例和ChatGPT辅助生成的合成样本。通过平衡关键词分布和严格控制函数长度,该数据集有效解决了原始数据中存在的噪声和偏差问题,为评估模型在语法转换、语义保持等细粒度迁移任务中的能力提供了标准化测试平台。
JMigBench is a Java code migration benchmark dataset developed by the research team at University College London, focusing on evaluating the performance of large language models (LLMs) in the upgrade from Java 8 to Java 11. This dataset contains 45 carefully curated function pairs covering 8 categories of deprecated APIs, with an average function length of 9.69 lines. The data is derived from real migration cases in open-source repositories and synthetic samples generated with the assistance of ChatGPT. By balancing keyword distribution and strictly controlling function length, this dataset effectively mitigates the noise and bias issues present in raw data, providing a standardized testbed for evaluating model capabilities in fine-grained migration tasks such as syntax conversion and semantic preservation.
提供机构:
伦敦大学学院; 南京大学
创建时间:
2026-02-11
原始信息汇总
JMigBench 数据集概述
数据集简介
JMigBench 是一个用于评估大型语言模型在真实世界源代码迁移任务(从 Java 8 迁移到 Java 11)上的基准测试套件和评估流水线。
核心目的
- 为评估大型语言模型在迁移 Java 函数(从 Java 8 到 Java 11)任务上的性能提供标准化的数据集、提示与评估流水线及指标。
- 解决企业将遗留 Java 8 代码库迁移到较新长期支持版本(如 Java 11)的需求。
- 支持对大型语言模型在代码迁移任务中的表现进行标准化比较。
数据集内容与结构
主要目录
- /Build_Synthetic_Dataset: 包含使用输入函数 JSON 文件构建合成数据集的脚本。
- /Built_Web_Scraped_Dataset: 包含从 GitHub 网络爬取以构建真实世界函数数据集的脚本。
- /Outputs: 输出可视化结果(SVG 文件)的存储位置。
- /Process_Results: 包含处理结果 pickle 文件并绘制/输出指标的脚本。
- /Prompting_Pipeline: 用于为数据集中的每个函数提示 Mistral API 并存储输出的脚本。
- /Shared_Files: 存放公共文件、实用工具和数据集的目录。
- /Synthetic_Function_Pairs: 包含 45 个合成函数对的目录,每个子目录代表一个方法名,并包含 java8.txt 和 java11.txt 文件。
核心文件
- README.md: 项目说明文件。
- requirements.txt: 包含项目依赖项的文本文件。
技术栈与依赖
- Python 版本: 3.10
- 依赖安装: 通过
pip install -r requirements.txt安装必要依赖。
数据来源与类型
- 合成函数对: 45 对预定义的 Java 8 与 Java 11 函数。
- 真实世界函数: 通过从 GitHub 网络爬取构建的数据集。
搜集汇总
数据集介绍

构建方式
在软件工程领域,代码迁移是维持软件兼容性与安全性的关键环节,而JMigBench的构建正是为了填补现有基准测试在评估大语言模型进行细粒度函数级代码迁移能力方面的空白。该数据集通过精心筛选开源仓库中的Java 8至Java 11函数对,并针对初始数据存在的质量缺陷,采用人工与ChatGPT辅助的方式,重构了一个涵盖八类废弃API的合成数据集。构建过程首先从GitHub高星项目中识别并验证了明确的版本迁移事件,随后提取函数级变更,并通过关键词匹配确保Java 8版本包含Java 11中已废弃的语法。最终形成的45个函数对经过平衡化处理,减少了噪声并聚焦于废弃API的替换,为评估模型在真实迁移场景中的表现提供了清晰且可控的基准。
特点
JMigBench数据集的核心特点在于其专注于Java 8至Java 11的函数级迁移任务,并系统性地覆盖了包括JAX-WS、CORBA、Thread API等在内的八类废弃API,确保了评估场景的多样性与代表性。与现有侧重于仓库级迁移或缺乏真实对照的基准不同,该数据集提供了精确的Java 8与Java 11函数对作为地面真值,支持对模型输出进行直接的词汇、语义及迁移正确性的细粒度量化分析。数据集中函数长度较为均匀且噪声较低,能够有效隔离特定API的使用情境,从而为衡量大语言模型在检测、更新及保持功能等价性方面的能力提供了稳定而可靠的测试环境。
使用方法
使用JMigBench进行评估时,研究者通常采用角色提示策略,引导大语言模型扮演高级Java工程师,将给定的Java 8函数迁移至Java 11版本,并确保行为保持不变。评估框架主要围绕两个研究问题展开:一是通过CodeBLEU指标及其子度量(如N-gram匹配、数据流匹配)分析生成代码与真实Java 11代码在词汇和语义层面的相似性;二是基于预定义的废弃关键词列表,计算关键词移除成功率以量化迁移的正确性。这种静态分析方法避免了因函数级隔离而缺乏完整项目上下文所带来的编译与执行挑战,为系统比较不同模型在自动化代码迁移任务上的性能提供了可重复且聚焦的评估路径。
背景与挑战
背景概述
在软件工程领域,编程语言的持续演进要求开发者将遗留代码迁移至新版本,以维持兼容性、安全性与可维护性。JMigBench数据集由伦敦大学学院等机构的研究团队于2026年构建,旨在填补大型语言模型在源代码迁移任务评估方面的空白。该数据集聚焦于Java 8至Java 11的函数级代码升级,涵盖了八类已弃用API的迁移案例,为量化模型在真实迁移场景中的性能提供了基准。其创建不仅响应了工业界对自动化迁移工具的迫切需求,也为探索语言模型在代码演化任务中的能力边界奠定了实证基础。
当前挑战
JMigBench所应对的核心领域挑战在于自动化源代码版本迁移的准确性与泛化能力。具体而言,模型需在保留功能语义的前提下,精确识别并替换已弃用的API,同时处理从简单映射到复杂语义转换的多样迁移模式。在数据集构建过程中,研究者面临了真实代码库中已弃用API分布不均、标注噪声显著以及高质量配对数据稀缺等难题。初始通过关键词匹配收集的数据存在大量误报,且多数仓库在迁移前已移除旧API,导致数据代表性不足。这些因素共同制约了数据集的规模与多样性,进而影响了模型在复杂迁移场景下的评估效度。
常用场景
经典使用场景
在软件工程领域,代码迁移是维持软件系统长期可维护性的关键环节,JMigBench数据集为评估大语言模型在源代码迁移任务中的性能提供了标准化基准。该数据集聚焦于Java 8至Java 11的函数级迁移,涵盖了八个类别的废弃API,通过精心构建的函数对,支持对大语言模型生成的迁移代码进行细粒度评估。研究者利用CodeBLEU和基于关键词的指标,系统分析模型在词汇、语义相似性及迁移正确性方面的表现,从而客观衡量自动化迁移工具的效能。
衍生相关工作
JMigBench数据集的发布促进了源代码迁移领域的多项经典研究工作。基于其评估框架,后续研究扩展了数据集覆盖的API类别与Java版本范围,并探索了更先进的提示策略与模型微调方法。相关成果包括对多种大语言模型的横向比较、混合迁移技术的开发,以及将评估指标从静态分析延伸至编译与测试验证。这些工作共同推动了自动化代码迁移技术的成熟,为软件维护工具的演进提供了实证基础。
数据集最近研究
最新研究方向
在软件工程领域,随着大型语言模型在代码生成与转换任务中的广泛应用,JMigBench作为专注于Java 8至Java 11源代码迁移的基准测试数据集,近期研究聚焦于评估模型在复杂API迁移场景中的性能边界。前沿探索围绕如何提升模型对CORBA、JAX-WS等非平凡迁移类别的处理能力,结合混合提示策略与语义增强技术,以克服现有模型在结构性变更中的局限性。该方向与业界对自动化代码升级的需求紧密相连,尤其在长期支持版本迭代背景下,为降低技术债与维护成本提供了实证基础,推动代码迁移工具向更可靠、可解释的方向演进。
相关研究论文
- 1JMigBench: A Benchmark for Evaluating LLMs on Source Code Migration (Java 8 to Java 11)伦敦大学学院; 南京大学 · 2026年
以上内容由遇见数据集搜集并总结生成



