去年,英特尔推出了一个基于机器学习的代码检测工具 ControlFlag
,可以帮助开发者发现代码中的错误,减少调试应用程序和软件所需的时间。英特尔在用超过 10 亿行的代码对 ControlFlag 进行训练后取得令人印象深刻的结果,ControlFlag 在已达到 "生产质量" 的软件中发现了数百个错误,证明了其在代码检测方面的实用性。而且在去年年底,英特尔就已将该工具部署至公司内部,用于检查从固件到软件应用的代码库。
如今时隔一年时间,英特尔又带来了有关 ControlFlag 的新消息,现在英特尔将 ControlFlag 正式开源 ,以帮助更多开发者自主检测代码错误。
ControlFlag 适用于任何包含控制结构的编程语言(如 C/C++),旨在通过利用无监督的学习方式减少调试工作。通过无监督学习,一个算法被置于 "未知" 数据中,ControlFlag 能够自己对数据进行分类、处理未标记的数据,并从其固有的结构中学习。
ControlFlag 能够不断地从未标记的源代码中学习,随着新数据的引入而 "进化",使自己变得更好。虽然它还不能自动解决它所发现的代码错误,但该工具可以为开发人员提供了潜在的修改建议。
英特尔首席 AI 科学家 Justin Gottschlich表示:“英特尔致力于使软件更加强大,维护起来不那么麻烦,同时在不引入安全漏洞的情况下保留出色的性能。我们希望像 ControlFlag 这样的项目能够在全球范围内大幅减少开发软件的时间,由于开发者通常会在调试上耗费过多的时间,因此在这个领域中哪怕是节省一点点时间,也能创造巨大的效益,从而加速技术的进步。”
ControlFlag 的相关代码已托管至 GitHub 平台。感兴趣的开发者可以尝试用它来检查一下自己开发的项目,看看是否能提升开发效率。