CodePivot:通过强化学习在 LLM 中引导多语言转译,无需并行语料库
CodePivot: Bootstrapping Multilingual Transpilation in LLMs via Reinforcement Learning without Parallel Corpora
摘要
转译或代码翻译旨在将源代码从一种编程语言 (PL) 转换为另一种编程语言。它对许多下游应用程序都是有益的,从现代化大型遗留代码库到为低资源 PL 增强数据。最近基于 大语言模型 (LLM) 的方法已经证明了代码翻译的巨大潜力。在这些方法中,基于训练的方法尤为重要,因为LLM目前无法有效地适应由于缺乏知识而没有针对性训练的特定领域设置。这种限制在涉及低资源 PL 的转译任务中很明显。然而,现有的基于训练的方法依赖于成对转译范式,这使得支持各种 PL 变得不切实际。由于训练数据的缺乏,这种限制对于资源匮乏的 PL 来说尤其突出。此外,这些方法还存在强化学习(RL)奖励公式不理想的问题。为了解决这些限制,我们提出了 CodePivot,这是一个利用 Python 作为中间表示 (IR) 的训练框架,并通过一种新颖的 RL 奖励机制(积极部分功能奖励)进行增强,以引导模型的多语言转译能力,而不需要并行语料库。涉及 10 个 PL 的实验表明,生成的 7B 模型经过 Python-to-Others 任务的训练,可以持续提高一般任务和低资源 PL 相关转译任务的性能。它在 Python-to-Others 任务和 Others-to-All 任务上分别优于具有数千亿个参数的更大的主流模型,例如 Deepseek-R1 和 Qwen3-235B-A22B-Instruct-2507。此外,它在一般转译任务上的表现优于直接接受 Any-to-Any 任务训练的同类产品。代码和数据可在 https://github.com/lihangyu-hkust/CodePivot 获取。