隨著人工智能的進(jìn)步,可以被機(jī)器取代的工作也越來越多,而這次,輪到軟件工程師了。

微軟研究院和劍橋大學(xué)研究人員開發(fā)出一套可自己寫程序的人工智能“DeepCoder”,未來就算不會寫程序,也能也能透過 DeepCoder 打造出符合需求的程序,大幅縮短開發(fā)時間和成本。在那個機(jī)器人取代人類工作的未來,不論你是勞力型還是知識型工作,恐怕都難以全身而退。
從現(xiàn)有程序代碼找到適合的片段,組合成符合需求的程序
DeepCoder 使用被稱作“程序組合”(program synthesis)的方法,只要給定系統(tǒng)輸入值和需要的輸出結(jié)果,DeepCoder 便可透過搜尋其他程序的程序代碼,挑出適合的程序代碼片段,再組合成可運作的程序,讓程序順利生成需要的結(jié)果。事實上,這個步驟就像許多工程師常做的事:在程序問答網(wǎng)站 Stack Overflow 上搜尋適合的程序代碼,再“復(fù)制貼上”他們認(rèn)為可行的程序代碼片段。
研究團(tuán)隊指出,和人類工程師相比,DeepCoder 能更全面、廣泛地搜尋程序碼范例,因此程序代碼的組合方式可能是過去人類從未想過的。此外,DeepCoder 將機(jī)器學(xué)習(xí)應(yīng)用在每次的搜尋和組合程序代碼,相較于舊有系統(tǒng)需要花費好幾分鐘才能選出正確的程序組合,DeepCoder 只需幾秒就能寫好程序,且速度還會隨著練習(xí)越來越快。
麻省理工學(xué)院研究人員曾在 2015 年將這項技術(shù)用于自動修復(fù)軟件漏洞,其透過機(jī)器學(xué)習(xí)系統(tǒng)找出有漏洞的程序代碼片段,并從其他程序找到適用的程序代碼片段,用以取代錯誤的程序代碼。
仍是早期研究,寫不出企業(yè)等級軟件和 App
看完 DeepCoder 的介紹,或許不少以寫程序為生的工程師開始擔(dān)心未來是否將被人工智能取代。不過好消息是,該研究尚在早期階段,目前只能寫出 5 行左右的程序代碼,難度相當(dāng)于程序競賽網(wǎng)站中最簡單的問題。
此外,DeepCoder 只能透過組合程序代碼片段來寫程序,并不能靠自己生成一段全新的程序代碼,也還沒辦法寫出企業(yè)等級的軟件,或是 App 等更復(fù)雜的程序代碼。
研究人員也指出,該系統(tǒng)的目的并非想要取代人類工程師,而是讓電腦協(xié)助完成寫程序過程中最無趣的地方,工程師可以將時間拿去做更復(fù)雜、更有創(chuàng)造力的工作。
AI learns to write its own code by stealing from other programs
New AI shows even programmers are not safe from automation
Microsoft’s new AI sucks at coding as much as the typical Stack Overflow user