GitHub lanserte Copilot maskinlæringssystem som genererer kode

GitHub annonserte fullføringen av testing av den intelligente assistenten GitHub Copilot, som er i stand til å generere standardkonstruksjoner når du skriver kode. Systemet ble utviklet sammen med OpenAI-prosjektet og bruker OpenAI Codex-maskinlæringsplattformen, trent på et stort utvalg kildekoder som er vert i offentlige GitHub-repositorier. Tjenesten er gratis for vedlikeholdere av populære åpen kildekode-prosjekter og studenter. For andre kategorier av brukere betales tilgang til GitHub Copilot ($10 per måned eller $100 per år), men gratis prøvetilgang er gitt i 60 dager.

Kodegenerering støttes i programmeringsspråkene Python, JavaScript, TypeScript, Ruby, Go, C# og C++ ved hjelp av ulike rammeverk. Moduler er tilgjengelige for å integrere GitHub Copilot med Neovim, JetBrains IDE-er, Visual Studio og Visual Studio Code-utviklingsmiljøer. Å dømme etter telemetrien som ble samlet inn under testing, lar tjenesten deg generere kode av ganske høy kvalitet – for eksempel ble 26 % av anbefalingene foreslått i GitHub Copilot akseptert av utviklerne som de er.

GitHub Copilot skiller seg fra tradisjonelle kodefullføringssystemer i sin evne til å generere ganske komplekse kodeblokker, opp til ferdige funksjoner syntetisert med hensyn til den nåværende konteksten. GitHub Copilot tilpasser seg måten utvikleren skriver kode på og tar hensyn til APIer og rammeverk som brukes i programmet. For eksempel, hvis det er et eksempel på en JSON-struktur i en kommentar, når du begynner å skrive en funksjon for å analysere denne strukturen, vil GitHub Copilot tilby ferdig kode, og når du skriver rutineoppføringer av gjentatte beskrivelser, vil den generere gjenværende stillinger.

GitHub lanserte Copilot maskinlæringssystem som genererer kode

GitHub Copilots evne til å generere ferdige kodeblokker har ført til kontroverser knyttet til potensielle brudd på copyleft-lisenser. Ved utforming av maskinlæringsmodellen ble ekte kildetekster fra åpen kildekode-prosjektlagre lokalisert på GitHub brukt. Mange av disse prosjektene leveres under copyleft-lisenser, for eksempel GPL, som krever at koden til de avledede verkene distribueres under en kompatibel lisens. Ved å sette inn eksisterende kode som foreslått av Copilot, kan utviklere uforvarende bryte lisensen til prosjektet som koden ble lånt fra.

Det er ennå ikke klart om arbeid generert av et maskinlæringssystem kan betraktes som avledet. Det oppstår også spørsmål om en maskinlæringsmodell er underlagt opphavsrett og i så fall hvem som eier disse rettighetene og hvordan de forholder seg til rettighetene til koden som modellen er bygget på.

På den ene siden kan de genererte blokkene gjenta tekstpassasjer fra eksisterende prosjekter, men på den andre siden gjenskaper systemet strukturen til koden i stedet for å kopiere selve koden. I følge en GitHub-studie kan bare 1 % av tiden en Copilot-anbefaling inkludere kodebiter fra eksisterende prosjekter som er lengre enn 150 tegn. I de fleste situasjoner oppstår repetisjoner når Copilot ikke kan bestemme konteksten riktig eller tilbyr standardløsninger på et problem.

For å forhindre erstatning av eksisterende kode er det lagt til et spesielt filter i Copilot som ikke tillater kryss med eksisterende prosjekter. Ved oppsett kan utvikleren aktivere eller deaktivere dette filteret etter eget skjønn. Blant andre problemer er det en mulighet for at den syntetiserte koden kan gjenta feil og sårbarheter i koden som brukes til å trene modellen.

Kilde: opennet.ru

Legg til en kommentar