A cosa serve ChatGPT?

Nella discussione con una specie di umanista cronico (in Italia non esiste una cultura umanistica, ma solo una cultura antiscientifica), e' emersa una cosa. Come fanno in molti, sottopongono una macchina con un design specifico ad dei test a casaccio, e poi dicono "visto? Fallisce". E' come se prendessero una lavastoviglie, ci mettessero dentro i panni scuri, e poi si lamentassero perche' il lavaggio dei panni scuri e' fallito.

Il problema nella lettura delle AI "generative" e' essenzialmente che nessuno, sinora, si e' chiesto cosa siano state disegnate per fare. Per che cosa sono nate? Perche"? Perche' far parlare le macchine?

Qui entriamo in un problema essenzialmente commerciale. Sappiamo costruire macchine per fare tutto e macchine per automatizzare tantissimo, ma il problema e' che per usarle occorre personale specializzato. Il problema non e' la complessita' del compito, sia chiaro. Molti operatori ad una verniciatrice non sanno bene per quale motivo la vernice asciughi e si attacchi: serve un chimico, per questo.

Il problema e' l'interfaccia. E' un problema cibernetico ed ergonomico, cioe' di relazione tra uomo e macchina. E il motivo per cui le macchine faticano a diffondersi e' proprio questo: le interfacce consentono solo a persone qualificate, almeno un minimo, di usarle. 

Facciamo un esempio. Un'auto che si guida da sola. 

Come vi aspettate che funzioni? Come chiedete all'auto di andare in un dato posto?


Allora, voi arrivate a Tokyo. Uscite dalla stazione, e a quel punto prendete un taxi che guida da solo. Come lo azionate, di preciso?

Entrate nel taxi, e ... direte voi, cercate qualcosa che sembri un tablet , perche' pensate ci sia un navigatore. Voi. Mia madre invece vede un quadrato di vetro, in un'auto con la forma strana. Senza volante. E non ha mai usato un navigatore. Come si usa? Cosa deve fare? 

Ma una macchina che si guida da sola e' costruita per essere, idealmente, usata da chiunque, anche senza patente. Come un taxi. Dunque?

Il problema e' questo: vi manca un'interfaccia. Vi manca un'interfaccia tra voi e l'automobile. Ma supponiamo pure che abbiate mai usato un navigatore. Siete in Giappone. Sapete il giapponese? Qualcuno di voi. Ma non tutti. E come fate ad usare un tablet in giapponese?

Se avete gia' installato cose simili vi aspettate che ci sia una schermata iniziale ove scegliete la lingua. Aha. Sono solo 80 lingue tra cui scegliere, rappresentate da una bandiera. E voi conoscete tutte le bandiere del mondo. Vero? Ma conoscete la vostra, direte voi. Dipende. Molti sbagliano tra Italia e messico, alcuni tra Italia e Ungheria. Diciamo che non finite sull'ungherese.

A quel punto dovrete scegliere la lingua sperando che ci sia l'italiano (gia' in Germania nelle vending machine il turco e' piu' frequente dell'italiano) , e dopo... buona fortuna ad usare un navigatore giapponese. Magari siete bravi. Magari no.

E' un bel problema. L'interfaccia fa schifo.

Oppure, parlate al taxi. Semplicemente. Come fareste se ci fosse un tassista.

"Portami in via Kentaro Miura, al 666". E allora arriva qualcosa che, come ChatGPT, vi ascolta, capisce che lingua parlate, capisce cosa volete, e passa la cosa ad una macchina.

Quella che avete appena visto e' un'interfaccia uomo-macchina.

Certo, sarebbe bello se il taxi vi rispondesse: "Ho capito che vuoi andare in Via Kentaro Miura, al 666, e' corretto?". E se rispondete "si", allora il taxi parte.

Avete visto un'interfaccia uomo/macchina ancora migliore.

Adesso supponiamo che esistano due vie Kentaro Miura. Una a Tokio, e una a Hiroshima. La macchina potrebbe non capire dove volete andare di preciso. Cosi' potra' chiedervi: "Intendi dire la via Kentaro Miura di Tokio, o quella di Hiroshima?"

In questo caso, interfaccia ancora migliore.

La nostra auto che si guida da sola ha due componenti: una parte che chiamero' interfaccia, e una che chiamero' "business logic", addetta ad eseguire funzioni di utilita'. (il concetto nasce in economia, ma ora lo usano anche in robotica).

Come potete ben pensare, la funzione di una di queste macchine e' quella di capire un ordine ricevuto. Partendo dall'idea che chi fornisce un ordine, stia lavorando perche' esso venga capito. 

Ascoltare e capire. Per questo , come ho detto, ha questo "superpotere".

Da questo tipo di applicazioni dipende la capacita' , in futuro, di avere oggetti parlanti. Potreste chiedere al frigo se contiene insalata, per esempio. Senza aprirlo. Potreste chiedere all'auto di portarvi in un posto. Potreste chiedere informazioni ad una colonna in stazione, aereoporto, e tutto quanto.

Il limite alla vendita di oggetti smart ,che si sta osservando,  e' che nessuna interfaccia uomo/macchina funziona senza qualche competenza.

Magari per i giovani sembrano competenze scontate, ma non lo sono sempre.

A mia madre e' piaciuto moltissimo il mio robot che lava e spazza i pavimenti. Ma appena le ho detto che si aziona e si gestisce con una app, ha fatto un passo indietro. Le piace molto il fatto che la mia auto si ricordi come l'ho configurata, e quindi se cambia passeggero poi ritorna come prima. Ma non lo saprebbe fare usando lo schermo di bordo.

Questo e' il punto: per una nuova generazione di macchine abbiamo bisogno di una nuova generazione di interfacce. Facile a dirsi, non semplice a farsi.

Per prima cosa, come facciamo ad essere sicuri che la nostra macchina abbia capito la nostra richiesta? Possiamo fare due test:

  1. usiamo un chatbot e vediamo se la nostra macchina ha ascoltato e ricevuto , perche' verifichiamo che la risposta sia compatibile. 
  2. usiamo un software che genera immagini, per vedere se e quanto rappresenta quello che abbiamo descritto.

Il passo successivo e' mettere il transformer a creare degli embedding che anziche' andare ad un chatbot, vadano ad un'automobile, ad un robot per pulire i pavimenti, ad una casa intelligente, ad una macchina dentro una fabbrica, eccetera.

Perche'? Perche' quella e' un'interfaccia che qualsiasi essere umano puo' usare. Siccome abbiamo clamorosamente fallito nell'insegnare ad ogni persona come usare delle macchine, stiamo insegnando alle macchine come usare il linguaggio delle persone.


Per questa ragione sono nati i chatbot, e poi oggi stanno arrivando i LLM. Stanno arrivando per essere usati come interfaccia verso altre macchine che fanno cose. Per ora parliamo di chatbot e di sistemi che producono immagini. In futuro, saranno gli oggetti con cui parliamo. "abbassami la temperatura della doccia" e' un esempio di interfaccia tra voi e il rubinetto. Un LLM capira' cosa intendete, e tradurra' la cosa al rubinetto che poi regola l'acqua.

Per questa ragione si prevede un mercato immenso: sinora tutti i sistemi che cercano di automatizzare gli oggetti di uso comune hanno fallito proprio per mancanza di un'interfaccia davvero utilizzabile da tutti. Per fare un esempio, nessuno fara' mai auto che guidano da sole, sino a quando non sara' semplice ed efficace consentire a chiunque di usarle. E devono usarla tutti, altrimenti arriva il cieco che non vede bene la console, o il sordo che non sente la voce, e vi citano per danni, per aver perso il taxi. O si lamentano di una discriminazione. 

Esiste cioe' un collo di bottiglia che impedisce agli oggetti della vostra casa di diventare intelligenti, ed e' l'interfaccia con l'utente. 

La lingua che parliamo normalmente, con la sua capacita' di descrivere cose, anche molto visive, e' l'interfaccia perfetta. Le possibili applicazioni sono infinite.

Quindi, lo scopo di un modello di linguaggio non e' tanto quello di parlare con voi, o di chattare, o di farvi immagini, ma di manipolare il linguaggio in modo da avere chiara un'azione da compiere. 

E questo e' il punto: testare se ChatGPT possa davvero , che so io, risolvere un teorema per il vostro compito in classe non e' il lavoro di ChatGPT. Non e' costruito per questo. State chiedendo ad una lavastoviglie di pulire il pavimento. Non lo fara'. 

Occorre che sia capace di capire un vasto numero di richieste diverse, e tutto quanto chatGPT sa fare. Ed e' per questo che vi da' sempre l'impressione di avervi ascoltato: e' necessaria per interagire. 


Questo spiega per quale ragione e' un modello di linguaggio: esistono moltissimi tipi di AI. Nel caso dell'automobile, avreste un modello di AI per capire dove volete andare, e un modello di AI (con specifiche completamente diverse) per guidare l'auto. Entrambe sono AI. Ma non volete parlare con quella che gestisce la rotazione delle ruote.

Insomma, ergonomicamente parlando e' un'interfaccia, come il volante e la leva del cambio sull'auto, o la manopola della lavatrice: vi serve per fare in modo che la macchina si comporti come gli avete chiesto. Solo che glielo chiedete in linguaggio naturale. Parlando, o scrivendo.

Potete solo immaginare la quantita' di applicazioni che ha questa cosa.

Cose simili esistevano? Si'. C'e' chi dice che il primo strumento mai inventato sia stato una stampella. E forse ha ragione. Perche' i primi esperimenti di interfacce uomo/macchina capaci di capire cosa vuole dire un uomo esistevano gia'. 

Stephen Hawking hatte eine wunderbare Botschaft für alle, die an  Depressionen leiden - Business Insider

Servivano a Stephen Hawkins per comunicare. 

Questo e' un esempio estremo, ma serve a capire che la comunicazione e l'interazione tra uomo e macchina sono un campo complesso, ma utilissimo. Le macchine che consentivano ad Hawkins di comunicare potevano capire i muscoli di un muscolo della guancia non atrofizzato. E' un esempio estremo.

Ma ad un certo punto, la malattia peggioro' e lui ebbe difficolta' tremende anche in questo. A quel punto Intel, insieme a Swiftkey, sviluppo' un sistema "predittivo", per il quale ad Hawkins bastavano poche contrazioni per costruire la frase. All'epoca era un "semplice" markoviano.

Ma era sufficiente per essere l'interfaccia tra uomo e macchina, di cui Hawkins aveva bisogno. 


Che cos'e' successo, nel frattempo? E' successo che una Internet affamata di contenuti come commodity ha percepito che se interfacciamo un LLM con un chatbot, o con un programma che produce immagini, di fatto ripaghiamo l'investimento ancora prima che la novita' arrivi a destinazione. Internet ha fame di contenuti.

E qui arriva la reazione terrificata di alcune categorie. Ed e' probabilmente iniziato il piu' grande movimento tecnofobico della storia. Perche' un conto e' Ned Lud che distrugge il telaio automatico. Ma in quel momento il pittore della situazione se ne sbatteva. Il suo tempio non era in pericolo.

Adesso e' in pericolo.


Ma questo non era voluto: e' un effetto collaterale. E inatteso. Se ricordate, al momento dell'uscita di ChatGPT, la "next big thing" di cui parlavano tutti era il Metaverso. Non la AI. Elon Musk era addirittura uscito da OpenAI. 

Ma torniamo ai modelli di linguaggio. Cosa devono fare? 

Devono in qualche modo prendere cio' che dite e passarlo ad un'altra macchina. Sembra facile. Qui entra in gioco il Transformer, una tecnologia sviluppata inizialmente da Google. Il  Transformer ha come compito quello di trasformare le vostre parole in un "embedding". 

L'embedding è un vettore numerico che rappresenta una parola o un token all'interno di una frase. In un Transformer, l'embedding viene generato utilizzando una matrice di embedding, che assegna a ogni parola o token un vettore numerico denso di una determinata dimensione.

Quando una frase viene fornita in input all'encoder, ogni parola o token viene rappresentato dal suo embedding. Questi embedding vengono poi elaborati attraverso più strati di attenzione, che permettono alla rete di concentrarsi sulle parti più rilevanti della frase per l'elaborazione.

In sostanza, l'embedding è una rappresentazione numerica della parola o del token che tiene conto del contesto in cui si trova all'interno della frase. Questa rappresentazione numerica viene poi elaborata dall'encoder per generare una rappresentazione più ampia della frase stessa, che può essere utilizzata dal decoder per generare la sequenza di output desiderata. Questo "generare la sequenza di output desiderata" e' una fase di feed-forward, nel quale l'embedding viene di fatto "trasformato" in qualcosa che ha senso nel contesto. Ed e' questo che richiede l'uso di vettori densi addestrati su enormi quantita' di dati.

Qui viene il punto: il decoder puo' essere diretto verso qualsiasi cosa. La lavastoviglie, l'automobile, qualsiasi cosa sappia fare qualcosa per voi, compresi... voi. In quel caso, state chattando.

Ed e' questa versatilita' che, nel caso di un chatbot, ha sconvolto il mondo. Ma non e' disegnato per rispondere a quesiti logici. O per fare scienza. O come motore di ricerca.

E' disegnato all'unico scopo di prendere il linguaggio naturale e trasformarlo in un formato che le macchine possano usare agevolmente.


Tuttavia le persone lo hanno scambiato per una macchina che fa tutto, perche' nel suo significato comune AI indica una persona artificiale.E qui andiamo sulle abilita'. E' piu' bravo di un umano?  

In realta' ha un'abilita'. Essendo un tool specifico per i linguaggi naturali, eccelle nella manipolazione dei linguaggi naturali. (guess what?) Quindi si, non sa guidare un'auto a guida autonoma, ma puo' tradurre. 

Prendiamo un esempio che sto usando: tradurre libri. Quanto e' bravo ChatGPT3?

Dobbiamo per prima cosa dare una metrica alla bonta' della traduzione.

Uno dei principali indicatori è la "BLEU score" (bilingual evaluation understudy score), che valuta la qualità della traduzione automatica confrontando la traduzione generata dal modello con una o più traduzioni di riferimento prodotte da esseri umani. La BLEU score misura la similarità tra la traduzione generata e le traduzioni di riferimento, utilizzando una formula che tiene conto della precisione, della completezza e della corrispondenza lessicale tra la traduzione generata e quella di riferimento.

Altre metriche utilizzate includono la "METEOR score" (Metric for Evaluation of Translation with Explicit ORdering), la "TER score" (Translation Edit Rate) e la "WER score" (Word Error Rate).

Il fatto e' che i traduttori umani NON hanno tutti lo stesso score. Se distribuiamo i traduttori umani, ci saranno i migliori e i peggiori. Dai test condotti sinora, abbiamo che:

  • per traduzioni tra lingue ampiamente utilizzate e con testi di uso comune, GPT-3 potrebbe posizionarsi tra il 60% e il 80% dei test di traduzione umana disponibili in termini di qualità.

  • Per traduzioni tra lingue meno comuni o con testi tecnici, GPT-3 potrebbe posizionarsi tra il 40% e il 60% dei test umani di traduzione.

  • Per testi altamente tecnici o con esigenze di precisione molto elevate, GPT-3 potrebbe posizionarsi al di sotto del 40% dei test umani.

Notare che nei testi di uso comune ChatGPT3 (sul quattro ci sono poche misure sistematiche) possa battere nella traduzione dal 60% all'80% dei traduttori umani, e' significativo. 

Per esprimere meglio il problema: ma Dell-E quanto bene dipinge? Beh, meglio di me, certo. Meglio di Leonardo? Forse no. Ma il problema e': quanti sono inferiori e quanti superiori? Dove si mette in una scala da 0 a 100?

Il problema non e' se sia superiore o inferiore: sicuramente non disegnera' come Michelangelo, ma nemmeno io e nemmeno voi sapete disegnare come Michelangelo.


Per capire quindi le cose che ChatGPT sa fare non serve sottoporlo a compiti stupidi, nel senso che non si puo' andare oltre a quanto sa fare un modello LLM. Che non e' fatto per ragionare o per risolvere indovinelli logici o altre prove del nove che vedo in giro. 

Il problema e' che e' nato per fare una cosa: l'interfaccia uomo/macchina. 

Che e' disegnata per un compito preciso, quindi e' bene conoscerlo prima di usarlo. 

You should also read:

Cosa dicono di noi?

Se siete un expat, e parlate con "casa", una delle domande piu' seccanti che vi vengono rivolte e' "ma cosa si dice di noi?". Si tratta di un riflesso di quella cultura provinciale nella quale i vicini di casa passano il tempo a fare gossip. Quindi se esisti allora "gli altri" (s)parlano di te.