Подходы к увеличению данных для моделей исходного кода
Если вы хотите добавить свою газету, не пишите нам. Вместо этого прочитайте протокол для добавления новой записи и отправьте запрос на вытяжку.
Мы сгруппируем документы по атрибуции авторства кода, обнаружение клонов, обнаружение и ремонт дефектов, суммирование кода, поиск кода, завершение кода, перевод кода, ответ на вопрос кода, классификация проблем, прогноз имени метода и прогноз типа.
Этот репозиторий основан на нашей статье, увеличении данных исходного кода для глубокого обучения: опрос. Вы можете упомянуть это следующим образом:
@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}
}
Авторы: Терри Юэ Чжуо, Чжоу Ян, Чженсу Сан, Юфэй Ван, Ли Ли, Сяонинг Дю, Чжэнканг Син, Дэвид Ло
Примечание: 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) | BigClonebench |
| Выпустить силу промежуточного представления компилятора для улучшения встраивания нейронных программ (ICSE'22) | POJ-104, GCJ |
| HELOC: иерархическое контрастное обучение представления исходного кода (ICPC'22) | GCJ, OjClone |
| Комбоя: предварительные представления бинарного кода с использованием контрастного обучения (arxiv'22) | BinaryCorp-3M |
| Оценка контрастного обучения с различными представлениями кода для обнаружения клонов кода (ARXIV'22) | POJ-104, CodeForces |
| На пути к обучению (DIS) -Simwarity исходного кода из программных контрастов (ACL'22) | POJ-104, BigClonebench |
| REACC: Основная структура завершения кода поиска (ACL'22) | Коднет |
| Соединение предварительно обученных моделей и нисходящих задач для понимания исходного кода (ICSE'22) | POJ-104 |
| Увеличение обучения исходного кода с увеличением данных: эмпирическое исследование (ARXIV'23) | BigClonebench |
| Clawsat: как к надежным, так и к точным моделям кода (Saner'22) | --- |
| Contrabert: улучшение предварительно обученных моделей кода с помощью контрастного обучения (ICSE'22) | POJ-104 |
| Пути к использованию увеличения данных на основе трансловере для обнаружения клонов поперечного языка (ICPC'23) | Clcdsa |
| Разница в разнице в кодах. Генерация примеров для моделей глубоких кодов (ASE'23 | BigClonebench |
| Метод предварительного обучения для улучшенного представления кода на основе мультимодального контрастного обучения (JOS'23) | POJ-104, BigClonebench |
| Согласие: контрастное обучение с учетом клонов для исходного кода (ISSTA'23) | Codenet (Java), POJ104 |
| Нейро-символический клонирование кода с нулевым выстрелом с межязычным промежуточным представлением (arxiv'23) | Codenet (C, Cobol) |
| Multi-Target Backdoor Attacks для предварительно обученных моделей кода (ACL'23) | BCB |
Обнаружение и ремонт дефектов
| Бумага | Наборы данных |
|---|
| Адверские примеры для моделей кода (OOPSLA'20) | Varmisuse |
| Самоотверженное обнаружение и восстановление ошибок (Neurips'21) | Рандбугс, Пипбуки |
| Понимание состязательного кода семантического обеспечения (Coling'22) | Defects4j |
| Чувствительный к пути код, внедряющий контрастное обучение для обнаружения уязвимости программного обеспечения (ISSTA'22) | D2A, фанат, Devign |
| Естественная атака для предварительно обученных моделей кода (ICSE'22) | Девит |
| Комбоя: предварительные представления бинарного кода с использованием контрастного обучения (arxiv'22) | Sysevr |
| На пути к обучению (DIS) -Simwarity исходного кода из программных контрастов (ACL'22) | Раскрыть, Codexglue |
| Увеличение обучения исходного кода с увеличением данных: эмпирическое исследование (ARXIV'23) | Refactory, codrep1 |
| MixCode: улучшение классификации кода путем увеличения данных на основе микширования (Saner'23) | Refactory, codrep1 |
| Contrabert: улучшение кода, предварительно обученных моделями, посредством контрастного обучения (ICSE'23) | Девит |
| Разница в разнице в кодах генерации примеров для моделей глубоких кодов (ASE'23) | Devign, Codechef |
| Муфин: улучшение моделей восстановления нейронных нейронных нейронных веществ с помощью переноса (arxiv'23) | Defects4j (специфичная для бумаги), Quixbugs (специфичная для бумаги) |
| Использование причинно -следственного вывода для объяснимого автоматического ремонта программы (ijcnn'22) | Defects4j, Quixbugs, Bugaid |
| DeepDebug: исправление ошибок Python с использованием трассировки стека, обратной передачи и кодовых скелетов (arxiv'21) | специфичный для бумаги |
| Break-it-fix-it: неконтролируемое обучение для ремонта программы (arxiv'21) | Специфичный для бумаги, DeepFix |
| Multi-Target Backdoor Attacks для предварительно обученных моделей кода (ACL'23) | Девит. Bug2fix |
| Inferfix: сквозное программное ремонт с LLMS из-за поиска-аугированных подсказок (arxiv'23) | Inferredbugs |
| Рэп-генерал: Поизводимый авторский генерация патчей с Codet5 для автоматического ремонта программы (FSE'23) | Tfix, bug2fix, defects4j |
| Слишком мало сообщений об ошибках? Изучение увеличения данных для улучшения локализации ошибок на основе изменений (ARXIV'23) | Локусные данные |
Суммирование кода
| Бумага | Наборы данных |
|---|
| Обучение моделей генерации комментариев глубокого кода с помощью увеличения данных (Интернет -посуды20) | TL-кодезум |
| Суммизация нейронного исходного кода на основе поиска (ICSE'20) | PCSD, JCSD |
| Создание состязательных компьютерных программ с использованием оптимизированных запутываний (ICLR'21) | Python-150K, Code2seq Data |
| Обучение представления контрастного кода (EMNLP'21) | JavaScript (специфичный для бумаги) |
| Основанная на поиске структура тестирования для глубоких нейронных сетей встраивания исходного кода (ICST'21) | специфичный для бумаги |
| Поизводимая генерация для суммирования кода через гибридный GNN (ICLR'21) | CCSD (специфичная для бумаги) |
| Bashexplainer: Поиск затрат на аугментированные. Генерация комментариев кода BASH на основе тонко настроенного Codebert (ICMSE'22) | Данные Bashexplaner |
| Увеличение данных путем преобразования программы (JSS'22) | Deepcom |
| Адверскую надежность генерации комментариев глубокого кода (Tosem'22) | CCSD (специфичная для бумаги) |
| Не хватает данных? Легкое увеличение данных для суммирования кода (PAAP'22) | --- |
| Семантическая надежность моделей исходного кода (Saner'22) | Python-150K, Code2seq Data |
| Более пристальный взгляд на интеллект кода на основе трансформатора через преобразование кода: проблемы и возможности (Arxiv'22) | Codesearchnet (Python, Java) |
| Clawsat: как к надежным, так и к точным моделям кода (Saner'23) | --- |
| Изучение увеличения данных для задач генерации кода (EACL'23) | Codesearchnet (CodexGlue) |
| Генерация комментариев BASH с помощью увеличения данных и семантического Codebert (arxiv'23) | Данные 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) | Коска |
| Основанная на поиске структура тестирования для глубоких нейронных сетей встраивания исходного кода (ICST'21) | специфичный для бумаги |
| Понимание состязательного кода семантического обеспечения (Coling'22) | CodeSearchNet |
| Изучение увеличения на уровне представления для поиска кода (EMNLP'22) | CodeSearchNet |
| Кросс-модальное контрастное обучение для поиска кода (ICSME'22) | Advtest, Cosqa |
| Соединение предварительно обученных моделей и нисходящих задач для понимания исходного кода (ICSE'22) | CodeSearchNet |
| Более пристальный взгляд на интеллект кода на основе трансформатора через преобразование кода: проблемы и возможности (Arxiv'22) | Codesearchnet (Python, Java) |
| Contrabert: улучшение кода, предварительно обученных моделями, посредством контрастного обучения (ICSE'23) | Advtest, WebQueryTest |
| Кокосода: эффективное контрастное обучение для поиска кода (ICSE'23) | CodeSearchNet |
| Контрастное обучение с увеличением данных на основе ключевых слов для ответа на код и ответа на код (EACL'23) | WebQueryTest |
| Метод предварительного обучения для улучшенного представления кода на основе мультимодального контрастного обучения (JOS'23) | CodeSearchNet |
| Переосмысление негативных пар в поиске кода (EMNLP'23) | CodeSearchNet |
| На пути к лучшему многоязычному поиску кода через кросс-лингальное контрастное обучение (Интернет-программное обеспечение 23) | Xlcost |
| McOdesearcher: Multi-Eview Contrastive Learning для поиска кода (Internetware'23) | Codesearchnet (Python, Java), Cosqa, Staqc, WebQuery |
| Mulcs: На пути к единому глубокому представлению для многоязычного поиска кода (Saner'23) | Codesearchnet (Python, Java), специфичный для бумаги |
| Две птицы с одним камнем: повышение генерации кода и поиск кода с помощью генеративной состязательной сети (OOPSLA'23) | Codesearchnet (Python, Java) |
Завершение кода
| Бумага | Наборы данных |
|---|
| Моделирование генеративного кода с графиками (ICLR'19) | Данные exprGen (специфичная для бумаги) |
| Адверскую надежность моделей синтеза программ (Aiplans'21) | Алголисп |
| REACC: Основная структура завершения кода поиска (ACL'22) | Py150 (Codexglue), githhub java (codexglue) |
| Многозадачное обучение, управляемое тестированием, с функционально эквивалентным преобразованием кода для генерации нейронного кода (ASE'22) | MBPP |
| Насколько важны хорошие названия методов в генерации нейронного кода? Перспектива модели надежности (arxiv'22) | изысканный код, изысканный питоррент |
| Более пристальный взгляд на интеллект кода на основе трансформатора через преобразование кода: проблемы и возможности (Arxiv'22) | Codesearchnet (Python, Java) |
| Recode: оценка надежности моделей генерации кода (ACL'23) | Гуманевал, MBPP |
| Clawsat: как к надежным, так и к точным моделям кода (Saner'23) | --- |
| Выбор подсказки на основе поиска для обучения, связанного с кодом, (ICSE'23) | Атлас, Tfix |
| Рустген: подход к увеличению для создания компилируемого кода ржавчины с большими языковыми моделями (DeployableGenerativeai'23) | специфичный для бумаги |
| Multi-Target Backdoor Attacks для предварительно обученных моделей кода (ACL'23) | Githhub java (codexglue) |
| Завершение адаптивного кода домена с помощью языковых моделей и отдельных баз данных доменов (ASE'23) | специфичный для бумаги |
| APICOM: автоматическое завершение API с помощью быстрого обучения и состязательного обучения на основе обучения (Internetware'23) | специфичный для бумаги |
| Многозадачное обучение, управляемое тестированием, с функционально эквивалентным преобразованием кода для генерации нейронного кода (ASE'22) | MBPP |
| Лучшие языковые модели кода через самосовершенствование (ACL'23) | Качал |
Перевод кода
| Бумага | Наборы данных |
|---|
| Использование автоматических модульных тестов для неконтролируемого перевода кода (ICLR'23) | бумага |
| Изучение увеличения данных для задач генерации кода (EACL'23) | Codetrans (CodexGlue) |
| Суммить и генерировать в обратном транслате: неконтролируемый перевод языков программирования (EACL'23) | Данные транскодера |
| Contrabert: улучшение кода, предварительно обученных моделями, посредством контрастного обучения (ICSE'23) | Codetrans (CodexGlue) |
| Перевод кода с представлениями компилятора (ICLR'23) | Данные транскодера |
| Увеличение данных для перевода кода с сопоставимыми корпусами и несколькими ссылками (EMNLP'23) | Данные транскодера |
| Оценка и улучшение синтаксической состязательной надежности предварительно обученных моделей для перевода кода (arxiv'23) | Аватар |
| Multi-Target Backdoor Attacks для предварительно обученных моделей кода (ACL'23) | Данные транскодера |
Ответ на код
| Бумага | Наборы данных |
|---|
| Cosqa: 20 000+ веб -запросов для поиска кода и ответа на вопросы (ACL'21) | Коска |
| Понимание состязательного кода семантического обеспечения (Coling'22) | Codeqa |
| Контрастирующее обучение с увеличением данных на основе ключевых слов для ответа на кодовое поиск и ответа на код (EACL'23) | Коска |
| McOdesearcher: Multi-Eview Contrastive Learning для поиска кода (Internetware'23) | WebQuery (специфичная для бумаги) |
Классификация кода
| Бумага | Наборы данных |
|---|
| Создание состязательных примеров для обеспечения надежности моделей обработки исходного кода (AAAI'20) | Oj |
| Создание состязательных примеров моделей классификации исходного кода с помощью процесса принятия решений на основе Q-обучения (QRS'21) | Oj |
| HELOC: иерархическое контрастное обучение представления исходного кода (ICPC'22) | GCJ, OJ |
| Комбоя: предварительные представления бинарного кода с использованием контрастного обучения (arxiv'22) | POJ-104 (CodexGlue) |
| Соединение предварительно обученных моделей и нисходящих задач для понимания исходного кода (ICSE'22) | POJ-104 |
| Увеличение обучения исходного кода с увеличением данных: эмпирическое исследование (ARXIV'23) | Java250, Python800 |
| MixCode: улучшение классификации кода путем увеличения данных на основе микширования (Saner'23) | Java250, Python800 |
| Разница в разнице в кодах генерации примеров для моделей глубоких кодов (ASE'23) | GCJ |
| Усовершенствованный подход к увеличению данных для поддержки классификации чтения многоклассов (SEKE'22) | специфичный для бумаги |
| Улучшение классификации чтения кода многокласса с помощью улучшенного подхода к увеличению данных (130) (Международный журнал по разработке программного обеспечения и инженерии знаний) | специфичный для бумаги |
Прогноз имени метода
| Бумага | Наборы данных |
|---|
| Адверские примеры для моделей кода (OOPSLA'20) | CODE2VEC |
| Основанная на поиске структура тестирования для глубоких нейронных сетей встраивания исходного кода (ICST'21) | специфичный для бумаги |
| О обобщении моделей нейронной программы в отношении преобразований программ, сохраняющих семантику (IST'21) | Code2seq |
| Увеличение данных путем преобразования программы (JSS'22) | CODE2VEC |
| Дискретная состязательная атака на модели кода (PLDI'23) | CODE2VEC |
Тип прогноз
| Бумага | Наборы данных |
|---|
| Адверскую надежность кода (ICML'21) | Глубокий |
| Обучение представления контрастного кода (EMNLP'21) | Глубокий |
| Поперечное обучение передачи для вывода статистического типа (ISSTA'22) | Deeptyper, Typilus (Python), Codesearchnet (Java) |
Подтверждение
Мы благодарим Стивена Й. Фэн и др. для их списка бумаги с открытым исходным кодом на Dataaug4nlp.