論文の概要: 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を完全に活用する、事前学習モデルの代替手法を示す。
関連論文リスト
- Building A Coding Assistant via the Retrieval-Augmented Language Model [24.654428111628242]
本研究では,コーディング中の人間の知識探索行動を模倣してコードアシスタントを構築するための検索補助言語モデル(CONAN)を提案する。
コード構造対応検索器(CONAN-R)とデュアルビューコード表現に基づく検索拡張生成モデル(CONAN-G)で構成される。
論文 参考訳(メタデータ) (2024-10-21T17:34:39Z) - Code Execution with Pre-trained Language Models [88.04688617516827]
コードインテリジェンスのトレーニング済みモデルのほとんどは実行トレースを無視しており、ソースコードと構文構造のみに依存している。
我々は,大規模かつ現実的なPythonデータセットとコード実行タスクを作成するために,突然変異に基づくデータ拡張手法を開発した。
次に、コード実行事前学習とカリキュラム学習を活用して意味理解を強化するトランスフォーマーモデルであるCodeExecutorを提案する。
論文 参考訳(メタデータ) (2023-05-08T10:00:05Z) - 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) - 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) - Contrastive Learning for Source Code with Structural and Functional
Properties [66.10710134948478]
本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
論文 参考訳(メタデータ) (2021-10-08T02:56:43Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。