소스 코드 모델에 대한 데이터 확대 접근법
종이를 추가하려면 이메일을 보내지 마십시오. 대신 새 항목을 추가 할 프로토콜을 읽고 풀 요청을 보냅니다.
우리는 코드 작성 속성, 클론 감지, 결함 감지 및 수리, 코드 요약, 코드 검색, 코드 완성, 코드 번역, 코드 질문 응답, 문제 분류, 메소드 이름 예측 및 유형 예측별로 논문을 그룹화합니다.
이 저장소는 당사의 논문, 딥 러닝을위한 소스 코드 데이터 증강 : 설문 조사를 기반으로합니다. 다음과 같이 인용 할 수 있습니다.
@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 Zhuo, Zhou Yang, Zhensu Sun, Yufei Wang, Li Li, Xiaoning Du, Zhenchang Xing, David Lo
참고 : 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) | 큰 클론 벤치 |
| 신경 프로그램 임베딩을 향상시키기 위해 컴파일러 중간 표현의 힘을 발휘합니다 (ICSE'22) | POJ-104, GCJ |
| HELOC : 소스 코드 표현의 계층 적 대조 학습 (ICPC'22) | gcj, ojclone |
| 콤보 : 대조 학습을 사용한 이진 코드의 사전 훈련 표현 (ARXIV'22) | BinaryCorp-3M |
| 코드 클론 감지에 대한 다양한 코드 표현을 사용한 대조 학습 평가 (ARXIV'22) | POJ-104, 코드 포스 |
| 학습 (DIS)-프로그램 대조에서 소스 코드의 유사성 (ACL'22) | POJ-104, BIGCLONEBENCH |
| Reacc : 검색된 코드 완료 프레임 워크 (ACL'22) | 코데넷 |
| 소스 코드 이해를위한 미리 훈련 된 모델 및 다운 스트림 작업 브리징 (ICSE'22) | POJ-104 |
| 데이터 확대를 통한 소스 코드 학습 향상 : 경험적 연구 (ARXIV'23) | 큰 클론 벤치 |
| Clawsat : 강력하고 정확한 코드 모델을 향해 (Saner'22) | --- |
| 밀폐 : 대조 학습을 통한 코드 미리 훈련 된 모델 향상 (ICSE'22) | POJ-104 |
| 트랜스 컴퓨터 기반 데이터 증강을 활용하는 경로 간 교차 클론 탐지 (ICPC'23) | clcdsa |
| 심층 코드 모델에 대한 코드 차이 가이드 적대 예제 생성 (ASE'23 | 큰 클론 벤치 |
| 멀티 모달 대비 학습을 기반으로 한 강화 코드 표현을위한 사전 훈련 방법 (JOS'23) | POJ-104, BIGCLONEBENCH |
| 콩코드 : 소스 코드에 대한 복제 인식 대조 학습 (ISSTA'23) | Codenet (Java), poj104 |
| 신경 상징적 인 중간 표현과의 신경 상징적 제로 샷 코드 복제 (ARXIV'23) | 코데넷 (C, COBOL) |
| 코드 미리 훈련 된 모델에 대한 다중 표적 백도어 공격 (ACL'23) | BCB |
결함 감지 및 수리
| 종이 | 데이터 세트 |
|---|
| 코드 모델에 대한 적대적 예제 (oopsla'20) | VARMISUSE |
| 자체 감독 버그 탐지 및 수리 (Neurips'21) | randombugs, pypibugs |
| 의미 론적 보존 적대 코드 이해 (Coling'22) | 결함 4J |
| 소프트웨어 취약성 탐지에 대한 대조 학습을 통한 경로에 민감한 코드 임베딩 (ISSTA'22) | D2A, 팬, Devign |
| 미리 훈련 된 코드 모델에 대한 자연 공격 (ICSE'22) | Devign |
| 콤보 : 대조 학습을 사용한 이진 코드의 사전 훈련 표현 (ARXIV'22) | Sysevr |
| 학습 (DIS)-프로그램 대조에서 소스 코드의 유사성 (ACL'22) | 공개, CodexGlue |
| 데이터 확대를 통한 소스 코드 학습 향상 : 경험적 연구 (ARXIV'23) | refactory, codrep1 |
| MixCode : Mixup 기반 데이터 증강으로 코드 분류 향상 (Saner'23) | refactory, codrep1 |
| 밀폐 : 대조 학습을 통한 코드 미리 훈련 된 모델 향상 (ICSE'23) | Devign |
| 심층 코드 모델에 대한 코드 차이 가이드 적대 예제 생성 (ASE'23) | Devign, Codechef |
| MUFIN : 배송으로 신경 복구 모델 향상 (ARXIV'23) | Defects4J (종이 별), QuixBugs (종이 별) |
| 설명 가능한 자동 프로그램 수리를위한 인과 추론 활용 (IJCNN'22) | 결함 4J, QuixBugs, bugaid |
| DeepDebug : 스택 추적, 역전 및 코드 골격을 사용하여 파이썬 버그 수정 (Arxiv'21) | 종이 별 |
| Break-IT-Fix-IT : 프로그램 수리를위한 감독되지 않은 학습 (ARXIV'21) | 종이 별, 딥 픽스 |
| 코드 미리 훈련 된 모델에 대한 다중 표적 백도어 공격 (ACL'23) | Devign. 버그 2fix |
| Inferfix : 검색 된 프롬프트에 대한 LLMS를 사용한 엔드 투 엔드 프로그램 수리 (ARXIV'23) | 추정 버그 |
| RAP-GEN : 자동 프로그램 수리를위한 CODET5를 사용한 검색 패치 생성 (FSE'23) | tfix, 버그 2fix, defects4j |
| 버그 보고서가 너무 적습니까? 개선 된 변경 사항 기반 버그 로컬라이즈에 대한 데이터 확대 탐색 (ARXIV'23) | 로커스 데이터 |
코드 요약
| 종이 | 데이터 세트 |
|---|
| 데이터 확대를 통한 깊은 코드 주석 생성 모델 교육 (Internetware'20) | TL- 코드 um |
| 검색 기반 신경 소스 코드 요약 (ICSE'20) | PCSD, JCSD |
| 최적화 된 난독화물을 사용하여 적대적 컴퓨터 프로그램 생성 (ICLR'21) | Python-150K, Code2Seq 데이터 |
| 대조 코드 표현 학습 (EMNLP'21) | JavaScript (종이 별) |
| 소스 코드 임베딩의 심층 신경 네트워크를위한 검색 기반 테스트 프레임 워크 (ICST'21) | 종이 별 |
| 하이브리드 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)를 통한 BASH 의견 생성 | bashexplaner 데이터 |
| READSUM : 소스 코드 요약을위한 검색-예방 적 적응 형 변압기 (Access'23) | PCSD |
| 트램 : 소스 코드 요약을위한 토큰 수준 검색 방지 메커니즘 (ARXIV'23) | PCSD, CCSD, Deepcom |
| 하나의 석재를 가진 두 마리의 새 : 생성 적대적 네트워크를 통한 코드 생성 및 코드 검색 향상 (oopsla'23) | Codesearchnet (Python, Java) |
| 자기 개선을 통한 더 나은 언어 모델 (ACL'23) | Codesearchnet |
코드 검색
| 종이 | 데이터 세트 |
|---|
| AugmentedCode : 코드 검색 모델에서 자연 언어 자원의 영향 검사 (ARXIV'21) | Codesearchnet |
| COSQA : 20, 000+ 코드 검색 및 질문 응답을위한 웹 쿼리 (ACL'21) | cosqa |
| 소스 코드 임베딩의 심층 신경 네트워크를위한 검색 기반 테스트 프레임 워크 (ICST'21) | 종이 별 |
| 의미 론적 보존 적대 코드 이해 (Coling'22) | Codesearchnet |
| 코드 검색을위한 표현 수준 확대 탐색 (EMNLP'22) | Codesearchnet |
| 코드 검색을위한 교차 모달 대조 학습 (ICSME'22) | advtest, cosqa |
| 소스 코드 이해를위한 미리 훈련 된 모델 및 다운 스트림 작업 브리징 (ICSE'22) | Codesearchnet |
| 코드 변환을 통한 변압기 기반 코드 인텔리전스에 대한 자세한 내용 : 도전 및 기회 (ARXIV'22) | Codesearchnet (Python, Java) |
| 밀폐 : 대조 학습을 통한 코드 미리 훈련 된 모델 향상 (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) | Exprgen 데이터 (종이 별) |
| 프로그램 합성 모델의 적대적 견고성 (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) | 아틀라스, tfix |
| Rustgen : 대형 언어 모델로 편집 가능한 Rust 코드를 생성하기위한 증강 접근법 (배포 가능한 Generativeai'23) | 종이 별 |
| 코드 미리 훈련 된 모델에 대한 다중 표적 백도어 공격 (ACL'23) | Githhub Java (CodexGlue) |
| 언어 모델 및 분리 된 도메인 데이터베이스를 통한 도메인 적응 코드 완료 (ASE'23) | 종이 별 |
| APICOM : 신속한 학습 및 적대적 교육 기반 데이터 확대를 통한 자동 API 완료 (Internetware'23) | 종이 별 |
| 신경 코드 생성을위한 기능적으로 동등한 코드 변환을 가진 테스트 중심의 멀티 태스킹 학습 (ASE'22) | MBPP |
| 자기 개선을 통한 더 나은 언어 모델 (ACL'23) | 컨 코드 |
코드 번역
| 종이 | 데이터 세트 |
|---|
| 감독되지 않은 코드 변환에 대한 자동화 된 단위 테스트 활용 (ICLR'23) | 종이 사신 |
| 코드 생성 작업에 대한 데이터 확대 탐색 (EACL'23) | Codetrans (CodexGlue) |
| 요약 및 생성을 역전시키기 위해 생성 : 프로그래밍 언어의 감독되지 않은 번역 (EACL'23) | 트랜스 코더 데이터 |
| 밀폐 : 대조 학습을 통한 코드 미리 훈련 된 모델 향상 (ICSE'23) | Codetrans (CodexGlue) |
| 컴파일러 표현을 사용한 코드 번역 (ICLR'23) | 트랜스 코더 데이터 |
| 비슷한 Corpora 및 다중 참조로 코드 변환을위한 데이터 확대 (EMNLP'23) | 트랜스 코더 데이터 |
| 코드 번역을위한 미리 훈련 된 모델의 구문 적 대적 견고성 평가 및 개선 (ARXIV'23) | 화신 |
| 코드 미리 훈련 된 모델에 대한 다중 표적 백도어 공격 (ACL'23) | 트랜스 코더 데이터 |
코드 질문 답변
| 종이 | 데이터 세트 |
|---|
| COSQA : 20, 000+ 코드 검색 및 질문 응답을위한 웹 쿼리 (ACL'21) | cosqa |
| 의미 론적 보존 적대 코드 이해 (Coling'22) | CodeQa |
| 코드 검색 및 코드 질문 답변을위한 키워드 기반 데이터 확대를 통한 대조 학습 (EACL'23) | cosqa |
| McOdesearcher : 코드 검색을위한 다중 뷰 대조 학습 (Internetware'23) | 웹 쿼리 (종이 별) |
코드 분류
| 종이 | 데이터 세트 |
|---|
| 소스 코드 처리 모델의 견고성을 유지하기위한 적대적 예제 생성 (AAAI'20) | 오지 |
| Q- 러닝 기반 Markov 의사 결정 프로세스를 통해 소스 코드 분류 모델의 적대적 사례 생성 (QRS'21) | 오지 |
| HELOC : 소스 코드 표현의 계층 적 대조 학습 (ICPC'22) | GCJ, OJ |
| 콤보 : 대조 학습을 사용한 이진 코드의 사전 훈련 표현 (ARXIV'22) | POJ-104 (CodexGlue) |
| 소스 코드 이해를위한 미리 훈련 된 모델 및 다운 스트림 작업 브리징 (ICSE'22) | POJ-104 |
| 데이터 확대를 통한 소스 코드 학습 향상 : 경험적 연구 (ARXIV'23) | Java250, Python800 |
| MixCode : Mixup 기반 데이터 증강으로 코드 분류 향상 (Saner'23) | Java250, Python800 |
| 심층 코드 모델에 대한 코드 차이 가이드 적대 예제 생성 (ASE'23) | GCJ |
| 멀티 클래스 코드 가독성 분류를 지원하기위한 향상된 데이터 증강 접근법 (SEKE'22) | 종이 별 |
| 향상된 데이터 증강 접근법으로 멀티 클래스 코드 가독성 분류 향상 (130) (International Journal of Software Engineering and Knowledge Engineering) | 종이 별 |
방법 이름 예측
| 종이 | 데이터 세트 |
|---|
| 코드 모델에 대한 적대적 예제 (oopsla'20) | Code2Vec |
| 소스 코드 임베딩의 심층 신경 네트워크를위한 검색 기반 테스트 프레임 워크 (ICST'21) | 종이 별 |
| 시맨틱 프레싱 프로그램 변환과 관련하여 신경 프로그램 모델의 일반화 가능성 (IST'21) | Code2Seq |
| 프로그램 변환에 의한 데이터 확대 (JSS'22) | Code2Vec |
| 코드 모델에 대한 개별 대적 공격 (PLDI'23) | Code2Vec |
유형 예측
| 종이 | 데이터 세트 |
|---|
| 코드에 대한 적대적 견고성 (ICML'21) | DeepTyper |
| 대조 코드 표현 학습 (EMNLP'21) | DeepTyper |
| 통계 유형 추론에 대한 언어 교차 전이 학습 (ISSTA'22) | DeepTyper, Tynlus (Python), Codesearchnet (Java) |
승인
Steven Y. Feng 등 감사합니다. DataAug4Nlp의 오픈 소스 용지 목록.