天天看點

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

雷鋒網 AI 科技評論按:授權 AI 删除 app 中的 bug,結果 AI 将整個庫都給删了,這件聽起來很荒謬的事情,真實在美國「大衆點評」Yelp 上發生了。     

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

Yelp 是美國著名商戶點評網站,創立于 2004 年,囊括各地餐館、購物中心、酒店、旅遊等領域的商戶,使用者可以在 Yelp 網站中給商戶打分,送出評論,交流購物體驗等,由前貝寶(Paypal)工程師傑裡米·斯托普爾曼 (Jeremy Stoppelman) 和羅素·西蒙斯(Russel Simmons)共同建立。

近日, Yelp 在 app 上的一則更新說明把大家給樂壞了:

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

「我們要向那些在本周使用 app 時遇到問題的使用者們道歉。我們訓練了一個神經網絡來消除 app 中的 bug,沒想到它把所有的東西都消除了。我們現在隻好進行資料恢複。目前暫時達成 100 % 沒有 bug 的狀态……」

對此,微網誌網友立馬開啟了「群嘲模式」:

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……
AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

給人類留點面子好嗎……

從 APP 過去兩個月的更新說明來看,Yelp 基本上可以說将「除 bug」當成自己的首要任務,從萬聖節到聖誕節再到跨年,Yelp 的程式員們幾乎每天都沉溺在「消蟲樂」的歡樂氛圍當中……

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……
AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

估計是在除 bug 這條道路上除出了固定套路,才會讓 Yelp 的程式員們萌生通過訓練神經網絡來達成自動除 bug 的想法,隻是他們沒想到竟然會如此出師不利。

由于 Yelp 至今尚未公布詳細的網絡訓練和删庫細節,是以我們僅僅隻能通過猜測來判斷導緻删庫的原因。然而令人感到絕望的是,即便 Yelp 程式員們想複盤「删庫」事件的原由,神經網絡的「黑箱」性質也将導緻該行為沒法很好地落實。

難道我們就一點辦法也沒有了嗎?

雖然 Yelp 以血淋淋的例子告訴我們,自動 debug 有風險,然而我們不能是以否定許多機構在這方面研發工作的努力,畢竟 debug 工具一旦能夠開發出來,程式員們将可以把更多精力放在寫出更多代碼上。

其中,最具代表性的是 Facebook 的 SapFix。

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

這是一款于去年 9 月份釋出的代碼調試工具,配合 Facebook 的自動化漏洞發現工具 Sapienz,可以針對 bug 生成修複更新檔。     

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

在具體的執行流程上,SapFix 會先給每個 bug 生成多個潛在更新檔,然後從 3 個方面對更新檔品質進行評定(是否存在編譯的錯誤、程式是否還會崩潰、更新檔是否引入新的沖突),在評定結束後,SapFix 會在修複版本上進行測試,結果出來後第一時間發給人工評審員進行審批。

一旦獲得人工回報,SapFix 将會執行那些經準許的更新檔,并清除其他未被準許的更新檔。

值得一提的是,在面對較複雜的問題時,SapFix 會從過往的修複模闆集去尋找生成更新檔的借鑒參考。即使沒能找着合适的修複模闆,它也會嘗試基于突變進行修複——簡單來說,就是對導緻崩潰的語句的抽象文法樹(AST)執行小型代碼修複,調整更新檔,直到找着可行的解決方案。

該工具被 Facebook 視作 AI 技術的裡程碑,下一步計劃讓 SapFix 實作自動制止代碼崩潰機制,以及讓軟體的反應變得更靈活。

Yelp「删庫」事件是典型的 AI 過早落實民用的例子,在技術尚未成熟的條件下,AI 在輸出結果上難免要犯傻,畢竟就像這位網友所說的……

AI 開年翻車事件:訓練神經網絡除 bug ,結果它把整個庫删了……

最後,祝廣大程式員們都能寫出沒有 bug 的代碼

雷鋒網 AI 科技評論 雷鋒網(公衆号:雷鋒網)

繼續閱讀