Pendekatan augmentasi data untuk model kode sumber
Jika Anda ingin menambahkan kertas Anda, jangan email kami. Sebaliknya, baca protokol untuk menambahkan entri baru dan kirim permintaan tarik.
Kami mengelompokkan makalah dengan atribusi kode kepenulisan, deteksi klon, deteksi dan perbaikan cacat, peringkasan kode, pencarian kode, penyelesaian kode, terjemahan kode, penjawab pertanyaan kode, klasifikasi masalah, prediksi nama metode, dan tipe prediksi.
Repositori ini didasarkan pada makalah kami, augmentasi data kode sumber untuk pembelajaran mendalam: survei. Anda dapat mengutipnya sebagai berikut:
@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}
}
Penulis: Terry Yue Zhuo, Zhou Yang, Zhensu Sun, Yufei Wang, Li Li, Xiaoning Du, Zhenchang Xing, David Lo
Catatan: WIP. Lebih banyak makalah akan ditambahkan dari makalah survei kami ke repo ini segera. Pertanyaan harus diarahkan ke [email protected] atau dengan membuka masalah di sini.
Atribusi Kode kepenulisan
| Kertas | Dataset Evaluasi |
|---|
| Serangan alami untuk model kode pra-terlatih (ICSE'22) | GCJ |
| Ropgen: Menuju Atribusi Kode Kode yang kuat melalui Transformasi Gaya Pengodean Otomatis (ICSE'22) | GCJ, GitHub |
| Meningkatkan Kode Sumber Pembelajaran dengan Augmentasi Data (Arxiv'23) | GCJ |
| Perbedaan Kode Dipandu Contoh Persetujuan Generasi untuk Model Kode Mendalam Ase'23 | GCJ |
Deteksi Klon
| Kertas | Kumpulan data |
|---|
| Pembelajaran Representasi Kode Kontras (EMNLP'22) | Javascript (khusus kertas) |
| Augmentasi Data oleh Transformasi Program (JSS'22) | BCB |
| Serangan alami untuk model kode pra-terlatih (ICSE'22) | BigClonebench |
| Melepaskan Kekuatan Representasi Intermediate Kompiler untuk Meningkatkan Embeddings Program Saraf (ICSE'22) | POJ-104, GCJ |
| HELOC: Pembelajaran Kontras Hierarkis Representasi Kode Sumber (ICPC'22) | GCJ, Ojclone |
| Combo: Representasi pra-pelatihan kode biner menggunakan pembelajaran kontras (arxiv'22) | BinaryCorp-3m |
| Evaluasi pembelajaran kontras dengan berbagai representasi kode untuk deteksi klon kode (arxiv'22) | POJ-104, Codeforces |
| Menuju Pembelajaran (Dis) -Senimpilitas Kode Sumber dari Kontras Program (ACL'22) | POJ-104, BigClonebench |
| REACC: Kerangka Penyelesaian Kode Pengambilan (ACL'22) | Codenet |
| Menjembatani model pra-terlatih dan tugas hilir untuk pemahaman kode sumber (ICSE'22) | POJ-104 |
| Meningkatkan Kode Sumber Pembelajaran dengan Augmentasi Data: Studi Empiris (Arxiv'23) | BigClonebench |
| Clawsat: Menuju model kode yang kuat dan akurat (Saner'22) | --- |
| Contrabert: Meningkatkan model model terlatih melalui pembelajaran kontras (ICSE'22) | POJ-104 |
| Jalur untuk memanfaatkan augmentasi data berbasis transompiler untuk deteksi klon lintas bahasa (ICPC'23) | Clcdsa |
| Perbedaan Kode Dipandu Contoh Generasi Contoh untuk Model Kode Mendalam (ASE'23 | BigClonebench |
| Metode pra-pelatihan untuk representasi kode yang ditingkatkan berdasarkan pembelajaran kontras multimodal (Jos'23) | POJ-104, BigClonebench |
| Concord: Pembelajaran kontras yang sadar klon untuk kode sumber (ISSTA'23) | Codenet (Java), POJ104 |
| Neuro-Symbolic Zero-Shot Code Cloning dengan representasi perantara lintas bahasa (Arxiv'23) | Codenet (C, COBOL) |
| Serangan backdoor multi-target untuk model model terlatih (ACL'23) | BCB |
Deteksi dan Perbaikan Cacat
| Kertas | Kumpulan data |
|---|
| Contoh permusuhan untuk model kode (oopsla'20) | Varmisuse |
| Deteksi dan Perbaikan Bug yang Di-swadaya (Neurips'21) | Randombugs, Pypibugs |
| Pemahaman kode permusuhan pemeliharaan semantik (Coling'22) | Cacat4J |
| Path-sensitive code embedding melalui pembelajaran kontras untuk deteksi kerentanan perangkat lunak (ISSTA'22) | D2A, Fan, Devign |
| Serangan alami untuk model kode pra-terlatih (ICSE'22) | Penyimpangan |
| Combo: Representasi pra-pelatihan kode biner menggunakan pembelajaran kontras (arxiv'22) | Sysevr |
| Menuju Pembelajaran (Dis) -Senimpilitas Kode Sumber dari Kontras Program (ACL'22) | Mengungkapkan, codexglue |
| Meningkatkan Kode Sumber Pembelajaran dengan Augmentasi Data: Studi Empiris (Arxiv'23) | Refactory, codrep1 |
| MixCode: Peningkatan Klasifikasi Kode dengan Augmentasi Data Berbasis MixUp (Saner'23) | Refactory, codrep1 |
| Contrabert: Meningkatkan model model terlatih melalui pembelajaran kontras (ICSE'23) | Penyimpangan |
| Kode Perbedaan Dipandu Contoh Persetujuan Pembuatan untuk Model Kode Mendalam (ASE'23) | Devign, Codechef |
| MUFIN: Meningkatkan model perbaikan saraf dengan translasi belakang (Arxiv'23) | Cacat4J (khusus kertas), quixbugs (khusus kertas) |
| Memanfaatkan inferensi kausal untuk perbaikan program otomatis yang dapat dijelaskan (IJCNN'22) | Cacat4J, Quixbugs, Bugaid |
| Deepdebug: Memperbaiki bug Python menggunakan jejak tumpukan, transtranslasi, dan kerangka kode (Arxiv'21) | Kertas-spesifik |
| Break-it-fix-it: Pembelajaran tanpa pengawasan untuk perbaikan program (Arxiv'21) | Kertas-spesifik, DeepFix |
| Serangan backdoor multi-target untuk model model terlatih (ACL'23) | Penyimpangan. BUG2FIX |
| Inferfix: Perbaikan program ujung ke ujung dengan LLMS over retrieval-augmented prompts (arxiv'23) | Inferredbugs |
| Rap-Gen: Pembuatan tambalan Augmented Retrieval dengan CODET5 untuk Perbaikan Program Otomatis (FSE'23) | Tfix, bug2fix, cacat4j |
| Terlalu sedikit laporan bug? Menjelajahi Augmentasi Data untuk Peningkatan Lokalisasi Bug Berbasis ChangeTet (ARXIV'23) | Data lokus |
Ringkasan Kode
| Kertas | Kumpulan data |
|---|
| Pelatihan Model Pembuatan Komentar Kode Dalam Melalui Augmentasi Data (Internetware'20) | Tl-codesum |
| Ringkasan Kode Sumber Saraf Berbasis Pengambilan (ICSE'20) | PCSD, JCSD |
| Menghasilkan program komputer permusuhan menggunakan kebingungan yang dioptimalkan (ICLR'21) | Data Python-150k, Code2Seq |
| Pembelajaran Representasi Kode Kontras (EMNLP'21) | Javascript (khusus kertas) |
| Kerangka pengujian berbasis pencarian untuk jaringan saraf dalam embedding kode sumber (ICST'21) | Kertas-spesifik |
| Generasi Pengambilan-Agung untuk Ringkasan Kode melalui Hybrid GNN (ICLR'21) | CCSD (khusus kertas) |
| BASHEXPLAINER: Retrieval-Agusted Bash Code Comment Generation Berdasarkan Codebert yang disempurnakan (ICMSE'22) | Data Bashexplaner |
| Augmentasi Data oleh Transformasi Program (JSS'22) | Deepcom |
| Ketahanan Perselisihan Pembuatan Komentar Kode Mendalam (Tosem'22) | CCSD (khusus kertas) |
| Tidak punya cukup data? Augmentasi data yang mudah untuk ringkasan kode (paap'22) | --- |
| Ketahanan semantik model kode sumber (Saner'22) | Data Python-150k, Code2Seq |
| Pandangan yang lebih dekat ke intelijen kode berbasis transformator melalui transformasi kode: tantangan dan peluang (arxiv'22) | CodeSearchNet (Python, Java) |
| Clawsat: Menuju model kode yang kuat dan akurat (Saner'23) | --- |
| Menjelajahi augmentasi data untuk tugas pembuatan kode (EACL'23) | CodeSearchNet (Codexglue) |
| BASH COMMENT GENERASI VIA Data augmentation dan Semantic-Aware Codebert (Arxiv'23) | Data Bashexplaner |
| Readsum: Transformator Adaptif Pengambilan-Agung untuk Ringkasan Kode Sumber (Access'23) | PCSD |
| Trem: Mekanisme Pengambilan Level Token untuk Ringkasan Kode Sumber (Arxiv'23) | PCSD, CCSD, Deepcom |
| Two Birds With One Stone: Meningkatkan Pembuatan Kode dan Pencarian Kode Melalui Jaringan Perpisahan Generatif (Oopsla'23) | CodeSearchNet (Python, Java) |
| Model Kode Bahasa yang Lebih Baik Melalui Peningkatan Diri (ACL'23) | CodesearchNet |
Pencarian Kode
| Kertas | Kumpulan data |
|---|
| AugmentedCode: Meneliti efek sumber daya bahasa alami dalam model pengambilan kode (Arxiv'21) | CodesearchNet |
| COSQA: 20, 000+ kueri web untuk pencarian kode dan penjawab pertanyaan (ACL'21) | Cosqa |
| Kerangka pengujian berbasis pencarian untuk jaringan saraf dalam embedding kode sumber (ICST'21) | Kertas-spesifik |
| Pemahaman kode permusuhan pemeliharaan semantik (Coling'22) | CodesearchNet |
| Menjelajahi augmentasi tingkat representasi untuk pencarian kode (EMNLP'22) | CodesearchNet |
| Pembelajaran kontras lintas modal untuk pencarian kode (ICSME'22) | Advtest, Cosqa |
| Menjembatani model pra-terlatih dan tugas hilir untuk pemahaman kode sumber (ICSE'22) | CodesearchNet |
| Pandangan yang lebih dekat ke intelijen kode berbasis transformator melalui transformasi kode: tantangan dan peluang (arxiv'22) | CodeSearchNet (Python, Java) |
| Contrabert: Meningkatkan model model terlatih melalui pembelajaran kontras (ICSE'23) | AdvTest, WebQueryTest |
| Cocosoda: Pembelajaran kontras yang efektif untuk pencarian kode (ICSE'23) | CodesearchNet |
| Pembelajaran Kontras dengan Augmentasi Data Berbasis Kata Kunci Untuk Pencarian Kode dan PENJUALAN KODE KODE (EACL'23) | WebQueryTest |
| Metode pra-pelatihan untuk representasi kode yang ditingkatkan berdasarkan pembelajaran kontras multimodal (Jos'23) | CodesearchNet |
| Memikirkan kembali pasangan negatif dalam pencarian kode (EMNLP'23) | CodesearchNet |
| Menuju pencarian kode multibahasa yang lebih baik melalui pembelajaran kontras lintas-bahasa (Internetware'23) | Xlcost |
| McOdesearcher: Multi-View Pembelajaran Kontrastif untuk Pencarian Kode (Internetware'23) | CodesearchNet (Python, Java), COSQA, STAQC, WebQuery |
| Mulcs: Menuju representasi mendalam terpadu untuk pencarian kode multibahasa (Saner'23) | CodeSearchNet (Python, Java), khusus kertas |
| Two Birds With One Stone: Meningkatkan Pembuatan Kode dan Pencarian Kode Melalui Jaringan Perpisahan Generatif (Oopsla'23) | CodeSearchNet (Python, Java) |
Penyelesaian kode
| Kertas | Kumpulan data |
|---|
| Model Kode Generatif dengan Grafik (ICLR'19) | Data Expren (khusus kertas) |
| Kekokohan Model Sintesis Program (AIPLANS'21) | Algolisp |
| REACC: Kerangka Penyelesaian Kode Pengambilan (ACL'22) | PY150 (Codexglue), Githhub Java (Codexglue) |
| Pembelajaran multi-tugas yang digerakkan oleh uji dengan transformasi kode yang setara secara fungsional untuk pembuatan kode saraf (ASE'22) | Mbpp |
| Seberapa penting nama metode yang baik dalam pembuatan kode saraf? Perspektif Ketahanan Model (Arxiv'22) | Konsode halus, pytorrent halus |
| Pandangan yang lebih dekat ke intelijen kode berbasis transformator melalui transformasi kode: tantangan dan peluang (arxiv'22) | CodeSearchNet (Python, Java) |
| Recode: Evaluasi Ketahanan Model Pembuatan Kode (ACL'23) | Humaneval, mbpp |
| Clawsat: Menuju model kode yang kuat dan akurat (Saner'23) | --- |
| Pilihan cepat berbasis pengambilan untuk pembelajaran beberapa shot terkait kode (ICSE'23) | Atlas, tfix |
| Rustgen: Pendekatan augmentasi untuk menghasilkan kode karat yang dapat dikompilasi dengan model bahasa besar (DeployableGenerativeAi'23) | Kertas-spesifik |
| Serangan backdoor multi-target untuk model model terlatih (ACL'23) | Githhub Java (Codexglue) |
| Penyelesaian kode adaptif domain melalui model bahasa dan database domain yang dipisahkan (ASE'23) | Kertas-spesifik |
| ApiCOM: Penyelesaian API Otomatis melalui Pembelajaran Prompt dan Augmentasi Data Berbasis Pelatihan (Internetware'23) | Kertas-spesifik |
| Pembelajaran multi-tugas yang digerakkan oleh uji dengan transformasi kode yang setara secara fungsional untuk pembuatan kode saraf (ASE'22) | Mbpp |
| Model Kode Bahasa yang Lebih Baik Melalui Peningkatan Diri (ACL'23) | KONDODE |
Terjemahan kode
| Kertas | Kumpulan data |
|---|
| Leveraging Tes Unit Otomatis untuk Terjemahan Kode Tanpa Dipersambut (ICLR'23) | specifc kertas |
| Menjelajahi augmentasi data untuk tugas pembuatan kode (EACL'23) | Codetrans (Codexglue) |
| Ringkas dan hasilkan untuk translate belakang: Terjemahan bahasa pemrograman yang tidak diawasi (EACL'23) | Data transkoder |
| Contrabert: Meningkatkan model model terlatih melalui pembelajaran kontras (ICSE'23) | Codetrans (Codexglue) |
| Terjemahan Kode dengan Representasi Kompiler (ICLR'23) | Data transkoder |
| Augmentasi data untuk terjemahan kode dengan korpora yang sebanding dan beberapa referensi (EMNLP'23) | Data transkoder |
| Menilai dan meningkatkan ketahanan permusuhan sintaksis dari model pra-terlatih untuk terjemahan kode (Arxiv'23) | Avatar |
| Serangan backdoor multi-target untuk model model terlatih (ACL'23) | Data transkoder |
Pertanyaan Kode menjawab
| Kertas | Kumpulan data |
|---|
| COSQA: 20, 000+ kueri web untuk pencarian kode dan penjawab pertanyaan (ACL'21) | Cosqa |
| Pemahaman kode permusuhan pemeliharaan semantik (Coling'22) | CodeQA |
| Pembelajaran Kontras dengan Augmentasi Data Berbasis Kata Kunci Untuk Pencarian Kode dan PENJUALAN KODE KODE (EACL'23) | Cosqa |
| McOdesearcher: Multi-View Pembelajaran Kontrastif untuk Pencarian Kode (Internetware'23) | WebQuery (khusus kertas) |
Klasifikasi Kode
| Kertas | Kumpulan data |
|---|
| Menghasilkan contoh permusuhan untuk memegang ketahanan model pemrosesan kode sumber (AAAI'20) | OJ |
| Menghasilkan contoh permusuhan model klasifikasi kode sumber melalui proses keputusan Markov berbasis Q-Learning (QRS'21) | OJ |
| HELOC: Pembelajaran Kontras Hierarkis Representasi Kode Sumber (ICPC'22) | GCJ, OJ |
| Combo: Representasi pra-pelatihan kode biner menggunakan pembelajaran kontras (arxiv'22) | POJ-104 (Codexglue) |
| Menjembatani model pra-terlatih dan tugas hilir untuk pemahaman kode sumber (ICSE'22) | POJ-104 |
| Meningkatkan Kode Sumber Pembelajaran dengan Augmentasi Data: Studi Empiris (Arxiv'23) | Java250, Python800 |
| MixCode: Peningkatan Klasifikasi Kode dengan Augmentasi Data Berbasis MixUp (Saner'23) | Java250, Python800 |
| Kode Perbedaan Dipandu Contoh Persetujuan Pembuatan untuk Model Kode Mendalam (ASE'23) | GCJ |
| Pendekatan augmentasi data yang ditingkatkan untuk mendukung klasifikasi keterbacaan kode multi-kelas (SEKE'22) | Kertas-spesifik |
| Meningkatkan klasifikasi keterbacaan kode multi-kelas dengan pendekatan augmentasi data yang ditingkatkan (130) (Jurnal Internasional Rekayasa Perangkat Lunak dan Rekayasa Pengetahuan) | Kertas-spesifik |
Prediksi Nama Metode
| Kertas | Kumpulan data |
|---|
| Contoh permusuhan untuk model kode (oopsla'20) | Code2Vec |
| Kerangka pengujian berbasis pencarian untuk jaringan saraf dalam embedding kode sumber (ICST'21) | Kertas-spesifik |
| Pada generalisasi model program saraf sehubungan dengan transformasi program pemeliharaan semantik (IST'21) | Code2seq |
| Augmentasi Data oleh Transformasi Program (JSS'22) | Code2Vec |
| Serangan permusuhan diskrit ke model kode (PLDI'23) | Code2Vec |
Ketik prediksi
| Kertas | Kumpulan data |
|---|
| Ketahanan Perselisihan untuk Kode (ICML'21) | Deeptyper |
| Pembelajaran Representasi Kode Kontras (EMNLP'21) | Deeptyper |
| Pembelajaran transfer lintas-bahasa untuk inferensi tipe statistik (ISSTA'22) | Deeptyper, Typilus (Python), CodesearchNet (Java) |
Pengakuan
Kami berterima kasih kepada Steven Y. Feng, dkk. untuk daftar kertas open-source mereka di dataaug4nlp.