• <dd id="3gzlp"></dd>

    <li id="3gzlp"><acronym id="3gzlp"></acronym></li>

    <span id="3gzlp"></span>

    臉書的 TransCoder 通過 AI 實現編程語言之間的轉換,你是否感到飯碗將要不保?

    莫默磨墨先生
     莫默磨墨先生
    發布于 2020年06月10日
    收藏 13

    openEuler項目召集令就在暑期2020,最高6萬元獎金等你來領!>>>

    臉書的研究人員宣布,他們開發了一種神經變譯器(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。可以提高就業,因為沒有編程背景的人也能夠用機器通過‘意向性界面’來捕捉和實現他們的創意了。”

    本文編譯自:https://venturebeat.com/2020/06/08/facebooks-transcoder-ai-converts-code-from-one-programming-language-into-another

    本站文章除注明轉載外,均為本站原創或編譯。歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。
    轉載請注明:文章轉載自 OSCHINA 社區 [http://www.url23.com]
    本文標題:臉書的 TransCoder 通過 AI 實現編程語言之間的轉換,你是否感到飯碗將要不保?
    加載中
    此新聞有 19 條評論,請先登錄后再查看。
    返回頂部
    頂部
    聚看影院