論文の概要: Split, Encode and Aggregate for Long Code Search
- arxiv url: http://arxiv.org/abs/2208.11271v2
- Date: Sat, 12 Aug 2023 07:04:59 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 15:06:03.387109
- Title: Split, Encode and Aggregate for Long Code Search
- Title(参考訳): 長いコード検索のための分割、エンコード、集約
- Authors: Fan Hu, Yanlin Wang, Lun Du, Hongyu Zhang, Shi Han, Dongmei Zhang,
Xirong Li
- Abstract要約: 提案するSEA (Split, Encode and Aggregate for Long Code Search) は,長いコードをコードブロックに分割し,それらのブロックを埋め込みにエンコードし,それらを集約して包括的なロングコード表現を得る。
SEAでは、Transformerベースの事前トレーニングモデルを直接使用して、内部構造や再トレーニングを変更することなく、長いコードをモデル化することができます。
- 参考スコア(独自算出の注目度): 70.38415400383693
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Code search with natural language plays a crucial role in reusing existing
code snippets and accelerating software development. Thanks to the
Transformer-based pretraining models, the performance of code search has been
improved significantly compared to traditional information retrieval (IR) based
models. However, due to the quadratic complexity of multi-head self-attention,
there is a limit on the input token length. For efficient training on standard
GPUs like V100, existing pretrained code models, including GraphCodeBERT,
CodeBERT, RoBERTa (code), take the first 256 tokens by default, which makes
them unable to represent the complete information of long code that is greater
than 256 tokens. Unlike long text paragraph that can be regarded as a whole
with complete semantics, the semantics of long code is discontinuous as a piece
of long code may contain different code modules. Therefore, it is unreasonable
to directly apply the long text processing methods to long code. To tackle the
long code problem, we propose SEA (Split, Encode and Aggregate for Long Code
Search), which splits long code into code blocks, encodes these blocks into
embeddings, and aggregates them to obtain a comprehensive long code
representation. With SEA, we could directly use Transformer-based pretraining
models to model long code without changing their internal structure and
repretraining. Leveraging abstract syntax tree (AST) based splitting and
attention-based aggregation methods, SEA achieves significant improvements in
long code search performance. We also compare SEA with two sparse Trasnformer
methods. With GraphCodeBERT as the encoder, SEA achieves an overall mean
reciprocal ranking score of 0.785, which is 10.1% higher than GraphCodeBERT on
the CodeSearchNet benchmark.
- Abstract(参考訳): 自然言語によるコード検索は、既存のコードスニペットの再利用とソフトウェア開発の加速において重要な役割を果たす。
Transformerベースの事前学習モデルにより、従来の情報検索(IR)モデルと比較してコード検索の性能が大幅に向上した。
しかしながら、多頭自己アテンションの二次的複雑性のため、入力トークンの長さには制限がある。
V100のような標準GPUの効率的なトレーニングのために、GraphCodeBERT、CodeBERT、RoBERTa(コード)を含む既存の事前訓練されたコードモデルは、デフォルトで256トークンを取得できるため、256トークンを超える長いコードの完全な情報を表現できない。
完全な意味論で全体と見なせるロングテキストの段落とは異なり、ロングコードのセマンティクスは不連続であり、ロングコードの一部には異なるコードモジュールが含まれる可能性がある。
したがって、長いテキスト処理メソッドを長いコードに直接適用するのは理不尽である。
長いコード問題に対処するために、長いコードをコードブロックに分割し、これらのブロックを埋め込みにエンコードし、それらを集約して包括的な長いコード表現を得るSEA(Split, Encode and Aggregate for Long Code Search)を提案する。
SEAでは、Transformerベースの事前トレーニングモデルを直接使用して、内部構造や再トレーニングを変更することなく、長いコードをモデル化することができます。
抽象構文木(AST)に基づく分割と注意に基づく集約手法を利用して、SEAは長いコード検索性能を大幅に改善する。
seaを2つのsparse trasnformerメソッドと比較した。
エンコーダとしてGraphCodeBERTを使用すると、SEAはコードSearchNetベンチマークでGraphCodeBERTよりも10.1%高い0.785という総合的な平均逆ランキングスコアを達成する。
関連論文リスト
- Does Your Neural Code Completion Model Use My Code? A Membership Inference Approach [66.51005288743153]
本稿では,現在のニューラルコード補完モデルの法的および倫理的問題について考察する。
私たちは、もともと分類タスクのために作られたメンバシップ推論アプローチ(CodeMIと呼ばれる)を調整します。
我々は,この適応型アプローチの有効性を,多種多様なニューラルコード補完モデルで評価した。
論文 参考訳(メタデータ) (2024-04-22T15:54:53Z) - LongCoder: A Long-Range Pre-trained Language Model for Code Completion [56.813974784131624]
LongCoderは自己アテンションにスライディングウィンドウ機構を採用し、グローバルアクセス可能なトークンを2種類導入している。
ブリッジトークンは入力シーケンス全体を通して挿入され、ローカル情報を集約し、グローバルな相互作用を促進する。
メモリトークンは、後で呼び出され、記憶する必要がある重要なステートメントをハイライトするために含まれます。
論文 参考訳(メタデータ) (2023-06-26T17:59:24Z) - CodeBERTScore: Evaluating Code Generation with Pretrained Models of Code [75.08995072899594]
コード生成のための評価指標であるCodeBERTScoreを提案する。
CodeBERTScoreは生成されたコードの前に入力された自然言語をエンコードする。
CodeBERTScoreは、既存のすべての指標よりも、人間の嗜好と機能的正しさとの相関性が高いことがわかった。
論文 参考訳(メタデータ) (2023-02-10T22:12:05Z) - CodeRetriever: Unimodal and Bimodal Contrastive Learning [128.06072658302165]
関数レベルのコードセマンティック表現を訓練するために,一様および二様のコントラスト学習を組み合わせたCodeRetrieverモデルを提案する。
ノンモーダルなコントラスト学習のために、文書と関数名に基づいてポジティブなコードペアを構築するためのセマンティックガイド付き手法を設計する。
バイモーダルなコントラスト学習では、コードのドキュメンテーションとインラインコメントを活用して、テキストコードペアを構築します。
論文 参考訳(メタデータ) (2022-01-26T10:54:30Z) - DeSkew-LSH based Code-to-Code Recommendation Engine [3.7011129410662558]
ソースコード上の機械学習のための新しいコード・ツー・コードレコメンデーションエンジンであるemphSenatusを紹介する。
SenatusのコアとなるemphDe-Skew LSHは、ローカリティに敏感なハッシュアルゴリズムで、高速(サブ線形時間)検索のためにデータをインデックスする。
コード・ツー・コード・レコメンデーションのタスクにおいて、Senatusはパフォーマンスを6.7%向上し、クエリ時間16xはFacebook Aromaよりも高速であることを示す。
論文 参考訳(メタデータ) (2021-11-05T16:56:28Z) - AugmentedCode: Examining the Effects of Natural Language Resources in
Code Retrieval Models [5.112140303263898]
コード内の既存の情報を活用するAugmented Code(AugmentedCode)検索を導入する。
CodeSearchNet と CodeBERT で平均相反ランク (MRR) が 0.73 と 0.96 で上回る拡張型プログラミング言語の結果を紹介した。
論文 参考訳(メタデータ) (2021-10-16T08:44:48Z) - What do pre-trained code models know about code? [9.60966128833701]
事前に訓練されたコードモデルを調べるために、プローブと呼ばれる診断タスクを使用します。
BERT(英語で事前学習)、CodeBERT(ソースコードで事前学習)、CodeBERTa(自然言語で事前学習)、GraphCodeBERT(データフローでソースコードで事前学習)について検討した。
論文 参考訳(メタデータ) (2021-08-25T16:20:17Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。