GitHub je otvorio razvoj u korištenju strojnog učenja za pretraživanje i analizu koda

GitHub podnijeti projekt CodeSearchNet, koja je pripremila modele strojnog učenja i skupove podataka potrebne za parsiranje, klasificiranje i analizu koda u različitim programskim jezicima. CodeSearchNet, slično ImageNet, uključuje veliku zbirku isječaka koda s komentarima koji formaliziraju ono što kod radi. Komponente za modele obuke i primjere korištenja CodeSearchNet-a napisane su u Pythonu korištenjem okvira Tensorflow i distribuira pod licencom MIT-a.

Prilikom izrade CodeSearchNet-a korištene su tehnologije parsiranja teksta prirodnog jezika, omogućujući sustavima strojnog učenja da uzmu u obzir ne samo sintaktičke značajke, već i značenje radnji koje izvodi kod. Sustav GitHub primijenjena u eksperimentima organiziranja pretraživanja semantičkog koda pomoću upita na prirodni jezik (na primjer, kada se traži "sortiranje popisa nizova", prikazuje se kod s implementacijom odgovarajućih algoritama).

Predloženi skup podataka uključuje više od 2 milijuna poveznica kodova i komentara, pripremljenih na temelju izvornih tekstova postojećih otvorenih knjižnica. Kod pokriva potpuni izvorni tekst pojedinačnih funkcija ili metoda, a komentar opisuje radnje koje funkcija izvodi (dostavljena je detaljna dokumentacija). Trenutačno su skupovi podataka pripremljeni za Python, JavaScript, Ruby, Go, Java i PHP. Daju se primjeri korištenja predloženih skupova podataka za obuku različitih vrsta neuronskih mreža, uključujući Neuralna-vreća-od-riječi, RNN, Pažnja na sebe (BERT) i 1D-CNN+Hibrid samopažnje.

Za razvoj mehanizama pretraživanja prirodnog jezika, dodatno je pripremljen skup CodeSearchNet Challenge, uključujući
99 tipično upite s oko 4 tisuće stručnih komentara koji opisuju najvjerojatnije vezivanje koda u skupu podataka CodeSearchNet Corpus, pokrivajući oko 6 milijuna metoda i funkcija (postavljena veličina oko 20 GB). CodeSearchNet Challenge može poslužiti kao mjerilo za ocjenu učinkovitosti određenih metoda za pretraživanje koda prirodnog jezika. Korištenje alata KubeFlow pripremljeno
primjer tražilica kodova.

Izvor: opennet.ru

Dodajte komentar