Building A Coding Assistant via the Retrieval-Augmented Language Model

要約

事前トレーニングされた言語モデルは、コードの取得、コード生成、コードの要約、コード補完タスクなどのコード関連タスクで高い効果を示しています。
この論文では、検索拡張言語モデル (CONAN) によるコード アシスタントを提案します。これは、コーディング中の人間の知識探索行動を模倣することによってコード アシスタントを構築することを目的としています。
具体的には、コード構造認識型検索器 (CONAN-R) とデュアルビュー コード表現ベースの検索拡張生成モデル (CONAN-G) で構成されます。
CONAN-R は、コードとドキュメントの調整タスクとマスクされたエンティティ予測タスクを使用して CodeT5 を事前トレーニングし、言語モデルにコード構造を認識させ、コード スニペットとドキュメントの効果的な表現を学習します。
次に、CONAN-G は、検索拡張コード生成モデルを実装するためのデュアルビュー コード表現メカニズムを設計します。
CONAN-G は、コード ドキュメントの説明をプロンプトとみなします。これは、言語モデルがコードのセマンティクスをよりよく理解するのに役立ちます。
私たちの実験では、CONAN がさまざまなコード生成タスクで納得のいくパフォーマンスを達成し、以前の検索拡張コード生成モデルを大幅に上回るパフォーマンスを示しています。
さらなる分析の結果、CONAN は、コードとドキュメントのデータ ペアを調整し、コード データ内のエンティティをマスキングして予測することで構造的な意味論をキャプチャすることで、コード スニペットとドキュメントの両方に合わせた表現を学習していることが示されています。
さらに、取得されたコード スニペットとドキュメントは、コード生成プロセスを支援するためにプログラム言語と自然言語の両方から必要な情報を提供します。
CONAN は、大規模言語モデル (LLM) のアシスタントとしても使用でき、LLM に短いコード ドキュメント長で外部の知識を提供し、さまざまなコード タスクの効率を向上させることができます。
これは、必要な情報を抽出し、取得したコード ドキュメントからノイズを除去するのに役立つ CONAN の機能を示しています。

要約(オリジナル)

Pretrained language models have shown strong effectiveness in code-related tasks, such as code retrieval, code generation, code summarization, and code completion tasks. In this paper, we propose COde assistaNt viA retrieval-augmeNted language model (CONAN), which aims to build a code assistant by mimicking the knowledge-seeking behaviors of humans during coding. Specifically, it consists of a code structure aware retriever (CONAN-R) and a dual-view code representation-based retrieval-augmented generation model (CONAN-G). CONAN-R pretrains CodeT5 using Code-Documentation Alignment and Masked Entity Prediction tasks to make language models code structure-aware and learn effective representations for code snippets and documentation. Then CONAN-G designs a dual-view code representation mechanism for implementing a retrieval-augmented code generation model. CONAN-G regards the code documentation descriptions as prompts, which help language models better understand the code semantics. Our experiments show that CONAN achieves convincing performance on different code generation tasks and significantly outperforms previous retrieval augmented code generation models. Our further analyses show that CONAN learns tailored representations for both code snippets and documentation by aligning code-documentation data pairs and capturing structural semantics by masking and predicting entities in the code data. Additionally, the retrieved code snippets and documentation provide necessary information from both program language and natural language to assist the code generation process. CONAN can also be used as an assistant for Large Language Models (LLMs), providing LLMs with external knowledge in shorter code document lengths to improve their effectiveness on various code tasks. It shows the ability of CONAN to extract necessary information and help filter out the noise from retrieved code documents.

arxiv情報

著者 Xinze Li,Hanbin Wang,Zhenghao Liu,Shi Yu,Shuo Wang,Shuo Wang,Yukun Yan,Yukai Fu,Yu Gu,Ge Yu
発行日 2024-10-21 17:34:39+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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