歡迎光臨
每天分享高質量文章

AI刪庫,程式員背鍋?

導讀:又一程式碼清庫的慘案發生了,不過這次要背鍋的是 AI。

近日,美國最大點評網站 Yelp 的工程師訓練的神經網路闖禍了。他們訓練了一個用來消除 bug 的神經網路,萬萬沒想到,該網路刪除一切,從根上徹底了實現“bug-free”……有點兒厲害。

作者:一一

來源:AI科技大本營(ID:rgznai100)

Yelp 團隊在 APP 中向近期可能感到體驗不暢的各位使用者致歉,該團隊還表示,他們將不得不進行回滾(Roll back),但隨即話鋒一轉,他們說好的一面是,這說明 APP 中 100% 沒 bug 了啊。

好吧,沒跑了,這個鍋還是工程師的。

神經網路演演算法的這一波操作,讓人不禁想起郭德綱的一個相聲段子,“我心善,見不得窮人,於是把自己目之所及的窮人全趕走了。”收到工程師的任務指令後,興許 AI 發現一個個 debug 太不省心,心一橫,乾脆一鍵 all clear 算求。

這事要在國內網際網路公司,搞這個大一個工程事故,九成要說殺一個工程師祭天,儘管 Yelp 最後的點睛自嘲蠻輕鬆的,但人前賣笑,誰知道程式碼清除後工程師是不是目瞪口獃或者心裡在吐血呢……畢竟,要 Roll back。

Roll back 究竟意味著什麼?它指的是程式或資料處理錯誤,將程式或資料恢復到上一次正確狀態的行為。那 Roll back 工作量有多大呢?回滾對程式員意味著非常嚴重的失誤,微博網友@網際網路八卦民工 評論說,Yelp 在真實環境訓練自己的人工智慧神經網路去刪除 app 中的 bug,結果是人工智慧把所有都東西都刪了,這不是一個簡單的 Roll back。

網友們更好奇的是 Yelp 的工程師訓練了一個怎樣的網路?拿何種樣本訓練的?損失函式是如何設計的?有人猜測,程式碼裡面沒有 bug,損失函式一直是零,BP 和最佳化器無用武之地,所以觸發異常,把整段程式碼都視為 bug?

程式碼裡面沒有 bug 似乎不太可能,翻閱 Yelp 的版本更新曆史記錄,你會發現這簡直是一部“除蟲史詩”,你們感受一下:

本來是想讓 AI 來幫忙 debug 的,現在工具反到成了阻礙。不知道是 debug 工具本身的黑箱問題,還是使用它的人沒找到正確的“竅門”。至於這次 Yelp 工程事故報告還未有進一步的資訊披露,但用神經網路演演算法 debug 應該有風險,部署需謹慎。

不過一款讓工程師省時省力的 debug 工具顯然是人人所期待的,《@程式員,終於可以放心寫bug了!Facebook的debug神器你值得擁有》一文中提到,去年 9 月,Facebook 基於 AI 技術再次推出新款程式碼除錯工具 SapFix,可針對特定的 bug 自動生成修複程式,然後將其提交給工程師,經確認之後,然後再部署到生產環境中。


相比其一年前已投入大規模使用的智慧自動化軟體測試工具 Sapienz,SapFix 能夠在沒有 Sapienz 的情況下執行,主要用於修複 Sapienz 在生產前發現的程式 bug。

從發現 bug 到修複 bug,Facebook 有一套完整的流程:首先 Sapienz 以及 Facebook 的靜態分析工具 Infer,會幫助定位程式碼中需要修補的點;一旦 Sapienz 和 Infer 精確定位與崩潰相關的特定程式碼部分之後,就會將該資訊傳遞給 SapFix;最後,SapFix 會參考幾種不同的策略,自動生成補丁。

根據 Facebook 的資料,Sapienz 報告的大約四分之三的錯誤都需要開發者來修複。自 Facebook 開始測試 SapFix 之後,該工具已經成功生成了被人類審核者接受並部署於生產的補丁。不過,目前 SapFix 總體上仍在開發階段。

Facebook 都還只是在嘗試階段,Yelp 的工程師這次似乎對自家的 debug 工具太自信了,一鍵清庫簡直不能更酸爽,不知道他們這次有沒有感受到來自深度學習的威力。

據統計,99%的大咖都完成了這個神操作

更多精彩

在公眾號後臺對話方塊輸入以下關鍵詞

檢視更多優質內容!

PPT | 報告 | 讀書 | 書單

大資料 | 揭秘 | 人工智慧 | AI

Python | 機器學習 | 深度學習 | 神經網路

視覺化 | 區塊鏈 | 乾貨 | 數學

猜你想看

Q: 程式員和AI,誰應該背這個鍋?

歡迎留言與大家分享

覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:baiyu@hzbook.com

更多精彩,請在後臺點選“歷史文章”檢視