„GitHub“ pradėjo tobulinti mašininio mokymosi naudojimą kodo paieškai ir analizei

GitHub pristatė projektas CodeSearchNet, parengusi mašininio mokymosi modelius ir duomenų rinkinius, reikalingus kodui analizuoti, klasifikuoti ir analizuoti įvairiomis programavimo kalbomis. CodeSearchNet, panašus į ImageNet, apima didelę kodo fragmentų rinkinį su komentarais, kurie įformina, ką daro kodas. Treniruočių modelių komponentai ir CodeSearchNet naudojimo pavyzdžiai parašyti Python naudojant Tensorflow sistemą ir išplatino pagal MIT licenciją.

Kuriant CodeSearchNet buvo panaudotos natūralios kalbos teksto analizavimo technologijos, leidžiančios mašininio mokymosi sistemoms atsižvelgti ne tik į sintaksines ypatybes, bet ir į kodo atliekamų veiksmų prasmę. „GitHub“ sistema taikoma eksperimentuose organizuojant semantinio kodo paiešką naudojant užklausas natūrali kalba (pavyzdžiui, kai prašoma „rūšiuoti eilučių sąrašą“, rodomas kodas su atitinkamų algoritmų įgyvendinimu).

Siūlomas duomenų rinkinys apima daugiau nei 2 milijonus kodo ir komentarų nuorodų, parengtų remiantis esamų atvirų bibliotekų šaltiniais. Kodas apima visą atskirų funkcijų ar metodų pirminį tekstą, o komentare aprašomi funkcijos atliekami veiksmai (pateikiama išsami dokumentacija). Šiuo metu duomenų rinkiniai yra paruošti Python, JavaScript, Ruby, Go, Java ir PHP. Pateikiami pavyzdžiai, kaip naudoti siūlomus duomenų rinkinius įvairių tipų neuroniniams tinklams, įskaitant Neuroninis žodžių maišelis, RNN, Atidumas į save (BERT) ir 1D-CNN+Self-Attention hibridas.

Natūralios kalbos paieškos mechanizmams plėtoti papildomai parengtas CodeSearchNet Challenge rinkinys, įskaitant
99 tipiškas užklausų su maždaug 4 tūkstančiais ekspertų komentarų, apibūdinančių labiausiai tikėtinus kodo susiejimus CodeSearchNet Corpus duomenų rinkinyje, apimantį apie 6 milijonus metodų ir funkcijų (nustatytas dydis apie 20 GB). „CodeSearchNet Challenge“ gali būti naudojamas kaip etalonas vertinant tam tikrų natūralios kalbos kodo paieškos metodų efektyvumą. Naudojant įrankius „Kubeflow“ paruošta
pavyzdys kodo paieškos sistema.

Šaltinis: opennet.ru

Добавить комментарий