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