0
雷鋒網(wǎng) AI 科技評(píng)論按:授權(quán) AI 刪除 app 中的 bug,結(jié)果 AI 將整個(gè)庫都給刪了,這件聽起來很荒謬的事情,真實(shí)在美國「大眾點(diǎn)評(píng)」Yelp 上發(fā)生了。
Yelp 是美國著名商戶點(diǎn)評(píng)網(wǎng)站,創(chuàng)立于 2004 年,囊括各地餐館、購物中心、酒店、旅游等領(lǐng)域的商戶,用戶可以在 Yelp 網(wǎng)站中給商戶打分,提交評(píng)論,交流購物體驗(yàn)等,由前貝寶(Paypal)工程師杰里米·斯托普爾曼 (Jeremy Stoppelman) 和羅素·西蒙斯(Russel Simmons)共同創(chuàng)建。
近日, Yelp 在 app 上的一則更新說明把大家給樂壞了:
「我們要向那些在本周使用 app 時(shí)遇到問題的用戶們道歉。我們訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò)來消除 app 中的 bug,沒想到它把所有的東西都消除了。我們現(xiàn)在只好進(jìn)行數(shù)據(jù)恢復(fù)。目前暫時(shí)達(dá)成 100 % 沒有 bug 的狀態(tài)……」
對(duì)此,微博網(wǎng)友立馬開啟了「群嘲模式」:
給人類留點(diǎn)面子好嗎……
從 APP 過去兩個(gè)月的更新說明來看,Yelp 基本上可以說將「除 bug」當(dāng)成自己的首要任務(wù),從萬圣節(jié)到圣誕節(jié)再到跨年,Yelp 的程序員們幾乎每天都沉溺在「消蟲樂」的歡樂氛圍當(dāng)中……
估計(jì)是在除 bug 這條道路上除出了固定套路,才會(huì)讓 Yelp 的程序員們萌生通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來達(dá)成自動(dòng)除 bug 的想法,只是他們沒想到竟然會(huì)如此出師不利。
由于 Yelp 至今尚未公布詳細(xì)的網(wǎng)絡(luò)訓(xùn)練和刪庫細(xì)節(jié),因此我們僅僅只能通過猜測(cè)來判斷導(dǎo)致刪庫的原因。然而令人感到絕望的是,即便 Yelp 程序員們想復(fù)盤「刪庫」事件的原由,神經(jīng)網(wǎng)絡(luò)的「黑箱」性質(zhì)也將導(dǎo)致該行為沒法很好地落實(shí)。
難道我們就一點(diǎn)辦法也沒有了嗎?
雖然 Yelp 以血淋淋的例子告訴我們,自動(dòng) debug 有風(fēng)險(xiǎn),然而我們不能因此否定許多機(jī)構(gòu)在這方面研發(fā)工作的努力,畢竟 debug 工具一旦能夠開發(fā)出來,程序員們將可以把更多精力放在寫出更多代碼上。
其中,最具代表性的是 Facebook 的 SapFix。
這是一款于去年 9 月份發(fā)布的代碼調(diào)試工具,配合 Facebook 的自動(dòng)化漏洞發(fā)現(xiàn)工具 Sapienz,可以針對(duì) bug 生成修復(fù)補(bǔ)丁。
在具體的執(zhí)行流程上,SapFix 會(huì)先給每個(gè) bug 生成多個(gè)潛在補(bǔ)丁,然后從 3 個(gè)方面對(duì)補(bǔ)丁質(zhì)量進(jìn)行評(píng)定(是否存在編譯的錯(cuò)誤、程序是否還會(huì)崩潰、補(bǔ)丁是否引入新的沖突),在評(píng)定結(jié)束后,SapFix 會(huì)在修復(fù)版本上進(jìn)行測(cè)試,結(jié)果出來后第一時(shí)間發(fā)給人工評(píng)審員進(jìn)行審批。
一旦獲得人工反饋,SapFix 將會(huì)執(zhí)行那些經(jīng)批準(zhǔn)的補(bǔ)丁,并清除其他未被批準(zhǔn)的補(bǔ)丁。
值得一提的是,在面對(duì)較復(fù)雜的問題時(shí),SapFix 會(huì)從過往的修復(fù)模板集去尋找生成補(bǔ)丁的借鑒參考。即使沒能找著合適的修復(fù)模板,它也會(huì)嘗試基于突變進(jìn)行修復(fù)——簡(jiǎn)單來說,就是對(duì)導(dǎo)致崩潰的語句的抽象語法樹(AST)執(zhí)行小型代碼修復(fù),調(diào)整補(bǔ)丁,直到找著可行的解決方案。
該工具被 Facebook 視作 AI 技術(shù)的里程碑,下一步計(jì)劃讓 SapFix 實(shí)現(xiàn)自動(dòng)制止代碼崩潰機(jī)制,以及讓軟件的反應(yīng)變得更敏捷。
Yelp「刪庫」事件是典型的 AI 過早落實(shí)民用的例子,在技術(shù)尚未成熟的條件下,AI 在輸出結(jié)果上難免要犯傻,畢竟就像這位網(wǎng)友所說的……
最后,祝廣大程序員們都能寫出沒有 bug 的代碼。
雷鋒網(wǎng) AI 科技評(píng)論 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。