用分级变压器捕捉代码上下文预测行级缺陷
DeepDebug 是数据驱动的程序修复方法,其可以从 GitHub 代码库中挖掘的实际 Java 方法中学习检测和修复错误的方法。通过将错误修补构建为序列到序列的学习任务,它实现了两个步骤,即去噪预训练和有监督的微调。本方法显示出比以前的工作更好的异常检测能力,并且可以使用通用解析器进行语言无关的方法。
Apr, 2021
本文提出了一种基于深度学习的方法,通过自然语言处理技术,从 LLVM IR 表示中检测源代码漏洞,并使用层次化处理方法,检测源代码中漏洞所在的代码行,经过在 NVD 和 SARD 中的真实和合成代码的广泛实验,实现了高达 98%的检测准确率。
Nov, 2022
本文提出一种基于 CodeBERT 的自动化程序修复方法,使用 ManySStuBs4J 小和大数据集对模型进行微调,能够准确地预测开发人员在 19-72%的情况下实现修复代码,并可以在不到一秒钟的时间内自动生成修复程序。
Mar, 2021
使用 CodeBERT 自动为 Java 代码分配质量评分,同时探索不同模型和训练范式对于代码质量评估的准确性,并使用新颖数据集评估预测的质量,发现基于 Transformer 模型的任务适应预训练方法比其他技术更高效地解决该任务。
Sep, 2023
BugLab 是一种基于机器学习的、自监督学习为主的程序分析方法,通过两个模型共同训练,可以有效地发现和修复代码中的错误,提高了 2374 个真实缺陷数据集的检测和修复准确度,同时发现了 19 个以前未知的错误。
May, 2021
本文介绍了一种基于 DeepBugs 的学习方法,结合了自然语言元素和语义表示进行代码中的错误检测,并通过简单的代码转换生成了可能的错误代码示例,应用该方法到 150,000 个 JavaScript 文件中,获得了高准确率的错误检测结果。
Apr, 2018
大型语言模型能够通过代码生成和理解任务进行细粒度调整,而上下文学习技术在缺陷检测和修补中表现出色。本论文提出了代码对分类任务,其中模型接收有缺陷和无缺陷版本的代码对,从中识别出有缺陷的版本。实验证明,与判断代码片段中是否存在缺陷及其位置相比,大型语言模型更容易识别出有缺陷的代码对。
Nov, 2023
本研究提出了一种新的深度学习框架 LineVD,通过图神经网络和基于 Transformer 的模型识别程序的特定代码行,取得了 105%的 F1 得分提高,扩展了现有方法在软件漏洞检测方面的应用。
Mar, 2022
提出了一种基于预训练编程语言模型 CodeT5 的新型统一 “Detect-Localize-Repair” 框架 CodeT5-DLR,它包括三个目标,即 bug 检测、定位和程序修复,并在 Java 和 Python 的两个新收集的行级调试数据集上进行了评估。结果表明,该模型在 NLP 和软件工程领域的现有基线上显著优于其他机器学习方法。
Nov, 2022