Skip to main content
QUICK REVIEW

[論文レビュー] Probing Pretrained Models of Source Code

Sergey Troshin, Nadezhda Chirkova|arXiv (Cornell University)|Feb 16, 2022
Software Engineering Research被引用数 8
ひとこと要約

本論文は、事前学習済みコードモデルがソースコードの構文的および意味的性質をどの程度理解しているかを診断する包括的なプロービングフレームワークを導入する。線形プローブを隠れ表現に適用することで、モデルは構文、名前付け、ネームスペース構造を捉えているが、特に微調整後は意味的同等性の理解に苦労しており、コード固有の事前学習目的が特定のコード的側面の理解を向上させることを示している。

ABSTRACT

Deep learning models are widely used for solving challenging code processing tasks, such as code generation or code summarization. Traditionally, a specific model architecture was carefully built to solve a particular code processing task. However, recently general pretrained models such as CodeBERT or CodeT5 have been shown to outperform task-specific models in many applications. While pretrained models are known to learn complex patterns from data, they may fail to understand some properties of source code. To test diverse aspects of code understanding, we introduce a set of diagnosting probing tasks. We show that pretrained models of code indeed contain information about code syntactic structure and correctness, the notions of identifiers, data flow and namespaces, and natural language naming. We also investigate how probing results are affected by using code-specific pretraining objectives, varying the model size, or finetuning.

研究の動機と目的

  • 事前学習済みコードモデルが多様なコード的性質をどの程度理解しているかを評価する診断ツールキットを開発すること。
  • モデルのアーキテクチャ、事前学習目的、微調整がコード理解能力に与える影響を評価すること。
  • モデルの表現に保持されているコード的性質—構文的、意味的、構造的—のうち、どれが保存されているかを特定すること。
  • タスク固有の要件に基づいて、実務家がモデルを選定または適合させることを支援すること。

提案手法

  • 構文的構造、データフロー、ネームスペース、名前付け、意味的同等性、読みやすさを対象とする10のプロービングタスクのセットを設計する。
  • ベースモデルを微調整せずに、レイヤーごとの隠れ表現に線形分類器および回帰器を適用する。
  • トークンレベルのタスクでは、サブトークン埋め込みを用いてASTパスタイプを予測する。スニペットレベルのタスクでは、ASTの深さまたは意味的類似度を予測する。
  • 合成データまたは借用データを用いてプローブを学習し、強力なベースライン(例:定数予測や線形回帰)を用意する。
  • 分類タスクには正答率、回帰タスクには平均絶対誤差を用いて性能を評価する。
  • モデルのサイズ、事前学習目的(例:マスキング言語モデル、コード固有の目的)および微調整の影響を比較する。

実験結果

リサーチクエスチョン

  • RQ1事前学習済みコードモデルは、ASTパスや深さといった構文的構造をどの程度にエンコードしているか?
  • RQ2モデルは意味的に同等のコードスニペットを区別できるか。これは意味的理解を示唆する。
  • RQ3コード固有の事前学習目的(例:CodeT5、GraphCodeBERT)は、モデルが特定のコード的性質を捉える能力にどのように影響するか?
  • RQ4微調整は、モデルのコード構造および意味の表現を悪化させるか、改善するか?
  • RQ5モデルのサイズは、隠れ表現におけるコード関連情報の保持にどのように影響するか?

主な発見

  • 事前学習済みコードモデルは、ASTパスタイプや深さといった構文的構造を、プロービングタスクで高い正答率で効果的に捉えている。
  • 名前付けおよびネームスペース関連のタスクで強い性能を示しており、識別子のスコープおよび文脈への認識があることを示している。
  • 意味的同等性の検出は依然として課題であり、モデルは僅かな性能にとどまり、意味的理解が限定的であることを示唆している。
  • 微調整はしばしばプロービングタスクの性能を低下させ、特に分類タスクにおいて構造的知識の喪失が生じる可能性がある。
  • コード固有の目的で事前学習されたモデル(例:CodeT5、GraphCodeBERT)は、その目的と整合するタスクで優れた性能を示している。
  • 線形プローブの代わりに3層のMLPを用いた場合でも結果は同様であり、発見の堅牢性が確認された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。