Enfoques de aumento de datos para modelos de código fuente
Si desea agregar su trabajo, no nos envíe un correo electrónico. En su lugar, lea el protocolo para agregar una nueva entrada y enviar una solicitud de extracción.
Agrupamos los documentos por atribución de autoría de código, detección de clones, detección y reparación de defectos, resumen de código, búsqueda de código, finalización del código, traducción de código, respuesta a preguntas de código, clasificación de problemas, predicción de nombre del método y predicción de tipo.
Este repositorio se basa en nuestro documento, el aumento de datos del código fuente para el aprendizaje profundo: una encuesta. Puedes citarlo de la siguiente manera:
@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}
}
Autores: Terry Yue Zhuo, Zhou Yang, Zhensu Sun, Yufei Wang, Li Li, Xiaoning Du, Zhenchang Xing, David Lo
Nota: WIP. Pronto se agregarán más documentos de nuestro documento de encuesta a este repositorio. Las consultas deben dirigirse a [email protected] o abriendo un problema aquí.
Atribución de autoridad de código
| Papel | Conjuntos de datos de evaluación |
|---|
| Ataque natural para modelos de código previamente capacitados (ICSE'22) | GCJ |
| ROPGEN: Hacia la atribución de autoría de código robusto a través de la transformación de estilo de codificación automática (ICSE'22) | GCJ, GitHub |
| Aumento del código de código fuente con aumento de datos (ARXIV'23) | GCJ |
| Diferencia de código Generación de ejemplo adversas guiadas para modelos de código profundo ASE'23 | GCJ |
Detección de clones
| Papel | Conjuntos de datos |
|---|
| Aprendizaje de representación de código de contrastes (EMNLP'22) | JavaScript (específico de papel) |
| Aumento de datos por transformación del programa (JSS'22) | BCB |
| Ataque natural para modelos de código previamente capacitados (ICSE'22) | BigcloneBench |
| Desatar el poder de la representación intermedia del compilador para mejorar las integridades del programa neuronal (ICSE'22) | POJ-104, GCJ |
| HELOC: aprendizaje jerárquico contrastante de la representación del código fuente (ICPC'22) | GCJ, ojclone |
| Combo: representaciones previas al entrenamiento del código binario utilizando el aprendizaje contrastante (ARXIV'22) | Binarycorp-3m |
| Evaluación del aprendizaje contrastante con varias representaciones de código para la detección de clones de código (ARXIV'22) | POJ-104, CodeForces |
| Hacia el aprendizaje (DIS) -Similitud del código fuente de los contrastes del programa (ACL'22) | POJ-104, BigCloneBench |
| ReACC: un marco de finalización de código de recuperación de recuperación (ACL'22) | CodeNet |
| Puir modelos previamente capacitados y tareas aguas abajo para la comprensión del código fuente (ICSE'22) | POJ-104 |
| Aprendizaje del código fuente de impulso con aumento de datos: un estudio empírico (ARXIV'23) | BigcloneBench |
| CLAWSAT: hacia modelos de código robustos y precisos (SANS'22) | --- |
| Contrabert: Mejora de modelos previamente capacitados de código a través del aprendizaje contrastante (ICSE'22) | POJ-104 |
| Vías para aprovechar el aumento de datos basado en el transcompilador para la detección de clones de lenguaje cruzado (ICPC'23) | CLCDSA |
| Diferencia de código Generación de ejemplo adversario guiado para modelos de código profundo (ASE'23 | BigcloneBench |
| Un método de pre-entrenamiento para la representación de código mejorada basado en el aprendizaje de contrastamiento multimodal (Jos'23) | POJ-104, BigCloneBench |
| Concord: aprendizaje contrastante consciente de clones para el código fuente (ISSTA'23) | Codenet (Java), POJ104 |
| Clonación de código de disparo cero neuroimbólico con representación intermedia de lenguaje cruzado (ARXIV'23) | Codenet (C, Cobol) |
| Ataques de puerta trasera multi-objetivo para modelos previamente capacitados de código (ACL'23) | BCB |
Detección y reparación de defectos
| Papel | Conjuntos de datos |
|---|
| Ejemplos adversos para modelos de código (Oopsla'20) | Varmisuse |
| Detección y reparación de errores auto-supervisados (Neurips'21) | Randombugs, Pypibugs |
| Comprensión del código adversario de preservación semántica (Coling'22) | Defectos4J |
| El código sensible a la ruta integrado a través del aprendizaje contrastante para la detección de vulnerabilidades de software (ISSTA'22) | D2a, fan, Devign |
| Ataque natural para modelos de código previamente capacitados (ICSE'22) | Devign |
| Combo: representaciones previas al entrenamiento del código binario utilizando el aprendizaje contrastante (ARXIV'22) | Sysevr |
| Hacia el aprendizaje (DIS) -Similitud del código fuente de los contrastes del programa (ACL'22) | Revelar, codexglue |
| Aprendizaje del código fuente de impulso con aumento de datos: un estudio empírico (ARXIV'23) | Refactorio, Codrep1 |
| Código de mezcla: Mejora de la clasificación del código mediante el aumento de datos basado en la mezcla (SANER'23) | Refactorio, Codrep1 |
| Contrabert: Mejora de los modelos previamente capacitados del código a través del aprendizaje contrastante (ICSE'23) | Devign |
| Diferencia de código Generación de ejemplo adversas guiadas para modelos de código profundo (ASE'23) | Devign, CodeChef |
| MUFIN: Mejora de modelos de reparación neural con traducción posterior (ARXIV'23) | Defects4j (específico de papel), quixbugs (específicos de papel) |
| Aprovechando la inferencia causal para la reparación del programa automático explicable (IJCNN'22) | Defects4J, Quixbugs, BugAid |
| DeepDebug: arreglando errores de pitón utilizando trazas de pila, traducción back -traducción y esqueletos de código (ARXIV'21) | específico |
| Break-It-Fix-IT: Aprendizaje no supervisado para la reparación del programa (ARXIV'21) | específico de papel, profundo |
| Ataques de puerta trasera multi-objetivo para modelos previamente capacitados de código (ACL'23) | Devign. Bug2fix |
| Inferfix: reparación del programa de extremo a extremo con LLMS sobre las indicaciones de recuperación acuática (ARXIV'23) | Casquillos |
| RAP-Gen: Generación de parches de recuperación con Codet5 para la reparación del programa automático (FSE'23) | TFIX, Bug2Fix, Defects4J |
| ¿Muy pocos informes de errores? Explorando el aumento de datos para una mejor localización de errores basada en cambios de cambios (ARXIV'23) | Datos de locus |
Resumen de código
| Papel | Conjuntos de datos |
|---|
| Entrenamiento de modelos de generación de comentarios de código profundo a través del aumento de datos (Internetware'20) | TL-Codesum |
| Resumen del código fuente neural basado en la recuperación (ICSE'20) | PCSD, JCSD |
| Generación de programas informáticos adversos utilizando ofuscaciones optimizadas (ICLR'21) | Python-150k, Code2Seq Data |
| Aprendizaje de representación de código de contrastes (EMNLP'21) | JavaScript (específico de papel) |
| Un marco de prueba basado en la búsqueda para redes neuronales profundas de la incrustación del código fuente (ICST'21) | específico |
| Generación de recuperación de la recuperación para resumen de código a través de GNN híbrido (ICLR'21) | CCSD (específico de papel) |
| BashExPlainer: Generación de comentarios de código bash de recuperación de recuperación basada en CodeBert ajustado (ICMSE'22) | Datos de Bashexplaner |
| Aumento de datos por transformación del programa (JSS'22) | Profundo |
| Robustez adversa de la generación de comentarios de código profundo (tosem'22) | CCSD (específico de papel) |
| ¿No tienes suficientes datos? Un aumento fácil de datos para la resumen de código (Paap'22) | --- |
| Robustez semántica de los modelos de código fuente (sana'22) | Python-150k, Code2Seq Data |
| Una mirada más cercana a la inteligencia de código basada en transformadores a través de la transformación del código: desafíos y oportunidades (ARXIV'22) | CodeSearchnet (Python, Java) |
| CLAWSAT: Hacia los modelos de código robustos y precisos (SANS'23) | --- |
| Explorando el aumento de datos para las tareas de generación de código (EACL'23) | CodeSearchNet (CodExGlue) |
| Generación de comentarios bash a través del aumento de datos y el código semántico Codebert (ARXIV'23) | Datos de Bashexplaner |
| Readsum: Transformador adaptativo de recuperación de recuperación para el resumen del código fuente (Access'23) | PCSD |
| Tranvelo: un mecanismo de recuperación a nivel de token para la resumen del código fuente (ARXIV'23) | PCSD, CCSD, Deepcom |
| Dos pájaros con una piedra: generación de código y búsqueda de código a través de una red adversaria generativa (OOPSLA'23) | CodeSearchnet (Python, Java) |
| Mejores modelos de código de lenguaje a través de la superación personal (ACL'23) | CodeSearchnet |
Búsqueda de código
| Papel | Conjuntos de datos |
|---|
| AugmentedCode: examinar los efectos de los recursos del lenguaje natural en los modelos de recuperación de código (ARXIV'21) | CodeSearchnet |
| Cosqa: consultas web de más de 20, 000+ para la búsqueda de código y la respuesta a las preguntas (ACL'21) | Cosqa |
| Un marco de prueba basado en la búsqueda para redes neuronales profundas de la incrustación del código fuente (ICST'21) | específico |
| Comprensión del código adversario de preservación semántica (Coling'22) | CodeSearchnet |
| Explorando el aumento de nivel de representación para la búsqueda de código (EMNLP'22) | CodeSearchnet |
| Aprendizaje contrastante intermodal para la búsqueda de código (ICSME'22) | Advtest, Cosqa |
| Puir modelos previamente capacitados y tareas aguas abajo para la comprensión del código fuente (ICSE'22) | CodeSearchnet |
| Una mirada más cercana a la inteligencia de código basada en transformadores a través de la transformación del código: desafíos y oportunidades (ARXIV'22) | CodeSearchnet (Python, Java) |
| Contrabert: Mejora de los modelos previamente capacitados del código a través del aprendizaje contrastante (ICSE'23) | Advtest, WebQueryTest |
| COCOSODA: aprendizaje contrastante efectivo para la búsqueda de códigos (ICSE'23) | CodeSearchnet |
| Aprendizaje contrastante con el aumento de datos basado en palabras clave para la búsqueda de códigos y la respuesta de preguntas de código (EACL'23) | WebQueryTest |
| Un método de pre-entrenamiento para la representación de código mejorada basado en el aprendizaje de contrastamiento multimodal (Jos'23) | CodeSearchnet |
| Repensar pares negativos en la búsqueda de código (EMNLP'23) | CodeSearchnet |
| Hacia una mejor búsqueda de código multilingüe a través del aprendizaje contrastante interlingüístico (Internetware'23) | Xlcost |
| McOdesearcher: aprendizaje contrastante múltiple para la búsqueda de códigos (Internetware'23) | CodeSearchnet (Python, Java), Cosqa, Staqc, WebQuery |
| MULCS: Hacia una representación profunda unificada para la búsqueda de código multilingüe (sana'23) | CodeSearchnet (Python, Java), específico de papel |
| Dos pájaros con una piedra: generación de código y búsqueda de código a través de una red adversaria generativa (OOPSLA'23) | CodeSearchnet (Python, Java) |
Finalización del código
| Papel | Conjuntos de datos |
|---|
| Modelado de código generativo con gráficos (ICLR'19) | Datos de ExpRGen (específicos de papel) |
| Robustez adversa de los modelos de síntesis de programa (AIPLANS'21) | Algolispado |
| ReACC: un marco de finalización de código de recuperación de recuperación (ACL'22) | PY150 (CodExGlue), Githhub Java (CodExGlue) |
| Aprendizaje de múltiples tareas basado en pruebas con transformación de código funcionalmente equivalente para la generación de código neuronal (ASE'22) | MBPP |
| ¿Qué importantes son los buenos nombres de métodos en la generación de código neuronal? Una perspectiva de robustez modelo (ARXIV'22) | concodificación refinada, pytorrent refinado |
| Una mirada más cercana a la inteligencia de código basada en transformadores a través de la transformación del código: desafíos y oportunidades (ARXIV'22) | CodeSearchnet (Python, Java) |
| Recode: evaluación de robustez de modelos de generación de código (ACL'23) | Humaneval, MBPP |
| CLAWSAT: Hacia los modelos de código robustos y precisos (SANS'23) | --- |
| Selección rápida basada en la recuperación para el aprendizaje de pocos disparos relacionado con el código (ICSE'23) | Atlas, tfix |
| Rustgen: un enfoque de aumento para generar un código de óxido compilable con modelos de idiomas grandes (implementableGenerativeai'23) | específico |
| Ataques de puerta trasera multi-objetivo para modelos previamente capacitados de código (ACL'23) | Githhub Java (CodExGlue) |
| Finalización del código adaptativo de dominio a través de modelos de idioma y bases de datos de dominio desacopladas (ASE'23) | específico |
| APICOM: finalización automática de API a través del aprendizaje rápido y el aumento de datos basado en la capacitación adversa (Internetware'23) | específico |
| Aprendizaje de múltiples tareas basado en pruebas con transformación de código funcionalmente equivalente para la generación de código neuronal (ASE'22) | MBPP |
| Mejores modelos de código de lenguaje a través de la superación personal (ACL'23) | Concodificar |
Traducción de código
| Papel | Conjuntos de datos |
|---|
| Aprovechando las pruebas unitarias automatizadas para la traducción de código no supervisado (ICLR'23) | especie de papel |
| Explorando el aumento de datos para las tareas de generación de código (EACL'23) | Codetrans (CodExGlue) |
| Resumir y generar al traslado hacia atrás: traducción sin supervisión de lenguajes de programación (EACL'23) | Datos de transcodificación |
| Contrabert: Mejora de los modelos previamente capacitados del código a través del aprendizaje contrastante (ICSE'23) | Codetrans (CodExGlue) |
| Traducción de código con representaciones del compilador (ICLR'23) | Datos de transcodificación |
| Aumento de datos para la traducción de código con corpus comparables y referencias múltiples (EMNLP'23) | Datos de transcodificación |
| Evaluar y mejorar la robustez adversa sintáctica de los modelos previamente capacitados para la traducción de código (ARXIV'23) | AVATAR |
| Ataques de puerta trasera multi-objetivo para modelos previamente capacitados de código (ACL'23) | Datos de transcodificación |
Respuesta de preguntas de código
| Papel | Conjuntos de datos |
|---|
| Cosqa: consultas web de más de 20, 000+ para la búsqueda de código y la respuesta a las preguntas (ACL'21) | Cosqa |
| Comprensión del código adversario de preservación semántica (Coling'22) | Codeqa |
| Aprendizaje contrastante con el aumento de datos basado en palabras clave para la búsqueda de códigos y la respuesta de preguntas de código (EACL'23) | Cosqa |
| McOdesearcher: aprendizaje contrastante múltiple para la búsqueda de códigos (Internetware'23) | WebQuery (específica en papel) |
Clasificación de código
| Papel | Conjuntos de datos |
|---|
| Generación de ejemplos adversos para mantener la robustez de los modelos de procesamiento de código fuente (AAAI'20) | OJ |
| Generación de ejemplos adversos de modelos de clasificación de código fuente a través del proceso de decisión de Markov basado en Q-learning (QRS'21) | OJ |
| HELOC: aprendizaje jerárquico contrastante de la representación del código fuente (ICPC'22) | GCJ, OJ |
| Combo: representaciones previas al entrenamiento del código binario utilizando el aprendizaje contrastante (ARXIV'22) | POJ-104 (CodExGlue) |
| Puir modelos previamente capacitados y tareas aguas abajo para la comprensión del código fuente (ICSE'22) | POJ-104 |
| Aprendizaje del código fuente de impulso con aumento de datos: un estudio empírico (ARXIV'23) | Java250, Python800 |
| Código de mezcla: Mejora de la clasificación del código mediante el aumento de datos basado en la mezcla (SANER'23) | Java250, Python800 |
| Diferencia de código Generación de ejemplo adversas guiadas para modelos de código profundo (ASE'23) | GCJ |
| Un enfoque de aumento de datos mejorado para admitir la clasificación de legibilidad de código múltiple (SEKE'22) | específico |
| Mejora de la clasificación de la legibilidad de código múltiple con un enfoque mejorado de aumento de datos (130) (International Journal of Software Engineering and Knowledge Engineering) | específico |
Predicción de nombre del método
| Papel | Conjuntos de datos |
|---|
| Ejemplos adversos para modelos de código (Oopsla'20) | Code2Vec |
| Un marco de prueba basado en la búsqueda para redes neuronales profundas de la incrustación del código fuente (ICST'21) | específico |
| Sobre la generalización de los modelos de programas neuronales con respecto a las transformaciones de programas de preservación semántica (IST'21) | Code2SEQ |
| Aumento de datos por transformación del programa (JSS'22) | Code2Vec |
| Ataque adversario discreto a los modelos de código (PLDI'23) | Code2Vec |
Tipo de predicción
| Papel | Conjuntos de datos |
|---|
| Robustez adversa para el código (ICML'21) | Profundo |
| Aprendizaje de representación de código de contrastes (EMNLP'21) | Profundo |
| Aprendizaje de transferencia multilingüe para inferencia de tipo estadístico (ISSTA'22) | Deeptyper, typilus (Python), CodeSearchnet (Java) |
Reconocimiento
Agradecemos a Steven Y. Feng, et al. para su lista de papel de código abierto en dataAUG4NLP.