論文の概要: CodeFill: Multi-token Code Completion by Jointly Learning from Structure
and Naming Sequences
- arxiv url: http://arxiv.org/abs/2202.06689v1
- Date: Mon, 14 Feb 2022 13:26:54 GMT
- ステータス: 処理完了
- システム内更新日: 2022-02-15 18:09:40.174567
- Title: CodeFill: Multi-token Code Completion by Jointly Learning from Structure
and Naming Sequences
- Title(参考訳): CodeFill: 構造と命名シーケンスからの共同学習によるマルチトークンコード補完
- Authors: Maliheh Izadi, Roberta Gismondi, Georgios Gousios
- Abstract要約: 学習された構造と命名情報を組み合わせた自動補完のための言語モデルであるCodeFillを提案する。
CodeFillは、シングルトークンとマルチトークン(ステートメント)予測の両方のためにトレーニングされている。
評価をより現実的にするために,完了が重要となるソースコード中の点を自動的に推測する手法を開発した。
- 参考スコア(独自算出の注目度): 7.661675959139121
- License: http://creativecommons.org/licenses/by-nc-nd/4.0/
- Abstract: Code completion is an essential feature of IDEs, yet current autocompleters
are restricted to either grammar-based or NLP-based single token completions.
Both approaches have significant drawbacks: grammar-based autocompletion is
restricted in dynamically-typed language environments, whereas NLP-based
autocompleters struggle to understand the semantics of the programming language
and the developer's code context.
In this work, we present CodeFill, a language model for autocompletion that
combines learned structure and naming information. Using a parallel Transformer
architecture and multi-task learning, CodeFill consumes sequences of source
code token names and their equivalent AST token types. Uniquely, CodeFill is
trained both for single-token and multi-token (statement) prediction, which
enables it to learn long-range dependencies among grammatical and naming
elements. We train CodeFill on two datasets, consisting of 29M and 425M lines
of code, respectively. To make the evaluation more realistic, we develop a
method to automatically infer points in the source code at which completion
matters. We compare CodeFill against four baselines and two state-of-the-art
models, GPT-C and TravTrans+.CodeFill surpasses all baselines in single token
prediction (MRR: 70.9% vs. 66.2% and 67.8%) and outperforms the state of the
art for multi-token prediction (ROUGE-L: 63.7% vs. 52.4% and 59.2%, for n=4
tokens). We publicly release our source code and datasets.
- Abstract(参考訳): コード補完はIDEにとって不可欠な機能であるが、現在のオートコンプリートは文法ベースまたはNLPベースのシングルトークン補完に制限されている。
文法ベースのオートコンプリートは動的型付け言語環境で制限されるが、NLPベースのオートコンプリートはプログラミング言語の意味や開発者のコードコンテキストを理解するのに苦労する。
本稿では,学習構造と命名情報を組み合わせた自動補完のための言語モデルであるcodefillを提案する。
並列トランスフォーマーアーキテクチャとマルチタスク学習を使用して、CodeFillはソースコードトークン名とその等価なASTトークンのシーケンスを消費する。
CodeFillは、単一トークンと複数トークン(ステートメント)予測の両方でトレーニングされており、文法および命名要素間の長距離依存関係を学習することができる。
私たちは、それぞれ29Mと425Mのコードからなる2つのデータセットでCodeFillをトレーニングします。
評価をより現実的にするために,ソースコード中の点を自動的に推測する手法を開発した。
CodeFillを4つのベースラインと2つの最先端モデル、GPT-CとTravTrans+と比較する。
codefillはシングルトークン予測(mrr: 70.9% vs. 66.2%, 67.8%)ですべてのベースラインを上回り、マルチトークン予測(ルージュl: 63.7% vs. 52.4%, 59.2%, n=4トークン)では最先端を上回っている。
ソースコードとデータセットを公開しています。
関連論文リスト
- Superposed Decoding: Multiple Generations from a Single Autoregressive Inference Pass [72.07642648108849]
Superposed Decodingは、1つの自己回帰推論パスのコストで$k$のドラフトを生成する新しい復号アルゴリズムである。
Superposed Decodingは、他のデコード戦略と組み合わせることで、推論時間計算のスケーリング時に普遍的なカバレッジが向上する。
論文 参考訳(メタデータ) (2024-05-28T17:40:48Z) - LongCoder: A Long-Range Pre-trained Language Model for Code Completion [56.813974784131624]
LongCoderは自己アテンションにスライディングウィンドウ機構を採用し、グローバルアクセス可能なトークンを2種類導入している。
ブリッジトークンは入力シーケンス全体を通して挿入され、ローカル情報を集約し、グローバルな相互作用を促進する。
メモリトークンは、後で呼び出され、記憶する必要がある重要なステートメントをハイライトするために含まれます。
論文 参考訳(メタデータ) (2023-06-26T17:59:24Z) - Outline, Then Details: Syntactically Guided Coarse-To-Fine Code
Generation [61.50286000143233]
ChainCoderは、Pythonコードを段階的に生成するプログラム合成言語モデルである。
自然言語記述と構文的に整合したI/Oデータサンプルを共同で符号化するために、カスタマイズされたトランスフォーマーアーキテクチャを利用する。
論文 参考訳(メタデータ) (2023-04-28T01:47:09Z) - Syntax-Aware On-the-Fly Code Completion [13.268277642411974]
我々はPyCoderを提案する。トークン型は軽量な構文情報の一種である。
私たちのPyCoderはトークンレベルの予測に対して77.12%の精度でCodeXGLUEのリーダーボードで1位を獲得しました。
論文 参考訳(メタデータ) (2022-11-09T04:24:18Z) - LAMNER: Code Comment Generation Using Character Language Model and Named
Entity Recognition [0.7894331610810762]
LANguage Model と Named Entity Recognition (LAMNER) を提案する。
LAMNERは、コード構造を効果的に符号化し、コードトークンの構造的特性をキャプチャできるコードコメント生成装置である。
LAMNERや他のベースラインから生成されたコメントを、一般的な4つのメトリクスを持つ人気のあるJavaデータセットで評価する。
論文 参考訳(メタデータ) (2022-04-05T20:53:06Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - CodeRetriever: Unimodal and Bimodal Contrastive Learning [128.06072658302165]
関数レベルのコードセマンティック表現を訓練するために,一様および二様のコントラスト学習を組み合わせたCodeRetrieverモデルを提案する。
ノンモーダルなコントラスト学習のために、文書と関数名に基づいてポジティブなコードペアを構築するためのセマンティックガイド付き手法を設計する。
バイモーダルなコントラスト学習では、コードのドキュメンテーションとインラインコメントを活用して、テキストコードペアを構築します。
論文 参考訳(メタデータ) (2022-01-26T10:54:30Z) - CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for
Code Understanding and Generation [36.47905744758698]
我々は、開発者が指定した識別子から伝達されるコードセマンティクスをよりよく活用する、事前訓練されたエンコーダ-デコーダ変換モデルであるCodeT5を提案する。
我々のモデルは、コード理解と生成タスクの両方をシームレスにサポートし、マルチタスク学習を可能にする統一的なフレームワークを採用している。
論文 参考訳(メタデータ) (2021-09-02T12:21:06Z) - CLSEBERT: Contrastive Learning for Syntax Enhanced Code Pre-Trained
Model [23.947178895479464]
CLSEBERTは,構文強化符号事前学習モデルのための構築学習フレームワークである。
事前学習段階では、抽象構文木(AST)に含まれるコード構文と階層について検討する。
ひとつは抽象構文木内のノード間のエッジを予測することであり、もう一つはコードトークンの型を予測することである。
論文 参考訳(メタデータ) (2021-08-10T10:08:21Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。