[Paper] JMigBench:用于评估 LLM 在源代码迁移(Java 8 到 Java 11)上的基准
发布: (2026年2月11日 GMT+8 00:04)
7 分钟阅读
原文: arXiv
Source: arXiv - 2602.09930v1
概述
本文介绍了 JMigBench,这是一项新基准,旨在衡量大型语言模型(LLMs)在帮助开发者将 Java 代码从版本 8 迁移到版本 11 方面的表现。通过聚焦真实的 API 弃用,作者提供了一种具体的方法来评估 LLMs 是否真的能够降低大规模代码升级中所需的人工工作量。
关键贡献
- 精心策划的迁移数据集:8 类已弃用的 Java 8 API(例如
java.time、CORBA、JAX‑WS),提供来自开源项目的配对“前后”函数代码片段。 - 基准框架:使用 CodeBLEU 和基于关键词的正确性度量的标准化评估流水线,用于捕捉迁移代码的词汇、语法和语义保真度。
- Mistral Codestral 的实证研究:提供最前沿的大语言模型在 Java 迁移任务上的第一手性能数据,突出其优势(简单的一对一替换)和劣势(复杂的 API 重构)。
- 开源发布:所有数据、评估脚本和分析笔记本均公开可用,鼓励可重复性研究和未来扩展。
方法论
- 数据收集 – 作者在 GitHub 上挖掘了数千个 Java 仓库,提取了提交将代码从 Java 8 升级到 Java 11 的函数对。
- 质量过滤 – 先应用自动启发式(例如编译时检查、diff 大小限制),随后人工检查,将集合缩小到跨八个废弃类别的 高置信度 示例。
- 提示设计 – 将每个 Java 8 函数喂给 LLM,并附上简短指令(“将此方法迁移到 Java 11”)。未提供额外上下文(例如所在类),模拟真实的“复制‑粘贴”使用场景。
- 评估指标 –
- CodeBLEU:衡量 token 级别相似度,同时奖励正确的语法和结构。
- 基于关键词的正确性:检查所需的新 API(例如
java.time.LocalDate)是否出现,已废弃的是否消失。 - 完全匹配率:迁移结果与参考实现完全相同的百分比。
结果与发现
| 类别 | 完全匹配(相同) | CodeBLEU(平均) | 关键字正确 |
|---|---|---|---|
简单 API 替换(例如 Date → LocalDate) | 11.1 % | 0.68 | 0.73 |
| CORBA / JAX‑WS(复杂重构) | < 2 % | 0.42 | 0.48 |
其他(例如 Stream 更新) | 5 % | 0.55 | 0.60 |
- 琐碎替换:当更改是直接的一对一映射时,模型能够可靠地将已弃用的类替换为其现代等价类。
- 复杂迁移:当升级需要架构层面的更改(例如,从 CORBA 迁移到 REST 风格的服务)时,模型常常生成语法上有效但语义上不正确的代码。
- 总体:Mistral Codestral 可以部分自动化重复的迁移步骤,但对于超出直接 API 替换的任何工作,仍然需要人工审查。
实际影响
- 开发者工具:IDE 插件可以集成基于 LLM 的 “quick‑fix”,自动重写简单的已弃用调用,从而在大型升级工单上节省数分钟。
- CI/CD 流水线:由 LLM 驱动的自动迁移脚本可以生成更新代码的初稿,随后在合并前由静态分析工具进行验证。
- 成本‑收益:对于拥有庞大 Java 8 代码库的企业,基准测试表明对低复杂度 API 的手动迁移工作量可降低 10‑15 %,从而实现可衡量的时间节省。
- 自定义模型的训练数据:精心整理的数据集可作为面向特定领域 LLM 的微调材料,可能提升在更难类别上的表现。
限制与未来工作
- 数据集范围:JMigBench 仅覆盖八个弃用类别和函数级别的代码片段;更大范围的类级或模块级迁移未被包含。
- 提示简洁性:实际开发者常常提供更丰富的上下文(如 import、周围代码)。更复杂的提示方式可能提升结果。
- 模型多样性:本研究仅评估了单一大语言模型(Mistral Codestral)。将基准扩展到其他模型(例如 GPT‑4、Claude)可以阐明观察到的差距是模型特定的还是当前 LLM 能力的固有限制。
- 语义验证:当前指标侧重于词汇相似度;加入运行时测试或类型检查可以更准确地反映功能正确性。
结论:JMigBench 为社区提供了一个衡量 LLM 驱动代码迁移的具体标准。虽然在简单 API 更新方面的早期结果令人鼓舞,但在 LLM 完全取代人类专家处理复杂 Java 升级之前,仍有很长的路要走。该基准本身是任何构建下一代 AI 辅助开发者工具的宝贵资源。
作者
- Nishil Amin
- Zhiwei Fei
- Xiang Li
- Justyna Petke
- He Ye
论文信息
- arXiv ID: 2602.09930v1
- 分类: cs.SE
- 出版日期: 2026年2月10日
- PDF: 下载 PDF