自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

7.5億美元做代碼轉(zhuǎn)換?一個(gè)Facebook TransCoder AI就夠了!

新聞 人工智能
代碼的遷移和語(yǔ)言轉(zhuǎn)換是一件很困難且昂貴的事情,澳大利亞聯(lián)邦銀行就曾花費(fèi)5年時(shí)間,耗費(fèi)7.5億美元將其平臺(tái)從COBOL轉(zhuǎn)換為Java。

 代碼的遷移和語(yǔ)言轉(zhuǎn)換是一件很困難且昂貴的事情,澳大利亞聯(lián)邦銀行就曾花費(fèi)5年時(shí)間,耗費(fèi)7.5億美元將其平臺(tái)從COBOL轉(zhuǎn)換為Java。而Facebook最近宣稱(chēng),他們開(kāi)發(fā)的一種神經(jīng)轉(zhuǎn)換編譯器(neural transcompiler),可以將一種高級(jí)編程語(yǔ)言(如C ++,Java和Python)轉(zhuǎn)換為另一種,效率飛起!

從 COBOL 到 Java,TransCoder能幫你省下7.5億美元

不同的編程語(yǔ)言之間也可以自動(dòng)轉(zhuǎn)換了!

要知道,將現(xiàn)有的代碼庫(kù)遷移到現(xiàn)代或者更有效的語(yǔ)言,如 Java 或 c + + ,需要精通源語(yǔ)言和目標(biāo)語(yǔ)言,而且無(wú)論是金錢(qián)還是時(shí)間耗費(fèi)都十分高昂。

澳洲聯(lián)邦銀行在過(guò)去五年中花費(fèi)了大約7.5億美元將其平臺(tái)從 COBOL 轉(zhuǎn)換為 Java。

[[329637]]

但是,F(xiàn)acebook最近開(kāi)發(fā)的神經(jīng)轉(zhuǎn)換編譯器TransCoder讓代碼轉(zhuǎn)換出現(xiàn)了新的轉(zhuǎn)機(jī)。該系統(tǒng)可以將代碼從一個(gè)高級(jí)語(yǔ)言轉(zhuǎn)換成另一個(gè),比如 c + + 、 Java 和 Python。

這個(gè)系統(tǒng)是弱監(jiān)督的,可以在沒(méi)有標(biāo)簽的數(shù)據(jù)集中尋找以前未檢測(cè)到的模式,只需要少量的人工監(jiān)督。研究人員稱(chēng),這比基于規(guī)則數(shù)據(jù)集的模型要高效得多。

理論上,代碼轉(zhuǎn)換編譯器能夠提供很多的幫助,讓開(kāi)發(fā)者無(wú)需從頭重新寫(xiě)代碼。但實(shí)踐中,代碼轉(zhuǎn)換是一件很困難的事情,因?yàn)椴煌Z(yǔ)言依賴(lài)于不同的語(yǔ)法準(zhǔn)則,不同的平臺(tái)api、標(biāo)準(zhǔn)庫(kù)函數(shù)和可變類(lèi)型。

因此,TransCoder的面世,無(wú)疑是企業(yè)的福音。因?yàn)樗麄儾槐叵癜闹蘼?lián)邦銀行那樣,再去耗費(fèi)大量的時(shí)間和金錢(qián)去做代碼轉(zhuǎn)換的復(fù)雜工作,只需要選擇Facebook,選擇TransCoder,平臺(tái)遷移即可迎刃而解。

從Java到C++,TransCoder轉(zhuǎn)換準(zhǔn)確率超九成!

TransCoder是基于跨語(yǔ)言模型預(yù)訓(xùn)練去做的模型初始化,這樣的訓(xùn)練不著眼于編程語(yǔ)言的類(lèi)型,而僅僅將表示相同指令的代碼段映射為相同的表示形式。

之所以TransCoder能進(jìn)行跨語(yǔ)言模型的訓(xùn)練,是因?yàn)橄到y(tǒng)的標(biāo)記原理著眼于跨語(yǔ)言之間的共同關(guān)鍵字,如「if」,「for」等,以及數(shù)字、數(shù)學(xué)運(yùn)算符和出現(xiàn)在源代碼中的英語(yǔ)字符串。這樣反向翻譯之后通過(guò)源-目標(biāo)模型和并行訓(xùn)練的目標(biāo)-源模型耦合,從而提高了訓(xùn)練的質(zhì)量。

研究人員為了評(píng)估TransCoder的性能,從GeeksforGeeks中提取了852個(gè)C ++,Java和Python并行函數(shù),利用這些不同語(yǔ)言的轉(zhuǎn)換來(lái)測(cè)試函數(shù)語(yǔ)義是否精準(zhǔn),測(cè)試的結(jié)果如下:

GeeksforGeeks是一個(gè)在線平臺(tái),用于收集編寫(xiě)代碼時(shí)的問(wèn)題,并提供多種編程語(yǔ)言的解決方案。

研究人員稱(chēng),TransCoder在實(shí)驗(yàn)過(guò)程中展示了對(duì)每種語(yǔ)言特有語(yǔ)法的理解能力,并且能夠適應(yīng)小范圍的修改。盡管這個(gè)模型并不完美,但是性能優(yōu)于已有的利用專(zhuān)家知識(shí)手動(dòng)構(gòu)建的框架。

從自然語(yǔ)言翻譯到代碼翻譯,seq2seq再立新功

TransCoder使用了經(jīng)典的序列到序列(seq2seq)模型,該模型由基于Transformer的編碼器和解碼器組成,seq2seq模型的好處在于,你只需要有對(duì)應(yīng)的輸入輸出即可,而不需要關(guān)心是哪兩種編程語(yǔ)言。

TransCoder仿照Lample等人中確定的無(wú)監(jiān)督機(jī)器翻譯流程進(jìn)行訓(xùn)練,包括初始化,語(yǔ)言建模和反向翻譯。

實(shí)驗(yàn)表明以跨語(yǔ)言方式對(duì)整個(gè)模型(不僅是單詞表示形式)進(jìn)行預(yù)訓(xùn)練顯著改善了無(wú)監(jiān)督機(jī)器翻譯的效果,TransCoder遵循Lample和Conneau 的預(yù)訓(xùn)練策略,其中跨語(yǔ)言模型(XLM)在單語(yǔ)言的源代碼數(shù)據(jù)集上,使用遮罩語(yǔ)言建模進(jìn)行了預(yù)訓(xùn)練。

TransCoder的轉(zhuǎn)換原理

 

其中,跨語(yǔ)言本質(zhì)來(lái)源于多種語(yǔ)言中的大量通用標(biāo)記(錨點(diǎn))。在英語(yǔ)-法語(yǔ)翻譯的上下文中,錨點(diǎn)主要由數(shù)字、城市、人名等組成,而在編程語(yǔ)言中,這些定位點(diǎn)來(lái)自常見(jiàn)的關(guān)鍵字(for,while,if,try等),以及源代碼中出現(xiàn)的數(shù)字,運(yùn)算符和英語(yǔ)字符串等。

seq2seq模型的編碼器和解碼器由預(yù)訓(xùn)練的XLM模型參數(shù)進(jìn)行初始化。對(duì)于編碼器而言,初始化非常簡(jiǎn)單,因?yàn)樗cXLM模型具有相同的體系結(jié)構(gòu)。但是解碼器具有與attention機(jī)制有關(guān)的額外參數(shù),所以這部分采用了隨機(jī)初始化。

XLM預(yù)訓(xùn)練允許seq2seq模型生成輸入序列的高質(zhì)量表示。然而,解碼器缺乏翻譯能力,因?yàn)閺奈从?xùn)練過(guò)解碼器基于源表示對(duì)序列進(jìn)行解碼。為了解決這個(gè)問(wèn)題,TransCoder利用降噪自編碼(DAE)對(duì)序列進(jìn)行編碼和解碼,再對(duì)模型進(jìn)行訓(xùn)練。

在測(cè)試時(shí),模型可以對(duì)Python序列進(jìn)行編碼,并使用C ++起始符號(hào)對(duì)其進(jìn)行解碼以生成C ++轉(zhuǎn)換。C ++轉(zhuǎn)換的質(zhì)量取決于模型的「跨語(yǔ)言」性能:如果Python和C ++轉(zhuǎn)換被編碼器映射到相同的表示,則解碼器將成功生成對(duì)應(yīng)的C ++代碼。

實(shí)際上,僅XLM預(yù)訓(xùn)練和降噪自編碼就足以生成翻譯。但是,這些翻譯的質(zhì)量往往很低,因?yàn)樵撃P蛷奈磳?duì)編程語(yǔ)言實(shí)現(xiàn)的功能進(jìn)行訓(xùn)練。TransCoder為了解決這個(gè)問(wèn)題,使用了反向翻譯,這是在弱監(jiān)督的情況下利用單語(yǔ)言數(shù)據(jù)的最有效方法。

在無(wú)監(jiān)督的情況下,源到目標(biāo)模型與后向的目標(biāo)到源模型是并行訓(xùn)練的。目標(biāo)到源模型用于將目標(biāo)序列翻譯成源語(yǔ)言,從而產(chǎn)生與真實(shí)目標(biāo)序列相對(duì)應(yīng)的嘈雜源序列。然后以弱監(jiān)督的方式訓(xùn)練源到目標(biāo)模型,從前面生成的嘈雜源序列中重建目標(biāo)序列,反之亦然,并行訓(xùn)練兩個(gè)模型直到收斂。

作者簡(jiǎn)介

該論文一作Marie-Anne Lachaux,目前是Facebook人工智能研究院NLP方向研究員,巴黎高等電信學(xué)院計(jì)算機(jī)圖像學(xué)學(xué)士,倫敦國(guó)王學(xué)院計(jì)算機(jī)圖像學(xué)碩士,曾在達(dá)索系統(tǒng)(Dassault Systèmes)擔(dān)任研究員。主要研究方向?yàn)橛?jì)算機(jī)視覺(jué)和圖像識(shí)別,計(jì)算機(jī)神經(jīng)網(wǎng)絡(luò)。

在達(dá)索擔(dān)任研究員期間,Marie-Anne Lachaux主要方向?yàn)橥負(fù)鋬?yōu)化研究。拓?fù)鋬?yōu)化是設(shè)計(jì)機(jī)械零件的一種新方法,其目的是在保持機(jī)械性能的同時(shí)大量減少零件的質(zhì)量。拓?fù)鋬?yōu)化的實(shí)現(xiàn)方法是基于Visual Studio,c++和許多經(jīng)典庫(kù),這為Marie-Anne Lachaux在Facebook開(kāi)展NLP研究奠定了基礎(chǔ)。

[[329638]]

此前,已經(jīng)有很多基于深度學(xué)習(xí)的代碼自動(dòng)補(bǔ)全,效果也十分驚艷,而基于規(guī)則的代碼轉(zhuǎn)換也有不少項(xiàng)目,但大多數(shù)泛化能力不強(qiáng),畢竟能寫(xiě)的規(guī)則有限。

TransCoder基于深度學(xué)習(xí)進(jìn)行代碼轉(zhuǎn)換,無(wú)視了這些規(guī)則,直接端到端,對(duì)相關(guān)工作還是有很大的啟發(fā),如果TransCoder準(zhǔn)確率持續(xù)提升,那算法模型工程化的工作量將大幅縮減,程序員的編碼效率也將有質(zhì)的飛躍。

 

責(zé)任編輯:張燕妮 來(lái)源: 新智元
相關(guān)推薦

2019-05-09 09:32:08

曠視7.5億美元D輪融資

2014-02-20 09:31:26

FacebookWhatsApp收購(gòu)

2020-07-07 07:55:53

web app數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)

2012-04-10 09:18:06

2019-04-28 15:35:21

Facebook隱私保護(hù)信息泄露

2012-11-05 10:33:24

創(chuàng)業(yè)員工程序員

2013-03-14 10:14:17

微軟云計(jì)算公有云

2021-03-15 09:23:06

讀寫(xiě)分離MySql數(shù)據(jù)庫(kù)

2022-12-26 00:28:07

2012-05-30 22:33:15

Facebook

2021-06-30 00:14:24

JS代碼數(shù)組

2019-10-08 11:07:55

Python 開(kāi)發(fā)編程語(yǔ)言

2013-07-25 17:28:02

2012-02-08 11:11:45

Facebook數(shù)據(jù)中心

2020-10-06 15:59:38

AI

2021-01-25 13:45:14

模型人工智能深度學(xué)習(xí)

2020-04-22 15:10:45

信息泄露暗網(wǎng)網(wǎng)絡(luò)攻擊

2011-10-27 15:24:19

Facebook數(shù)據(jù)中心

2021-10-27 05:34:46

Facebook元宇宙虛擬環(huán)境

2010-05-28 11:11:45

谷歌廣告商
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)