僅一周多的時(shí)間,您中的大多數(shù)人就會(huì)聽說Facebook的AI研究團(tuán)隊(duì)(FAIR)開發(fā)了一種神經(jīng)轉(zhuǎn)編譯器,該代碼使用“無監(jiān)督翻譯 ” 將高級(jí)編程語言(如C ++,Python,Java,Cobol)的代碼轉(zhuǎn)換為另一種語言。傳統(tǒng)的方法是標(biāo)記源語言并將其轉(zhuǎn)換為抽象語法樹(AST),反編譯器將根據(jù)定義翻譯的手寫規(guī)則(例如抽象或上下文)將其用于轉(zhuǎn)換為所選的目標(biāo)語言。沒有丟失。
在過去的幾十年中,神經(jīng)語言翻譯取得了如此重大的進(jìn)步,以至于盡管只有足夠的并行語料庫(kù)才是唯一的限制,但是這些神經(jīng)模型往往要比硬編碼的手寫規(guī)則好得多。
這已通過“無監(jiān)督的ML翻譯”方法得到了更大程度的解決,其中Facebook的研究團(tuán)隊(duì)使用了來自Github的不同編程語言的大量單語源代碼庫(kù)來訓(xùn)練模型。
這使許多組織感到寬慰,尤其是在保險(xiǎn),政府和銀行部門,他們繼續(xù)使用舊版應(yīng)用程序,而這些應(yīng)用程序幾乎沒有增強(qiáng)或微調(diào)的空間,因?yàn)樗鼈兪怯烧嬲炀毜?a href="http://www.1cnz.cn/v/tag/1730/" target="_blank">程序員在過去的美好時(shí)光中編寫的— COBOL ,Pascal,F(xiàn)ortran等。
盡管編程語言已經(jīng)隨著時(shí)間的流逝而發(fā)展,但是從一種代碼庫(kù)移植到更高效或更現(xiàn)代的語言(如Java,Swift,Ruby,python)卻是真正的痛苦,因?yàn)樗枰凑Z言和目標(biāo)語言方面的專業(yè)知識(shí)。例如,有報(bào)道稱,澳大利亞聯(lián)邦銀行花費(fèi)了高達(dá)7.5億美元,并在五年內(nèi)將其核心軟件從大型機(jī)上的COBOL遷移到了現(xiàn)代平臺(tái)上。
基于規(guī)則的翻譯實(shí)現(xiàn)起來很復(fù)雜,靈活性和解釋性較差。Facebook的Transcoder可以解決長(zhǎng)期存在的問題。
FAIR代碼轉(zhuǎn)換器的主要組件
FAIR轉(zhuǎn)碼器基于一種變壓器架構(gòu),包括一個(gè)編碼器和一個(gè)解碼器,基于“注意就是您所需要的”論文。FAIR轉(zhuǎn)碼器依賴于單個(gè)模型進(jìn)行編碼和解碼,并且基于3個(gè)原理:
屏蔽語言模型預(yù)訓(xùn)練
去噪自動(dòng)編碼
回譯
1. 屏蔽語言模型預(yù)訓(xùn)練
掩蔽語言預(yù)訓(xùn)練模型基于BERT論文,該模型訓(xùn)練編碼器從源代碼中識(shí)別出掩蔽標(biāo)記。訓(xùn)練編碼器以理解編程構(gòu)造,以便在屏蔽某些令牌時(shí)識(shí)別丟失的令牌并對(duì)其進(jìn)行重構(gòu)。
-
編程語言
+關(guān)注
關(guān)注
10文章
1949瀏覽量
34877 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66840 -
ML
+關(guān)注
關(guān)注
0文章
149瀏覽量
34686
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論