AI Weekly: i ricercatori tentano un’alternativa open source a Copilot di GitHub
A giugno, OpenAI ha collaborato con GitHub per lanciare Copilot , un servizio che fornisce suggerimenti per intere righe di codice all’interno di ambienti di sviluppo come Microsoft Visual Studio. Alimentato da un modello di intelligenza artificiale chiamato Codex , che OpenAI ha successivamente esposto tramite un’API, Copilot può tradurre il linguaggio naturale in codice in più di una dozzina di linguaggi di programmazione, interpretando i comandi in inglese semplice ed eseguendoli.
Ora è in corso uno sforzo della comunità per creare un’alternativa open source e disponibile gratuitamente a Copilot e al modello Codex di OpenAI. Soprannominato GPT Code Clippy, i suoi collaboratori sperano di creare un programmatore di coppie di intelligenza artificiale che consenta ai ricercatori di studiare grandi modelli di intelligenza artificiale addestrati sul codice per comprendere meglio le loro capacità e limiti.
Modelli open source
Codex è addestrato su miliardi di righe di codice pubblico e funziona con un’ampia gamma di framework e linguaggi, adattandosi alle modifiche apportate dagli sviluppatori per adattarsi ai loro stili di codifica. Allo stesso modo, GPT Code Clippy ha imparato da centinaia di milioni di esempi di codebase per generare codice simile a come potrebbe farlo un programmatore umano.
I contributori del progetto GPT Code Clippy hanno utilizzato GPT-Neo come base dei loro modelli di intelligenza artificiale. Sviluppato dal collettivo di ricerca di base EleutherAI, GPT-NEo è noto come modello Transformer . Ciò significa che soppesa l’influenza di diverse parti dei dati di input anziché trattare tutti i dati di input allo stesso modo. I trasformatori non hanno bisogno di elaborare l’inizio di una frase prima della fine. Invece, identificano il contesto che conferisce significato a una parola nella frase, consentendo loro di elaborare i dati di input in parallelo.
Sopra: il plug-in di Visual Studio per GPT Code Clippy.
GPT-Neo è stato “pre-addestrato” su The Pile, una raccolta di 835 GB di 22 set di dati più piccoli tra cui fonti accademiche (ad es. Arxiv, PubMed), comunità (StackExchange, Wikipedia), repository di codice (Github) e altro ancora. Attraverso la messa a punto, i contributori di GPT Code Clippy hanno migliorato le sue capacità di comprensione del codice esponendo i loro modelli a repository su GitHub che soddisfacevano determinati criteri di ricerca (ad esempio, avevano più di 10 stelle GitHub e due commit), filtrati per file duplicati.
“Abbiamo utilizzato la libreria Transformers di Hugging Face … per mettere a punto i nostri modelli su vari set di dati di codice incluso uno dei nostri, che abbiamo raschiato da GitHub”, spiegano i contributori sulla pagina del progetto GPT Code Clippy . “Abbiamo deciso di perfezionare piuttosto che allenarci da zero poiché nel documento GPT-Codex di OpenAI , riportano che l’addestramento da zero e la messa a punto delle prestazioni del modello [risultano equivalenti]. Tuttavia, la messa a punto ha consentito ai modelli di convergere più rapidamente rispetto all’addestramento da zero. Pertanto, tutte le versioni dei nostri modelli sono messe a punto.”
I collaboratori di GPT Code Clippy hanno addestrato diversi modelli fino ad oggi utilizzando unità di elaborazione del tensore (TPU) di terza generazione, il chip acceleratore AI personalizzato di Google disponibile tramite Google Cloud. Sebbene sia solo agli inizi, hanno creato un plug-in per Visual Studio e pianificano di espandere le funzionalità di GPT Code Clippy ad altri linguaggi, in particolare a quelli sottorappresentati.
“Il nostro obiettivo finale non è solo quello di sviluppare una versione open source di Github’s Copilot, ma anche di prestazioni comparabili e facilità d’uso”, hanno scritto i contributori. “[Speriamo di trovare alla fine] modi per aggiornare la versione e gli aggiornamenti ai linguaggi di programmazione.”
Promesse e battute d’arresto
I modelli di codifica basati sull’intelligenza artificiale non sono utili solo nella scrittura del codice, ma anche quando si tratta di risultati di scarsa importanza come l’aggiornamento del codice esistente. La migrazione di una base di codice esistente a un linguaggio moderno o più efficiente come Java o C++, ad esempio, richiede esperienza sia nel linguaggio di origine che in quello di destinazione, ed è spesso costoso. La Commonwealth Bank of Australia ha speso circa 750 milioni di dollari nel corso di cinque anni per convertire la sua piattaforma da COBOL a Java.
Ma ci sono molte potenziali insidie, come pregiudizi e suggerimenti di codice indesiderati. In un recente articolo, i ricercatori di Salesforce dietro CodeT5 , un sistema simile a Codex in grado di comprendere e generare codice, riconoscono che i set di dati utilizzati per addestrare CodeT5 potrebbero codificare alcuni stereotipi come razza e genere dai commenti di testo – o anche dal codice sorgente . Inoltre, dicono, CodeT5 potrebbe contenere informazioni sensibili come indirizzi personali e numeri di identificazione. E potrebbe produrre codice vulnerabile che influisce negativamente sul software.
Allo stesso modo OpenAI ha scoperto che Codex potrebbe suggerire pacchetti compromessi, invocare funzioni in modo non sicuro e produrre soluzioni di programmazione che sembrano corrette ma in realtà non svolgono il compito previsto. Al modello può anche essere richiesto di generare output razzisti e dannosi come codice, come la parola “terrorista” e “violento” quando si scrivono commenti in codice con il prompt “Islam”.
Il team di GPT Code Clippy non ha detto come potrebbe mitigare i pregiudizi che potrebbero essere presenti nei suoi modelli open source, ma le sfide sono chiare. Mentre i modelli potrebbero, ad esempio, ridurre le sessioni di domande e risposte e il feedback ripetitivo di revisione del codice, potrebbero causare danni se non attentamente controllati, in particolare alla luce della ricerca che mostra che i modelli di codifica non sono all’altezza dell’accuratezza umana.