文|智東西
編譯|程茜
智東西12月9日報道,今天,DeepMind的計算機程序編寫AI(人工智能)模型AlphaCode,登上國際學(xué)術(shù)頂刊Science封面!
當人工智能與人類并肩參加編程競賽會發(fā)生什么?在競爭性編碼比賽平臺Codeforces的10場比賽中,AlphaCode在比賽的模擬評估中平均排名前54.3%,其編碼技能水平超過剩余的人類參與者。
▲AlphaCode的比賽模擬評估結(jié)果
早在今年2月,DeepMind就已經(jīng)推出AlphaCode,并默默參加了多場編程比賽。外媒GIZMODO報道稱,在測試中,AlphaCode能夠?qū)崿F(xiàn)“近似人類水平的表現(xiàn)”,該模型通過預(yù)測代碼段創(chuàng)建大量潛在解決方案,能解決競賽中以前未見過的自然語言問題,該模型的整體性能相當于經(jīng)過幾個月到一年培訓(xùn)的“新手程序員”。
▲AlphaCode根據(jù)問題描述提供的解決方案
01.從理解到解決問題AI寫代碼能力近似人類
為不可預(yù)見的問題創(chuàng)造解決方案是人工智能發(fā)展的第二路徑。目前,機器學(xué)習(xí)的相關(guān)研發(fā)在生成和理解文本數(shù)據(jù)方面取得了巨大進步,但在解決問題方面的進展仍然局限于相對簡單的數(shù)學(xué)和編程問題,或者檢索和復(fù)制現(xiàn)有解決方案。
因此,DeepMind構(gòu)建了AlphaCode系統(tǒng),該系統(tǒng)可以解決需要批判性思維、邏輯、算法、編碼和自然語言理解能力相結(jié)合的新問題。
AlphaCode并沒有內(nèi)置關(guān)于計算機代碼結(jié)構(gòu)的知識,而是依靠完全的“數(shù)據(jù)驅(qū)動”方法來編寫代碼。也就是說,該模型通過觀察大量現(xiàn)有代碼,來學(xué)習(xí)計算機程序的結(jié)構(gòu),基于機器學(xué)習(xí)模型LLM,AlphaCode就可以通過一次次預(yù)測給定問題描述中的單個字符,來進行學(xué)習(xí)。
為了評估這一模型的表現(xiàn),AlphaCode模擬參與了Codeforces的10場比賽。這些比賽的難度在于,參與者不可能通過復(fù)制以前見過的解決方案或嘗試每一種可能相關(guān)的算法等捷徑來解決問題。因此,為了贏得比賽,AlphaCode必須創(chuàng)造新穎有趣的解決方案。
在生成大量解決方案之后,AlphaCode會將它們過濾到最多10個解決方案。
▲AlphaCode編程處理過程
研究人員稱,在這些比賽中解決問題的能力,已經(jīng)超過了現(xiàn)在AI系統(tǒng)的能力。
從AlphaCode在比賽中的排名來看,這一模型的表現(xiàn)可能并不突出。但研究人員談道,在編碼比賽中取得成功是非常困難的。
面對沒有見過的編碼問題,AlphaCode必須首先理解自然語言中的復(fù)雜編碼問題,然后對不可預(yù)見的問題進行“推理”,而不是簡單地記住代碼片段。研究人員認為,沒有任何證據(jù)表明他們的模型只是簡單從訓(xùn)練數(shù)據(jù)中復(fù)制了核心框架。
02.10000多個文本預(yù)訓(xùn)練整合候選解決方案
AlphaCode在競爭性編程任務(wù)中優(yōu)于其他系統(tǒng)的原因在于預(yù)訓(xùn)練和候選解決方案。
研發(fā)人員為該模型構(gòu)建了CodeContest數(shù)據(jù)集,該數(shù)據(jù)集由約13500個競爭性編程問題的說明性文本、所需輸入輸出對的簡單測試用例以及跨幾種變成語言的問題潛在解決方案組成。
此外,還有GitHub中沒有問題描述且包含多種語言的非結(jié)構(gòu)化字符對這一模型進行訓(xùn)練。
▲研發(fā)人員通過數(shù)據(jù)集對AlphaCode進行預(yù)訓(xùn)練
在評估過程中,研發(fā)人員還發(fā)現(xiàn),該模型為問題生成單個解決方案代碼的性能很差,因此AlphaCode會生成大量候選解決方案,并通過簡單測試進行再次過濾,整合相似的解決方案,避免重復(fù),以增加潛在解決方案的多樣性。
該模型也有明顯的局限性,它可以高效記憶數(shù)據(jù)集中的解決方案,然后重新排列輸出這些模式,這就導(dǎo)致模型對潛在問題可能并沒有真正理解,只是在盲目模仿輸出。
從綜合表現(xiàn)來看,AlphaCode的表現(xiàn)確實在編碼領(lǐng)域展現(xiàn)出了潛力。卡內(nèi)基梅隆大學(xué)博世人工智能中心教授J. Zico Kolter在一篇博文中寫道:“最終,AlphaCode在應(yīng)對前所未見的編碼挑戰(zhàn)時表現(xiàn)出色,無論它‘真正’理解任務(wù)的程度如何?!?/p>
03.早期仍是AI輔助生成代碼代碼所有權(quán)引爭議
AlphaCode并不是唯一一個考慮到編碼開發(fā)的AI模型。
此前,OpenAI已經(jīng)對其GPT-3自然語言模型進行了調(diào)整,以創(chuàng)建一個可以幫助代碼行自動完成的功能。GitHub也有自己的AI編程工具Copilot。然而,這兩個程序在解決復(fù)雜的競爭問題方面都沒有表現(xiàn)出與人類競爭的實力。
現(xiàn)在,AI在編寫代碼方面的應(yīng)用仍處于AI輔助代碼生成的相對早期階段,但AlphaCode在競賽中的表現(xiàn)展示了深度學(xué)習(xí)模型在解決這類不能依靠單純復(fù)制、學(xué)習(xí)此前的事例,而是需要批判性思維、邏輯判斷等任務(wù)的巨大潛力。
研究人員稱,除了提高總體生產(chǎn)力外,AlphaCode還可以“讓新一代開發(fā)人員更容易進行編程?!?在不斷的發(fā)展中,AlphaCode有朝一日可能會對編程的文化產(chǎn)生影響,到那時,人類存在的意義是為了制定問題,然后由AI來解決這些問題。
與此同時,AI領(lǐng)域的一些批評者也在質(zhì)疑許多AI模型在訓(xùn)練模擬過程中的實際效果。
就在上個月,一位名叫Matthew Butterick的程序員對微軟旗下的GitHub提起了首起此類訴訟,稱其Copilot AI助手工具在學(xué)習(xí)和測試階段公然忽略或刪除軟件工程師提供的許可證。
Butterick認為,自由使用其他程序員的代碼相當于“規(guī)??涨暗能浖I版”。該訴訟的結(jié)果可能會決定AI開發(fā)人員未來在研發(fā)、改進模型方面的難易程度,因為,此前開發(fā)人員可以使用人類代碼來訓(xùn)練模型。
04.結(jié)語:AI解決問題能力釋放巨大潛力
相比于復(fù)雜棋盤游戲中的AI模型,AlphaCode在比賽中的表現(xiàn)都不夠驚艷,但其預(yù)示著AI模型在解決問題能力方面的巨大進步。
DeepMind的研究團隊堅信,這僅僅是一個開始。AI模型在代碼編寫領(lǐng)域為研發(fā)人員留下了巨大的改進空間。DeepMind將繼續(xù)這一探索,并希望進一步研究能夠增強編程能力的工具,并更接近于能真正解決問題的AI。
來源:GIZMODO、Science、DeepMind