GitHub otvoril vývoj v používaní strojového učenia na vyhľadávanie a analýzu kódu

GitHub predložené projekt CodeSearchNet, ktorá pripravila modely strojového učenia a súbory údajov potrebné na analýzu, klasifikáciu a analýzu kódu v rôznych programovacích jazykoch. CodeSearchNet, podobne ako ImageNet, obsahuje veľkú zbierku úryvkov kódu s anotáciami, ktoré formalizujú, čo kód robí. Komponenty pre tréningové modely a príklady používania CodeSearchNet sú napísané v Pythone pomocou rámca Tensorflow a distribuovaný pod licenciou MIT.

Pri vytváraní CodeSearchNet boli použité technológie na analýzu textu v prirodzenom jazyku, ktoré umožňujú systémom strojového učenia brať do úvahy nielen syntaktické vlastnosti, ale aj význam akcií vykonávaných kódom. Systém GitHub platiť v experimentoch s organizovaním vyhľadávania sémantického kódu pomocou dopytov na prirodzený jazyk (napríklad pri požiadavke „zoradiť zoznam reťazcov“ sa zobrazí kód s implementáciou zodpovedajúcich algoritmov).

Navrhovaný súbor údajov obsahuje viac ako 2 milióny odkazov s komentármi, pripravených na základe zdrojových textov existujúcich otvorených knižníc. Kód pokrýva úplný zdrojový text jednotlivých funkcií alebo metód a komentár popisuje akcie vykonávané funkciou (podrobná dokumentácia je poskytnutá). V súčasnosti sú datasety pripravené pre Python, JavaScript, Ruby, Go, Java a PHP. Uvádzajú sa príklady použitia navrhovaných súborov údajov na trénovanie rôznych typov neurónových sietí, vrátane Neurónové vrece slov, RNN, Sebapozornosť (BERT) a 1D-CNN + samoobslužný hybrid.

Na vývoj mechanizmov vyhľadávania v prirodzenom jazyku bola dodatočne pripravená sada CodeSearchNet Challenge, vrátane
99 typické dotazy s približne 4 6 odbornými anotáciami popisujúcimi najpravdepodobnejšie väzby kódu v súbore údajov CodeSearchNet Corpus, ktoré pokrývajú približne XNUMX miliónov metód a funkcií (nastaviť veľkosť približne 20 GB). CodeSearchNet Challenge môže slúžiť ako benchmark na hodnotenie účinnosti určitých metód na vyhľadávanie kódu prirodzeného jazyka. Používanie nástrojov KubeFlow pripravené
príklad vyhľadávač kódov.

Zdroj: opennet.ru

Pridať komentár