GitHub har öppnat utvecklingen inom användningen av maskininlärning för kodsökning och analys

GitHub lämnats projektet Kodesearchnet, som har förberett maskininlärningsmodeller och datauppsättningar som är nödvändiga för att analysera, klassificera och analysera kod i olika programmeringsspråk. CodeSearchNet, liknande IMAGEnet, innehåller en stor samling kodavsnitt med kommentarer som formaliserar vad koden gör. Komponenter för träningsmodeller och exempel på användning av CodeSearchNet är skrivna i Python med hjälp av Tensorflow-ramverket och levererad av under MIT-licensen.

När man skapade CodeSearchNet användes tekniker för texttolkning av naturligt språk, vilket gjorde det möjligt för maskininlärningssystem att ta hänsyn till inte bara syntaktiska egenskaper, utan också innebörden av de åtgärder som utförs av koden. GitHub-systemet applicerad i experiment om att organisera semantisk kodsökning med hjälp av frågor på naturligt språk (till exempel, när du begär "sortera en lista med strängar", visas kod med implementeringen av motsvarande algoritmer).

Den föreslagna datamängden innehåller mer än 2 miljoner kodkommentarlänkar, förberedda baserat på källtexterna från befintliga öppna bibliotek. Koden täcker hela källtexten för enskilda funktioner eller metoder, och kommentaren beskriver de åtgärder som utförs av funktionen (detaljerad dokumentation tillhandahålls). För närvarande är datauppsättningar förberedda för Python, JavaScript, Ruby, Go, Java och PHP. Exempel ges på att använda de föreslagna datamängderna för att träna olika typer av neurala nätverk, inklusive Neural-påse-med-ord, RNN, Självuppmärksamhet (BERT) och 1D-CNN+Självuppmärksamhet Hybrid.

För att utveckla sökmekanismer för naturligt språk har en uppsättning CodeSearchNet Challenge utarbetats, inklusive
99 typiskt frågor med cirka 4 tusen expertkommentarer som beskriver de mest sannolika kodbindningarna i CodeSearchNet Corpus-datauppsättningen, som täcker cirka 6 miljoner metoder och funktioner (ange storlek cirka 20 GB). CodeSearchNet Challenge kan fungera som ett riktmärke för att utvärdera effektiviteten av vissa metoder för att söka naturligt språkkod. Använda verktyg KubeFlow beredd
exempel kod sökmotor.

Källa: opennet.ru

Lägg en kommentar