GitHub pokreće Copilot sistem mašinskog učenja koji generiše kod

GitHub je najavio završetak testiranja inteligentnog pomoćnika GitHub Copilot, sposobnog da generiše standardne konstrukcije prilikom pisanja koda. Sistem je razvijen zajedno sa OpenAI projektom i koristi OpenAI Codex platformu za mašinsko učenje, obučenu na velikom nizu izvornih kodova koji se nalaze u javnim GitHub repozitorijumima. Usluga je besplatna za održavaoce popularnih open source projekata i studente. Za ostale kategorije korisnika, pristup GitHub Copilot-u se plaća (10 USD mjesečno ili 100 USD godišnje), ali je omogućen besplatan probni pristup 60 dana.

Generisanje koda je podržano u programskim jezicima Python, JavaScript, TypeScript, Ruby, Go, C# i C++ koristeći različite okvire. Dostupni su moduli za integraciju GitHub Copilot sa Neovim, JetBrains IDE, Visual Studio i Visual Studio Code razvojnim okruženjima. Sudeći po telemetriji prikupljenoj tokom testiranja, usluga vam omogućava da generišete kod prilično visokog kvaliteta - na primjer, 26% preporuka predloženih u GitHub Copilot programeri su prihvatili kao što jesu.

GitHub Copilot se razlikuje od tradicionalnih sistema za dovršavanje koda po svojoj sposobnosti da generiše prilično složene blokove koda, sve do gotovih funkcija sintetizovanih uzimajući u obzir trenutni kontekst. GitHub Copilot se prilagođava načinu na koji programer piše kod i uzima u obzir API-je i okvire koji se koriste u programu. Na primjer, ako postoji primjer JSON strukture u komentaru, kada počnete pisati funkciju za raščlanjivanje ove strukture, GitHub Copilot će ponuditi gotov kod, a kada pišete rutinske liste opisa koji se ponavljaju, generirat će preostale pozicije.

GitHub pokreće Copilot sistem mašinskog učenja koji generiše kod

Sposobnost GitHub Copilot-a da generiše gotove blokove koda dovela je do kontroverzi vezanih za potencijalno kršenje copyleft licenci. Prilikom formiranja modela mašinskog učenja korišteni su stvarni izvorni tekstovi iz repozitorija projekata otvorenog koda koji se nalaze na GitHubu. Mnogi od ovih projekata su obezbeđeni pod copyleft licencama, kao što je GPL, koji zahtevaju da se kod izvedenih dela distribuira pod kompatibilnom licencom. Umetanjem postojećeg koda kako je predložio Copilot, programeri mogu nesvjesno prekršiti licencu projekta iz kojeg je kod posuđen.

Još nije jasno da li se rad koji generiše sistem mašinskog učenja može smatrati izvedenim. Postavljaju se i pitanja da li model mašinskog učenja podleže autorskim pravima i, ako jeste, ko poseduje ta prava i kako se ona odnose na prava na kod na kojem se model zasniva.

S jedne strane, generirani blokovi mogu ponavljati odlomke teksta iz postojećih projekata, ali s druge strane, sistem rekreira strukturu koda umjesto da kopira sam kod. Prema GitHub studiji, samo 1% vremena preporuka Copilot-a može uključivati ​​isječke koda iz postojećih projekata koji su duži od 150 znakova. U većini situacija, ponavljanja se dešavaju kada Copilot ne može ispravno odrediti kontekst ili nudi standardna rješenja za problem.

Kako bi se spriječila zamjena postojećeg koda, Copilot-u je dodat poseban filter koji ne dozvoljava ukrštanje sa postojećim projektima. Prilikom postavljanja, programer može aktivirati ili onemogućiti ovaj filter po svom nahođenju. Između ostalih problema, postoji mogućnost da sintetizirani kod može ponoviti greške i ranjivosti prisutne u kodu koji se koristi za obuku modela.

izvor: opennet.ru

Dodajte komentar