Ei kauan sitten se tuli tunnetuksi ja ennen kaikkea jaamme täällä blogissa GitHub Copilotin yleinen julkaisu, joka on tekoälypohjainen ajoitusavustaja, joka tarjoaa automaattisen täydennyksen kaltaisia ehdotuksia koodattaessa.
mikä tekee mielenkiintoiseksi perämiehenä, on, että se voi antaa ehdotuksia käyttäjälle, kun hän alkaa kirjoittaa koodia haluat käyttää tai kirjoittamalla luonnollisen kielen kommentin, joka kuvaa mitä haluat koodin tekevän. GitHub Copilot analysoi muokkaamasi tiedoston kontekstin sekä siihen liittyvät tiedostot ja tarjoaa ehdotuksia tekstieditoristasi.
GitHub Copilot se on optimoitu Pythonille, JavaScriptille, TypeScriptille, Rubylle, Golle, C#:lle tai C++:lle. GitHub Copilotia voidaan käyttää myös vihjeiden luomiseen muilla kielillä ja erilaisissa kehyksissä. GitHub Copilotin virtalähteenä on OpenAI Codex, OpenAI:n luoma uusi tekoälyjärjestelmä.
Siitä näkökulmasta, kuinka he "myyvät" meille Copilotia, se on melko "ihanaa" vaikka kietoutumisen takana oleva malli perustuu miljoonien koodirivien analyysiin GitHub-arkistoista, joka alusta asti hälytti monia ja johti ennen kaikkea kaikkien kriitikoidensa yleiseen kantaan eli siihen, että jossain vaiheessa se aiheuttaisi ongelmia "tekijänoikeudella suojatulle koodille".
Ja no, näyttää siltä, että tämä Ei kestänyt kauan, kun "ennustus" toteutui. hyvin äskettäin kehittäjä Tim Davis, Tietojenkäsittelytieteen ja tekniikan professori Texas A&M -yliopistossa, sanoi Twitterissä, että GitHub Copilot:
"antaa suuria katkelmia koodistani tekijänoikeudella suojattua, ei nimeä, ei LGPC-lisenssiä."
Tähän kommenttiin Alex Graveley, GitHubin pääinsinööri ja Copilotin keksijä, vastasi, että
"kyseinen koodi eroaa annetusta esimerkistä. Samanlaisia, mutta erilaisia." Hän lisäsi kuitenkin: "Se on todella vaikea ongelma. Skaalautuvat ratkaisut ovat tervetulleita. »
Davisin lähettämä koodi ja Copilotin luoma koodi näyttävät itse asiassa hyvin samanlaisilta. Kehittäjä Tim Davis julkaisi tämän kuvan Twitterissä, jossa hänen kommenttinsa näkyy Visual Studio Codessa, hänen alkuperäinen koodinsa toisesta projektista alla ja Copilotin ehdotus oikealla.
@github copilot, jonka "julkinen koodi" on estetty, lähettää suuria paloja tekijänoikeudella suojatusta koodistani ilman merkintää tai LGPL-lisenssiä. Esimerkiksi yksinkertainen kehote "sparse matrix transpose, cs_" tuottaa minun cs_transpose in CSparse. Minun koodini vasemmalla, github oikealla. Ei OK. pic.twitter.com/sqpOThi8nf
- Tim Davis (@DocSparse) Lokakuu 16, 2022
On tärkeää kiinnittää huomiota kyseinen alkuperäinen koodi on avoimen lähdekoodin ja löytyy GitHubista LGPL 2.1 -lisenssillä. Avoin lähdekoodi ei kuitenkaan tarkoita tekijänoikeusvapaata, ja on olemassa monia erilaisia avoimen lähdekoodin lisenssejä, joista jokainen myöntää eri käyttöoikeudet.
Toinen huolenaihe on, että kehittäjät voivat vahingossa yhdistää koodia yhteensopimattomiin lisensseihin samassa projektissa. Copilot ennakoi tämän ongelman jossain määrin. Tässä on kuvattu julkinen koodisuodatin, joka väittää
"Tunnista koodivinkit, jotka vastaavat GitHubin julkista koodia… kun suodatin on käytössä, GitHub Copilot tarkistaa koodivihjeet ympäröivällä noin 150 merkin pituisella koodilla GitHubin julkista koodia vastaan. Jos osuma on tai lähellä, ehdotusta ei näytetä sinulle."
Kuitenkin, Davis selventää asiaa "Kun kirjauduin, otin pois päältä Salli Githubin käyttää koodiani…" -vaihtoehdon. Osa ongelmaa on se, että avoimen lähdekoodin suunnitelman mukaan avoin lähdekoodi todennäköisesti ilmestyy useisiin eri henkilöiden projekteihin, joten se päätyy useita kertoja GitHubiin ja useiden Copilot-käyttäjien keskuuteen. Copilotilla tai ilman sitä, kehittäjät voivat väärinkäyttää tekijänoikeuksilla suojattua koodia.
Aiheesta sisään Copilot mainitsee sen «ohjelmoijan vastuulla on varmistaa koodinsa turvallisuus ja laatu. On suositeltavaa, että noudatat samoja varotoimia käyttäessäsi Copilotin luomaa koodia kuin käytät jonkun muun kirjoittamaa koodia.Näihin varotoimiin kuuluu tiukka testaus, IP-skannaus ja tietoturva-aukkojen seuranta.
GitHub tarjoaa useita ominaisuuksia, jotka auttavat valvomaan ja parantamaan koodin laatua, kuten GitHub Actions, Dependabot, CodeQL ja koodianalyysi. Kaikki nämä ominaisuudet ovat ilmaisia ja niitä voidaan käyttää julkisissa arkistoissa.
GitHub Copilot käyttää suodattimia estääkseen loukkaavat sanat kehotteissa.
"Olemme sitoutuneet parantamaan jatkuvasti suodatusjärjestelmää tunnistaaksemme ja poistaaksemme entistä älykkäämmin GitHub Copilotin luomat loukkaavat ehdotukset, mukaan lukien puolueellinen, syrjivä tai loukkaava tulos", GitHub kirjoittaa.
Lopuksi monilla on kysymys, missä määrin Copilot on hyvä käyttää?