GitHub a deschis dezvoltări în utilizarea învățării automate pentru căutarea și analiza codului

GitHub a prezentat proiect CodeSearchNet, в рамках которого подготовлены модели машинного обучения и наборы данных, необходимые для разбора, классификации и анализа кода на различных языках программирования. CodeSearchNet, по аналогии с IMAGEnet, включает большую коллекцию отрывков кода, снабжённых аннотациями, формализующими выполняемые кодом действия. Компоненты для обучения моделей и примеры использования CodeSearchNet написаны на языке Python с использованием фреймворка Tensorflow и distribuit de sub licența MIT.

При создании CodeSearchNet использованы технологии разбора текста на естественном языке, дающие возможность системам машинного обучения учитывать не только синтаксические особенности, но и смысл выполняемых кодом действий. В GitHub система aplica в экспериментах по организации семантического поиска кода с использованием запросов на limbaj natural (например, при запросе «сортировка списка строк» выводится код с реализацией соответствующих алгоритмов).

Предложенный набор данных включает более 2 млн связок «код-комментарий», подготовленных на основе исходных текстов существующих открытых библиотек. Код охватывает полный исходный текст отдельных функций или методов, а комментарий описывает выполняемые функцией действия (приводится детальная документация). В настоящее время наборы данных подготовлены для языков Python, JavaScript, Ruby, Go, Java и PHP. Предоставлены примеры использования предложенных наборов данных для обучения различных типов нейронных сетей, включая Neural-Bag-Of-Words, RNN, Auto-atenție (BERT) и 1D-CNN+Self-Attention Hybrid.

Для развития механизмов поиска на естественном языке дополнительно подготовлен набор CodeSearchNet Challenge, включающий
99 типовых запросов с около 4 тысячами экспертных аннотаций, описывающих наиболее вероятные привязки к коду в наборе данных CodeSearchNet Corpus, охватывающем около 6 млн методов и функций (размер набора около 20 Гб). CodeSearchNet Challenge может выступать как эталон для оценки эффективности тех или иных методов поиска кода на естественном языке. С использованием инструментария KubeFlow pregătit
exemplu движка для поиска кода.

Sursa: opennet.ru

Adauga un comentariu