GitHub Copilot è un'assistente virtuale basato sull'Intelligenza Artificiale che suggerisce porzioni di codice per l'autocompletamento, ciò è possibile grazie ad un modello di Machine Learning che viene costantemente "allenato" e migliorato grazie alla grande disponibilità di progetti ospitati nei repository di GitHub.
Il problema in un file C++
Fin qui tutto bene se non fosse che gli automatismi di GitHub Copilot potrebbero generare degli output imprevisti. A segnalarlo di recente è stato lo sviluppatore statunitense Tim Davis, che è anche un professore universitario in forza presso l'Università A&M del Texas, convinto che l'assistente abbia inserito parte dei suoi sorgenti protetti da licenza tra le risorse utilizzate per i suggerimenti.
@github copilot, with "public code" blocked, emits large chunks of my copyrighted code, with no attribution, no LGPL license. For example, the simple prompt "sparse 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) October 16, 2022
Le lamentele di Davis riguarderebbero nello specifico il contenuto di un file C++. Dopo aver digitato il commento:
//sparse matrix transpose
egli avrebbe visualizzato un output in cui non soltanto il codice, ma anche i commenti risulterebbero essere molto simili al suo lavoro originale. Da parte loro i responsabili di GitHub, nella persona dello stesso creatore di Copilot Alex Graveley, avrebbero risposto che nonostante la presenza di similitudini non si potrebbe parlare del medesimo sorgente.
The code in question is different from the example given. Similar, but different. If you can find a way to automatically identify one as being derivative of the other, patent it.
— Alex Graveley (@alexgraveley) October 16, 2022
GitHub Copilot e licenze Open Source
Il codice di Davis è stato distribuito sotto licenza Open Source (LGPL 2.1), aspetto che lo rende liberamente utilizzabile con la corretta attribuzione dei diritti d'autore. Il rischio è quindi che altri possano rivendicarne la paternità dopo averlo incorporato in parte nel proprio progetto.
Si potrebbe poi arrivare ad esiti paradossali dove del codice libero e aperto viene utilizzato in progetti Closed Source sotto licenza commerciale.
GitHub mette a disposizione un'opzione con cui impedire almeno teoricamente l'uso dei sorgenti da parte della piattaforma di Microsoft, Davis avrebbe però utilizzato questo strumento senza ottenere l'effetto desiderato.