Abordagens de aumento de dados para modelos de código -fonte
Se você quiser adicionar seu papel, não nos envie um e -mail. Em vez disso, leia o protocolo para adicionar uma nova entrada e envie uma solicitação de tração.
Agrupamos os artigos por atribuição de autoria de código, detecção de clones, detecção e reparo de defeitos, resumo do código, pesquisa de código, conclusão de código, tradução de código, resposta a perguntas de código, classificação de problemas, previsão de nome do método e previsão de tipo.
Este repositório é baseado em nosso artigo, aumento de dados do código -fonte para aprendizado profundo: uma pesquisa. Você pode citar o seguinte:
@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. Mais documentos serão adicionados em nosso documento de pesquisa a este repositório em breve. As consultas devem ser direcionadas para [email protected] ou abrindo um problema aqui.
Autoria de código Atribuição
| Papel | Conjuntos de dados de avaliação |
|---|
| Ataque natural para modelos de código pré-treinados (ICSE'22) | GCJ |
| ROPGEN: para a atribuição de autoria robusta de código via transformação de estilo de codificação automática (ICSE'22) | GCJ, Github |
| Aumentando o aprendizado do código -fonte com aumento de dados (arxiv'23) | GCJ |
| Geração de exemplo adversário de diferença de código para modelos de código profundo ASE'23 | GCJ |
Detecção de clones
| Papel | Conjuntos de dados |
|---|
| Aprendizagem de representação de código contrastante (EMNLP'22) | JavaScript (específico do papel) |
| Aumentação de dados por transformação do programa (JSS'22) | BCB |
| Ataque natural para modelos de código pré-treinados (ICSE'22) | Bigclonebench |
| Libertar o poder da representação intermediária do compilador para aprimorar o programa neural incorporados (ICSE'22) | POJ-104, GCJ |
| HELOC: Aprendizagem contrastiva hierárquica da representação do código -fonte (ICPC'22) | GCJ, OJCLONE |
| Combo: representações pré-treinamento do código binário usando aprendizado contrastivo (arxiv'22) | BinaryCorp-3m |
| Avaliação do aprendizado contrastante com várias representações de código para detecção de clones de código (ARXIV'22) | POJ-104, Codeforces |
| Rumo à aprendizagem (DIS)-Similaridade do código-fonte dos contrastes do programa (ACL'22) | POJ-104, BigClonebench |
| REACC: Uma estrutura de conclusão de código de recuperação de recuperação (ACL'22) | CodeNet |
| Bridging Modelos pré-treinados e tarefas a jusante para o entendimento do código-fonte (ICSE'22) | POJ-104 |
| Aumentando o aprendizado do código -fonte com aumento de dados: um estudo empírico (arxiv'23) | Bigclonebench |
| Clawsat: Para modelos de código robustos e precisos (SANER'22) | ---- |
| Contrabert: Aprimorando os modelos pré-treinados de código por meio de aprendizado contrastante (ICSE'22) | POJ-104 |
| Caminhos para alavancar o aumento de dados baseados em transcompiler para detecção de clone de linguagem cruzada (ICPC'23) | CLCDSA |
| Geração de exemplo adversário de diferença de código para modelos de código profundo (ASE'23 | Bigclonebench |
| Um método de pré-treinamento para representação aprimorada de código com base em aprendizado contrastivo multimodal (JOS'23) | POJ-104, BigClonebench |
| Concord: Aprendizagem contrastiva com reconhecimento de clone para o código-fonte (ISSTA'23) | CodeNet (Java), POJ104 |
| Clonagem de código de tiro zero neuro-simbólico com representação intermediária entre idiomas (arxiv'23) | CodeNet (C, COBOL) |
| Ataques de backdoor multi-alvo para modelos pré-treinados de código (ACL'23) | BCB |
Detecção e reparo de defeitos
| Papel | Conjuntos de dados |
|---|
| Exemplos adversários para modelos de código (oopsla'20) | Varmisuse |
| Detecção e reparo de insetos auto-supervisionados (Neurips'21) | Randombugs, Pypibugs |
| Compreensão de código adversário semântico (Coling'22) | Defeitos4j |
| Código sensível ao caminho incorporado por meio de aprendizado contrastante para detecção de vulnerabilidades de software (ISSTA'22) | D2a, fã, devign |
| Ataque natural para modelos de código pré-treinados (ICSE'22) | Devign |
| Combo: representações pré-treinamento do código binário usando aprendizado contrastivo (arxiv'22) | Sysevr |
| Rumo à aprendizagem (DIS)-Similaridade do código-fonte dos contrastes do programa (ACL'22) | Revelar, CodexGlue |
| Aumentando o aprendizado do código -fonte com aumento de dados: um estudo empírico (arxiv'23) | Refactory, CODREP1 |
| MixCode: Aprimorando a classificação do código por aumento de dados baseado em mistura (Saner'23) | Refactory, CODREP1 |
| Contrabert: Aprimorando os modelos pré-treinados de código por meio de aprendizado contrastante (ICSE'23) | Devign |
| Geração de exemplo adversário guiado por diferença de código para modelos de código profundo (ASE'23) | Devign, Codechef |
| MUFIN: Melhorando os modelos de reparo neural com traslada (arxiv'23) | Defeitos4J (específicos de papel), Quixbugs (específico do papel) |
| Aproveitando a inferência causal para reparo automático de programa explicável (ijcnn'22) | Defeitos4j, Quixbugs, BugAid |
| Deepdebug: corrigindo bugs em python usando rastreios de pilha, backtranslação e esqueletos de código (arxiv'21) | específico do papel |
| Break-it-Fix-it: Aprendizagem não supervisionada para reparo do programa (arxiv'21) | específico do papel, Deepfix |
| Ataques de backdoor multi-alvo para modelos pré-treinados de código (ACL'23) | Devign. Bug2fix |
| Inferfix: reparo de programa de ponta a ponta com LLMS sobre os prompts de recuperação upentada (arxiv'23) | Inferredbugs |
| Rap-Gen: Geração de patches de recuperação de recuperação com o CodeT5 para reparo automático do programa (FSE'23) | Tfix, bug2fix, defeitos4j |
| Poucos relatórios de bugs? Explorando o aumento de dados para melhorar a localização de insetos baseados em alterações (arxiv'23) | Dados do locus |
Resumo do código
| Papel | Conjuntos de dados |
|---|
| Treinar modelos de geração de comentários de código profundo via aumento de dados (Internetware'20) | TL-Codesum |
| Resumo do código-fonte neural baseado em recuperação (ICSE'20) | PCSD, JCSD |
| Gerando programas de computador adversários usando ofuscações otimizadas (ICLR'21) | Python-150K, Dados Code2SEQ |
| Aprendizagem de representação de código contrastiva (EMNLP'21) | JavaScript (específico do papel) |
| Uma estrutura de teste baseada em busca para redes neurais profundas de incorporação de código-fonte (ICST'21) | específico do papel |
| Geração de recuperação de recuperação para resumo de código via híbrido GNN (ICLR'21) | CCSD (específico do papel) |
| BASHEXPLAINER: Geração de comentários de código de bash de recuperação com base em Codebert de ajuste fino (ICMSE'22) | Dados do Bashexplaner |
| Aumentação de dados por transformação do programa (JSS'22) | DeepCom |
| Robustez adversária da geração de comentários de código profundo (Tosem'22) | CCSD (específico do papel) |
| Não tem dados suficientes? Um aumento de dados fácil para resumo do código (PAAP'22) | ---- |
| Robustez semântica dos modelos de código -fonte (Saner'22) | Python-150K, Dados Code2SEQ |
| Uma olhada mais próxima da inteligência de código baseada em transformador através da transformação do código: desafios e oportunidades (arxiv'22) | CodEsearchNet (Python, Java) |
| Clawsat: Para modelos de código robustos e precisos (SANER'23) | ---- |
| Explorando o aumento de dados para tarefas de geração de código (EACL'23) | CodEsearchNet (CodexGlue) |
| Geração de comentários Bash via aumento de dados e codebert semântico (arxiv'23) | Dados do Bashexplaner |
| ReadSum: Transformador adaptativo de recuperação de recuperação para resumo do código-fonte (Access'23) | PCSD |
| TRAM: Um mecanismo de recuperação de recuperação em nível de token para resumo do código-fonte (ARXIV'23) | PCSD, CCSD, DeepCom |
| Dois pássaros com uma pedra: impulsionando a geração de código e a pesquisa de código através de uma rede adversária generativa (OOPSLA'23) | CodEsearchNet (Python, Java) |
| Melhores modelos de código de código através de auto-aperfeiçoamento (ACL'23) | CodEsearchNet |
Pesquisa de código
| Papel | Conjuntos de dados |
|---|
| Código AGIMENTEDED: Examinando os efeitos dos recursos de linguagem natural nos modelos de recuperação de código (ARXIV'21) | CodEsearchNet |
| Cosqa: 20, 000+ consultas da web para pesquisa de código e resposta a perguntas (ACL'21) | Cosqa |
| Uma estrutura de teste baseada em busca para redes neurais profundas de incorporação de código-fonte (ICST'21) | específico do papel |
| Compreensão de código adversário semântico (Coling'22) | CodEsearchNet |
| Explorando o aumento no nível da representação para pesquisa de código (EMNLP'22) | CodEsearchNet |
| Aprendizagem contrastiva cruzada para pesquisa de código (ICSME'22) | AdvTest, Cosqa |
| Bridging Modelos pré-treinados e tarefas a jusante para o entendimento do código-fonte (ICSE'22) | CodEsearchNet |
| Uma olhada mais próxima da inteligência de código baseada em transformador através da transformação do código: desafios e oportunidades (arxiv'22) | CodEsearchNet (Python, Java) |
| Contrabert: Aprimorando os modelos pré-treinados de código por meio de aprendizado contrastante (ICSE'23) | AdvTest, WebQuerytest |
| Cocosoda: Aprendizagem contrastiva eficaz para pesquisa de código (ICSE'23) | CodEsearchNet |
| Aprendizagem contrastiva com aumento de dados baseado em palavras-chave para pesquisa de código e resposta de código (eAll'23) | WebQuerytest |
| Um método de pré-treinamento para representação aprimorada de código com base em aprendizado contrastivo multimodal (JOS'23) | CodEsearchNet |
| Repensando pares negativos na pesquisa de código (EMNLP'23) | CodEsearchNet |
| Para uma melhor pesquisa de código multilíngue por meio de aprendizado contrastivo cruzado (Internetware'23) | XlCost |
| McODesearcher: Aprendizagem contrastiva de várias visualizações para pesquisa de código (Internetware'23) | CodEsearchNet (Python, Java), Cosqa, Staqc, WebQuery |
| Mulcs: em direção a uma representação profunda unificada para pesquisa multilíngue de código (Saner'23) | CodEsearchNet (Python, Java), específico do papel |
| Dois pássaros com uma pedra: impulsionando a geração de código e a pesquisa de código através de uma rede adversária generativa (OOPSLA'23) | CodEsearchNet (Python, Java) |
Conclusão do código
| Papel | Conjuntos de dados |
|---|
| Modelagem de código generativo com gráficos (ICLR'19) | Dados exprgen (específico do papel) |
| Robustez adversária dos modelos de síntese de programas (Aiplans'21) | Algolisp |
| REACC: Uma estrutura de conclusão de código de recuperação de recuperação (ACL'22) | PY150 (CodexGlue), GithHub Java (Codexglue) |
| Aprendizagem multitarefa orientada a testes com transformação de código funcionalmente equivalente para geração de código neural (ASE'22) | Mbpp |
| Quão importantes são os bons nomes de métodos na geração de código neural? Uma perspectiva de robustez do modelo (arxiv'22) | Concode refinado, Pytorrent refinado |
| Uma olhada mais próxima da inteligência de código baseada em transformador através da transformação do código: desafios e oportunidades (arxiv'22) | CodEsearchNet (Python, Java) |
| Recode: Avaliação de robustez dos modelos de geração de código (ACL'23) | Humaneval, MBPP |
| Clawsat: Para modelos de código robustos e precisos (SANER'23) | ---- |
| Seleção rápida baseada em recuperação para aprendizado de poucos tiro relacionado ao código (ICSE'23) | Atlas, tfix |
| Rustgen: uma abordagem de aumento para gerar código de ferrugem compilável com grandes modelos de linguagem (implantávelgenerativeai'23) | específico do papel |
| Ataques de backdoor multi-alvo para modelos pré-treinados de código (ACL'23) | Githhub Java (Codexglue) |
| Conclusão de código adaptativo de domínio por meio de modelos de idiomas e bancos de dados de domínio desacoplados (ASE'23) | específico do papel |
| Apicom: conclusão automática da API por meio de aprendizado imediato e aumento de dados baseados em treinamento adversário (Internetware'23) | específico do papel |
| Aprendizagem multitarefa orientada a testes com transformação de código funcionalmente equivalente para geração de código neural (ASE'22) | Mbpp |
| Melhores modelos de código de código através de auto-aperfeiçoamento (ACL'23) | Concode |
Tradução de código
| Papel | Conjuntos de dados |
|---|
| Aproveitando testes de unidade automatizada para tradução de código não supervisionada (ICLR'23) | Especificação de papel |
| Explorando o aumento de dados para tarefas de geração de código (EACL'23) | CodeTrans (CodexGlue) |
| Resumir e gerar para translatar novamente: tradução não supervisionada de linguagens de programação (EACL'23) | Dados do transcodificador |
| Contrabert: Aprimorando os modelos pré-treinados de código por meio de aprendizado contrastante (ICSE'23) | CodeTrans (CodexGlue) |
| Tradução de código com representações do compilador (ICLR'23) | Dados do transcodificador |
| Aumentação de dados para tradução de código com corpora comparável e várias referências (EMNLP'23) | Dados do transcodificador |
| Avaliando e melhorando a robustez adversária sintática de modelos pré-treinados para tradução de código (ARXIV'23) | Avatar |
| Ataques de backdoor multi-alvo para modelos pré-treinados de código (ACL'23) | Dados do transcodificador |
Código de resposta à pergunta
| Papel | Conjuntos de dados |
|---|
| Cosqa: 20, 000+ consultas da web para pesquisa de código e resposta a perguntas (ACL'21) | Cosqa |
| Compreensão de código adversário semântico (Coling'22) | Codeqa |
| Aprendizagem contrastiva com aumento de dados baseado em palavras-chave para pesquisa de código e resposta de código (eAll'23) | Cosqa |
| McODesearcher: Aprendizagem contrastiva de várias visualizações para pesquisa de código (Internetware'23) | WebQuery (específico do papel) |
Classificação de código
| Papel | Conjuntos de dados |
|---|
| Gerando exemplos adversários para manter a robustez dos modelos de processamento de código -fonte (aaai'20) | OJ |
| Gerando exemplos adversários de modelos de classificação de código-fonte por meio do Processo de Decisão de Markov baseado em Q-Learning (QRS'21) | OJ |
| HELOC: Aprendizagem contrastiva hierárquica da representação do código -fonte (ICPC'22) | GCJ, OJ |
| Combo: representações pré-treinamento do código binário usando aprendizado contrastivo (arxiv'22) | POJ-104 (CodexGlue) |
| Bridging Modelos pré-treinados e tarefas a jusante para o entendimento do código-fonte (ICSE'22) | POJ-104 |
| Aumentando o aprendizado do código -fonte com aumento de dados: um estudo empírico (arxiv'23) | Java250, Python800 |
| MixCode: Aprimorando a classificação do código por aumento de dados baseado em mistura (Saner'23) | Java250, Python800 |
| Geração de exemplo adversário guiado por diferença de código para modelos de código profundo (ASE'23) | GCJ |
| Uma abordagem aprimorada de aumento de dados para oferecer suporte à classificação de legibilidade do código de várias classes (SEKE'22) | específico do papel |
| Melhorando a classificação de legibilidade do código de várias classes com uma abordagem aprimorada de aumento de dados (130) (International Journal of Software Engineering and Knowledge Engineering) | específico do papel |
Nome do método Previsão
| Papel | Conjuntos de dados |
|---|
| Exemplos adversários para modelos de código (oopsla'20) | Code2vec |
| Uma estrutura de teste baseada em busca para redes neurais profundas de incorporação de código-fonte (ICST'21) | específico do papel |
| Sobre a generalização dos modelos de programas neurais em relação às transformações do programa de preservação semântica (IST'21) | Code2Seq |
| Aumentação de dados por transformação do programa (JSS'22) | Code2vec |
| Ataque adversário discreto aos modelos de código (Pldi'23) | Code2vec |
Previsão de tipo
| Papel | Conjuntos de dados |
|---|
| Robustez adversária para código (ICML'21) | DeepTyper |
| Aprendizagem de representação de código contrastiva (EMNLP'21) | DeepTyper |
| Learning de transferência transversal para inferência de tipo estatístico (ISSTA'22) | DeepTyper, Typilus (Python), CodEsearchNet (Java) |
Reconhecimento
Agradecemos a Steven Y. Feng, et al. Para sua lista de papel de código aberto no DataAug4NLP.