GitHub открыл наработки по применению машинного обучения для поиска и анализа кода

27 сентября 2019 года

GitHub представил проект CodeSearchNet, в рамках которого подготовлены модели машинного обучения и наборы данных, необходимые для разбора, классификации и анализа кода на различных языках программирования. CodeSearchNet, по аналогии с ImageNet, включает большую коллекцию отрывков кода, снабжённых аннотациями, формализующими выполняемые кодом действия. Компоненты для обучения моделей и примеры использования CodeSearchNet написаны на языке Python с использованием фреймворка Tensorflow и распространяется под лицензией MIT.

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

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

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «GitHub открыл наработки по применению машинного обучения для поиска и анализа кода», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.