Mi pare che la notizia secondo cui OpenAI ha creato un chatbot che “sa fare ragionamenti matematici e scientifici” non abbia avuto grande eco. Può darsi che ciò sia dovuto al fatto che OpenAI o1 – questo è il nome in codice del nuovo progetto – è disponibile solo per un selezionato gruppo di utenti, oppure perché a nessuno interessa davvero avere un sistema che sappia risolvere problemi matematici.
Devo dire che l’articolo del NYT è parco di informazioni. Pare che OpenAI o1 usi l’apprendimento per rinforzo, quindi “premiando” le successioni di passi logici rispetto a un risultato ottenuto di colpo. L’idea degli sviluppatori è che in questo modo ci si avvicinerebbe di più al pensiero umano. Io personalmente non sono molto convinto di questo approccio, che continua a nascondere sotto il tappeto il problema di base degli LLM: non è che avere un approccio passo passo faccia sì che il computer abbia un’idea di quello che sta facendo: per lui continua a trattarsi di un’emissione di simboli secondo una certa logica sintattica e non semantica. Certo, è vero che fare passi più brevi aumenta la probabilità che l’output del singolo passo sia corretta: ma visto che il numero di passi aumenta alla fine la probabilità di un’allucinazione è la stessa.
Il modo migliore per far risolvere problemi di matematica è quello di accorgersi che si parla di matematica e passare a un altro sistema “classico”: se la domanda è “quanto fa 48 per 75?” ci dovrebbe essere un metasistema che si accorge di star facendo un’operazione aritmetica e quindi buttare via tutto l’apprendimento standard, facendo piuttosto partire un sistema classico. Perché è vero che probabilmente ChatGPT ha visto quell’espressione in fase di addestramento e quindi ha la risposta, ma è anche vero che alla domanda “quanto fa 10048 per 13275?” i risultati non possono essere che sbagliati. Eppure il pattern dovrebbe essere chiaro, e quindi passare a un sistema aritmetico dovrebbe essere possibile senza troppe difficoltà: il chatbot continuerebbe a non “pensare”, qualunque significato si dia a questa parola nel caso degli esseri umani, e si troverebbe in difficoltà con un testo del tipo “ci sono 10000 soldati e 48 comandanti, ciascuno dei quali pattuglia una zona rettangolare di lati 59 e 225 metri. Se le zone non si sovrappongono, qual è la superficie totale pattugliata?” (Ho appena provato: ChatGPT 4o si dimentica i 10000 soldati…)
In definitiva, questi chatbot saranno anche più bravi di noi, ma ne hanno ancora di strada da fare.
Ultimo aggiornamento: 2024-09-18 22:19
Hum….
“quanto fa 10048 per 13275?” In effetti lo fa passando ad un metodo classico.
La domanda sulla pattugliazione la svolge così:
Per calcolare la superficie totale pattugliata, dobbiamo considerare che ciascuno dei 10.000 soldati e dei 48 comandanti pattuglia una zona rettangolare di lati 59 metri e 225 metri. Quindi, il numero totale di persone che pattugliano è:
10.000 \text{ soldati} + 48 \text{ comandanti} = 10.048 \text{ persone}
L’area pattugliata da ciascuna persona è:
\text{Area per persona} = 59 \text{ m} \times 225 \text{ m} = 13.275 \text{ m}^2
La superficie totale pattugliata è quindi:
\text{Superficie totale} = 10.048 \times 13.275 \text{ m}^2 = 133.387.200 \text{ m}^2
Risposta: 133.387.200 metri quadrati.
Ma i comandanti pattugliano ?
Nel mio esempio faccio sì che loro diano il buon esempio!
Oddio, ho scritto pattugliazione…. Hem … Ero appena svegliato….
Questo è o1? Allora in effetti è meglio.
Si, era o1
Si, si, o1
Questo è o1? Allora in effetti è meglio.
Hai scritto male il prompt… infatti una nota AI precisa che “Non c’è bisogno di considerare i 10.000 soldati in questo caso, poiché il calcolo riguarda solo le aree pattugliate dai comandanti.”
“In definitiva, questi chatbot saranno anche più bravi di noi, ma ne hanno ancora di strada da fare.” ehm… anche l’umano che prepara le domande… :-))))
capisco il punto, ma una AI mediamente intelligente avrebbe dovuto chiedermi cosa intendevo…
Uhmm, spero che nel futuro l’AI non mandi ad un corso obbligatorio chi non si spiega bene…
In realtà la versione gratis (che non è ancora o1) a volte fa i calcoli in modo molto preciso, usando python.
Per esempio, gli ho fatto calcolare la superficie pattugliata, facendogli notare che sia i soldati che i comandanti pattugliano, e alla fine ha calcolato in maniera errata 10.048 × 13.275.
Però se gli chiedo solo “calcola 10.048 × 13.275”, crea un mini codice python e restituisce il valore esatto.
Magari la versione o1 riconosce meglio i calcoli all’interno di una propria risposta e li svolge a parte, tramite codice.
P.S. Anche Claude (3.5 Sonnet) considera solo i comandanti, ma una volta chiarito l’equivoco svolge il calcolo correttamente.
Dovrebbe essere ovvio che i comandanti non siano un “di cui” dei soldati, e che la “non sovrapposizione” valga per una qualsiasi coppia di rettangoli, e non per l’unione dei rettangoli, o avresti voluto che preliminarmente ti avesse chiesto delucidazioni?
Qualunque scelta sarebbe stata sensata per me