微软开发可以在代码中发现错误的人工智能

阅读时间图标 2分钟读


读者帮助支持 MSpoweruser。如果您通过我们的链接购买,我们可能会获得佣金。 工具提示图标

阅读我们的披露页面,了解如何帮助 MSPoweruser 维持编辑团队 查看更多

微软的研究人员开发了一种人工智能,可以发现代码中的错误,帮助开发人员更准确、更有效地调试他们的应用程序。

首席研究员 Miltos Allamanis 和高级首席研究经理 Marc Brockschmidt 开发了他们的人工智能 BugLabs,其方式与创建生成对抗网络 (GAN) 的方式大致相同。

微软设置了两个相互对抗的网络——一个旨在将错误小错误引入现有代码,另一个旨在发现这些错误。 这两个网络变得越来越好,从而产生了一个擅长识别隐藏在真实代码中的错误的人工智能。

这种方法的优点是该过程是完全自我监督的,不需要标记数据。

他们报告结果如下:

理论上,我们可以广泛应用捉迷藏游戏,教机器识别任意复杂的错误。 但是,这些错误仍然超出了现代 AI 方法的范围。 相反,我们专注于一组常见的错误。 这些包括不正确的比较(例如,使用“<=”而不是“<”或“>”),不正确的布尔运算符(例如,使用“and”而不是“or”,反之亦然),变量误用(例如,错误地使用“i”而不是“j”)和其他一些。 为了测试我们的系统,我们专注于 Python 代码。

一旦我们的检测器经过训练,我们就可以使用它来检测和修复实际代码中的错误。 为了衡量性能,我们用此类错误手动注释 Python 包索引中的包中的一个小错误数据集,并表明使用我们的“捉迷藏”方法训练的模型与其他替代方法相比提高了 30%,例如,用随机插入的错误训练的检测器。 结果很有希望,表明大约 26% 的错误可以被自动发现和修复。 在我们的检测器发现的错误中,有 19 个以前未知的现实生活开源 GitHub 代码中的错误。 然而,结果也显示出许多误报警告,这表明在实际部署此类模型之前需要进一步的改进。

他们得出的结论是,他们的方法是有前途的,尽管当然需要做更多的工作才能使这种检测器在实际使用中可靠。 给定 微软在 GitHub 上的 GPT-3 工作 然而,这项工作很有可能最终被商业化。

阅读他们的全文 点击此处.

有关主题的更多信息: ai, 开发, 微软