Approches d'augmentation des données pour les modèles de code source
Si vous souhaitez ajouter votre papier, ne nous envoyez pas un e-mail. Au lieu de cela, lisez le protocole pour ajouter une nouvelle entrée et envoyer une demande de traction.
Nous regroupons les articles par attribution de la paternité du code, la détection des clones, la détection et la réparation des défauts, la résumé du code, la recherche de code, l'achèvement du code, la traduction du code, la réponse à la question du code, la classification des problèmes, la prédiction du nom de la méthode et la prédiction de type.
Ce référentiel est basé sur notre article, augmentation des données du code source pour l'apprentissage en profondeur: une enquête. Vous pouvez le citer comme suit:
@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}
}
Auteurs: Terry Yue Zhuo, Zhou Yang, Zhensu Sun, Yufei Wang, Li Li, Xiaoning DU, Zhenchang Xing, David Lo
Remarque: WIP. Plus de documents seront ajoutés de notre document d'enquête à ce dépôt bientôt. Les demandes doivent être adressées à [email protected] ou en ouvrant un numéro ici.
Attribution de la paternité du code
| Papier | Ensembles de données d'évaluation |
|---|
| Attaque naturelle pour les modèles de code pré-formés (ICSE'22) | GCJ |
| ROPGEN: Vers un code robuste Attribution de la paternité via la transformation du style de codage automatique (ICSE'22) | Gcj, github |
| Stimulation d'apprentissage du code source avec augmentation des données (arXiv'23) | GCJ |
| Différence de code guidée Exemple adversaire Génération pour les modèles de code profond ASE'23 | GCJ |
Détection de clonage
| Papier | Ensembles de données |
|---|
| Apprentissage de la représentation du code contrastif (EMNLP'22) | JavaScript (spécifique au papier) |
| Augmentation des données par transformation du programme (JSS'22) | BCB |
| Attaque naturelle pour les modèles de code pré-formés (ICSE'22) | Bigclonebench |
| Lifère la puissance de la représentation intermédiaire du compilateur pour améliorer les intégres du programme neuronal (ICSE'22) | POJ-104, GCJ |
| HELOC: Apprentissage contrasté hiérarchique de la représentation du code source (ICPC'22) | GCJ, Ojclone |
| Combo: Représentations pré-formation du code binaire en utilisant l'apprentissage contrastif (ArXiv'22) | BinaryCorp-3m |
| Évaluation de l'apprentissage contrastif avec diverses représentations de code pour la détection des clones de code (Arxiv'22) | POJ-104, Forces de code |
| Vers l'apprentissage (dis) -similaire du code source des contrastes de programme (ACL'22) | POJ-104, Bigclonbench |
| REACC: Un cadre d'achèvement du code de la récupération (ACL'22) | Codenet |
| Pouter les modèles pré-formés et les tâches en aval pour la compréhension du code source (ICSE'22) | POJ-104 |
| Boosting Apprentissage du code source avec augmentation des données: une étude empirique (Arxiv'23) | Bigclonebench |
| Clawsat: Vers des modèles de code robustes et précis (Saner'22) | --- |
| CONTRABERT: Amélioration des modèles pré-formés du code via l'apprentissage contrastif (ICSE'22) | POJ-104 |
| Voies pour tirer parti de l'augmentation des données basée sur le transcompilateur pour la détection des clones inter-langues (ICPC'23) | Clcdsa |
| Exemple adversaire de la différence de code Génération pour les modèles de code profond (ASE'23 | Bigclonebench |
| Une méthode de pré-formation pour une représentation de code améliorée basée sur l'apprentissage contrastif multimodal (JOS'23) | POJ-104, Bigclonbench |
| Concord: apprentissage contrastif conscient du clone pour le code source (ISSTA'23) | Codenet (Java), POJ104 |
| Clonage de code zéro-shot neuro-symbolique avec représentation intermédiaire transversale (arXiv'23) | Codenet (C, COBOL) |
| Attaques de porte dérobée multi-cible pour les modèles pré-formés de code (ACL'23) | BCB |
Détection et réparation des défauts
| Papier | Ensembles de données |
|---|
| Exemples adversaires pour les modèles de code (Oopsla'20) | Varmisuse |
| Détection et réparation des insectes auto-supervisées (Neirips'21) | Randombougs, pypibugs |
| Compréhension du code adversaire préservant sémantique (coling'22) | Défauts4j |
| Code sensible au chemin d'incorporation via l'apprentissage contrastif pour la détection de vulnérabilité des logiciels (ISSTA'22) | D2A, fan, Devign |
| Attaque naturelle pour les modèles de code pré-formés (ICSE'22) | Dévigne |
| Combo: Représentations pré-formation du code binaire en utilisant l'apprentissage contrastif (ArXiv'22) | Sysevr |
| Vers l'apprentissage (dis) -similaire du code source des contrastes de programme (ACL'22) | Révéler, codexglue |
| Boosting Apprentissage du code source avec augmentation des données: une étude empirique (Arxiv'23) | Réfactoire, Codep1 |
| Mixcode: Amélioration de la classification du code par augmentation des données basée sur le mélange (Saner'23) | Réfactoire, Codep1 |
| CONTRABERT: Amélioration des modèles pré-formés du code via l'apprentissage contrastif (ICSE'23) | Dévigne |
| Exemple adversaire de la différence de code Génération pour les modèles de code profond (ASE'23) | Devign, codechef |
| MUFIN: Amélioration des modèles de réparation neuronale avec une arrière-traduction (Arxiv'23) | DÉFECTS4J (spécifique au papier), Quichbugs (spécifique au papier) |
| Tirer parti de l'inférence causale pour la réparation de programmes automatique explicable (ijcnn'22) | Defects4j, Quixbugs, Bugaid |
| DeepDebug: Correction de bogues Python à l'aide de traces de pile, de backtranslation et de squelettes de code (Arxiv'21) | papier spécifique au papier |
| Break-it-fix-it: apprentissage non supervisé pour la réparation du programme (Arxiv'21) | spécifique au papier, Deepfix |
| Attaques de porte dérobée multi-cible pour les modèles pré-formés de code (ACL'23) | Devign. Bug2fix |
| Inferfix: Réparation du programme de bout en bout avec LLMS sur des invites auprès de la récupération (Arxiv'23) | Inférieur |
| Rap-Gen: Génération de patchs de récupération avec Codet5 pour la réparation automatique du programme (FSE'23) | Tfix, bug2fix, défects4j |
| Trop peu de rapports de bogues? Exploration de l'augmentation des données pour une amélioration de la localisation de bogues basée sur les changements (ArXIV'23) | Données de locus |
Résumé du code
| Papier | Ensembles de données |
|---|
| Formation des modèles de génération de commentaires de code profond via l'augmentation des données (Internet '20) | Code TL |
| Résumé du code source neuronal basé sur la récupération (ICSE'20) | PCSD, JCSD |
| Générer des programmes informatiques adversaires à l'aide d'obfuscations optimisées (ICLR'21) | Données Python-150K, code2seq |
| Apprentissage de la représentation du code contrastif (EMNLP'21) | JavaScript (spécifique au papier) |
| Un cadre de test basé sur la recherche pour les réseaux de neurones profonds de l'intégration du code source (ICST'21) | papier spécifique au papier |
| GÉNÉRATION AUGMENTAIRE AUGMENTÉ DE RÉTUNATION POUR LE RÉSUMALISATION DE CODE via Hybrid GNN (ICLR'21) | CCSD (spécifique au papier) |
| Bashexplainer: Génération de commentaires du code bash-bash de la récupération basée sur Codebert raffinée (ICMSE'22) | Données Bashexplaner |
| Augmentation des données par transformation du programme (JSS'22) | Deepcom |
| Robustesse adversaire de la génération de commentaires en code profond (Tosem'22) | CCSD (spécifique au papier) |
| Vous n'avez pas assez de données? Une augmentation de données facile pour le résumé du code (PAAP'22) | --- |
| Robustesse sémantique des modèles de code source (Saner'22) | Données Python-150K, code2seq |
| Un examen plus approfondi de l'intelligence du code basé sur les transformateurs à travers la transformation du code: défis et opportunités (arXiv'22) | CodesearchNet (Python, Java) |
| Clawsat: Vers des modèles de code robustes et précis (Saner'23) | --- |
| Explorer l'augmentation des données pour les tâches de génération de code (EACL'23) | CodesearchNet (CodexGlue) |
| Génération de commentaires de bash via l'augmentation des données et Codebert sémantique (Arxiv'23) | Données Bashexplaner |
| Lecsum: Transformateur adaptatif de la récupération de la récupération pour la résumé du code source (Access'23) | PCSD |
| TRAM: un mécanisme auprès de la récupération au niveau des jetons pour le résumé du code source (Arxiv'23) | PCSD, CCSD, Deepcom |
| Deux oiseaux avec une pierre: augmentation de la génération de code et recherche de code via un réseau contradictoire génératif (Oopsla'23) | CodesearchNet (Python, Java) |
| Meilleurs modèles linguistiques de code par l'auto-amélioration (ACL'23) | CodesearchNet |
Recherche de code
| Papier | Ensembles de données |
|---|
| AugmentedCode: Examiner les effets des ressources en langage naturel dans les modèles de récupération de code (Arxiv'21) | CodesearchNet |
| COSQA: 20 000+ requêtes Web pour la recherche de code et la réponse aux questions (ACL'21) | Cosqa |
| Un cadre de test basé sur la recherche pour les réseaux de neurones profonds de l'intégration du code source (ICST'21) | papier spécifique au papier |
| Compréhension du code adversaire préservant sémantique (coling'22) | CodesearchNet |
| Exploration d'augmentation au niveau de la représentation pour la recherche de code (EMNLP'22) | CodesearchNet |
| Apprentissage contrastif intermodal pour la recherche de code (ICSME'22) | Advtest, cosqa |
| Pouter les modèles pré-formés et les tâches en aval pour la compréhension du code source (ICSE'22) | CodesearchNet |
| Un examen plus approfondi de l'intelligence du code basé sur les transformateurs à travers la transformation du code: défis et opportunités (arXiv'22) | CodesearchNet (Python, Java) |
| CONTRABERT: Amélioration des modèles pré-formés du code via l'apprentissage contrastif (ICSE'23) | Advtest, webQuerytest |
| Cocosoda: apprentissage contrastif efficace pour la recherche de code (ICSE'23) | CodesearchNet |
| Apprentissage contrastif avec augmentation des données basée sur les mots clés pour la recherche de code et la réponse aux questions de code (EACL'23) | WebQuerytest |
| Une méthode de pré-formation pour une représentation de code améliorée basée sur l'apprentissage contrastif multimodal (JOS'23) | CodesearchNet |
| Repenser les paires négatives dans la recherche de code (EMNLP'23) | CodesearchNet |
| Vers une meilleure recherche de code multilingue par le biais d'un apprentissage contrastif inter-lingual (Internet '23) | Xlcost |
| McODesearcher: Apprentissage contrastif multi-visualités pour la recherche de code (Internet'23) | Codesearchnet (Python, Java), Cosqa, Staqc, WebQuery |
| Mulcs: Vers une représentation profonde unifiée pour la recherche de code multilingue (Saner'23) | CodesearchNet (Python, Java), spécifique au papier |
| Deux oiseaux avec une pierre: augmentation de la génération de code et recherche de code via un réseau contradictoire génératif (Oopsla'23) | CodesearchNet (Python, Java) |
Achèvement du code
| Papier | Ensembles de données |
|---|
| Modélisation de code générative avec des graphiques (ICLR'19) | Exprgen Data (spécifique au papier) |
| Robustesse adversaire des modèles de synthèse de programme (AIPLANS'21) | Algolisp |
| REACC: Un cadre d'achèvement du code de la récupération (ACL'22) | PY150 (CodexGlue), GithHub Java (CodexGlue) |
| Apprentissage multi-tâches piloté par des tests avec transformation de code fonctionnellement équivalente pour la génération de code neuronal (ASE'22) | MBPP |
| Quelle est l'importance des bons noms de méthodes dans la génération de code neuronal? Une perspective de robustesse du modèle (arXiv'22) | Concoder raffiné, pytorrent raffiné |
| Un examen plus approfondi de l'intelligence du code basé sur les transformateurs à travers la transformation du code: défis et opportunités (arXiv'22) | CodesearchNet (Python, Java) |
| RECODE: Évaluation de la robustesse des modèles de génération de code (ACL'23) | Humaneval, MBPP |
| Clawsat: Vers des modèles de code robustes et précis (Saner'23) | --- |
| Sélection rapide basée sur la récupération pour l'apprentissage à quelques coups liés au code (ICSE'23) | Atlas, tfix |
| RustGen: une approche d'augmentation pour générer du code de rouille compilable avec des modèles de grands langues (DeployableGeneratiVeai'23) | papier spécifique au papier |
| Attaques de porte dérobée multi-cible pour les modèles pré-formés de code (ACL'23) | GithHub Java (CodexGlue) |
| Achèvement du code adaptatif du domaine via des modèles de langage et des bases de données de domaine découplées (ASE'23) | papier spécifique au papier |
| APICOM: Complétion automatique de l'API via l'apprentissage rapide et l'augmentation des données basée sur la formation contradictoire (Internet'23) | papier spécifique au papier |
| Apprentissage multi-tâches piloté par des tests avec transformation de code fonctionnellement équivalente pour la génération de code neuronal (ASE'22) | MBPP |
| Meilleurs modèles linguistiques de code par l'auto-amélioration (ACL'23) | Concoder |
Traduction du code
| Papier | Ensembles de données |
|---|
| Tiration des tests unitaires automatisés pour la traduction du code non supervisée (ICLR'23) | papier spécial |
| Explorer l'augmentation des données pour les tâches de génération de code (EACL'23) | CodeTrans (CodexGlue) |
| Résumez et générez pour se transformer: traduction non supervisée des langages de programmation (EACL'23) | Données de transcodeur |
| CONTRABERT: Amélioration des modèles pré-formés du code via l'apprentissage contrastif (ICSE'23) | CodeTrans (CodexGlue) |
| Traduction de code avec les représentations du compilateur (ICLR'23) | Données de transcodeur |
| Augmentation des données pour la traduction du code avec des corpus comparables et plusieurs références (EMNLP'23) | Données de transcodeur |
| Évaluation et amélioration de la robustesse adversaire syntaxique des modèles pré-formés pour la traduction du code (ARXIV'23) | AVATAR |
| Attaques de porte dérobée multi-cible pour les modèles pré-formés de code (ACL'23) | Données de transcodeur |
Question de code Réponction
| Papier | Ensembles de données |
|---|
| COSQA: 20 000+ requêtes Web pour la recherche de code et la réponse aux questions (ACL'21) | Cosqa |
| Compréhension du code adversaire préservant sémantique (coling'22) | Codeqa |
| Apprentissage contrastif avec augmentation des données basée sur les mots clés pour la recherche de code et la réponse aux questions de code (EACL'23) | Cosqa |
| McODesearcher: Apprentissage contrastif multi-visualités pour la recherche de code (Internet'23) | WebQuery (spécifique au papier) |
Classification du code
| Papier | Ensembles de données |
|---|
| Générer des exemples adversaires pour maintenir la robustesse des modèles de traitement du code source (AAAI'20) | OJ |
| Génération d'exemples adversaires de modèles de classification du code source via le processus de décision de Markov basé sur Q-Learning (QRS'21) | OJ |
| HELOC: Apprentissage contrasté hiérarchique de la représentation du code source (ICPC'22) | GCJ, OJ |
| Combo: Représentations pré-formation du code binaire en utilisant l'apprentissage contrastif (ArXiv'22) | POJ-104 (CodexGlue) |
| Pouter les modèles pré-formés et les tâches en aval pour la compréhension du code source (ICSE'22) | POJ-104 |
| Boosting Apprentissage du code source avec augmentation des données: une étude empirique (Arxiv'23) | Java250, Python800 |
| Mixcode: Amélioration de la classification du code par augmentation des données basée sur le mélange (Saner'23) | Java250, Python800 |
| Exemple adversaire de la différence de code Génération pour les modèles de code profond (ASE'23) | GCJ |
| Une approche améliorée d'augmentation des données pour prendre en charge la classification de lisibilité du code multi-classes (SEKE'22) | papier spécifique au papier |
| Amélioration de la classification de lisibilité du code multi-classes avec une approche améliorée d'augmentation des données (130) (International Journal of Software Engineering and Knowledge Engineering) | papier spécifique au papier |
Prédiction du nom de la méthode
| Papier | Ensembles de données |
|---|
| Exemples adversaires pour les modèles de code (Oopsla'20) | Code2vec |
| Un cadre de test basé sur la recherche pour les réseaux de neurones profonds de l'intégration du code source (ICST'21) | papier spécifique au papier |
| Sur la généralisation des modèles de programme neuronal en ce qui concerne les transformations de programme de préservation sémantique (IST'21) | Code2Seq |
| Augmentation des données par transformation du programme (JSS'22) | Code2vec |
| Attaque adversaire discrète aux modèles de code (PLDI'23) | Code2vec |
Prédiction de type
| Papier | Ensembles de données |
|---|
| Robustesse adversaire pour le code (icml'21) | En profondeur |
| Apprentissage de la représentation du code contrastif (EMNLP'21) | En profondeur |
| Apprentissage du transfert inter-gênant pour l'inférence de type statistique (ISSTA'22) | DeepTyper, Typilus (Python), CodesearchNet (Java) |
Reconnaissance
Nous remercions Steven Y. Feng, et al. pour leur liste de papier open source sur DataAg4NLP.