GitHub je odprl razvoj uporabe strojnega učenja za iskanje in analizo kode

GitHub uveden Projekt CodeSearchNet, ki je pripravilo modele strojnega učenja in nabore podatkov, potrebne za razčlenjevanje, razvrščanje in analizo kode v različnih programskih jezikih. CodeSearchNet, podobno ImageNet, vključuje veliko zbirko izrezkov kode z opombami, ki formalizirajo, kaj počne koda. Komponente za modele usposabljanja in primeri uporabe CodeSearchNet so napisani v Pythonu z uporabo ogrodja Tensorflow in distributer pod licenco MIT.

Pri izdelavi CodeSearchNet so bile uporabljene tehnologije za razčlenjevanje besedila v naravnem jeziku, ki so sistemom strojnega učenja omogočile, da upoštevajo ne le sintaktične značilnosti, ampak tudi pomen dejanj, ki jih izvaja koda. Sistem GitHub velja v poskusih organiziranja iskanja semantične kode z uporabo poizvedb na naravni jezik (na primer, ko zahtevate "razvrščanje seznama nizov", se prikaže koda z implementacijo ustreznih algoritmov).

Predlagani nabor podatkov vključuje več kot 2 milijona povezav kode-komentarjev, pripravljenih na podlagi izvornih besedil obstoječih odprtih knjižnic. Koda pokriva celotno izvorno besedilo posameznih funkcij ali metod, komentar pa opisuje dejanja, ki jih izvaja funkcija (navedena je podrobna dokumentacija). Trenutno so nabori podatkov pripravljeni za Python, JavaScript, Ruby, Go, Java in PHP. Podani so primeri uporabe predlaganih naborov podatkov za usposabljanje različnih vrst nevronskih mrež, vključno z Nevronska-vreča-besed, RNN, Samopozornost (BERT) in 1D-CNN+hibrid samopozornosti.

Za razvoj mehanizmov iskanja v naravnem jeziku je bil dodatno pripravljen nabor CodeSearchNet Challenge, ki vključuje
99 tipično poizvedbe s približno 4 tisoč strokovnimi opombami, ki opisujejo najverjetnejše kodne vezave v naboru podatkov CodeSearchNet Corpus, ki zajema približno 6 milijonov metod in funkcij (nastavite velikost približno 20 GB). CodeSearchNet Challenge lahko služi kot merilo uspešnosti za ocenjevanje učinkovitosti določenih metod za iskanje kode naravnega jezika. Uporaba orodij KubeFlow pripravljeno
Primer iskalnik kode.

Vir: opennet.ru

Dodaj komentar