MicrosoftOpen Source

L'IA della discordia: GitHub Copilot fa infuriare i sostenitori dell'open source

di pubblicata il , alle 12:21 nel canale Innovazione L'IA della discordia: GitHub Copilot fa infuriare i sostenitori dell'open source

GitHub Copilot, funzionalità recentemente lanciata che aiuta gli sviluppatori a scrivere codice, ha scatenato le ire di molti nel mondo open source per via del suo sfruttamento, giudicato immorale, del software libero

 

Quale licenza applicare a codice generato da un'IA? La domanda può apparire strana, ma è al centro di una diatriba che sta animando un lungo dibattito all'interno del mondo open source per via di GitHub Copilot. La funzionalità, annunciata da GitHub circa un anno fa e recentemente resa disponibile come servizio a pagamento, è stata infatti creata usando codice open source e ciò fa sorgere la domanda: se il codice originale era open source, quale licenza deve adottare quello prodotto da Copilot?

GitHub Copilot scatena l'ira della comunità open source

In una lunga lettera aperta pubblicata sul suo sito, la Software Freedom Conservancy ha attaccato direttamente (e duramente) GitHub per via di Copilot e di come ha gestito il suo lancio. Stando alla SFC, infatti, GitHub e Microsoft hanno smesso di rispondere alle richieste di contatto e alle domande dopo un primo dibattito, lanciando poi a sorpresa Copilot come funzionalità a pagamento.

Copilot è una funzionalità che mira ad aiutare gli sviluppatori a scrivere codice sfruttando l'intelligenza artificiale: pescando dal mare magnum di progetti open source ospitati su GitHub, l'IA è in grado di suggerire come migliorare il codice e come implementare certe funzionalità, fungendo dunque da "copilota" per lo sviluppatore e intervenendo laddove necessario.

Proprio qui, però, sta il problema. Poniamo, infatti, il caso che Copilot riproponga un pezzo di codice proveniente da un progetto con licenza GPL: in teoria, il fatto che venga riproposto da Copilot non ne cambia la licenza e, dunque, ciò rende potenzialmente l'intero codice del progetto soggetto ai termini della licenza GPL. Si tratta di un grosso problema, a livello potenziale, nel caso in cui lo sviluppatore che usa Copilot stia scrivendo codice con una licenza proprietaria o con una non compatibile con la GPL: la licenza GPL è infatti definita "virale" perché, se si fa uso di un pezzo di codice che la usa, obbliga a rilasciare il codice sorgente dell'intero programma se questo viene distribuito (con limitazioni e variazioni la cui discussione va al di là dello scopo di questo pezzo). In pratica, il rischio è quello di trovarsi con un misto di codice open source e non (o con diverse licenze open source, incompatibili fra loro) che può creare grossi grattacapi a livello legale.

Secondo Microsoft e GitHub, il fatto che il codice sia open source e liberamente consultabile significa che può essere preso e ridistribuito ignorando la licenza, se di mezzo c'è un'intelligenza artificiale.

A fare una simile affermazione è stato Nat Friedman, che è stato CEO di GitHub fino a pochi mesi fa. Friedman scriveva che "in generale: (1) addestrare sistemi di machine learning su dati pubblici è da considerare fair use, (2) ciò che viene prodotto è di proprietà dell'operatore, così come avviene con un compilatore."

Non è assolutamente chiaro, però, se le cose stiano veramente così da un punto di vista legale. La SFC solleva, infatti, un punto importante: "se, come dichiarate, è permissibile addestrare il modello (e consentire ai suoi utenti di generare codice basato su tale modello) su qualunque codice e non dover rispettare alcun termine di licenza, perché avete scelto di addestrare il modello di Copilot su software libero e open source? Per esempio, perché le basi di codice di Microsoft Windows e Office non sono nel vostro set di addestramento?"

GitHub ha un problema di approccio che porta allo scontro?

La SFC pone il comportamento di GitHub in contrasto con quello di Amazon, che ha sviluppato una funzionalità simile a Copilot, chiamata CodeWhisperer. Tale funzionalità riporterebbe infatti correttamente la licenza del codice che viene suggerito, così da consentire allo sviluppatore di stabilire se il codice prodotto dall'IA sia compatibile con il progetto su cui sta lavorando o meno. Verrebbe inoltre fornita l'origine del codice, così da poter attribuire correttamente la paternità del codice come richiesto da molte licenze e dalle leggi sul copyright di molti Paesi.

GitHub si è rifiutata di rispondere alle domande della SFC, affermando che "un dibattito più ampio [sull'etica della scrittura di software supportata dall'IA] sembrava che difficilmente avrebbe fatto cambiare idea [alla SFC], motivo per cui non abbiamo risposto alle vostre domande dettagliate." Una posizione difficile da sostenere: non rispondere perché non si può far cambiare idea all'altro non è sintomo di un approccio produttivo e positivo ai problemi.

In risposta a questa situazione, la SFC ha lanciato il sito giveupgithub.org, in cui elenca diversi motivi per cui gli sviluppatori di progetti open source dovrebbero abbandonare la piattaforma. I problemi sollevati dalla SFC sono piuttosto concreti e riguardano non solo l'aspetto etico, ma anche quello legale intorno a Copilot. Il rischio è che il codice prodotto da Copilot venga in futuro dichiarato illecito, o che un giudice determini che la licenza viene manutenuta: quali rischi corrono, in tali casi, le organizzazioni che usano Copilot?

18 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
DevilsAdvocate05 Luglio 2022, 13:04 #1
Da sviluppatore, faccio cortesemente notare che non c'è una sola alternativa che si avvicini a github su tutto il web, da gitlab alle soluzioni atlassian (che sarebbero poi come passare "dalla padella nella brace"...)
cignox105 Luglio 2022, 14:21 #2
Interessante quesito. Ma sarebbe anche interessante capire a quali casi andrebbe davvero applicato: in teoria, neppure una riga di codice da un software gpl potrebbe essere replicata ignorando la licenza, nella realtá, peró, ogni sviluppatore impara (anche) leggendo codice altrui, e ci sono snippet di codice che vengono scritti in un certo modo da tutti, a prescindere dalla licenza.
Quindi cosa fa questo copilot? Mi suggerisce il modo migliore per gestire le mie risorse jdbc intercettando le eccezioni etc (codice standard ma che in quel momento ha preso "per caso" da un progetto open source) oppure mi inserisce l'intero codice per il buffering di uno stream video, e allora magari sarebbe stato meglio prendere una libreria apposita fin dal principio?
Phoenix Fire05 Luglio 2022, 14:33 #3
Originariamente inviato da: cignox1
Interessante quesito. Ma sarebbe anche interessante capire a quali casi andrebbe davvero applicato: in teoria, neppure una riga di codice da un software gpl potrebbe essere replicata ignorando la licenza, nella realtá, peró, ogni sviluppatore impara (anche) leggendo codice altrui, e ci sono snippet di codice che vengono scritti in un certo modo da tutti, a prescindere dalla licenza.
Quindi cosa fa questo copilot? Mi suggerisce il modo migliore per gestire le mie risorse jdbc intercettando le eccezioni etc (codice standard ma che in quel momento ha preso "per caso" da un progetto open source) oppure mi inserisce l'intero codice per il buffering di uno stream video, e allora magari sarebbe stato meglio prendere una libreria apposita fin dal principio?

interessante spunto, non avendo mai usato copilot non so quanto va in la con i suggerimenti
Discorso "prendere spunto o imparare pattern" è vero, quanto codice uno prende da github perchè magari qualcuno su stackoverflow indica un certo codice come "qua hanno fatto una cosa simile" oppure passando da google su come implemetnare una certa cosa, si trova una libreria open e si copia quello snippet utile alla specifica funzione?
biffuz05 Luglio 2022, 15:42 #4
Ma infatti, da quello che vedo (e non immagino come possa essere altrimenti) questi suggerimenti sono poche righe di codice che fanno cose piuttosto semplici, che si fanno praticamente nello stesso modo dalla notte dei tempi.
Se guardate qualsiasi programma, il 99% del codice lo trovate identico in altri 1000 programmi... mi pare si stia parlando veramente della fuffa.
pachainti05 Luglio 2022, 16:39 #5
Originariamente inviato da: DevilsAdvocate
Da sviluppatore, faccio cortesemente notare che non c'è una sola alternativa che si avvicini a github su tutto il web, da gitlab alle soluzioni atlassian (che sarebbero poi come passare "dalla padella nella brace"...)


Dipende da cosa devi fare, ma per moltissimi compiti gitlab è intercambiabile con github è puoi utilizzare la versione self-hosted.
Sarebbero da provare codeBerg e sourceHut, ne ho sempre sentito parlare bene.
marcram05 Luglio 2022, 17:59 #6
E, secondo alcuni, MS è cambiata, ed ora contribuisce ed abbraccia anche l'open source...
Sì, l'abbraccia dove serve a far soldi...
carloUba05 Luglio 2022, 21:17 #7
Originariamente inviato da: marcram
E, secondo alcuni, MS è cambiata, ed ora contribuisce ed abbraccia anche l'open source...
Sì, l'abbraccia dove serve a far soldi...


Era dal 2007 che non leggevo commento più stupido
marcram06 Luglio 2022, 08:45 #8
Originariamente inviato da: carloUba
Era dal 2007 che non leggevo commento più stupido

Grazie. Puoi anche argomentare, o ti limiti a lanciare giudizi personali?
Tasslehoff06 Luglio 2022, 10:38 #9
Originariamente inviato da: marcram
E, secondo alcuni, MS è cambiata, ed ora contribuisce ed abbraccia anche l'open source..tux
Sì, l'abbraccia dove serve a far soldi...
Questo è ovvio, secondo te quando nei primi anni 2000 IBM tempestava partner e clienti su Linux e faceva marketing selvaggio piazzando Tux ovunque lo faceva per bontà l'animo?
Al confronto MS almeno ha fatto qualcosa di veramente utile, pensiamo anche solo a WSL.

Il punto non è questo, e non è neanche Github, il punto è la licenza d'uso e le possibili ricadute di questa ambiguità.
E' un attimo che qualcuno lanci un progetto di successo, macini milioni (o miliardi) e poi si ritrovi spennato in tribunale per non aver rispettato la licenza d'uso, non a caso Amazon ci è andata coi piedi di piombo.
Tasslehoff06 Luglio 2022, 10:45 #10
Originariamente inviato da: DevilsAdvocate
Da sviluppatore, faccio cortesemente notare che non c'è una sola alternativa che si avvicini a github su tutto il web, da gitlab alle soluzioni atlassian (che sarebbero poi come passare "dalla padella nella brace"...)
Da sistemista faccio notare che quello che veramente importa (di Github, Gitlab, Bitbucket, etc etc...) è il repository git dove versionare il codice, che è completamente libero e gratuito e può essere hostato benissimo su una arm board da 30 € o su un vps da 25 €/anno.

Il resto (wiki, bug tracking, trouble ticketing, etc etc) sono tutte pinzillacchere che possono benissimo essere fatte con altri progetti altrettanto liberi e gratuiti, che spesso essendo dedicati a quello scopo sono anche più flessibili e avanzati.
Se poi uno vuol usare features avanzate di CI/CD nulla vieta di installarsi una istanza Jenkins (altrettanto free e open) in 5 min.

Non è una novità, si è sempre fatto così fin dai tempi di cvs, poi con svn, poi con git.
Github, Gitlab e simili non hanno inventato nulla, hanno solo incentivato la pigrizia della gente.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
^