Questo articolo è tratto da una delle nostre riviste, "Applications & Données: Applications et données 25 – Les éditeurs français face au défi de l’IA générative", scritto da Will Kelly e Gaétan Raoul per LeMagIT e pubblicato il 29 novembre 2024. Le immagini sono fornite da Getty Images.
IA generativa: come mitigare le allucinazioni
I sistemi di intelligenza artificiale generativa rappresentano una rivoluzione tecnologica con il potenziale di trasformare numerosi settori, dal marketing alla medicina. Tuttavia, una delle sfide più significative che queste tecnologie devono affrontare è la loro tendenza a produrre informazioni false, fuorvianti o completamente inventate, un fenomeno noto come "allucinazione". Questo problema intrinseco non solo frena l'adozione e la fiducia delle imprese che sperano di sfruttare l'IA per elaborare dati e automatizzare compiti, ma può anche compromettere l'integrità di un'organizzazione, portando a riparazioni costose e dispendiose in termini di tempo.
Per affrontare efficacemente questa problematica e migliorare l'affidabilità generale dei sistemi di IA generativa, è fondamentale che gli sviluppatori e gli utenti comprendano la natura delle allucinazioni, imparino a identificarle e adottino strategie mirate per attenuarle. Questo approccio proattivo è essenziale per sfruttare appieno il potenziale dell'IA generativa minimizzando i rischi associati alla disinformazione.
Che cos'è un'allucinazione nell'IA?
Le allucinazioni si verificano quando un modello di intelligenza artificiale genera informazioni che sono scorrette, ingannevoli o interamente frutto dell'immaginazione. Questo fenomeno non è esclusivo di un singolo tipo di sistema di IA generativa, ma può manifestarsi in una varietà di applicazioni, inclusi i generatori di testo, i creatori di immagini e altri. È importante notare che, nella maggior parte dei casi, le allucinazioni sono involontarie; non sono il risultato di una volontà del modello di ingannare, ma derivano dal modo in cui l'IA generativa opera.
L'IA generativa si basa su schemi appresi dai suoi dati di addestramento. A differenza di un sistema che accede a database fattuali esterni o informazioni in tempo reale, un modello generativo "inventa" basandosi su ciò che ha imparato. Ciò significa che la sua capacità di produrre contenuti plausibili, anche se non fattualmente corretti, è intrinseca. La gestione di queste allucinazioni rappresenta una sfida significativa per lo sviluppo dell'IA, anche perché, paradossalmente, questa capacità di inventare è talvolta desiderabile in contesti creativi o dove è richiesta l'esplorazione di nuove idee.
Un esempio tipico di allucinazione in un modello di IA generativa è la creazione di fatti storici o scientifici inesistenti. Per illustrare ulteriormente, un ambiente di sviluppo integrato (IDE) assistito da un modello di IA potrebbe generare codice che non è eseguibile o che contiene errori logici. Con un assistente conversazionale come ChatGPT, le allucinazioni possono manifestarsi sotto forma di contenuti fattualmente imprecisi, false attribuzioni di citazioni o la creazione di fonti bibliografiche inesistenti. Nell'IA che genera immagini, questo comportamento si traduce nella creazione di immagini con elementi distorti, irrealistici o persino dannosi.
Strategie per attenuare le allucinazioni dell'IA
Mitigare le allucinazioni è fondamentale per migliorare l'affidabilità e la precisione dei modelli di IA generativa. Le aziende possono implementare diverse strategie per aiutare a prevenire questi problemi. Queste strategie spaziano dalla configurazione di base del modello a tecniche più avanzate di ingegneria del sistema.
La base: regolare la temperatura del modello
Un aspetto spesso sconosciuto ai neofiti, perché solitamente inaccessibile tramite interfacce come ChatGPT, è la "temperatura" del modello. I ricercatori di IA che sviluppano i grandi modelli linguistici (LLM) hanno implementato un meccanismo per inibire o esacerbare la loro creatività e, di conseguenza, la loro propensione ad allucinare: la temperatura. Questo parametro, spesso accessibile tramite l'API di un modello, è generalmente compreso tra 0 e 1.
Se il cursore è impostato vicino allo zero (ad esempio, tra 0,2 e 0,5), il modello fornirà le previsioni più deterministiche e spesso più precise. Tuttavia, questa impostazione potrebbe non essere adatta per domande più aperte o per compiti creativi. In quest'ultimo caso, è consigliabile scegliere una temperatura più vicina a 1, ma ciò aumenta statisticamente l'esposizione alle allucinazioni. Un buon sistema di IA spesso permette di selezionare automaticamente questo valore in base alla natura della ricerca dell'utente, cercando di trovare un equilibrio ottimale tra precisione e creatività.
La temperatura può anche essere combinata con il valore "top-p", che è anch'esso compreso tra 0,1 e 1. Questo strumento consente di restringere la risposta alle parole più probabili di seguire le precedenti, cumulando una percentuale determinata dal valore "top-p". Una volta combinati, questi due meccanismi dovrebbero permettere di ottenere un equilibrio tra precisione e la libertà creativa del modello, riducendo le possibilità di allucinazioni incontrollate pur mantenendo la capacità di generare risposte variegate e interessanti.
Prompt Engineering
Il "prompt" scritto dagli utenti può essere difficile da controllare, data la varietà di stili e intenzioni. Pertanto, può essere molto utile formare gli utenti sulle migliori pratiche per la redazione di questi messaggi, insegnando loro a essere chiari, specifici e a fornire il contesto necessario per ottenere risposte accurate. Tuttavia, se la formazione degli utenti non è fattibile o i risultati dell'applicazione rimangono troppo casuali, diventa indispensabile redigere uno o più "system prompts" efficaci.
Un "system prompt" è una sequenza di istruzioni che guida il comportamento del modello nel back-office/end. Questo prompt non è visibile all'utente finale, ma imposta le regole e i confini entro cui il modello deve operare. Ad esempio, prima di chiamare l'API di un modello, può essere utile inserire un messaggio del tipo: "Sei un assistente benevolo incaricato di fornire le risposte più precise possibili. Rispondi solo sull'argomento del marketing" o "ecco l'elenco degli argomenti proibiti:…". Ovviamente, un "system prompt" correttamente costituito è più voluminoso di questo semplice esempio e sicuramente più sottile, incorporando una serie di regole e linee guida dettagliate per modellare il comportamento desiderato dell'IA.
Sebbene l'approccio del prompt engineering sia relativamente economico in termini di risorse computazionali, non è una soluzione completa per prevenire le allucinazioni. Migliora la qualità e la pertinenza delle risposte, ma non impedisce al modello di "inventare" se non ha informazioni sufficienti o se le istruzioni sono ambigue. È un primo passo fondamentale, ma deve essere integrato con altre strategie più robuste.
GNA (Generazione Aumentata per Recupero - Retrieval Augmented Generation)
Questa è considerata la metodologia più popolare ed efficace per attenuare le allucinazioni. La Generazione Aumentata per 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 esterna. Anziché affidarsi esclusivamente alle conoscenze pre-addestrate del modello, RAG gli consente di attingere a un corpus di informazioni esterne e aggiornate.
Un'architettura RAG prevede l'arricchimento delle risposte di un LLM fornendogli un contesto e informazioni specifiche direttamente correlate alla query dell'utente. Il modello di IA può quindi generare una risposta basata non solo sulle sue conoscenze pre-addestrate e sull'input della query, ma anche sulle informazioni pertinenti che ha recuperato da una fonte esterna. Questo processo aggiunge un livello di verifica e factualità che è assente nei modelli puramente generativi.
Per aiutare un LLM a comprendere il contesto che gli viene fornito, è necessario "codificare" il testo. Questo processo è noto come 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 vengono archiviati in un database, quindi indicizzati.
Quando l'applicazione che nasconde l'LLM viene utilizzata, si innesca una meccanica specifica: la domanda viene posta a un motore di ricerca che ordina i risultati più pertinenti dall'indice vettoriale, quindi invia gli elementi recuperati all'LLM. Quest'ultimo compone la sua risposta basandosi sulle informazioni recuperate e la restituisce all'interfaccia utente. L'architettura RAG, grazie a questo meccanismo, permette all'LLM di fornire risposte ancorate in una base di conoscenze verificabile.
Data la loro progettazione, le architetture RAG basano le loro risposte su fonti conosciute. Questo ancoraggio contestuale permette di recuperare dati preesistenti pertinenti o in tempo reale prima di generare una risposta, contribuendo 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 internamente. 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 la RAG come un requisito fondamentale del loro progetto.
Un altro vantaggio significativo della RAG è la sua modularità. Le basi di dati su cui si basa l'architettura RAG possono essere aggiornate indipendentemente dai moduli di ricerca, di embedding o dall'LLM stesso. Questo significa che le informazioni possono essere mantenute aggiornate senza dover riaddestrare l'intero modello, un processo costoso e dispendioso in termini di tempo, garantendo così che le risposte siano sempre basate sulle informazioni più recenti e accurate disponibili.
Un'accurata pulizia dei dati è essenziale
Sebbene l'architettura RAG abbia dimostrato la sua efficacia nel ridurre le allucinazioni, per massimizzare la qualità dei risultati e garantire la massima accuratezza, una rigorosa validazione e pulizia dei dati è indispensabile. L'efficacia della RAG dipende direttamente dalla qualità dei dati recuperati; dati errati o non verificati porteranno a risposte errate, anche con il miglior sistema RAG.
L'entità dello sforzo necessario a questo livello dipende fortemente dal caso d'uso specifico. Se l'architettura RAG deve aiutare un collaboratore a trovare informazioni utili per l'esecuzione di un compito (ad esempio, la procedura di un processo e le informazioni necessarie per la sua applicazione), allora ci si aspetta che l'intero insieme di documenti sia stato verificato in modo scrupoloso. Questo può richiedere un investimento significativo in termini di risorse umane e tecnologiche per la revisione e la convalida dei dati.
In alcuni casi, questo lavoro di verifica potrebbe essere già stato eseguito. Ad esempio, se un agente umano deve essere interrogato su una condizione specifica del suo contratto, questa informazione risiederà con ogni probabilità nelle condizioni generali di vendita, un documento spesso pubblico e già approvato da un team legale. In altri, potrebbe essere necessario un processo di curatela e verifica molto più approfondito per garantire che ogni pezzo di informazione sia affidabile e privo di errori, specialmente in settori critici come la salute o la finanza. Questo sottolinea che la tecnologia, per quanto avanzata, richiede sempre un supporto umano e un'attenzione ai dettagli per raggiungere la sua piena affidabilità.