精選文章

微軟開發出一款會寫程式的人工智慧「DeepCoder」!不過現在只能寫 5 行,而且還要靠「剪下貼上」!?

March 01, 2017 16:31


本文轉載自《科技新報》;原文出處: https://goo.gl/qqThfS

shutterstock

隨著人工智慧的進步,可以被機器取代的工作也越來越多,而這次,輪到軟體工程師了。

微軟研究院和劍橋大學研究人員開發出一套可自己寫程式的人工智慧「DeepCoder」,未來就算不會寫程式,也能也能透過 DeepCoder 打造出符合需求的程式,大幅縮短開發時間和成本。在那個機器人取代人類工作的未來,不論你是勞力型還是知識型工作,恐怕都難以全身而退。

從現有程式碼找到適合的片段,組合成符合需求的程式

DeepCoder 使用被稱作「程式組合」(program synthesis)的方法,只要給定系統輸入值和需要的輸出結果,DeepCoder 便可透過搜尋其他程式的程式碼,挑出適合的程式碼片段,再組合成可運作的程式,讓程式順利生成需要的結果。事實上,這個步驟就像許多工程師常做的事:在程式問答網站 Stack Overflow 上搜尋適合的程式碼,再「複製貼上」他們認為可行的程式碼片段。

研究團隊指出,和人類工程師相比,DeepCoder 能更全面、廣泛地搜尋程式碼範例,因此程式碼的組合方式可能是過去人類從未想過的。此外,DeepCoder 將機器學習應用在每次的搜尋和組合程式碼,相較於舊有系統需要花費好幾分鐘才能選出正確的程式組合,DeepCoder 只需幾秒就能寫好程式,且速度還會隨著練習越來越快。

麻省理工學院研究人員曾在 2015 年將這項技術用於自動修復軟體漏洞,其透過機器學習系統找出有漏洞的程式碼片段,並從其他程式找到適用的程式碼片段,用以取代錯誤的程式碼。

仍是早期研究,寫不出企業等級軟體和 App

看完 DeepCoder 的介紹,或許不少以寫程式為生的工程師開始擔心未來是否將被人工智慧取代。不過好消息是,該研究尚在早期階段,目前只能寫出 5 行左右的程式碼,難度相當於程式競賽網站中最簡單的問題。

此外,DeepCoder 只能透過組合程式碼片段來寫程式,並不能靠自己生成一段全新的程式碼,也還沒辦法寫出企業等級的軟體,或是 App 等更複雜的程式碼。

研究人員也指出,該系統的目的並非想要取代人類工程師,而是讓電腦協助完成寫程式過程中最無趣的地方,工程師可以將時間拿去做更複雜、更有創造力的工作。