微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

ADVERTISEMENT

微軟研究院首席研究員 Miltos Alamanis 與高級首席研究主管 Marc Brockschmidt,剛剛在一篇部落格文章中介紹了他們新開發的 BugLabs 人工智慧。顧名思義。這是一套專門用於發現程式碼中的錯誤,説明開發者更精準、高效地調試其應用程式的 AI 解決方案。而且它的開發過程,與創建生成對抗網路(GAN)的形式大致相同。

微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

在《借助深度學習查找並修復錯誤》一文中,微軟研究員介紹了他們設置的兩個相互對抗的網路。其中一個旨在將小錯誤引入程式碼,另一個則旨在發現這些 bug 。 

隨著深度學習訓練的持續推進,AI 的能力也變得愈加完善,最終成為了我們看到的這個特別擅長辨識「隱藏在真是程式碼中的 bug」的人工智慧。

微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

這種方法的優點,在於全程無需自我監督或標記資料。Miltos Allamanis 與 Marc Brockschmidt 在報告中提到: 

理論上,我們可以將之廣泛地應用於「捉迷藏」遊戲 —— 教授機器去辨識任務複雜的錯誤。遺憾的是,這些 bug 通常超出了現代人工智慧方法的運用範圍。 

有鑑於此,研究團隊決定更加專注於一組常見的錯誤 —— 包括不正確的比較(例如使用 <= 而不使用 < 或 > 符號、不適當的布林運算子(與 / 或)、濫用變數(誤用 i 而不是 j)等。

微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

系統測試期間,微軟研究員特別專注於 Python 程式碼。一旦檢測器通過了訓練,即可將它用於檢測和修復實際程式碼中的 bug 。 

不過為了均衡性能,他們還是手動注釋了 Python Package Index 中包含的某些類型的小錯誤資料集。 

最終與隨機錯誤插入等其它替代方案相比,其「hide-and-seek」訓練模型有高達三成的領先優勢,前景很是光明。

微軟開發可高效率找出程式碼臭蟲的BugLabs人工智慧解決方案

具體說來是,hide-and-seek 能夠自動找到並修復大約 26% 的錯誤,且其中包括了 19 個此前未知的真實開源 GitHub 程式碼中的 bug 。 

與此同時,現階段的 AI 模型仍存在許多誤報。在投入實際運用之前,顯然還需要開展更多的改進。 

最後,鑒於微軟已經成功地推動了 GitHub 上的 GPT-3 專案,預計 hide-and-seek 也將很快迎來商業化應用。

cnBeta
作者

cnBeta.COM(被網友簡稱為CB、cβ),官方自我定位「中文業界資訊站」,是一個提供IT相關新聞資訊、技術文章和評論的中文網站。其主要特色為遊客的匿名評論及線上互動,形成獨特的社群文化。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則