GitHub a deschis dezvoltări în utilizarea învățării automate pentru căutarea și analiza codului

GitHub a prezentat proiect CodeSearchNet, care a pregătit modele de învățare automată și seturi de date necesare pentru analizarea, clasificarea și analiza codului în diferite limbaje de programare. CodeSearchNet, similar cu IMAGEnet, include o colecție mare de fragmente de cod cu adnotări care oficializează ceea ce face codul. Componentele pentru modelele de antrenament și exemplele de utilizare a CodeSearchNet sunt scrise în Python folosind cadrul Tensorflow și distribuit de sub licența MIT.

La crearea CodeSearchNet, au fost folosite tehnologii de analizare a textului în limbaj natural, permițând sistemelor de învățare automată să ia în considerare nu numai caracteristicile sintactice, ci și semnificația acțiunilor efectuate de cod. Sistemul GitHub aplica în experimente privind organizarea căutării codului semantic folosind interogări pe limbaj natural (de exemplu, la solicitarea „sortării unei liste de șiruri”, este afișat codul cu implementarea algoritmilor corespunzători).

Setul de date propus include mai mult de 2 milioane de link-uri cod-comentari, pregătite pe baza textelor sursă ale bibliotecilor deschise existente. Codul acoperă textul sursă complet al funcțiilor sau metodelor individuale, iar comentariul descrie acțiunile efectuate de funcție (este furnizată documentație detaliată). În prezent, seturile de date sunt pregătite pentru Python, JavaScript, Ruby, Go, Java și PHP. Sunt oferite exemple de utilizare a seturilor de date propuse pentru antrenarea diferitelor tipuri de rețele neuronale, inclusiv Pungă-neurală-de-cuvinte, RNN, Auto-atenție (BERT) și 1D-CNN+Hibrid de auto-atenție.

Pentru a dezvolta mecanisme de căutare în limbaj natural, a fost pregătit suplimentar un set de CodeSearchNet Challenge, inclusiv
99 tipic interogări cu aproximativ 4 mii de adnotări de experți care descriu cele mai probabile legături de cod din setul de date CodeSearchNet Corpus, acoperind aproximativ 6 milioane de metode și funcții (setat dimensiunea aproximativ 20 GB). Provocarea CodeSearchNet poate servi ca punct de referință pentru evaluarea eficienței anumitor metode de căutare a codului în limbaj natural. Folosind instrumente KubeFlow pregătit
exemplu motor de căutare de coduri.

Sursa: opennet.ru

Adauga un comentariu