RustRepoTrans
收藏arXiv2024-11-25 更新2024-11-27 收录
下载链接:
http://arxiv.org/abs/2411.13990v2
下载链接
链接失效反馈官方服务:
资源简介:
RustRepoTrans是由中山大学珠海的研究团队创建的第一个针对Rust的代码翻译基准数据集。该数据集包含375个任务,涵盖了实际软件开发项目中的复杂依赖关系,旨在更真实地评估大型语言模型在代码翻译中的表现。数据集的创建过程包括从GitHub项目中提取功能等效的代码对及其依赖关系,并通过手动验证确保其准确性。RustRepoTrans主要应用于代码翻译领域,旨在解决现有评估方法在处理复杂依赖关系时的不足。
RustRepoTrans is the first Rust-focused code translation benchmark dataset developed by a research team from Sun Yat-sen University's Zhuhai Campus. This dataset comprises 375 tasks covering complex dependency relationships in real-world software development projects, aiming to enable more realistic evaluation of large language models' performance in code translation. The dataset construction process includes extracting functionally equivalent code pairs and their associated dependencies from GitHub projects, followed by manual validation to ensure their accuracy. RustRepoTrans is primarily applied in the code translation domain, designed to address the shortcomings of existing evaluation methods when dealing with complex dependency scenarios.
提供机构:
中山大学珠海
创建时间:
2024-11-21
搜集汇总
数据集介绍

构建方式
RustRepoTrans 数据集的构建过程分为两个主要部分:功能等效代码对提取和依赖提取。首先,从 GitHub 项目中提取功能等效的代码对(源函数和目标函数),目标函数使用 Rust 编写。这一过程包括项目选择、函数池提取、基于相似性的候选函数对提取、LLM 基础的等效函数对识别和手动验证。其次,通过静态分析从目标项目中提取依赖关系,包括调用函数依赖、调用变量依赖和数据类型依赖。这一方法确保了代码翻译任务具有真实的仓库级别上下文,从而与手动构建或从编程问答网站获取的数据区分开来。
特点
RustRepoTrans 数据集的主要特点是其仓库级别的依赖关系和针对 Rust 编程语言的真实编程场景。与以往的基准相比,RustRepoTrans 不仅包含了函数级别的代码对,还包含了相关的依赖关系,这使得数据集更加贴近实际软件开发中的复杂性。此外,数据集中的任务是从真实的开源项目中提取的,确保了数据的真实性和复杂性,从而为评估大型语言模型在复杂代码翻译任务中的表现提供了更为严格的测试框架。
使用方法
RustRepoTrans 数据集可用于评估和训练大型语言模型在仓库级别代码翻译任务中的表现。使用者可以通过提供的代码对和依赖关系,训练模型以生成符合目标语言(Rust)语法和功能要求的代码。数据集中的每个任务都包含源函数、目标函数签名、相关依赖和测试用例,使用者可以利用这些信息进行模型的训练和验证。此外,数据集还提供了详细的错误分析和性能评估指标,帮助研究者深入理解模型在复杂翻译任务中的局限性和改进方向。
背景与挑战
背景概述
RustRepoTrans数据集由中山大学珠海分校的Guangsheng Ou、Mingwei Liu、Yuxuan Chen、Xin Peng和Zibin Zheng于2024年创建,旨在解决现有代码翻译基准在处理复杂依赖和真实软件开发场景中的不足。该数据集包含375个面向Rust的代码翻译任务,涵盖了相关依赖,为评估大型语言模型(LLMs)在复杂代码翻译任务中的表现提供了更为现实的框架。RustRepoTrans的引入填补了现有基准在处理低资源语言如Rust时的空白,特别是在考虑真实项目中的复杂依赖和跨文件交互方面。
当前挑战
RustRepoTrans数据集面临的挑战主要集中在两个方面。首先,构建过程中遇到的挑战包括从GitHub项目中提取功能对等代码对及其依赖项,这需要复杂的静态代码分析和手动验证。其次,该数据集解决的领域问题挑战在于,现有LLMs在处理仓库级别的代码翻译时表现显著下降,尤其是在处理Rust这种具有严格语法要求和较少训练资源的语言时。具体挑战包括依赖处理、语言特性差异识别以及代码复杂性管理,这些都显著增加了代码翻译的难度。
常用场景
经典使用场景
RustRepoTrans 数据集最经典的使用场景在于评估大型语言模型(LLMs)在将代码从一种编程语言迁移到另一种编程语言时的性能,特别是针对 Rust 语言的迁移。该数据集通过包含 375 个任务,涵盖了实际软件开发中的复杂依赖关系,为模型提供了一个更为真实的评估框架。通过这些任务,研究者可以分析模型在处理复杂代码翻译任务时的表现,特别是对于那些涉及多文件依赖和项目级架构的场景。
解决学术问题
RustRepoTrans 数据集解决了当前代码翻译研究中普遍存在的学术问题,即现有基准测试通常仅关注简单的函数级翻译,而忽略了实际开发中的复杂依赖关系。这导致了对 LLMs 在真实世界软件开发中性能的低估。通过引入项目级代码翻译任务,该数据集能够更准确地评估模型在处理复杂代码迁移任务时的能力,揭示现有评估方法的局限性,并为未来模型设计和评估方法的改进提供了重要见解。
衍生相关工作
RustRepoTrans 数据集的引入催生了一系列相关研究工作,特别是在代码翻译和迁移领域。例如,基于该数据集的研究揭示了 LLMs 在处理复杂依赖关系时的性能瓶颈,推动了模型在依赖解析和语法差异识别方面的改进。此外,该数据集还激发了对代码翻译质量评估方法的研究,提出了新的评估指标和方法,以更全面地衡量模型的翻译能力。这些研究不仅提升了代码翻译工具的性能,也为其他编程语言的迁移研究提供了参考。
以上内容由遇见数据集搜集并总结生成



