Io, ChatGPT e Lorenza

[This article was first published on A blog from Sydney, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Secca come una fucilata: “Ma tu non hai paura che ChatGPT ti rubi il posto di lavoro?”

Sento una lievissima fitta agli addominali, è colpa evidentemente della panca bassa che abbiamo fatto stamattina a yoga, ma significa anche che la domanda mi ha fatto contrarre i muscoli. Giunge quasi alla fine di una conversazione interessante su ChatGPT, su come può cambiare lo scenario del lavoro, sui mestieri che si estingueranno e sulle professionalità che resteranno in sella a questo cavallo imbizzarrito e artificiale di cui tutto parlano. Respiro un attimo, ci penso su, un altro respiro e poi: “Lorenza, no, non credo che ci rimetterò il posto…” ChatGPT non è preciso, lo hanno beccato a contraddirsi molte volte, ma questo è tipico del linguaggio naturale, di come comunicano gli umani, tutto un ripetere cose lievemente diverse, infarcendo di contesto, di cose implicite e incerte, dando per scontato che l’interlocutore capisca e riempia i buchi del discorso. È ovvio, se ci pensate, che sui dettagli ci contraddiciamo spesso, non fosse altro perché tagliamo corto e non ripetiamo tutto quello che, forse, logicamente dovremmo. Tiriamo via dritto, e le scorciatoie possono tralasciare i dettagli, sono fatte apposta. La maggior parte delle nostre imprecisioni non è grave, aiuta la sintesi e nessuno te le rinfaccia (certo, ci sono anche i rompicoglioni…). I politici sono casi esemplari: cambiano idea sin verguenza come banderuole, dicono anche fesserie monumentali e poi si scusano, a base di “non mi avete capito”, “non prendetemi alla lettera”, “avete estrapolato frasi senza contesto” (appunto, è semplre colpa del contesto!) e, per farla breve, li votiamo sempre nonostante le imprecisioni. “Ma io sono un matematico e la mia materia è una delle poche, pochissime, in cui la precisione estrema è l’essenza e la bellezza delle cose, non un’appendice cosmetica”. E continuo dicendo che non ho paura di ChatGPT nemmeno nel mio secondo lavoro, quello di insegnante: “Non mi può sostituire perché educare significa tirare fuori dagli studenti quello che sono, serve capacità di coinvolgerli, di motivarli, di accendere un fuoco. Non si tratta solo di passare contenuti, ci vuole sempre un supplemento d’anima”. ChatGPT non fa nulla di tutto questo, è uno zero nei confronti di un professore che ha letteralmente il potere di cambiarti la vita (se è bravo, d’accordo; ci sono anche quelli che ti fan venire il latte alle ginocchia!)

Eppure, la domanda m’inquieta. Lorenza scrive su un giornale locale, nella sua voce serpeggia curiosità, ammette di essere felice perché può scrivere di quel che le interessa (cosa rara, wow!) Fa le domande giuste, non cerca risposte semplici, memorizza la mia difficoltà a darle visioni e previsioni su quel che sarà, sorride all’altro lato della cornetta quando sparo che secondo me in 5 anni ChatGPT potrebbe avere già sostituito tutta una serie di lavoratori impegnati in mansioni intellettuali a bassa intensità, dato che altri intervistati le hanno detto che serviranno 10 o trent’anni.

La nostra bella conversazione finisce ma io continuo a mulinare cattivi pensieri: “ChatGPT, che diamine vuoi da me e dai miei studenti?”, mi chiedo.  Decido di prendere un problema da compito, un esercizio standard per i miei studenti di “Computational tools”, e di darlo in pasto all’AI: risolvi l’equazione x^3+x+1=0. A suo modo, non è un problema difficile, “x alla terza più x più uno uguale a 0”, ma non c’è una formula risolutiva semplice come per le equazioni di secondo grado, quella che a un certo punto della vita abbiamo imparato tutti (sorvolo sul fatto che ho detto un’imprecisione… Cardano abbi pietà ma non finirei più!)

Ogni computer dovrebbere risolvere quell’equazione di terzo grado “facilmente” e produrre il risultato. Vuoi vedere che da ora in poi i miei studenti mi possono fregare e trovare quel numero semplicemente chiedendo a ChatGPT?
solve the problem x^3+x+1=0

ChatGPT: Unfortunately, the equation x^3 + x + 1 = 0 does not have an algebraic solution that can be expressed in terms of elementary functions. This is because the equation is a cubic equation, and there is no general formula for solving cubic equations algebraically like there is for quadratic equations.

However, the equation can be solved numerically using numerical methods, such as the Newton-Raphson method or the bisection method. These methods involve iteratively refining an initial guess for the solution until it converges to the true solution.

Formulo il problema: risolvi un’equazione di terzo grado (8 maggio 2023)

È una bella filippica, fin qui tutto ok, ma non c’è ancora traccia della soluzione. Del numero, intendo.
Using the Newton-Raphson method, … the solution to the equation x^3 + x + 1 = 0 is approximately -1.324717957244746.
Resto senza fiato! Sto gran figlio (o figlia?) dell’intelligenza artificiale e di un computer ha trovato la soluzione! E così potranno fare i miei studenti, senza studiare un solo minuto. Sono destinato alla disoccupazione, preparate anche per me il nuovo reddito di cittadinanza!

Non mi resta che dirmi “finché c’è vita c’è speranza” ma decido, per puro scrupolo di controllare. Scrivo due righe in R, un altro programma di cui mi fido da decenni:
> f <- function(x) x^3+x+1
> uniroot(f,c(-2,0)) # trova la soluzione compresa fra -2 e 0
$root [1] -0.6823219
Vedo che la soluzione è -0.682. (sto arrontondando per risparmiarvi file di cifre). Ma ChatGPT aveva detto -1.325 e rotti… Un ghigno si scolpisce sulla mia faccia dato che ChatGPT, con grande faccia tosta, ha dato la soluzione sbagliata! Provo ad aiutarlo, se -1.325 fosse la soluzione dovrei ottenere che f(-1.325)=0.
compute f(x) with x= -1.324717957244746

ChatGPT: To compute f(x) with x = -1.324717957244746, we substitute this value of x into the function f(x) = x^3 + x + 1:

f(-1.324717957244746) = (-1.324717957244746)^3 + (-1.324717957244746) + 1

= -1.324717957244746

Therefore, f(-1.324717957244746) = -1.324717957244746.

Un altro pezzo di sessione (8 maggio 2023)

Ora, fidatevi, il ragionamento è giusto ma i conti sono tutti sbagliati e f(-1.324717957244746)=-2.649436. Riassumendo per i comuni mortali: ChatGPT sbaglia a trovare la soluzione e sbaglia pure a controllare se ha fatto giusto! Se fosse uno studente non se la passerebbe bene a questo punto. Provo a insistere, uso perfino un filo d’ironiaa, magari torna in sé:

that’s strange as i got f(-1.324717957244746) = -2.649436

ChatGPT: I apologize for my mistake. You are correct.

To compute f(x) with x = -1.324717957244746, we substitute this value of x into the function f(x) = x^3 + x + 1:

f(-1.324717957244746) = (-1.324717957244746)^3 + (-1.324717957244746) + 1

= -2.64943585095
Ci sono segni di ravvedimento: intanto si scusa, come un Salvini qualsiasi dopo che ha detto una vaccata, vabbuò! Poi fa il conto giusto (ma il risultato gliel’avevo già detto io), sempre meglio di nulla. Penso che forse ce la può fare e riattacco:
but you told me that f(-1.324717957244746)=0. can you try to solve the equation correctly?

ChatGPT si scusa un’altra volta e scrive questo sproloquio:

I apologize for the confusion and my previous incorrect answer. Here’s an attempt to solve the equation x^3 + x + 1 = 0 using Cardano’s method, which is a standard method for solving cubic equations:

First, we express the equation in the form x^3 = -x – 1:

x^3 = -(x + 1)

Next, we introduce a new variable y such that x = z – b/3, where b is the coefficient of the quadratic term, which is 0 in this case. This gives:

(z – b/3)^3 = -(z – b/3 + 1)

Expanding the left-hand side and simplifying, we get:

z^3 – 3bz^2/9 + 3b^2z/27 – b^3/27 = -z + 1/3

Multiplying both sides by 27 and simplifying, we obtain:

27z^3 – 27z + 9b^2z – b^3 + 3 = 0

Substituting b = 0, we get:

27z^3 – 27z + 3 = 0

Dividing both sides by 3, we obtain:

9z^3 – 9z + 1 = 0

Now, we need to find a root of this equation, which can be done using numerical methods such as the Newton-Raphson method. A root of this equation is approximately z = 0.4533976515.

Finally, we can obtain the three solutions of the original equation x^3 + x + 1 = 0 by using the formula x = z – b/3:

x1 = z – b/3 = 0.4533976515 – 0/3 = 0.4533976515 x2 = αz – β/3 = -1.088186771 – 0.5i x3 = αz – β/3 = -1.088186771 + 0.5i

where α = (-1 + sqrt(-3))/2 and β = (1 – sqrt(-3))/2 are the complex cube roots of unity.
Il punto è che z=0.4533976515, nuovamente, non è una soluzione! ChatGPT ci ha provato, e ha scritto una  rampegada che contiene polvere di verità anche se, per notarlo, devi essere un matematico. Insomma, non è uno studente brillante ma ci ha provato, sbrodolando sia cose corrette che errori. Forse “ragiona” e prende dai siti alcune informazioni giuste ma poi o non le capisce o le usa male e, invitabilmente, produce il risultato sbagliato, questo povero z=0.453 che non c’entra con il numero giusto -0.682 (che R aveva trovato subito).

È ora di concludere: i miei studenti dovranno studiare ancora un po’ o imparare altri trucchi dato che non si possono fidare di ChatGPT che le spara a raffica. Per ora nessuno mi ruberà la cattedra. Già, per ora: i sistemi di AI apprendono, si esercitano, a loro modo imparano dagli errori e forse proprio io, che pure l’ho preso per il culo, gli sto insegnando a risolvere le equazioni di terzo grado come si deve. E non è detto che, fra qualche settimana o mese, non riesca a darmi la risposta giusta con disinvoltura. Insomma, lo terrò sotto osservazione.

Continuo a pensare che su altri fronti ChatGPT sia ancora più indietro: forse un buon docente riesce a incuriosire gli studenti, forse gli fa capire a cosa serve quell’equazione, forse presenta esempi illuminanti e legati al rendimento dei BTP, forse qualcuno inizia a percorrere gli impervi sentieri della matematica computazionale e della programmazione proprio grazie alle lezioni. Forse. Ma temo serva umiltà anche qui e non è detto che fra un po’ ChatGPT non riesca ad essere simpatico e travolgente più di me e dei miei colleghi!

ps. In realtà il post non è finito e domani aggiungerò “Io, ChatGPT e Julia” perché questo esperimento mi ha dato una frustata e ho deciso che, in barba al fatto che sto invecchiando, insegnerò anche un altro di linguaggio di programmazione oltre a R. Non voglio inseguire un ChatGPT qualsiasi, è lui che deve rincorrere me!

ps2. Vi voglio anche raccontare un paio di altre cose “sbagliate” e di come ChatGPT si vada usato con cautela, le cantonate sono sempre in vista!   

To leave a comment for the author, please follow the link and comment on their blog: A blog from Sydney.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)