CodePivot: Bootstrapping Multilingual Transpilation in LLMs via Reinforcement Learning without Parallel Corpora
作者: Shangyu Li, Juyong Jiang, Meibo Ren, Sizhe Zhong, Huiri Tan, Yunhao Gou, Xu Han, Chun Yong Chong, Yun Peng, Jiasi Shen
分类: cs.SE, cs.CL
发布日期: 2026-04-20
🔗 代码/项目: GITHUB
💡 一句话要点
CodePivot:利用强化学习和中间表示,在LLM中引导多语言代码转译,无需平行语料。
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码转译 多语言模型 强化学习 中间表示 低资源语言
📋 核心要点
- 现有代码转译方法依赖成对训练,难以扩展到多种编程语言,尤其是在低资源语言上,且强化学习奖励机制存在优化空间。
- CodePivot利用Python作为中间表示,结合新颖的Aggressive-Partial-Functional奖励机制,通过强化学习引导模型进行多语言代码转译。
- 实验结果表明,CodePivot训练的7B模型在多种编程语言的转译任务上,优于参数规模更大的主流模型,尤其在低资源语言上表现突出。
📝 摘要(中文)
代码转译旨在将源代码从一种编程语言(PL)转换为另一种。它对许多下游应用有益,从大型遗留代码库的现代化到为低资源PL增强数据。最近基于大型语言模型(LLM)的方法已经展示了代码翻译的巨大潜力。在这些方法中,基于训练的方法尤为重要,因为LLM目前无法有效地适应缺乏知识的领域特定设置,而没有针对性的训练。这种限制在涉及低资源PL的转译任务中尤为明显。然而,现有的基于训练的方法依赖于成对转译范式,使得支持各种PL变得不切实际。由于缺乏训练数据,这种限制对于低资源PL尤其突出。此外,这些方法受到次优强化学习(RL)奖励公式的影响。为了解决这些限制,我们提出了CodePivot,一个利用Python作为中间表示(IR)的训练框架,并辅以一种新颖的RL奖励机制,即Aggressive-Partial-Functional奖励,以引导模型的多语言转译能力,而无需平行语料。涉及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/lishangyu-hkust/CodePivot获得。
🔬 方法详解
问题定义:论文旨在解决多语言代码转译问题,特别是针对低资源编程语言。现有方法主要依赖于成对的转译训练,需要大量的平行语料,这对于低资源语言来说是难以满足的。此外,现有的强化学习奖励函数设计不够完善,导致训练效果不佳。
核心思路:论文的核心思路是利用一种通用的中间表示(Intermediate Representation, IR),即Python,作为不同编程语言之间的桥梁。通过将所有语言都翻译到Python,再从Python翻译到其他语言,从而避免了直接在所有语言之间进行两两翻译的需求,大大降低了数据需求。同时,设计了一种新的强化学习奖励函数,以更有效地引导模型学习。
技术框架:CodePivot的整体框架包含以下几个主要部分:1) 使用Python作为中间表示,构建Python-to-Others的训练数据。2) 使用大型语言模型作为代码转译器。3) 使用强化学习对模型进行微调,目标是提高代码转译的准确性和功能性。4) 引入Aggressive-Partial-Functional奖励机制,更有效地指导强化学习过程。
关键创新:论文的关键创新在于:1) 提出了一种基于中间表示的多语言代码转译框架,避免了对大量平行语料的依赖。2) 设计了一种新的强化学习奖励函数,即Aggressive-Partial-Functional奖励,该奖励函数综合考虑了代码的语法正确性、部分功能实现以及整体功能实现,从而更有效地引导模型学习。3) 通过实验验证了该方法在多种编程语言上的有效性,尤其是在低资源语言上。
关键设计:Aggressive-Partial-Functional奖励机制是关键设计之一。具体来说,Aggressive奖励鼓励模型生成更长的代码序列,Partial奖励鼓励模型实现部分功能,Functional奖励则衡量代码的整体功能是否正确。这三种奖励的组合可以有效地避免模型陷入局部最优解,并提高代码转译的质量。此外,论文还对强化学习的训练策略进行了优化,例如使用了Proximal Policy Optimization (PPO) 算法,并对超参数进行了调整。
🖼️ 关键图片
📊 实验亮点
实验结果表明,CodePivot训练的7B模型在10种编程语言的转译任务上表现出色。在Python-to-Others任务上,它优于Deepseek-R1模型;在Others-to-All任务上,它优于Qwen3-235B-A22B-Instruct-2507模型。此外,在通用转译任务上,CodePivot也优于直接在Any-to-Any任务上训练的模型。这些结果表明,CodePivot在多语言代码转译方面具有显著的优势。
🎯 应用场景
CodePivot具有广泛的应用前景。它可以用于遗留代码库的现代化改造,将旧的编程语言代码转换为更现代、更易于维护的语言。此外,它还可以用于低资源编程语言的数据增强,从而提高这些语言的软件开发效率。该研究还有助于推动跨平台软件开发,使得软件可以更容易地在不同的编程语言和平台上运行。未来,该技术有望应用于自动化代码生成、代码修复等领域。
📄 摘要(原文)
Transpilation, or code translation, aims to convert source code from one programming language (PL) to another. It is beneficial for many downstream applications, from modernizing large legacy codebases to augmenting data for low-resource PLs. Recent large language model (LLM)-based approaches have demonstrated immense potential for code translation. Among these approaches, training-based methods are particularly important because LLMs currently do not effectively adapt to domain-specific settings that suffer from a lack of knowledge without targeted training. This limitation is evident in transpilation tasks involving low-resource PLs. However, existing training-based approaches rely on a pairwise transpilation paradigm, making it impractical to support a diverse range of PLs. This limitation is particularly prominent for low-resource PLs due to a scarcity of training data. Furthermore, these methods suffer from suboptimal reinforcement learning (RL) reward formulations. To address these limitations, we propose CodePivot, a training framework that leverages Python as an intermediate representation (IR), augmented by a novel RL reward mechanism, Aggressive-Partial-Functional reward, to bootstrap the model's multilingual transpilation ability without requiring parallel corpora. Experiments involving 10 PLs show that the resulting 7B model, trained on Python-to-Others tasks, consistently improves performance across both general and low-resource PL-related transpilation tasks. It outperforms substantially larger mainstream models with hundreds of billions more parameters, such as Deepseek-R1 and Qwen3-235B-A22B-Instruct-2507, on Python-to-Others tasks and Others-to-All tasks, respectively. In addition, it outperforms its counterpart trained directly on Any-to-Any tasks on general transpilation tasks. The code and data are available at https://github.com/lishangyu-hkust/CodePivot.