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