AI還可以給代碼打分?阿里巴巴代碼競賽現(xiàn)全球首位AI評委
盡管工程師用代碼創(chuàng)造了AI,但AI又可以對這些代碼點(diǎn)評一番、甚至修復(fù)Bug,工程師和AI的關(guān)系正在變得微妙。
4月18日,2019阿里巴巴研發(fā)效能峰會——“83行代碼挑戰(zhàn)賽”決賽現(xiàn)場引入了一位“AI評委”,和專家評委、大眾評委配合,對選手提交的的代碼做綜合評價,這也是全球代碼比賽中出現(xiàn)的首位AI評委。
圖為83行代碼挑戰(zhàn)賽決賽現(xiàn)場排行榜,AI評委、大眾評委、專家評委給選手打分
這場面向阿里3萬多名工程師的技術(shù)大會旨在進(jìn)一步提升內(nèi)部的研發(fā)效率,而“83行代碼挑戰(zhàn)賽”可以說是阿里巴巴史上***規(guī)模的代碼品鑒會。比賽源自1年前阿里內(nèi)網(wǎng)一次集體曬83行代碼的活動,阿里巴巴集團(tuán)CTO張建鋒、螞蟻金服CTO程立,甚至馬云、彭蕾都有參與。
這位AI評委運(yùn)行在云端,當(dāng)選手提交代碼后,會從靜態(tài)分析、運(yùn)行時分析、群體共性等不同維度對代碼快速打分。比賽現(xiàn)場,大屏實時顯示選手分?jǐn)?shù),隨著AI評委、專家評委、大眾評委的分?jǐn)?shù)依次出現(xiàn),分?jǐn)?shù)排行榜會根據(jù)綜合打分實時滾動,一個邏輯語言的處理甚至可能瞬間提高選手排名。
結(jié)合現(xiàn)場專家和大眾評委的觀點(diǎn)來看,AI評委的評分相當(dāng)準(zhǔn)確,且打分最為迅速,幾乎是在代碼提交后立刻出現(xiàn)結(jié)果。
AI評委是誰?
這位AI評委來自阿里巴巴代碼平臺研發(fā)的人工智能系統(tǒng),其中最重要的一環(huán)是集成了Precfix(Patch Recommendation by Empirically Clustering),不依賴測試用例、編譯結(jié)果,通過非規(guī)則化的智能掃描,即可自動定位代碼中的Bug,并提供修復(fù)建議,速度可達(dá)毫秒級,且誤報率低。
圖為AI評委給出的選手打分,Precfix定位了代碼中的缺陷,并給出修復(fù)建議
Precfix能夠發(fā)現(xiàn)一些規(guī)則檢查和人工評審都無法發(fā)現(xiàn)的缺陷,根本性地提升代碼質(zhì)量,有效減少開發(fā)工程師debug及代碼評審時間。同時,Precfix提供的修復(fù)建議,能幫助工程師快速理解缺陷和解決問題。
圖為工程師根據(jù)Precfix提供的修復(fù)建議修復(fù)了缺陷
目前,Precfix已被部署到阿里巴巴代碼生產(chǎn)環(huán)境,用于缺陷檢查。工程師寫好代碼,就提交到線上,Precfix會進(jìn)行review,指出缺陷代碼及相應(yīng)的修復(fù)建議。
據(jù)一位工程師透露,過去人工review代碼查找bug可能需要幾小時甚至幾天時間不等,而現(xiàn)在不用一杯咖啡的時間,Precfix就可以review完提交的全部代碼,提高了至少20%效率。
未來,Precfix還會隨著阿里代碼平臺的上云,一起為全球開發(fā)者服務(wù)。