GitHub heeft ontwikkelingen geopend in het gebruik van machine learning voor het zoeken en analyseren van codes

GitHub ingediend project CodeSearchNet, dat machine learning-modellen en datasets heeft opgesteld die nodig zijn voor het parseren, classificeren en analyseren van code in verschillende programmeertalen. CodeSearchNet, vergelijkbaar met IMAGEnet, bevat een grote verzameling codefragmenten met annotaties die formaliseren wat de code doet. Componenten voor trainingsmodellen en voorbeelden van het gebruik van CodeSearchNet zijn geschreven in Python met behulp van het Tensorflow-framework en gedistribueerd door onder de MIT-licentie.

Bij het maken van CodeSearchNet werd gebruik gemaakt van technologieën voor het parseren van natuurlijke taalteksten, waardoor machine learning-systemen niet alleen rekening konden houden met syntactische kenmerken, maar ook met de betekenis van de acties die door de code worden uitgevoerd. Het GitHub-systeem toegepast in experimenten met het organiseren van semantische codezoekopdrachten met behulp van queries op natuurlijke taal (bijvoorbeeld bij het verzoek om "een lijst met tekenreeksen te sorteren", wordt code met de implementatie van de bijbehorende algoritmen weergegeven).

De voorgestelde dataset bevat meer dan 2 miljoen links naar codecommentaar, opgesteld op basis van de bronteksten van bestaande open bibliotheken. De code omvat de volledige brontekst van individuele functies of methoden, en het commentaar beschrijft de acties die door de functie worden uitgevoerd (er wordt gedetailleerde documentatie verstrekt). Momenteel worden datasets voorbereid voor Python, JavaScript, Ruby, Go, Java en PHP. Er worden voorbeelden gegeven van het gebruik van de voorgestelde datasets voor het trainen van verschillende soorten neurale netwerken, waaronder Neurale zak vol woorden, RNN, Zelfaandacht (BERT) en 1D-CNN+Zelfaandacht-hybride.

Om zoekmechanismen in natuurlijke taal te ontwikkelen, is bovendien een reeks CodeSearchNet Challenge voorbereid, waaronder
99 typisch zoekopdrachten met ongeveer 4 annotaties van experts die de meest waarschijnlijke codebindingen in de CodeSearchNet Corpus-dataset beschrijven, die ongeveer 6 miljoen methoden en functies omvat (maat instellen ongeveer 20GB). De CodeSearchNet Challenge kan dienen als maatstaf voor het evalueren van de effectiviteit van bepaalde methoden voor het zoeken naar code in natuurlijke taal. Gereedschap gebruiken Kubeflow bereid
voorbeeld code-zoekmachine.

Bron: opennet.ru

Voeg een reactie