Introduzione all’Intelligenza Artificiale

L’obiettivo di questo breve intervento, destinato ad un pubblico senza competenze tecniche specifiche, è di fornire un’introduzione per quanto possibile intuitiva, ma allo stesso tempo corretta e concreta, all’intelligenza artificiale, senza alcuna pretesa di affrontare il tema in tutta la sua generalità e complessità.

La nascita della disciplina

L’intelligenza artificiale (artificial intelligence – AI) nasce ufficialmente durante il Summer Research Project on Artificial Intelligence tenutosi al Dartmouth College (Hanover, NH) nel 1956. Il convegno fu preparato l’anno precedente sulla base di un documento programmatico redatto da quattro ricercatori che sono oggi considerati i padri fondatori della disciplina: John McCarthy (Dartmouth College), Marvin L. Minsky (MIT), Nathaniel Rochester (IBM), e Claude E. Shannon (Bell Laboratories). Si ritiene che il termine “intelligenza artificiale” sia stato coniato da John McCarthy. In realtà, l’intelligenza artificiale affonda le radici in ricerche iniziate in anni precedenti, ma solo nel 1956 ha ricevuto una definizione sistematica ed è stata fondata come disciplina scientifica.

Nell’introduzione del documento programmatico del 1955 si legge[1] : “The study [of artificial intelligence] is to proceed on the basis of the conjecture that every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it”. Questa congettura è la pietra miliare dell’intelligenza artificiale; non definisce le metodologie o i contenuti tecnici che caratterizzano la disciplina, ma propone una visione di ampia portata, la possibilità di descrivere ogni aspetto dell’intelligenza umana in modo così preciso che un calcolatore possa simularlo. Sebbene l’obiettivo sia ambizioso, si noti che non si pretende di realizzare macchine di per sé intelligenti o di riprodurre l’intelligenza umana nella sua essenza, ma solo di simularne le caratteristiche.

L’intelligenza dei sistemi “intelligenti”

A fronte di una disciplina che si pone un obiettivo così sfidante, sorge immediata e naturale la domanda se i prodotti dell’intelligenza artificiale – ovvero i sistemi “intelligenti” – siano realmente intelligenti.

Il tema dell’intelligenza dei sistemi digitali può essere introdotto prendendo spunto da alcune note sviluppate da Ada Lovelace2[2] nella prima metà dell’Ottocento a proposito della “macchina analitica”, precorritrice a tutti gli effetti del moderno calcolatore digitale. La studiosa immagina che la macchina analitica, oltre a calcolare espressioni aritmetiche, possa essere in grado di manipolare oggetti astratti e formule algebriche e, addirittura, di comporre musica, ma, allo stesso tempo, afferma perentoriamente “The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. […] Its province is to assist us in making available what we are already acquainted with.”[3], ponendo quindi un limite preciso alle capacità della macchina analitica. Circa cento anni dopo, il famoso matematico Alan Turing si pone la domanda fondamentale “Can machines think?” e manifesta una posizione più aperta rispetto a quella che lui stesso definisce “Lady Lovelace’s objection”. Sebbene dichiari di non avere argomenti convincenti per provare che una macchina possa pensare, tuttavia si mostra propenso a credere che nell’arco di cinquant’ anni sia possibile dotare un calcolatore di capacità molto vicine e forse superiori a quelle dell’uomo[4].

Alla radice posizioni tanto differenti c’è, innanzi tutto, un involontario equivoco linguistico. Le parole hanno significati diversi in contesti diversi: l’intelligenza delle macchine non è necessariamente l’intelligenza dell’uomo; la capacità di conoscere, di imparare e di agire autonomamente delle macchine non è necessariamente la stessa dell’uomo. Inoltre, va sottolineata la differenza fondamentale fra la capacità di fornire determinate prestazioni e il modo in cui tali prestazioni sono prodotte: sebbene i sistemi digitali siano in grado di produrre risultati osservabili paragonabili o addirittura superiori a quelli dell’uomo, questo non implica necessariamente che i processi interni che li hanno generati debbano essere della stessa natura di quelli che sottendono l’intelligenza umana. La capacità di un sistema di fornire prestazioni “intelligenti” non presuppone necessariamente che il sistema sia intelligente.

Quindi, i sistemi “intelligenti” sono intelligenti o no? La domanda è mal posta: dovremmo prima chiederci “intelligenti in che senso?”, considerato che non siamo nemmeno in grado di definire esattamente che cosa sia l’intelligenza dell’uomo.

Una definizione pragmatica

La definizione tradizionalmente accettata di intelligenza artificiale recita: “L’intelligenza artificiale è la disciplina che studia i fondamenti, le metodologie e le tecniche che permettono di costruire programmi che mettono in grado un calcolatore digitale di fornire prestazioni che, a un osservatore comune, sembrerebbero essere di pertinenza dell’intelligenza umana”.

È una definizione ampiamente condivisa e intuitivamente chiara ma, purtroppo, è una definizione debole. Anche i compiti più banali che un calcolatore sa svolgere, come calcolare la radice quadrata di un numero intero o mettere in ordine alfabetico un elenco di nomi, richiederebbero una certa dose di intelligenza se eseguite dall’uomo. La definizione tradizionale non permette quindi di distinguere in modo oggettivo le prestazioni intelligenti da quelle non intelligenti: o tutte sono intelligenti oppure nessuna lo è, e quindi l’attributo “intelligente” perde di significato.

In questo contesto assumiamo una definizione pragmatica, con un’angolatura strettamente tecnica: “Intelligenza artificiale è il nome collettivo con il quale si denota un insieme di tecniche di programmazione, diverse dalle tecniche tradizionali, appropriate per specifiche classi di compiti”. Coerentemente, i sistemi intelligenti sono semplicemente sistemi digitali che utilizzano tecniche di intelligenza artificiale.

Dalla programmazione tradizionale all’intelligenza artificiale

Per comprendere la definizione proposta è necessario introdurre alcuni concetti di base e chiarire che cos’è la programmazione tradizionale, dalla quale le tecniche di intelligenza artificiale si differenziano.

Iniziamo dai concetti di problema, algoritmo e calcolatore. Il termine problema denota una classe – spesso infinita – di domande che attendono una risposta e che costituiscono le istanze del problema. Ad esempio, il problema “Calcolare la radice quadrata di un numero intero” rappresenta la classe di tutte le istanze del tipo “Calcolare la radice quadrata di 2”, “Calcolare la radice quadrata di 3”, “Calcolare la radice quadrata di 4”, e di tutte le infinite altre possibili. Un algoritmo è un metodo, un procedimento strutturato costituito da una sequenza finita di istruzioni, per risolvere un problema, ovvero per dare risposta in modo sistematico a tutte le domande che esso rappresenta, per risolvere tutte le possibili istanze. Per esempio, un algoritmo per il problema della radice quadrata di un numero intero è il ben noto “metodo babilonese” che procede per approssimazioni successive o il complicato “metodo del calcolo in colonna” da eseguire con carta e penna.

Un calcolatore, infine, è un sistema digitale in grado di eseguire in modo autonomo qualsiasi algoritmo, ovvero di calcolare la soluzione di ogni istanza di un dato problema; un calcolatore è quindi un esecutore universale di algoritmi[5]. Affinché un calcolatore possa operare concretamente è necessario, tuttavia, che l’algoritmo da eseguire sia espresso in uno specifico linguaggio formale che la macchina sia in grado di interpretare, ovvero in un linguaggio di programmazione; un algoritmo codificato mediante un linguaggio di programmazione costituisce un programma.

La programmazione tradizionale è la modalità più intuitiva per risolvere un problema per mezzo di un calcolatore. A fronte di un problema, l’uomo deve, innanzi tutto, ideare un algoritmo appropriato per risolverlo e, successivamente, codificalo mediante un linguaggio di programmazione, ottenendo un programma. Deve quindi fornire al calcolatore il programma e i dati che individuano la specifica istanza di interesse e, infine, delegare l’esecuzione del programma al calcolatore, che opera in modo del tutto autonomo in accordo con le istruzioni ricevute e produce i risultati desiderati. Ad esempio, per calcolare la radice quadrata di 2, si deve trovare un algoritmo per eseguire la radice quadrata di un generico numero intero, codificarlo in un programma, fornire in ingresso al calcolatore il programma e il numero 2, avviare l’esecuzione, e attendere che il calcolatore produca in uscita il risultato 1,4142.

Resta solo un’ultima domanda: perché mai dovremmo ricorrere ad un calcolatore per eseguire un algoritmo? Il vantaggio è evidente: possiamo delegare ad una macchina – ad un agente artificiale – l’esecuzione di compiti complessi, che per noi sarebbero onerosi o difficili, spesso addirittura impossibili, liberandoci da un impegno. Non solo, il calcolatore è un esecutore estremamente affidabile: esegue esattamente tutte e sole le istruzioni ricevute e, tranne il caso in cui intervenga un guasto fisico, peraltro facilmente rilevabile, non sbaglia mai. Inoltre, è molto veloce, molti milioni di volte più veloce di noi. Il mondo di oggi non sarebbe nemmeno ipotizzabile senza i calcolatori.

L’approccio sul quale la programmazione tradizionale è basata è noto come approccio procedurale, in quanto la conoscenza necessaria per risolvere un problema è rappresentata in forma esplicita in una procedura, ovvero mediante una sequenza finita di istruzioni. A fronte di un problema da risolvere, l’approccio procedurale è possibile quindi solo se l’uomo è in grado di ideare un algoritmo appropriato e, ovviamente, di codificarlo in un programma.

È in questo quadro che si inseriscono le tecniche dell’intelligenza artificiale. Ci sono problemi la cui soluzione è basata su conoscenze ampie e articolate che difficilmente possono essere formulate in termini procedurali e racchiuse in un algoritmo. Non si tratta di problemi isolati o eccezionali; sono casi di grande interesse pratico come, ad esempio, la diagnosi di una patologia, la scelta di un protocollo terapeutico, l’analisi di alternative di investimento, l’argomentazione giuridica, la manutenzione di impianti industriali, il controllo di processi produttivi, la pianificazione di attività logistiche. L’intelligenza artificiale è nata per affrontare problemi come questi, che la programmazione tradizionale non è in grado di risolvere in modo soddisfacente.

Le tecnologie dell’intelligenza artificiale

Dagli anni Cinquanta ad oggi l’intelligenza artificiale ha avuto uno sviluppo tecnologico sorprendente, che possiamo sintetizzare in quattro approcci, ciascuno dei quali si articola al proprio interno in una molteplicità tecniche specifiche, la cui analisi esulta tuttavia degli scopi del presente lavoro[6]. Ogni approccio è ispirato ad uno specifico aspetto dell’intelligenza dell’uomo ed è caratterizzato dalla modalità in cui viene rappresentata la conoscenza necessaria per risolvere i problemi di interesse.

I quattro approcci brevemente illustrati nel seguito sono presentati in ordine cronologico e delineano le tappe principali dello sviluppo storico dell’intelligenza artificiale nei passati settant’anni. È tuttavia opportuno ricordare che le tecniche più recenti non hanno reso obsolete quelle precedenti. Tutti e quattro gli approcci sono di attualità e mantengono un loro specifico valore: ogni approccio è appropriato per alcuni problemi e non per altri e, nei casi più complessi, più approcci devono essere integrati per ottenere un risultato soddisfacente.

Approccio trasformazionale. L’approccio trasformazionale – meglio noto come teoria della risoluzione dei problemi (problem solving) – è basato sull’osservazione che un aspetto distintivo dell’intelligenza dell’uomo consiste nella capacità di affrontare in modo sistematico i problemi che gli si presentano, cercando di passare dal problema alla soluzione per mezzo di successive trasformazioni. La tecnica più rappresentativa dell’approccio trasformazionale è il metodo dello spazio degli stati, nel quale si assume che un problema possa essere risolto per mezzo dell’applicazione di un’opportuna sequenza di operatori che, partendo dal problema assegnato, lo trasformano in problemi progressivamente più vicini alla soluzione, fino ad ottenere esattamente la soluzione desiderata. Il metodo dello spazio degli stati è basato sulla teoria dei grafi: i nodi del grafo rappresentano i possibili stati del problema e gli archi gli operatori che trasformano uno stato in un altro. La risoluzione di un problema consiste quindi nella ricerca di un cammino, formato da una sequenza di operatori, che congiunga lo stato iniziale (il problema assegnato) allo stato obiettivo (la soluzione desiderata), passando attraverso stati intermedi che rappresentano successive trasformazioni del problema considerato[7]. Il pilastro su cui poggia il metodo dello spazio degli stati sono gli algoritmi di ricerca, in grado di trovare un cammino che congiunga il nodo iniziale con il nodo obiettivo nel grafo degli stati. Molti problemi concreti possono essere schematizzati e risolti con il metodo dello spazio degli stati; esempi tipici sono i giochi di scacchiera, nei quali è naturale individuare gli stati del problema nella configurazione dei pezzi sulla scacchiera e gli operatori nelle mosse che possono essere eseguite per muovere i pezzi, trasformando una configurazione in un’altra e cercando di progredire gradualmente verso la configurazione vincente. L’approccio è detto “trasformazionale” in quanto la conoscenza necessaria per risolvere i problemi di interesse è codificata negli stati e negli operatori che permettono all’algoritmo di ricerca di costruire la soluzione desiderata, trasformando progressivamente il problema nella soluzione. Se la rappresentazione del problema è corretta, l’approccio trasformazionale garantisce la correttezza della soluzione. L’approccio trasformazionale, sviluppatosi nel corso degli anni Settanta, ha prodotto i primi risultati convincenti dell’intelligenza artificiale, quali la capacità di giocare a dama o a scacchi a livello professionale, la pianificazione delle azioni di un robot, la costruzione di un itinerario fra diverse località, la gestione di un processo di lavoro. L’applicazione dell’approccio trasformazionale richiede che il problema di interesse possa essere rappresentato in accordo con uno schema specifico; il metodo dello spazio degli stati, ad esempio, impone che il problema sia descritto in termini di stati e operatori. Tuttavia, non tutti i problemi soddisfano i requisiti dell’approccio trasformazionale e quindi non tutti i problemi possono essere affrontati con questo approccio.

Approccio simbolico. L’approccio simbolico – meglio noto come approccio basato sulla conoscenza (knowledge-based) o approccio logico (logical reasoning)[8]– è basato sulla considerazione dell’abilità tipica dell’intelligenza dell’uomo di risolvere problemi utilizzando le conoscenze disponibili per mezzo del ragionamento logico. Il fondamento matematico dell’approccio simbolico è la logica formale, e in particolare la logica dei predicati, che permette di schematizzare, seppure in forma semplificata, la capacità dell’uomo di ragionare in modo corretto, in accordo con principi generali validi. L’approccio simbolico si basa sul metodo deduttivo, che consente di dedurre da una premessa generale e da una premessa particolare una conseguenza particolare; ad esempio: “tutti i corvi sono neri”, “Bob è un corvo” → “Bob è nero”. La conseguenza scende necessariamente dalle premesse e quindi, se le premesse sono vere, la deduzione garantisce la verità della conseguenza; tuttavia, la deduzione non amplia realmente la nostra conoscenza in quanto la conseguenza è, in un certo senso, già implicita nelle premesse. Una delle tecniche più note dell’approccio simbolico è il ragionamento basato su regole, nel quale la conoscenza del dominio al quale appartengono i problemi di interesse è costituita da un insieme di regole di produzione di validità generale della forma <IF condizione THEN azione>: se la condizione risulta vera in base a fatti noti o precedentemente inferiti (premessa) allora è possibile attivare l’azione, ovvero derivare la verità di un fatto nuovo (conclusione)[9]. Un problema è rappresentato da un insieme di fatti noti, che costituiscono i dati iniziali, e da un obiettivo da raggiungere. Il processo di risoluzione consiste quindi nella costruzione, mediante un appropriato algoritmo di ragionamento, di una sequenza concatenata di regole che, partendo dai fatti noti disponibili, arrivi alla soluzione: ogni regola (tranne la prima che si basa sui dati iniziali del problema) assume come premesse le conclusioni della regola precedente e ricava nuove conclusioni che saranno le premesse della regola successiva, fino a quando non viene generata la soluzione desiderata, ovvero un insieme di fatti che soddisfino l’obiettivo fissato. Il ragionamento basato su regole è una tecnica di ragionamento particolarmente intuitiva, in quanto molte attività di interesse pratico sono basate sull’applicazione di regole che suggeriscono le azioni da compiere al verificarsi di determinate condizioni, come, ad esempio, i processi decisionali, la progettazione, o la pianificazione. Per poter applicare l’approccio basato su regole è necessario, quindi, disporre non solo di un efficace algoritmo di ragionamento ma, soprattutto, delle conoscenze sulle quali l’algoritmo di ragionamento deve operare, rappresentate dall’insieme delle regole che caratterizzano il dominio di interesse. Tali conoscenze devono essere acquisite dagli esperti del settore, organizzate, codificate in un linguaggio formale opportuno e, infine, memorizzate in una base di conoscenza a disposizione dell’algoritmo di ragionamento. La capacità di un sistema a regole di risolvere problemi dipende in modo determinante dal contenuto e dalla qualità della base di conoscenza, la cui costruzione, tuttavia, non è per nulla banale: esplicitare e raccogliere le conoscenze degli esperti è un compito relativamente complesso e richiede tempi e costi significativi. L’approccio è detto “simbolico” in quanto la conoscenza necessaria per risolvere i problemi di interesse è rappresentata mediante simboli – parole, numeri o altri segni – che denotano entità concrete o astratte che sono i costituenti elementari dei fatti delle regole sui quali opera l’algoritmo di ragionamento. L’approccio simbolico, essendo basato su uno schema deduttivo valido, è in grado di garantire la correttezza del risultato, a patto che le conoscenze sulle quali opera siano a loro volta corrette. L’approccio simbolico ha visto un notevole successo negli anni Ottanta e Novanta con lo sviluppo dei sistemi esperti, in grado di affrontare compiti complessi in ambiti specifici del sapere, esibendo abilità eguali o addirittura superiori a quelle di un esperto umano; tipici esempi sono la diagnosi e la terapia medica, la consulenza finanziaria, la progettazione, la ricerca di guasti, la manutenzione di impianti, la gestione di processi industriali, la pianificazione. L’applicazione dell’approccio simbolico richiede che sia effettivamente possibile raccogliere dagli esperti un insieme di conoscenze sufficiente per risolvere i problemi di interesse. Come già sottolineato, la complessità e il costo della costruzione della base di conoscenza sono certamente un ostacolo all’utilizzo di questo approccio, ma in alcuni casi c’è un impedimento più radicale: gli esperti possono non essere in grado di fornire le conoscenze necessarie semplicemente perché non le hanno.

Approccio numerico. L’approccio numerico – più noto come apprendimento automatico (machine learning) – si basa sulla constatazione che l’intelligenza dell’uomo si manifesta, in alcuni casi, nell’abilità di risolvere problemi nuovi sfruttando la soluzione di problemi analoghi affrontati nel passato o di orientare il proprio comportamento futuro in accordo con il successo o il fallimento di azioni passate. L’approccio numerico si fonda su tecniche statistiche, in particolare sulla statistica inferenziale e sulle reti neurali, che permettono di costruire modelli di fenomeni complessi in condizioni di incertezza, riproducendo, almeno parzialmente, la capacità dell’uomo di ragionare con conoscenze incomplete basandosi sull’esperienza passata. L’approccio numerico è basato sul metodo induttivo, che consente di indurre da una serie di osservazioni particolari una conclusione generale; ad esempio: “Bob è un corvo ed è nero”, “Sam è un corvo ed è nero”, “Jack è un corvo ed è nero”, … … → “tutti corvi sono neri”. La conclusione non scende necessariamente dalle osservazioni (il prossimo corvo della serie potrebbe essere bianco) e quindi, anche se le osservazioni sono vere, l’induzione non garantisce la verità della conclusione, che può ritenersi vera solo fino a prova contraria; tuttavia, l’induzione amplia la nostra conoscenza in quanto la conclusione è nuova, non essendo implicita nelle osservazioni. La tecnica più conosciuta dell’approccio numerico è l’apprendimento supervisionato, che permette di affrontare problemi predittivi, come ad esempio la classificazione, che consiste nel determinare la corretta classe di appartenenza di una nuova entità sulla base di un complesso di caratteristiche che la contraddistinguono, sfruttando la conoscenza della corretta classe di appartenenza di un insieme di entità note, contraddistinte dalle medesime caratteristiche. Nonostante la definizione sia piuttosto astratta, la classificazione è un problema molto usuale che trova riscontro in una molteplicità di casi concerti, come, ad esempio, il riconoscimento di una patologia sulla base dei dati clinici e dei risultati degli esami diagnostici, la previsione del possibile malfunzionamento di un impianto industriale attraverso l’esame delle difettosità dei pezzi prodotti, o il riconoscimento degli oggetti presenti in un’immagine per mezzo dell’analisi di contorni, posizioni spaziali, forme e colori[10]. Il cuore dell’apprendimento supervisionato è costituito da un algoritmo di approssimazione parametrico, il cui funzionamento non è totalmente specificato dalle istruzioni di cui l’algoritmo si compone, ma dipende da un insieme di parametri, i cui valori dipendono a loro volta dal problema da risolvere. Per la soluzione di uno specifico problema i valori dei parametri vengono determinati per mezzo di un processo di addestramento automatico basato su un insieme significativo di casi noti. L’algoritmo di approssimazione, ricevendo in ingresso una sequenza di coppie <caratteristiche-classe> che rappresentano i casi noti, raffina progressivamente i valori dei propri parametri in modo tale che, a fronte di un caso nuovo identificato da un dato insieme di caratteristiche, sia in grado di attribuirgli una classe il più possibile coerente con le classi note dei casi utilizzati per l’addestramento che mostrano caratteristiche simili. L’algoritmo di approssimazione così addestrato prende il nome di modello, in quanto costituisce una rappresentazione astratta delle relazioni esistenti fra le caratteristiche delle entità considerate e le possibili classi di appartenenza. L’approccio è detto “numerico” in quanto la conoscenza sulla quale è basato è codificata nei valori numerici assegnati ai parametri dell’algoritmo di approssimazione. L’approccio numerico, essendo basato sulla statistica, non è in grado di garantire la correttezza dei risultati, ma solo di produrre risultati corretti con una certa probabilità; l’incertezza è intrinseca nei presupposti matematici. L’approccio numerico ha avuto un successo eclatante nel corso degli anni Novanta e nei primi due decenni del Duemila ed ha in parte eclissato i metodi precedenti. È alla base di innumerevoli applicazioni concrete, quali il riconoscimento di immagini, la prevenzione di frodi bancarie, la manutenzione predittiva, l’elaborazione di previsioni di vendita, la stima di fabbisogni energetici, la classificazione di patologie, il filtraggio di messaggi di posta elettronica inopportuni, l’identificazione di minacce alla sicurezza informatica, il riconoscimento e la sintesi vocale. Condizione necessaria per l’applicazione dell’approccio numerico è che sia disponibile un’adeguata raccolta di casi per l’addestramento; se i casi non sono sufficienti o non rispondono ai requisiti di qualità richiesti, l’approccio non può essere applicato.

Approccio linguistico. L’approccio linguistico – più noto come intelligenza artificiale generativa (generative artificial intelligence) – è basato sull’osservazione che una manifestazione primaria dell’intelligenza dell’uomo consiste nella capacità di comprendere e rispondere in modo pertinente a domande in linguaggio naturale. L’approccio linguistico si fonda su due pilastri: (a) l’ipotesi distribuzionale, secondo la quale le parole che si presentano in contesti simili tendono ad avere significati simili; (b) la semantica vettoriale, la quale assume che il significato di una parola possa essere rappresentato da una sequenza finita di numeri, tecnicamente un vettore numerico, ricavato dalla sua distribuzione statistica in un insieme di testi di riferimento, e che la similarità semantica fra due parole possa essere espressa come una funzione matematica dei rispettivi vettori. Sulla base di queste premesse, l’approccio linguistico sfrutta una complessa architettura neurale per realizzare un potente algoritmo di codifica e generazione, in grado di interpretare domande in linguaggio naturale e di generare risposte pertinenti in linguaggio naturale[11]. L’addestramento dell’architettura neurale utilizza un enorme insieme di contenuti digitali ricavati dal web (testi didattici, articoli scientifici, saggistica, letteratura, classici, pubblicazioni periodiche, enciclopedie, ecc.) e permette non solo di determinare i valori più appropriati dei parametri delle reti neurali, ma anche di costruire un’enorme base di dati in cui è memorizzato, parola per parola, sotto forma di vettori numerici, l’intero patrimonio linguistico utilizzato per l’addestramento. Il risultato è un modello linguistico di grandi dimensioni (large language model – LLM), che ingloba un vastissimo insieme di contenuti espressi in linguaggio naturale[12][13]. Il modello linguistico così realizzato può quindi essere utilizzato per rispondere a domande su qualsiasi tema sul quale sia stato addestrato: il sistema codifica mediante vettori le parole che compongono la richiesta dell’utente, ne analizza il contesto, ne identifica gli elementi salienti sui quali concentrare l’attenzione, ricerca nella base di dati i vettori statisticamente più appropriati per costruire la risposta e, infine, genera parola per parola la risposta più probabile in base alle conoscenze delle quali dispone. L’approccio è detto “linguistico” in quanto la conoscenza sulla quale è basato è codificata mediante elementi linguistici che rappresentano direttamente le parole del linguaggio. L’approccio linguistico, essendo basato su metodi statistici, non è in grado di garantire la correttezza delle risposte che genera: se i materiali utilizzati per l’addestramento sono adeguati e corretti e la richiesta è formulata in modo appropriato, allora esiste una certa probabilità che la risposta sia pertinente, corretta e accurata. Ma ovviamente, esiste anche la possibilità che la risposta sia poco pertinente, errata, generica, superficiale, distorta; addirittura, il sistema potrebbe produrre una “allucinazione”, ovvero una risposta coerente con la richiesta e apparentemente plausibile ma, purtroppo, definitivamente falsa, e ingannevole in quanto difficile da riconoscere da parte di un utente inesperto. I primi risultati dell’approccio linguistico risalgono al 2018[14] e il settore è attualmente ancora in rapida evoluzione. Nonostante sia una tecnologia non del tutto consolidata, l’intelligenza artificiale generativa è utilizzata in diversi casi di successo e offre nuove opportunità applicative, del tutto inimmaginabili fino a pochi anni fa; fra le altre: la traduzione automatica, la generazione di sommari e di presentazioni, l’analisi e la produzione di documenti, la ricerca di informazioni e la stesura di relazioni, la realizzazione di materiali didattici, la produzione di software, la costruzione di sistemi interattivi di supporto ad attività ripetitive o a compiti intellettuali complessi.

Tuttavia, va tuttavia tenuto presente che un modello linguistico di gradi dimensioni, essendo stato addestrato con un’enorme quantità di contenuti presenti nel web sugli argomenti più disparati, è per definizione un sistema generalista: conosce molto di tutto, ma probabilmente non ha le conoscenze necessarie per uno specifico compito. Per costruire un’applicazione concreta è quindi necessario specializzare un modello nel dominio di interesse e fornirgli le conoscenze mancanti mediante tecniche non banali e relativamente costose[15]. Infine, va ricordato che i modelli linguistici, non conoscendo il contesto nel quale una domanda ha origine e avendo capacità relativamente limitate di identificare i bisogni dell’utente, sono particolarmente sensibili a come una richiesta è formulata. Quindi, per utilizzare un sistema in modo efficace è opportuno seguire regole specifiche per la formulazione delle richieste, che permettono di guidare il sistema verso la costruzione della risposta più appropriata[16].

Opportunità e timori

Dal lontano 1956 ad oggi i progressi dell’intelligenza artificiale sono stati straordinari e hanno permesso lo sviluppo di una varietà applicazioni utili per le imprese, per i cittadini, e per la società. L’intelligenza artificiale ha aperto nuove opportunità e ha alimentato nuove aspettative, ma ha anche suscitato un crescendo di preoccupazioni. Le macchine intelligenti potrebbero minacciare la nostra salute, la nostra sicurezza e i nostri diritti fondamentali e, secondo alcuni, potrebbero addirittura mettere in discussione il nostro primato di esseri intelligenti e prendere il sopravvento. “Intelligenza artificiale” è un nome suggestivo, che evoca nell’immaginario collettivo scenari meravigliosi e allo stesso tempo terribili; l’intelligenza delle macchine affascina e spaventa[17]. In effetti alcuni motivi di preoccupazione sono oggettivi. L’intelligenza artificiale ha accresciuto in modo sorprendente la varietà e la complessità delle prestazioni di cui un calcolatore è capace e, di conseguenza, ha creato anche nuove possibilità di utilizzo irresponsabile, scorretto o malevolo. La generazione di sofisticati attacchi informatici, la diffusione di contenuti ingannevoli, le tecniche di manipolazione sociale, l’utilizzo di sistemi discriminatori che sfruttano la vulnerabilità di particolari classi di persone, la produzione di notizie false o contraffatte – i cosiddetti “falsi profondi” – sono solo alcuni esempi di pratiche illecite che l’intelligenza artificiale ha reso non solo possibili ma anche relativamente semplici da attuare[18]. L’intelligenza artificiale ha delegato al calcolatore compiti sempre più estesi e complessi che l’uomo ha difficoltà a controllare. L’utente non esperto non ha cognizione di come il sistema funzioni, né di come una soluzione sia stata ottenuta, né delle ragioni per le quali possa essere ritenuta corretta: l’effetto “scatola nera”, che in misura più o meno marcata caratterizza tutti i sistemi intelligenti, intacca la fiducia degli utenti ed è fonte di incertezza[19]. Tuttavia, è opportuno ricordare che l’intelligenza artificiale ha cambiato il modo in cui possiamo programmare un calcolatore, ma non ha modificato i principi fondamentali sui quali il concetto stesso di calcolatore è basato. Il calcolatore resta un mero esecutore di algoritmi progettati dall’uomo: non conosce il significato dei simboli che elabora né degli algoritmi con i quali li elabora, e non è autonomo nel proprio agire non essendo libero di determinare da sé le proprie azioni. La responsabilità delle scelte dalle quali dipende la possibilità di un’intelligenza artificiale sicura e affidabile è dell’uomo[20]: dell’imprenditore che concepisce un determinato prodotto, dei progettisti che lo disegnano, del produttore che lo realizza, degli utenti che lo utilizzano. Ma non solo; i sistemi intelligenti devono essere considerati in una prospettiva socio-tecnica più ampia, nella quale le macchine sono poste in relazione con la società che le utilizza e che, inevitabilmente, è soggetta ai cambiamenti indotti dal loro uso.

 

Nota: Il presente lavoro rielabora ed espande i contenuti della conferenza tenuta a Brescia l’11 ottobre 2024 nel contesto del ciclo di incontri “Intelligenza artificiale, intelligenza naturale, coscienza” promossi da Università degli Studi di Brescia, Cooperativa Cattolico-democratica di Cultura, Associazione di Studi Emanuele Severino, Fondazione Eulo (vedi www.ccdc.it). © Giovanni Guida, 2024

[1] John McCarthy, Marvin L. Minsky, Nathaniel Rochester, Claude E. Shannon. A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, August 31 1955. Riprodotto in: AI Magazine 27,4 (2006), 12-14.

[2] Augusta Ada Byron, contessa di Lovelace (Londra, 1815-1852), figlia di Lord Byron, fu una studiosa e matematica inglese. Lavorò intensamente allo sviluppo del progetto della “macchina analitica”, ideata dal matematico Charles Babbage (Londra, 1791-1871) negli anni Trenta dell’Ottocento.

[3] Ada Lovelace. Sketch of The Analytical Engine Invented by Charles Babbage – By L.F. Menabra of Turin, Officer of the Military Engineers from the Bibliothèque Universelle de Genève, October, 1842, No. 82. With notes upon the Memoir by the Translator Ada Augusta, Countess of Lovelace. Taylor’s Scientific Memoirs, August 1843, note G.

[4] Alan M. Turing. Computing machinery and intelligence. Mind 59 (1950), 433-460.

[5] In termini più rigorosi, un calcolatore è la realizzazione fisica, per mezzo di tecnologie digitali, di una Macchina di Turing Universale, una macchina astratta, introdotta nel 1936 dal matematico Alan Turing, dotata di un organo di controllo a stati finiti e di una memoria illimitata, in grado di eseguire qualsiasi algoritmo formalmente specificato. Si veda: Alan M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 2-42 (1936), 230-265. É utile sottolineare che, alla luce di questa definizione, un calcolatore non è propriamente un esecutore universale di algoritmi, in quanto non dispone di una memoria illimitata. Tuttavia, poiché è possibile dotare un calcolatore di capacità di memoria sufficienti per la maggior parte dei compiti di interesse pratico, questa circostanza non impone limitazioni particolarmente severe all’utilizzo di un calcolatore digitale.

[6] Una trattazione ampia e articolata delle principali tecniche dell’intelligenza artificiale è disponibile nel classico testo di Russell e Norvig, al quale si rinvia per ogni approfondimento: Stuart J. Russell, Peter Norvig. Artificial Intelligence: A Modern Approach. 4th edition. Pearson, 2021 (traduzione italiana: Pearson, 2022).

[7] Nell’ambito dell’approccio trasformazionale, oltre al metodo dello spazio degli stati, va citato anche il metodo della riduzione a sottoproblemi, basato su grafi particolari detti grafi AND/OR, nel quale il problema iniziale viene ripetutamente scomposto in sottoproblemi più semplici fino a quando non risulti ridotto a un insieme di problemi banali, dei quali è nota la soluzione.

[8] Verso la metà degli anni Ottanta si è diffuso il termine GOFAI (Good Old Fashioned Artificial Intelligence) per denotare l’approccio simbolico e distinguerlo dai più recenti risultati nel campo dell’apprendimento automatico.

[9] Oltre ai sistemi basati su regole, l’approccio simbolico include molteplici altre tecniche di ragionamento come, ad esempio, la programmazione logica, nella quale la conoscenza del dominio di interesse è costituita da un insieme di assiomi logici e la soluzione di un problema è interpretata come la dimostrazione di un teorema. Inoltre, tecniche più evolute affrontano i temi del ragionamento temporale e del ragionamento incerto, che sfuggono alla logica dei predicati e si basano sulle proprietà di sistemi logici particolari, come le logiche temporali, modali, incerte, sfumate, non monotone.

[10] L’apprendimento supervisionato si applica anche ad altri problemi predittivi come, ad esempio, la regressione, che permette di calcolare il valore di una funzione, della quale si conosce solo un insieme finito di punti, in corrispondenza di un nuovo valore della variabile indipendente. Inoltre, nell’ambito dell’approccio numerico rientrano non solo le tecniche di apprendimento supervisionato ma anche i metodi di apprendimento non supervisionato, che affrontano il problema del partizionamento di un insieme di entità in classi omogenee in modo tale che entità simili appartengano alla stessa classe ed entità dissimili appartengano a classi diverse, e i metodi di apprendimento per rinforzo, che adattano progressivamente le azioni di un sistema in base alla ricompensa o alla penalità ricevuta relativamente alle azioni precedenti, al fine di conseguire un dato obiettivo.

[11] L’elaborazione del linguaggio naturale non è l’unico compito che l’intelligenza artificiale generativa è in grado di affrontare. Un modello generativo può accettare richieste dell’utente che contengono una combinazione di testi e immagini e può produrre non solo testi in linguaggio naturale, ma anche immagini, animazioni, video, musica, voce, e codice di programmazione

[12] Per un’introduzione approfondita ai modelli linguistici di grandi dimensioni si veda: Daniel Jurafsky, James H. Martin. Speech and Language processing. An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models, 3rd edition draft. 2024.

[13] Mentre negli anni passati il numero di parametri dei modelli linguistici è stato costantemente crescente (significativo è l’aumento da 175 miliardi di GPT-3 a 1.700 miliardi di GPT-4), recentemente si è assistito ad una tendenza opposta, centrata sullo sviluppo di modelli di dimensioni inferiori con pochi miliardi di parametri, denominati small language models (SLM). I modelli di piccole dimensioni, pur mantenendo prestazioni soddisfacenti, sono più semplici e veloci da addestrare e sono in grado di operare con risorse di calcolo più contenute e con minori consumi energetici.

[14]  Il primo modello linguistico di grandi dimensioni apparso sul mercato è BERT (Bidirectional Encoder Representations from Transformers), realizzato dai ricercatori di Google nel 2018 e utilizzato dal 2020 come modulo linguistico del motore di ricerca Google Search. ChatGPT di OpenAI è ancora oggi il sistema più noto al grande pubblico: la prima versione è stata distribuita nel novembre 2022. Negli anni recenti sono stati sviluppati molteplici modelli linguistici di grandi dimensioni oggi disponibili sul mercato – alcuni anche in versione open source – con caratteristiche tecniche e funzionali diverse.

[15] Per la loro caratteristica di generalità i modelli linguistici di grandi dimensioni sono anche detti modelli fondazionali. Per specializzarli in domini applicativi specifici si utilizzano due tecniche principali. La prima, detta fine tuning, consiste in una fase supplementare di addestramento supervisionato con contenuti specifici del dominio di interesse. La seconda, detta retrieval augmented generation, prevede che, a fronte di una domanda, vengano forniti al modello contenuti specifici relativi alla richiesta ricevuta ricavati da una fonte attendibile, che il sistema utilizza per generare una risposta di migliore qualità; questa tecnica è particolarmente utile in domini caratterizzati da un’elevata variabilità, dove la disponibilità di informazioni aggiornate è importante.

[16] Poiché prompt è il termine generalmente utilizzato per indicare la richiesta dell’utente, le tecniche per formulare richieste efficaci sono dette prompt engineering.

[17] Nel 2006 James Moor, in occasione della conferenza tenutasi al Dartmouth College per celebrare i primi cinquant’anni dell’intelligenza artificiale, si chiedeva: “It is interesting to speculate whether the field [artificial intelligence] would have been any different had it been called “computational intelligence” or any of a number of other possible labels”. In effetti è innegabile che il nome “intelligenza artificiale” abbia influenzato pesantemente – e non sempre nel modo più opportuno – la percezione della disciplina da parte del grande pubblico e, talora, anche degli studiosi. Si veda: James Moor. The Dartmouth College Artificial Intelligence Conference: The Next 50 Years. AI Magazine 27,4 (2006), 87-91.

[18] Nel 2024 l’Unione Europea ha emanato l’“Artificial Intelligence act” che definisce un quadro normativo organico per regolare l’uso dell’intelligenza artificiale e “promuovere la diffusione di un’intelligenza artificiale antropocentrica e affidabile, garantendo nel contempo un livello elevato di protezione della salute, della sicurezza e dei diritti fondamentali […]”. Si veda il Regolamento UE 2024/1689, Regolamento sull’intelligenza artificiale, pubblicato sulla Gazzetta Ufficiale dell’Unione Europea il 12.7.2024.

[19] La capacità di spiegare come un certo risultato è stato prodotto e di giustificare perché ed entro quali limiti tale risultato possa essere ritenuto corretto è fondamentale per rendere i sistemi intelligenti più trasparenti agli utenti, e quindi più sicuri e affidabili. La spiegazione e la giustificazione sono uno dei temi di ricerca più attuali e sfidanti dell’intelligenza artificiale.

[20] Per un approfondimento dei temi fondamentali inerenti all’etica dell’intelligenza artificiale si veda: Luciano Floridi. Etica dell’intelligenza artificiale. Sviluppi, opportunità, sfide. Raffaello Cortina, 2022.