通过检索增强生成中的任务特定嵌入对齐提升跨语言代码翻译
人工智能
2024-12-09 v1 软件工程
摘要
我们提出了一种新方法,通过将任务特定嵌入对齐集成到检索增强生成(RAG)框架中,以增强从 Fortran 到 C++ 的跨语言代码翻译。不同于采用与下游任务无关的通用嵌入的常规检索方法,本策略直接针对最大化翻译质量(以 CodeBLEU 指标量化)进行嵌入对齐,从而确保嵌入在语义和语法上对特定代码翻译任务都具有意义。我们的 метод论涉及从 Stack-V2 数据集中收集 25,000 条 Fortran 代码片段,并使用 LLaMA 3.1-8B 语言模型生成其对应的 C++ 翻译。我们计算生成翻译与真实示例之间的两两 CodeBLEU 分数,以捕获细粒度相似性。这些分数作为对比学习框架中的监督信号,用于优化嵌入模型,以检索对提升语言模型翻译性能最有帮助的 Fortran-C++ 对。通过将这些 CodeBLEU 优化嵌入集成到 RAG 框架中,我们的方法显著提升了检索准确性和代码生成质量,优于采用通用嵌入的方法。在 HPC Fortran2C++ 数据集上,我们将平均 CodeBLEU 分数从 0.64 提升至 0.73,实现了 14% 的相对提升。在 Numerical Recipes 数据集上,得分从 0.52 提升至 0.60,实现了 15% 的相对提升。重要的是,这些收益是在不对语言模型进行任何微调的情况下实现的,凸显了该方法的高效与实用性。
引用
@article{arxiv.2412.05159,
title = {Enhancing Cross-Language Code Translation via Task-Specific Embedding Alignment in Retrieval-Augmented Generation},
author = {Manish Bhattarai and Minh Vu and Javier E. Santos and Ismael Boureima and Daniel O' Malley},
journal= {arXiv preprint arXiv:2412.05159},
year = {2024}
}