five

RepoTransBench

收藏
arXiv2024-12-24 更新2024-12-25 收录
下载链接:
http://arxiv.org/abs/2412.17744v1
下载链接
链接失效反馈
官方服务:
资源简介:
RepoTransBench是一个大规模的真实世界代码翻译基准数据集,由中山大学等机构创建。该数据集包含100个真实代码仓库样本,旨在评估从一种编程语言到另一种编程语言的完整代码仓库翻译能力。数据集的创建过程包括从The Stack和The Stack v2中收集真实仓库,筛选符合条件的仓库,并通过LLM和人工协作构建自动测试套件。RepoTransBench的应用领域主要集中在代码翻译工具的性能评估,旨在解决现有细粒度代码翻译基准无法准确反映真实开发需求的问题。

RepoTransBench is a large-scale real-world code translation benchmark dataset created by Sun Yat-sen University and other institutions. It contains 100 real code repository samples, aiming to evaluate the full code repository translation capability from one programming language to another. The dataset construction process includes collecting real repositories from The Stack and The Stack v2, screening eligible repositories, and building automated test suites via collaborative efforts between LLMs and human annotators. Its primary application scenario is the performance evaluation of code translation tools, which aims to address the problem that existing fine-grained code translation benchmarks cannot accurately reflect real-world development needs.
提供机构:
中山大学
创建时间:
2024-12-24
搜集汇总
数据集介绍
main_image_url
构建方式
RepoTransBench 数据集的构建过程分为数据收集和测试用例构建两个主要步骤。首先,从 The Stack 和 The Stack v2 中收集真实的代码仓库,选择 Python 和 Java 作为翻译语言对,并通过筛选排除不符合条件的仓库,如少于 50 星、包含特定语言包、缺少测试用例或不可执行的仓库。最终筛选出 100 个候选仓库。其次,为了确保翻译后的仓库功能正确,构建了自动测试套件。测试用例的构建结合了大型语言模型(LLMs)和人工翻译,通过自动翻译和迭代手动检查确保测试用例的质量和效率。
使用方法
RepoTransBench 数据集主要用于评估大型语言模型(LLMs)在仓库级别代码翻译任务中的性能。用户可以通过该数据集对不同的 LLMs 进行测试,评估其在翻译整个代码仓库时的成功率、编译成功率和测试通过率等指标。此外,数据集还支持迭代调试,通过提供错误反馈来改进 LLMs 的翻译性能。通过详细的错误分析,用户可以进一步了解 LLMs 在仓库级别代码翻译中的不足,并为未来的改进提供参考。
背景与挑战
背景概述
RepoTransBench是由中山大学、莫纳什大学和华为云等机构的研究人员共同开发的一个真实世界级别的代码翻译基准数据集。该数据集专注于将整个代码仓库从一种编程语言翻译到另一种编程语言,同时保持源代码的功能性。RepoTransBench的创建旨在填补现有代码翻译基准的空白,这些基准大多集中在代码片段、函数或文件级别的翻译,而忽略了真实开发场景中对整个代码仓库翻译的需求。RepoTransBench包含了100个真实世界的代码仓库样本,并提供了一个自动执行的测试套件,用于评估翻译后的代码仓库的可编译性和功能正确性。
当前挑战
RepoTransBench面临的主要挑战包括:1) 数据规模有限,现有研究缺乏足够的代码仓库样本进行评估;2) 缺乏自动化测试套件,手动检查在大规模数据集上不切实际;3) 忽略了资源文件的迁移,这些文件在代码仓库中可能与程序数据流交互;4) 忽略了配置文件的生成,配置文件在代码仓库中是必需的。此外,当前的大型语言模型(LLMs)在处理仓库级别的代码翻译时表现不佳,最佳模型的成功率仅为7.33%,表明现有LLMs在处理复杂功能和长代码长度时存在显著不足。
常用场景
经典使用场景
RepoTransBench 数据集的经典使用场景主要集中在代码翻译领域,特别是针对整个代码仓库级别的翻译任务。该数据集通过提供 100 个真实世界的代码仓库样本,支持从 Python 到 Java 的完整仓库翻译,并配备了自动化的测试套件,用于评估翻译后的代码是否能够编译并通过功能测试。这一场景填补了现有代码翻译基准在仓库级别翻译上的空白,为研究人员和开发者提供了一个评估大型语言模型(LLMs)在复杂代码翻译任务中表现的标准化平台。
解决学术问题
RepoTransBench 数据集解决了当前代码翻译研究中的多个学术问题。首先,它填补了现有基准在仓库级别代码翻译上的空白,解决了传统基准仅关注代码片段、函数或文件级别翻译的局限性。其次,它通过提供自动化的测试套件,解决了大规模数据集手动检查的不切实际性。此外,该数据集还解决了资源文件和配置文件在代码迁移中被忽略的问题,确保了翻译后的代码在功能上与源代码等效。这些改进为代码翻译领域的研究提供了更全面、更真实的评估标准,推动了该领域的进一步发展。
实际应用
RepoTransBench 数据集在实际应用中具有广泛的应用场景。首先,它可用于评估和改进大型语言模型(LLMs)在代码翻译任务中的表现,特别是在从一种编程语言迁移到另一种编程语言时,如何保持代码的功能完整性。其次,该数据集可用于软件开发中的代码重构和迁移,例如将遗留系统从过时的编程语言迁移到现代语言,或将性能较低的语言迁移到更高效的编程语言。此外,RepoTransBench 还可用于生成合成数据,以解决数据稀缺问题,特别是在跨语言代码生成和迁移的场景中。
数据集最近研究
最新研究方向
RepoTransBench 数据集的最新研究方向主要集中在大型语言模型(LLMs)在代码翻译领域的应用,特别是针对整个代码仓库级别的翻译任务。该数据集通过引入一个真实世界的仓库级别代码翻译基准,解决了现有细粒度代码翻译基准无法准确反映实际开发需求的问题。研究重点在于评估LLMs在仓库级别代码翻译中的表现,发现即使是最先进的LLM,其成功率也仅为21%,远未达到可靠自动翻译的要求。此外,研究还通过迭代调试方法,观察到LLMs在错误反馈下的性能提升,但整体表现仍不足以满足实际需求。该研究为未来改进LLMs在仓库级别代码翻译中的能力提供了重要参考。
相关研究论文
  • 1
    RepoTransBench: A Real-World Benchmark for Repository-Level Code Translation中山大学 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作