FB的TransCoder通过AI实现编程语言之间的转换,饭碗将要不保?
英文原文:Facebook’s TransCoder AI converts code from one programming language into another
臉書的研究人員宣布,他們開發(fā)了一種神經(jīng)變譯器(neural transcompiler)系統(tǒng),可以將一種高級編程語言的代碼轉(zhuǎn)換成另一種,比如將 C++,Java 或 Python 轉(zhuǎn)換成另一種。這個轉(zhuǎn)換過程無需人為監(jiān)督,可自動搜尋前一種語言中未標(biāo)注的數(shù)據(jù)集模式,其效果大幅地好于基于規(guī)則的轉(zhuǎn)換。
從當(dāng)前的代碼庫轉(zhuǎn)換成另一種先進(jìn)的高效的語言,比如從 Java 或 C++ 轉(zhuǎn)換成另一種語言,通常代價高昂,因為需要專家同時精通源語言和目標(biāo)語言。之前,澳洲聯(lián)邦銀行就花費了 7.5 億美元耗時五年將他們的平臺從 COBOL 升級為 Java。
臉書的 TransCoder 系統(tǒng)可以在 C++,Java 和 Python 之間互翻,智能學(xué)習(xí),無人監(jiān)管。TransCoder 初始化時,進(jìn)行跨語言的模型關(guān)聯(lián)性分析,在不同語言中找到具有映射關(guān)系的代碼片段,即相通的指令實現(xiàn)相同的表現(xiàn)。源語言的代碼被隨機(jī)的“遮住”,TransCoder 的任務(wù)就是基于上下文推斷出被“遮住”的部分。去燥自動編碼的過程訓(xùn)練系統(tǒng)生成有效的序列,即使輸入的是噪點數(shù)據(jù)。同時,回譯(back-translation)使得 TransCoder 可以生成平行數(shù)據(jù)用于訓(xùn)練。
臉書的研究人員用 GitHub 的語料庫,即 280 多萬個代碼庫訓(xùn)練 TransCoder,實現(xiàn)“函數(shù)”級別的轉(zhuǎn)換。“TransCoder 不需要任何專業(yè)知識,就可以很容易地運用到任何編程語言中,大幅提升在商用解決方案中的表現(xiàn)。我們的研究結(jié)果表明,模型產(chǎn)生的大量錯誤可以通過對解碼器添加簡單的約束很容易地修正,以確保生成的‘函數(shù)’在語法層面上是正確的,或者通過獨立的架構(gòu)來解決。”
臉書并非僅有的機(jī)構(gòu)致力于開發(fā) AI 生代碼的系統(tǒng)。在今年早些時候的 Microsoft’s Build 大會上,OpenAI 演示了一個使用 GitHub 代碼庫來訓(xùn)練的模型,通過代碼中的“英文注釋”生成完整的“函數(shù)”。兩年前,萊斯大學(xué)的研究人員創(chuàng)建了 Bayou 系統(tǒng),可以通過關(guān)聯(lián)代碼背后的“意圖(intents)”寫出軟件程序。
“事實上,這些系統(tǒng)嘗試去做的,就是去除做軟件時的各種瑣碎” Intel 實驗室的首席科學(xué)家 Justin Gottschlich 說,“它們可以幫助提高生產(chǎn)效率,由它們?nèi)リP(guān)注程序中的 bug。可以提高就業(yè),因為沒有編程背景的人也能夠用機(jī)器通過‘意向性界面’來捕捉和實現(xiàn)他們的創(chuàng)意了。”
總結(jié)
以上是生活随笔為你收集整理的FB的TransCoder通过AI实现编程语言之间的转换,饭碗将要不保?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机视频怎么转mp4格式(手机视频转换成
- 下一篇: 对话赛灵思高管:自适应计算助力打造下一代