0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

再也不需要debug?Facebook开发的AI工具帮你搞定

电子工程师 来源:未知 作者:李倩 2018-09-16 10:42 次阅读

“如果 Facebook 没有 AI,那它将失去根基。”去年@Scale软件工程大会上,Facebook AML 实验室负责人 Joaquin Candela 在演讲中坦露。

Scale,顾名思义,即规模化设计 AI。由 Joaquin Candela 领导的 AML 实验室主要负责的,就是将 AI 应用在 Facebook 的各种产品上。值得一提的是,Facebook 另一支由 Yann LeCun 领导的 FAIR 实验室,更专注于 AI 的基础研究。两支队伍相辅相成,共同推动着 AI 在 Facebook的发展和应用。如今,Facebook 利用 AI 再推新款代码调试工具SapFix。

近日,在加州旧金山湾区的圣何塞举办的 Facebook @Scale 2018 大会上,Facebook 宣布了它的新款工具 SapFix,可针对特定的 bug 自动生成修复程序,然后将其提交给工程师,经确认之后,然后再部署到生产环境中。相比其一年前已投入大规模使用的智能自动化软件测试工具 Sapienz,SapFix 能够在没有 Sapienz 的情况下运行,主要用于修复 Sapienz 在生产前发现的程序 bug。不过,目前SapFix 仍在开发阶段。

▌SapFix 是如何 debug 的呢?

从发现 bug 到修复 bug,Facebook 有一套完整的流程:首先 Sapienz 以及 Facebook 的静态分析工具 Infer,会帮助定位代码中需要修补的点;一旦 Sapienz 和 Infer 精确定位与崩溃相关的特定代码部分之后,就会将该信息传递给 SapFix;最后,SapFix 会参考几种不同的策略,自动生成补丁。

SapFix如何为软件bug生成补丁

为了解决高触发错误,SapFix 会创建修补程序,该修补程序可以完全或部分恢复原来提交的代码。对于更复杂的崩溃错误,SapFix 系统会通过根据模板修复集合中来生成补丁。这些模板是从人类工程师基于过去的修复库创建的模板中自动获取的。

当人类设计的模板不适合时,SapFix 将尝试基于突变的修复,从而对导致崩溃的语句的抽象语法树(AST)执行小的代码修改,对补丁进行调整,直到找到潜在的解决方案。

▌自主验证和人工审核

找到特定的补丁,并不意味着 SapFix 的工作已经结束。SapFix 会针对每个 bug 生成多个可能的修复程序,然后通过下面三个问题来评估他们的质量:

是否存在编译错误?

崩溃是否依然存在?

修复程序是否引入新的崩溃?

为了解决以上后两个问题,SapFix 会在修补后的版本上运行现有的开发人员编写的以及 Sapienz 创建的测试程序。和前面的补丁生成步骤一样,这个验证过程是自主进行的,而且会与更大的代码库隔离开来。这个过程相当于人们目前所做的调试工作,但是它并不是为了自己将修复程序部署到生产代码中。

当修补程序经过全面测试之后,SapFix 会将它们发送给人类审查者进行审核。这非常类似于人工生成的报告由其他开发人员检查和批准的方式,除了系统自动跟踪审阅者的反馈外,它还会接受经批准的补丁,然后清理其他补丁。在某些情况下,SapFix 可以从几个选项中选择最佳解决方案,并向工程师提出建议。

SapFix如何基于生成的补丁寻求工程师的反馈

虽然 SapFix 还不能自己部署自己提出的修复方案,但它帮助工程师节省了大量的时间和精力,且具备很大的技术潜力。

根据 Facebook 的数据,Sapienz 报告的大约四分之三的错误都需要开发者来修复。自 Facebook 今年 8 月开始测试 SapFix 之后,该工具已经成功生成了被人类审核者接受并部署于生产的补丁。

▌写在最后

据 Facebook 的开发人员称,“这标志着机器生成的修复程序(具有自动端到端测试和修复)首次被部署到 Facebook 规模的代码库中。这是 AI 与人类工程师结合的一个重要里程碑。SapFix 的成功也表明基于搜索的软件工程可以减少软件开发中的阻碍。”

作为可以处理不同类型的错误和软件的工具, SapFix 有可能改变代码生成的速度和质量。该款工具不仅适用于大规模运营的公司,也适用于需要编程的个人或小公司。无论是一起使用还是单独使用, SapFix 和 Sapienz 都可以让开发人员花更少的时间进行调试。

接下来,Facebook团队将与工程社区分享 SapFix,因为这是自动化调试发展的下一步,有为广泛的公司和研究组织提高新代码的生产和稳定性的巨大潜力。

此次@Scale 2018 大会上,除了公布 SapFix 外,Facebook 还宣布了与顶级芯片制造商的合作,包括Cadence、Esperanto、Intel、 Marvell、高通,它们承诺将在未来芯片产品的制造上提供支持 Facebook 机器学习编辑器 Glow 的解决方案。这反映出 Facebook 正诉诸于利用社区推进其围绕自身机器学习软件重新定位计算硬件生态系统的战略,而这也有助于合作伙伴快速设计和优化新款芯片产品在人工智能和机器学习上的能力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Facebook
    +关注

    关注

    3

    文章

    1429

    浏览量

    54658
  • 人工智能
    +关注

    关注

    1791

    文章

    46896

    浏览量

    237660
  • DEBUG
    +关注

    关注

    3

    文章

    90

    浏览量

    19888

原文标题:@程序员,终于可以放心写bug了!Facebook的debug神器你值得拥有

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    不需要License不需要烧录器,板卡集成下载器和调试功能,盘古PGX-Lite 7K开发

    不需要License不需要烧录器,板卡集成下载器和调试功能,盘古PGX-Lite 7K开发板,紫光同创Compa系类低功耗CPLD,基于PGC7KD-6IMBG256,轻松掌握国产FPGA操作
    发表于 03-08 13:51

    转: DIY微信直连台灯(不需要自己搭建服务器)

    微信直连控制台灯(不需要自己搭建服务器)再也不用下床去关灯了。{:12:}
    发表于 07-21 13:59

    万用表、示波器、热风枪、这些开发工具一天搞定

    万用表、示波器、热风枪、这些开发工具一天搞定再也不会把事件浪费在不会使用工具上了
    发表于 07-13 17:38

    一张图读懂阿里巴巴一站式研发协同云——云效

    工具支撑,助力企业快速创新迭代和研发效能升级,帮你通通全搞定,Boss再也不用担心我没法如期交付啦!点此查看原文:[url=]http://click.aliyun.com/m/413
    发表于 01-31 14:32

    如何搞定树莓派AI服务开发

    微软专家教你,如何搞定树莓派 AI 服务开发
    发表于 05-29 06:00

    请问Nuclei studio 2022版本是不是不需要HBird SDk环境配置与工具链安装了?

    Nuclei studio 2022.2版本是不是不需要HBird SDk环境配置与工具链安装了,还是说新版需要装什么不需要装什么,急!(windows和Linux如果不一样的话能分别
    发表于 08-12 07:49

    不需要场效应管的多路传输开关

    不需要场效应管的多路传输开关
    发表于 04-13 10:44 895次阅读
    <b class='flag-5'>不需要</b>场效应管的多路传输开关

    苹果做GPU的5大猜想:iPhone 8、AR…

    苹果已经通知英国芯片设计商Imagination Technologies,iPhone和iPad的GPU再也不需要它生产了。
    发表于 04-05 09:06 415次阅读

    OPPO陈明永:AI不需要被神化,到头来还是要满足用户的核心需求

    在今天举行的“高通中国技术与合作峰会”上,OPPO CEO陈明永表示,AI不需要被神化,到头来还是要满足用户的核心需求。国际市场不能蜻蜓点水,要深耕。
    的头像 发表于 01-29 14:52 3707次阅读

    再也不想等等等了...

    科技有限公司上线超级“钱”台,打造一种基于脸部识别系统的支付方式,该方式不需要钱包、信用卡或手机,支付时只需要面对机器屏幕上的摄像头,系统会自动将消费者面部信息与个人账户相关联,耗时仅需短短几秒,整个交易过程十分便捷。  有了超级“钱”台,
    发表于 11-23 14:47 269次阅读

    NBIoT智能门锁,真正不需要网关的智能门锁

    智能门锁相信大家都已经很熟悉了,但是不需要网关,还可以远程控制的智能门锁,你们有见过吗?NBIoT智能门锁,真的不需要网关了。NBIoT智能门锁与普通智能门锁有什么区别?NBIoT智能门锁到底好在
    的头像 发表于 06-22 10:15 8253次阅读

    不需要电感器

    不需要电感器
    发表于 04-29 12:14 3次下载
    <b class='flag-5'>不需要</b>电感器

    对讲机到底需不需要中继台?

    有不少网友都想了解下,对讲机到底需不需要中继台?其实这主要还是看对讲机的使用场景了。
    的头像 发表于 03-15 15:58 2772次阅读
    对讲机到底需<b class='flag-5'>不需要</b>中继台?

    网线那几根线不需要

    在网线中,哪几根线不需要接主要取决于网络的需求和类型。一般来说,在百兆网络中,通常只需要用到其中的四根线,即第1、第2、第3、第6根线,它们分别承担着数据的发送和接收功能。这四根线在网线中的颜色
    的头像 发表于 09-04 09:40 1307次阅读

    C语言为什么不需要包含stdio.h

    我们在写单片机程序的时候,第一行都会包含 reg51.h,于是就有同学提出了疑问,为什么不需要包含 stdio.h?
    的头像 发表于 10-29 15:48 237次阅读