亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

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

機器之心專欄

機器之心編輯部

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

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

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

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

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

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

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

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

背景介紹

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

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

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

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

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

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

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

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

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

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

策略與技術

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

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

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

概率性選擇:作者專門選擇了三種代表性的概率性選擇策略,包括 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)的公認數據增強框架,但對于代碼模型的通用數據增強技術相應庫明顯缺失。此外,由于現有數據增強方法通常使用各種數據集進行評估,因此很難確定其有效性。因此,作者認為通過建立標準化和統一的基準任務,以及用于比較和評估不同增強方法的有效性的數據集,將大大促進數據增強研究的進展。這將為更系統和比較性地理解這些方法的優勢和局限性鋪平道路。

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年7月8日 下午2:22
下一篇 2024年7月8日 下午2:34

相關推薦

  • 合同管理對工程造價的影響論文(合同管理對工程造價的影響)

    合同管理對工程造價的影響 合同管理是造價管理中非常重要的一環,它涉及到造價的制定、執行和結算。在合同管理中,我們需要確保所有涉及到的當事人都遵守合同規定,并且按照約定履行自己的義務…

    科研百科 2024年6月4日
    57
  • 項目 進度 管理 軟件

    項目進度管理軟件:提高項目管理效率 隨著現代商業競爭的加劇,企業對于項目進度的管理變得越來越重要。項目進度管理不僅可以幫助企業有效地組織和管理項目,還可以提高項目的效率和質量。因此…

    科研百科 2024年9月26日
    17
  • 最新!河北省市級以下事業單位領導人員管理暫行辦法(河北省事業單位領導干部管理辦法)

    日前,省委辦公廳印發《河北省市級以下事業單位領導人員管理暫行辦法》,并下發通知,要求各市(含定州、辛集市)、縣(市、區)黨委,雄安新區黨工委,省委各部委,省直各單位黨組(黨委),各…

    科研百科 2023年10月6日
    226
  • 怎樣管好“大國糧倉”(管好大國糧倉維護糧食安全)

    “洪范八政,食為政首”。糧食安全關系經濟發展、社會穩定、國家安全。如何確保“中國人的飯碗要牢牢端在自己手里,而且里面應該主要裝中國糧”?如何讓糧食儲備在穩市、備荒、恤農等方面發揮作…

    科研百科 2024年2月1日
    69
  • 科研項目院內初審

    科研項目院內初審 近年來,隨著科技的不斷發展,科研項目已經成為了國家科技創新的重要力量。作為科技創新的重要組成部分,科研項目的初審對于項目的質量、進度和成果都有著重要的影響。 在科…

    科研百科 2025年2月21日
    2
  • 科研項目是工程項目嗎

    科研項目是否可以稱為工程項目,取決于對工程項目的定義。 一般來說,工程項目是一個大型、復雜的、長期的任務,通常涉及建筑、安裝、測試、運營和維護等各個階段。工程項目通常需要多個團隊之…

    科研百科 2025年2月3日
    0
  • 教育部正式下達博士的計劃 時間 2024年

    教育部正式下達博士的計劃 時間 2024年 隨著國家高等教育政策的不斷更新和調整,博士教育已經成為我國高等教育的重要組成部分。近年來,我國博士教育的規模和水平不斷提高,但同時也面臨…

    科研百科 2024年12月2日
    0
  • 數字孿生助力歐陽海灌區水利工程晉升“智慧工程”

    歐陽海灌區數字孿生系統。 紅網時刻新聞11月15日訊(通訊員 徐君)2022年2月,水利部印發《水利部關于開展數字孿生流域建設先行先試工作的通知》,明確歐陽海灌區水利工程為湖南省數…

    科研百科 2022年12月14日
    364
  • 文件項目管理軟件

    文件項目管理軟件是一種用于管理和跟蹤文件、項目和任務的工具,可以幫助團隊更有效地協作和推進項目。本文將介紹文件項目管理軟件的一些常見功能和優點,以及如何選擇合適的軟件來適合自己團隊…

    科研百科 2024年7月22日
    36
  • 科研項目投產率怎么算

    科研項目投產率是指一個科研項目在完成并通過驗收后,實際產生收益或產品的數量與項目總投入量之間的比率。投產率是衡量一個科研項目成功實施的重要指標之一,也是項目組織者評估項目成果和制定…

    科研百科 2025年4月15日
    0