智东西(公众号:zhidxcom)
编译 | 程茜
编辑 | 李水青
【数百个缺陷被识别!英特尔开源机器编程工具ControlFlag】智东西10月21日消息 , 英特尔近日开源了机器编程工具ControlFlag , 这是一种使用机器学习来检测计算机代码问题的工具 。 理想情况下 , ControlFlag的应用可以减少调试应用程序和软件所需的时间 。
在测试中 , 英特尔的机器编程研究团队表示 , ControlFlag在专有的“生产质量(production-quality)”软件中发现了数百个缺陷 , 证明了它的实用性 。
机器编程工具ControlFlag可通过https://github.com/IntelLabs/control-flag下载 。
一、意图、发明、适应 , 英特尔机器编程三大支柱
英特尔机器编程研究团队(MPR)的历史可以追溯到2017年 。 从那时起 , 英特尔就已经开始着手 , 构建新颖的机器编程(MP)系统 , 如ControlFlag , 这些系统有助于改进代码调试或自动提取性能 。
英特尔实验室的首席人工智能科学家兼机器编程研究总监和创始人Justin Gottschlich表示 , 研究小组的第一个目标是将开发软件所需的总时间减少1,000倍 。 例如 , 今天可能需要三年才能完成的事情 , 在未来一天内就可以用机器编程系统完成 。 除了提高软件开发生产力之外 , 第二个目标是确保机器编程系统在合成新软件时保持特定的质量特征 , 如准确率、性能、安全性和可维护性等特征 。
目前 , 几乎所有大型软件在准确性、性能或安全方面都存在漏洞 。 一些留存时间久 , 无法被专家程序员检测到的错误可以通过机器编程自动检测 , 并实现零人工干预 。 此外 , 随着软件在不断增加新功能 , 软件更新会使得引入错误的可能性增加并出现问题 。
值得注意的是 , 某些错误会存在潜在的安全漏洞 , 造成损失数百万美元的灾难性后果 。
“机器编程的三大支柱”是英特尔机器编程研究的关键:
第一个支柱是意图 , 旨在发现编程的意图 , 从软件中提升意义 , 确定人类向机器表达想法的新方式 。
第二个支柱是发明 , 创建新的算法和数据结构来实现意图 , 涉及创建或改进算法核心硬件和软件构建块 , 使用各种机器编程技术实现一些已知的意图 。
第三个支柱是适应 , 在不断变化的硬件、软件世界中发展软件 , 自主地演变软件特定生态系统 , 协助计算后端进展 。 自适应系统主要用于帮助识别和改进软件质量特性 , 例如性能、安全性和可维护性 。
从三大支柱的角度来看 , ControlFlag集中落在了适应支柱 , 它试图找到软件编码异常 。 虽然ControlFlag还不能自动减轻它发现的缺陷 , 但它会为用户提供潜在更正的建议 。
二、从英特尔自用到开源 , 测试近一年
正式开源前 , ControlFlag已在生产级软件和广泛使用的开源软件系统上进行了测试 。
例如去年 , ControlFlag发现了客户端URL(Client URL , cURL)中的代码异常 。 客户端URL是一个计算机软件项目 , 每天使用各种网络协议传输数据超过10亿次 。 在向客户端URL团队报告异常后 , 他们认可了ControlFlag的发现并随后修补了代码 。
▲ControlFlag使用界面(动图截自视频网站)
ControlFlag于2020年12月首次推出 , 但在开源之前仅在英特尔内部使用 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
