成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

歷數5年89篇研究,這篇綜述告訴我們深度學習中的代碼數據增強怎么樣了

人工智能 新聞
最近,由蒙納士大學、新加坡管理大學、華為諾亞方舟實驗室、北京航空航天大學以及澳大利亞國立大學聯合進行的對近 5 年的 89 篇相關研究調查,發布了一份關于代碼數據增強在深度學習中應用的全面綜述。

當今深度學習以及大模型的飛速發展,帶來了對創新技術的不斷追求。在這一進程中,代碼數據增強技術顯現出其不可忽視的價值。

最近,由蒙納士大學、新加坡管理大學、華為諾亞方舟實驗室、北京航空航天大學以及澳大利亞國立大學聯合進行的對近 5 年的 89 篇相關研究調查,發布了一份關于代碼數據增強在深度學習中應用的全面綜述

圖片

  • 論文地址:https://arxiv.org/abs/2305.19915
  • 項目地址:https://github.com/terryyz/DataAug4Code

這份綜述不僅深入探討了代碼數據增強技術在深度學習領域的應用,還展望了其未來的發展潛力。作為一種在不收集新數據的情況下增加訓練樣本多樣性的技術,代碼數據增強已在機器學習研究中獲得廣泛應用。這些技術對于資源匱乏領域的數據驅動模型性能提升具有顯著意義。

圖片

然而,在代碼建模領域,這一方法的潛力尚未被完全挖掘。代碼建模是機器學習與軟件工程交叉的新興領域,涉及應用機器學習技術解決各種代碼任務,如代碼補全、代碼摘要和缺陷檢測。代碼數據的多模態特性(編程語言和自然語言)為數據增強方法的定制帶來了獨特的挑戰。

這份由多個頂級學術和工業機構聯合發布的綜述報告,不僅為我們提供了代碼數據增強技術的深入洞見,還為該領域的未來研究和應用指明了方向。我們相信,這份綜述將激發更多研究者對代碼數據增強在深度學習中應用的興趣,并推動這一領域的進一步探索和發展。

背景介紹

代碼模型的興起與發展:代碼模型是基于大量源代碼語料庫訓練的,能夠精準地模擬代碼片段的上下文。從早期采用 LSTM 和 Seq2Seq 等深度學習架構,到后來融入預訓練語言模型,這些模型已經在多個源代碼的下游任務中顯示出了出色的性能。例如,有些模型在預訓練階段就考慮了程序的數據流,這是代碼的語義層面結構,用于捕捉變量間的關系。

數據增強技術的意義:數據增強技術通過數據合成來增加訓練樣本的多樣性,從而提高模型在各方面(如準確性和穩健性)的性能。在計算機視覺領域,例如,常用的數據增強方法包括圖像裁剪、翻轉和顏色調整。而在自然語言處理中,數據增強則大量依賴于語言模型,這些模型能夠通過替換詞匯或重寫句子來改寫上下文。

代碼數據增強的特殊性:與圖像和純文本不同,源代碼受到編程語言嚴格句法規則的限制,因此增強的靈活性較低。大多數代碼的數據增強方法必須遵守特定的轉換規則,以保持原始代碼片段的功能性和語法。常見的做法是使用解析器構建源代碼的具體句法樹,然后轉換為抽象句法樹,簡化表示的同時保留關鍵信息,如標識符和控制流語句。這些轉換是基于規則的數據增強方法的基礎,它們幫助模擬現實世界中更多樣的代碼表示,提高了代碼模型通過增強數據訓練的穩健性。

代碼數據增強方法的深度探索

在深入探討代碼數據增強的世界中,作者將這些技術主要分為三類:基于規則的技術、基于模型的技術和示例插值技術。下面簡要介紹了這些不同的分支。

基于規則的技術:許多數據增強方法利用預定規則來轉換程序,同時保證不破壞語法規則和語義。這些轉換包括替換變量名、重命名方法名和插入無效代碼等操作。除了基本的程序語法,一些轉換還考慮更深層的結構信息,如控制流圖和使用 - 定義鏈。有一部分基于規則的數據增強技術專注于增強代碼片段中的自然語言上下文,包括文檔字符串和注釋。

圖片

基于模型的技術:一系列針對代碼模型的數據增強技術旨在訓練各種模型來增強數據。例如,一些研究利用輔助分類生成對抗網絡(ACGAN)來生成增強程序。另一些研究則訓練了生成對抗網絡,以同時提升代碼生成和代碼搜索的能力。這些方法主要是針對代碼模型特別設計的,旨在通過不同方式增強代碼的表示和上下文理解。

示例插值技術:這類數據增強技術源自 Mixup,它通過插值輸入和兩個或更多實際樣本的標簽來操作。例如,給定計算機視覺中的二分類任務和兩張分別是狗和貓的圖片,這些數據增強方法可以將這兩張圖片的輸入和它們對應的標簽根據隨機選擇的權重混合在一起。然而,在代碼領域,這些方法的應用受到獨特的程序語法和功能的限制。相比于表面層次的插值,大多數示例插值數據增強方法通過模型嵌入將多個真實樣例融合為單一輸入。例如,有研究將基于規則的技術與 Mixup 結合,混合原始代碼片段及其轉換后的表示。

圖片


圖片

策略與技術

在實際應用中,針對代碼模型的數據增強技術的設計和有效性受到多種因素的影響,例如計算成本、樣本多樣性和模型的穩健性。本節重點介紹了這些因素,提供了設計和優化適合的數據增強方法的洞見和技巧。

方法堆疊:在之前的討論中,許多數據增強策略在單一工作中被同時提出,目的是增強模型的性能。通常,這種組合包括兩種類型:同類型數據增強或不同數據增強方法的混合。前者通常應用于基于規則的數據增強技術,其出發點在于單一代碼轉換無法完全代表現實世界中多樣的代碼風格和實現。一些工作展示了將多種類型的數據增強技術融合可以增強代碼模型的性能。例如,結合基于規則的代碼轉換方案和基于模型的數據增強來創建增強的語料庫,用于模型訓練。而另一些研究則在編程語言上增強,包括兩種數據增強技術:基于規則的非關鍵詞提取和基于模型的非關鍵詞替換。

優化:在某些場景中,如增強穩健性和最小化計算成本,選擇特定增強樣例候選者至關重要。作者將這種目標導向的候選選擇在數據增強中稱為優化。文章主要介紹三種策略:概率性選擇、基于模型的選擇和基于規則的選擇。概率性選擇是通過從概率分布中采樣進行優化,而基于模型的選擇則由模型指導選擇最合適的例子。在基于規則的選擇中,使用特定預定的規則或啟發式來選擇最合適的例子。

概率性選擇:作者專門選擇了三種代表性的概率性選擇策略,包括 MHM、QMDP 和 BUGLAB-Aug。MHM 采用 Metropolis-Hastings 概率采樣方法,這是一種馬爾可夫鏈蒙特卡洛技術,用于通過標識符替換選擇對抗性示例。QMDP 使用 Q-learning 方法來戰略性地選擇和執行基于規則的結構轉換。

基于模型的選擇:采用這種策略的一些數據增強技術利用模型的梯度信息來指導增強樣例的選擇。一個典型的方法是數據增強 MP 方法,它基于模型損失進行優化,選擇并通過變量重命名生成對抗性示例。SPACE 通過梯度上升對代碼標識符的嵌入進行選擇和擾動,目標是在保持編程語言的語義和語法正確性的同時最大化模型的性能影響。

基于規則的選擇:基于規則的選擇是一種強大的方法,它使用預定的適應度函數或規則。這種方法通常依賴于決策指標。例如,IRGen 使用基于遺傳算法的優化技術和基于 IR 相似性的適應度函數。而 ACCENT 和 RA 數據增強 R 分別使用 BLEU 和 CodeBLEU 等評估指標來指導選擇和替換過程,以實現最大的對抗性影響。

應用場景

在幾種常見的代碼場景中,數據增強方法可被直接應用。

對抗性示例用于穩健性:穩健性在軟件工程中是一個關鍵且復雜的維度。設計有效的數據增強技術來生成對抗性示例,以識別和減輕代碼模型中的漏洞,已成為近年來的一個研究熱點。多個研究利用各種數據增強方法測試和增強模型的穩健性,進一步加強了代碼模型的穩健性。

低資源領域:在軟件工程領域,編程語言資源嚴重不平衡。流行的編程語言如 Python 和 Java 在開源倉庫中扮演主要角色,而許多語言如 Rust 資源非常匱乏。代碼模型通常基于開源倉庫和論壇進行訓練,編程語言資源的不平衡可能會對它們在資源匱乏的編程語言上的性能產生不利影響。在低資源領域內應用數據增強方法是一個反復出現的主題。

檢索增強:在自然語言處理和代碼領域,檢索增強的數據增強應用越來越受到關注。這些針對代碼模型的檢索增強框架在預訓練或微調代碼模型時納入來自訓練集的檢索增強示例,這種增強方法提高了模型的參數效率。

對比學習:對比學習是另一個代碼場景中部署數據增強方法的應用領域。它使模型能夠學習一個嵌入空間,在這個空間中,相似樣本彼此接近,而不相似的樣本則相距較遠。數據增強方法被用于構造與正樣本相似的樣例,以提高模型在缺陷檢測、克隆檢測和代碼搜索等任務中的性能。

文章又接著討論了幾個常見的代碼任務以及評估數據集上的數據增強工作,包括克隆檢測、缺陷檢測和修復、代碼摘要、代碼搜索、代碼生成和代碼翻譯。

挑戰與機遇

作者認為代碼數據增強方面面臨著許多顯著的挑戰。然而,正是這些挑戰為這一領域的新可能性和令人激動的機遇鋪平了道路。

理論探討:目前,對代碼中數據增強方法的深入探索和理論理解存在明顯差距。大多數現有研究集中在圖像處理和自然語言領域,將數據增強視為一種應用預先存在的關于數據或任務不變性的知識的方法。轉向代碼時,雖然以前的工作引入了新方法或演示了數據增強技術如何有效,但它們經常忽略了特別是從數學角度來看的原因和方式。代碼的離散性質使得理論討論變得更為重要。理論討論使大家能夠從更廣闊的視角理解數據增強,而不僅僅是根據實驗結果。

預訓練模型的更多研究:近年來,預訓練的代碼模型在代碼領域得到了廣泛應用,通過大規模語料庫的自我監督積累了豐富的知識。盡管許多研究利用預訓練代碼模型進行了數據增強,但大多數嘗試仍局限于遮罩令牌替換或微調后的直接生成。在代碼領域中,利用大規模語言模型的數據增強潛力是一個新興的研究機會。

不同于以前在數據增強中使用預訓練模型的方式,這些工作開啟了「基于提示的數據增強」時代。然而,在代碼領域中,基于提示的數據增強探索仍然是一個相對未被觸及的研究領域。

處理特定領域數據:作者重點調查了處理代碼的常見下游任務的數據增強技術。然而,作者意識到在代碼領域的其他特定任務數據方面仍有少量研究。例如,API 推薦和 API 序列生成可以被視為代碼任務的一部分。作者觀察到在這兩個不同層次之間的數據增強技術存在差距,為未來工作探索提供了機會。

項目級別代碼和低資源編程語言的更多探索:現有方法在函數級別代碼片段和常見編程語言方面取得了足夠的進展。同時,低資源語言的增強方法雖然需求更大,但卻相對稀缺。在這兩個方向的探索仍然有限,作者認為它們可能是有前景的方向。

緩解社會偏見:隨著代碼模型在軟件開發中的進步,它們可能被用于開發以人為中心的應用程序,如人力資源和教育,其中偏見程序可能導致對代表性不足的人群做出不公正和不道德的決定。雖然 NLP 中的社會偏見已經得到了很好的研究并可以通過數據增強進行緩解,但代碼中的社會偏見尚未受到關注。

小樣本學習:在小樣本場景中,模型需要實現與傳統機器學習模型相媲美的性能,但訓練數據極其有限。數據增強方法為這個問題提供了直接的解決方案。然而,在小樣本場景中采用數據增強方法的工作還很有限。在少數樣本場景中,如何通過生成高質量的增強數據為模型提供快速泛化和問題解決能力,作者覺得這是一個有趣的問題。

多模態應用:需要注意的是,僅關注函數級別的代碼片段并不能準確地代表真實世界編程情況的復雜性和細微差別。在這種情況下,開發人員通常同時處理多個文件和文件夾。盡管這些多模態應用變得越來越流行,但尚未有研究對它們應用數據增強方法。挑戰之一是在代碼模型中有效地橋接每種模態的嵌入表示,這已在視覺 - 語言多模態任務中進行了研究。

缺乏統一:當前的代碼數據增強文獻呈現出一個具有挑戰性的景觀,其中最流行的方法通常被描繪為輔助性的。一些實證研究試圖比較代碼模型的數據增強方法。然而,這些工作沒有利用大多數現有的先進數據增強方法。盡管存在針對計算機視覺(如 PyTorch 中的默認增強庫)和 NLP(如 NL-Augmenter)的公認數據增強框架,但對于代碼模型的通用數據增強技術相應庫明顯缺失。此外,由于現有數據增強方法通常使用各種數據集進行評估,因此很難確定其有效性。因此,作者認為通過建立標準化和統一的基準任務,以及用于比較和評估不同增強方法的有效性的數據集,將大大促進數據增強研究的進展。這將為更系統和比較性地理解這些方法的優勢和局限性鋪平道路。

責任編輯:張燕妮 來源: 機器之心
相關推薦

2017-07-06 13:18:37

深度學習應用問題及趨勢

2013-11-11 11:10:03

WE大會馬化騰

2009-06-12 13:59:04

2014-02-18 11:24:07

云計算PaaS

2013-04-26 17:48:04

WWDC

2020-12-16 22:51:04

5G通訊網絡

2022-06-10 15:51:22

機器學習數據模型學習

2013-08-05 10:19:34

小時代電影大數據

2024-04-08 00:12:19

2023-01-13 16:43:13

深度學習模型數據集

2018-03-29 10:38:14

2025-04-08 09:40:00

DWD數據倉庫大數據

2019-07-19 15:42:57

Hadoop大數據YuniKorn

2025-01-02 08:48:28

2021-08-27 07:47:06

gecode

2018-08-28 16:35:57

2021-11-10 11:46:49

《魷魚游戲》網絡安全安全觀察

2019-06-06 08:24:38

2018-01-03 08:31:43

前端開發圖標

2018-01-10 15:15:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩二区| 久久久亚洲成人 | 欧美日韩三区 | 国产在线一区二 | 手机三级电影 | 欧美在线a| 久久午夜电影 | 久久99久久久久 | www日本在线播放 | 欧美男人天堂 | 亚洲精彩视频 | 天天干亚洲| 成人精品一区二区三区四区 | 午夜www | 亚洲精品99 | 中文在线一区二区 | 亚洲自拍偷拍av | 国产精品视频久久久久久 | 欧美激情欧美激情在线五月 | 中文字幕日韩欧美一区二区三区 | 少妇特黄a一区二区三区88av | 天天干天天操天天看 | 五月婷婷丁香 | 中文字幕日韩专区 | 久在线| 中文字幕三区 | 91在线中文字幕 | 欧美日韩电影一区二区 | 日韩视频在线免费观看 | 99福利在线观看 | 亚洲欧美一区二区三区在线 | 男女羞羞视频在线免费观看 | 米奇成人网 | 污视频免费在线观看 | 国产精品久久久久久吹潮日韩动画 | av一级在线观看 | 国产精品成人一区二区三区夜夜夜 | 亚洲国产精品一区二区www | 日韩在线免费视频 | 九九亚洲 | 免费xxxx大片国产在线 |