編者按:本文來自微信公眾號“量子位”(ID:QbitAI),作者:關(guān)注前沿科技,36氪經(jīng)授權(quán)發(fā)布。 豐色 發(fā)自 凹非寺量子位 報道 | 公眾號 QbitAI 用自然語言生成代碼不算稀奇,但現(xiàn)在,這項技術(shù)涉及的業(yè)務(wù)范圍真是越來越廣了。 就有一個叫做Text2App的“AI”,你“喂”給它一串文字需求,它就能直接給你“消化”成安卓應(yīng)用! 不信你看。 這是輸入的文字:
整個過程除了等編譯花上幾分鐘,無需別的代碼操作,就能直接生成一個安卓應(yīng)用。 不知廣大程序員們尤其是安卓開發(fā),感覺如何? 介于文字描述和源碼之間的“中間語言”Text2App這個框架出自加州大學(xué)洛杉磯分校和孟加拉國工程技術(shù)大學(xué)。 它不是直接將自然語言生成源碼,而是先生成中間語言,再由編譯器生成源碼。 為什么要先生成中間語言呢? 因為此前大多數(shù)根據(jù)文字描述生成程序的研究都是基于端到端的神經(jīng)機(jī)器翻譯 (NMT) 模型,類似于Google 翻譯,將自然語言直接翻譯成源碼。 雖然其中一些效果還不錯,但大多數(shù)無法生成大一點的、上百行代碼的程序。 為了克服這個限制,研究人員就在這個過程發(fā)明了一個新的形式語言 (formal language)做“橋梁”。 它能“搞懂”復(fù)雜的源碼,并將用戶給定的自然語言轉(zhuǎn)換出一小部分tokens(標(biāo)記),再形成一個簡單的程序表示代碼。 最后用研究人員開發(fā)的一個編譯器,就能把這個中間語言轉(zhuǎn)換成源碼。 最理解編程語言的還是編譯器,完全讓AI來生成復(fù)雜的程序還不行,所以離不開編譯器的大力支持。 當(dāng)然,生成中間語言還是靠的神經(jīng)機(jī)器翻譯模型。 下面是“文字描述轉(zhuǎn)換成APP”的具體流程: 文字描述:
上面這段自然語言首先被格式化(例如將“Speak”轉(zhuǎn)為“ 'STRING0’:’Speak’ ”),然后交給一個有編碼器和解碼器的Seq2Seq神經(jīng)網(wǎng)絡(luò)翻譯成簡單的應(yīng)用程序表示(SAR)——這就是上面說的中間語言:
再通過SAR編譯器將中間語言轉(zhuǎn)換成MIT App Inventor源碼文件(.scm/.bky),由MIT打包成最終可用的安卓端應(yīng)用程序即可。 下面是自然語言和中間語言(SAR)自動合成的示意圖,很直觀: 功能還比較初級正如大家所料,這個框架還是比較初級,目前描述文字需要被限定在一個固定范圍: 只能描述11種組件:文本框、按鈕、標(biāo)簽、播放器、時間選擇器…… 能實現(xiàn)的事件、操作等倒是沒有明確限制,感興趣的可以具體測測能實現(xiàn)多少。 目前的功能也很單一,廣大安卓開發(fā)程序員們還遠(yuǎn)遠(yuǎn)不用擔(dān)心AI“搶飯碗”。 不過研究人員說了,最終目的是使Text2App 成為一個成熟的基于自然語言的APP開發(fā)平臺。 需要多久呢?還未可知。 完整視頻及試玩鏈接:https://text2app./ 參考鏈接:https:///news/2021-06-text2app-framework-android-apps-text.html |
|