L’Intelligenza artificiale generativa: su cosa si fonda

Uno dei problemi che affligge i modelli di intelligenza generativa è quello dell’allucinazione. Vale a dire che, talvolta, quando non hanno abbastanza informazioni o incontrano sequenze dove la risposta “corretta” non è quella più probabile inventano una risposta che sembra plausibile ma non corrisponde a quella corretta.

Nonostante l’Intelligenza Artificiale sia ormai presente nella vita quotidiana da molto tempo (navigatori satellitari, raccomandazioni della pubblicità in motori di ricerca, autocorrettori ortografici, riconoscimento della voce, …) negli ultimi anni abbiamo assistito ad un crescente interesse dovuto alla esposizione al grande pubblico di quella che viene chiamata Intelligenza Artificiale Generativa e dei cosiddetti “Large Language Models” (LLM).  GPT e ChatGPT sono le punte di diamante di questa tecnologia. L’idea fondamentale di questa tecnologia è: dato un input, diciamo una sequenza di parole, e un contesto o situazione dove l’input occorre, determinare in maniera statistica quale è la più probabile continuazione della sequenza di parole a partire dalle parole e dal loro ordine nel testo di input. Sostanzialmente non è differente da quanto avviene con i nostri dispositivi mobili e computer quando scriviamo del testo, quando in base alle lettere iniziali di una parola ci vengono suggerite varie possibili continuazioni. Nei nostri cellulari le continuazioni più probabili dipendono dalle lettere inserite, i messaggi precedenti, e il dizionario. La differenza tra i nostri dispositivi mobili e GPT è la quantità di dati con cui GPT è addestrato e la lunghezza dell’input, generalmente una domanda o del testo che costituisce parte del contesto.

Grazie a investimenti notevoli (nell’ordine di miliardi di dollari) i principali LLM sono stati addestrati con quantità di dati assolutamente enormi e hanno dimostrato capacità e prestazioni (apparentemente) fenomenali.  Questa è una delle caratteristiche che accomuna sistemi di IA generativa e altre IA: tutti questi sistemi fanno estremamente bene l’attività per cui sono stati creati, ma non sono in grado di operare in altre attività. Per esempio, bot di scacchi che usano ChatGPT sono facilmente battibili da giocatori di scacchi intermedi, mentre i programmi più avanzati per giocare a scacchi battono facilmente i migliori giocatori al mondo.  Nel caso di GPT e ChatGPT l’attività per cui sono stati sviluppati e addestrati è quella di generare del testo in linguaggio naturale che sia grammaticalmente corretto, stilisticamente adeguato e che risponda in maniera apparentemente convincente al prompt dell’utente come se fosse fornito da persona competente sull’argomento. A tale scopo vengono anche usati dei “trucchi” ingegneristici. Per esempio, quando forniscono una risposta, simulano il processo di digitare un testo, mentre, invece, la risposta potrebbe essere fornita in maniera completa instantanemente (come normalmente avviene con i motori di ricerca).  Questo dà l’impressione a un utente di dialogare con il sistema, e fornisce una maniera estremamente semplice e intuitiva per interagire con un computer.

La facilità di uso e l’abilità di generare testo stilisticamente adeguato (e apparentemente competente) hanno innescato una crescente domanda per l’adozione di sistemi di IA da parte di aziende, con l’aspettativa di fornire soluzioni a problemi che richiedono precisione e capacità di ragionamento. Purtroppo, per come operano questi modelli di IA generativa, non è fattibile con modelli che usano i LLM da soli.

Come abbiamo già accennato questi modelli si basano su modelli statistici e probabilistici per stabilire quale è la continuazione più probabile in una sequenza di parole, basandosi sui dati con cui questi modelli sono stati addestrati. Uno dei problemi che affligge questi modelli è quello dell’allucinazione.  Vale a dire che, talvolta, quando non hanno abbastanza informazioni o incontrano sequenze dove la risposta “corretta” non è quella più probabile inventano una risposta che sembra plausibile ma non corrisponde a quella corretta.  Si narra di casi in cui aziende hanno usato questi modelli per rispondere a domande dei loro clienti, talvolta producendo risposte corrette, ben scritte e ben argomentate, e talvolta rispose sbagliate (ma con le stesse competenze linguistiche delle risposte corrette), e talvolta i modelli insistevano a rivendicare la loro correttezza con argomenti apparentemente corretti ma sostanzialmente falsi. Il problema è che, in generale, utenti non esperti nella materia non sono in grado di distinguere una risposta corretta da una incorretta.

L’abilità di questi modelli di ricevere un input in linguaggio naturale e di fornire una risposta sensata in linguaggio naturale sembrerebbe indicare che i modelli siano in grado di “capire” il significato dell’input e della risposta. Purtroppo, come abbiamo accennato non è così. Si tratta “semplicemente” di una associazione statistica probabilistica tra il vettore generato dalle parole in input e il vettore delle parole in output, effettuata usando i dati forniti durante la fase di apprendimento. I modelli non generano una rappresentazione semantica (formale e non ambigua) dei testi. Miriadi di aneddoti raccontano come questi modelli falliscano nel fornire risposte adeguate a semplici indovinelli e quesiti che richiedono minime capacità di ragionamento: per esempio, se si chiede a ChatGPT “se tre imbianchini imbiancano tre case in tre ore, quanto impiegano nove imbianchini ad imbiancare nove case?”  la risposta di ChatGPT è 9 ore, mentre la risposta corretta è 3 ore.[1]

D’altro canto, i sistemi che usano i LLM hanno dimostrato di essere estremamente efficienti nel trattamento del linguaggio naturale e per attività come la sintesi e parafrasi di testi, la generazione di testi a partire da dati e così via. Sono eccezionali per scrivere e leggere (e sintetizzare) documenti che, come umani, non vogliamo né scrivere né leggere (per esempio rapporti, o lettere di presentazioni per domande di lavoro, e perché siamo ancora costretti a scriverli, sic!), ma anche per interagire con un computer.

Questa veloce discussione ha identificato alcuni limiti dei modelli di IA generativa. Questi modelli, da soli, non sono adeguati per applicazioni che richiedono precisione, accuratezza, correttezza, trasparenza e dove la risposta dipende da processi decisionali che richiedono capacità inferenziali.  Pertanto, da soli non possono essere applicati in domini come la sanità, finanza, giustizia, e in generale infrastrutture critiche.  Per questi domini abbiamo bisogno di sistemi di IA che usano logica e linguaggi formali che garantiscono correttezza, accuratezza e precisione.  Allo stesso tempo, dobbiamo riconoscere i vantaggi dello sviluppo dei modelli di IA generativa e usarli a nostro beneficio. La ricerca e lo sviluppo futuro deve basarsi sulla combinazione di modelli statistici probabilistici e di apparati formali e logici, dove la parte di IA generativa serve a raccogliere gli input e possibilmente a fornire un nuovo approccio per l’interazione uomo-macchina. Quindi l’input viene trasformato via IA generativa in una rappresentazione formale, che può essere quindi analizzata e trattato con modelli formali/simbolici. Infinite, l’output formale, viene presentato di nuovo all’utente umano in linguaggio naturale generato dai modelli basati su LLM.

Abbiamo accennato al potenziale rischio dell’uso di sistemi IA in particolari domini e applicazioni. A tale proposito, bisogna considerare che l’Unione Europea sta per approvare l’Artificial Intelligence Act[2]  (EU AI Act) che proibisce l’uso di sistemi di IA per alcune applicazioni contrarie ai principi fondanti per la tutela delle persone e dei loro diritti nell’Unione Europea e impone requisiti di conformità per sistemi di IA ad alto rischio (per garantire le caratteristiche di precisione, correttezza, accuratezza, trasparenza…) per poter operare in Europa. Conseguentemente, un’altra area di ricerca è come creare sistemi (di IA) per garantire che (altri) sistemi di IA siano conformi con la legislazione vigente a proposito.

Una possibile proposta di lavoro per verificare la conformità di un sistema di IA è di provare a riutilizzare e adattare tecniche utilizzate per certificare la conformità ai processi produttivi (business processes). Brevemente,  si tratta di:

  • tradurre la legislazione vigente in un linguaggio formale e usare logiche appropriate per stabilire quali sono i requisiti legali vigenti per un sistema di IA in una data situazione
  • utilizzare i log del sistema IA per identificare la struttura del processo indotta dal sistema di IA
  • usare i risultati di 1) e 2) per determinare se i requisiti legali sono stati soddisfatti o no.

In generale 1) offre le caratteristiche di correttezza, accuratezza, trasparenza e così via, mentre il risultato di 2) è normalmente probabilistico, dove la probabilità indica il grado di certezza che la serie di operazioni eseguite dal sistema di IA corrispondono effettivamente alla struttura del processo corrispondente determinato dall’analisi dei log del sistema[3].

L’approccio dell’EU AI Act è quello minimizzare il rischio di attività e operazioni non conformi, pertanto, la proposta di lavoro appena accennata è compatibile con in requisiti dell’EU AI Act.

NOTE

[1] Vale la pena notare che la risposta successive alla stessa domanda o a domande con la stessa struttura potrebbero fornire la risposta corretta. Questo dipende dalla capacità di questi modelli di “imparare” dalle interazioni con gli utenti, o semplicemente dal fatto che c’è una componente casuale nella generazione del testo per una risposta. In generale, questi modelli forniscono risposte differente anche quando l’input rimane invariato.

[2] L’accordo sul contenuto dell’AI Act tra la Commissione, il Consiglio e il Parlamento è stato raggiunto il 9 dicembre 2023; il testo finale è stato approvato dagli stati membri il 2 febbraio 2024 e dalla Commissione del parlamento europeo il 13 Febbraio 2024. La votazione in Parlamento è prevista per metà aprile 2024, con entrata in vigore immediata.

[3] L’EU AI Act impone ai sistemi di IA di generare dei log delle operazioni e dei dati, e del tipo di dati, effettivamente usati e usati durante l’addestramento.