GitHub lancerede Copilot maskinlæringssystem, der genererer kode

GitHub annoncerede færdiggørelsen af ​​test af den intelligente assistent GitHub Copilot, der er i stand til at generere standardkonstruktioner ved skrivning af kode. Systemet er udviklet sammen med OpenAI-projektet og bruger OpenAI Codex maskinlæringsplatformen, trænet på en lang række kildekoder hostet i offentlige GitHub-lagre. Tjenesten er gratis for vedligeholdere af populære open source-projekter og studerende. For andre kategorier af brugere betales adgang til GitHub Copilot ($10 pr. måned eller $100 pr. år), men gratis prøveadgang gives i 60 dage.

Kodegenerering understøttes i programmeringssprogene Python, JavaScript, TypeScript, Ruby, Go, C# og C++ ved hjælp af forskellige rammer. Moduler er tilgængelige til at integrere GitHub Copilot med Neovim, JetBrains IDE'er, Visual Studio og Visual Studio Code udviklingsmiljøer. At dømme efter telemetrien indsamlet under test, giver tjenesten dig mulighed for at generere kode af ret høj kvalitet - for eksempel blev 26% af anbefalingerne foreslået i GitHub Copilot accepteret af udviklerne, som de er.

GitHub Copilot adskiller sig fra traditionelle kodefuldførelsessystemer i sin evne til at generere ret komplekse kodeblokke, op til færdige funktioner syntetiseret under hensyntagen til den aktuelle kontekst. GitHub Copilot tilpasser sig den måde, udvikleren skriver kode på, og tager højde for de API'er og rammer, der bruges i programmet. For eksempel, hvis der er et eksempel på en JSON-struktur i en kommentar, når du begynder at skrive en funktion til at parse denne struktur, vil GitHub Copilot tilbyde færdiglavet kode, og når du skriver rutinelister over gentagne beskrivelser, vil den generere de resterende stillinger.

GitHub lancerede Copilot maskinlæringssystem, der genererer kode

GitHub Copilots evne til at generere færdiglavede kodeblokke har ført til kontroverser relateret til potentielle krænkelser af copyleft-licenser. Ved dannelsen af ​​machine learning-modellen blev der brugt rigtige kildetekster fra open source-projektlagre placeret på GitHub. Mange af disse projekter leveres under copyleft-licenser, såsom GPL, som kræver, at koden for de afledte værker distribueres under en kompatibel licens. Ved at indsætte eksisterende kode som foreslået af Copilot, kan udviklere uforvarende krænke licensen til det projekt, hvorfra koden blev lånt.

Det er endnu ikke klart, om arbejde genereret af et maskinlæringssystem kan betragtes som afledt. Der opstår også spørgsmål om, hvorvidt en maskinlæringsmodel er underlagt ophavsret og i givet fald hvem der ejer disse rettigheder, og hvordan de forholder sig til rettighederne til den kode, som modellen er baseret på.

På den ene side kan de genererede blokke gentage tekstpassager fra eksisterende projekter, men på den anden side genskaber systemet kodens struktur frem for at kopiere selve koden. Ifølge en GitHub-undersøgelse kan kun 1 % af tiden en Copilot-anbefaling inkludere kodestykker fra eksisterende projekter, der er længere end 150 tegn. I de fleste situationer opstår gentagelser, når Copilot ikke kan bestemme konteksten korrekt eller tilbyder standardløsninger på et problem.

For at forhindre substitution af eksisterende kode er der tilføjet et særligt filter til Copilot, der ikke tillader krydsninger med eksisterende projekter. Ved opsætning kan udvikleren aktivere eller deaktivere dette filter efter eget skøn. Blandt andre problemer er der mulighed for, at den syntetiserede kode kan gentage fejl og sårbarheder, der er til stede i den kode, der bruges til at træne modellen.

Kilde: opennet.ru

Tilføj en kommentar