使用机器学习模型并发漏洞
本文综述了机器学习、编程语言和软件工程交叉领域的研究进展,重点介绍了利用代码中大量存在的模式提出可学习概率模型的方法,并提出了基于每个模型的基本设计原理的分类法,用于研究该领域的技术、应用等方面的具体问题、挑战和机遇。
Sep, 2017
利用机器学习和深度神经网络,针对C++程序开发了一种基于数据驱动的漏洞检测方法,研究结果表明结合源代码和神经网络特征,可以获得更可靠的漏洞检测结果,最高检测能力达到0.87。
Feb, 2018
本文旨在总结如何应用机器学习技术进行源代码分析的最新研究动态,并回顾12类软件工程任务及相应的机器学习技术、工具和数据集。在文献调研的基础上,文章总结了研究观察和发现,并总结了每个任务的通用步骤、机器学习技术和可用数据集和工具,并讨论了这一领域面临的各种挑战。
Oct, 2021
该研究通过挖掘Stack Overflow上的Python ML库相关的11,449个堆栈跟踪,派生了包括Python基本语法、模型训练、并行化、数据转换及子进程调用在内五个高级类别和25个低级类型,其中子进程调用、外部模块执行和远程API调用等模式最不可能在SO上获得被接受的答案,该报告为研究人员、ML库提供商和ML应用程序开发人员改进其ML库和应用程序的质量提供了有益的见解。
Apr, 2023
在这篇论文中,我们调查了ML-based软件系统中的bug特征以及与非ML bug相比的维护视角的差异,我们提取了使用TensorFlow、Keras和PyTorch这三种最流行的ML框架的447,948个GitHub存储库,然后通过多次过滤选择了具有最多已关闭问题的前300个存储库,并通过对386个抽样报告的问题进行手动检查,我们的研究发现,近一半的ML-based系统中报告的真实问题是ML bug,表明与非ML组件相比,ML组件更容易出错,因此在ML-based系统中,关注ML组件的可靠性非常重要。
Jul, 2023
草案提出了BugFarm,用于将任意代码转化为多个复杂的错误。BugFarm利用LLM(语言模型)在多个位置(难以修复)突变代码。为了确保多个修改不会显着改变代码的表示,BugFarm分析了底层模型的注意力,并指示LLMs仅更改注意力最低的位置(难以检测)。我们对BugFarm生成的320k+错误进行了全面评估,这些错误是通过学习型错误预测方法难以检测到的,并且通过SOTA(优秀的)学习型程序修复技术难以修复的。
Oct, 2023
本文介绍了两种基于人工智能的方法,即单个人工智能模型和集成人工智能模型的效果比较和分析,用于预测Java类存在错误的概率。实验结果表明,集成人工智能模型的性能优于单个人工智能模型,同时揭示了提升集成人工智能模型性能的因素,这为提高错误预测结果的可靠性提供了潜力。
Oct, 2023
通过提取高维嵌入并评分人工样本相对于最接近的真实世界样本的距离,我们展示了在基于代码的两个流行预训练模型上训练仅包含表示最相似样本且舍弃与表示完全不相似样本的方法对两个代码理解任务取得了一致的改进。
Nov, 2023
通过解释性工具、关注分析和交互矩阵分析,我们发现预训练语言模型对于潜在脆弱语句的关联性表现更好,但其对于脆弱路径的关联性较弱甚至没有,基于我们的分析,我们开发了两种突出模型输入中含有错误语义的注释方法,实验结果显示与传统微调相比,在大多数情况下我们的注释方法能够提高模型性能,并使模型与潜在脆弱语句的关联性提高高达232%,这表明提供模型有关错误语义的信息是有帮助的并且激发了后续针对学习更复杂基于路径的错误语义的研究。
Nov, 2023
探索大型语言模型(LLMs)在检测和提供对逻辑错误的新手友好解释方面的性能,结合学生和模型响应的混合方法分析,观察到LLMs在逻辑错误识别方面的显著改进,认为两代LLMs在性能上显著优于学生。我们提出了如何将这些模型整合到计算机教育工具中,并讨论它们在支持学生学习编程方面的潜力。
Nov, 2023