Understanding Neural Code Intelligence Through Program Simplification
A wide range of code intelligence (CI) tools, powered by deep neural networks, have been developed recently to improve programming productivity and perform program analysis. To reliably use such tools, developers often need to reason about the behavior of the underlying models and the factors that affect them. This is especially challenging for tools backed by deep neural networks. Various methods have tried to reduce this opacity in the vein of "transparent/interpretable-AI". However, these approaches are often specific to a particular set of network architectures, even requiring access to the network's parameters. This makes them difficult to use for the average programmer, which hinders the reliable adoption of neural CI systems. In this paper, we propose a simple, model-agnostic approach to identify critical input features for models in CI systems, by drawing on software debugging research, specifically delta debugging. Our approach, SIVAND, uses simplification techniques that reduce the size of input programs of a CI model while preserving the predictions of the model. We show that this approach yields remarkably small outputs and is broadly applicable across many model architectures and problem domains. We find that the models in our experiments often rely heavily on just a few syntactic features in input programs. We believe that SIVAND's extracted features may help understand neural CI systems' predictions and learned behavior.
Code (2)
Tasks
Method name predictionVariable misuseSimilar Papers 제목 키워드 기반
EditNTS: An Neural Programmer-Interpreter Model for Sentence Simplification through Explicit Editing
We present the first sentence simplification model that learns explicit edit operations (ADD, DELETE, and KEEP) via a neural programmer-interpreter approach. Most current neural sentence simplification systems are varian…
Machine TranslationSentenceText SimplificationTranslationMCTS: A Multi-Reference Chinese Text Simplification Dataset
Text simplification aims to make the text easier to understand by applying rewriting transformations. There has been very little research on Chinese text simplification for a long time. The lack of generic evaluation dat…
Machine TranslationText SimplificationSimplifying Semantic Annotations of SMCalFlow
SMCalFlow is a large corpus of semantically detailed annotations of task-oriented natural dialogues. The annotations use a dataflow approach, in which the annotations are programs which represent user requests. Despite t…
Elaborative Simplification as Implicit Questions Under Discussion
Automated text simplification, a technique useful for making text more accessible to people such as children and emergent bilinguals, is often thought of as a monolingual translation task from complex sentences to simpli…
DecoderQuestion GenerationQuestion-GenerationText SimplificationIntroduction to the SP theory of intelligence
This article provides a brief introduction to the "Theory of Intelligence" and its realisation in the "SP Computer Model". The overall goal of the SP programme of research, in accordance with long-established principles …