GitHub projekt , hvor der er udarbejdet modeller for maskinlæring og datasæt, der er nødvendige til at analysere, klassificere og gennemgå kode i forskellige programmeringssprog. CodeSearchNet, analogt med , inkluderer en stor samling af kodeudsnit, der er forsynet med annotationer, som formaliserer de handlinger, der udføres af koden. Komponenterne til træning af modeller og eksempler på anvendelse af CodeSearchNet er skrevet i Python ved hjælp af Tensorflow-rammerne og under MIT-licensen.
Ved oprettelsen af CodeSearchNet blev der anvendt teknologier til behandling af naturligt sprog, der gør det muligt for maskinlæringssystemer at tage hensyn til ikke blot syntaktiske karakteristika, men også meningen bag de handlinger, der udføres af koden. I GitHub-systemet i eksperimenter med at organisere semantisk kode-søgning ved hjælp af forespørgsler på (for eksempel, når man beder om "sortering af en liste med strenge", vises koden, der implementerer de relevante algoritmer).
Det foreslåede datasæt omfatter over 2 millioner forbindelser "kode-kommentar", der er forberedt på grundlag af kildekode fra eksisterende åbne biblioteker. Koden dækker den fulde kildekode til individuelle funktioner eller metoder, mens kommentaren beskriver de handlinger, funktionen udfører (der gives detaljeret dokumentation). I øjeblikket er datasæt forberedt til sprog som Python, JavaScript, Ruby, Go, Java og PHP. Der gives eksempler på anvendelse af de foreslåede datasæt til træning af forskellige former for neurale netværk, herunder , , (BERT) og .
For at udvikle mekanismer til søgning på naturligt sprog er der yderligere forberedt et datasæt kaldet CodeSearchNet Challenge, som omfatter
forespørgsler med omkring 4.000 ekspertannotationer, der beskriver de mest sandsynlige forbindelser til koden i datasættet CodeSearchNet Corpus, der dækker omkring 6 millioner metoder og funktioner ( er omkring 20 GB). CodeSearchNet Challenge kan tjene som reference til vurdering af effektiviteten af forskellige metoder til søgning af kode på naturligt sprog. Ved hjælp af værktøjet er forberedt
som motor til kode-søgning.
Kilde: opennet.ru
