GitHub julkaisee Copilot-koneoppimisjärjestelmän, joka luo koodia

GitHub ilmoitti saaneensa päätökseen älykkään avustajan GitHub Copilotin testauksen, joka pystyy luomaan standardirakenteita koodia kirjoitettaessa. Järjestelmä on kehitetty yhdessä OpenAI-projektin kanssa, ja se käyttää OpenAI Codex -koneoppimisalustaa, joka on koulutettu laajaan joukkoon julkisissa GitHub-arkistoissa isännöityä lähdekoodia. Palvelu on ilmainen suosittujen avoimen lähdekoodin projektien ylläpitäjille ja opiskelijoille. Muille käyttäjäluokille pääsy GitHub Copilotiin on maksullista (10 dollaria kuukaudessa tai 100 dollaria vuodessa), mutta ilmainen kokeilukäyttö on 60 päivän ajan.

Koodin generointia tuetaan ohjelmointikielillä Python, JavaScript, TypeScript, Ruby, Go, C# ja C++ erilaisilla kehyksillä. Saatavilla on moduulit GitHub Copilotin integroimiseksi Neovimin, JetBrains IDE:iden, Visual Studion ja Visual Studio Coden kehitysympäristöihin. Testauksen aikana kerätyn telemetrian perusteella palvelu mahdollistaa melko korkealaatuisen koodin luomisen - esimerkiksi 26% GitHub Copilotissa ehdotetuista suosituksista hyväksyttiin kehittäjien toimesta sellaisenaan.

GitHub Copilot eroaa perinteisistä koodintäydennysjärjestelmistä kyvyllään generoida melko monimutkaisia ​​koodilohkoja aina valmiisiin funktioihin, jotka on syntetisoitu nykyisen kontekstin mukaan. GitHub Copilot mukautuu tapaan, jolla kehittäjä kirjoittaa koodia ja ottaa huomioon ohjelmassa käytetyt API:t ja puitteet. Jos esimerkiksi kommentissa on esimerkki JSON-rakenteesta, kun alat kirjoittaa funktiota tämän rakenteen jäsentämiseksi, GitHub Copilot tarjoaa valmiin koodin, ja kun kirjoitat rutiiniluetteloita toistuvista kuvauksista, se luo loput. asemat.

GitHub julkaisee Copilot-koneoppimisjärjestelmän, joka luo koodia

GitHub Copilotin kyky luoda valmiita koodilohkoja on johtanut kiistaan ​​mahdollisista copyleft-lisenssien rikkomuksista. Koneoppimismallia muodostettaessa käytettiin oikeita lähdetekstejä GitHubissa sijaitsevista avoimen lähdekoodin projektivarastoista. Monet näistä projekteista tarjotaan copyleft-lisensseillä, kuten GPL, jotka edellyttävät johdannaisteosten koodin levittämistä yhteensopivalla lisenssillä. Lisäämällä olemassa olevan koodin Copilotin ehdotuksen mukaisesti kehittäjät voivat tahattomasti rikkoa sen projektin lisenssiä, josta koodi lainattiin.

Vielä ei ole selvää, voidaanko koneoppimisjärjestelmän tuottamaa työtä pitää johdannaisena. Kysymyksiä herää myös siitä, onko koneoppimismalli tekijänoikeuden alainen ja jos on, kuka nämä oikeudet omistaa ja miten ne liittyvät mallin perustana olevan koodin oikeuksiin.

Toisaalta luodut lohkot voivat toistaa olemassa olevien projektien tekstinpätkiä, mutta toisaalta järjestelmä luo koodin rakenteen uudelleen eikä kopioi itse koodia. GitHub-tutkimuksen mukaan vain 1 % ajasta Copilotin suositus saattaa sisältää yli 150 merkin pituisia koodinpätkiä olemassa olevista projekteista. Useimmissa tilanteissa toistoja esiintyy, kun Copilot ei pysty määrittämään kontekstia oikein tai tarjoaa standardiratkaisuja ongelmaan.

Olemassa olevan koodin korvaamisen estämiseksi Copilotiin on lisätty erityinen suodatin, joka ei salli risteyksiä olemassa olevien projektien kanssa. Kun määrität, kehittäjä voi ottaa tämän suodattimen käyttöön tai poistaa sen käytöstä oman harkintansa mukaan. Muiden ongelmien ohella on mahdollista, että syntetisoitu koodi saattaa toistaa mallin harjoittamiseen käytetyn koodin virheet ja haavoittuvuudet.

Lähde: opennet.ru

Lisää kommentti