GitHub Copilot è un nuovo strumento di intelligenza artificiale che consente agli sviluppatori di sfruttare un vero e proprio generatore di codice, in grado di interpretare un semplice commento scritto in linguaggio naturale, e convertirlo in codice funzionante. Ne avevamo già parlato appena una settimana fa, presentandone i possibili utilizzi, grazie alla disponibilità di una comoda estensione per Visual Studio Code.
Come spesso accade quando l'intelligenza artificiale irrompe in un settore specifico, le critiche sono spesso dietro l'angolo. C'è chi si limita ad apprezzare (forse troppo in modo troppo superficiale) la possibilità di un ulteriore aiuto tecnologico. C'è chi, invece, intravede il rischio di perdere il proprio lavoro perché reso automatizzabile grazie di chi fornisce (magari gratuitamente e/o a sua insaputa) una grande quantità di dati. Anche per il caso di GitHub Copilot ci sono stati risvolti di questo tipo, ed è interessante approfondire la questione relativa al modo in cui questo strumento è stato addestrato, dal momento che si basa sul machine learning e quindi su una gran mole di dati (in questo caso, di codice).
Com'è stato addestrato GitHub Copilot?
Ogni algoritmo di machine learning, in quanto tale, consiste nella definizione di un modello (generalmente piuttosto complesso) che ha poi bisogno di una fase detta di addestramento (o training). Quest'ultima fase consiste nel processamento di una grande quantità di dati è utilizzata per la messa a punto di parametri del modello stesso, in modo da ottimizzarne le performance. Come tutti gli algoritmi di questo tipo, quindi, anche GitHub Copilot ha dovuto essere addestrato con una grande mole di dati. Non è un caso, d'altronde, se proprio GitHub abbia pensato ad una soluzione di questo tipo, avendo a disposizione una quantità di codice sorgente non indifferente (forse la più grande base di dati di questo tipo).
Qualche giorno fa, subito dopo il rilascio di Copilot, un utente di Twitter ha deciso di rendere pubblica una conversazione avvenuta con il centro assistenza di GitHub. Nora Tindall, esperta programmatrice Rust e autrice di diversi software il cui codice è rilasciato con licenze open source proprio su GitHub, ha chiesto di sapere se il proprio codice fosse stato utilizzato per il training di Copilot. Secondo quanto riportato nel suo tweet, la risposta di GitHub è stata che tutto il codice pubblicamente disponibile tramite GitHub è stato utilizzato per il training.
oh my gods. they literally have no shame about this.
GitHub Support just straight up confirmed in an email that yes, they used all public GitHub code, for Codex/Copilot regardless of license. pic.twitter.com/pFTqbvnTEK
— ✨ Nora Tindall, automated relay 🪐 (@NoraDotCodes) July 7, 2021
È "giusto"?
Questa notizia ha scatenato non poche polemiche. Soffermiamoci alle licenze con cui viene distribuito il codice pubblico dei repository di GitHub, poi usato per il training di Copilot. Utilizzare tutto il codice pubblicamente accessibile può non essere ritenuto ammissibile in tutti i casi. Ad esempio, nel caso di codice rilasciato con licenza GPL (nata per volere della Free Software Foundation di Richard Stallman, per contrastare la proliferazione di codice proprietario), è lecito aspettarsi che il riutilizzo del codice non sia visto di buon occhio per un prodotto come Copilot, che in futuro potrebbe perfino essere disponibile solo su licenza.
D'altro canto, l'utilizzazione del codice inteso come "dato" (e non per essere direttamente eseguito - eventualità protetta in modo specifico dalle varie licenze open source) potrebbe esser visto in maniera del tutto analoga ad una "lettura" del codice da parte di chi naviga internet. Quest'ultima interpretazione del codice come dato sembra non convincere tutti, che rispondono affermando che è l'"utilizzatore del dato" (utente di internet che legge il codice, oppure l'algoritmo di machine learning) a fare la differenza.
I am a human person, not a polynomial regression.
— ✨ Nora Tindall, automated relay 🪐 (@NoraDotCodes) July 7, 2021
La stessa Nora Tindall ha spiegato di aver già contattato il supporto legale della Free Software Foundation, per approfondire quello che, quanto meno, potrebbe configurarsi come un buco legislativo, in cui il confine tra l'infrazione del copyright e la "semplice lettura" di materiale pubblicamente accessibile comincia a farsi sempre più labile.
Non resta che rimanere vigili sulla questione, in attesa di capire l'evoluzione sotto tutti i punti di vista coinvolti in questo contesto.