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.
JanusCoder: Towards a Foundational Visual-Programmatic Interface for Code Intelligence
The University of Hong Kong(香港大学);Shanghai AI Laboratory(上海人工智能实验室);Nanjing University(南京大学);Carnegie Mellon University(卡内基梅隆大学);Shanghai Innovation Institute(上海创新研究院)
Deep Learning for Code Intelligence: Survey, Benchmark and Toolkit
Simon Fraser University(西蒙弗雷泽大学);Salesforce Research(赛富时研究院);Chongqing University(重庆大学);University of New South Wales(新南威尔士大学);University of Technology Sydney(悉尼科技大学);University of Illinois at Chicago(伊利诺伊大学芝加哥分校)