GitHub har åbnet udviklingen i brugen af ​​maskinlæring til kodesøgning og analyse

GitHub indsendt projekt CodeSearchNet, som har udarbejdet maskinlæringsmodeller og datasæt, der er nødvendige for at parse, klassificere og analysere kode på forskellige programmeringssprog. CodeSearchNet, svarende til IMAGEnet, inkluderer en stor samling af kodestykker med annoteringer, der formaliserer, hvad koden gør. Komponenter til træningsmodeller og eksempler på brug af CodeSearchNet er skrevet i Python ved hjælp af Tensorflow-rammeværket og distribueret af under MIT-licensen.

Ved oprettelse af CodeSearchNet blev tekstparsing-teknologier i naturligt sprog brugt, hvilket gjorde det muligt for maskinlæringssystemer at tage hensyn til ikke kun syntaktiske funktioner, men også betydningen af ​​de handlinger, der udføres af koden. GitHub-systemet anvendt i eksperimenter med at organisere semantisk kodesøgning ved hjælp af forespørgsler på naturligt sprog (for eksempel, når du anmoder om "sortering af en liste over strenge", vises kode med implementeringen af ​​de tilsvarende algoritmer).

Det foreslåede datasæt indeholder mere end 2 millioner kodekommentarlinks, udarbejdet baseret på kildeteksterne fra eksisterende åbne biblioteker. Koden dækker den komplette kildetekst for individuelle funktioner eller metoder, og kommentaren beskriver de handlinger, funktionen udfører (detaljeret dokumentation leveres). I øjeblikket udarbejdes datasæt til Python, JavaScript, Ruby, Go, Java og PHP. Der gives eksempler på brug af de foreslåede datasæt til træning af forskellige typer neurale netværk, herunder Neural-Taske-Of-Ord, RNN, Selvopmærksomhed (BERT) og 1D-CNN+Selvopmærksomhed Hybrid.

For at udvikle naturlige sprogsøgningsmekanismer er der desuden udarbejdet et sæt CodeSearchNet Challenge, herunder
99 typisk forespørgsler med omkring 4 tusinde ekspertkommentarer, der beskriver de mest sandsynlige kodebindinger i CodeSearchNet Corpus-datasættet, der dækker omkring 6 millioner metoder og funktioner (sæt størrelse omkring 20 GB). CodeSearchNet Challenge kan tjene som et benchmark for evaluering af effektiviteten af ​​visse metoder til at søge efter naturlig sprogkode. Brug af værktøjer KubeFlow forberedt
eksempel kode søgemaskine.

Kilde: opennet.ru

Tilføj en kommentar