中文

大语言模型代码翻译评估中的输出格式偏差

软件工程 2025-10-14 v2 人工智能

摘要

编程语言(PLs)之间的代码翻译是软件工程中的一项关键任务,有助于遗留系统的现代化、确保跨平台兼容性以及提升软件性能。大多数现有研究指导LLM执行代码翻译,并通过测试套件运行生成的输出或将其与参考输出(真实值)进行比较来评估其性能。然而,这些输出可能不仅包含可执行的源代码,还包含额外的非代码元素,例如自然语言解释或格式化标记。我们将源代码与非代码元素的组合称为输出格式。理解和解决输出格式的变化至关重要,因为非代码元素可能干扰评估指标,导致对模型性能和比较的评估产生偏差。我们对来自11个指令微调的开源LLM在五种编程语言(C、C++、Go、Java和Python)上的输出进行了实证分析。结果表明,我们评估的LLM产生的输出中有26.4%到73.7%需要进行后处理。为了减轻输出格式偏差,我们提出了一种结合提示工程和正则表达式的策略,该策略能有效地从混合格式输出中提取源代码,使11个开源模型实现了平均92.73%的代码提取成功率(CSR)。我们的实证研究证实,输出格式偏差会影响广泛使用的基于执行的指标(即计算准确率(CA))和基于文本的指标(即BLEU、CodeBLEU和CrystalBLEU)。此外,我们测试了五个闭源LLM,观察到它们也产生了不同分布的输出格式,这可能导致输出格式偏差。我们的结果强调了减轻输出格式偏差以实现LLM代码翻译可靠评估的必要性。

关键词

引用

@article{arxiv.2403.17214,
  title  = {Output Format Biases in the Evaluation of Large Language Models for Code Translation},
  author = {Marcos Macedo and Yuan Tian and Filipe R. Cogo and Bram Adams},
  journal= {arXiv preprint arXiv:2403.17214},
  year   = {2025}
}

备注

This version (v2) is a journal extension of our previous conference submission that was accepted into the 2024 IEEE/ACM First International Conference on AI Foundation Models and Software Engineering (Forge 2024), which includes new experiments and results