SECLLGFeb 16, 2022

Probing Pretrained Models of Source Code

arXiv:2202.08975v350 citations
Originality Synthesis-oriented
AI Analysis

This work addresses the need to evaluate and improve code understanding in pretrained models for developers and researchers in software engineering and AI, but it is incremental as it builds on existing probing methods.

The paper tackled the problem of understanding what pretrained models of source code learn by introducing diagnostic probing tasks to test diverse aspects of code understanding, showing that these models contain information about syntactic structure, correctness, identifiers, data flow, namespaces, and natural language naming.

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.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes