您現(xiàn)在的位置是:首頁 >每日動態(tài) > 2021-12-14 15:15:23 來源:
微軟的新AI工具可以告訴你你的代碼何時糟糕
Microsoft研究人員開發(fā)了一種人工智能(AI)解決方案,他們認(rèn)為該解決方案可以幫助程序員更快、更準(zhǔn)確地調(diào)試他們的應(yīng)用程序。這種名為BugLab的人工智能基于“捉迷藏”游戲模型,其工作方式類似于生成對抗網(wǎng)絡(luò)(GAN)的創(chuàng)建方式。
研究人員MiltosAllamanis(首席研究員)和MarcBrockschmidt(高級首席研究經(jīng)理)在博客文章中詳細(xì)介紹了這項研究,解釋了他們?nèi)绾蝿?chuàng)建兩個網(wǎng)絡(luò)并將它們相互對抗,就像玩捉迷藏一樣。
一個網(wǎng)絡(luò)旨在在現(xiàn)有代碼中創(chuàng)建大大小小的錯誤,而另一個網(wǎng)絡(luò)旨在找到它們。隨著游戲的進(jìn)行,并且兩個“參與者”都越來越擅長,AI達(dá)到了足以識別隱藏在實際代碼中的錯誤的程度。
研究人員解釋說,這兩個模型是在沒有標(biāo)記數(shù)據(jù)的情況下以自我監(jiān)督的方式聯(lián)合訓(xùn)練的,超過“數(shù)百萬個代碼片段”。
研究人員聲稱,盡管這個想法是創(chuàng)建一個可以識別任意復(fù)雜錯誤的程序,但這些仍然“超出了現(xiàn)代人工智能方法的范圍”。相反,他們專注于常見的錯誤,例如不正確的比較、錯誤的布爾運算符、變量濫用和類似的錯誤。
擋道的誤報
測試是在Python上完成的,在訓(xùn)練應(yīng)用程序之后,是時候在現(xiàn)實生活中測試它了。
“為了衡量性能,我們手動注釋了Python包索引中包含此類錯誤的包中的一個小錯誤數(shù)據(jù)集,并表明與其他替代方法相比,使用我們的“捉迷藏”方法訓(xùn)練的模型最多可提高30%,例如,用隨機插入的錯誤訓(xùn)練的檢測器,”該博客補充道。
兩人將結(jié)果描述為“有希望的”,因為可以自動找到并修復(fù)大約四分之一(26%)的錯誤。更重要的是,在檢測到的錯誤中,有19個以前未知的錯誤。
盡管如此,仍有許多誤報,導(dǎo)致研究人員得出結(jié)論,在實際部署這樣的模型之前需要進(jìn)行更多的培訓(xùn)。