人民網(wǎng)
人民網(wǎng)>>教育

“996”碼農(nóng)的福音:AI輔助寫代碼

2019年04月29日08:11 | 來源:科技日報
小字號
原標題:“996”碼農(nóng)的福音:AI輔助寫代碼

  早上9點到崗,晚上9點下班,每周工作6天。“996”工作制,這一流傳于IT圈內(nèi)的行話,近期在互聯(lián)網(wǎng)巨頭掌門人“助攻”下迅速成為熱議話題,各種觀點莫衷一是。但剝離掉法律、道德、價值觀等層面的討論,“996”所反應(yīng)的現(xiàn)實情況是:社會正全面進入信息化,程序員已經(jīng)不堪重負。

  與此同時,谷歌大腦(Google Brain)發(fā)布了一篇論證AI輔助人類編程的論文,為身心俱疲的“碼農(nóng)”們帶來新福音。谷歌所說的AI技術(shù)如何實現(xiàn)輔助編程?AI能協(xié)助完成哪些編程工作?距離程序員的解放之路還有多遠?帶著這些問題,本報記者采訪了法國原子能和替代能源委員會人工智能博士、素問智能創(chuàng)始人王巍。

  游走于“畫匠”和“畫家”之間

  硅谷創(chuàng)業(yè)之父保羅·格雷厄姆在《黑客與畫家》一書中形象地將編程與繪畫做了類比。格雷厄姆認為,優(yōu)秀程序員和畫家一樣屬于創(chuàng)造者。但他在書中也指出,在分工日益細化的產(chǎn)業(yè)鏈條中,“(程序員)只是一個負責實現(xiàn)領(lǐng)導意志的技術(shù)工人,職責就是根據(jù)規(guī)格說明書寫出代碼,其實與一個挖水溝的工人是一樣的,從這頭挖到那頭,僅此而已,從事的都是機械性的工作”。兩者的區(qū)別就如同畫家和畫匠,前者是個性創(chuàng)造,而后者是重復勞動。

  職業(yè)程序員的工作原本是一項智力密集型的技術(shù)創(chuàng)造,但隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的快速發(fā)展,部分互聯(lián)網(wǎng)公司的程序員和流水線工人幾乎沒有本質(zhì)性區(qū)別,編程已逐漸成為勞動密集型的機械勞動。然而,創(chuàng)新通常不是從長時間的工作中熬出來的,程序員創(chuàng)造性不斷下降無疑與高強度的工作量有關(guān),而人工智能或許能夠改變這一局面。

  人工智能如何實現(xiàn)輔助編程

  為了快速理解谷歌這篇技術(shù)性很強的論文,王巍向科技日報記者講述了他曾參與的另外一項研究:AI模仿大文豪雨果寫作。該項目利用人工智能統(tǒng)計方法來學習雨果的語言風格,包括其習慣用詞、用語和句式等,最終可以讓法語寫作水平一般的人用大文豪的寫作風格寫自己的故事。

  王巍表示,人的自然語言(如法語)是一個由字和詞組成的序列,通過統(tǒng)計模型分析,能夠根據(jù)上文來預(yù)測下文出現(xiàn)的概率,可以將其理解為更高級的聯(lián)想輸入法或打字提示。而面向機器的編程語言,一方面是一個由代碼組成的序列,另一方面也有其內(nèi)在的代碼組織結(jié)構(gòu),通過對這兩者的建模,在程序員輸入代碼的過程中,可以利用人工智能技術(shù)識別其意圖并預(yù)測其可能將要輸入的代碼,從而輔助程序員簡化新寫代碼的工作量。另外,通過模式識別,在程序員修改一部分代碼時,AI可以識別出現(xiàn)有代碼中其他需要做類似修改的相關(guān)代碼模塊,甚至直接提供代碼更新方案的選項,從而大大減少程序員修改代碼的工作量。

  在AI術(shù)語中,預(yù)測下文或代碼屬于序列的學習和預(yù)測,而遞歸神經(jīng)網(wǎng)絡(luò)則是實現(xiàn)序列建模的一種解決方法。長短期記憶網(wǎng)絡(luò)(LSTM)是目前比較流行的一種遞歸神經(jīng)網(wǎng)絡(luò),谷歌在論文利用LSTM來對已有的代碼建模,從而識別和預(yù)測復雜、動態(tài)的代碼編輯序列。

  能協(xié)助程序員完成哪些工作

  王巍介紹,目前程序員編程使用的開發(fā)工具IDE(集成開發(fā)環(huán)境)已初步具備一些簡單的提示功能,比如參數(shù)的自動填充、構(gòu)造函數(shù)的自動初始化等,在實際操作中一定程度上提高了程序員的效率。而谷歌的研究是面向更為復雜的編輯序列模型,其方案對大規(guī)模代碼編輯數(shù)據(jù)有更強的適用性。

  如果該研究能夠?qū)崿F(xiàn)工業(yè)化應(yīng)用,無疑對于一線程序員和科技公司來說是重大福音。在AI的預(yù)測和識別輔助下,程序員新寫代碼和修改代碼過程中高度重復性的工作將大幅簡化,機器的加入將直接降低程序員的工作量和疲勞感。

  程序員的解放之路還有多遠

  王巍表示,谷歌的研究目前仍在試驗階段,距離大規(guī)模工業(yè)化應(yīng)用仍有一定距離。另外,部分媒體對此報道也有一定炒作成分,谷歌研究的定位目前仍限于輔助編程,還遠遠無法完全代替人類。在可預(yù)見的未來,機器創(chuàng)造程序仍是科學幻想,編程只能由人來完成。

  從技術(shù)角度上看,人工智能還無法完全理解人的復雜意圖,也沒有辦法形成有效的創(chuàng)造力,目前也看不到解決這一問題的技術(shù)路徑。另外,編程的目的是要形成產(chǎn)品并實現(xiàn)社會價值,其中存在責任界定問題,從社會層面看,人工智能也不應(yīng)代替人做出決策。

  然而,技術(shù)總是在短期內(nèi)被高估,但是在長期內(nèi)又被低估。長期來看,在AI輔助下,程序員繁重的機械勞動有望大幅減少,但創(chuàng)新性工作仍需人類智慧去完成。“碼農(nóng)”將成為“園藝師”,在AI輔助下解放更多時間,并將更多精力投入到創(chuàng)作之中,枯燥的“畫匠”工作會變得更加有趣,程序員“996”工作制或許也會成為歷史。記者 李宏策

(責編:郝孟佳、熊旭)

分享讓更多人看到

返回頂部
南宫市| 遵义市| 宕昌县| 桐乡市| 泰来县| 左贡县| 平湖市| 慈利县| 夏津县| 阳春市| 昌宁县| 社旗县| 榆树市| 昌都县| 扬州市| 灌阳县| 高邑县| 西乌| 吉木乃县| 永兴县| 陆川县| 通州市| 武强县| 赤水市| 隆化县| 电白县| 呼和浩特市| 平罗县| 嘉祥县| 定州市| 扎赉特旗| 张家港市| 泰宁县| 赞皇县| 武山县| 色达县| 汉沽区| 海盐县| 莱州市| 呼伦贝尔市|