Enhancing Code Translation in Language Models with Few-Shot Learning via Retrieval-Augmented Generation

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Bhattarai, Manish, Santos, Javier E., Jones, Shawn, Biswas, Ayan, Alexandrov, Boian, O'Malley, Daniel
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866910545478680576
author Bhattarai, Manish
Santos, Javier E.
Jones, Shawn
Biswas, Ayan
Alexandrov, Boian
O'Malley, Daniel
author_facet Bhattarai, Manish
Santos, Javier E.
Jones, Shawn
Biswas, Ayan
Alexandrov, Boian
O'Malley, Daniel
contents The advent of large language models (LLMs) has significantly advanced the field of code translation, enabling automated translation between programming languages. However, these models often struggle with complex translation tasks due to inadequate contextual understanding. This paper introduces a novel approach that enhances code translation through Few-Shot Learning, augmented with retrieval-based techniques. By leveraging a repository of existing code translations, we dynamically retrieve the most relevant examples to guide the model in translating new code segments. Our method, based on Retrieval-Augmented Generation (RAG), substantially improves translation quality by providing contextual examples from which the model can learn in real-time. We selected RAG over traditional fine-tuning methods due to its ability to utilize existing codebases or a locally stored corpus of code, which allows for dynamic adaptation to diverse translation tasks without extensive retraining. Extensive experiments on diverse datasets with open LLM models such as Starcoder, Llama3-70B Instruct, CodeLlama-34B Instruct, Granite-34B Code Instruct, and Mixtral-8x22B, as well as commercial LLM models like GPT-3.5 Turbo and GPT-4o, demonstrate our approach's superiority over traditional zero-shot methods, especially in translating between Fortran and CPP. We also explored varying numbers of shots i.e. examples provided during inference, specifically 1, 2, and 3 shots and different embedding models for RAG, including Nomic-Embed, Starencoder, and CodeBERT, to assess the robustness and effectiveness of our approach.
format Preprint
id arxiv_https___arxiv_org_abs_2407_19619
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Enhancing Code Translation in Language Models with Few-Shot Learning via Retrieval-Augmented Generation
Bhattarai, Manish
Santos, Javier E.
Jones, Shawn
Biswas, Ayan
Alexandrov, Boian
O'Malley, Daniel
Artificial Intelligence
Software Engineering
The advent of large language models (LLMs) has significantly advanced the field of code translation, enabling automated translation between programming languages. However, these models often struggle with complex translation tasks due to inadequate contextual understanding. This paper introduces a novel approach that enhances code translation through Few-Shot Learning, augmented with retrieval-based techniques. By leveraging a repository of existing code translations, we dynamically retrieve the most relevant examples to guide the model in translating new code segments. Our method, based on Retrieval-Augmented Generation (RAG), substantially improves translation quality by providing contextual examples from which the model can learn in real-time. We selected RAG over traditional fine-tuning methods due to its ability to utilize existing codebases or a locally stored corpus of code, which allows for dynamic adaptation to diverse translation tasks without extensive retraining. Extensive experiments on diverse datasets with open LLM models such as Starcoder, Llama3-70B Instruct, CodeLlama-34B Instruct, Granite-34B Code Instruct, and Mixtral-8x22B, as well as commercial LLM models like GPT-3.5 Turbo and GPT-4o, demonstrate our approach's superiority over traditional zero-shot methods, especially in translating between Fortran and CPP. We also explored varying numbers of shots i.e. examples provided during inference, specifically 1, 2, and 3 shots and different embedding models for RAG, including Nomic-Embed, Starencoder, and CodeBERT, to assess the robustness and effectiveness of our approach.
title Enhancing Code Translation in Language Models with Few-Shot Learning via Retrieval-Augmented Generation
topic Artificial Intelligence
Software Engineering
url https://arxiv.org/abs/2407.19619