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

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

新聞 前端
近日,來自 Facebook 的研究團(tuán)隊(duì)在論文《Improving Code Autocompletion with Transfer Learning》中展示了遷移學(xué)習(xí)如何在自動補(bǔ)全預(yù)測任務(wù)上進(jìn)行微調(diào)之前,實(shí)現(xiàn)在非 IDE、非自動補(bǔ)全和不同語言示例代碼序列上的預(yù)訓(xùn)練。

 [[401085]]

代碼自動補(bǔ)全功能(應(yīng)用程序預(yù)測文本輸入中的下一項(xiàng))已成為消息傳遞等任務(wù)中便捷且廣泛使用的工具,也是用于計(jì)算機(jī)編程所需的集成開發(fā)環(huán)境(IDE)最重要功能之一。

最近的研究表明,代碼自動補(bǔ)全可以通過深度學(xué)習(xí)來實(shí)現(xiàn),訓(xùn)練數(shù)據(jù)來自程序員使用 IDE 編碼行為的真實(shí)數(shù)據(jù),使軟件語言模型能夠獲得顯著的準(zhǔn)確率提升。然而,對于不太流行的編程語言來說,經(jīng)常會遇到一個(gè)問題,即可用的 IDE 數(shù)據(jù)集可能不足以訓(xùn)練出一個(gè)模型。

近日,來自 Facebook 的研究團(tuán)隊(duì)在論文《Improving Code Autocompletion with Transfer Learning》中展示了遷移學(xué)習(xí)如何在自動補(bǔ)全預(yù)測任務(wù)上進(jìn)行微調(diào)之前,實(shí)現(xiàn)在非 IDE、非自動補(bǔ)全和不同語言示例代碼序列上的預(yù)訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,該方法在非常小的微調(diào)數(shù)據(jù)集上提高了超過 50% 準(zhǔn)確率,在 50k 標(biāo)記示例上提高了超過 10% 準(zhǔn)確率。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

論文鏈接:https://arxiv.org/pdf/2105.05991.pdf

本文的貢獻(xiàn)主要包括以下幾個(gè)方面:

  • 該研究從版本控制提交獲得的源代碼文件,預(yù)訓(xùn)練了兩個(gè) transformer 軟件語言模型 GPT-2 和 BART,結(jié)果顯示它們在自動補(bǔ)全預(yù)測方面的性能,比直接使用實(shí)際 IDE 代碼序列的微調(diào)提高了 2.18%;
  • GPT-2 模型在兩個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了訓(xùn)練:IDE 編寫程序期間和代碼補(bǔ)全選擇期間記錄的代碼序列。預(yù)訓(xùn)練和針對特定任務(wù)的微調(diào)相結(jié)合能夠使模型性能更好,高出基準(zhǔn)模型 3.29%;
  • 該研究顯示,與僅對 Python 實(shí)例進(jìn)行訓(xùn)練的模型相比,與在 Hack 實(shí)例上進(jìn)行了預(yù)訓(xùn)練并在 10k Python 實(shí)例上進(jìn)行了微調(diào)的模型進(jìn)行比較,在不同編程語言上進(jìn)行預(yù)訓(xùn)練可將準(zhǔn)確率提高 13.1%;
  • 通過在線 A/B 測試,該研究證明了在三個(gè)遷移學(xué)習(xí)維度(任務(wù)、領(lǐng)域和語言)上的改進(jìn),自動補(bǔ)全工具的使用率分別提高了 3.86%、6.63% 和 4.64%。

實(shí)驗(yàn)設(shè)置

該研究的數(shù)據(jù)集(如下表 1 所示)來源于 Facebook 的真實(shí)開發(fā)者活動。研究者專注于兩種開發(fā)語言 Hack 和 Python,這兩種語言在 Facebook 擁有大量的開發(fā)者群體。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

在本文中,研究者使用兩種模型(都結(jié)合了 Transformer 架構(gòu))評估遷移學(xué)習(xí)的效果。由于本文的重點(diǎn)是研究遷移學(xué)習(xí)的影響,因此實(shí)驗(yàn)將重點(diǎn)集中在了這兩種模型上,并且沒有與其他 SOTA 模型進(jìn)行比較。實(shí)驗(yàn)用到的模型包括:

  • GPT-2:一種解碼器 transformer 模型,由于 transformer 具有同時(shí)觀察所有序列元素及其自注意力塊的能力,因此在代碼預(yù)測中達(dá)到了 SOTA 性能;
  • PLBART:一種雙向模型,該模型利用編碼器對代碼完成點(diǎn)周圍的上下文進(jìn)行編碼,并使用類似 GPT-2 的解碼器進(jìn)行自動回歸生成。

每個(gè)軟件語言模型分兩個(gè)階段進(jìn)行訓(xùn)練,分別是預(yù)訓(xùn)練階段和微調(diào)階段。所有模型都使用 Nvidia Tesla V100 GPU、20 epoch 進(jìn)行訓(xùn)練(在融合時(shí)提前終止)。預(yù)訓(xùn)練以及微調(diào)前學(xué)習(xí)率分別設(shè)置為 5^−4 和 5^−6。

研究者通過離線和在線的方式評估模型性能。

離線評估:研究者使用 10% 的 HackAutocompletion、PythonAutocompletion 作為測試數(shù)據(jù)集。HackAutocompletion 示例平均有 99.5 條候選建議可供選擇,pythonautomplection 示例平均有 26.3 條。候選建議列表允許將評估作為一個(gè)排名問題。對于每個(gè)離線測量,研究者報(bào)告 top-1 和 top-3 的準(zhǔn)確率以及 k=3 的平均倒數(shù)排名(MRR@)。MRR 定義為:

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

在線評估:該研究旨在提高開發(fā)者 IDE 體驗(yàn)。雖然離線評估速度更快、成本更低,但必須使用真實(shí)用戶測試改進(jìn)。在線評估中,對來自 Facebook 的數(shù)千名 Hack 開發(fā)者進(jìn)行了多次實(shí)時(shí) A/B 實(shí)驗(yàn)。在每個(gè)實(shí)驗(yàn)中,開發(fā)者被隨機(jī)分配到一個(gè)實(shí)驗(yàn)組或控制組,測量每個(gè)用戶的每日完成量(DCPU)。使用這個(gè)指標(biāo),A/B 測試觀察值是指其中一個(gè)組(實(shí)驗(yàn)組或控制組)中給定開發(fā)者在給定日期使用自動補(bǔ)全的次數(shù)。研究人員對每個(gè)組進(jìn)行實(shí)驗(yàn),直到達(dá)到至少 95% 的統(tǒng)計(jì)數(shù)據(jù)。

實(shí)驗(yàn)結(jié)果

離線評估:在標(biāo)記數(shù)據(jù)上進(jìn)行微調(diào)的自動補(bǔ)全模型在離線和在線評估中的性能優(yōu)于沒有特定任務(wù)微調(diào)的模型。在離線評估中,下表 III 顯示微調(diào)使得 top-1 的準(zhǔn)確率從 39.73% 提高到 41.91%。將標(biāo)記樣本加入預(yù)訓(xùn)練(HackAll)后,top1 的準(zhǔn)確率從 40.25% 上升到 41.6%。在訓(xùn)練 Python 自動補(bǔ)全模型時(shí)也觀察到了同樣的趨勢(表 IV)。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

在線評估:在 HackIde 上訓(xùn)練了一個(gè)自動補(bǔ)全模型。實(shí)驗(yàn)變量在 HackAutocompletion 上進(jìn)行微調(diào),而控制變量沒有進(jìn)行微調(diào)。下表 II 中的實(shí)驗(yàn) 1 表明,在 p=0.0238 時(shí),實(shí)驗(yàn)組的每位用戶每日完成量(daily completions per user, DCPU)增加了 3.86%。

研究者進(jìn)行了第二個(gè) A/B 實(shí)驗(yàn),比較了前一個(gè)實(shí)驗(yàn)(HackIde 的預(yù)訓(xùn)練和 HackAutocompletion 的微調(diào))中更好的模型和沒有預(yù)訓(xùn)練的 HackAutocompletion 訓(xùn)練模型。實(shí)驗(yàn) 2 顯示沒有進(jìn)行預(yù)訓(xùn)練模型的巨大改進(jìn),實(shí)驗(yàn)組的 DCPU 在 p=0.017 時(shí),增加了 6.63%。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

在線評估:研究者進(jìn)行了 A / B 實(shí)驗(yàn),以探討預(yù)訓(xùn)練對代碼提交的現(xiàn)實(shí)影響。上表 II 中的實(shí)驗(yàn) 3 表明,在 p = 0.049 時(shí),預(yù)訓(xùn)練模型可提高 3.62%的 DCPU。

下圖 4 顯示了在 HackAll 上預(yù)訓(xùn)練模型具有更好的性能,這與在微調(diào)中使用的 PythonAll 示例的數(shù)量無關(guān)。當(dāng)將模型限制為僅 10k (top1 準(zhǔn)確率 13.1%,37.11% vs. 24.01%)和 25k (top1 準(zhǔn)確率 12.6%,41.26% vs. 28.66%)時(shí),邊際影響最大。

這表明在自動補(bǔ)全中跨編程語言的知識遷移的明顯證據(jù)。在 HackAll 上預(yù)訓(xùn)練并使用 25k 和 50k PythonAll 示例進(jìn)行微調(diào)的模型的性能與使用 50k 和 100k PythonAll 示例從頭訓(xùn)練的性能相似。這表明,在使用其他語言的數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練后,所需的樣本數(shù)量只有原來的一半。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

下表 V 展示了對 HackAutocompletion 、PythonAutocompletion 微調(diào)后,性能分別提高了 0.5%、1.34%。然而,與最好的單一語言模型相比,多語言模型沒有表現(xiàn)出這種顯著改進(jìn)。最優(yōu)的多語言模型的 top-1 準(zhǔn)確率比最優(yōu)的 Python 模型高 0.53%,但比最優(yōu)的 Hack 模型低 0.02%。結(jié)合其他研究結(jié)果并假設(shè),隨著每種語言中可用示例數(shù)量的增加,跨語言組合編程語言示例的邊際效益(marginal benefit)遞減。

準(zhǔn)確率可提升50%以上,F(xiàn)acebook用遷移學(xué)習(xí)改進(jìn)代碼自動補(bǔ)全

上表 III 顯示,使用 HackAutocompletion 微調(diào)進(jìn)行的 HackCommit 預(yù)訓(xùn)練的性能優(yōu)于 HackAutocompletion,提高 3.29%top-1 準(zhǔn)確率(39.61%VS36.32%)。PLBART 的 top-1 準(zhǔn)確率提高幅度更大(表 VI):6.52%(51.06%VS44.54%)。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心Pro
相關(guān)推薦

2022-04-13 10:31:04

微軟Jigsaw大型語言模型

2023-03-03 18:31:23

網(wǎng)絡(luò)承運(yùn)商路由

2024-09-12 13:50:00

模型訓(xùn)練

2023-11-08 08:38:43

2022-09-25 17:07:27

訓(xùn)練圖像

2024-01-05 08:44:52

2023-10-14 17:24:49

2021-10-29 14:14:26

AI數(shù)據(jù)人工智能

2023-10-28 13:36:48

模型ChatGPT

2024-11-18 09:50:00

模型訓(xùn)練

2024-06-06 10:08:32

2020-07-24 12:30:58

AI 數(shù)據(jù)人工智能

2021-10-11 17:27:50

框架計(jì)算機(jī)開發(fā)

2017-04-28 10:36:46

機(jī)器人醫(yī)療智能

2024-04-15 11:48:09

2020-10-18 12:27:35

人工智能人臉識別技術(shù)

2016-01-27 13:37:53

機(jī)器學(xué)習(xí)數(shù)據(jù)模型算法

2018-11-14 10:01:30

谷歌開源機(jī)器學(xué)習(xí)

2019-01-29 10:27:27

量子計(jì)算機(jī)芯片超算

2020-04-26 15:35:49

神經(jīng)網(wǎng)絡(luò)決策樹ImageNet
點(diǎn)贊
收藏

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