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