www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]從舊式編程語言(例如COBOL)到現(xiàn)代語言(例如Java或C ++)的代碼庫遷移是一項艱巨的任務(wù),需要源語言和目標(biāo)語言方面的專業(yè)知識。 例如,COBOL至今仍在全球大型機(jī)系統(tǒng)中廣泛使用,因此公司,政府

從舊式編程語言(例如COBOL)到現(xiàn)代語言(例如Java或C ++)的代碼庫遷移是一項艱巨的任務(wù),需要源語言和目標(biāo)語言方面的專業(yè)知識。

例如,COBOL至今仍在全球大型機(jī)系統(tǒng)中廣泛使用,因此公司,政府和其他組織通常必須選擇,是手動翻譯其代碼庫,還是致力于維護(hù)使用可追溯到1950年代的語言編寫的代碼。

Facebook AI開發(fā)了Transcoder,可以使代碼遷移變得更加輕松和高效。Facebook AI的方法能夠?qū)⒋a從一種編程語言轉(zhuǎn)換為另一種編程語言,而無需數(shù)據(jù)進(jìn)行訓(xùn)練的AI系統(tǒng)。

Facebook AI已經(jīng)證明TransCoder可以成功地在C ++,Java和Python之間完成語言轉(zhuǎn)換。TransCoder的性能優(yōu)于開放源代碼的且基于商業(yè)規(guī)則的翻譯程序。在Facebook AI的評估中,該模型正確地將90%以上的Java函數(shù)轉(zhuǎn)換為C ++,將74.8%的C ++函數(shù)轉(zhuǎn)換為Java,并將68.7%的函數(shù)從Java轉(zhuǎn)換為Python。

相比之下,市售工具只能正確地將61.0%的功能從C ++轉(zhuǎn)換為Java,而開源翻譯器僅準(zhǔn)確地轉(zhuǎn)換了38.3%的Java函數(shù)轉(zhuǎn)換為C ++。

自我監(jiān)督的培訓(xùn)對于在編程語言轉(zhuǎn)換中特別重要。傳統(tǒng)的監(jiān)督學(xué)習(xí)方法依賴于大規(guī)模并行數(shù)據(jù)集的訓(xùn)練,但是對于從COBOL到C ++或從C ++到Python來說,并不適用。

TransCoder完全依賴僅用一種編程語言編寫的源代碼。它不需要編程語言方面的專業(yè)知識,并且很容易推廣到其他編程語言。

TransCoder對于將遺留代碼庫更新為現(xiàn)代編程語言很有用,現(xiàn)代編程語言通常更高效且易于維護(hù)。它還顯示了如何將神經(jīng)機(jī)器翻譯技術(shù)應(yīng)用于新領(lǐng)域。

seq2seq模型發(fā)揮了大作用

在自然語言中,即使在越來越依賴自動化機(jī)器翻譯系統(tǒng)的專業(yè)翻譯人員中,神經(jīng)機(jī)器翻譯的最新進(jìn)展也被廣泛接受。但是,由于該領(lǐng)域中并行數(shù)據(jù)的稀缺性,它們在代碼轉(zhuǎn)換中的應(yīng)用受到了限制。程序員仍然依賴基于規(guī)則的代碼轉(zhuǎn)換器,這需要專家審查和調(diào)試輸出,或者他們只是手動翻譯代碼。TransCoder通過利用無監(jiān)督機(jī)器翻譯到編程語言方面的最新進(jìn)展來克服這些挑戰(zhàn)。

Facebook AI特別注意構(gòu)建了一個seq2seq模型,該模型由具有變壓器架構(gòu)的編碼器和解碼器組成。TransCoder使用單個共享模型,部分基于Facebook AI在XLM上的先前工作,適用于所有編程語言。Facebook AI按照無監(jiān)督機(jī)器翻譯的三個原則:初始化,語言建模和反向翻譯。

此圖顯示了TransCoder如何利用無監(jiān)督機(jī)器翻譯的三個原理

Facebook AI首先利用開源GitHub項目中的源代碼,使用MLM目標(biāo)對Facebook AI的模型進(jìn)行了預(yù)訓(xùn)練。就像在自然語言處理的上下文中一樣,這種預(yù)訓(xùn)練會創(chuàng)建跨語言的嵌入:在相似上下文中使用的來自不同編程語言的關(guān)鍵字在嵌入空間中非常接近(例如catch和except)。

這些嵌入的跨語言性質(zhì)來自存在于多種語言中的大量通用令牌。令牌的示例包括C ++,Java和Python通用的關(guān)鍵字(例如,for,while,if,try),以及源代碼中出現(xiàn)的數(shù)學(xué)運(yùn)算符,數(shù)字和英文字符串。

使用MLM進(jìn)行預(yù)訓(xùn)練使TransCoder可以生成輸入序列的高質(zhì)量表示。然而,解碼器缺乏翻譯能力,因為從未訓(xùn)練過解碼器,基于源表示對序列進(jìn)行解碼。為了解決此問題,F(xiàn)acebook AI訓(xùn)練了該模型以使用降噪自動編碼(DAE)目標(biāo)對序列進(jìn)行編碼和解碼。

DAE的工作方式類似于監(jiān)督機(jī)器翻譯算法,其中訓(xùn)練模型以在給定序列的損壞版本的情況下預(yù)測令牌序列。在測試時,該模型可以對Python序列進(jìn)行編碼,并使用C ++起始符號對其進(jìn)行解碼以生成C ++轉(zhuǎn)換。

視頻顯示了具有相似功能的關(guān)鍵字如何組合在一起。

僅跨語言模型預(yù)訓(xùn)練和自動降噪就足以生成翻譯。但是,這些翻譯的質(zhì)量往往很低,因為從未訓(xùn)練過該模型以使其在測試時可以完成預(yù)期的工作,即將功能從一種語言翻譯為另一種語言。

為了解決此問題,F(xiàn)acebook AI使用反向翻譯,這是在弱監(jiān)督的情況下利用單語數(shù)據(jù)的最有效方法之一。對于每種目標(biāo)語言,F(xiàn)acebook AI使用一個模型和一個不同的開始標(biāo)記。它經(jīng)過訓(xùn)練可以從源到目標(biāo)以及從目標(biāo)到源并行轉(zhuǎn)換。

然后可以以弱監(jiān)督的方式訓(xùn)練模型,以從嘈雜的源序列中重建目標(biāo)序列,并學(xué)習(xí)從源到目標(biāo)的轉(zhuǎn)換。并行訓(xùn)練目標(biāo)到源版本和源到目標(biāo)版本,直到收斂為止。

為了評估他們的模型,以前的大多數(shù)源代碼翻譯研究都依賴于自然語言中使用的度量標(biāo)準(zhǔn),例如BLEU分?jǐn)?shù)或其他基于標(biāo)記之間相對重疊的方法。但是,這些類型的指標(biāo)不太適合編程語言。語法差異小的兩個程序在執(zhí)行代碼時可能會獲得很高的BLEU分?jǐn)?shù),同時仍然產(chǎn)生非常不同的結(jié)果。相反,具有不同實現(xiàn)方式的語義等效程序,將具有較低的BLEU分?jǐn)?shù)。

另一種度量標(biāo)準(zhǔn)是參考匹配,或與實地參考完全匹配的翻譯百分比,但這通常會低估翻譯質(zhì)量,因為它無法識別語義上等效的代碼。

為了更好地衡量TransCoder和其他代碼轉(zhuǎn)換技術(shù)的性能,F(xiàn)acebook AI創(chuàng)建了一個稱為計算精度的新指標(biāo),該指標(biāo)評估假設(shè)函數(shù)在給定相同輸入時是否生成與參考相同的輸出。Facebook AI還將發(fā)布測試集以及用于計算該指標(biāo)的腳本和單元測試。

下面的示例顯示了TransCoder如何將示例代碼從Python轉(zhuǎn)換為C ++。Facebook AI使用以下代碼作為模型輸入:

TransCoder成功將Python輸入函數(shù)SumOfKsubArray轉(zhuǎn)換為C ++。它還可以推斷參數(shù)的類型,返回類型和函數(shù)的參數(shù)。該模型將Python dequeue()容器附加到C ++實現(xiàn)dequeue <>。這是C ++中模型的輸出:

編程語言轉(zhuǎn)換讓實際應(yīng)用受益

自動代碼翻譯有可能使程序員在公司或開源項目中工作的程序員更加高效,因為他們可以更輕松地集成公司內(nèi)其他團(tuán)隊或其他開源項目的各種代碼。它還可以大大減少更新用古老語言編寫的舊代碼庫的工作量和開銷。

反編譯的進(jìn)步可能會促使公司和其他機(jī)構(gòu)更新到最新的語言并促進(jìn)未來的創(chuàng)新,這可能讓使用服務(wù)的人們以及機(jī)構(gòu)本身受益。編程語言機(jī)器翻譯的進(jìn)步也可以幫助那些沒有時間或負(fù)擔(dān)不起學(xué)習(xí)多種語言編程的人。

更廣泛地說,人工智能有潛力幫助其他編程任務(wù)。例如,F(xiàn)acebook AI以前共享了神經(jīng)代碼搜索的工具,這些工具可學(xué)習(xí)自動為編碼錯誤提供建議修復(fù)。雖然TransCoder并非旨在幫助調(diào)試或提高代碼質(zhì)量,但它有潛力幫助工程師遷移舊代碼庫或使用以其他語言編寫的外部代碼。

為了促進(jìn)有關(guān)使用深度學(xué)習(xí)進(jìn)行代碼翻譯的未來研究,F(xiàn)acebook AI還發(fā)布了一個測試集,該測試集使其他研究人員可以使用計算精度而不是語義盲模型來評估代碼翻譯模型。

Facebook AI期待看到其他人在和TransCoder的合作基礎(chǔ)上繼續(xù)前進(jìn),并為新的翻譯任務(wù)推進(jìn)自我監(jiān)督學(xué)習(xí)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉