人工智能已聰明到會(huì)“偷”代碼寫(xiě)程序,但程序員不必?fù)?dān)心失業(yè)
人工智能系統(tǒng)正在變得越來(lái)越聰明,它們不僅能下圍棋、炒股票,現(xiàn)在還學(xué)會(huì)了寫(xiě)代碼。由微軟和劍橋大學(xué)研究員一同開(kāi)發(fā)的人工智能系統(tǒng)DeepCoder,完成了人類(lèi)編程挑戰(zhàn)賽所設(shè)定的基本挑戰(zhàn)。
DeepCoder能從其他程序中“偷”代碼,然后開(kāi)始寫(xiě)自己的程序。不過(guò),人類(lèi)程序員目前還不用擔(dān)心自己的飯碗會(huì)被它給搶走。因?yàn)镈eepCoder的研究團(tuán)隊(duì)稱(chēng),他們開(kāi)發(fā)這個(gè)系統(tǒng)是為了讓沒(méi)有任何編碼知識(shí)的人更容易地寫(xiě)程序。

據(jù)研究團(tuán)隊(duì)透露,DeepCoder使用了深度學(xué)習(xí)技術(shù)來(lái)模擬大腦的神經(jīng)網(wǎng)絡(luò),借此它可以處理大量的數(shù)據(jù),進(jìn)行評(píng)估做出決策。
具體做法是,研究人員給定DeepCoder輸入和輸出列表。這樣DeepCoder可以確定哪些代碼段將帶來(lái)什么樣的所需結(jié)果。DeepCoder開(kāi)發(fā)者之一馬克·布羅克施密特(Marc pockschmidt)表示,最終,這種方法有望讓非編程人員只要僅僅描述某個(gè)程序的想法,就可以讓系統(tǒng)自行編寫(xiě)程序。
人類(lèi)程序員已經(jīng)非常熟悉如何借鑒其他公開(kāi)程序的方法,但像DeepCoder這樣的系統(tǒng)可以更快地搜索,并比此前的人工智能系統(tǒng)思考更深。它甚至還可以用人類(lèi)還沒(méi)有想到的方式組合代碼。
“有了這個(gè)程序后,突然之間,人們可以擁有更多的生產(chǎn)力了。真正有望大幅縮短開(kāi)發(fā)代碼所需要的精力。”麻省理工大學(xué)教授阿曼多·索拉爾·勒扎瑪(Armando Solar-Lezama)在接受《新科學(xué)家》采訪時(shí)說(shuō)。
與人類(lèi)程序員一行行運(yùn)行代碼,對(duì)整個(gè)程序進(jìn)行試錯(cuò)不同,DeepCoder可以提前預(yù)測(cè)哪些代碼是有用的,哪些是錯(cuò)誤的。另外,它能從各種選擇中學(xué)習(xí),讓自己隨著時(shí)間地增加變得更聰明。
DeepCoder的技術(shù)已經(jīng)得到了應(yīng)用。在2015年,麻省理工學(xué)院的研究人員開(kāi)發(fā)出了一個(gè)程序,它可以把有故障的代碼行換成其他程序中切實(shí)可用的代碼,自動(dòng)修復(fù)軟件缺陷。布羅克施密特表示,未來(lái)版本會(huì)讓構(gòu)建常規(guī)程序變得容易,比如從網(wǎng)站獲取信息,或者自動(dòng)對(duì)Facebook照片進(jìn)行分類(lèi),到時(shí)候,這些都不需要人類(lèi)程序員動(dòng)手。
不過(guò),廣大程序員們暫時(shí)還可以放寬心,不必?fù)?dān)心他們的工作會(huì)被人工智能取代。索拉爾·勒扎瑪認(rèn)為,DeepCoder只是讓編程工作中最枯燥乏味的部分自動(dòng)化,程序員能夠?qū)r(shí)間專(zhuān)門(mén)花在處理比較復(fù)雜的工作上。
***需要指出的是,DeepCoder目前只能夠解決涉及大約五行代碼的編程挑戰(zhàn)。“一下子生成一大段代碼很難,可能不切實(shí)際。但是真正龐大的代碼卻可以通過(guò)組合大量的小段代碼編寫(xiě)而成。”索拉爾·勒扎瑪說(shuō)。