L’intelligenza artificiale avanzata (AI) di GitHub favorirà la scrittura di codice di programmazione

Lo strumento recentemente presentato si chiama GitHub Copilot e può suggerire agli sviluppatori da poche righe di codice a intere funzioni.

“Un pezzo di futuro teletrasportato all’indietro nel 2021”: così Nat Friedman, CEO di GitHub (famoso servizio di hosting per progetti software acquisito da Microsoft nel 2018), ha definito Copilot, ovvero lo strumento sviluppato in collaborazione con OpenAI in grado di assistere gli sviluppatori durante la scrittura del codice.

Secondo GitHub, CoPilot funziona particolarmente bene con i linguaggi Python, JavaScript, TypeScript, Ruby e Go, ma è in grado di comprendere decine di linguaggi di programmazione, restituendo codice valido al primo tentativo nel 43 percento dei casi, arrivando al 57% nel giro di una decina di prove. Quando l’estensione propone un blocco di codice, infatti, lo sviluppatore può approvarlo e inserirlo nel sorgente oppure richiedere nuove risposte fino a trovare quella appropriata. Alternativamente, è possibile editare manualmente il codice per correggerlo.

Le interazioni dello sviluppatore con il codice proposto vengono usate per dare all’algoritmo un feedback della validità della risposta generata, ma GitHub afferma che il codice originale prodotto non verrà poi usato per alimentare il dataset da cui saranno estrapolate nuove risposte. Non dovrebbe quindi esserci il rischio che il proprio codice venga proposto ad altri sviluppatori.

IA e diritto d’autore: una relazione tutta da scrivere

GitHub dichiara che la pratica di utilizzare informazioni pubblicamente disponibili, come il codice open source, per addestrare una IA è un’attività comunemente adottata, ma evidentemente si rende conto di muoversi in un territorio minato e si dichiara disponibile a discutere con gli sviluppatori e l’industria del software per sviluppare linee guida di comportamento comune.

I motivi ci sono tutti, perché l’annuncio ha destato qualche preoccupazione sia tra i sostenitori dell’open source, ma anche chi deve proteggere le aziende da possibili rivendicazioni e sanzioni per violazione del diritto d’autore qualora un frammento di codice open source venga inserito in un software commerciale.

GitHub dichiara di non rivendicare alcun diritto sul codice generato da CoPilot, che considera un mero strumento tecnico. Non potrebbe essere altrimenti: le leggi sul diritto d’autore o sulla proprietà intellettuale prevedono infatti che esista un autore umano, che è l’unico essere in grado di produrre opere di ingegno.

La proprietà intellettuale sul codice generato da CoPilot appartiene quindi allo sviluppatore che materialmente ne approva l’inserimento nel progetto, assumendosi a questo punto anche le responsabilità verso eventuali violazioni del copyright.

Quanto è probabile che un frammento di codice inserito corrisponda letteralmente a un progetto usato nella fase di addestramento?

 

CoPilot e il software open source

Secondo una ricerca effettuata da GitHub, un frammento di codice autogenerato potrebbe replicare testualmente parte del sorgente di un altro progetto nello 0,1 % dei casi, e le parti copiate sarebbero costituite principalmente da funzioni ormai diventate standard e usate in moltissimi progetti. Da un altro punto di vista, vorrebbe dire che in un progetto da 350.000 linee di codice come WordPress, 350 righe potrebbero essere copiate inconsapevolmente da altri progetti.

Anche ammettendo che nessun frammento di codice open source finisca in un progetto con diversa licenza, sarà corretto presumere che le licenze open source garantiscono il diritto di utilizzare il codice per addestrare un modello di intelligenza artificiale che sarà poi venduto come servizio e utilizzato per scrivere software proprietario?

Nessuno finora si è preoccupato di porre limiti a questo tipo di utilizzo, perché era difficile immaginare l’attuale sviluppo del machine learning, in parte perché non è scontato che si possa mettere una limitazione all’impiego di sorgenti open source per addestrare modelli IA.

Si tratta di un territorio ancora inesplorato – commenta a Computerworld Italo Vignoli, membro del board della Open Source Initiative e altre organizzazioni per la promozione del software libero – Non mi risulta che, almeno tra le più importanti licenze open source, ci siano clausole per vietare esplicitamente l’utilizzo del codice per l’addestramento di sistemi di Intelligenza Artificiale. Del resto, questo probabilmente violerebbe una delle quattro libertà che le licenze open dovrebbero garantire, cioè la libertà di studiare il funzionamento di un programma e di modificarlo a proprio piacimento, ovviamente però applicando al prodotto finale una licenza compatibile con quella del sorgente originale.

Che si possa garantire “libertà di studio” a un soggetto che non sia umano, però, riapre interrogativi filosofici non trascurabili. “Come tutte le grandi innovazioni, è facile farsi prendere dall’entusiasmo, ma è altrettanto facile tralasciare di considerare le implicazioni meno immediate”, commenta Vignoli.

Copilot e Visual Studio

GitHub Copilot va ad integrarsi in maniera diretta con Visual Studio Code: può essere installato come estensione oppure utilizzato in cloud tramite GitHub Codespaces. Allo stato attuale i linguaggi supportati in maniera più efficiente sono JavaScript, TypeScript, Ruby, Go e Python. Per il momento Copilot è disponibile solo come anteprima tecnica, ma GitHub ha tutta l’intenzione di farlo diventare un prodotto commerciale. L’utilizzo da parte dei primi utenti, comunque, consentirà allo strumento di diventare più intelligente e migliorare sulla base dei suggerimenti accettati e rifiutati.

Seguendo la metafora di GitHub, se lo strumento è il “copilota”, il pilota rimane sempre lo sviluppatore, che conserva il pieno controllo del codice. Il programmatore può scorrere i suggerimenti alternativi, scegliere quali accettare o rifiutare e modificare manualmente il codice suggerito.

GitHub Copilot si adegua alle modifiche che fa lo sviluppatore, adattandosi al suo stile di programmazione.

Comments are closed.