一、文章主要内容和创新点
主要内容
本文聚焦于利用大型语言模型(LLMs)进行代码翻译的任务,旨在通过中间表示(自然语言NL和抽象语法树AST)结合提示工程技术(如零样本、单样本、思维链CoT等)提升翻译准确性。
- 实验设计:比较了多种提示方式(零样本提示、单样本提示、两步法提示(以AST/NL为中间表示)、单样本思维链提示(结合AST/NL)),使用Open Gpt4 8X7B、StarCoder、CodeGen等模型,在CodeNet和AVATAR两个代码翻译基准数据集上进行测试。
- 核心发现:带中间自然语言(NL)总结的思维链(CoT)提示效果最佳。对于Open Gpt4 8X7B模型,相比零样本提示,在CodeNet数据集上成功翻译率提升13.8%,在AVATAR数据集上提升6.7%。
- 进一步验证:通过新数据集(AVATAR)和新模型(StarCoder、CodeGen)验证了结论的泛化性,发现Open Gpt4 8X7B在优化提示下表现最优,且提示效果因模型而异(如StarCoder在CoT-NL提示下表现更好,而CodeGen在零样本提示下更优)。
创新点
- 首次将LLMs与中间表示(NL和AST)结合用于代码翻译,填补了现有研究中“LLMs代码翻译”与“中间表示辅助翻译”两个方向的空白。
- 系统比较了多种提示工程策略(零样本、单样本、两步法、思维链)与中间表示的结合方式,明确了“思维链+自然语言中间表示”是最优组合。
- 验证了小模型(如Open Gpt4 8X7B,