In breve tempo dall’introduzione di LLaMA, Meta ha praticamente raggiunto OpenAI su tutti i fronti, eccezion fatta per la generazione di codice. Recentemente, l’azienda ha finalmente presentato il suo nuovo modello di generazione di codice, denominato Code Llama. Questo strumento crea codice basandosi sia su istruzioni in linguaggio naturale che su codice preesistente. Un aspetto particolarmente interessante è che, come Llama 2, Code Llama è open source e può essere utilizzato anche a scopi commerciali.
Code Llama si basa sui fondamenti di Llama 2, che sono stati ulteriormente perfezionati grazie a dataset specializzati relativi al codice. L’annuncio ha coinvolto quattro varianti di Code Llama: Code Llama, Code Llama Instruct, Code Llama Python e Unnatural Code Llama. Queste versioni variano per capacità, includendo parametri da 7 miliardi, 13 miliardi e 34 miliardi. Tuttavia, per il momento, sono state rilasciate solo le prime tre versioni di Code Llama, escludendo l’Unnatural Code Llama.
I modelli Code Llama sono in grado di gestire fino a 100.000 token di contesto, il che si traduce in una generazione di codice più accurata. Ciò è particolarmente utile per comprendere porzioni ampie di codice e risolvere problematiche di programmazione complesse. Gli sviluppatori possono inserire parti significative del proprio codice per ottenere assistenza nella risoluzione di problemi e nel superamento di sfide di codifica intricate. Il modello da 7 miliardi di parametri può essere eseguito su una singola GPU, garantendo una latenza minore e la generazione in tempo reale del codice.
I test di benchmark approfonditi attestano le capacità di Code Llama. Rispetto ad altri modelli di intelligenza artificiale focalizzati sul codice, la versione da 34 miliardi di parametri di Code Llama ha ottenuto impressionanti punteggi del 53,7% in HumanEval e del 56,2% in Mostly Basic Python Programming (MBPP), avvicinandosi alle prestazioni di ChatGPT.
Una parte intrigante del dataset di Code Llama riguarda le “Istruzioni innaturali”, ovvero un insieme di dati creato tramite modelli di intelligenza artificiale preesistenti. Sorprendentemente, l’azienda ha scelto di non rilasciare il modello Unnatural, che rappresenta una versione da 34 miliardi di parametri focalizzata su Python e include 15.000 istruzioni innaturali. Questa sembrava essere la versione più potente di Code Llama, secondo quanto riportato.
Nel dicembre 2022, Meta AI ha collaborato con l’Università di Tel Aviv per pubblicare un documento dal titolo “Unnatural instructions: Tuning Language Models with (Almost) No Human Labour”. Questo articolo esplora come Meta abbia creato un vasto dataset di istruzioni creative e variegate, raccogliendo inizialmente 64.000 esempi per guidare un modello linguistico. Successivamente, il numero è salito a 240.000 esempi di input e output, con un basso livello di rumore.
In pratica, Meta AI ha creato un dataset sintetico per la codifica interamente in modo automatizzato. Utilizzando questo dataset, i modelli di Meta hanno dimostrato di superare le prestazioni di altri modelli, inclusa la stessa ChatGPT, in diverse attività legate all’elaborazione del linguaggio naturale. Questo stesso approccio è stato ora applicato a Code Llama, utilizzando un dataset di codice.
È interessante notare che, secondo il documento sulle “Unnatural instructions”, il modello per generare i dati ha fatto uso di text-davinci-002 e GPT-3 per produrre input e output. Sebbene non sia specificamente menzionato l’uso del modello GPT di OpenAI per Code Llama di Meta, è plausibile che si tratti di una combinazione di codice generato da Llama 2 e, forse, anche da GPT-4. Questo potrebbe essere uno dei motivi per cui il modello Unnatural Code Llama non è stato rilasciato.
Allo stesso modo in cui molti hanno cercato di replicare il successo di ChatGPT addestrando modelli propri sugli output, si sta verificando lo stesso fenomeno nel campo della generazione di codice. È possibile che il modello Unnatural sia stato addestrato su GPT-4, o addirittura sull’output di Codex di OpenAI attraverso GitHub Copilot. Questo solleva questioni legali, dato che OpenAI ha posto restrizioni chiare sull’uso dei suoi output a fini di addestramento.
Tuttavia, è innegabile che i dati sintetici stiano dimostrando di essere efficaci nel potenziamento dei modelli generativi. Nonostante sia stato addestrato su soli 15.000 esempi sintetici, l’Unnatural Code Llama si è dimostrato straordinariamente potente. Forse Meta avrebbe potuto evitare questioni legali con OpenAI adoperando l’output di Llama 2 solo per la formazione. Oppure, è possibile che l’azienda stia semplicemente riservando questo modello per uso interno.
Nel frattempo, il rilascio di Code Llama per l’uso commerciale, simile a quanto avvenuto con Llama 2, conferisce a Meta un vantaggio rispetto ad altre piattaforme di generazione di codice come Copilot, che attualmente prevedono un costo. In aggiunta, i modelli da 7 miliardi di parametri consentono la generazione di codice localmente tramite una singola GPU.
Con il lancio di Code Llama, Meta continua a dimostrare il suo impegno nell’ecosistema open source e di sviluppo, come ha fatto con Llama 2 e anche con PyTorch. Questo sforzo contribuisce a consolidare ulteriormente la loro posizione. La partnership con Microsoft certamente favorirà un futuro redditizio.
In conclusione, l’evoluzione di Code Llama dimostra come i dati sintetici stiano diventando fondamentali per potenziare i modelli generativi. Nonostante alcune questioni legali possano sorgere, Meta si sta affermando come leader nell’ambito dell’open source e dello sviluppo, beneficiando anche della collaborazione con Microsoft.