日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

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

例如,COBOL至今仍在全球大型機(jī)系統(tǒng)中廣泛使用,因此公司,政府和其他組織通常必須選擇,是手動(dò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ā)揮了大作用

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

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

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

Facebook AI首先利用開源GitHub項(xiàng)目中的源代碼,使用MLM目標(biāo)對Facebook AI的模型進(jìn)行了預(yù)訓(xùn)練。就像在自然語言處理的上下文中一樣,這種預(yù)訓(xùn)練會(huì)創(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ì)量表示。然而,解碼器缺乏翻譯能力,因?yàn)閺奈从?xùn)練過解碼器,基于源表示對序列進(jìn)行解碼。為了解決此問題,F(xiàn)acebook AI訓(xùn)練了該模型以使用降噪自動(dòng)編碼(DAE)目標(biāo)對序列進(jìn)行編碼和解碼。

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

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

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

為了解決此問題,F(xiàn)acebook AI使用反向翻譯,這是在弱監(jiān)督的情況下利用單語數(shù)據(jù)的最有效方法之一。對于每種目標(biāo)語言,F(xiàn)acebook AI使用一個(gè)模型和一個(gè)不同的開始標(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)不太適合編程語言。語法差異小的兩個(gè)程序在執(zhí)行代碼時(shí)可能會(huì)獲得很高的BLEU分?jǐn)?shù),同時(shí)仍然產(chǎn)生非常不同的結(jié)果。相反,具有不同實(shí)現(xiàn)方式的語義等效程序,將具有較低的BLEU分?jǐn)?shù)。

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

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

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

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

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

自動(dòng)代碼翻譯有可能使程序員在公司或開源項(xiàng)目中工作的程序員更加高效,因?yàn)樗麄兛梢愿p松地集成公司內(nèi)其他團(tuán)隊(duì)或其他開源項(xiàng)目的各種代碼。它還可以大大減少更新用古老語言編寫的舊代碼庫的工作量和開銷。

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

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

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

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

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉