論文の概要: Is Self-Attention Powerful to Learn Code Syntax and Semantics?
- arxiv url: http://arxiv.org/abs/2212.10017v1
- Date: Tue, 20 Dec 2022 06:15:17 GMT
- ステータス: 処理完了
- システム内更新日: 2022-12-21 17:01:27.041291
- Title: Is Self-Attention Powerful to Learn Code Syntax and Semantics?
- Title(参考訳): コード構文とセマンティックスを学ぶのに自己意識は強力か?
- Authors: Wei Ma, Mengjie Zhao, Xiaofei Xie, Qiang Hu, Shangqing Liu, Jie Zhang,
Wenhan Wang, Yang Liu,
- Abstract要約: 我々は、ASTと静的解析に基づいて、コード構文とセマンティクスを理解する際に、自己注意機構が果たす役割を解明する。
本稿では,自己認識機構とMLM(Masked Language Modelling)をトークンレベルで学習する方法について検討する。
- 参考スコア(独自算出の注目度): 29.672756739864326
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Pre-trained language models for programming languages have shown a powerful
ability on processing many Software Engineering (SE) tasks, e.g., program
synthesis, code completion, and code search. However, it remains to be seen
what is behind their success. Recent studies have examined how pre-trained
models can effectively learn syntax information based on Abstract Syntax Trees.
In this paper, we figure out what role the self-attention mechanism plays in
understanding code syntax and semantics based on AST and static analysis. We
focus on a well-known representative code model, CodeBERT, and study how it can
learn code syntax and semantics by the self-attention mechanism and Masked
Language Modelling (MLM) at the token level.
We propose a group of probing tasks to analyze CodeBERT. Based on AST and
static analysis, we establish the relationships among the code tokens. First,
Our results show that CodeBERT can acquire syntax and semantics knowledge
through self-attention and MLM. Second, we demonstrate that the self-attention
mechanism pays more attention to dependence-relationship tokens than to other
tokens. Different attention heads play different roles in learning code
semantics; we show that some of them are weak at encoding code semantics.
Different layers have different competencies to represent different code
properties. Deep CodeBERT layers can encode the semantic information that
requires some complex inference in the code context. More importantly, we show
that our analysis is helpful and leverage our conclusions to improve CodeBERT.
We show an alternative approach for pre-training models, which makes fully use
of the current pre-training strategy, i.e, MLM, to learn code syntax and
semantics, instead of combining features from different code data formats,
e.g., data-flow, running-time states, and program outputs.
- Abstract(参考訳): プログラミング言語の事前訓練された言語モデルは、プログラム合成、コード補完、コード検索など、多くのソフトウェア工学(SE)タスクを処理する強力な能力を示している。
しかし、その成功の背景には何があるのかは不明だ。
近年, 抽象構文木に基づいて, 事前学習モデルを用いて構文情報を効果的に学習する方法が研究されている。
本稿では,ASTと静的解析に基づいて,コード構文や意味を理解する上で,自己認識機構が果たす役割を明らかにする。
我々は、よく知られた代表的コードモデルであるCodeBERTに注目し、トークンレベルで自己認識機構とマスケッド言語モデリング(MLM)を用いて、コード構文とセマンティクスを学習する方法を研究する。
CodeBERTを解析するための探索タスクのグループを提案する。
ASTと静的解析に基づいて、コードトークン間の関係を確立する。
まず,CodeBERTは自己認識とMDMによって構文や意味の知識を習得できることを示す。
第二に、自己注意機構は他のトークンよりも依存関係トークンに注意を払っていることを示す。
異なる注意ヘッドは、コードのセマンティクスを学ぶ上で異なる役割を担っている。
異なるレイヤは異なるコード特性を表現する能力を持っている。
深いコードバート層は、コードコンテキストで複雑な推論を必要とする意味情報をエンコードできる。
さらに重要なことは、私たちの分析が役立つことを示し、結論を利用してCodeBERTを改善します。
我々は、データフロー、実行時状態、プログラム出力など、さまざまなコードデータフォーマットの機能を組み合わせるのではなく、コード構文とセマンティクスを学ぶための、現在の事前学習戦略であるMLMを完全に活用する、事前学習モデルの代替手法を示す。
関連論文リスト
- What Do They Capture? -- A Structural Analysis of Pre-Trained Language
Models for Source Code [32.345301158791045]
ソースコードの事前訓練された言語モデルは、コードのコンテキストをモデル化するために提案されている。
これらのモデルは、マスク付き事前トレーニングとトランスフォーマーを利用する。
これらのモデルがなぜ機能するのか、どのような特徴相関を捉えることができるのかは不明だ。
論文 参考訳(メタデータ) (2022-02-14T16:22:10Z) - Programming Knowledge Tracing: A Comprehensive Dataset and A New Model [26.63441910982382]
本稿では,学生の行動予測の精度を高めるために,拡張された文脈を利用する新しいモデルPDKTを提案する。
プログラミング問題埋め込みのための二部グラフを構築し,コード埋め込みのための事前学習モデルPLCodeBERTを改良した。
新しいデータセットBePKTの実験結果から,提案モデルがプログラミング知識の追跡において最先端の性能を確立することを示す。
論文 参考訳(メタデータ) (2021-12-11T02:13:11Z) - Contrastive Learning for Source Code with Structural and Functional
Properties [66.10710134948478]
本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
論文 参考訳(メタデータ) (2021-10-08T02:56:43Z) - Software Vulnerability Detection via Deep Learning over Disaggregated
Code Graph Representation [57.92972327649165]
この研究は、コードコーパスから安全でないパターンを自動的に学習するためのディープラーニングアプローチを探求する。
コードには解析を伴うグラフ構造が自然に認められるため,プログラムの意味的文脈と構造的規則性の両方を利用する新しいグラフニューラルネットワーク(GNN)を開発する。
論文 参考訳(メタデータ) (2021-09-07T21:24:36Z) - CLSEBERT: Contrastive Learning for Syntax Enhanced Code Pre-Trained
Model [23.947178895479464]
CLSEBERTは,構文強化符号事前学習モデルのための構築学習フレームワークである。
事前学習段階では、抽象構文木(AST)に含まれるコード構文と階層について検討する。
ひとつは抽象構文木内のノード間のエッジを予測することであり、もう一つはコードトークンの型を予測することである。
論文 参考訳(メタデータ) (2021-08-10T10:08:21Z) - How could Neural Networks understand Programs? [67.4217527949013]
ソースコードにnlpプリトレーニング技術を直接適用するか、あるいはtheshelfによってモデルに機能を追加するかで、プログラムをより理解するためのモデルを構築するのは難しい。
本研究では,(1)操作セマンティクスの基本操作とよく一致する表現と(2)環境遷移の情報からなる情報から,モデルが学ぶべき新しいプログラムセマンティクス学習パラダイムを提案する。
論文 参考訳(メタデータ) (2021-05-10T12:21:42Z) - Deep Graph Matching and Searching for Semantic Code Retrieval [76.51445515611469]
本稿では,グラフニューラルネットワークに基づくエンドツーエンドのディープグラフマッチングと探索モデルを提案する。
まず、自然言語クエリテキストとプログラミング言語のコードスニペットをグラフ構造化データで表現する。
特に、DGMSは、個々のクエリテキストやコードスニペットのより構造的な情報をキャプチャするだけでなく、それらの微妙な類似性も学習する。
論文 参考訳(メタデータ) (2020-10-24T14:16:50Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z) - Evaluating Logical Generalization in Graph Neural Networks [59.70452462833374]
グラフニューラルネットワーク(GNN)を用いた論理一般化の課題について検討する。
ベンチマークスイートであるGraphLogでは、学習アルゴリズムが異なる合成論理でルール誘導を実行する必要がある。
モデルが一般化し適応する能力は、トレーニング中に遭遇する論理規則の多様性によって強く決定される。
論文 参考訳(メタデータ) (2020-03-14T05:45:55Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。