GitHub kodni qidirish va tahlil qilish uchun mashinani o'rganishdan foydalanish bo'yicha ishlanmalarni ochdi

GitHub tanishtirdi qoralama CodeSearchNet, turli dasturlash tillarida kodni tahlil qilish, tasniflash va tahlil qilish uchun zarur bo'lgan mashinani o'rganish modellari va ma'lumotlar to'plamlarini tayyorlagan. CodeSearchNet, shunga o'xshash IMAGEnet, kod nima qilishini rasmiylashtiradigan izohli kod parchalarining katta to'plamini o'z ichiga oladi. Trening modellari uchun komponentlar va CodeSearchNet-dan foydalanish misollari Tensorflow ramkasi yordamida Python-da yozilgan va tarqaladi MIT litsenziyasi ostida.

CodeSearchNet-ni yaratishda tabiiy tilda matnni tahlil qilish texnologiyalaridan foydalanilgan, bu esa mashinani o'rganish tizimlariga nafaqat sintaktik xususiyatlarni, balki kod tomonidan bajariladigan harakatlarning ma'nosini ham hisobga olish imkonini beradi. GitHub tizimi qo'llaniladi so'rovlar yordamida semantik kod qidirishni tashkil qilish bo'yicha tajribalarda tabiiy til (masalan, "satrlar ro'yxatini saralash" so'ralganda, tegishli algoritmlarni amalga oshirish bilan kod ko'rsatiladi).

Taklif etilayotgan ma'lumotlar to'plami mavjud ochiq kutubxonalarning manba matnlari asosida tayyorlangan 2 milliondan ortiq kod-sharh havolalarini o'z ichiga oladi. Kod alohida funktsiyalar yoki usullarning to'liq manba matnini qamrab oladi va izoh funksiya tomonidan bajariladigan harakatlarni tavsiflaydi (batafsil hujjatlar taqdim etiladi). Hozirgi vaqtda ma'lumotlar to'plamlari Python, JavaScript, Ruby, Go, Java va PHP uchun tayyorlangan. Har xil turdagi neyron tarmoqlarni o'qitish uchun tavsiya etilgan ma'lumotlar to'plamidan foydalanishga misollar keltirilgan Neyron-so'z-qopi, RNN, O'z-o'ziga e'tibor (BERT) va 1D-CNN + Self-Diqqat gibrid.

Tabiiy tillarni qidirish mexanizmlarini ishlab chiqish uchun CodeSearchNet Challenge to'plami qo'shimcha ravishda tayyorlangan, jumladan
99 tipik CodeSearchNet Corpus ma'lumotlar to'plamida 4 millionga yaqin usul va funktsiyalarni qamrab oluvchi eng ko'p ehtimolli kod ulanishlarini tavsiflovchi 6 mingga yaqin ekspert izohlari bilan so'rovlar (o'lchamini belgilang taxminan 20 GB). CodeSearchNet Challenge tabiiy til kodini qidirishning ma'lum usullarining samaradorligini baholash uchun benchmark bo'lib xizmat qilishi mumkin. Asboblardan foydalanish KubeFlow tayyorlangan
misol kod qidiruvi.

Manba: opennet.ru

a Izoh qo'shish