Questo articolo è un estratto da una delle nostre riviste. Puoi scaricare gratuitamente il numero Applicazioni & Dati: Applicazioni e dati 25 – Gli editori francesi di fronte alla sfida dell’IA generativa, con contributi di Will Kelly e Gaétan Raoul per LeMagIT, pubblicato il 29 novembre 2024. L'illustrazione principale è fornita da Getty Images.

I sistemi di intelligenza artificiale generativa, pur offrendo un potenziale rivoluzionario per le imprese e numerosi settori, presentano una sfida significativa: la tendenza a produrre informazioni false o fuorvianti, un fenomeno noto come "allucinazione". Questo problema intrinseco può rappresentare un serio ostacolo all'adozione diffusa di questa tecnologia da parte delle aziende, che aspirano a delegare all'IA il trattamento di dati complessi e l'esecuzione di compiti specifici. Le conseguenze di tali allucinazioni possono essere gravi, potenzialmente erodendo l'integrità di un'organizzazione e comportando costi elevati e procedure complesse per riparare i danni causati da informazioni errate. Per scongiurare il rischio di disinformazione generata dall'IA e per accrescere l'affidabilità generale dei sistemi, è imperativo che i professionisti del settore non solo comprendano la natura delle allucinazioni, ma siano anche in grado di identificarle e di mettere in atto strategie efficaci per mitigarle.

Che cos'è un'allucinazione?

Le allucinazioni si manifestano quando un modello di IA genera informazioni che sono palesemente scorrette, ingannevoli o addirittura inventate di sana pianta. Questo comportamento indesiderato può verificarsi in una vasta gamma di sistemi di IA generativa, dai generatori di testo, come i grandi modelli linguistici (LLM), ai creatori di immagini, e ad altre applicazioni simili.

Generalmente, le allucinazioni sono involontarie. Esse derivano dalla natura stessa dell'IA generativa, che si basa su modelli e schemi appresi dai suoi vasti dati di addestramento piuttosto che sull'accesso diretto a database fattuali esterni o a informazioni in tempo reale. In pratica, il modello cerca di "completare il quadro" basandosi sulle probabilità statistiche apprese, e in assenza di un contesto sufficiente o di dati precisi, può finire per creare contenuti plausibili ma falsi. La gestione e la mitigazione di queste allucinazioni rappresentano una delle sfide più rilevanti nello sviluppo dell'IA, anche perché la capacità di "inventare" o generare creativamente è, in altri contesti, una caratteristica desiderabile e valorizzata dell'IA generativa. Il confine tra creatività utile e allucinazione dannosa è spesso sottile.

Esempi di allucinazioni

  • Un'allucinazione tipica di un modello di IA generativa può coinvolgere la creazione di fatti storici o scientifici inesistenti o errati. Ad esempio, un ambiente di sviluppo integrato (IDE) assistito da un modello di IA potrebbe generare codice che, nonostante appaia sintatticamente corretto, non si esegue affatto o produce risultati imprevedibili.
  • Con un assistente conversazionale come ChatGPT, le allucinazioni possono manifestarsi sotto forma di contenuti fattualmente inaccurati, attribuzioni errate di dichiarazioni a persone che non le hanno mai fatte, o la citazione di fonti e bibliografie completamente inesistenti.
  • Nell'IA generatrice di immagini, questo comportamento può comportare la creazione di immagini con elementi visivamente distorti, figure irrealistiche o persino la generazione di contenuti tossici o inappropriati che non riflettono la realtà o le intenzioni dell'utente.

Strategie per attenuare le allucinazioni dell'IA

L'applicazione di strategie mirate all'attenuazione delle allucinazioni è fondamentale per migliorare la affidabilità e la precisione dei modelli di IA generativa. Le aziende possono adottare diverse approcci per prevenire o ridurre significativamente l'incidenza di queste problematiche.

La base: regolare la temperatura del modello

Questo è spesso un elemento sconosciuto ai neofiti, in quanto generalmente inaccessibile attraverso interfacce utente come quella di ChatGPT. Tuttavia, i ricercatori di IA che sviluppano i grandi modelli linguistici (LLM) hanno implementato un meccanismo cruciale per inibire o esacerbare la loro creatività, e di conseguenza la loro propensione ad allucinare: la temperatura. Questo parametro, di solito accessibile tramite l'API di un modello, è tipicamente compreso tra 0 e 1.

  • Se il cursore è posizionato vicino allo zero (ad esempio, tra 0,2 e 0,5), il modello fornirà le previsioni più deterministiche e spesso le più precise. Questa impostazione è ideale per compiti che richiedono alta accuratezza e coerenza.
  • Tuttavia, un'impostazione così bassa potrebbe non essere adeguata per domande più aperte o per compiti che richiedono un alto grado di creazione e originalità. In questi casi, è consigliabile scegliere una temperatura più vicina a 1, il che aumenta la probabilità di risposte creative ma statisticamente incrementa anche l'esposizione alle allucinazioni.

Spesso, un'impostazione automatica permette di selezionare questo valore in base al tipo di ricerca dell'utente, cercando di trovare un equilibrio ottimale.

La temperatura può essere combinata con il valore "top-p", anch'esso compreso tra 0,1 e 1. Questo strumento consente di restringere la risposta alle parole più probabili che si susseguano, cumulando una percentuale determinata dal valore "top-p". Una volta combinati, questi due meccanismi dovrebbero consentire di ottenere un equilibrio tra precisione e creatività, offrendo un maggiore controllo sulla natura delle risposte generate dal modello.

Prompt engineering

Data la difficoltà nel controllare il prompt scritto dagli utenti, può essere estremamente utile formarli alle buone pratiche di redazione di questi messaggi. Una guida chiara e concisa su come formulare prompt efficaci può ridurre significativamente le ambiguità e le opportunità per il modello di generare allucinazioni. Se si rivela impossibile formare gli utenti o se i risultati dell'applicazione sono troppo imprevedibili, è consigliabile redigere uno o più "system prompt" ben strutturati.

Un system prompt è una sequenza di istruzioni che guida il comportamento del modello nel back-office/end, definendone il ruolo, le limitazioni e gli obiettivi. Ad esempio, prima di chiamare l'API di un modello, potrebbe essere utile redigere un messaggio del tipo:

  • "Sei un assistente benevolo incaricato di fornire le risposte più precise possibili. Rispondi unicamente in merito al marketing."
  • Oppure: "Ecco la lista dei soggetti proibiti: [elenco di argomenti vietati]."

Ovviamente, un system prompt correttamente costituito è più voluminoso di questi esempi e sicuramente più sottile, incorporando una serie di regole e direttive che delineano con precisione l'ambito e lo stile delle risposte attese. Sebbene sia un approccio relativamente poco costoso, non impedisce completamente le allucinazioni, ma ne riduce la frequenza e la gravità orientando meglio il comportamento del modello.

Generazione aumentata da recupero (Retrieval Augmented Generation - RAG)

Questa è la metodologia più popolare ed efficace per mitigare le allucinazioni nell'IA generativa. La generazione aumentata da recupero (RAG) è una potente tecnica di elaborazione del linguaggio naturale che migliora le prestazioni di un modello di IA generativa quando affronta una query o un compito, incorporando una componente di ricerca.

Un'architettura RAG prevede l'arricchimento delle risposte di un LLM fornendogli un contesto e informazioni specifiche direttamente correlate alla query. In questo modo, il modello di IA può generare una risposta basata non solo sulle sue conoscenze pre-addestrate e sulla query di input, ma anche sulle informazioni fresche e pertinenti che ha recuperato da una base di conoscenza esterna.

Per aiutare un LLM a comprendere il contesto che gli viene fornito, è necessario "codificare" il testo. Questo processo si chiama vettorizzazione. Un altro modello di GenAI o un trasformatore NLP ha il compito di convertire i documenti forniti in vettori; si tratta di serie di decimali comprese tra -1 e 1. Questi vettori saranno poi confrontati con la query dell'utente del LLM. Per fare ciò, questi vettori sono archiviati in un database, quindi indicizzati. Quando l'applicazione che "nasconde" l'LLM viene utilizzata, si innesca un meccanismo per porre la domanda a un motore di ricerca che ordina i risultati più pertinenti dall'indice, quindi invia gli elementi all'LLM che compone la sua risposta e restituisce il risultato all'interfaccia utente.

Grazie alla loro concezione, le architetture RAG ancorano le loro risposte a fonti conosciute. Questo ancoraggio contestuale permette di recuperare dati preesistenti pertinenti o in tempo reale prima di generare una risposta, contribuendo così a impedire al modello di allucinare o di generare informazioni false. I risultati sono generalmente più precisi, poiché le risposte dei modelli RAG utilizzano fonti credibili (ad esempio, Google Search) o fonti primarie verificate. Le aziende che progettano applicazioni di IA in settori dove la precisione è di primaria importanza, come la medicina, il diritto o la scienza, dovrebbero considerare di rendere la RAG un requisito essenziale per i loro progetti.

Inoltre, uno dei grandi vantaggi del RAG è che le basi di dati su cui si appoggia l'architettura possono essere aggiornate indipendentemente dai moduli di ricerca, di embedding o dall'LLM stesso, garantendo così che le risposte siano sempre basate sulle informazioni più recenti e accurate.

Un'accurata pulizia dei dati è essenziale

L'architettura RAG ha dimostrato la sua efficacia, ma per massimizzare la qualità dei risultati e evitare le allucinazioni, un'attenta validazione e pulizia dei dati di input si impone come passo imprescindibile. L'entità dello sforzo necessario a questo livello dipende fortemente dal caso d'uso specifico dell'applicazione.

  • Se l'architettura RAG deve assistere un collaboratore nella ricerca di informazioni utili per l'esecuzione di un compito (ad esempio, la procedura dettagliata di un processo e le informazioni necessarie per la sua applicazione), allora ci si aspetta che l'intero insieme di documenti su cui si basa il sistema sia stato preventivamente verificato e convalidato.
  • In alcuni casi, questo lavoro di verifica potrebbe essere già stato effettuato: ad esempio, se un agente umano viene interrogato su una condizione specifica del suo contratto, è molto probabile che questa informazione risieda nelle condizioni generali di vendita, un documento spesso pubblico e approvato da un team legale, quindi già affidabile.
  • In altri casi, tuttavia, i dati potrebbero non essere così strutturati o pre-validati, e potrebbe essere necessario un lavoro di verifica e pulizia dei dati più approfondito e dedicato, prima che possano essere efficacemente integrati in un'architettura RAG. La qualità dei dati di base è sempre il fondamento della precisione e dell'affidabilità di qualsiasi sistema di intelligenza artificiale.