通用源代码的神经解释
本文提出了神经程序解释器模型,采用循环神经网络和可组合结构,具有记忆、编解码器和泛化等特点,通过示例学习和组合,有效降低了学习难度和提高了通用性。该模型已在进行了多种计算任务的学习和执行,并表现出良好的性能。
Nov, 2015
该论文提出了一种自适应神经编译框架来解决高效节目的学习问题,并展示了如何使用可微表示将程序编译为不同iable的表示,并通过考虑输入数据分布来优化这种表示,以实现为给定数据分布学习特定调整算法的目标。
May, 2016
本文提出了一种新型神经体系结构,它由语法模型支持,旨在将自然语言描述解析为基于Python等通用编程语言的源代码,并将其显式地捕获为先验知识,以实现从自然语言描述生成复杂程序的规模化。实验证明,这是一种有效缩放到语言描述的复杂程序的方法,取得了优于以前代码生成和语义解析方法的最新成果。
Apr, 2017
通过在神经程序员-解释器框架中实现递归来解决学习程序时神经网络泛化能力和推理能力不足的问题,证明该方法在少量训练数据的情况下具有更好的泛化性和可解释性,体验表明为了让神经网络更好的学习程序语义,需要像递归这样的概念。
Apr, 2017
本文提出了一种学习代码语义的新颖处理技术,并将其应用于各种程序分析任务中,其中使用的Embeddings基于独立于源编程语言的代码的IR,现有技术不足以强烈理解程序语义。
Jun, 2018
本篇论文提出利用图神经网络(Graph Neural Networks,GNNs)来学习通用源代码及其执行的融合表示的新方法,通过一个定义于低级表示的源代码和程序状态的多任务GNN,成功地将复杂的源代码结构和复杂的数据结构转换为更简单,更一致的格式,引领GNN的新应用领域,其应用到具有挑战性的动态任务(SPEC CPU基准套件中的分支预测和预抓取),超越现有技术水平26%和45%,并用于表现高性能的传输学习间接相关任务(算法分类)。
Jun, 2019
本文通过对三个Java数据集和三种最先进的神经网络代码的比较,来评估神经程序模型在语义保持转换下的一般性,并发现神经程序模型在语法和外部形象不同但语义相同的程序上表现不佳。
Jul, 2020
通过神经符号表示以及基于抽象解释衍生的执行模型,我们提供了一种表示部分程序的一般技术。这种技术可以帮助程序综合引擎在寻找程序解决方案时使用更强大的语言结构,从而在给定的搜索预算内更准确地综合程序。
Dec, 2020
该论文介绍了一种特定于神经代码模型(NCMs)的可解释性方法$do_{code}$,该方法能够解释模型预测。通过对两种常见深度学习结构和9个NCMs的案例研究,论文发现NCMs对代码语法的变化敏感,与代码块相关的标记(如括号、分号)的预测有更少的混淆偏差。该研究表明$do_{code}$可作为有用的模型调试机制,可以发现NCMs中的偏见和限制。
Feb, 2023
本文提出了一种基于神经元水平的方法来解决神经代码智能模型可解释性的问题,通过去除那些高度相似或任务不相关的神经元,利用熟练的分类器评估重要的神经元,发现在我们的代码智能任务中超过95%的神经元都是冗余的,并可被删除而不会在准确性方面造成重大损失,我们进一步追踪了重要神经元的个体及子集从而发现了负责特定代码属性的'数字','字符串'和更高层次的'text'神经元,这些可以用于修正基于错误信号的预测神经元,并且重要神经元的分布和浓度可以作为任务复杂度的量度。
May, 2023