Quanto bene può il codice di anteprima o1 di OpenAI? Ha superato i miei 4 test e ha mostrato il suo lavoro con dettagli sorprendenti
Il modello di intelligenza artificiale più avanzato di OpenAI può aiutarti a programmare? Ecco cosa ho scoperto mettendolo alla prova.
Di solito, quando una società di software rilascia una nuova importante versione a maggio, non tenta di completarla con un'altra nuova importante versione quattro mesi dopo. Ma non c’è niente di consueto nel ritmo dell’innovazione nel settore dell’intelligenza artificiale.
Sebbene OpenAI abbia lanciato il suo nuovo onnipotente modello GPT-4o a metà maggio, l'azienda è stata impegnata. Già lo scorso novembre, Reuters aveva pubblicato una voce secondo cui OpenAI stava lavorando a un modello linguistico di prossima generazione, allora noto come Q*. A maggio hanno rilanciato il rapporto, affermando che si stava lavorando su Q* con il nome in codice di Strawberry.
Strawberry, a quanto pare, è in realtà un modello chiamato o1-preview, che è ora disponibile come opzione per gli abbonati ChatGPT Plus. Puoi scegliere il modello dal menu a tendina di selezione:
Come puoi immaginare, se è disponibile un nuovo modello ChatGPT, lo metterò alla prova. Ed è quello che sto facendo qui.
Il nuovo modello Strawberry si concentra sul ragionamento, suddividendo suggerimenti e problemi in passaggi. OpenAI mostra questo approccio attraverso un riepilogo del ragionamento che può essere visualizzato prima di ogni risposta.
Quando viene posta una domanda a o1-preview, riflette un po' e poi mostra quanto tempo ha impiegato per farlo. Se attivi il menu a discesa, vedrai alcuni ragionamenti. Ecco un esempio da uno dei miei test di codifica:
È positivo che l'intelligenza artificiale ne sapesse abbastanza per aggiungere la gestione degli errori, ma trovo interessante che o1-preview classifichi quel passaggio in "Conformità normativa".
Ho anche scoperto che il modello o1-preview fornisce più esposizione dopo il codice. Nel mio primo test, che ha creato un plugin per WordPress, il modello ha fornito spiegazioni sull'intestazione, sulla struttura delle classi, sul menu di amministrazione, sulla pagina di amministrazione, sulla logica, sulle misure di sicurezza, sulla compatibilità, sulle istruzioni di installazione, sulle istruzioni operative e persino sui dati di test. Si tratta di molte più informazioni rispetto a quelle fornite dai modelli precedenti.
Ma in realtà, la prova è nel budino. Sottoponiamo questo nuovo modello ai nostri test standard e vediamo come funziona.
1. Scrivere un plugin per WordPress
Questo semplice test di codifica richiede la conoscenza del linguaggio di programmazione PHP e del framework WordPress. La sfida chiede all'intelligenza artificiale di scrivere sia il codice dell'interfaccia che la logica funzionale, con la svolta che invece di rimuovere le voci duplicate, deve separare le voci duplicate, in modo che non siano una accanto all'altra.
Il modello o1-preview eccelleva. Presentava prima l'interfaccia utente solo come campo di immissione:
Una volta inseriti i dati e fatto clic su Randomize Lines, l'IA ha generato un campo di output con dati di output adeguatamente randomizzati. Puoi vedere come viene duplicata Abigail Williams e, in conformità con le istruzioni del test, entrambe le voci non sono elencate fianco a fianco:
Nei miei test su altri LLM, solo quattro dei 10 modelli hanno superato questo test. Il modello o1-preview ha completato perfettamente questo test.
2. Riscrivere una funzione di stringa
Il nostro secondo test corregge un'espressione regolare di stringa che era un bug segnalato da un utente. Il codice originale era progettato per verificare se un numero inserito era valido per dollari e centesimi. Sfortunatamente, il codice ammetteva solo numeri interi (quindi era consentito 5, ma non 5,25).
Il LLM o1-preview ha riscritto il codice con successo. Il modello si è unito a quattro dei miei precedenti test LLM nella cerchia dei vincitori.
3. Trovare un bug fastidioso
Questo test è stato creato da un bug del mondo reale che ho avuto difficoltà a risolvere. L'identificazione della causa principale richiede la conoscenza del linguaggio di programmazione (in questo caso PHP) e delle sfumature dell'API di WordPress.
I messaggi di errore forniti non erano tecnicamente accurati. I messaggi di errore facevano riferimento all'inizio e alla fine della sequenza di chiamate che stavo eseguendo, ma il bug era correlato alla parte centrale del codice.
Non ero il solo a lottare per risolvere il problema. Tre degli altri LLM che ho testato non sono riusciti a identificare la causa principale del problema e hanno consigliato la soluzione più ovvia (ma sbagliata) di modificare l'inizio e la fine della sequenza di chiamata.
Il modello o1-preview ha fornito la soluzione corretta. Nella sua spiegazione, il modello ha anche indicato la documentazione dell'API di WordPress per le funzioni che ho utilizzato in modo errato, fornendo una risorsa aggiuntiva per capire perché aveva formulato la sua raccomandazione. Molto utile.
4. Scrivere una sceneggiatura
Questa sfida richiede che l’intelligenza artificiale integri la conoscenza di tre sfere di codifica separate, il linguaggio AppleScript, Chrome DOM (come una pagina web è strutturata internamente) e Keyboard Maestro (uno strumento di programmazione specializzato da un singolo programmatore).
Per rispondere a questa domanda è necessario comprendere tutte e tre le tecnologie e il modo in cui devono lavorare insieme.
Ancora una volta, o1-preview ha avuto successo, unendosi solo a tre degli altri 10 LLM che hanno risolto questo problema.
Un chatbot molto loquace
Il nuovo approccio di ragionamento per o1-preview non diminuisce certamente la capacità di ChatGPT di superare i nostri test di programmazione. L’output del mio test iniziale del plugin WordPress, in particolare, sembrava funzionare come un software più sofisticato rispetto alle versioni precedenti.
È fantastico che ChatGPT fornisca passaggi di ragionamento all'inizio del suo lavoro e alcuni dati esplicativi alla fine. Tuttavia, le spiegazioni possono essere loquaci. Ho chiesto a o1-preview di scrivere "Hello world" in C#, la linea di test canonica nella programmazione. Ecco come ha risposto GPT-4o:
Ed è così che o1-preview ha risposto allo stesso test:
Voglio dire, wow, giusto? Ci sono molte chat da ChatGPT. Puoi anche sfogliare il menu a discesa del ragionamento e ottenere ancora più informazioni:
Tutte queste informazioni sono fantastiche, ma c'è molto testo da filtrare. Preferisco una spiegazione concisa, con opzioni di informazioni aggiuntive nei menu a discesa rimosse dalla risposta principale.
Eppure il modello o1-preview di ChatGPT ha funzionato in modo eccellente. Non vedo l'ora di vedere come funzionerà una volta integrato in modo più completo con le funzionalità GPT-4o, come l'analisi dei file e l'accesso al web.
Hai provato a programmare con o1-preview? Quali sono state le tue esperienze? Fatecelo sapere nei commenti qui sotto.
You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.