Our new X account is live! Follow @wizwand_team for updates
WorkDL logo mark

IRCoder: Intermediate Representations Make Language Models Robust Multilingual Code Generators

About

Code understanding and generation have fast become some of the most popular applications of language models (LMs). Nonetheless, research on multilingual aspects of Code-LMs (i.e., LMs for code generation) such as cross-lingual transfer between different programming languages, language-specific data augmentation, and post-hoc LM adaptation, alongside exploitation of data sources other than the original textual content, has been much sparser than for their natural language counterparts. In particular, most mainstream Code-LMs have been pre-trained on source code files alone. In this work, we investigate the prospect of leveraging readily available compiler intermediate representations (IR) - shared across programming languages - to improve the multilingual capabilities of Code-LMs and facilitate cross-lingual transfer. To this end, we first compile SLTrans, a parallel dataset consisting of nearly 4M self-contained source code files coupled with respective intermediate representations. Next, starting from various base Code-LMs (ranging in size from 1.1B to 7.3B parameters), we carry out continued causal language modelling training on SLTrans, forcing the Code-LMs to (1) learn the IR language and (2) align the IR constructs with respective constructs of various programming languages. Our resulting models, dubbed IRCoder, display sizeable and consistent gains across a wide variety of code generation tasks and metrics, including prompt robustness, multilingual code completion, code understanding, and instruction following.

Indraneil Paul, Goran Glava\v{s}, Iryna Gurevych• 2024

Related benchmarks

TaskDatasetResultRank
Code GenerationReCode Format
Pass@165.76
12
Code GenerationReCode Syntax
Pass@159.24
12
Code GenerationReCode Function
pass@138.66
12
Code SummarizationCodeXGLUE Code-Text
BLEU-413.21
12
Commit Message GenerationCommit Chronicle
ROUGE-2 Score15.88
12
Instruction FollowingHumanEvalFixDocs
pass@149.79
12
Multilingual Code CompletionMultiPL-E
Pass@131.14
12
Showing 7 of 7 rows

Other info

Follow for update