0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

再也不需要debug?Facebook開發(fā)的AI工具幫你搞定

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-09-16 10:42 ? 次閱讀

“如果 Facebook 沒有 AI,那它將失去根基?!比ツ闌Scale軟件工程大會上,F(xiàn)acebook AML 實(shí)驗(yàn)室負(fù)責(zé)人 Joaquin Candela 在演講中坦露。

Scale,顧名思義,即規(guī)模化設(shè)計(jì) AI。由 Joaquin Candela 領(lǐng)導(dǎo)的 AML 實(shí)驗(yàn)室主要負(fù)責(zé)的,就是將 AI 應(yīng)用在 Facebook 的各種產(chǎn)品上。值得一提的是,F(xiàn)acebook 另一支由 Yann LeCun 領(lǐng)導(dǎo)的 FAIR 實(shí)驗(yàn)室,更專注于 AI 的基礎(chǔ)研究。兩支隊(duì)伍相輔相成,共同推動著 AI 在 Facebook的發(fā)展和應(yīng)用。如今,F(xiàn)acebook 利用 AI 再推新款代碼調(diào)試工具SapFix。

近日,在加州舊金山灣區(qū)的圣何塞舉辦的 Facebook @Scale 2018 大會上,F(xiàn)acebook 宣布了它的新款工具 SapFix,可針對特定的 bug 自動生成修復(fù)程序,然后將其提交給工程師,經(jīng)確認(rèn)之后,然后再部署到生產(chǎn)環(huán)境中。相比其一年前已投入大規(guī)模使用的智能自動化軟件測試工具 Sapienz,SapFix 能夠在沒有 Sapienz 的情況下運(yùn)行,主要用于修復(fù) Sapienz 在生產(chǎn)前發(fā)現(xiàn)的程序 bug。不過,目前SapFix 仍在開發(fā)階段。

▌SapFix 是如何 debug 的呢?

從發(fā)現(xiàn) bug 到修復(fù) bug,F(xiàn)acebook 有一套完整的流程:首先 Sapienz 以及 Facebook 的靜態(tài)分析工具 Infer,會幫助定位代碼中需要修補(bǔ)的點(diǎn);一旦 Sapienz 和 Infer 精確定位與崩潰相關(guān)的特定代碼部分之后,就會將該信息傳遞給 SapFix;最后,SapFix 會參考幾種不同的策略,自動生成補(bǔ)丁。

SapFix如何為軟件bug生成補(bǔ)丁

為了解決高觸發(fā)錯誤,SapFix 會創(chuàng)建修補(bǔ)程序,該修補(bǔ)程序可以完全或部分恢復(fù)原來提交的代碼。對于更復(fù)雜的崩潰錯誤,SapFix 系統(tǒng)會通過根據(jù)模板修復(fù)集合中來生成補(bǔ)丁。這些模板是從人類工程師基于過去的修復(fù)庫創(chuàng)建的模板中自動獲取的。

當(dāng)人類設(shè)計(jì)的模板不適合時,SapFix 將嘗試基于突變的修復(fù),從而對導(dǎo)致崩潰的語句的抽象語法樹(AST)執(zhí)行小的代碼修改,對補(bǔ)丁進(jìn)行調(diào)整,直到找到潛在的解決方案。

▌自主驗(yàn)證和人工審核

找到特定的補(bǔ)丁,并不意味著 SapFix 的工作已經(jīng)結(jié)束。SapFix 會針對每個 bug 生成多個可能的修復(fù)程序,然后通過下面三個問題來評估他們的質(zhì)量:

是否存在編譯錯誤?

崩潰是否依然存在?

修復(fù)程序是否引入新的崩潰?

為了解決以上后兩個問題,SapFix 會在修補(bǔ)后的版本上運(yùn)行現(xiàn)有的開發(fā)人員編寫的以及 Sapienz 創(chuàng)建的測試程序。和前面的補(bǔ)丁生成步驟一樣,這個驗(yàn)證過程是自主進(jìn)行的,而且會與更大的代碼庫隔離開來。這個過程相當(dāng)于人們目前所做的調(diào)試工作,但是它并不是為了自己將修復(fù)程序部署到生產(chǎn)代碼中。

當(dāng)修補(bǔ)程序經(jīng)過全面測試之后,SapFix 會將它們發(fā)送給人類審查者進(jìn)行審核。這非常類似于人工生成的報(bào)告由其他開發(fā)人員檢查和批準(zhǔn)的方式,除了系統(tǒng)自動跟蹤審閱者的反饋外,它還會接受經(jīng)批準(zhǔn)的補(bǔ)丁,然后清理其他補(bǔ)丁。在某些情況下,SapFix 可以從幾個選項(xiàng)中選擇最佳解決方案,并向工程師提出建議。

SapFix如何基于生成的補(bǔ)丁尋求工程師的反饋

雖然 SapFix 還不能自己部署自己提出的修復(fù)方案,但它幫助工程師節(jié)省了大量的時間和精力,且具備很大的技術(shù)潛力。

根據(jù) Facebook 的數(shù)據(jù),Sapienz 報(bào)告的大約四分之三的錯誤都需要開發(fā)者來修復(fù)。自 Facebook 今年 8 月開始測試 SapFix 之后,該工具已經(jīng)成功生成了被人類審核者接受并部署于生產(chǎn)的補(bǔ)丁。

▌寫在最后

據(jù) Facebook 的開發(fā)人員稱,“這標(biāo)志著機(jī)器生成的修復(fù)程序(具有自動端到端測試和修復(fù))首次被部署到 Facebook 規(guī)模的代碼庫中。這是 AI 與人類工程師結(jié)合的一個重要里程碑。SapFix 的成功也表明基于搜索的軟件工程可以減少軟件開發(fā)中的阻礙?!?/p>

作為可以處理不同類型的錯誤和軟件的工具, SapFix 有可能改變代碼生成的速度和質(zhì)量。該款工具不僅適用于大規(guī)模運(yùn)營的公司,也適用于需要編程的個人或小公司。無論是一起使用還是單獨(dú)使用, SapFix 和 Sapienz 都可以讓開發(fā)人員花更少的時間進(jìn)行調(diào)試。

接下來,F(xiàn)acebook團(tuán)隊(duì)將與工程社區(qū)分享 SapFix,因?yàn)檫@是自動化調(diào)試發(fā)展的下一步,有為廣泛的公司和研究組織提高新代碼的生產(chǎn)和穩(wěn)定性的巨大潛力。

此次@Scale 2018 大會上,除了公布 SapFix 外,F(xiàn)acebook 還宣布了與頂級芯片制造商的合作,包括Cadence、Esperanto、Intel、 Marvell、高通,它們承諾將在未來芯片產(chǎn)品的制造上提供支持 Facebook 機(jī)器學(xué)習(xí)編輯器 Glow 的解決方案。這反映出 Facebook 正訴諸于利用社區(qū)推進(jìn)其圍繞自身機(jī)器學(xué)習(xí)軟件重新定位計(jì)算硬件生態(tài)系統(tǒng)的戰(zhàn)略,而這也有助于合作伙伴快速設(shè)計(jì)和優(yōu)化新款芯片產(chǎn)品在人工智能和機(jī)器學(xué)習(xí)上的能力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Facebook
    +關(guān)注

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54479
  • 人工智能
    +關(guān)注

    關(guān)注

    1787

    文章

    46062

    瀏覽量

    235080
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    89

    瀏覽量

    19775

原文標(biāo)題:@程序員,終于可以放心寫bug了!Facebook的debug神器你值得擁有

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    不需要License不需要燒錄器,板卡集成下載器和調(diào)試功能,盤古PGX-Lite 7K開發(fā)

    不需要License不需要燒錄器,板卡集成下載器和調(diào)試功能,盤古PGX-Lite 7K開發(fā)板,紫光同創(chuàng)Compa系類低功耗CPLD,基于PGC7KD-6IMBG256,輕松掌握國產(chǎn)FPGA操作
    發(fā)表于 03-08 13:51

    轉(zhuǎn): DIY微信直連臺燈(不需要自己搭建服務(wù)器)

    微信直連控制臺燈(不需要自己搭建服務(wù)器)再也不用下床去關(guān)燈了。{:12:}
    發(fā)表于 07-21 13:59

    萬用表、示波器、熱風(fēng)槍、這些開發(fā)工具一天搞定

    萬用表、示波器、熱風(fēng)槍、這些開發(fā)工具一天搞定再也不會把事件浪費(fèi)在不會使用工具上了
    發(fā)表于 07-13 17:38

    一張圖讀懂阿里巴巴一站式研發(fā)協(xié)同云——云效

    工具支撐,助力企業(yè)快速創(chuàng)新迭代和研發(fā)效能升級,幫你通通全搞定,Boss再也不用擔(dān)心我沒法如期交付啦!點(diǎn)此查看原文:[url=]http://click.aliyun.com/m/413
    發(fā)表于 01-31 14:32

    如何搞定樹莓派AI服務(wù)開發(fā)

    微軟專家教你,如何搞定樹莓派 AI 服務(wù)開發(fā)
    發(fā)表于 05-29 06:00

    請問Nuclei studio 2022版本是不是不需要HBird SDk環(huán)境配置與工具鏈安裝了?

    Nuclei studio 2022.2版本是不是不需要HBird SDk環(huán)境配置與工具鏈安裝了,還是說新版需要裝什么不需要裝什么,急!(windows和Linux如果不一樣的話能分別
    發(fā)表于 08-12 07:49

    不需要場效應(yīng)管的多路傳輸開關(guān)

    不需要場效應(yīng)管的多路傳輸開關(guān)
    發(fā)表于 04-13 10:44 ?879次閱讀
    <b class='flag-5'>不需要</b>場效應(yīng)管的多路傳輸開關(guān)

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

    蘋果已經(jīng)通知英國芯片設(shè)計(jì)商Imagination Technologies,iPhone和iPad的GPU再也不需要它生產(chǎn)了。
    發(fā)表于 04-05 09:06 ?406次閱讀

    OPPO陳明永:AI不需要被神化,到頭來還是要滿足用戶的核心需求

    在今天舉行的“高通中國技術(shù)與合作峰會”上,OPPO CEO陳明永表示,AI不需要被神化,到頭來還是要滿足用戶的核心需求。國際市場不能蜻蜓點(diǎn)水,要深耕。
    的頭像 發(fā)表于 01-29 14:52 ?3658次閱讀

    再也不想等等等了...

    科技有限公司上線超級“錢”臺,打造一種基于臉部識別系統(tǒng)的支付方式,該方式不需要錢包、信用卡或手機(jī),支付時只需要面對機(jī)器屏幕上的攝像頭,系統(tǒng)會自動將消費(fèi)者面部信息與個人賬戶相關(guān)聯(lián),耗時僅需短短幾秒,整個交易過程十分便捷。??有了超級“錢”臺,
    發(fā)表于 11-23 14:47 ?239次閱讀

    NBIoT智能門鎖,真正不需要網(wǎng)關(guān)的智能門鎖

    智能門鎖相信大家都已經(jīng)很熟悉了,但是不需要網(wǎng)關(guān),還可以遠(yuǎn)程控制的智能門鎖,你們有見過嗎?NBIoT智能門鎖,真的不需要網(wǎng)關(guān)了。NBIoT智能門鎖與普通智能門鎖有什么區(qū)別?NBIoT智能門鎖到底好在
    的頭像 發(fā)表于 06-22 10:15 ?8076次閱讀

    不需要電感器

    不需要電感器
    發(fā)表于 04-29 12:14 ?3次下載
    <b class='flag-5'>不需要</b>電感器

    ADISUSB驅(qū)動程序文件(大多數(shù)情況下不需要)

    ADISUSB驅(qū)動程序文件(大多數(shù)情況下不需要)
    發(fā)表于 06-07 20:27 ?5次下載
    ADISUSB驅(qū)動程序文件(大多數(shù)情況下<b class='flag-5'>不需要</b>)

    對講機(jī)到底需不需要中繼臺?

    有不少網(wǎng)友都想了解下,對講機(jī)到底需不需要中繼臺?其實(shí)這主要還是看對講機(jī)的使用場景了。
    的頭像 發(fā)表于 03-15 15:58 ?2451次閱讀
    對講機(jī)到底需<b class='flag-5'>不需要</b>中繼臺?

    網(wǎng)線那幾根線不需要

    在網(wǎng)線中,哪幾根線不需要接主要取決于網(wǎng)絡(luò)的需求和類型。一般來說,在百兆網(wǎng)絡(luò)中,通常只需要用到其中的四根線,即第1、第2、第3、第6根線,它們分別承擔(dān)著數(shù)據(jù)的發(fā)送和接收功能。這四根線在網(wǎng)線中的顏色
    的頭像 發(fā)表于 09-04 09:40 ?170次閱讀