程序员危机:AI可以找出并解决代码中的bug
2023-04-24 来源:飞速影视
微软声称已经开发了一个人工智能系统,该系统99%的时间能正确区分安全性和非安全性软件错误,并且平均97%的时间能准确识别关键的、高优先级的安全性错误。在接下来的几个月里,它计划在GitHub上开源该方法,以及示例模型和其他资源。

这项工作表明,这样的系统可以用来支持人类专家,该系统接受了来自微软的47000个开发人员的1300万个工作项和bug的数据集的培训,这些bug来自微软的AzureDevOps和GitHub存储库中。Coralogix估计,开发人员每千行代码会出现70个错误,并且修复错误的时间比编写一行代码的时间长30倍;在美国,每年用于识别和修复产品缺陷的费用为1130亿美元。

微软表示,在设计模型的过程中,安全专家批准了培训数据,并使用统计抽样为这些专家提供了可管理的大量数据以供审核。然后,将数据编码成称为特征向量的表示形式,微软研究人员着手使用两步过程设计系统。首先,该模型学会了对安全和非安全性漏洞进行分类,然后学习了将严重性标签(关键、重要或影响较小)应用于安全性漏洞。
微软的模型利用两种技术来进行错误预测。第一种是术语频率逆文档频率算法(TF-IDF),这是一种信息检索方法,它根据单词在文档中出现的次数赋予单词重要性,并检查单词在整个标题集合中的相关性。微软表示,其错误标题通常很短,大约包含10个单词。第二种技术是逻辑回归模型,使用逻辑函数对特定类或事件存在的概率进行建模。

微软表示,该模型是在内部生产中部署的,并不断使用安全专家批准的数据对其进行重新培训,这些专家负责监控软件开发中产生的错误数量。
微软并不是唯一使用人工智能清除软件漏洞的技术巨头。亚马逊的CodeGuru服务部分接受了亚马逊内部开发的代码审查和应用程序的培训,发现了包括资源泄漏和CPU周期浪费在内的问题。至于Facebook,它开发了一个名为SapFix的工具,该工具可以在工程师批准之前将bug发送生成错误修复程序,另一个名为Zoncolan的工具可以映射代码库的行为和功能,并查找单个分支以及通过程序的各种路径的交互中的潜在问题。

每天,软件开发人员都盯着一长串需要解决的功能和错误。安全专家试图通过使用自动化工具来对安全漏洞进行优先级排序来提供帮助,但工程师经常会浪费时间在误报上或错过已被错误分类的关键安全漏洞。而通过将机器学习模型与安全专家配对,可以显着改善安全漏洞的识别和分类。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号