論文の概要: Contrastive Learning for Source Code with Structural and Functional
Properties
- arxiv url: http://arxiv.org/abs/2110.03868v1
- Date: Fri, 8 Oct 2021 02:56:43 GMT
- ステータス: 処理完了
- システム内更新日: 2021-10-11 14:42:02.835099
- Title: Contrastive Learning for Source Code with Structural and Functional
Properties
- Title(参考訳): 構造的・機能的性質を持つソースコードのコントラスト学習
- Authors: Yangruibo Ding, Luca Buratti, Saurabh Pujar, Alessandro Morari,
Baishakhi Ray, Saikat Chakraborty
- Abstract要約: 本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
- 参考スコア(独自算出の注目度): 66.10710134948478
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Pre-trained transformer models have recently shown promises for understanding
the source code. Most existing works expect to understand code from the textual
features and limited structural knowledge of code. However, the program
functionalities sometimes cannot be fully revealed by the code sequence, even
with structure information. Programs can contain very different tokens and
structures while sharing the same functionality, but changing only one or a few
code tokens can introduce unexpected or malicious program behaviors while
preserving the syntax and most tokens. In this work, we present BOOST, a novel
self-supervised model to focus pre-training based on the characteristics of
source code. We first employ automated, structure-guided code transformation
algorithms that generate (i.) functionally equivalent code that looks
drastically different from the original one, and (ii.) textually and
syntactically very similar code that is functionally distinct from the
original. We train our model in a way that brings the functionally equivalent
code closer and distinct code further through a contrastive learning objective.
To encode the structure information, we introduce a new node-type masked
language model objective that helps the model learn about structural context.
We pre-train BOOST with a much smaller dataset than the state-of-the-art
models, but our small models can still match or outperform these large models
in code understanding and generation tasks.
- Abstract(参考訳): 事前訓練されたトランスフォーマーモデルは、最近ソースコードを理解することを約束している。
既存の作業の多くは、テキスト機能やコードの構造的知識の制限からコードを理解することを期待しています。
しかし、プログラム機能は、構造情報であってもコードシーケンスによって完全には明らかにできないことがある。
プログラムは、同じ機能を共有しながら、全く異なるトークンと構造を含むことができるが、1つまたは少数のコードトークンだけを変更するだけで、予期せぬ、悪意のあるプログラムの振る舞いを導入でき、構文とほとんどのトークンを保存することができる。
本稿では,ソースコードの特徴に基づく事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
まず最初に、原文と大きく異なる機能的に等価なコードを生成する自動構造誘導型コード変換アルゴリズムと、原文と機能的に異なる機能的に非常に類似したコードを生成する(ii)。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法でモデルをトレーニングします。
構造情報をエンコードするために,モデルが構造的文脈について学習するのに役立つ新しいノード型マスキング言語モデルを提案する。
最先端モデルよりもはるかに小さなデータセットでboostを事前トレーニングしていますが、私たちの小さなモデルは、コード理解や生成タスクにおいて、これらの大きなモデルにマッチしたり、上回ったりできます。
関連論文リスト
- Toward Exploring the Code Understanding Capabilities of Pre-trained Code Generation Models [12.959392500354223]
私たちは、事前訓練されたコード生成モデルからコード理解タスクへの知識の移行の先駆者です。
CL4Dはデコーダのみのモデルの表現能力を向上させるために設計された,コントラスト学習手法である。
論文 参考訳(メタデータ) (2024-06-18T06:52:14Z) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - Outline, Then Details: Syntactically Guided Coarse-To-Fine Code
Generation [61.50286000143233]
ChainCoderは、Pythonコードを段階的に生成するプログラム合成言語モデルである。
自然言語記述と構文的に整合したI/Oデータサンプルを共同で符号化するために、カスタマイズされたトランスフォーマーアーキテクチャを利用する。
論文 参考訳(メタデータ) (2023-04-28T01:47:09Z) - Unveiling Code Pre-Trained Models: Investigating Syntax and Semantics Capacities [34.27541293716398]
コードモデルがどのようにコード構文とセマンティクスを表現するかを調べるため、7つのコードモデルを広範囲に分析する。
コード構文とセマンティクスを学習するモデルの能力を評価するための4つの探索タスクを開発した。
コード構文とセマンティクスを習得する際の様々なコードモデルの長所と短所を強調した。
論文 参考訳(メタデータ) (2022-12-20T06:15:17Z) - UniXcoder: Unified Cross-Modal Pre-training for Code Representation [65.6846553962117]
プログラミング言語のためのクロスモーダル事前学習モデルUniXcoderを提案する。
木の構造情報を全て保持するシーケンス構造でASTを変換する1対1のマッピング手法を提案する。
我々は,UniXcoderを9つのデータセット上で5つのコード関連タスクで評価する。
論文 参考訳(メタデータ) (2022-03-08T04:48:07Z) - What Do They Capture? -- A Structural Analysis of Pre-Trained Language
Models for Source Code [32.345301158791045]
ソースコードの事前訓練された言語モデルは、コードのコンテキストをモデル化するために提案されている。
これらのモデルは、マスク付き事前トレーニングとトランスフォーマーを利用する。
これらのモデルがなぜ機能するのか、どのような特徴相関を捉えることができるのかは不明だ。
論文 参考訳(メタデータ) (2022-02-14T16:22:10Z) - CodeRetriever: Unimodal and Bimodal Contrastive Learning [128.06072658302165]
関数レベルのコードセマンティック表現を訓練するために,一様および二様のコントラスト学習を組み合わせたCodeRetrieverモデルを提案する。
ノンモーダルなコントラスト学習のために、文書と関数名に基づいてポジティブなコードペアを構築するためのセマンティックガイド付き手法を設計する。
バイモーダルなコントラスト学習では、コードのドキュメンテーションとインラインコメントを活用して、テキストコードペアを構築します。
論文 参考訳(メタデータ) (2022-01-26T10:54:30Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。