论文
Translator vs. Challenger:C-to-Rust 翻译的对抗性代理学习
Translator vs. Challenger: Adversarial Agentic Learning for C-to-Rust Translation
摘要
由于两种语言之间存在巨大的语义差距,C 到 Rust 的翻译仍然具有挑战性。最近经验丰富的大语言模型翻译人员通过从先前的故障和维修中学习可重复使用的见解来提高翻译质量。然而,学到的见解并不会自动构成可重用的翻译知识:源自稀疏的、特定于程序的跟踪,它们通常包含缺失的条件、狭窄的适用性边界或被忽视的极端情况。这限制了它们在新翻译场景中的稳健性和普遍性。我们提出了 TRAIL,一个用于稳健的 C-to-Rust 翻译的对抗性代理学习框架。 TRAIL 使用两个协作代理:翻译者从翻译失败和接受的修复中获取候选见解,挑战者通过对抗性挑战积极寻找弱点、差距和边界情况。为了提高个人见解的稳健性和见解集合的完整性,TRAIL 在两个层面上进行对抗性学习。个人洞察对抗性学习反复对每个洞察进行压力测试,以完善其适用性条件和约束,而组合洞察对抗性学习则通过暴露冲突、差距和未发现的极端情况来强化相关洞察组。通过用可执行的反例来挑战见解及其组合,TRAIL 将特定于踪迹的经验转化为强大的、可重用的和可概括的翻译知识。我们在两个项目级基准测试(CRUST-Bench 和 SmartC2Rust-Bench)上评估 TRAIL。与最强的基于 LLM 的基线相比,TRAIL 在语法准确性方面平均相对提高了 23.1%,在语义准确性方面平均相对提高了 15.9%。此外,对抗性的改进见解可以跨基准有效转移,在不同的 C-to-Rust 翻译任务中表现出强大的通用性。