論文の概要: Tackling Long Code Search with Splitting, Encoding, and Aggregating
- arxiv url: http://arxiv.org/abs/2208.11271v3
- Date: Tue, 26 Mar 2024 14:51:38 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-28 02:09:26.879105
- Title: Tackling Long Code Search with Splitting, Encoding, and Aggregating
- Title(参考訳): 分割、エンコーディング、集約による長いコード検索の処理
- Authors: Fan Hu, Yanlin Wang, Lun Du, Hongyu Zhang, Shi Han, Dongmei Zhang, Xirong Li,
- Abstract要約: 長いコード検索のための新しいベースラインSEA(Split, Encode, Aggregate)を提案する。
長いコードをコードブロックに分割し、これらのブロックを埋め込みにエンコードし、それらを集約して包括的な長いコード表現を得る。
エンコーダとしてGraphCodeBERTを使用すると、SEAはコードSearchNetベンチマークでGraphCodeBERTよりも10.1%高い0.785という総合的な平均逆ランキングスコアを達成する。
- 参考スコア(独自算出の注目度): 67.02322603435628
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Code search with natural language helps us reuse existing code snippets. Thanks to the Transformer-based pretraining models, the performance of code search has been improved significantly. 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. To tackle the long code problem, we propose a new baseline SEA (Split, Encode and Aggregate), 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 re-pretraining. We also compare SEA with 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, justifying SEA as a strong baseline for long code search. Our source code and experimental data are available at: https://github.com/fly-dragon211/SEA.
- Abstract(参考訳): 自然言語によるコード検索は、既存のコードスニペットの再利用に役立つ。
Transformerベースの事前トレーニングモデルのおかげで、コード検索のパフォーマンスは大幅に改善された。
しかし、マルチヘッド自己注意の2次複雑さのため、入力トークン長に制限がある。
V100のような標準GPUの効率的なトレーニングのために、GraphCodeBERT、CodeBERT、RoBERTa(コード)といった既存の事前訓練されたコードモデルは、デフォルトで256トークンを取得できるため、256トークンを超える長いコードの完全な情報を表現できない。
長いコード問題に対処するため、我々は、長いコードをコードブロックに分割し、これらのブロックを埋め込みにエンコードし、それらを集約して包括的な長いコード表現を得る新しいベースラインSEA(Split, Encode, Aggregate)を提案する。
SEAでは、Transformerベースの事前トレーニングモデルを直接使用して、内部構造を変更したり、再トレーニングしたりすることなく、長いコードをモデル化することができます。
また,Sparse Trasnformer法とSEAを比較した。
エンコーダとしてGraphCodeBERTを使用すると、SEAはコードSearchNetベンチマークでGraphCodeBERTよりも10.1%高い0.785という総合的な平均逆ランキングスコアを達成し、SEAを長いコード検索の強力なベースラインとして正当化する。
ソースコードと実験データは、https://github.com/fly-dragon211/SEA.comで公開されています。
関連論文リスト
- 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。