IRCoder: Intermediate Representations Make Language Models Robust Multilingual Code Generators

要約

コードの理解と生成は、急速に言語モデル (LM) の最も人気のあるアプリケーションの一部になりました。
それにもかかわらず、異なるプログラミング言語間の言語間転送、言語固有のデータ拡張、ポストホック LM 適応などの Code-LM (つまり、コード生成用の LM) の多言語側面に関する研究と、言語以外のデータ ソースの活用が行われています。
元のテキスト コンテンツは、対応する自然言語のものよりもはるかにまばらです。
特に、主流の Code-LM のほとんどは、ソース コード ファイルのみで事前トレーニングされています。
この研究では、プログラミング言語間で共有される、すぐに利用できるコンパイラの中間表現 (IR) を活用して、Code-LM の多言語機能を向上させ、言語間の転送を容易にする可能性を調査します。
この目的を達成するために、まず SLTrans をコンパイルします。これは、それぞれの中間表現と結合されたほぼ 400 万の自己完結型ソース コード ファイルで構成される並列データセットです。
次に、さまざまなベースの Code-LM (サイズは 1.1B から 7.3B のパラメーター) から開始して、SLTrans 上で継続的な因果言語モデリング トレーニングを実行し、Code-LM に (1) IR 言語の学習と (2) の学習を強制します。
IR 構造をさまざまなプログラミング言語のそれぞれの構造と調整します。
IRCoder と呼ばれる私たちの結果のモデルは、即時堅牢性、多言語コード補完、コード理解、命令追従など、さまざまなコード生成タスクとメトリクスにわたって、かなりの一貫した向上を示しています。

要約(オリジナル)

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.

arxiv情報

著者 Indraneil Paul,Goran Glavaš,Iryna Gurevych
発行日 2024-04-08 14:02:41+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.CL, cs.PL パーマリンク