別人家的工程師:阿里巴巴工程師,AI幫你修Bug

AI評委的背後是阿里巴巴正致力推進的代碼智能化:讓AI幫助工程師完成更規範、更有美感的代碼語言,提升開發者的產品交付質量。

天下網商記者 貢曉麗

AI有什麼用?語音識別、視覺識別、神經網絡、深度學習、自然人機交互等大大小的技術,可以應用在智能汽車、交通、工業製造、醫療、環保等不同領域。如今,工程師又賦予了AI一個新的功能,給代碼大賽做評委——點評代碼、修復Bug。

因代碼而生,為代碼糾錯,AI與代碼以及工程師間的關係,正在變得微妙。

4月18日,2019阿里巴巴研發效能峰會——“83行代碼挑戰賽”決賽現場就引入了一位“AI評委”,取名藍雁俠,和專家評委、大眾評委配合,對選手提交的的代碼做綜合評價,這也是全球代碼比賽中出現的首位AI評委。

別人家的工程師:阿里巴巴工程師,AI幫你修Bug

AI評委是誰?

20.00、19.65、19.55、18.95……83行代碼總決賽得分榜上,AI評委根據8組參賽者的代碼展示,給出了具有細微差別的分數。分數排行榜會根據AI評委、專家評委、大眾評委的綜合打分實時滾動,一個邏輯語言的處理甚至可能瞬間提高選手排名。

這位AI評委從哪兒來?與會專家告訴記者,它來自阿里巴巴代碼平臺研發的人工智能系統。這位AI評委運行在雲端,當選手提交代碼後,會從靜態分析、運行時分析、群體共性等不同維度對代碼快速打分。

據瞭解,AI評委集成了Precfix(Patch Recommendation by Empirically Clustering),不依賴測試用例、編譯結果,通過非規則化的智能掃描,即可自動定位代碼中的Bug,並提供修復建議,速度可達毫秒級,且誤報率低。

在現場的直接反應就是打分最為迅速,幾乎是在代碼提交後立刻出現結果。在現場專家和大眾評委看來,其評分相當準確。

Precfix能夠發現一些規則檢查和人工評審都無法發現的缺陷,根本性地提升代碼質量,有效減少開發工程師的bug及代碼評審時間。同時,Precfix提供的修復建議,能幫助工程師快速理解缺陷和解決問題。

別人家的工程師:阿里巴巴工程師,AI幫你修Bug

目前,Precfix已被部署到阿里巴巴代碼生產環境,用於缺陷檢查。工程師寫好代碼,就提交到線上,Precfix會進行review,指出缺陷代碼及相應的修復建議。

據一位工程師透露,過去人工review代碼查找bug可能需要幾小時甚至幾天時間不等,而現在不用一杯咖啡的時間,Precfix就可以review完提交的全部代碼,提高了至少20%效率。

“未來,Precfix還會隨著阿里代碼平臺的上雲,一起為全球開發者服務。”大賽主持人孤盡告訴記者。

AI會取代工程師?阿里巴巴表示:不會

83行代碼挑戰賽是面向阿里3萬多名工程師的技術大會,旨在進一步提升內部的研發效率,這場大賽可以說是阿里巴巴最大規模的代碼品鑑會。

別人家的工程師:阿里巴巴工程師,AI幫你修Bug

比賽源自之前阿里內網一次集體曬83行代碼的活動,阿里巴巴集團CTO張建鋒、螞蟻金服CTO程立,甚至馬雲、彭蕾都有參與。今年已是第三屆,總分92.12分的梁希,也是繼去年獲獎後再次站上一等獎的領獎臺,不同的是,今年給他打分的,多了AI評委。

事實上,AI評委的背後是阿里巴巴正致力推進的代碼智能化:讓AI幫助工程師完成更規範、更有美感的代碼語言,提升開發者的產品交付質量。

對此,本次大賽出品人、阿里巴巴技術合夥人多隆表示:“希望AI能與代碼開發產生更多化學反應,讓AI結對開發工程師,幫助工程師減負。”

代碼智能化進程中,全球領先的科技公司都在積極投入,包括谷歌、Facebook、微軟等也曾推出相關的工具。不久前,谷歌大腦發表的論文還提出讓神經網絡來完成源代碼編輯。

對此,也有人提出了“AI是否會取代工程師”的疑問。

事實上,代碼是一種“動態”過程,需要很強的泛化能力才能完成。優秀的工程師往往會根據新需求、新的網絡環境、bug的修復、公司戰略意圖等各種不斷變化的因素來構建代碼。AI能完成的是相對簡單的任務,要讓機器來動態判斷和預測即將發生的編輯內容,甚至開發出比較複雜和創新性的產品,還有很長的路要走。

“AI評委可以判斷代碼的結構、邏輯、風格,但是代碼還具有藝術性、優雅性、擴展性等特點,AI從精確性的角度可以判斷是或否的概念,但是它的評判對象美不美,這就要交給人了。”孤盡告訴記者,目前的AI評委還不具有代碼審美,所以這也是僅給它20%評分權限的原因,大眾評委佔20%,專家評委則有60%的權限。

神經元的模糊思考仍然是AI的弱點,但孤盡相信,AI的終極智慧我們現在可能還沒有看到,“或許未來代碼會被捨棄,我們可以和機器無障礙對話,那將是對社會非常劇烈的信息革命”。


分享到:


相關文章: