利用神经符号转换网络进行语义化代码修复
介绍了一种基于 Transformer 的代码修复方法 NSEdit,其将错误的源代码输入,预测出一个修复序列,使用符合规则语句的神经符号脚本生成编辑程序,并通过指针网络选择编辑位置,经过训练和微调后,在 CodeXGLUE 基准测试中的 Tufano 小数据集上取得了 24.04%的准确度,该方法在程序包与程序包之间的抗干扰能力强。
Apr, 2022
本文提出一种基于 CodeBERT 的自动化程序修复方法,使用 ManySStuBs4J 小和大数据集对模型进行微调,能够准确地预测开发人员在 19-72%的情况下实现修复代码,并可以在不到一秒钟的时间内自动生成修复程序。
Mar, 2021
使用递归神经网络 (RNNs) 生成自动化反馈以修复编程任务中的语法错误,可以完全修复 31.69% 的提交并部分修正 6.39% 的提交。
Mar, 2016
通过挖掘 GitHub 上项目代码的变更历史记录,使用神经机器翻译技术进行修复漏洞的学习,设计并训练了一个 Encoder-Decoder 模型,可以在瞬间模仿各种不同的 AST 操作,并生成候选修复程序,可在实际环境中修复数以千计的独特故障方法,并预测出开发人员生成的固定补丁的 9-50%。
Dec, 2018
本文提出了一种基于程序 -- 反馈图的图神经网络及一种用非监督学习方法构建大量程序修复样例的自监督学习范式。最终应用的 DrRepair 算法在两个应用领域上都取得了比之前的工作更好的修复效果。
May, 2020
DeepDebug 是数据驱动的程序修复方法,其可以从 GitHub 代码库中挖掘的实际 Java 方法中学习检测和修复错误的方法。通过将错误修补构建为序列到序列的学习任务,它实现了两个步骤,即去噪预训练和有监督的微调。本方法显示出比以前的工作更好的异常检测能力,并且可以使用通用解析器进行语言无关的方法。
Apr, 2021
提出了一种基于程序执行轨迹学习的新型语义程序嵌入,相比于基于程序语法的嵌入,可以更准确地捕捉程序语义,并用于预测学生程序提交中的错误类型,并展示了通过该语义嵌入预测进行搜索的效率显著提高的结果。
Nov, 2017
下一代 AI 系统需要强有力的安全保证。本报告研究了神经网络和相关内存安全性质的软件实现,包括空指针引用、越界访问、double-free 和内存泄漏。我们旨在检测这些漏洞,并借助大型语言模型自动修复它们。为此,我们首先通过程序突变的自动化过程,将现有的神经网络代码数据集 NeuroCodeBench 的规模扩大到约 81k 个程序。然后,我们使用最先进的软件验证器 ESBMC 验证突变的神经网络实现的内存安全性。每当 ESBMC 发现漏洞时,我们会调用一个大型语言模型来修复源代码。在最新的任务中,我们比较了各种最先进的提示工程技术,以及重复调用大型语言模型的迭代方法的性能。
May, 2024