Leveraging pre-trained language models for code generation

Code assistance refers to the utilization of various tools, techniques, and models to help developers in the process of software development. As coding tasks become increasingly complex, code assistant plays a pivotal role in enhancing developer productivity, reducing errors, and facilitating a more efficient coding workflow. This assistance can manifest in various forms, including code autocompletion, error detection and correction, code generation, documentation support, and context-aware suggestions. Language models have emerged as integral components of code assistance, offering developers the capability to receive intelligent suggestions, generate code snippets, and enhance overall coding proficiency. In this paper, we propose new hybrid models for code generation by leveraging pre-trained language models BERT, RoBERTa, ELECTRA, and LUKE with the Marian Causal Language Model. Selecting these models based on their strong performance in various natural language processing tasks. We evaluate the performance of these models on two datasets CoNaLa and DJANGO and compare them to existing state-of-the-art models. We aim to investigate the potential of pre-trained transformer language models to revolutionize code generation, offering improved precision and efficiency in navigating complex coding scenarios. Additionally, conducting error analysis and refining the generated code. Our results show that these models, when combined with the Marian Decoder, significantly improve code generation accuracy and efficiency. Notably, the RoBERTaMarian model achieved a maximum BLEU score of 35.74 and an exact match accuracy of 13.8% on CoNaLa, while LUKE-Marian attained a BLEU score of 89.34 and an exact match accuracy of 78.50% on DJANGO. Implementation of this work is available at https://github.com/AhmedSSoliman/Leveraging-Pretrained-Language-Models-for-Code-Generation.

PDF Abstract

Datasets


Results from the Paper


Task Dataset Model Metric Name Metric Value Global Rank Benchmark
Code Generation CoNaLa RoBERTaMarian BLEU 35.74 # 2
Exact Match Accuracy 13.8 # 1
Code Generation CoNaLa LUKEMarian BLEU 29.83 # 12
Exact Match Accuracy 7.6 # 5
Code Generation CoNaLa ELECTRAMarian BLEU 30.18 # 10
Exact Match Accuracy 10.0 # 4
Code Generation CoNaLa BERTMarian BLEU 32.46 # 6
Exact Match Accuracy 12.40 # 2
Code Generation Django LUKEMarian Accuracy 78.50 # 5
BLEU Score 89.34 # 2
Code Generation Django RoBERTaMarian Accuracy 77.95 # 6
BLEU Score 88.91 # 3
Code Generation Django ELECTRAMarian Accuracy 65.32 # 9
BLEU Score 53.02 # 7
Code Generation Django BERTMarian Accuracy 76.68 # 7
BLEU Score 56.55 # 6

Methods