論文の概要: TransformCode: A Contrastive Learning Framework for Code Embedding via Subtree Transformation
- arxiv url: http://arxiv.org/abs/2311.08157v2
- Date: Wed, 24 Apr 2024 03:08:29 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-25 16:25:00.324115
- Title: TransformCode: A Contrastive Learning Framework for Code Embedding via Subtree Transformation
- Title(参考訳): TransformCode: サブツリー変換によるコード埋め込みのためのコントラスト学習フレームワーク
- Authors: Zixiang Xian, Rubing Huang, Dave Towey, Chunrong Fang, Zhenyu Chen,
- Abstract要約: コード埋め込みを対照的な学習方法で学習する新しいフレームワークであるTransformCodeを提案する。
我々のフレームワークはエンコーダに依存しない言語に依存しないので、どんなエンコーダモデルでも活用でき、どんなプログラミング言語でも扱える。
- 参考スコア(独自算出の注目度): 9.477734501499274
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Artificial intelligence (AI) has revolutionized software engineering (SE) by enhancing software development efficiency. The advent of pre-trained models (PTMs) leveraging transfer learning has significantly advanced AI for SE. However, existing PTMs that operate on individual code tokens suffer from several limitations: They are costly to train and fine-tune; and they rely heavily on labeled data for fine-tuning on task-specific datasets. In this paper, we present TransformCode, a novel framework that learns code embeddings in a contrastive learning manner. Our framework is encoder-agnostic and language-agnostic, which means that it can leverage any encoder model and handle any programming language. We also propose a novel data-augmentation technique called abstract syntax tree (AST) transformation, which applies syntactic and semantic transformations to the original code snippets, to generate more diverse and robust samples for contrastive learning. Our framework has several advantages over existing methods: (1) It is flexible and adaptable, because it can easily be extended to other downstream tasks that require code representation (such as code-clone detection and classification); (2) it is efficient and scalable, because it does not require a large model or a large amount of training data, and it can support any programming language; (3) it is not limited to unsupervised learning, but can also be applied to some supervised learning tasks by incorporating task-specific labels or objectives; and (4) it can also adjust the number of encoder parameters based on computing resources. We evaluate our framework on several code-related tasks, and demonstrate its effectiveness and superiority over the state-of-the-art methods such as SourcererCC, Code2vec, and InferCode.
- Abstract(参考訳): 人工知能(AI)は、ソフトウェア開発の効率を向上させることによって、ソフトウェアエンジニアリング(SE)に革命をもたらした。
トランスファーラーニングを活用した事前学習モデル(PTM)の出現により、SEのためのAIは大幅に進歩した。
しかし、個々のコードトークンを操作する既存のPTMには、いくつかの制限がある。それらは、トレーニングと微調整にコストがかかり、タスク固有のデータセットを微調整するためにラベル付きデータに大きく依存している。
本稿では,コード埋め込みを対照的な学習方法で学習する新しいフレームワークであるTransformCodeを提案する。
我々のフレームワークはエンコーダに依存しない言語に依存しないので、どんなエンコーダモデルでも活用でき、どんなプログラミング言語でも扱える。
また,抽象構文木変換(AST)変換と呼ばれる新しいデータ拡張手法を提案し,構文的および意味的変換を元のコードスニペットに適用し,より多様で頑健なサンプルを生成する。
既存の手法に対して、柔軟性と適応性があり、コード表現を必要とする他のダウンストリームタスク(コードクローンの検出や分類など)に容易に拡張できるため、2)大規模モデルや大量のトレーニングデータを必要としないため、効率的でスケーラブルであり、あらゆるプログラミング言語をサポートできるため、(3)教師なし学習に限らず、タスク固有のラベルや目的を組み込むことで教師あり学習タスクにも適用できる、(4)コンピュータリソースに基づいたエンコーダパラメータの調整も可能である。
我々は,いくつかのコード関連タスクにおけるフレームワークの評価を行い,SourcererCC,Code2vec,InferCodeといった最先端のメソッドよりも有効性と優位性を示す。
関連論文リスト
- SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - LongCoder: A Long-Range Pre-trained Language Model for Code Completion [56.813974784131624]
LongCoderは自己アテンションにスライディングウィンドウ機構を採用し、グローバルアクセス可能なトークンを2種類導入している。
ブリッジトークンは入力シーケンス全体を通して挿入され、ローカル情報を集約し、グローバルな相互作用を促進する。
メモリトークンは、後で呼び出され、記憶する必要がある重要なステートメントをハイライトするために含まれます。
論文 参考訳(メタデータ) (2023-06-26T17:59:24Z) - Enriching Source Code with Contextual Data for Code Completion Models:
An Empirical Study [4.438873396405334]
コンテクストデータを用いてコードを理解しやすくすることで、コード補完作業のための事前学習された言語モデルの性能が向上するかどうかを問う。
コメントについては、マルチラインコメントの存在下でモデルの性能が向上していることが分かる。
論文 参考訳(メタデータ) (2023-04-24T17:09:14Z) - Enhancing Semantic Code Search with Multimodal Contrastive Learning and
Soft Data Augmentation [50.14232079160476]
コード検索のためのマルチモーダルコントラスト学習とソフトデータ拡張を用いた新しい手法を提案する。
我々は,6つのプログラミング言語を用いた大規模データセットにおけるアプローチの有効性を評価するために,広範囲な実験を行った。
論文 参考訳(メタデータ) (2022-04-07T08:49:27Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z) - Contrastive Learning for Source Code with Structural and Functional
Properties [66.10710134948478]
本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
論文 参考訳(メタデータ) (2021-10-08T02:56:43Z) - InferCode: Self-Supervised Learning of Code Representations by
Predicting Subtrees [17.461451218469062]
本稿では,自己言語学習機構をソースコードモデルに適用することにより,制限を克服するinfercodeを提案する。
ASTのサブツリーは、人間のラベル付けや高価なグラフ構築のオーバーヘッドなしにコード表現をトレーニングするためのラベルとして、InferCodeで扱われる。
Code2Vec、Code2Seq、ASTNNなど、同じ下流タスクに適用される以前のコード学習技術と比較して、事前に訓練されたInferCodeモデルを使用して、より高いパフォーマンスを達成できます。
論文 参考訳(メタデータ) (2020-12-13T10:33:41Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。