有個AI陪你一起寫程式碼,是種怎樣的體驗?| 附ICLR論文

量子位發表於2018-04-28
麻瓜慄 發自 凹非寺
量子位 出品 | 公眾號 QbitAI

從前,任何程式的任何功能,都需要一行一行敲出來。

後來,程式猿要寫的程式碼越來越多,世界上便有了各種各樣的API,來減少大家的工作量。有些功能,可以讓API來幫我們實現。

不過,人類寫下的話,API並不是每一句都能聽懂。語言不通的話,願望就無法實現。

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

現在,有會寫程式碼的AI可以替你召喚API。以及,它能做的並不止這些。

吃得不多,寫得不少

萊斯大學的一群極客,釋出了一個基於深度學習的程式碼編寫應用。神經網路從GitHub這樣的線上原始碼庫裡汲取養分,寫自己的程式。

640?wx_fmt=gif

這個應用叫Bayou,是在美國國防高階研究計劃局 (DARPA) 和谷歌研究院的資金支援下誕生的。

Bayou的爸爸們說,這個孩子和它的前輩不同。以前那些會寫程式的AI,都需要事先投喂大量細節,才能開始生成程式碼。有空寫好那些細節,不如自己寫個程式了。

而要支配Bayou,開發者只要給它吃一點點資訊,比如幾個小小的prompt,它就會善解人意地猜測,人類想要怎樣的程式,然後疾速補全程式碼。

640?wx_fmt=png

 input

舉個簡單的栗子,假設你想寫個讀取檔案的Java方法。如果你知道某個API裡面有個功能叫做readline,就可以寫出上面這樣的程式碼。

640?wx_fmt=png

 output

然後,Bayou便知道它要召喚的技能叫做readline,隨之為你輸出以上程式碼,只要用這段程式碼來呼叫你需要的API就可以了。

不要忘了,專門給Bayou看的部分,要標上///,以示害羞。

640?wx_fmt=gif

除了呼叫一個或者幾個API,我們還可以用API資料型別把自己的要求具體化。另外,Bayou有一個非常友好的特點,便是多模態,就算把各種不同的術語混進同一段程式碼,它也能看懂。

草圖訓練大法

畢竟,這隻AI已經從大約1500個安卓應用裡,學習了人類編寫的上行Java程式碼。

用一種名為“神經草圖學習 (Neural Sketch Learning) ”的方法來訓練神經網路,Bayou可以給自己想要讀取的每個程式,建立一個樹狀結構的句法模型,稱作“草圖 (sketch) ”。

640?wx_fmt=png

當有人對Bayou提出要求的時候,系統會先做一個判斷,感受一下自己要寫的程式是怎樣的。然後,就是為程式碼庫裡同型別的程式做草圖。這裡只識別high-level模式,而忽略所有low-level特徵。

在那之後,Bayou還有一個用來理解low-level細節的模組,可以自動進行邏輯推理。它會根據第一步做出的判斷,生成我們可能需要的程式碼。

哪怕問題沒有解決,Bayou給出的程式碼示例或許也能幫我們提出更合適的問題。這時候再去Stack Overflow尋求答疑,療效可能會好一些。

孩子你還小

640?wx_fmt=png

 我有優秀的聚類能力

團隊認為,Bayou非常適合為各種API編寫程式碼示例。不過,現在的它並不十分成熟,還有一些侷限性。

比如,它目前支援的API非常有限,只有java.lang,java.io和Java.util。再比如,它沒辦法處理萬用字元的多種型別。

作為一隻年幼的AI,Bayou還有很長的路要走。抱著GitHub修煉的好處是,從那裡識別出的模式會比較通用;缺點是GitHub上面的專案質量參差不齊

640?wx_fmt=gif

目前,團隊正在給Bayou增加一些自然語言處理技能,也想在使用者體驗裡增加一些互動性。

調戲Bayou傳送門:
http://askbayou.com/

論文傳送門:
https://arxiv.org/pdf/1703.05698.pdf

這是發表在ICLR 2018的論文。不過,在5月1日的溫哥華,團隊可能又要端上新版本了。

加入社群

量子位AI社群16群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot6入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手微訊號qbitbot6,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態



相關文章