[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 重构)。
  • 开源发布:所有数据、评估脚本和分析笔记本均公开可用,鼓励可重复性研究和未来扩展。

方法论

  1. 数据收集 – 作者在 GitHub 上挖掘了数千个 Java 仓库,提取了提交将代码从 Java 8 升级到 Java 11 的函数对。
  2. 质量过滤 – 先应用自动启发式(例如编译时检查、diff 大小限制),随后人工检查,将集合缩小到跨八个废弃类别的 高置信度 示例。
  3. 提示设计 – 将每个 Java 8 函数喂给 LLM,并附上简短指令(“将此方法迁移到 Java 11”)。未提供额外上下文(例如所在类),模拟真实的“复制‑粘贴”使用场景。
  4. 评估指标
    • CodeBLEU:衡量 token 级别相似度,同时奖励正确的语法和结构。
    • 基于关键词的正确性:检查所需的新 API(例如 java.time.LocalDate)是否出现,已废弃的是否消失。
    • 完全匹配率:迁移结果与参考实现完全相同的百分比。

结果与发现

类别完全匹配(相同)CodeBLEU(平均)关键字正确
简单 API 替换(例如 Date → LocalDate11.1 %0.680.73
CORBA / JAX‑WS(复杂重构)< 2 %0.420.48
其他(例如 Stream 更新)5 %0.550.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
0 浏览
Back to Blog

相关文章

阅读更多 »