源代碼模型的數據增強方法
如果您想添加論文,請不要給我們發送電子郵件。相反,請閱讀用於添加新條目並發送拉動請求的協議。
我們按代碼作者身份歸因,克隆檢測,缺陷檢測和維修,代碼摘要,代碼搜索,代碼完成,代碼轉換,代碼求出,問題分類,方法名稱預測和類型預測。
該存儲庫基於我們的論文,《深度學習:調查》的源代碼數據。您可以如下引用:
@article{zhuo2023source,
title={Source Code Data Augmentation for Deep Learning: A Survey},
author={Terry Yue Zhuo and Zhou Yang and Zhensu Sun and Yufei Wang and Li Li and Xiaoning Du and Zhenchang Xing and David Lo},
year={2023},
eprint={2305.19915},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
作者:特里·尤(Terry Yue
注意:WIP。很快將從我們的調查文件中添加更多論文。詢問應轉向[email protected],或通過在此處打開問題。
代碼作者歸因
| 紙 | 評估數據集 |
|---|
| 預先訓練的代碼模型的自然攻擊(ICSE'22) | GCJ |
| ROPGEN:通過自動編碼樣式轉換(ICSE'22)朝著強大的代碼作者歸因 | GCJ,github |
| 通過數據增強來增強源代碼學習(ARXIV'23) | GCJ |
| 代碼差異指導的對抗示例生成深代碼模型ASE'23 | GCJ |
克隆檢測
| 紙 | 數據集 |
|---|
| 對比代碼表示學習(EMNLP'22) | JavaScript(特定於紙) |
| 通過程序轉換(JSS'22)進行數據增強 | BCB |
| 預先訓練的代碼模型的自然攻擊(ICSE'22) | BigCloneBench |
| 釋放編譯器中間表示的力量以增強神經程序嵌入(ICSE'22) | POJ-104,GCJ |
| HELOC:源代碼表示的分層對比度學習(ICPC'22) | gcj,ojclone |
| 組合:使用對比度學習(Arxiv'22)的二進制代碼的預訓練表示 | BinaryCorp-3M |
| 評估對比度學習的各種代碼克隆檢測的代碼表示(ARXIV'22) | POJ-104,CodeForces |
| 從程序對比中學習(DIS) - 源代碼的類似性(ACL'22) | POJ-104,BigCloneBench |
| REACC:檢索授權的代碼完成框架(ACL'22) | codenet |
| 橋接預訓練的模型和下游任務,以了解源代碼理解(ICSE'22) | POJ-104 |
| 通過數據增強來增強源代碼學習:一項實證研究(ARXIV'23) | BigCloneBench |
| Clawsat:朝著穩健和準確的代碼模型(Saner'22)邁進 | --- |
| Contrabert:通過對比度學習增強代碼預訓練的模型(ICSE'22) | POJ-104 |
| 利用基於跨組合的數據增強的途徑進行跨語言克隆檢測(ICPC'23) | clcdsa |
| 代碼差為深度代碼模型的對抗示例生成(ASE'23 | BigCloneBench |
| 基於多模式對比學習的增強代碼表示的預訓練方法(Jos'23) | POJ-104,BigCloneBench |
| 協和:源代碼的克隆意識對比學習(ISSTA'23) | Codenet(Java),POJ104 |
| 具有跨語言中間表示(arxiv'23)的神經符號零射擊代碼克隆克隆 | CodEnet(C,COBOL) |
| 代碼預訓練模型的多目標後門攻擊(ACL'23) | BCB |
缺陷檢測和修復
| 紙 | 數據集 |
|---|
| 代碼模型的對抗示例(OOPSLA'20) | Varmisuse |
| 自我監督的錯誤檢測和修復(Neurips'21) | Randombugs,pypibugs |
| 語義保護對抗代碼理解(Coling'22) | 缺陷4J |
| 路徑敏感的代碼通過對比度學習軟件漏洞檢測(ISSTA'22)嵌入 | D2A,風扇,devign |
| 預先訓練的代碼模型的自然攻擊(ICSE'22) | 偏差 |
| 組合:使用對比度學習(Arxiv'22)的二進制代碼的預訓練表示 | Sysevr |
| 從程序對比中學習(DIS) - 源代碼的類似性(ACL'22) | 揭示,codexglue |
| 通過數據增強來增強源代碼學習:一項實證研究(ARXIV'23) | 重構,codrep1 |
| MixCode:通過基於混合的數據擴展增強代碼分類(Saner'23) | 重構,codrep1 |
| Contrabert:通過對比度學習增強代碼預訓練的模型(ICSE'23) | 偏差 |
| 代碼差異指導的對抗示例生成的深代碼模型(ASE'23) | devign,codechef |
| Mufin:通過反向翻譯改善神經修復模型(ARXIV'23) | 缺陷4J(特定於紙張),quixbugs(紙特定) |
| 利用因果推斷進行可解釋的自動程序維修(IJCNN'22) | 缺陷4J,quixbugs,bugaid |
| deepdebug:使用堆棧跟踪,反射和代碼骨架(Arxiv'21)修復Python錯誤 | 紙特定 |
| Break-It-Fix-IT:無監督的計劃維修學習(ARXIV'21) | 紙特異性,深色 |
| 代碼預訓練模型的多目標後門攻擊(ACL'23) | 偏差。 bug2fix |
| 推論:通過LLM在檢索提示(ARXIV'23)上使用LLMS進行端到端計劃維修(ARXIV'23) | 推斷蟲 |
| RAP-GEN:使用CODET5進行自動程序維修的檢索添加貼片生成(FSE'23) | tfix,bug2fix,缺陷4J |
| 錯誤報告太少了?探索基於更改的錯誤本地化的數據增強(ARXIV'23) | 基因座數據 |
代碼摘要
| 紙 | 數據集 |
|---|
| 通過數據擴展(Internetware'20)培訓深度代碼評論生成模型 | TL-Codesum |
| 基於檢索的神經源代碼摘要(ICSE'20) | PCSD,JCSD |
| 使用優化的混淆(ICLR'21)生成對抗計算機程序 | Python-150K,Code2Seq數據 |
| 對比代碼表示學習(EMNLP'21) | JavaScript(特定於紙) |
| 基於搜索的測試框架,用於源代碼嵌入的深神經網絡(ICST'21) | 紙特定 |
| 通過Hybrid GNN(ICLR'21)檢索代碼摘要的檢索生成 | CCSD(特定於紙) |
| Bashexplainer:基於微調Codebert(ICMSE'22)的檢索式bash代碼評論生成 | Bashexplaner數據 |
| 通過程序轉換(JSS'22)進行數據增強 | Deepcom |
| 深度代碼評論生成的對抗性魯棒性(TOSEM'22) | CCSD(特定於紙) |
| 沒有足夠的數據?代碼摘要的簡單數據增強(PAAP'22) | --- |
| 源代碼模型的語義魯棒性(Saner'22) | Python-150K,Code2Seq數據 |
| 通過代碼轉換仔細研究基於變壓器的代碼智能:挑戰和機遇(ARXIV'22) | codesearchnet(python,java) |
| Clawsat:朝著穩健和準確的代碼模型(Saner'23)邁向 | --- |
| 探索代碼生成任務的數據增強(EACL'23) | codesearchnet(codexglue) |
| 通過數據增強和語義感知Codebert(Arxiv'23)發表評論的生成(ARXIV'23) | Bashexplaner數據 |
| 讀取:源代碼摘要檢索自適應變壓器(Access'23) | PCSD |
| 電車:源代碼摘要的令牌級檢索機制(ARXIV'23) | PCSD,CCSD,DeepCom |
| 兩隻帶有一塊石頭的鳥:通過生成對抗網絡(OOPSLA'23)提高代碼生成和代碼搜索 | codesearchnet(python,java) |
| 通過自我完善的更好的代碼語言模型(ACL'23) | codesearchnet |
代碼搜索
| 紙 | 數據集 |
|---|
| 增強碼:檢查自然語言資源在代碼檢索模型中的影響(ARXIV'21) | codesearchnet |
| COSQA:20,000+ Web查詢用於代碼搜索和問答(ACL'21) | cosqa |
| 基於搜索的測試框架,用於源代碼嵌入的深神經網絡(ICST'21) | 紙特定 |
| 語義保護對抗代碼理解(Coling'22) | codesearchnet |
| 探索代碼搜索的表示級級增強(EMNLP'22) | codesearchnet |
| 代碼搜索的跨模式對比度學習(ICSME'22) | AdvTest,Cosqa |
| 橋接預訓練的模型和下游任務,以了解源代碼理解(ICSE'22) | codesearchnet |
| 通過代碼轉換仔細研究基於變壓器的代碼智能:挑戰和機遇(ARXIV'22) | codesearchnet(python,java) |
| Contrabert:通過對比度學習增強代碼預訓練的模型(ICSE'23) | AdvTest,WebQueryTest |
| Cocosoda:有效的代碼搜索對比度學習(ICSE'23) | codesearchnet |
| 與基於關鍵字的數據增強的對比度學習,用於代碼搜索和代碼問題答案(EACL'23) | WebqueryTest |
| 基於多模式對比學習的增強代碼表示的預訓練方法(Jos'23) | codesearchnet |
| 重新考慮代碼搜索中的負面對(EMNLP'23) | codesearchnet |
| 通過跨語性對比學習進行更好的多語言代碼搜索(Internetware'23) | xlcost |
| McOdesearcher:代碼搜索的多視圖對比度學習(Internetware'23) | codesearchnet(Python,java),cosqa,staqc,webquery |
| Mulcs:邁向多語言代碼搜索的統一深度表示(Saner'23) | codesearchnet(python,java),特定於紙張 |
| 兩隻帶有一塊石頭的鳥:通過生成對抗網絡(OOPSLA'23)提高代碼生成和代碼搜索 | codesearchnet(python,java) |
代碼完成
| 紙 | 數據集 |
|---|
| 使用圖形(ICLR'19)的生成代碼建模 | ECTRGEN數據(特定於紙張) |
| 程序合成模型的對抗性魯棒性(Aiplans'21) | Algolisp |
| REACC:檢索授權的代碼完成框架(ACL'22) | PY150(codexglue),githhub java(codexglue) |
| 通過功能上等效的神經代碼生成的測試驅動的多任務學習(ASE'22) | MBPP |
| 在神經代碼生成中,好的方法名稱有多重要?模型魯棒性觀點(Arxiv'22) | 精製的提議,精製的pytorrent |
| 通過代碼轉換仔細研究基於變壓器的代碼智能:挑戰和機遇(ARXIV'22) | codesearchnet(python,java) |
| RECODE:代碼生成模型的魯棒性評估(ACL'23) | Humaneval,MBPP |
| Clawsat:朝著穩健和準確的代碼模型(Saner'23)邁向 | --- |
| 基於檢索的及時選擇與代碼相關的少量學習(ICSE'23) | Atlas,Tfix |
| Rustgen:一種使用大語言模型生成可編譯的鏽蝕代碼的增強方法(Deployableablegenerativeai'23) | 紙特定 |
| 代碼預訓練模型的多目標後門攻擊(ACL'23) | githhub java(codexglue) |
| 域自適應代碼通過語言模型和解耦域數據庫完成(ASE'23) | 紙特定 |
| APICOM:通過及時學習和基於對抗培訓的數據增強(Internetware'23)自動完成API | 紙特定 |
| 通過功能上等效的神經代碼生成的測試驅動的多任務學習(ASE'22) | MBPP |
| 通過自我完善的更好的代碼語言模型(ACL'23) | 主張 |
代碼翻譯
| 紙 | 數據集 |
|---|
| 利用無監督的代碼翻譯(ICLR'23)的自動單元測試 | 紙張 |
| 探索代碼生成任務的數據增強(EACL'23) | CodeTrans(codexglue) |
| 總結並生成反向譯本:編程語言的無監督翻譯(EACL'23) | 轉編碼數據 |
| Contrabert:通過對比度學習增強代碼預訓練的模型(ICSE'23) | CodeTrans(codexglue) |
| 帶有編譯器表示的代碼翻譯(ICLR'23) | 轉編碼數據 |
| 具有可比CORPORA和多個參考的代碼翻譯的數據增強(EMNLP'23) | 轉編碼數據 |
| 評估和改善預訓練模型的代碼翻譯模型的句法對抗性魯棒性(ARXIV'23) | 頭像 |
| 代碼預訓練模型的多目標後門攻擊(ACL'23) | 轉編碼數據 |
代碼問題回答
| 紙 | 數據集 |
|---|
| COSQA:20,000+ Web查詢用於代碼搜索和問答(ACL'21) | cosqa |
| 語義保護對抗代碼理解(Coling'22) | codeqa |
| 與基於關鍵字的數據增強的對比度學習,用於代碼搜索和代碼問題答案(EACL'23) | cosqa |
| McOdesearcher:代碼搜索的多視圖對比度學習(Internetware'23) | Webquery(特定於紙) |
代碼分類
| 紙 | 數據集 |
|---|
| 生成對源代碼處理模型魯棒性(AAAI'20)的對抗性示例(AAAI'20) | OJ |
| 通過基於Q學習的Markov決策過程(QRS'21)生成源代碼分類模型的對抗性示例 | OJ |
| HELOC:源代碼表示的分層對比度學習(ICPC'22) | GCJ,OJ |
| 組合:使用對比度學習(Arxiv'22)的二進制代碼的預訓練表示 | POJ-104(codexglue) |
| 橋接預訓練的模型和下游任務,以了解源代碼理解(ICSE'22) | POJ-104 |
| 通過數據增強來增強源代碼學習:一項實證研究(ARXIV'23) | Java250,Python800 |
| MixCode:通過基於混合的數據擴展增強代碼分類(Saner'23) | Java250,Python800 |
| 代碼差異指導的對抗示例生成的深代碼模型(ASE'23) | GCJ |
| 增強的數據增強方法,以支持多類代碼可讀性分類(SEKE'22) | 紙特定 |
| 通過增強的數據增強方法改善多類代碼可讀性分類(130)(國際軟件工程和知識工程雜誌) | 紙特定 |
方法名稱預測
| 紙 | 數據集 |
|---|
| 代碼模型的對抗示例(OOPSLA'20) | code2vec |
| 基於搜索的測試框架,用於源代碼嵌入的深神經網絡(ICST'21) | 紙特定 |
| 關於神經程序模型關於語義保證程序轉換的普遍性(IST'21) | Code2Seq |
| 通過程序轉換(JSS'22)進行數據增強 | code2vec |
| 對代碼模型的離散對抗攻擊(PLDI'23) | code2vec |
類型預測
| 紙 | 數據集 |
|---|
| 代碼的對抗性魯棒性(ICML'21) | DeepTyper |
| 對比代碼表示學習(EMNLP'21) | DeepTyper |
| 統計類型推理的跨語性轉移學習(ISSTA'22) | DeepTyper,Typilus(Python),CodesearchNet(Java) |
致謝
我們感謝Steven Y. Feng等。對於他們在dataug4nlp上的開源紙張列表。