2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

英特尔开源 ControlFlag:可自主检测出代码中的 bug

  • 2021-10-26
  • 本文字数:1148 字

    阅读完需:约 4 分钟

英特尔开源ControlFlag:可自主检测出代码中的bug

近日,英特尔宣布开源 ControlFlag,这是其在去年 12 月推出的机器编程研究系统,它可以自主检测代码中的错误,帮助开发者进行耗时费力的 Debug。


GitHub 地址:https://github.com/IntelLabs/control-flag (ControlFlag 目前适用于 Linux 和 Mac OS,对 Windows 的支持正在努力中。)


ControlFlag 检测 Bug 的功能是通过机器编程实现的,其中融合了机器学习、形式化方法、编程语言、编译器和计算机系统。


具体来说,ControlFlag 通过被称为异常检测(anomaly detection)的功能进行运转。它通过学习经过验证的例子来检测正常的编程模式,发现代码中可能造成 Bug 的异常。此外,官方称不管代码使用什么编程语言,ControlFlag 都可以检测这些异常。


据了解,ControlFlag 的无监督模式识别方法的一个主要优势是,它可以从本质上学会适应开发者的风格。在有限的需要评估的控制工具输入信息中,ControlFlag 可以识别编程语言中的各种风格,类似于读者识别英语中使用完整单词和缩略语的差异。该工具会学会识别并标记这些风格选择,并根据其洞察可以自制错误识别和建议解决方案,从而让 ControlFlag 尽可能避免把两个开发团队之间的风格差异认为是代码错误。


英特尔实验室首席人工智能科学家 Justin Gottschlich 负责带领该工具的开发工作,他表示,自推出以来,ControlFlag 已在生产级软件和广泛使用的开源软件系统上进行了测试。


例如,2020 年 ControlFlag 曾发现 cURL 中的代码异常,cURL 是一个知名的开源项目,在全世界有超过 100 亿的安装,每天处理各种网络协议传输数据超过 10 亿次。“在我们向 cURL 团队报告异常后,他们认可 ControlFlag 的发现并随后修复了代码。”


Justin Gottschlich 还举例道,最近 ControlFlag 通过在专有生产级软件中识别数百个与内存和潜在系统崩溃错误相关的缺陷,取得了最先进的成果。此外,ControlFlag 在几个高质量的开源软件存储库中发现了数十个新的异常。到目前为止,每个异常都被开源维护者确认为是真的 bug,并已得到纠正。“这些令人兴奋的结果证明了 ControlFlag 能够显着提高成本和效率。”


英特尔认为 ControlFlag 可能会被嵌入到芯片中,作为抵御错误代码的最后一道防线,以提高数据通信通道的效率。但为此,人工智能系统需要成熟,并且必须可靠到调试过程可以自动化的程度。


但这还是一个比较长远的目标。Justin Gottschlich 在接受 TheRegister采访时表示,现在 ControlFlag 主要是应用在软件中。如果可以的话,团队很愿意构建更先进的系统或一些核心组件将它们“烧录”到硬件中,这对于机器学习来说是至关重要的。


Gottschlich 说,英特尔正在投入更多资源来长期开发 ControlFlag,但另一个挑战是弄清楚通信、机器学习和计算将如何发展。


延展阅读:


https://www.linkedin.com/pulse/newly-open-sourced-controlflag-identifies-hundreds-justin-gottschlich/

2021-10-26 18:263253
用户头像
罗燕珊 AI practitioner | Tech media

发布了 558 篇内容, 共 435.8 次阅读, 收获喜欢 864 次。

关注

评论

发布
暂无评论
发现更多内容

详解HDFS3.x新特性-纠删码

五分钟学大数据

hadoop hdfs

一文带你学会AQS和并发工具类的关系

比伯

Java 编程 架构 面试 计算机

读书笔记:《激荡三十年》下

lidaobing

28天写作 激荡三十年

五种IO模型

懒AI患者

io nio AIo bio IO多路复用

保姆级 tomcat 快速入门

田维常

tomcat源码解读

精选算法面试-数组III

李孟聊AI

面试 算法 数组 28天写作

聚焦目标,团队工作不再一盘散沙(下)

一笑

管理 目标管理 复盘 28天写作

从硅谷到小米,崔宝秋的25年开源人生

李忠良

28天写作

为什么印度不会成为世界工厂?

JiangX

印度 28天写作 世界工厂

IO和NIO的对比篇

Java架构师迁哥

Java并发编程实战(4)- 死锁

技术修行者

Java 并发编程 多线程 死锁

JavaScript03 - window对象的方法

Mr.Cactus

JavaScript

使用nodejs和express搭建http web服务

程序那些事

HTTP nodejs 异步IO 程序那些事 web服务

日语复习 Day02【~あっての】

IT蜗壳-Tango

程序员 七日更 日语语法

28天瞎写的第二百一九天:包辆三轮车上班的日子

树上

28天写作

想象力,科幻与其他「关于科幻 8/28」

道伟

28天写作

限时开放!阿里P8大师终于把这份微服务架构与实践第2版PDF分享出来了

Java 编程 程序员 微服务 架构师

JavaScript01 - 基础

Mr.Cactus

JavaScript

CMS系统——登录功能

程序员的时光

程序员 七日更 28天写作

创业失败启示录|校园微生活之留学生面对面

阿萌

28天写作 创业失败启示录 青城

也谈Python编码格式

ITCamel

Python 编码格式

Spring Boot 集成Thymeleaf模板引擎

武哥聊编程

Java springboot SpringBoot 2 thymeleaf 28天写作

JavaScript02 - js的引入方式

Mr.Cactus

JavaScript

【Mysql-InnoDB 系列】事务提交过程

程序员架构进阶

MySQL 架构 innodb 事务 28天写作

案例研究之聊聊 QLExpress 源码 (七)

小诚信驿站

聊聊架构 规则引擎 28天写作 QLExpress源码 聊聊源码

JavaScript05 - JavaScript数据类型

Mr.Cactus

JavaScript

正则表达式匹配ini文件的section

老王同学

Python列表对象入门

赵开忠

28天写作

自动驾驶分级,小白能理解的那种(28天写作 Day8/28)

mtfelix

自动驾驶 28天写作

JavaScript04 - JavaScript语法

Mr.Cactus

JavaScript

坚持写作靠什么?

石君

输入 输出 28天写作

英特尔开源ControlFlag:可自主检测出代码中的bug_AI&大模型_罗燕珊_InfoQ精选文章