ContraCode: нейросеть находит функционально схожий код |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-07-20 17:04 ContraCode — это нейросеть для поиска функционально схожего кода программ. Модель предобучали с помощью contrastive pre-training подхода. Предобученную нейросеть затем дообучили на задачах вывода типов и суммаризации кода. Во время предобучения исследователи трансформируют компилятор, чтобы сгенерировать эквивалентные по функционалу и отличные по тексту части программ. По результатам экспериментов, дообученная нейросеть обходит state-of-the-art на задачах вывода типов и суммаризации кода для языка JavaScript. ContraCode улучшает точность суммаризации на 7.9% в сравнении с supervised подходами и на 4.8% в сравнении с RoBERTa. Описание проблемы Большинство существующих подходов к обучению представлениям обучаются с учителем на специфичных размеченных датасетах. Исследователи предлагают self-supervised алгоритм ContraCode, который выучивает представления кода без привязки к задачам. Подход не требует размеченные данные для обучения. ContraCode pre-training improves code summarization accuracy by 7.9% over supervised approaches and 4.8% over RoBERTa pre-training. Moreover, our approach is agnostic to model architecture; for a type inference task, contrastive pre-training consistently improves the accuracy of existing baselines. Контрастивное предобучение Суть контрастивного предобучения заключается в том, что модель обучается распознавать эквивалентные вариации программы среди большого набора отрицательных примеров программ. Такая формулировка целевой функции позволяет нейросети выучивать семантику программ, а не фокусироваться на синтаксически близких кусках кода. Визуализация процесса обучения Модель предобучали на коде 1.8 миллионов неразмеченных методов на JavaScript. Код методов извлекли из публичных репозиториев на GitHub. В качестве архитектуры брали LSTM и Transformer. Дообучение на целевых задачах Предобученную модель дообучили на задачах вывода типов и суммаризации кода. ContraCode обходит базовые модели, которые обучались с нуля или предобучались с помощью восстанавливающих целевых функций. Среди восстанавливающих целевых функций — маскирование в языковом моделировании. Источник: neurohive.io Комментарии: |
|