För inte länge sedan blev det känt och framförallt delar vi här på bloggen den allmänna utgåvan av GitHub Copilot, som är en AI-baserad schemaläggningsassistent som erbjuder autoslutförande-liknande förslag när du kodar.
vad som gör intressant till biträdande pilot, är att den kan ge förslag till användaren när de börjar skriva koden du vill använda eller genom att skriva en kommentar på naturligt språk som beskriver vad du vill att koden ska göra. GitHub Copilot analyserar sammanhanget för filen du redigerar, såväl som relaterade filer, och ger förslag från din textredigerare.
GitHub Copilot den är optimerad för Python, JavaScript, TypeScript, Ruby, Go, C# eller C++. GitHub Copilot kan också användas för att generera tips på andra språk och en mängd olika ramverk. GitHub Copilot drivs av OpenAI Codex, ett nytt AI-system skapat av OpenAI.
Ur perspektivet av hur de "säljer" Copilot till oss är det ganska "underbart" även om modellen bakom förvecklingen är baserad på analysen av miljontals rader kod av GitHub-repositorierna, vilket från början larmade många och framför allt ledde till en allmän poäng hos alla dess kritiker och det är att det någon gång skulle skapa problem för "kod skyddad av upphovsrätt".
Och väl det verkar som detta Det tog inte lång tid innan "spådomen" gick i uppfyllelse. väl nyligen utvecklaren Tim Davis, professor i datavetenskap och teknik vid Texas A&M University, uttalade på Twitter att GitHub Copilot:
"utfärdar stora utdrag av min kod upphovsrättsskyddad, ingen attribution, ingen LGPC-licens."
Till denna kommentar svarade Alex Graveley, GitHubs huvudingenjör och uppfinnare av Copilot, att
"koden i fråga skiljer sig från det givna exemplet. Lika men olika”. Som sagt, tillade han: "Det är verkligen ett svårt problem. Skalbara lösningar är välkomna. »
Koden Davis postade och koden som genereras av Copilot ser faktiskt väldigt lika ut. Utvecklaren Tim Davis lade upp den här bilden på Twitter och visade hans kommentar i Visual Studio Code, hans ursprungliga kod från ett annat projekt nedan och Copilots förslag till höger.
@github copilot, med "offentlig kod" blockerad, avger stora bitar av min upphovsrättsskyddade kod, utan tillskrivning, ingen LGPL-licens. Till exempel producerar den enkla prompten "sparse matrix transpose, cs_" min cs_transpose i CSparse. Min kod till vänster, github till höger. Inte ok. pic.twitter.com/sqpOThi8nf
—Tim Davis (@DocSparse) Oktober 16, 2022
Det är viktigt att uppmärksamma originalkoden i fråga är öppen källkod och kan hittas på GitHub under LGPL 2.1-licensen. Men öppen källkod betyder inte upphovsrättsfri, och det finns många olika licenser för öppen källkod, som var och en ger olika behörigheter.
En annan oro är att utvecklare oavsiktligt kan kombinera kod med inkompatibla licenser i samma projekt. Copilot förutser detta problem till viss del. Det finns ett offentligt kodfilter som beskrivs här som gör anspråk
"upptäck kodtips som matchar offentlig kod på GitHub... när filtret är aktiverat kontrollerar GitHub Copilot kodtips med den omgivande koden på cirka 150 tecken mot den offentliga koden på GitHub . Om det finns en matchning eller nära match kommer förslaget inte att visas för dig."
Sin embargo, Davis klargör det "När jag registrerade mig stängde jag av alternativet 'Tillåt Github att använda min kod...'. En del av problemet är att öppen källkod sannolikt kommer att dyka upp i flera projekt från olika personer, så att den kommer att hamna flera gånger på GitHub och bland flera Copilot-användare. Med eller utan Copilot kan utvecklare missbruka upphovsrättsskyddad kod.
Om ämnet, i Copilot nämner det «det är programmerarens ansvar att säkerställa säkerheten och kvaliteten på sin kod. Det rekommenderas att du vidtar samma försiktighetsåtgärder när du använder kod som genereras av Copilot som du använder kod skriven av någon annan.". Dessa försiktighetsåtgärder inkluderar rigorösa tester, IP-skanning och spårning av säkerhetssårbarheter.
GitHub tillhandahåller ett antal funktioner för att hjälpa till att övervaka och förbättra kodkvaliteten, såsom GitHub Actions, Dependabot, CodeQL och kodanalys. Alla dessa funktioner är gratis och kan användas i offentliga arkiv.
GitHub Copilot använder filter för att blockera stötande ord i uppmaningar.
"Vi är fast beslutna att ständigt förbättra filtreringssystemet för att mer intelligent upptäcka och ta bort stötande förslag som genereras av GitHub Copilot, inklusive partisk, diskriminerande eller kränkande utdata", skriver GitHub.
Slutligen, frågan här som många har är, i vilken utsträckning är Copilot bra att använda?