GitHub je otvorio razvoje u korišćenju mašinskog učenja za pretragu i analizu koda

GitHub uveo nacrt CodeSearchNet, koji je pripremio modele mašinskog učenja i skupove podataka neophodne za raščlanjivanje, klasifikaciju i analizu koda u različitim programskim jezicima. CodeSearchNet, slično ImageNet, uključuje veliku kolekciju isječaka koda s napomenama koje formaliziraju ono što kod radi. Komponente za modele obuke i primjeri korištenja CodeSearchNet-a napisani su u Pythonu koristeći Tensorflow okvir i distribuira pod MIT licencom.

Prilikom kreiranja CodeSearchNet-a korišćene su tehnologije za raščlanjivanje teksta na prirodnom jeziku, što je omogućilo sistemima mašinskog učenja da uzmu u obzir ne samo sintaksičke karakteristike, već i značenje radnji koje izvršava kod. GitHub sistem se primjenjuje u eksperimentima organiziranja pretraživanja semantičkog koda korištenjem upita na prirodni jezik (na primjer, kada se traži "sortiranje liste stringova", prikazuje se kod sa implementacijom odgovarajućih algoritama).

Predloženi skup podataka uključuje više od 2 miliona linkova kod-komentara, pripremljenih na osnovu izvornih tekstova postojećih otvorenih biblioteka. Kod pokriva kompletan izvorni tekst pojedinih funkcija ili metoda, a komentar opisuje radnje koje funkcija izvršava (detaljna dokumentacija je data). Trenutno su skupovi podataka pripremljeni za Python, JavaScript, Ruby, Go, Java i PHP. Navedeni su primjeri korištenja predloženih skupova podataka za obuku različitih tipova neuronskih mreža, uključujući Neural-Bag-Of-Words, RNN, Self-Attention (BERT) i 1D-CNN+Self-Attention Hybrid.

Za razvoj mehanizama pretraživanja prirodnog jezika dodatno je pripremljen set CodeSearchNet Challenge-a, uključujući
99 tipično upite sa oko 4 hiljade stručnih napomena koje opisuju najvjerovatnije veze koda u skupu podataka CodeSearchNet Corpus, pokrivajući oko 6 miliona metoda i funkcija (set size oko 20 GB). CodeSearchNet Challenge može poslužiti kao mjerilo za procjenu efikasnosti određenih metoda za pretraživanje koda prirodnog jezika. Koristeći alate KubeFlow pripremljeno
primer tražilicu koda.

izvor: opennet.ru

Dodajte komentar