Empirical Study on Transformer-based Techniques for Software Engineering
Yan Xiao, Xinyue Zuo, Lei Xue, Kailong Wang, Jin Song Dong, Ivan, Beschastnikh

TL;DR
This study evaluates transformer-based models like CodeBERT, CodeGPT, and CodeT5 across key software engineering tasks, revealing insights into their suitability, generalization, and resource efficiency, challenging some common assumptions.
Contribution
It provides a comprehensive empirical comparison of transformer models for code tasks, highlighting the decoder-only model's strengths and the limitations of current datasets and benchmarks.
Findings
CodeGPT excels in generation tasks under SOTA metrics.
Models often do not generalize well across datasets.
Resource consumption does not always correlate with performance.
Abstract
Many Transformer-based pre-trained models for code have been developed and applied to code-related tasks. In this paper, we review the existing literature, examine the suitability of model architectures for different tasks, and look at the generalization ability of models on different datasets, and their resource consumption. We examine three very representative pre-trained models for code: CodeBERT, CodeGPT, and CodeT5, and conduct experiments on the top-4 most targeted software engineering tasks that we found in our literature survey: Code Summarization, Bug Fixing, Bug Detection, and Code Search. In our study, we showcase the capability of decoder-only models (CodeGPT) for specific generation tasks under state-of-the-art evaluation metrics and contest the common belief that the encoder-decoder architecture is optimal for general-purpose coding tasks. Additionally, we found that the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Engineering Techniques and Practices
