Meta continua a investire fortemente nell’IA generativa e l’ultima novità in questo ambito, annunciata alcuni giorni fa, è Code Llama, un sistema di machine learning open source in grado di generare e spiegare codice in linguaggio naturale.

Simile a GitHub Copilot e Amazon CodeWhisperer, nonché a generatori di codice open source basati sull’intelligenza artificiale come StarCoder, StableCode e PolyCoder, Code Llama è in grado di completare il codice e di eseguire il debug di quello esistente in una serie di linguaggi di programmazione, tra cui Python, C++, Java, PHP, Typescript, C# e Bash.

“Crediamo che i grandi modelli linguistici per la codifica traggano i maggiori benefici da un approccio aperto sia in termini di innovazione che di sicurezza”, ha scritto Meta nel testo dell’annuncio. “I modelli specifici per il codice, disponibili pubblicamente, possono facilitare lo sviluppo di nuove tecnologie che migliorano la vita delle persone. Rilasciando modelli di codice come Code Llama, l‘intera comunità può valutarne le capacità, identificare i problemi e risolvere le vulnerabilità”.

Code Llama, disponibile in diverse versioni tra cui una ottimizzata per Python e una ottimizzata per comprendere le istruzioni, si basa sul modello di generazione di testo Llama 2 che Meta ha reso disponibile all’inizio di questo mese. Sebbene Llama 2 fosse in grado di generare codice, non era necessariamente un buon codice, certamente non all’altezza della qualità che un modello appositamente creato come Copilot poteva produrre.

Per addestrare Code Llama, Meta ha utilizzato lo stesso set di dati usato per addestrare Llama 2, ovvero un mix di fonti disponibili pubblicamente e provenienti da tutto il web, pur facendo in modo di “enfatizzare” il sottoinsieme dei dati di addestramento che includeva il codice. In sostanza, a Code Llama è stato concesso più tempo per imparare le relazioni tra codice e linguaggio naturale rispetto a Llama 2.

screenshot-ai.meta.com-2023.08.28-14_19_15

Ciascuno dei modelli di Code Llama, di dimensioni comprese tra 7 e 34 miliardi di parametri, è stato addestrato con 500 miliardi di token di codice e dati relativi al codice. Il Code Llama specifico per Python è stato ulteriormente perfezionato su 100 miliardi di token di codice Python e, allo stesso modo, il Code Llama di comprensione delle istruzioni è stato perfezionato utilizzando il feedback di annotatori umani per generare risposte “utili” e “sicure” alle domande.

Diversi modelli di Code Llama possono inserire codice nel codice esistente e tutti possono accettare circa 100.000 tokens di codice come input, mentre almeno uno, quello da 7 miliardi di parametri, può essere eseguito su una singola GPU.

Quello della generazione di codice di sviluppo tramite IA è un settore in grandissimo fermento. Secondo GitHub, ad esempio, oggi più di 400 organizzazioni utilizzano Copilot e gli sviluppatori di queste organizzazioni codificano il 55% più velocemente di prima. Stack Overflow, il sito di domande e risposte sulla programmazione, ha inoltre rilevato in un recente sondaggio che il 70% dei suoi utenti sta già utilizzando (o ha in programma di utilizzare) strumenti di codifica IA quest’anno, citando vantaggi come una maggiore produttività e un apprendimento più rapido.

Ma come tutte le forme di IA generativa, gli strumenti di codifica possono andare fuori strada o presentare nuovi rischi. La stessa Meta ammette apertamente che Code Llama potrebbe generare risposte “imprecise” o “discutibili” alle richieste. “Per questi motivi, come per tutti gli LLM, i potenziali risultati di Code Llama non possono essere previsti in anticipo”, scrive l’azienda. “Prima di distribuire qualsiasi applicazione di Code Llama, gli sviluppatori dovrebbero eseguire test di sicurezza e messa a punto in base alle loro specifiche applicazioni del modello”.

screenshot-z-p3-scontent.flin2-1.fna.fbcdn.net-2023.08.28-14_21_15

Nonostante i rischi, Meta pone delle restrizioni minime su come gli sviluppatori possono utilizzare Code Llama, sia per scopi commerciali che di ricerca. Devono semplicemente accettare di non utilizzare il modello per scopi dannosi e, se lo utilizzano su una piattaforma con più di 700 milioni di utenti attivi mensili (come un social network che potrebbe competere con uno di Meta), devono richiedere una licenza.

“Code Llama è stato progettato per supportare gli ingegneri del software in tutti i settori: ricerca, industria, progetti open source, ONG e aziende. Ma i casi d’uso da supportare sono ancora molti di più di quelli che i nostri modelli di base e di istruzione possono servire. Speriamo che Code Llama ispiri altri a sfruttare Llama 2 per creare nuovi strumenti innovativi per la ricerca e i prodotti commerciali”.

Con questa ultima novità nel suo portafoglio IA, Meta sta indubbiamente sparigliando le carte, offrendo gratuitamente (a parte il caso sopra citato) quello che altre aziende fanno pagare. In particolare, Code Llama intacca soprattutto GitHub CoPilot e quindi Microsoft, che però dall’altro lato fornisce Llama 2 su piattaforma Azure. Inoltre, ha un che di paradossale il fatto che OpenAI, nata come iniziativa per aprire e democratizzare la IA, abbia chiuso sorgenti e limitato le informazioni nei paper, mentre Meta, considerata una big tech con pochi scrupoli, sia al momento l’azienda più “aperta” nell’ambito dell’IA generativa.