I modelli di OpenAI o1 e o1-mini sono i primi di intelligenza artificiale disegnati per “ragionare”. Adesso è il momento di comprendere cosa farci e le implicazioni per tutti noi.
Cominciamo da una prova approfondita di questi modelli a lungo attesi – da tempo si parlava di un progetto OpenAi nome in codice era Strawberry.
Il modello è disponibile per ora in anteprima agli utenti del servizio plus di ChatGpt.
O1 e o1-mini ragionano? Un esempio
Cosa vuol dire che questi nuovi modelli “ragionano”? Prima di cercare di capire i contenuti dell’annuncio proviamo a capire cosa vuol dire che il modello pensi ponendo un semplice problema e osservando come si comporta o1. Poniamo il seguente problema al modello o1:
“Siamo a cena in 13 ma sono 2 famiglie solo con un figlio e una mamma e una figlia e il resto sono coppie senza figli. Non volendo far pagare i figli se il conto totale è 1300 euro quanto deve spendere ciascuna famiglia?”
La risposta ha richiesto 28 secondi, e durante l’elaborazione l’interfaccia mostra i passi intermedi del ragionamento come mostrato nella seguente figura (in cui non sono riportati tutti):
La prima cosa a cui si pensa è che il modello segua una strategia cosiddetta “chain of thought”, una strategia che consiste nel risolvere un problema articolato spezzettandolo in sotto problemi e aiutando quindi il modello a “ragionare” per passi.
Ho formulato il problema volutamente in modo ambiguo per vedere come o1 avrebbe reagito, e l’analisi della composizione del gruppo è quella che avevo in mente come mostrato in figura:
Anche il calcolo segue l’istruzione di non far pagare i figli, ovverosia dividendo il costo solo tra gli adulti, e il modello correttamente svolge i conti come segue:
Come funziona o1 secondo OpenAI
Nell’articolo di presentazione del modello OpenAI spiega che questa nuova classe di modelli sono addestrati a costruire catene di pensieri prima di rispondere, provando durante il processo varie alternative nella ricerca della risposta.
Le statistiche dei benchmark, per quanto debbano essere considerate con attenzione, sono decisamente impressionanti: in un test per la qualificazione alle olimpiadi internazionali della matematica GPT-4o si limitava a risolvere correttamente il 13% dei problemi rispetto all’83% di o1.
Da un punto di vista della sicurezza il modello è stato addestrato per evitare comportamenti indesiderati, in un test interno volto durante un’interazione a forzare un comportamento indesiderato o1 ha ottenuto un valore di 84 su 100 rispetto al valore 22 che ottiene GPT-4o.
Non si trovano troppi dettagli sul funzionamento di o1 a parte confermare l’approccio basato su “chain of thoughts”, ma in un post più tecnico OpenAI discute la valutazione del modello o1 confrontando il funzionamento con competizioni umane relativamente alla programmazione, a domande che richiedono conoscenze da dottorato di ricerca.
Il comportamento di o1 rispetto a GPT-4o è decisamente superiore, soprattutto in quei contesti che richiedono più ragionamento che “memoria”. Non credo che sia un caso che nel test sulle domande per dottori di ricerca GPT-4o non si comporti così male rispetto a o1 nonostante quest’ultimo batta anche gli esperti. L’addestramento di un modello LLM lo espone a gran parte dello scibile umano e quando una domanda richiede prevalentemente ricordare un’informazione o un particolare schema di ragionamento è facile che l’output derivi da qualcosa che il modello ha visto durante l’addestramento.
Nelle competizioni dove il modello può fare meno affidamento sulla “memoria” e deve ragionare si osserva come GPT-4o sia decisamente inferiore quasi di10 volte rispetto a o1.
È anche interessante osservare come nell’articolo si distingua tra “o1 preview” e “o1” lasciando ad intendere come il modello appena rilasciato non sia quello completo.
Viene anche mostrato il miglioramento del modello nelle varie aree mostrando un chiaro miglioramento in matematica e fisica nel rispondere, probabilmente perché l’approccio CoT segue il processo deduttivo in modo più affidabile.
o1: qualche quesito più complesso
Quando ho provato il modello ho subito richiesto dimostrazione di teoremi matematici o di risultati tipici della Computer Science ottenendo risposte più che adeguate. Ma è anche vero che si tratta di risultati noti in letteratura e quindi viene da chiedersi se il risultato sia frutto del ragionamento o della memoria del modello.
Quesiti logici
Ho provato quindi un semplice problema di logistica che sicuramente non è presente in letteratura per capire come si comporta il modello:
“Senti ho pescato 5 casse di pesci, ho due mezzi uno che porta 1 scatola e l’altro 2 ma il primo ci mette 20 min per portarlo il secondo 35. Come mi conviene organizzare i viaggi?”
La domanda è controintuitiva poiché il mezzo più capiente è anche più lento e quindi alla fine conviene per minimizzare il tempo fare la maggior parte dei viaggi col mezzo meno capiente. La risposta è stata decisamente sorprendente:
La risposta di GPT-4o è decisamente più complessa oltre che sbagliata:
È però interessante notare come GPT-4o sbagli nella risposta nella valutazione numerica cercando di calcolare le scatole trasportate per ora e di fatto ottimizzando il numero di scatole che si muovono insieme piuttosto che il tempo complessivo.
Quindi sembra che la vera differenza tra i due modelli non sia la capacità nello svolgere il singolo passo di ragionamento ma nell’addestramento che o1 ha ricevuto necessario ad automatizzare il processo di CoT ovverosia nel rispondere spezzettando un problema in sottoproblemi e facendo un ragionamento per casi.
Mi aspetto quindi che, almeno finché o1 non sarà integrato con gli altri pezzi di tecnologia di OpenAI, come la capacità di usare python per fare calcoli esatti, che i quesiti di natura numerica lo indurranno in errore facilmente.
Ho provato a mettere in difficoltà o1 aggiungendo un altro elemento alla richiesta logistica:
“Senti ma se il mezzo che porta più casse consuma la metà di benzina rispetto al secondo e voglio ottimizzare sia costi che tempo cambia la risposta?”
La risposta è piuttosto articolata, ma gli elementi salienti sono:
“Sì, la risposta cambia se consideriamo anche il consumo di benzina. Dato che il mezzo che porta più casse (2 casse per viaggio) consuma la metà della benzina rispetto all’altro, conviene utilizzarlo di più per ridurre i costi del carburante, anche se questo potrebbe aumentare leggermente il tempo totale di trasporto.”
E in figura vediamo la conclusione con la conseguente raccomandazione:
Domande “matematiche”
Resta un solo aspetto importante da discutere sul nuovo o1: come si comporta quando viene stimolato con domande di natura scientifica?
Ho provato a far dimostrare una proprietà classica dell’informatica formale: che il linguaggio delle parentesi bilanciate non sia un linguaggio regolare ma imponendo che la dimostrazione usi la Macchina di Turing. Il risultato non è stato particolarmente soddisfacente, il modello si è sforzato di farci entrare la macchina in uno schema logico che, sebbene sostanzialmente corretto, non risponde ad una vera e propria dimostrazione. È altresì vero che imporre la macchina di Turing nel processo è stata una forzatura, e nella risposta è stato incluso il cosiddetto pumping lemma che è effettivamente necessario per la dimostrazione (domandando la dimostrazione della proprietà senza imporre l’uso della macchina di Turing ha prodotto una risposta decisamente migliore).
Ho infine chiesto di generare il programma di una Macchina di Turing che riconoscesse questo linguaggio (esempio (()()(()())) è una stringa valida perché tutte le parentesi sono bilanciate mentre )()()(()) non lo è). Il programma generato (ometto la dettagliata descrizione) è il seguente (per chi conosce il formalismo il quadratino è il blank):
Non mi voglio addentrare nella soluzione (che per altro non è quella che avrei dato io avendo diretto la gara nazionale di programmazione della Macchina di Turing per vent’anni ed avendo quindi una certa familiarità con la sua programmazione), ma si tratta di una soluzione corretta.
Il problema che invece voglio sottolineare è: chi controlla il risultato di un modello del genere? Credo si tratti di un aspetto centrale di modelli AI capaci di rispondere a problemi complessi: finora la verifica dell’output di una domanda ad un LLM richiede solo un po’ di sforzo ma non richiede conoscenze specialistiche. La mia esperienza con o1 è invece che per la prima volta possa servire uno specialista per controllare l’output del modello.
Ci si potrebbe allora chiedere quale sia il beneficio nel suo uso, la risposta che mi sono dato è che, se il modello è spesso corretto allora il costo di verifica è inferiore al costo computazionale di vagliare più ipotesi e selezionarne una corretta, ecco quindi che questa nuova generazione di modelli può davvero contribuire ad accelerare anche processi di ragionamento a patto che chi li usa abbia conoscenze adeguate per non subirne le conseguenze. Se infatti la soluzione di un semplice problema di logistica, anche se errata, non produce effetti significativi se il modello viene impiegato in contesti più delicati il suo uso acritico potrebbe portare a conseguenze indesiderate.
I limiti di O1
OpenAI o1 è uno dei primi segnali del fatto che i LLM potrebbero presto diventare dei compagni davvero utili per i ricercatori umani in campi non prettamente linguistici come la scoperta di farmaci, la scienza dei materiali, la codifica o la fisica.
Detto questo, è meglio prendere con le molle i paragoni di OpenAI con le “competenze di livello umano”, afferma Yves-Alexandre de Montjoye, professore associato di matematica e informatica all’Imperial College di Londra. È molto difficile confrontare in modo significativo il modo in cui i LLM e le persone affrontano compiti come la risoluzione di problemi matematici da zero.
Inoltre, i ricercatori di IA affermano che misurare la capacità di un modello come o1 di “ragionare” è più difficile di quanto sembri. Se risponde correttamente a una domanda, è perché ha ragionato con successo per arrivare alla risposta logica? Oppure è stato aiutato da un sufficiente punto di partenza di conoscenza incorporato nel modello? Il modello “è ancora insufficiente quando si tratta di ragionare in modo aperto”, ha scritto François Chollet, ricercatore di Google AI, su X.
I costi (alti) del modello
Ma anche il prezzo è un limite ora. Questo modello di ragionamento non è economico. Sebbene l’accesso ad alcune versioni del modello sia incluso negli abbonamenti premium di OpenAI, gli sviluppatori che utilizzano o1 attraverso le API pagheranno il triplo rispetto a GPT-4o: 15 dollari per 1 milione di token di input in o1, contro i 5 dollari di GPT-4o.
Il nuovo modello per altro non sarà la prima scelta della maggior parte degli utenti per i compiti più impegnativi dal punto di vista linguistico, dove GPT-4o continua a essere l’opzione migliore, secondo i sondaggi condotti dagli utenti di OpenAI.
O1 di OpenAI, il nostro bilancio
Ancora una volta OpenAI sposta l’asta e costringe tutti a inseguire, mentre i vari competitor si concentravano a realizzare modelli capaci di superare GPT-4o viene aperto un nuovo capitolo nella saga dell’AI generativa. Il nuovo modello sembra essere decisamente promettente ed è facile immaginare applicazioni, sia del modello preview che della versione o1-mini che sembra comportarsi molto bene con la generazione di codice.
Attendo con ansia di provare questa nuova classe di modelli quando sarà integrata con il data analyst, perché la capacità di ragionare nell’analisi dei dati potrebbe rivelarsi molto efficace nel processo di generazione di ipotesi alternative e interpretazioni.
Questa nuova classe di modelli apre però una nuova frontiera: sono possibili output sofisticati che richiederanno altrettante competenze per essere verificati.
Se la prima ondata di modelli poteva far pensare che studiare potesse essere superfluo, questa nuova ondata mostra che è socialmente importante produrre abbastanza esperti capaci di verificare gli output dell’AI, senza i quali corriamo il forte rischio di subirne completamente le decisioni.
Nel frattempo, sarà interessante osservare quali sistemi cominceranno ad utilizzare o1 preview o mini attraverso l’API. Da sviluppatore di Oraculum ho cominciato a riflettere su come introdurre più modelli e la loro selezione nel funzionamento di un assistente Sibylla.