GitHub відкрив напрацювання щодо застосування машинного навчання для пошуку та аналізу коду

Alex Alex 29 вересня 2019
GitHub відкрив напрацювання щодо застосування машинного навчання для пошуку та аналізу коду

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 підготовлений приклад движка для пошуку коду.

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Війти / Зареєструватися