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