No fa gaire es va donar a conèixer i sobretot compartim aquí al bloc el llançament general de GitHub Copilot, el qual és un assistent de programació basat en IA que ofereix suggeriments similars als d'autocompletar mentre codifiques.
El que fa interessant a Copilot, és que aquest pot donar suggeriments a l'usuari un cop comenci a escriure el codi que voleu utilitzar o escrivint un comentari en llenguatge natural que descrigui el que voleu que faci el codi. GitHub Copilot analitza el context del fitxer que esteu editant, així com els fitxers relacionats, i ofereix suggeriments del vostre editor de text.
GitHub Copilot està optimitzat per a Python, JavaScript, TypeScript, Ruby, Go, C# o C++. També és possible utilitzar GitHub Copilot per generar suggeriments en altres llenguatges i una gran varietat de frameworks. GitHub Copilot funciona amb OpenAI Codex, un nou sistema d'IA creat per OpenAI.
Des de la perspectiva del com ens «venen» Copilot, és força «meravellós» encara que el model darrere de l'entranyament està basat en l'anàlisi de milions de línies de codi dels repositoris de GitHub, cosa que des d'un inici alarm a molts i sobretot porto a un punt en general de tots els seus crítics i és que en algun moment generaria problemes per «codi protegit per drets d'autor».
I bé tal sembla que aquesta «predicció» no trigo gaire a tornar-se realitat, doncs fa poc el desenvolupador Tim Davis, professor d'informàtica i enginyeria a la Universitat de Texas A&M, va afirmar a Twitter que GitHub Copilot:
"emet grans fragments del meu codi protegits per drets d'autor, sense atribució, sense llicència LGPC".
Davant aquest comentari Alex Graveley, enginyer principal de GitHub i inventor de Copilot, va respondre que
“el codi en qüestió és diferent de l'exemple donat. Similars, però diferents”. Dit això, va afegir: “Realment és un problema difícil. Les solucions escalables són benvingudes. »
El codi que va publicar Davis i el generat per Copilot en realitat s'assemblen molt. El desenvolupador Tim Davis va publicar aquesta imatge a Twitter, mostrant el seu comentari a Visual Studio Code, el codi original d'un altre projecte a continuació i el suggeriment de Copilot a la dreta.
@github copilot, with «public code» blocked, emets large chunks of my copyrighted code, with no attribution, no LGPL license. Per example, the simple prompt «spar matrix transpose, cs_» produces my cs_transpose in CSparse. My code on left, github on right. Not OK. pic.twitter.com/sqpOThi8nf
— Tim Davis (@DocSparse) Octubre 16, 2022
És important tenir en compte que el codi original en qüestió és de codi obert i es pot trobar a GitHub sota la llicència LGPL 2.1. No obstant això, codi obert no vol dir lliure de drets d'autor, i hi ha moltes llicències de codi obert diferents, cadascuna de les quals atorga permisos diferents.
Una altra preocupació és que els desenvolupadors poden combinar sense adonar-se codi amb llicències incompatibles al mateix projecte. Copilot anticipa aquest problema fins a cert punt. Hi ha un filtre de codi públic descrit aquí que afirma
«detectar suggeriments de codi que coincideixen amb el codi públic a GitHub… quan el filtre està habilitat, GitHub Copilot verifica els suggeriments de codi amb el codi circumdant d'aproximadament 150 caràcters amb el codi públic a GitHub . Si hi ha una coincidència o gairebé coincidència, no se us mostrarà el suggeriment”.
No obstant això, Davis aclareix que “quan em vaig registrar, vaig desactivar l'opció 'Permetre que Github faci servir el meu codi…'. Part del problema és que, per disseny, és probable que el codi font obert aparegui en múltiples projectes de diferents persones, per la qual cosa s'acabarà diverses vegades a GitHub i entre múltiples usuaris de Copilot. Amb Copilot o sense, els desenvolupadors poden fer un mal ús del codi protegit per drets d'autor.
Sobre el tema, a Copilot s'esmenta que «és responsabilitat del programador garantir la seguretat i la qualitat del codi. Es recomana que preneu les mateixes precaucions quan utilitzeu el codi generat per Copilot quan utilitzeu el codi escrit per una altra persona«Aquestes precaucions inclouen proves rigoroses, escaneig d'IP i seguiment de vulnerabilitats de seguretat.
GitHub proporciona una sèrie de funcions per ajudar a monitoritzar i millorar la qualitat del codi, com ara GitHub Actions, Dependabot, CodeQL i anàlisi de codi. Totes aquestes funcions són gratuïtes i es poden fer servir en repositoris públics.
GitHub Copilot utilitza filtres per bloquejar paraules ofensives a les indicacions.
«Estem compromesos a millorar constantment el sistema de filtre per detectar i eliminar de manera més intel·ligent els suggeriments ofensius generats per GitHub Copilot, inclosos les sortides esbiaixades, discriminatòries o abusives», escriu GitHub.
Finalment, la pregunta aquí que molts tenen és, Fins a quin punt és bo lús de Copilot?