GitHub je predstavil sistem strojnega učenja Copilot, ki generira kodo

GitHub je objavil zaključek testiranja inteligentnega pomočnika GitHub Copilot, ki je sposoben generirati standardne konstrukcije pri pisanju kode. Sistem je bil razvit skupaj s projektom OpenAI in uporablja platformo za strojno učenje OpenAI Codex, usposobljeno na velikem naboru izvornih kod, ki gostujejo v javnih repozitorijih GitHub. Storitev je brezplačna za vzdrževalce priljubljenih odprtokodnih projektov in študente. Za druge kategorije uporabnikov je dostop do GitHub Copilot plačljiv (10 $ na mesec ali 100 $ na leto), vendar je na voljo brezplačen preizkusni dostop za 60 dni.

Generiranje kode je podprto v programskih jezikih Python, JavaScript, TypeScript, Ruby, Go, C# in C++ z uporabo različnih ogrodij. Na voljo so moduli za integracijo GitHub Copilot z razvojnimi okolji Neovim, JetBrains IDE, Visual Studio in Visual Studio Code. Sodeč po telemetriji, zbrani med testiranjem, vam storitev omogoča ustvarjanje kode dokaj visoke kakovosti - na primer, 26% priporočil, predlaganih v GitHub Copilot, so razvijalci sprejeli, kot je.

GitHub Copilot se od tradicionalnih sistemov za dokončanje kode razlikuje po svoji zmožnosti generiranja dokaj kompleksnih blokov kode, do že pripravljenih funkcij, sintetiziranih ob upoštevanju trenutnega konteksta. GitHub Copilot se prilagaja načinu pisanja kode razvijalca in upošteva API-je in okvire, uporabljene v programu. Na primer, če je v komentarju primer strukture JSON, bo GitHub Copilot, ko začnete pisati funkcijo za razčlenjevanje te strukture, ponudil že pripravljeno kodo, pri pisanju rutinskih seznamov ponavljajočih se opisov pa bo ustvaril preostale položajih.

GitHub je predstavil sistem strojnega učenja Copilot, ki generira kodo

Sposobnost GitHub Copilot, da ustvari že pripravljene bloke kode, je povzročila polemiko v zvezi z morebitnimi kršitvami licenc za avtorsko pravo. Pri oblikovanju modela strojnega učenja so bila uporabljena prava izvorna besedila iz odprtokodnih projektnih repozitorijev, ki se nahajajo na GitHubu. Mnogi od teh projektov so na voljo pod licencami copyleft, kot je GPL, ki zahtevajo, da se koda izpeljanih del distribuira pod združljivo licenco. Z vstavljanjem obstoječe kode, kot predlaga Copilot, lahko razvijalci nehote kršijo licenco projekta, iz katerega je bila koda izposojena.

Ni še jasno, ali je delo, ki ga ustvari sistem strojnega učenja, mogoče šteti za izpeljano. Pojavljajo se tudi vprašanja, ali je model strojnega učenja predmet avtorskih pravic in, če je, kdo je lastnik teh pravic in kako so povezane s pravicami do kode, na kateri model temelji.

Po eni strani lahko ustvarjeni bloki ponovijo odlomke besedila iz obstoječih projektov, po drugi strani pa sistem poustvari strukturo kode, namesto da bi kopiral samo kodo. Glede na študijo GitHub lahko priporočilo Copilot le v 1 % primerov vključuje delčke kode iz obstoječih projektov, ki so daljši od 150 znakov. V večini primerov pride do ponovitev, ko Copilot ne more pravilno določiti konteksta ali ponudi standardne rešitve težave.

Da bi preprečili zamenjavo obstoječe kode, je bil v Copilot dodan poseben filter, ki ne dovoljuje presečišč z obstoječimi projekti. Pri nastavitvi lahko razvijalec po lastni presoji aktivira ali onemogoči ta filter. Med drugimi težavami obstaja možnost, da sintetizirana koda ponovi napake in ranljivosti, ki so prisotne v kodi, uporabljeni za usposabljanje modela.

Vir: opennet.ru

Dodaj komentar