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