⏶6
MIGRATION-BENCH:从 Java 8 的仓库级代码迁移基准测试
发表
由
Xinle Sheila Liu 提交

作者:
Linbo Liu,
Xinle Liu, Qiang Zhou, Lin Chen, Yihan Liu, Hoan Nguyen,
Behrooz Omidvar-Tehrani, Xi Shen, Jun Huan, Omer Tripp, Anoop Deoras

摘要
近年来,随着强大的大型语言模型(LLM)的快速发展,许多软件工程任务现在可以使用 LLM 来解决,从而显著提高了生产力和可扩展性。尽管已经开发了许多基准数据集来评估这些模型的编码能力,但它们主要侧重于问题解决和问题修复任务。与此不同,我们引入了一个新的编码基准 MIGRATION-BENCH,其独特重点是代码迁移。MIGRATION-BENCH 旨在成为从 Java 8 迁移到最新长期支持(LTS)版本(Java 17, 21)的全面基准,MIGRATION-BENCH 包含一个完整数据集及其精选的子集,分别包含 5,102 个和 300 个仓库。Selected 是根据复杂性和难度精心策划的具有代表性的子集,为代码迁移领域的研究提供了多功能资源。此外,我们提供了一个全面的评估框架,以促进在此挑战性任务上对 LLM 进行严格和标准化的评估。我们进一步提出了 SD-Feedback,并证明 LLM 可以有效地处理仓库级别的代码迁移到 Java 17。对于使用 Claude-3.5-Sonnet-v2 的精选子集,SD-Feedback 在最小迁移和最大迁移方面的成功率(pass@1)分别达到了 62.33% 和 27.00%。基准数据集和源代码可在以下地址获取:https://huggingface.co/collections/AmazonScience 和 https://github.com/amazon-science/self_debug。
我们引入 🤗 MigrationBench 数据集,这是一个为仓库级别代码迁移量身定制的基准数据集,特别针对
java
8 到 17 或其他长期支持版本。MigrationBench 包含大量 GitHub 仓库集合,分为三个子集:
AmazonScience/migration-bench-java-full
包含5,102
个仓库AmazonScience/migration-bench-java-selected
包含300
个仓库AmazonScience/migration-bench-java-utg
包含4,814
个仓库为了对 LLM 在此复杂任务上的性能进行标准化和严格评估,我们提供了一个全面的开源评估框架,可在以下链接获取:https://github.com/amazon-science/MigrationBench。
受 Teaching Large Language Models to Self-Debug 的启发,我们引入了 SD-Feedback 并证明 LLMs 可以有效解决从
java
8 到 17 的仓库级别代码迁移问题。在使用
Claude-3.5-Sonnet-v2
的selected
子集上,SD-Feedback 在最小迁移和最大迁移上分别达到了 62.33% 和 27.33% 的成功率 (pass@1
)。