by

Nell’era digitale in costante evoluzione, l’intersezione tra Free and Open Source Software e Intelligenza Artificiale emerge come fulcro cruciale dell’innovazione tecnologica. La nostra analisi si propone di esplorare il legame dinamico e fecondo tra queste due forze trainanti del processo digitale, attraverso una indagine sulle basi filosofiche del software libero e sul suo intreccio con i progressi dell’IA nell’ottica di un panorama tecnologico sempre più aperto e collaborativo.

Il Free and Open Source Software (FOSS)

Il Free and Open Source Software (FOSS) costituisce un’alternativa al modello di software closed source, associato alla maggior parte delle licenze di software commerciali. Guardando al suo significato letterale, il modello FOSS promuove l’innovazione e la libera circolazione del codice sorgente, diversamente dal modello di software proprietario, basato sulla prerogativa del titolare di vietare ai terzi lo sfruttamento dei propri diritti.

Quello del free software è essenzialmente una corrente filosofica che si fonda sull’idea di libertà di utilizzo del software e che vede nel software non libero un problema sociale nonché un ostacolo all’innovazione. In ossequio all’approccio della Free Software Foundation, un determinato software può dirsi “libero” se rispetta quattro libertà fondamentali degli utenti e della comunità: (i) la libertà di eseguire il programma a piacimento e per qualsiasi scopo; (ii) la libertà di studiare il funzionamento del programma e di modificarlo in modo da adattarlo alle specifiche necessità; (iii) la libertà di ridistribuirne copie; (iv) la libertà di apportare miglioramenti al programma e di distribuirli pubblicamente, di modo che tutta la comunità possa trarne beneficio.

La corrente open source ha una connotazione più pragmatica, concentrandosi sull’accessibilità del codice sorgente e del codice oggetto del software. La distribuzione del software open source deve essere libera, la licenza non deve limitare i diritti di vendita o di donazione dello stesso e non deve prevedere royalties per la vendita. Inoltre, la licenza deve consentire la modifica dei programmi originali e la creazione di programmi derivati nonché la distribuzione di questi nei termini previsti dalla licenza del software originario. Ancora, la licenza può prevedere restrizioni alla distribuzione del codice sorgente modificato soltanto qualora vengano distribuiti dei patch files insieme al codice originale e non deve discriminare persone o gruppi di persone né ambiti di utilizzo. I diritti sul programma devono applicarsi a tutti coloro ai quali questo è distribuito, senza che occorra l’emissione di ulteriori licenze. Ove il programma licenziato sia parte di una distribuzione software, la licenza non deve essere specifica per tale distribuzione ma deve garantire a qualunque destinatario gli stessi diritti garantiti con la distribuzione originaria; la licenza non deve altresì contaminare altri software distribuiti insieme a quello principale e deve rispettare il principio di neutralità tecnologica.

Nonostante le differenze tra le due correnti di pensiero, nella prassi è frequente l’utilizzo delle locuzioni “free software” e “open source software” in maniera intercambiabile e non è raro che si faccia riferimento a questo fenomeno utilizzando l’espressione Free and Open Source Software (FOSS).

Le licenze FOSS

Nell’attuale panorama coesistono oltre quaranta licenze FOSS differenti sia per i diritti garantiti che per le condizioni imposte. Le licenze FOSS possono essere categorizzate in base al diverso livello di protezione attribuito al software:

  • Licenze di tipo restrittivo (dette anche “copyleft”), le quali prevedono restrizioni alla ridistribuzione di opere derivate per assicurare che il codice rimanga aperto. Esse attribuiscono agli utilizzatori del software un diritto di utilizzo, copia, modifica, miglioramento e ridistribuzione purché siano garantite le condizioni di reciprocità: in altre parole, evitano che siano applicate condizioni peggiorative che possano ricondurre il programma al modello proprietario. Un esempio è costituito dalla licenza GPL;
  • Licenze di tipo permissivo (anche dette “non-copyleft”), che consentono un ampio utilizzo del codice sorgente anche in programmi non open source (compresa l’eventuale modifica) e non limitano la distribuzione di opere derivate. La BSD e la Apache costituiscono due esempi di licenza non-copyleft;

Tra i due estremi si collocano talune licenze in zona grigia che prevedono clausole di copyleft più deboli, quali ad esempio la LGPL o la MPL.

Le licenze open source di gran lunga più diffuse per i rilasci di software basati su IA sono le licenze permissive.

I vantaggi dell’intersezione open source-AI

L’intreccio tra il mondo dell’open source e quello dell’IA rappresenta un punto di svolta per la rivoluzione tecnologica in atto. La comunità open source favorisce lo sviluppo di sistemi di IA sempre più avanzati, permettendo ai soggetti pubblici o privati operanti nel settore di avere rapido accesso alle risorse ed incentivando così il processo innovativo, senza che siano necessari gli ingenti investimenti iniziali legati a licenze di software proprietari.

La disamina del codice sorgente consente di comprendere i meccanismi di funzionamento del sistema di IA, aumentando la trasparenza e il livello di fiducia degli utenti: se gli algoritmi sono comprensibili e verificati, è possibile garantire un elevato grado di equità e una costante prevenzione dei bias.

I modelli e il codice possono essere personalizzati in base a specifici requisiti, offrendo una flessibilità che le semplici soluzioni open source in altri contesti non sono in grado di fornire.

L’intersezione tra AI e open source promuove altresì la creazione di un ecosistema collaborativo in cui gli sviluppatori siano in grado di condividere idee, di contribuire ai miglioramenti e di accelerare così il progresso tecnologico.

La disponibilità del codice sorgente contribuisce poi ad aumentare il livello di sicurezza, consentendo il monitoraggio costante e la conseguente revisione dei sistemi funzionali ad una rapida risposta alle minacce del cyberspazio.

L’implementazione dell’Intelligenza Artificiale open source

Un sistema basato su Intelligenza Artificiale consta di più componenti rispetto ad un tradizionale software e, in conseguenza di ciò, la definizione di open source necessita di adattarsi ed espandersi: nel contesto dell’IA non esiste un codice sorgente di per sé e l’elemento chiave è costituito dai dati impiegati per il training del sistema.

Nel caso dei sistemi di IA proprietari viene di solito addebitato un costo “per token” ed i livelli di tariffazione risultano diversi a seconda dei modelli e della loro reattività. Le spese includono sovente i costi di hosting e di assistenza e l’addebito per token risulta assai suscettibile di fluttuazioni in aumento. I sistemi di IA open source sono spesso scaricabili gratuitamente e, sebbene possano risultare costosi quantomeno nella loro fase di installazione, essi si rivelano più economici per i clienti che ne facciano un utilizzo elevato.

I possibili impieghi di un sistema di Intelligenza Artificiale open source sono molteplici e gli scenari più comuni includono la chiamata API o le chiamate di funzione, l’incorporazione, il collegamento, la modifica e la traduzione. È molto comune che vi sia un software al contempo proprietario e open source e nella maggior parte dei casi ci si serve di chiamate API – ossia processi attraverso cui due software scambiano dati – o di chiamate di funzione. In tali casi, non è necessaria alcuna contaminazione o mescolanza di codice sorgente. Può anche accadere che uno sviluppatore copi parte di un FOSS all’interno di un prodotto proprietario: in tali casi si verifica il fenomeno dell’incorporazione. Il risultato di tale operazione è una contaminazione ed è importante rilevare che nelle licenze “copyleft” è previsto che tutto il codice sorgente sia aperto qualora il prodotto risultante sia oggetto di distribuzione. Accade altresì di frequente che uno sviluppatore colleghi o unisca un componente FOSS con un prodotto proprietario, caso in cui non si verifica alcuna contaminazione del codice sorgente. Similmente alla chiamata API, il collegamento ai modelli di IA a partire da altro codice sorgente è una forma di implementazione molto comune. L’apertura del codice consente agli sviluppatori di apportare modifiche ad un componente FOSS, tra cui l’aggiunta di nuovi componenti FOSS, la correzione e l’ottimizzazione dei componenti originari, l’eliminazione di talune parti di codice. È possibile, infine, che venga tradotto il codice sorgente, ad esempio da un linguaggio di programmazione ad un altro.

AI Act e Product Liability Directive: le future prospettive dell’approccio europeo al FOSS

Il Regolamento europeo sull’Intelligenza Artificiale (“AI Act”), nella sua ultima versione approvata, ha generato confusione circa la disciplina applicabile ai software open source. Inizialmente, l’Art. 2, par 5 lett. g) della versione del 26 gennaio 2024 escludeva gli obblighi del Regolamento per i sistemi di IA rilasciati sotto licenze open source, a meno che non fossero ad alto rischio o rientrassero nei titoli II e IV. Tuttavia, la nuova versione ha disciplinato lo stesso tema all’Art. 2 par 12, rendendo il Regolamento applicabile ai sistemi open source che, favorendo la condivisione e l’innovazione, dovrebbero essere esentati dal Regolamento. Un errore di interpretazione dell’ultima revisione ha portato a credere che i FOSS potessero non essere esentati, ma un successivo chiarimento ha indicato che verranno eseguite delle rettifiche per correggere tale errore nella versione finale del testo che sarà pubblicata nella Gazzetta Ufficiale dell’Unione Europea. I software liberi che beneficeranno dell’esenzione saranno quelli i cui parametri (tra cui le informazioni sull’architettura del modello) siano resi pubblici e che non siano resi disponibili a fronte di un pagamento o non siano oggetto di monetizzazione (per esempio, attraverso l’offerta a pagamento di supporto tecnico successivo al loro rilascio). Per avere un’idea chiara sull’approccio del legislatore europeo, è opportuno guardare ai Considerando 102 e 103 dell’ultima versione del Regolamento, i quali prevedono che il sistema di IA rilasciato sotto una licenza libera e open source che ne consenta la condivisione aperta e che permetta agli utenti di accedere, utilizzare, modificare e ridistribuire liberamente i dati o le versioni modificate, contribuendo alla ricerca e all’innovazione del mercato ed offrendo significative opportunità di crescita per l’economia dell’Unione Europea, non dovrebbe rientrare nella disciplina del Regolamento.

Anche la nuova direttiva sulla responsabilità per danno da prodotti difettosi (“Product Liability Directive”), che si inserisce all’interno del pacchetto di misure europee volte a sostenere la promozione dell’IA, esclude i FOSS dal proprio perimetro di applicabilità. Tale scelta, ancora una volta, appare giustificata dall’incoraggiamento della ricerca e dell’innovazione all’interno del mercato europeo e dal fatto che i software liberi, non sviluppati o forniti nel corso di un’attività commerciale, non siano per definizione “immessi sul mercato”. Nel caso in cui, invece, i software siano forniti a titolo oneroso o i dati personali vengano impiegati nel contesto di un’attività commerciale, la direttiva troverà applicazione.

In materia di responsabilità di sviluppatori e produttori di software AI potrebbe interessarvi anche: La responsabilità di sviluppatori e produttori di software AI secondo la Direttiva sul risarcimento dei danni da prodotti difettosi

(Visited 38 times, 1 visits today)
Close Search Window