GitHub otevřel vývoj v používání strojového učení pro vyhledávání a analýzu kódu

GitHub představen projekt CodeSearchNet, která připravila modely strojového učení a datové sady nezbytné pro analýzu, klasifikaci a analýzu kódu v různých programovacích jazycích. CodeSearchNet, podobně jako IMAGEnet, obsahuje velkou sbírku úryvků kódu s poznámkami, které formalizují, co kód dělá. Komponenty pro trénovací modely a příklady použití CodeSearchNet jsou napsány v Pythonu pomocí rámce Tensorflow a distribuovány pod licencí MIT.

Při vytváření CodeSearchNet byly použity technologie pro analýzu textu v přirozeném jazyce, umožňující systémům strojového učení zohledňovat nejen syntaktické vlastnosti, ale také význam akcí prováděných kódem. Systém GitHub aplikováno v experimentech s organizací vyhledávání sémantického kódu pomocí dotazů na přirozený jazyk (např. při požadavku na „třídění seznamu řetězců“ se zobrazí kód s implementací odpovídajících algoritmů).

Navržený datový soubor obsahuje více než 2 miliony odkazů s kódem a komentáři, připravených na základě zdrojových textů existujících otevřených knihoven. Kód pokrývá kompletní zdrojový text jednotlivých funkcí nebo metod a komentář popisuje akce prováděné funkcí (podrobná dokumentace je k dispozici). V současné době jsou připravovány datové sady pro Python, JavaScript, Ruby, Go, Java a PHP. Jsou uvedeny příklady použití navržených datových sad pro trénování různých typů neuronových sítí, včetně Neural-Bag-of-Words, RNN, Sebepozornost (BERT) a Hybridní 1D-CNN+Self-Attention.

Pro vývoj mechanismů vyhledávání v přirozeném jazyce byla dodatečně připravena sada CodeSearchNet Challenge, včetně
99 typické dotazy s asi 4 tisíci odbornými anotacemi popisujícími nejpravděpodobnější vazby kódu v datové sadě CodeSearchNet Corpus, pokrývající asi 6 milionů metod a funkcí (nastavit velikost asi 20 GB). CodeSearchNet Challenge může sloužit jako měřítko pro hodnocení účinnosti určitých metod pro vyhledávání kódu přirozeného jazyka. Pomocí nástrojů KubeFlow připravený
příklad vyhledávač kódů.

Zdroj: opennet.ru

Přidat komentář