提出了一种基于预训练编程语言模型 CodeT5 的新型统一 “Detect-Localize-Repair” 框架 CodeT5-DLR,它包括三个目标,即 bug 检测、定位和程序修复,并在 Java 和 Python 的两个新收集的行级调试数据集上进行了评估。结果表明,该模型在 NLP 和软件工程领域的现有基线上显著优于其他机器学习方法。
Nov, 2022
通过使用语义修复的统计模型和神经网络,我们的研究成功地预测代码中的错误位置,并将其修复,从而提高了修复的准确性。
Oct, 2017
下一代 AI 系统需要强有力的安全保证。本报告研究了神经网络和相关内存安全性质的软件实现,包括空指针引用、越界访问、double-free 和内存泄漏。我们旨在检测这些漏洞,并借助大型语言模型自动修复它们。为此,我们首先通过程序突变的自动化过程,将现有的神经网络代码数据集 NeuroCodeBench 的规模扩大到约 81k 个程序。然后,我们使用最先进的软件验证器 ESBMC 验证突变的神经网络实现的内存安全性。每当 ESBMC 发现漏洞时,我们会调用一个大型语言模型来修复源代码。在最新的任务中,我们比较了各种最先进的提示工程技术,以及重复调用大型语言模型的迭代方法的性能。
May, 2024
BugLab 是一种基于机器学习的、自监督学习为主的程序分析方法,通过两个模型共同训练,可以有效地发现和修复代码中的错误,提高了 2374 个真实缺陷数据集的检测和修复准确度,同时发现了 19 个以前未知的错误。
May, 2021
本文提出了一种基于程序 -- 反馈图的图神经网络及一种用非监督学习方法构建大量程序修复样例的自监督学习范式。最终应用的 DrRepair 算法在两个应用领域上都取得了比之前的工作更好的修复效果。
May, 2020
本文提出了一种通过基于深度学习层的可执行语义来自动修复神经网络错误的方法,该方法专注于四种实践中常见的错误类型,并通过实验验证了该方法的有效性和高效性。
Jun, 2023
通过挖掘 GitHub 上项目代码的变更历史记录,使用神经机器翻译技术进行修复漏洞的学习,设计并训练了一个 Encoder-Decoder 模型,可以在瞬间模仿各种不同的 AST 操作,并生成候选修复程序,可在实际环境中修复数以千计的独特故障方法,并预测出开发人员生成的固定补丁的 9-50%。
Dec, 2018
本文提出一种基于 CodeBERT 的自动化程序修复方法,使用 ManySStuBs4J 小和大数据集对模型进行微调,能够准确地预测开发人员在 19-72%的情况下实现修复代码,并可以在不到一秒钟的时间内自动生成修复程序。
Mar, 2021
提出了一种基于因果推理的神经网络修复技术 CARE,该技术可以有效地修复神经网络,使其满足公平性、安全性等性质,平均提高了 61.91% 的公平性,并将攻击成功率从 98% 以上降至 1% 以下。
Apr, 2022
提出了一种基于程序执行轨迹学习的新型语义程序嵌入,相比于基于程序语法的嵌入,可以更准确地捕捉程序语义,并用于预测学生程序提交中的错误类型,并展示了通过该语义嵌入预测进行搜索的效率显著提高的结果。
Nov, 2017