GitHub on avannut kehitystyön koneoppimisen käyttöön koodihakuun ja -analyysiin

GitHub toimitettu hanke CodeSearchNet, joka on valmistellut koneoppimismalleja ja tietojoukkoja, joita tarvitaan koodin jäsentämiseen, luokitteluun ja analysointiin eri ohjelmointikielillä. CodeSearchNet, samanlainen kuin IMAGEnet, sisältää suuren kokoelman koodinpätkiä merkinnöillä, jotka muotoilevat koodin toiminnan. Harjoitusmallien komponentit ja esimerkit CodeSearchNetin käytöstä kirjoitetaan Pythonissa käyttämällä Tensorflow-kehystä ja jakelija MIT-lisenssillä.

CodeSearchNetiä luotaessa käytettiin luonnollisen kielen tekstin jäsennystekniikoita, joiden avulla koneoppimisjärjestelmät pystyivät huomioimaan syntaktisten ominaisuuksien lisäksi myös koodin suorittamien toimintojen merkityksen. GitHub-järjestelmä sovellettu kokeissa semanttisen koodihaun järjestämisestä kyselyillä luonnollinen kieli (esimerkiksi kun pyydetään "merkkijonoluettelon lajittelua", näytetään koodi vastaavien algoritmien toteutuksella).

Ehdotettu tietojoukko sisältää yli 2 miljoonaa koodikommenttilinkkiä, jotka on laadittu olemassa olevien avoimien kirjastojen lähdetekstien perusteella. Koodi kattaa yksittäisten funktioiden tai menetelmien täydellisen lähdetekstin ja kommentissa kuvataan toiminnon suorittamat toimet (yksityiskohtainen dokumentaatio on mukana). Tällä hetkellä tietojoukot valmistetaan Pythonille, JavaScriptille, Rubylle, Golle, Javalle ja PHP:lle. Esimerkkejä tarjotaan ehdotettujen tietojoukkojen käyttämisestä erityyppisten hermoverkkojen opetukseen, mukaan lukien Neuraalinen sanapussi, RNN, Itsehuomio (BERT) ja 1D-CNN + Self-Attention -hybridi.

Luonnollisen kielen hakumekanismien kehittämiseksi on lisäksi valmisteltu sarja CodeSearchNet Challengea, mm
99 tyypillinen kyselyitä noin 4 tuhannella asiantuntijamerkinnällä, jotka kuvaavat CodeSearchNet Corpus -tietojoukon todennäköisimpiä koodisidoksia, jotka kattavat noin 6 miljoonaa menetelmää ja toimintoa (asetettu koko noin 20 Gt). CodeSearchNet Challenge voi toimia vertailukohtana arvioitaessa tiettyjen luonnollisen kielen koodin hakumenetelmien tehokkuutta. Työkalujen käyttö KubeFlow valmis
esimerkki koodihakukone.

Lähde: opennet.ru

Lisää kommentti