微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误「建议收藏」

(30) 2023-07-30 10:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误「建议收藏」,希望能够帮助你!!!。

微软创建了一个 AI 错误检测器,它可以学习寻找和修复错误,而无需接受来自真实错误数据的训练。

微软的研究人员一直在研究深度学习模型,该模型经过训练可以找到软件错误,而无需从中学习任何real-world bugs。

虽然有数十种工具可用于对各种语言的代码进行静态分析以查找安全漏洞,但研究人员一直在探索使用机器学习来提高检测缺陷和修复缺陷能力的技术。这是因为查找和修复代码中的错误可能既困难又昂贵,即使使用 AI 来查找它们也是如此。

微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误「建议收藏」_https://bianchenghao6.com/blog__第1张

微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误

英国剑桥大学微软研究院的研究人员详细介绍了他们在 BugLab 上的工作,BugLab 是“一种自监督学习错误检测和修复方法”的 Python 实现。它是“自我监督”的,因为 BugLab 背后的两个模型是在没有标记数据的情况下训练的。

这种不训练的野心是由于缺乏带注释的real-world bugs训练错误发现深度学习模型。虽然有大量源代码可用于此类培训,但大部分都没有注释。

BugLab 旨在发现难以检测的错误以及通过传统程序分析已经发现的关键bug。他们的方法有望避免手动编码模型以查找这些bug的昂贵过程。

微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误「建议收藏」_https://bianchenghao6.com/blog__第2张

该组织声称在 PyPI 的来源 Python package中发现了 19个以前未知的bug

该组织声称在 PyPI 的来源 Python package中发现了 19个以前未知的bug,如本周在神经信息处理系统 (NeurIPS) 2021 会议上发表的论文“自我监督错误检测和修复”中所述。

微软研究院首席研究员 Miltos Allamanis 和微软高级首席研究经理 Marc Brockschmidt 解释说: “BugLab can be taught to detect and fix bugs, without using labelled data, through a "hide and seek" game,” 两人都是该论文的作者。

除了对一段代码的结构进行推理之外,他们认为可以“通过理解软件开发人员在代码注释、变量名称等中留下的模糊自然语言提示”来发现bug。

他们在 BugLab 中的方法使用两个相互竞争的模型,建立在该领域现有的使用深度学习、计算机视觉和自然语言处理 (NLP) 的自监督学习工作之上。它还类似于或“受”GAN 或生成对抗网络的“启发”——神经网络有时用于创建深度伪造。

“在我们的案例中,我们的目标是在不使用来自真实错误的训练数据的情况下训练bug检测模型,”他们在论文中指出。

BugLab 的两个模型包括bug选择器和bug检测器:“给定一些现有代码,假定是正确的,bug选择器模型决定它是否应该引入一个bug,在哪里引入它,以及它的确切形式(例如,替换一个特定的” +" 和 "-"。给定选择器选项,代码被编辑以引入bug。然后,另一个模型,bug检测器,尝试确定代码中是否引入了bug,如果是,则定位它,并修复它。”

他们的模型不是 GAN,因为 BugLab 的“错误选择器不会从头开始生成新的代码片段,而是重写现有的一段代码(假设是正确的)。”

微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误「建议收藏」_https://bianchenghao6.com/blog__第3张

微软研究人员:我们已经训练 AI 使用hide-and-seek来查找软件错误

研究人员测试的 2374 个真实 Python package bug数据集来看,他们表明可以自动发现和修复 26% 的bug。

然而,他们的技术也标记了太多的误报,或者实际上不是bug的bug。例如,虽然它检测到一些已知的bug,但在 BugHub 报告的 1000 条警告中,只有 19 条是真实的bug。

在不使用真正的bug训练数据的情况下训练神经网络听起来像是一个难以激活成功教程的难题。例如,一些bug显然不是bug,但被神经模型标记为bug。

他们在论文中指出:“一些报告的问题非常复杂,以至于我们(人类作者)花了几分钟的时间才得出结论,警告是虚假的。”

“同时,有一些警告对我们来说‘显然’是错误的,但神经模型提出警告的原因尚不清楚。”

微软显然已经在最新的Windows11系统开发中使用了这一先进的AI算法进行bug检测,所以才发布了一个bug众多的系统。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复