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