Ho testato Code Llama di Meta con 3 sfide di codifica AI superate da ChatGPT e non è andata bene
Il CEO di Meta, Mark Zuckerberg, ha recentemente presentato Code Llama, un'intelligenza artificiale con parametri 70B progettata per la codifica. Ma come si confronta con giganti come ChatGPT? L'ho messo alla prova.
Alcune settimane fa, il CEO di Meta Mark Zuckerberg ha annunciato tramite Facebook che la sua azienda sta rendendo open source il suo modello LLM (Large Language Model) Code Llama, che è un motore di intelligenza artificiale (AI) simile a GPT-3.5 e GPT-4 in ChatGPT.
Zuck ha annunciato tre cose interessanti su questo LLM: è open source, è progettato per aiutare a scrivere e modificare il codice e il suo modello ha parametri 70B. La speranza è che gli sviluppatori possano inserire nel modello problemi più impegnativi e che il motore sia più preciso quando risponde.
Interessante la questione dell’open source. È un approccio che implica che potresti scaricare il tutto, installarlo sul tuo server e utilizzare il modello per ottenere aiuto nella programmazione senza mai correre il rischio che i Superni di Facebook recuperino il tuo codice per l'addestramento o altri scopi nefasti.
Fare questo lavoro implica configurare un server Linux e fare tutti i tipi di salti mortali. Tuttavia, risulta che gli specialisti di Hugging Face hanno già implementato il Code Llama 70B LLM nella loro interfaccia HuggingChat. Quindi, questo è ciò che proverò dopo.
Iniziare con Code Llama
Per iniziare, dovrai creare un account gratuito su Hugging Face. Se ne hai già uno (come me), puoi utilizzare il codice 70B Llama LLM con quell'account.
Una cosa importante da notare è che, mentre potresti installare Code Llama sul tuo server e quindi non condividere alcun codice, la storia è molto diversa su Hugging Face. Questo servizio dice che tutto ciò che digiti potrebbe essere condiviso con gli autori del modello a meno che non disattivi tale opzione nelle impostazioni:
Quando accedi a HuggingChat, ti verrà presentata una schermata di chat vuota. Come puoi vedere di seguito, il mio LLM attuale è openchat/openchat-3.5-0106, ma lo cambierò in Code Llama e ti mostrerò come.
Puoi modificare il tuo modello attuale nelle impostazioni, a cui puoi accedere premendo l'icona a forma di ingranaggio:
Una volta entrati nelle impostazioni, clicca (al punto 1) il codellama/CodeLlama-70b-Instruct-hf a sinistra, verifica (al punto 2) che sia stato selezionato il Code Llama LLM, quindi clicca su Attiva (al punto 3):
Ora, quando parli con l'interfaccia della chat, utilizzerai il modello Code Llama, come verificato nella parte superiore dell'interfaccia della chat:
Per testare, ho deciso di estrarre i suggerimenti da un precedente test di codifica che ho condotto con Bard (ora Gemini) e ho eseguito gli stessi test in HuggingChat.
Test 1: scrivere un plugin per WordPress
Il mio primo test è stata la creazione di un plugin per WordPress. ChatGPT ha funzionato abbastanza bene in questo compito. Bard era debole, ma fece del suo meglio. Ma che ne dici di Code Llama? Bene, vediamo. Ecco la richiesta:
Scrivi un plugin WordPress compatibile con PHP 8 che fornisca un campo di immissione testo in cui è possibile incollare un elenco di righe e un pulsante che, quando premuto, randomizza le righe nell'elenco e presenta i risultati in un secondo campo di immissione testo senza spazi vuoti righe e si assicura che non vi siano due voci identiche una accanto all'altra (a meno che non ci sia altra opzione)... con il numero di righe inviate e il numero di righe nel risultato identiche tra loro. Sotto il primo campo, visualizza il testo che indica "Riga da randomizzare: " con il numero di righe non vuote nel campo di origine. Sotto il secondo campo, visualizza il testo che indica "Righe che sono state randomizzate: " con il numero di righe non vuote nel campo di destinazione.
Ed ecco i risultati, così come sono:
Non è giusto su così tanti livelli. Innanzitutto, Code Llama non ha creato l'intestazione del plugin, un insieme molto semplice di campi richiesti da tutti i plugin. Quindi, ha generato un codice che il formattatore del codice del mio editor di programmazione non è riuscito a interpretare, indicando che nel codice mancano elementi.
Inoltre, il codice non può essere testato. Questo è un fallimento.
Test 2: riscrivere una funzione di stringa
Per questo test, ho utilizzato una richiesta di riscrittura di stringhe che una volta avevo fornito a ChatGPT. Volevo correggere un bug nel mio codice che consentiva solo numeri interi quando avrebbe dovuto consentire dollari e centesimi (in altre parole, un certo numero di cifre, possibilmente seguite da un punto, e poi, se c'è un punto, due più cifre).
Ho inserito lo stesso prompt utilizzato nel mio articolo precedente e ho ricevuto questa risposta:
Questo codice funziona e ne sono soddisfatto.
Test 3: Trovare un bug che non sono riuscito a trovare
Ancora una volta, ho riutilizzato un test di cui ho scritto in un articolo precedente. Ti indicherò l'articolo originale se vuoi i dettagli del problema che ho riscontrato su Code Llama. Il problema della codifica è lungo e abbastanza contorto, motivo per cui non sono riuscito a scoprire cosa c'era che non andava.
ChatGPT ha risolto immediatamente il problema; Bard no. Bard fallì perché guardò alla superficie del problema, non al modo in cui il codice complessivo era costruito e doveva essere eseguito. Un'analogia è andare dal dottore con il mal di testa. Un medico potrebbe dirti di prendere due aspirine e di non chiamarlo la mattina. L'altro medico potrebbe provare a scoprire la causa principale del mal di testa e aiutare a risolverlo.
ChatGPT ha individuato la causa principale e sono riuscito a correggere il bug. Bard si è limitato a osservare i sintomi e non ha trovato una soluzione.
Sfortunatamente, Code Llama ha fatto esattamente la stessa cosa di Bard, guardando solo la superficie del problema. L'intelligenza artificiale ha formulato raccomandazioni, ma tali raccomandazioni non hanno migliorato la situazione.
E il vincitore è...
La mia suite di test è lungi dall'essere completa. Ma se Code Llama fallisce in due dei tre test che non hanno nemmeno rallentato ChatGPT, sembra che l'intelligenza artificiale non sia pronta per il debutto.
L'unico motivo per cui potresti voler utilizzare Code Llama su ChatGPT è se lo installi sul tuo server perché in questo caso il tuo codice non sarà condiviso con Meta. Ma a cosa serve la privacy se la cosa non dà risposte corrette?
Se ChatGPT non fosse stato così buono, probabilmente avrei dato qualche punto a Code Llama. Ma sappiamo cosa è possibile fare con ChatGPT e Code Llama è lontano da quel livello. In breve, sembra che Facebook debba rimpicciolirlo e apportare alcuni miglioramenti.
Sinceramente mi aspettavo di meglio e sono rimasto un po' deluso. Ma se c'è una cosa a cui gli editorialisti tecnologici sono abituati, è essere un po' delusi da molti dei prodotti e progetti a cui guardiamo. Penso che sia per questo che ci entusiasmiamo così tanto quando qualcosa risalta e sconvolge il nostro mondo. E Code Llama, sfortunatamente, non è uno di questi.
Hai provato qualcuno degli AI per la guida alla codifica? Quali hai usato? Come hanno funzionato? Fatecelo sapere nei commenti qui sotto.
Puoi seguire gli aggiornamenti quotidiani sui miei progetti sui social media. Assicurati di iscriverti alla mia newsletter di aggiornamento settimanale su Substack e seguimi su Twitter su @DavidGewirtz, su Facebook su Facebook.com/DavidGewirtz, su Instagram su Instagram.com/DavidGewirtz e su YouTube su YouTube.com/DavidGewirtzTV.





