7 minute read

CHATBOT

In Quali Contesti

POSSONO ESSERE D’AIUTO?

Nel 1950 Alan Turing, padre dell’informatica, suggerì un semplice test, per determinare se una macchina fosse in grado di esprimere un comportamento intelligente: se un individuo, avendo la possibilità di porre domande sia a un altro essere umano che a una macchina, non fosse stato in grado di distinguere l’uno dall’altra, il test sarebbe stato superato. Dal primo test di Turing, a metà del secolo scorso, passando per Eliza e arrivando fino ai giorni nostri, andiamo alla scoperta di possibili applicazioni dei nuovi chatbot come chatGPT, di OpenAI.

Chatbot: il primo è Eliza

Per diverso tempo, il test di Turing ha rappresentato più un riferimento ideale che un obiettivo concreto: è Joseph Weizenbaum, nel 1966, a sviluppare Eliza, il primo esempio di chatbot, ovvero di software in grado di rispondere a messaggi, simulando una conversazione.

Weizenbaum programma ELIZA in modo da andare alla ricerca di una parola-chiave all’interno del messaggio inviato dall’utente. Sia la lista di tali parole che il loro ordinamento in termini di importanza, per ELIZA, sono determinati a priori: è proprio la presenza di una o più tra queste parole a consentire al chatbot di produrre un messaggio di risposta (apparentemente) coerente. Ad esempio, se all’interno del messaggio dell’utente è contenuta la parola “simile”, ELIZA risponde: “In che modo?”.

Generalizzando, possiamo dire che ELIZA lavora applicando regole. Non solo dal punto di vista dell’associazione tra la parola-chiave e la risposta, ma anche per quanto riguarda la sintassi della risposta stessa, che viene derivata, attraverso un altro insieme di regole (dette regole di trasformazione), dalla sintassi del messaggio dell’utente: più nello specifico, dalla parola-chiave e dalle parole che la circondano.

A fronte di un nucleo del messaggio del tipo “you [verbo] me”, la regola di trasformazione porterebbe a produrre una risposta “what makes you think I [verbo] you”, quindi, ad esempio, al messaggio “you like me” (“ti piaccio”) ELIZA risponderebbe “what makes you think I like you”, cioè “cosa ti fa pensare di piacermi?”.

I limiti di Eliza

Questa prima generazione di chatbot, inaugurata da ELIZA e basata in sostanza su una ricerca all’interno del testo, seguita dall’applicazione di un insieme di regole predefinite, è contraddistinta, come è facile intuire, da pesanti limitazioni.

L’approccio è difficilmente scalabile a diverse lingue: le parole-chiave, ma soprattutto le regole di trasformazione, studiate per la lingua inglese, ad esempio, non sono applicabili alla lingua italiana.

Anche al di là di questo, la limitazione più evidente è forse rappresentata dal caso in cui non si riesca a individuare, nella frase dell’utente, nessuna parola-chiave. A questo punto, il chatbot non può che rispondere facendo riferimento a una delle parole-chiave incontrate in passaggi precedenti della conversazione (se già ce ne sono stati) oppure inviare un messaggio generico, orientato soltanto a far proseguire la conversazione, come “capisco”, oppure “continua”.

Più che a un vero e proprio interlocutore quindi, questo primo esemplare di chatbot, di oltre mezzo secolo fa, può finire per somigliare a uno specchio: quanto al superamento del test di Turing, all’indistinguibilità cioè delle risposte del chatbot rispetto a quelle di un essere umano, quindi, rimaneva ancora molta strada da fare.

Da Eliza ad Alexa & Siri

Negli ultimi anni però, gli sviluppi del natural language processing, combinati alla crescente disponibilità di dati e risorse computazionali, hanno prodotto una notevole evoluzione nell’efficacia di tali strumenti, consentendo spesso anche un controllo vocale: pensiamo ad esempio a Siri o ad Alexa.

Ciò corrisponde a un cambio di paradigma: la generazione del messaggio di risposta non è più basata su regole predefinite, ma discende dall’applicazione di un modello, precedentemente addestrato attraverso tecniche di machine learning (apprendimento automatico).

Ad esempio, possiamo per prima cosa archiviare tutta una serie di scambi di messaggi che avvengono tra esseri umani: questo insieme di dati costituisce il nostro training set, che ci sarà utile per addestrare il modello

Spesso, la tecnica di machine learning che permette di costruire il modello è una rete neurale, costituita da diversi layer (ovvero, da diversi livelli). Ciascun layer elabora le informazioni in ingresso e ne costruisce di nuove.

Il primo layer riceve in ingresso l’informazione grezza (ad esempio, le parole che costituiscono il messaggio) e genera nuove informazioni, o feature, ciascuna delle quali non

CHATBOT: CONTESTI

rappresenta più soltanto una parola, ma un piccolo contesto, all’interno del messaggio. A loro volta, tali feature possono costituire l’input di un layer successivo, e così via. L’ultimo layer della rete genera, infine, l’output desiderato: ad esempio, il messaggio di risposta.

Il comportamento dei layer è regolato da una serie di parametri liberi. Addestrare la rete neurale significa determinare i valori ottimali per tali parametri. Questi valori sono ottimi se permettono di essere quanto più precisi possibile nel ricostruire, dati i messaggi già noti, le risposte effettivamente fornite.

Più nello specifico, alcuni esempi di messaggio-risposta vengono in genere esclusi dal training set (che identifica, come già accennato, l’insieme di dati utilizzati per addestrare il modello) e costituiscono un set di valutazione, o test set. Si misurerà, e ottimizzerà, la precisione del modello nel ricostruire in particolare le risposte incluse proprio nel test set, per avere un’idea di quanto efficacemente il chatbot potrà rispondere a messaggi mai visti prima.

In questo caso, infatti, l’algoritmo non segue una serie di direttive predeterminate ma lavora, diciamo, per imitazione. Ciò consente ai chatbot basati su questa impostazione di avere migliori capacità di generalizzazione, potendo riconoscere, attraverso il modello, casi simili ma non identici a quelli osservati in fase di addestramento.

Naturalmente, il modello sarà tanto più efficace quanto più crescerà la dimensione e la rappresentatività dei dati forniti per l’addestramento, così come le risorse computazionali a disposizione per estrarre e applicare il modello con tempi di risposta tali da consentire di simulare una conversazione.

New generation chatbot, l’irruzione di ChatGPT Complice la crescente disponibilità di dati e di potenza computazionale, osserviamo come il 30 novembre 2022 potrebbe segnare un’altra pietra miliare nella storia dei chatbot: OpenAI, società fondata da Elon Musk e Sam Altman, rilascia la prima versione del software ChatGPT che, di lì a poco, sarà sulla bocca di tutti, nel mondo degli addetti ai lavori e non solo.

ChatGPT si basa sui modelli GPT-31 (Generative Pre-trained Transformer 3), che consentono, attraverso una tecnica nota come Transformer, di realizzare un primo livello di apprendimento della struttura di testi in modo non supervisionato. È prevista, comunque, anche la possibilità di un’ottimizzazione successiva, basata sul feedback umano.

Il modello di linguaggio sviluppato da OpenAI per ChatGPT è stato addestrato su centinaia di terabyte di testo (un cosiddetto Large Language Model), con l’obiettivo, potremmo dire, di costituire l’evoluzione del sistema di completamento automatico del testo presente sui nostri smartphone. Non si tratta soltanto di prevedere o correggere la parola che stiamo per digitare, ma il principio si estende a un intero messaggio o all’intera risposta a una domanda, anche complessa, consentendo così di sviluppare una conversazione. A testimonianza della qualità dell’applicazione, gli annunci di Microsoft relativi all’integrazione di ChatGPT con il motore di ricerca Bing e il browser web Edge2, così come con la versione Premium della piattaforma di comunicazione (chat, teleconferenza, condivisione contenuti) Teams3

A impressionare è stata soprattutto la fluidità dei contenuti generati, anche in chiave apparentemente creativa. Ad esempio, c’è chi ha chiesto a ChatGPT non soltanto di trovare e descrivere errori all’interno di un breve tratto di codice di programmazione, ma anche di proporre la trama di un videogioco, o di comporre brani per pianoforte, nello stile di Mozart. Anche altre aziende e altri gruppi di programmatori sembrano intenzionati a raccogliere la sfida, ed è probabile che questo sia solo l’inizio di una transizione: citiamo ad esempio Bloom, come Large Language Model open-source4

Anche Bard, la risposta di Google a ChatGPT, nonostante una falsa partenza (il motore ha risposto in modo errato, durante la presentazione ufficiale, riguardo le scoperte del telescopio James Webb), sembra voler lottare per il primato in questo ambito5

1 “Language Models are Few-Shot Learners”, Tom B. Brown et. Al., NeurIPS 2020

2 https://blogs.microsoft.com/blog/2023/02/07/reinventing-search-with-anew-ai-powered-microsoft-bing-and-edge-your-copilot-for-the-web

3 https://www.microsoft.com/en-us/microsoft-365/blog/2023/02/01/ microsoft-teams-premium-cut-costs-and-add-ai-powered-productivity

4 “

BLOOM: A 176B-Parameter Open-Access Multilingual Language Model”, Teven Le Scao et al, arXiv preprint 2022; https://huggingface.co/bigscience/bloom

5 https://www.ilpost.it/2023/02/09/errore-bard-google-james-webb-space-telescope

Quali curiosità sono richieste oggi alla chatbot

In un certo senso, potremmo dire che strumenti come ChatGPT, una nuova generazione di chatbot, si occupano, più che di linguaggio, di linguaggi. Non soltanto la lingua della comune conversazione, ma anche i linguaggi di programmazione, o il linguaggio musicale. E, anche all’interno della comune conversazione, si è osservata, con curioso divertimento, la possibilità per il chatbot di rispondere con diverso stile, a seconda della richiesta dell’utente.

C’è chi si è sbizzarrito, ad esempio, chiedendo al chatbot di spiegare un concetto informatico (lo stack HTTPS), ma mettendosi nei panni di un cowboy di un vecchio western6. E l’incipit della risposta, tradotta in italiano, suona grosso modo come: «Ok, ora ti spiego lo stack HTTPS come un cowboy di un vecchio western. Lo stack HTTPS è come un treno che si fa strada nel selvaggio West. Il treno ha diversi vagoni e ciascuno ha un suo scopo. Il primo vagone è l’application layer, dove sta il tuo browser…» e così via, il concetto viene spiegato attraverso un paragone e uno stile che, effettivamente, fanno riferimento al cliché del Far West.

Naturalmente, esistono anche casi di insuccesso, che sono archiviati in un repository dedicato, per consentirne l’analisi, in una logica di miglioramento continuo7 Malgrado ciò, e prescindendo dai singoli esempi, la ricchezza linguistica fa riflettere su come, una volta apprese con buona approssimazione le meccaniche del linguaggio dagli umani, le macchine ora potrebbero dare un contributo a insegnarle.

Migliorare la propria capacità di esprimersi in una lingua straniera, in primis l’inglese (rispetto a cui, naturalmente, il volume di dati di training è particolarmente esteso), ad esempio, è una necessità molto diffusa, specialmente in ambito scientifico, nelle cosiddette discipline Stem (Science, Technology, Engineering and Mathematics). Questa nuova generazione di chatbot sembra in grado, ad esempio, di rivedere un testo, fornendo feedback sugli errori effettuati.

A questo proposito, in conclusione, una piccola domanda da tenere nel cassetto, qualora si decidesse di divertirsi con la lingua inglese durante le proprie interazioni con ChatGPT: “Can you suggest phrasal verbs or vocabulary to use in this text?”, ovvero “Puoi suggerirmi alcuni phrasal verbs (alcune costruzioni sintattiche cioè il cui significato dipende, e potremmo dire viene acquisito, a seconda del contesto della frase), da inserire in questo testo?”. La risposta a tale domanda, seguita da una verifica, può rappresentare un’occasione per imparare qualcosa di nuovo, per dare un tocco in più di familiarità e chiarezza al proprio testo, oltre che per poter riconoscere quelle stesse espressioni in futuro, leggendo un testo o durante un dialogo. Magari anche senza più l’ausilio del chatbot che abbiamo così “aiutato ad aiutarci”.

6 https://beebom.com/wp-content/uploads/2022/12/using-chatGPT-toexplain-topics-in-funny-ways.jpg?quality=75&strip=all

7 https://github.com/giuven95/chatgpt-failures

This article is from: