天天看點

AI 可以自己程式設計了,程式猿們該何去何從?

“愚蠢的人類,快走開——我的代碼我自己寫!”

現在,機器學習系統獲得了一種自動編寫代碼的能力。

這種程式叫做deepcoder,由劍橋大學和微軟公司的研究人員所研發。對于不會寫代碼的人來說,deepcoder簡直就是福音。因為這個程式解決了程式設計的基礎問題,不需要任何代碼知識,人們就可以編寫出一些簡單的程式。

作為一個局外人,麻省理工學院的armandosolar-lezama評論道:“轉眼之間,程式設計的工作效率就可以如此之高,很多以前看來難以建立的模型,現在居然都觸手可及。”

工作于英國劍橋微軟研究院,同時也是deepcode創始人之一的marc brockschmidt認為,有了這種方式,無論是誰,隻需要簡單地描述一下目标程式,系統就會自己編出對應的語句。

deepcoder使用了一種叫做程式合成(program synthesis)的技術,其運作原理與程式員所做的事情差不多,就是從存在的軟體中擷取已知的代碼段,并将它們拼接到一起執行新的程式。隻要賦予deepcoder中每個片段對應的輸入和輸出,程式就可以“學習”到哪些代碼是我們所需要的。

“麻瓜也可以寫程式”

讓ai(人工智能)自編代碼的好處之一就是,相比人類,ai在搜尋時比人類更加全面徹底,是以ai可以用人類完全想不到的方式來編寫程式。除此之外,deepcoder還會使用機械學習方式查閱資料庫,并根據可能的用法,整理出各個資料段。

而這一切都讓系統變得更加靈敏。在deepcoder之前,老版的應用程式處理問題可能要花費好幾分鐘,而這對deepcoder來說可能隻是幾秒的事情。在deepcoder自我程式設計時,它還能自己判斷出哪些語句有用、哪些語句有誤并進行修正。是以,它在處理新的問題時,會越來越有經驗。

科技可以運用在多種層面上。在2015年,麻省理工大學開發出了一種程式,該程式可以自動修複軟體中的bug:如果某系列代碼被檢測出了錯誤,它會抓取其他程式中的語句,将其覆寫到錯誤語句上以修複bug。brockschmidt表示,在未來,我們将很容易抓取網頁中的資訊,比如自動給臉書裡的照片分類,而我們根本都不需要碰一下滑鼠。

那麼這種程式會不會導緻程式員大量失業?

brockschmidt給出的答案是否定的。因為自動拟合的程式中很可能會出現很多毫無邏輯的代碼,而我們依然需要程式員來“拯救”這些複雜的程式。

目前,deepcoder隻能用于解決五行以内的代碼問題。不過隻要選擇對了語句,即使是再複雜的程式問題也可以用短短幾行代碼解決。

“對于大型程式的編寫,想要一蹴而就是很難的。” solar-lezama表示,“但是千裡之行,始于足下,正是很多短代碼組合在一起,才有了各種大型的程式。”

繼續閱讀