又刪庫(kù)了,這次是 AI 動(dòng)手的
聽(tīng)說(shuō)這兩天又傳開(kāi)一件刪庫(kù)事件。不過(guò)此次和以往的不同,不是程序員動(dòng)手的,而是 AI 動(dòng)手的。
1 月 14 日,美國(guó)點(diǎn)評(píng)網(wǎng)站 Yelp 的 APP 發(fā)布新版。在更新日志中,他們是這樣寫(xiě)的:(大意)
很抱歉,本周我們 APP 出問(wèn)題了。我們訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò),本想著讓它來(lái)消除我們 APP 中的 Bug,沒(méi)想到它把所有東西都刪了。所以我們不得不回滾了。不過(guò)說(shuō)真的,我們?cè)?jīng)有段時(shí)間絕對(duì)是沒(méi)有 bug 的。
對(duì)于 Yelp 工程師們訓(xùn)練的那個(gè)神經(jīng)網(wǎng)絡(luò),目前網(wǎng)上暫無(wú)更多細(xì)節(jié)。
不管是真事,還是專(zhuān)門(mén)的營(yíng)銷(xiāo)文案,Yelp APP 都成功地吸引了眼球。就如同去年或前年有個(gè) APP 在其版本更新日志說(shuō)開(kāi)除了程序員 Peter。
網(wǎng)友評(píng)論:
@Python開(kāi)發(fā)者 :哈哈哈,沒(méi)有代碼,也就沒(méi)有 Bug。這個(gè)無(wú)法反駁
@沃登克里弗塔的銘記:“人質(zhì)是任務(wù)的關(guān)鍵,當(dāng)敵人不再擁有人質(zhì),任務(wù)就完成了” 算法團(tuán)隊(duì)這下要全體被拉去做撒旦山羊頭五芒星血祭了,AI覺(jué)醒第一步:消滅算法工程師
@水哥系教董:消滅代碼,很智能很正確啊
@材cc: 不,它學(xué)到終極消除bug的方法了,干掉代碼……
MIT 也曾研究自動(dòng)修復(fù) Bug 的系統(tǒng)
2015 年 6 月下旬,在計(jì)算機(jī)學(xué)會(huì)的編程語(yǔ)言設(shè)計(jì)與實(shí)現(xiàn)大會(huì)上,MIT 的研究者們展示了一個(gè)新系統(tǒng),可以通過(guò)從其他更加安全的應(yīng)用中自動(dòng)導(dǎo)入相關(guān)功能,借以修復(fù)原來(lái)軟件中的危險(xiǎn)漏洞。
這個(gè)引人注目的系統(tǒng)叫做 CodePhage ,它借用其他程序時(shí)并不需要訪問(wèn)借主應(yīng)用的源碼。相反,該系統(tǒng)分析這個(gè)應(yīng)用的執(zhí)行情況,并標(biāo)記出其安全檢查類(lèi)別的特性。因此,即使所編寫(xiě)的語(yǔ)言與被修復(fù)應(yīng)用的語(yǔ)言不同,該系統(tǒng)仍然可以從中導(dǎo)出檢查功能用來(lái)修復(fù)應(yīng)用。
CodePhage 將代碼導(dǎo)入易受攻擊的程序后,還會(huì)進(jìn)行進(jìn)一步分析以確保漏洞被修復(fù)。
MIT 計(jì)算機(jī)科學(xué)與人工智能研究室(CSAIL)的研究員,CodePhage 的研發(fā)領(lǐng)導(dǎo)人員 Stelios Sidiroglou-Douskos 表示:
“我們?cè)陂_(kāi)源庫(kù)里有大量代碼可用,數(shù)百萬(wàn)計(jì)項(xiàng)目,而且很多項(xiàng)目都有類(lèi)似的實(shí)現(xiàn)了。這些項(xiàng)目總有一些可以與別的許多項(xiàng)目共享功能的子模塊,即便那不一定是該程序的核心功能。”
有了 CodePhage,“你將逐漸建立一個(gè)集其他應(yīng)用最優(yōu)秀部分于一身的混合系統(tǒng)。”
Sidiroglou-Douskos 和他的共同作者——MIT 計(jì)算機(jī)科學(xué)和工程的教授 Martin Rinard,研究生 Fan Long 和 Rinard 組里的研究員 Eric Lahtinen——將 CodePhage 正在被修復(fù)的程序稱(chēng)作是接受程序,出借功能的程序稱(chēng)作是捐獻(xiàn)程序。要開(kāi)始分析,CodePhage 需要兩個(gè)輸入樣本:一個(gè)導(dǎo)致接受程序崩潰,另一個(gè)則不會(huì)。2015 年三月,這個(gè)小組報(bào)告了一個(gè)名為 DIODE 的漏洞定位程序。該程序可以自動(dòng)產(chǎn)生引起崩潰的輸入信息。但是用戶也許就很容易發(fā)現(xiàn)打開(kāi)特定文件時(shí)會(huì)崩潰。
Facebook 也在研究自動(dòng) Debug 的程序
2018 年 9 月,F(xiàn)acebook 基于 AI 技術(shù)再次推出新款代碼調(diào)試工具 SapFix,可針對(duì)特定的 bug 自動(dòng)生成修復(fù)程序,然后將其提交給工程師,經(jīng)確認(rèn)之后,然后再部署到生產(chǎn)環(huán)境中。相比其一年前已投入大規(guī)模使用的智能自動(dòng)化軟件測(cè)試工具 Sapienz,SapFix 能夠在沒(méi)有 Sapienz 的情況下運(yùn)行,主要用于修復(fù) Sapienz 在生產(chǎn)前發(fā)現(xiàn)的程序 bug。
從發(fā)現(xiàn) bug 到修復(fù) bug,F(xiàn)acebook 有一套完整的流程:首先 Sapienz 以及 Facebook 的靜態(tài)分析工具 Infer,會(huì)幫助定位代碼中需要修補(bǔ)的點(diǎn);一旦 Sapienz 和 Infer 精確定位與崩潰相關(guān)的特定代碼部分之后,就會(huì)將該信息傳遞給 SapFix;最后,SapFix 會(huì)參考幾種不同的策略,自動(dòng)生成補(bǔ)丁。
根據(jù) Facebook 的數(shù)據(jù),Sapienz 報(bào)告的大約四分之三的錯(cuò)誤都需要開(kāi)發(fā)者來(lái)修復(fù)。自 Facebook 開(kāi)始測(cè)試 SapFix 之后,該工具已經(jīng)成功生成了被人類(lèi)審核者接受并部署于生產(chǎn)的補(bǔ)丁。不過(guò),目前 SapFix 總體上仍在開(kāi)發(fā)階段。