大型语言模型在代码翻译中的潜力:我们离多少人类水平?
软件工程
2024-10-15 v1
摘要
尽管大型语言模型(LLMs)在各类任务中表现出领先的性能,但近期研究发现其在代码翻译方面存在挑战。这源于它们在并行多语言代码方面进行的预训练相对不足,而代码翻译正是依赖这一点。此外,现有基准仅覆盖常见编程语言的有限子集,无法反映 LLMs 在代码翻译中的完整潜力。本文进行大规模实证研究,探索 LLMs 在代码翻译任务中的能力与局限。我们首先构建了一个新基准 called PolyHumanEval,将 HumanEval 扩展为涵盖 14 种语言的多语言基准。有了 PolyHumanEval,我们对 bleeding-edge 代码 LLMs 进行了超过 11 万次翻译。结果显示,LLMs 在 Python 到其他语言上的表现不佳,且广泛采用的 LLM 优化技术(如常规预训练和指令微调)对代码翻译的影响微乎其微。为进一步探索 LLMs 在代码翻译中的潜力,我们提出了两种方法:(1)中间翻译,通过选择源语言和目标语言之间的中间语言;(2)自训练,通过在自生成的平行数据上进行微调。我们使用 CodeLlama-13B 评估了这些方法,在 Python 到其他语言的翻译中平均计算准确率提升了 11.7%。值得注意的是,我们发现 Go 语言可作为不同语言之间翻译的通用语言。
关键词
引用
@article{arxiv.2410.09812,
title = {Unraveling the Potential of Large Language Models in Code Translation: How Far Are We?},
author = {Qingxiao Tao and Tingrui Yu and Xiaodong Gu and Beijun Shen},
journal= {arXiv preprint arXiv:2410.09812},
year = {2024}
}
备注
Accepted to APSEC 2024